比较两张脸是否来自同一个人。

face-compare的Python项目详细描述


面部对比

人工智能人脸比较使用FaceNet,比较两张照片,看看他们是否是同一个人。在

安装

pip install face-compare

使用

使用compare_faces.py比较两个人物的图像,看他们是否是同一个人。在

^{pr2}$

可选地将裁剪后的图像输出输出到一个目录(用于检查AI模型的输入)

compare_faces.py --input-one /path/to/image_one.png --input-two /path/to/image_two.png -s /path/to/outputs/

涉及的步骤

  1. 采用级联分类器对输入图像中的人脸进行检测。在
  2. 然后利用该分割的边界盒对图像进行裁剪,并输入到人工智能模型中。在
  3. 然后,FaceNet模型计算两个裁剪图像的图像嵌入量。在
  4. 最后从第一个嵌入中减去第二个嵌入,并计算该向量的欧几里德范数。在
  5. 阈值0.7用于确定他们是否是同一个人。在

已知问题

仅CPU运行时问题

如果尝试在没有合适的GPU的情况下运行模块,则可能会遇到以下错误消息:

tensorflow.python.framework.errors_impl.InvalidArgumentError:  Default MaxPoolingOp only supports NHWC on device type CPU

要使用“英特尔CPU体系结构”解决此问题,可以通过安装TensorFlow英特尔优化包

pip install intel-tensorflow

参考文献

这个模块使用AI模型FaceNet,可以找到here,以及期刊文章here。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”