python之人脸识别
今天發現了一個開源的人臉識別項目。跟大家分享一下。
這個是知乎上面大神將項目README文件翻譯成中文,方便大家學習。在此向同濟大學開源軟件協會?子豪兄Tommy表示感謝。https://zhuanlan.zhihu.com/p/45827914
項目地址:https://github.com/ageitgey/face_recognition感興趣的朋友自行去了解一下。
?
今天我們將用python來實現人臉識別。
安裝部分
1、前期準備工作
下載好python3.9、pycharm和vs c++;可以自行百度搜索下載。
2.、安裝?cmake(編譯工具) 和 boost(進入我python3.9安裝目錄下,在地址欄輸入cmd。C:\Users\jason\AppData\Local\Programs\Python\Python39\Scripts)
pip install cmake pip install boost3、安裝 dlib(人臉檢測庫)
pip install dlib?
4、安裝face_recognition(人臉識別庫)這個人臉識別庫需要配合opencv
pip install face_recognition pip install opencv-python注意:最好按照上述順序安裝,不然可能會安裝不成功。
既然上述的安裝成功,那么我們就開始人臉識別,首先我們使用的軟件vs cube或者pycharm軟件,小編現在使用pycharm軟件。既然需要人臉識別,那么我們可以準備圖片啦,在百度找一下人物圖:
?在face_recognition人臉識別庫中,我們需要了解三個函數:
??? face_recognition.load_image_file ()這個函數就是從本地加載圖片。
??? face_recognition.face_encodings()這個函數是把編碼圖片。
??? face_recognition.compare_faces()這個函數是比較圖片。
????其實上述的函數很簡單,recognition就是識別的意思,load是加載的意思,encoding就是編碼的意思,而compare就是比較的意思。
?
我們用mayun.jpg這張圖片作為樣本,和其他圖片對比,具體代碼如下:
import face_recognition import timelocaltime = time.asctime(time.localtime(time.time())) print("本地時間為 :", localtime)mayun_image = face_recognition.load_image_file("mayun.jpg") image1 = face_recognition.load_image_file("mahuateng.jpg") image2 = face_recognition.load_image_file("mayun1.jpg") image3 = face_recognition.load_image_file("xiaomayun.jpg") image4 = face_recognition.load_image_file("mayunguilian.jpg") image5 = face_recognition.load_image_file("mayun2.jpg") image6 = face_recognition.load_image_file("mayunlianwu.jpg") image7 = face_recognition.load_image_file("mayunbiyan.jpg") image8 = face_recognition.load_image_file("mayunzaoqi.jpg") image9 = face_recognition.load_image_file("mayunduoren.jpg")mayun_face_encoding = face_recognition.face_encodings(mayun_image)[0] image1_face_encoding = face_recognition.face_encodings(image1)[0] image2_face_encoding = face_recognition.face_encodings(image2)[0] image3_face_encoding = face_recognition.face_encodings(image3)[0] image4_face_encoding = face_recognition.face_encodings(image4)[0] image5_face_encoding = face_recognition.face_encodings(image5)[0] image6_face_encoding = face_recognition.face_encodings(image6)[0] image7_face_encoding = face_recognition.face_encodings(image7)[0] image8_face_encoding = face_recognition.face_encodings(image8)[0] image9_face_encoding = face_recognition.face_encodings(image9)[0]known_faces = [image1_face_encoding,image2_face_encoding,image3_face_encoding,image4_face_encoding,image5_face_encoding,image6_face_encoding,image7_face_encoding,image8_face_encoding,image9_face_encoding ]results = face_recognition.compare_faces(known_faces, mayun_face_encoding) print("這張mahuateng.jpg照片是馬云嗎? {}".format(results[0])) print("這張mayun1.jpg照片是馬云嗎? {}".format(results[1])) print("這張xiaomayun.jpg照片是馬云嗎? {}".format(results[2])) print("這張mayunguilian.jpg照片是馬云嗎? {}".format(results[3])) print("這張mayun2.jpg照片是馬云嗎? {}".format(results[4])) print("這張mayunlianwu.jpg照片是馬云嗎? {}".format(results[5])) print("這張mayunbiyan.jpg照片是馬云嗎? {}".format(results[6])) print("這張mayunzaoqi.jpg照片是馬云嗎? {}".format(results[7])) print("這張mayunduoren.jpg照片是馬云嗎? {}".format(results[8]))localtime = time.asctime(time.localtime(time.time())) print("本地時間為 :", localtime)結果如下圖所示:
?
?
總結
以上是生活随笔為你收集整理的python之人脸识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无RTOS下使用队列出现的问题记录
- 下一篇: Exynos 4412启动过程(群聊笔记