站长统计
[face_recognition中⽂⽂档]第1节⼈脸识别
Face Recognition⼈脸识别库
这是世界上最简单的⼈脸识别库了。你可以通过Python引⽤或者命令⾏的形式使⽤它,来管理和识别⼈脸。
该软件包使⽤dlib中最先进的⼈脸识别深度学习算法,使得识别准确率在《Labled Faces in the
world》测试基准下达到了99.38%。
它同时提供了⼀个叫face_recognition的命令⾏⼯具,以便你可以⽤命令⾏对⼀个⽂件夹中的图⽚进⾏识别操作。
特征
在图⽚中识别⼈脸
到图⽚中所有的⼈脸:
import
face_recognitionimage=face_recognition.load_image_file("your_file.jpg")face_locations=face_recognition.face_locations(image)到并操作图⽚中的脸部特征
获得图⽚中⼈类眼睛、⿐⼦、嘴、下巴的位置和轮廓:
import face_recognitionimage = face_recognition.load_image_file("your_file.jpg")face_landmarks_list =
face_recognition.face_landmarks(image)
到脸部特征有很多超级有⽤的应⽤场景,当然你也可以把它⽤在最显⽽易见的功能上:美颜功能就像美图秀秀那样:
鉴定图⽚中的脸
识别图⽚中的⼈是谁
import
face_recognitionknown_image=face_recognition.load_image_file("biden.jpg")unknown_image=face_recognition.load_image_file("u nknown.jpg")biden_encoding=face_recognition.face_encodings(known_image)
[0]unknown_encoding=face_recognition.face_encodings(unknown_image)
[0]results=face_recognitionpare_faces([biden_encoding],unknown_encoding)
你甚⾄可以⽤这个软件包做⼈脸的实时识别:
这⾥有⼀个实时识别的例⼦
安装
环境要求:
Python3.3+或者Python2.7
MacOS或者Linux(Windows不做⽀持,但是你可以试试,也许也能运⾏)
安装步骤
在Mac或Linux上安装
⾸先,确保你安装了dlib,以及该软件的Python绑定接⼝。如果没有的话,看这篇安装说明:
如何从macOS或Ubuntu上安装dlib
然后,使⽤pip3(Python 2的pip2)从pypi安装此模块:
pip3install face_recognition
如果你安装遇到问题,可以试试这个安装好了的虚拟机
在树莓派2+上安装
在树莓派2+上安装说明
在Windows上安装
虽然Windows不是官⽅⽀持的,但是有热⼼⽹友写出了⼀个Windows上的使⽤指南,请看这⾥:
@ masoudr的Windows 10安装指南(dlib + face_recognition)
使⽤已经配置好的虚拟机(⽀持VMWare和VirtualBox)
下载预配置的虚拟机映像(适⽤于VMware Player或VirtualBox)。
使⽤⽅法
命令⾏界⾯
如果你已经安装了face_recognition,那么你的系统中已经有了⼀个名为face_recognition的命令,你可以使⽤它对图⽚进⾏识别,或者对⼀个⽂件夹中的所有图⽚进⾏识别。
⾸先你需要提供⼀个⽂件夹,⾥⾯是所有你希望系统认识的⼈的图⽚。其中每个⼈⼀张图⽚,图⽚以⼈的名字命名:
接下来,你需要准备另⼀个⽂件夹,⾥⾯是你要识别的图⽚:
然后你就可以运⾏face_recognition命令了,把刚刚准备的两个⽂件夹作为参数传⼊,命令就会返回需要识别的图⽚中都出现了谁:
$ face_recognition ./pictures_of_people_i_know/./unknown_pictures//unknown_pictures/unknown.jpg,Barack
Obama/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
输出中,识别到的每张脸都单独占⼀⾏,输出格式为<;图⽚名称>,<⼈名>。 unknown_person 是⼀个与你的⽂件夹的已知⼈图像不匹配的⼈物。
调整公差/灵敏度
如果你正在为同⼀个⼈获得多个⽐较,那可能就是这样您的照⽚中的⼈看起来⾮常相似,容差值较低需要使脸部⽐较更严格。 你可以⽤--tolerance参数来做到这⼀点。默认容差值为0.6,较低的数字使脸部⽐较更严格:
$ face_recognition --tolerance0.54./pictures_of_people_i_know/./unknown_pictures//unknown_pictures/unknown.jpg,Barack Obama/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person
如果要按顺序查看每次计算出的⾯距要调整公差设置,可以使⽤:--show-distancetrue
$ face_recognition --show-
distancetrue./pictures_of_people_i_know/./unknown_pictures//unknown_pictures/unknown.jpg,Barack
Obama,0.378542298956785/face_recognition_test/unknown_pictures/unknown.jpg,unknown_person,None
更多例⼦
如果你只想知道每张照⽚中的⼈的名字,但不要关⼼⽂件名,你可以这样做:
$ face_recognition ./pictures_of_people_i_know/./unknown_pictures/| cut -d','-f2Barack Obamaunknown_person
加快⼈脸识别
如果您有多个CPU内核的电脑,则可以并⾏完成脸部识别。例如,如果您的系统有4个CPU内核,您可以通过使⽤在相同的时间量内所有的CPU 内核并⾏处理约4倍的图像。 如果您使⽤的是Python 3.4或更新版本,请传⼊参数:--cpus <number_of_cpu_cores_to_use> parameter:
$ face_recognition --cpus4./pictures_of_people_i_know/./unknown_pictures/
您还可以传⼊使⽤系统中的所有CPU内核。--cpus-1
Python模块
你可以通过导⼊face_recognition模块来使⽤它,使⽤⽅式超级简单,⽂档在这⾥API⽂件:
⾃动到图⽚中所有的脸
import face_recognitionimage = face_recognition.load_image_file("my_picture.jpg")face_locations =
face_recognition.face_locations(image)# face_locations is now an array listing the co-ordinates of each face!
看看这个例⼦⾃⼰实践⼀下,试试看。
你还可以⾃定义替换⼈类识别的深度学习模型。
注意:想获得⽐较好的性能的话,你可能需要GPU加速(使⽤英伟达的CUDA库)。所以编译的时候你也需要开启dlib的GPU加速选项。
import face_recognitionimage = face_recognition.load_image_file("my_picture.jpg")face_locations =
face_recognition.face_locations(image, model="cnn")# face_locations is now an array listing the co-ordinates of each face!
你也可以通过这个例⼦实践⼀下,试试看。
如果你有很多图⽚和GPU,你也可以并⾏快速识别,看这篇⽂章。
⾃动识别⼈脸特征
import face_recognitionimage = face_recognition.load_image_file("my_picture.jpg")face_landmarks_list =
face_recognition.face_landmarks(image)# face_landmarks_list is now an array with the locations of each facial feature in each face.# face_landmarks_list[0]['left_eye'] would be the location and outline of the first person's left eye.
试试这个例⼦,试试看。
识别⼈脸鉴定是哪个⼈
import face_recognitionpicture_of_me = face_recognition.load_image_file("me.jpg")my_face_encoding =
python官方文档中文版
face_recognition.face_encodings(picture_of_me)[0]# my_face_encoding now contains a universal 'encoding' of my facial features that can be compared to any other picture of a face!unknown_picture =
face_recognition.load_image_file("unknown.jpg")unknown_face_encoding = face_recognition.face_encodings(unknown_picture) [0]# Now we can see the two face encodings are of the same person with `compare_faces`!results =
face_recognitionpare_faces([my_face_encoding], unknown_face_encoding)if results[0] == True:    print("It's a picture of me!")else:print("It's not a picture of me!")
这⾥是⼀个例⼦,试试看。
Python代码⽰例
所有的例⼦都在这⾥。
⼈脸检测
在照⽚中到⾯孔
在照⽚中到⾯孔(使⽤深度学习)
在GPU(使⽤深度学习)的图像批量查⾯孔
⾯部特征

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。