日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python人脸识别代码_一行Python代码搞定人脸识别

發(fā)布時(shí)間:2023/12/9 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python人脸识别代码_一行Python代码搞定人脸识别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么,只要一行代碼就能搞定人臉識(shí)別?當(dāng)然是假的啦。

雖然不能一行就搞定,依靠python強(qiáng)大的人臉識(shí)別包,只要十多行代碼完全可以實(shí)現(xiàn)人臉識(shí)別的功能。這就叫站在巨人的肩膀上,看得更高更遠(yuǎn)。

face-recognition,使用最先進(jìn)的人臉識(shí)別技術(shù)構(gòu)建而成的python包,而且具有深度學(xué)習(xí)功能。經(jīng)測(cè)試識(shí)別正確率高達(dá)99.38%。確實(shí)很高。

安裝

因?yàn)閒ace-recognition使用到了dlib庫(kù),這是c++寫(xiě)的一個(gè)包含機(jī)器學(xué)習(xí),計(jì)算機(jī)視覺(jué)等算法的庫(kù),所以使用之前要先安裝dlib。不過(guò)這還不行,dlib庫(kù)又依賴一個(gè)叫做boost的東西,總之有些麻煩,所以我就不寫(xiě)詳細(xì)步驟啦╰( ̄▽ ̄)╭。linux下安裝比較簡(jiǎn)單,命令行下幾行代碼就搞定,windows安裝見(jiàn)這里。

所有工作準(zhǔn)備好之后,使用pip安裝:

pip install face-recognition

人臉檢測(cè)

如何檢測(cè)一張圖片中的人臉?face-recognition把帶人臉的圖片看成是由像素組成的二維數(shù)組,使用face_locations方法返回識(shí)別到的人臉的坐標(biāo)(上下左右)。

這樣就可以啦,接下來(lái)只要把這些人臉坐標(biāo)用矩形框圈出來(lái),然后保存即可。

import face_recognition

from skimage import draw, io

%matplotlib inline

# 圖片文件

files = "F:\data\people.jpg"

# 加載圖片

image = face_recognition.load_image_file(files)

# 識(shí)別人臉坐標(biāo)

face_locations = face_recognition.face_locations(image)

# 我們?cè)诖耸褂弥敖榻B過(guò)的skimage庫(kù)進(jìn)行繪制

# 讀出的圖片在skimage中不能使用,故重新導(dǎo)入

img = io.imread(files)

print("I found{}face(s) in this photograph.".format(len(face_locations)))

# 循環(huán)標(biāo)記人臉

for face_location in face_locations:

# 每個(gè)人臉的坐標(biāo)

top, right, bottom, left = face_location

# 為每個(gè)人臉畫(huà)四邊形

# polygon_perimeter作用是繪制不填充的多邊形

rr, cc = draw.polygon_perimeter([top, top, bottom, bottom], [left, right, right, left])

# 設(shè)置顏色為紅色

draw.set_color(img, [rr, cc], [255, 0, 0])

# 保存

io.imsave('F:result.jpg', img)

I found 24 face(s) in this photograph.

我們打開(kāi)圖片看看效果。

import matplotlib.pyplot as plt

from skimage import io

origin = io.imread(files)

reco = io.imread('f:result.jpg')

plt.subplot(1, 2, 1)

plt.imshow(origin)

plt.subplot(1, 2, 2)

plt.imshow(reco)

效果不錯(cuò),都識(shí)別出來(lái)了。

人臉識(shí)別

既然能夠識(shí)別出有沒(méi)有人臉,有可能知道這個(gè)人是誰(shuí)嗎?當(dāng)然可以了,前提是你要提供一張包含某個(gè)人臉的照片。使用face_encodings對(duì)人臉進(jìn)行編碼,然后使用compare_faces方法比較即可??创a。

import face_recognition

# 首先打開(kāi)一張已經(jīng)知道是誰(shuí)的照片,然后打開(kāi)另一張照片

zhuyizhi_image = face_recognition.load_image_file("F:zhuyizhi.jpg")

unknown_image = face_recognition.load_image_file("F:unknow.jpg")

# 識(shí)別出已知和未知人臉的面部特征

zhu_face_encoding = face_recognition.face_encodings(zhuyizhi_image)[0]

unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0]

# 可以添加多個(gè)已知的人臉照片

known_faces = [

zhu_face_encoding,

]

# 比較已知人臉和未知人臉,返回結(jié)果為true或者false。

results = face_recognition.compare_faces(known_faces, unknown_face_encoding)

print("Is the unknown face a picture of zhuyizhi? {}".format(results[0]))

print("Is the unknown face a new person that we've never seen before? {}".format(not True in results))

Is the unknown face a picture of zhuyizhi? True

Is the unknown face a new person that we've never seen before? False

除了能檢測(cè)出和識(shí)別出人臉之外,face-recognition還提供深度學(xué)習(xí)參數(shù)的支持,使得識(shí)別率更高。

本人才疏學(xué)淺,上文中難免有些錯(cuò)誤,還請(qǐng)各位品評(píng)指正。如果覺(jué)得寫(xiě)的還行,歡迎大家多多分享哈。

公眾號(hào)推薦:【Python學(xué)習(xí)交流】

總結(jié)

以上是生活随笔為你收集整理的python人脸识别代码_一行Python代码搞定人脸识别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。