Python face_recognition實(shí)現(xiàn)AI識(shí)別圖片中的人物
前言
最近碰到了照片識(shí)別的場(chǎng)景,正好使用了face_recognition項(xiàng)目,給大家分享分享。face_recognition項(xiàng)目能做的很多,人臉檢測(cè)功能也是有的,是一個(gè)比較成熟的項(xiàng)目。該項(xiàng)目的github地址:github倉(cāng)庫(kù)
本文主要是對(duì)該項(xiàng)目的安裝使用,后面會(huì)更新一篇我自己寫(xiě)的實(shí)現(xiàn)人臉檢測(cè)的代碼,可以直接使用。
環(huán)境安裝
首先我們看看官方給出的人臉識(shí)別效果圖
我們看一下README關(guān)于安裝環(huán)境的信息
官方給出的可安裝操作系統(tǒng)是Mac和Linux,但是我想在windows安裝,繼續(xù)往下看。
windows雖然不是官方支持,但是也能裝,不就是個(gè)dlib嗎?好的,那就開(kāi)始裝。
我們直接安裝requirements_dev.txt,這里要注意,把pip去掉。
注意一點(diǎn)安裝dlib的時(shí)候會(huì)報(bào)錯(cuò),需要先安裝cmake,安裝命令如下:
pip install cmake -i https://pypi.douban.com/simple
除此之外,項(xiàng)目還需要安裝opencv-python,安裝命令如下:
pip install opencv-python -i https://pypi.douban.com/simple
代碼使用
先做一下說(shuō)明,在使用face_recognition運(yùn)行的時(shí)候,可以選擇安裝face_recognition命令進(jìn)行運(yùn)行的模式,也可以使用face_recognition模塊構(gòu)建代碼運(yùn)行。為了二次開(kāi)發(fā),我還是先試試代碼的方式,主要試試人臉識(shí)別模塊。
官方代碼如下:
import face_recognition # Load the jpg files into numpy arrays biden_image = face_recognition.load_image_file("biden.jpg") obama_image = face_recognition.load_image_file("obama.jpg") unknown_image = face_recognition.load_image_file("obama2.jpg") # Get the face encodings for each face in each image file # Since there could be more than one face in each image, it returns a list of encodings. # But since I know each image only has one face, I only care about the first encoding in each image, so I grab index 0. try: biden_face_encoding = face_recognition.face_encodings(biden_image)[0] obama_face_encoding = face_recognition.face_encodings(obama_image)[0] unknown_face_encoding = face_recognition.face_encodings(unknown_image)[0] except IndexError: print("I wasn't able to locate any faces in at least one of the images. Check the image files. Aborting...") quit() known_faces = [ biden_face_encoding, obama_face_encoding ] # results is an array of True/False telling if the unknown face matched anyone in the known_faces array results = face_recognition.compare_faces(known_faces, unknown_face_encoding) print("Is the unknown face a picture of Biden? {}".format(results[0])) print("Is the unknown face a picture of Obama? {}".format(results[1])) print("Is the unknown face a new person that we've never seen before? {}".format(not True in results))
代碼說(shuō)明:
1、首先可以看到將兩個(gè)人臉的數(shù)據(jù)加到了known_faces列表內(nèi)。
2、然后用未知圖數(shù)據(jù)進(jìn)行識(shí)別判斷。
看一下加入到known_faces的照片
看一下需要識(shí)別的照片
看一下執(zhí)行結(jié)果
我們可以看到在拜登的識(shí)別中提示false,在奧巴馬識(shí)別中提示true。這里要注意一點(diǎn),我們看一下compare_faces方法參數(shù)。
參數(shù)tolerance最佳為0.6,越低越嚴(yán)格,所以可以按照自己的需求調(diào)整。
總結(jié)
經(jīng)過(guò)我多次測(cè)試,在臉型比較接近的情況下,還是會(huì)有誤差,需要按照自己的情況進(jìn)行調(diào)整。
到此這篇關(guān)于Python face_recognition實(shí)現(xiàn)AI識(shí)別圖片中的人物的文章就介紹到這了,更多相關(guān)Python face_recognition人臉識(shí)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Flask SQLAlchemy一對(duì)一,一對(duì)多的使用方法實(shí)踐
Flask-SQLAlchemy一對(duì)一,一對(duì)多的使用方法實(shí)踐,需要的朋友可以參考下2013-02-02Python學(xué)習(xí)之字符串常用方法總結(jié)
這篇文章主要為大家介紹了Python中字符串的幾個(gè)常用方法總結(jié),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python字符串有一定幫助,需要的可以參考一下2022-03-03python3圖片轉(zhuǎn)換二進(jìn)制存入mysql
MYSQL是支持把圖片存入數(shù)據(jù)庫(kù)的,也相應(yīng)的有一個(gè)專門的字段BLOB (Binary Large Object),即較大的二進(jìn)制對(duì)象字段,看下面代碼2013-12-12python sklearn中tsne算法降維結(jié)果不一致問(wèn)題的解決方法
最近在做一個(gè)文本聚類的分析,在對(duì)文本數(shù)據(jù)embedding后,想著看下數(shù)據(jù)的分布,于是用sklearn的TSNE算法來(lái)降維embedding后的數(shù)據(jù)結(jié)果,當(dāng)在多次執(zhí)行后,竟發(fā)現(xiàn)TSNE的結(jié)果竟然變了,而且每次都不一樣,所以本文就給大家講講如何解決sklearn中tsne算法降維結(jié)果不一致的問(wèn)題2023-10-10python DataFrame轉(zhuǎn)dict字典過(guò)程詳解
這篇文章主要介紹了python DataFrame轉(zhuǎn)dict字典過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12python實(shí)現(xiàn)用戶登錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)用戶登錄系統(tǒng)的相關(guān)資料,感興趣的朋友可以參考一下2016-05-05利用Python Django實(shí)現(xiàn)簡(jiǎn)單博客系統(tǒng)
這篇文章主要介紹了利用Python Django實(shí)現(xiàn)簡(jiǎn)單博客系統(tǒng),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-05-05python爬蟲(chóng)入門教程--HTML文本的解析庫(kù)BeautifulSoup(四)
Beautiful Soup是python的一個(gè)庫(kù),最主要的功能是從網(wǎng)頁(yè)抓取數(shù)據(jù)。下面這篇文章主要給大家介紹了python爬蟲(chóng)之HTML文本的解析庫(kù)BeautifulSoup的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05