python人脸识别从入门到工程实践,python调用人脸识别接口

  python人脸识别从入门到工程实践,python调用人脸识别接口

  人脸识别总结:本项目face_recognition是一个功能强大、简单易用的人脸识别开源项目,为您提供了完整的开发文档和应用案例。对于这个项目,可以使用Python和命令行工具来提取、识别和操作人脸。本项目的人脸识别基于业界领先的C开源库dlib中的深度学习模型,用Wild人脸数据集中的标注人脸进行测试,准确率达到99.38%。而儿童和亚洲人脸的识别准确率还有待提高(比如下面例子中的kiku图片就无法识别)。这个项目提供了一个简单的face_recognition命令行工具,可以用来处理整个文件夹中的图片。

  环境:我用的是以下配置:(1)1)Linux系列中最新版本的ubuntu,版本20(以下为ubuntu默认桌面);(2) python不需要安装,因为ubuntu自带python3.8【注意:我没有尝试在windows系统上运行这个项目,但是可能可以用】

  Windows操作系统实现方法:(1)第一步,安装dlib和相关Python依赖项(不知道的可以参考网络博客,这里就不赘述了);(2)然后打开终端(ctrl alt t)输入pip3安装face_recognition。

  用法:当您安装了这个项目后,您可以使用两个命令行工具:

  识别单张图片或图片文件夹中的人脸。定位单张图片或图片文件夹中的人脸位置。

  face_recognition命令行工具face_recognition命令行工具可以识别单张图片或图片文件夹中的人脸。

  首先你得有一个你已经知道名字的人脸图片文件夹(比如我的这个是knowe _ people文件夹)。每人一张图片,图片的文件名为对应人物的名字:

  然后,你需要第二个图片文件夹,里面有你要识别的图片:然后,你在命令行中切换到这两个文件夹所在的路径(如下:其中绿色是我的主机的根目录,使用命令cd ~/pictures/know _ people切换到这个目录)

  然后用face_recognition命令行进入这两个图片文件夹,最后输出未知图片中的人名:(face _ recognition ~/pictures/known _ people ~/pictures/unknown _ people/)

  你可以看到这一点;人脸识别系统可以判断未知输出图像3是kiku,第二个图像是Trump的B(开玩笑的,哈哈),但是第一个图像无法识别,尽管她是kiku。是这个系统的不足,儿童和亚洲人脸的识别准确率有待提高。

  系统输出结果的每一行对应图片中的一张人脸,图片名称和对应的人脸识别结果之间用逗号隔开。如果结果输出no _persons_found,则表示该人脸与已知人脸图片文件夹中的任何人都不对应。

  face_detection命令行工具face_detection命令行工具可以定位单张图片或图片文件夹中的人脸位置(输出像素坐标)。

  在命令行中使用face_detection,传入一个图片文件夹或单个图片文件来检测人脸位置:

  每条输出线对应图片中的一张人脸,输出坐标代表人脸的上、右、下、左像素的坐标。调整人脸识别的容错和灵敏度。如果一张人脸识别的结果不止一个,说明这张脸和其他人长得太像了(本项目中儿童和亚洲人的人脸识别准确率有待提高)。可以降低容错率,使识别结果更加严格。

  这个函数是通过传入参数-公差来实现的。默认容错率为0.6。容错率越低,识别越严格,越准确。

  可以发现,降低容错率后,第二章的图片变化明显,系统无法确定是不是Trump,因为~/picture/known _ people文件夹和~/picture/unknown _ people/photo像素差别很大(如下图1和图2所示)。

  如果想看人脸匹配的具体值,可以传入参数- show-distance true:(默认容错率为0.6)

  如果您不关心图片的文件名,而只想知道文件夹中的图片是谁的,您可以使用以下管道命令:

  可以发现,未知图片的文件夹里只有Trump和kiku。加快人脸识别操作如果你的CPU是多核的,可以通过并行操作来加快人脸识别的速度。例如,如果你的CPU有四个核心,那么通过并行计算,你可以将计算速度提高大约四倍。

  如果使用Python3.4或更高版本,可以传入-CPU number _ of _ CPU _ cores _ to _ use参数:

  $ face _ recognition-CPU 4加速人脸识别操作。如果你的CPU是多核,可以通过并行运算来加速人脸识别。例如,如果你的CPU有四个核心,那么通过并行计算,你可以将计算速度提高大约四倍。

  如果使用Python3.4或更高版本,可以传入-CPU number _ of _ CPU _ cores _ to _ use参数:

  $ face _ recognition-cpu S4 ~/pictures/known _ people ~/pictures/unknown _ people/可以通过传入-CPU-1参数来调用CPU的所有核心。

  今天到此为止。更多详情请看以下系列:项目源代码:https://github.com/ageitgey/face_recognition.

  转载请联系作者取得转载授权,否则将追究法律责任。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: