摘要:什么,只要一行代碼就能搞定人臉識別當(dāng)然是假的啦。雖然不能一行就搞定,依靠強(qiáng)大的人臉識別包,只要十多行代碼完全可以實(shí)現(xiàn)人臉識別的功能。經(jīng)測試識別正確率高達(dá)。下安裝比較簡單,命令行下幾行代碼就搞定,安裝見這里。
什么,只要一行代碼就能搞定人臉識別?當(dāng)然是假的啦。
雖然不能一行就搞定,依靠python強(qiáng)大的人臉識別包,只要十多行代碼完全可以實(shí)現(xiàn)人臉識別的功能。這就叫站在巨人的肩膀上,看得更高更遠(yuǎn)。
face-recognition,使用最先進(jìn)的人臉識別技術(shù)構(gòu)建而成的python包,而且具有深度學(xué)習(xí)功能。經(jīng)測試識別正確率高達(dá)99.38%。確實(shí)很高。
安裝因?yàn)閒ace-recognition使用到了dlib庫,這是c++寫的一個(gè)包含機(jī)器學(xué)習(xí),計(jì)算機(jī)視覺等算法的庫,所以使用之前要先安裝dlib。不過這還不行,dlib庫又依賴一個(gè)叫做boost的東西,總之有些麻煩,所以我就不寫詳細(xì)步驟啦╰( ̄▽ ̄)╭。linux下安裝比較簡單,命令行下幾行代碼就搞定,windows安裝見這里。
所有工作準(zhǔn)備好之后,使用pip安裝:
pip install face-recognition
人臉檢測如何檢測一張圖片中的人臉?face-recognition把帶人臉的圖片看成是由像素組成的二維數(shù)組,使用face_locations方法返回識別到的人臉的坐標(biāo)(上下左右)。
這樣就可以啦,接下來只要把這些人臉坐標(biāo)用矩形框圈出來,然后保存即可。
import face_recognition from skimage import draw, io %matplotlib inline # 圖片文件 files = "F:datapeople.jpg" # 加載圖片 image = face_recognition.load_image_file(files) # 識別人臉坐標(biāo) face_locations = face_recognition.face_locations(image) # 我們在此使用之前介紹過的skimage庫進(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è)人臉畫四邊形 # 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.
我們打開圖片看看效果。
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ò),都識別出來了。
人臉識別既然能夠識別出有沒有人臉,有可能知道這個(gè)人是誰嗎?當(dāng)然可以了,前提是你要提供一張包含某個(gè)人臉的照片。使用face_encodings對人臉進(jìn)行編碼,然后使用compare_faces方法比較即可??创a。
import face_recognition # 首先打開一張已經(jīng)知道是誰的照片,然后打開另一張照片 zhuyizhi_image = face_recognition.load_image_file("F:zhuyizhi.jpg") unknown_image = face_recognition.load_image_file("F:unknow.jpg") # 識別出已知和未知人臉的面部特征 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
除了能檢測出和識別出人臉之外,face-recognition還提供深度學(xué)習(xí)參數(shù)的支持,使得識別率更高。
本人才疏學(xué)淺,上文中難免有些錯(cuò)誤,還請各位品評指正。如果覺得寫的還行,歡迎大家多多分享哈。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/44496.html
摘要:近期,中煙機(jī)械與就人臉識別測溫產(chǎn)品達(dá)成了長期合作,并已在其下屬各煙機(jī)廠投入使用??偨Y(jié)人臉識別測溫產(chǎn)品結(jié)合自身在方面的專業(yè)云服務(wù)技術(shù)能力,致力于為各企業(yè)組織在疫情期間提高人員體溫監(jiān)控效率減少感染風(fēng)險(xiǎn)。目前,國內(nèi)疫情已基本得到控制,為防止疫情再次大規(guī)模爆發(fā),大部分公共場所及企業(yè)辦公樓的體溫檢測、戴口罩、消毒等防控措施開始趨向常態(tài)化管理。無接觸、無人值守、快速感應(yīng)的人臉識別測溫設(shè)備在疫情期間得到了...
摘要:中科院自動(dòng)化所,中科院大學(xué)和南昌大學(xué)的一項(xiàng)合作研究,提出了雙路徑,通過單一側(cè)面照片合成正面人臉圖像,取得了當(dāng)前較好的結(jié)果。研究人員指出,這些合成的圖像有可能用于人臉分析的任務(wù)?;謴?fù)的圖像的質(zhì)量嚴(yán)重依賴于訓(xùn)練過程中的先驗(yàn)或約束條件。 中科院自動(dòng)化所(CASIA),中科院大學(xué)和南昌大學(xué)的一項(xiàng)合作研究,提出了雙路徑 GAN(TP-GAN),通過單一側(cè)面照片合成正面人臉圖像,取得了當(dāng)前較好的結(jié)果。研...
閱讀 3116·2021-11-18 10:02
閱讀 3410·2021-11-02 14:48
閱讀 3452·2019-08-30 13:52
閱讀 617·2019-08-29 17:10
閱讀 2147·2019-08-29 12:53
閱讀 1470·2019-08-29 12:53
閱讀 1086·2019-08-29 12:25
閱讀 2224·2019-08-29 12:17