• Openface 入门


    Openface 简单入门

     

    背景

    Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了。

    Openface人脸比对结果的准确度可能不是很好,它是有待提升的。如果有能力的话, 可能通过源码进行优化。 一般来说,置信度小于1 的基本可以接受的,但是这个要看具体的使用场景,我们可以根据具体的业务设置这个置信度阈值。 如果Openface 准确度达不到我们的要求, 我们可以多试几次,或者提供更加高质量的训练库图片和比对图片,或者业务上进行控制和优化,比如前端提示图片无法识别,图片不清晰等等。

    安装

    官方推荐用docker来安装openface,这个参照官方文档,直接用docker安装即可。如果自己一步步去安装的话,估计很花时间,而且不一定能完成。

    除了安装,我们至少需要做一些准备工作,这就是人脸训练; 然后, 我们才可以使用它进行人脸识别/比对等操作

    1 人脸训练

    上传基础图片,比如客户经理的图片:

    将同一个人的照片,以其名字命名,然后放入同一个目录,目录名字以人名进行命名。然后上传或挂载到bamos/openface 镜像容器的图像训练目录:/root/openface/data/mydata/train_img,

    胡歌的图片目录是:/root/openface/data/mydata/train_img/huge/

    杨洋的图片目录是:/root/openface/data/mydata/train_img/yangyang/

    我的图片目录是:/root/openface/data/mydata/train_img/lk/

    照片要求:

    尽量清晰,正面照,单人照,有且只有一张完整的人脸,可以有表情,但是尽量简单,不要太夸张的表情。照片至少8张,20 张以上为佳。 照片数量越多,效果越好。照片背景不限,衣着不限,越丰富越好,但一定要是同一个人的照片。图像大小以20~500K 为佳。

    图片预处理:

    ./util/align-dlib.py data/mydata/train_img/ align outerEyesAndNose data/mydata/aligned_images/ --size 64

    特征提取:

    ./batch-represent/main.lua -outDir data/mydata/generated_charaters/ -data data/mydata/aligned_images/

    训练图片:

    ./demos/classifier.py train data/mydata/generated_charaters/ 

    2 使用它做人脸比对

    上传照片:

    先将单张照片放入到容器的/root/openface/data/mydata/others/ 目录,图片格式尽量统一,比如都使用jpg格式。

    调用接口,结果验证:

    ./demos/classifier.py infer data/mydata/generated_charaters/classifier.pkl /root/openface/data/mydata/others/{hu,lk }*

    这里的/root/openface/data/mydata/others/{hu,lk }* 是需要进行和现有图片库做分类比对的图片, 这里 {hu,lk }* 是一个正则表达式, 表示那个目录下, hu或lk 开头的所有文件。 我们可以指定一个具体的路径,比如:

    /root/openface/data/mydata/others/zhangsan.jpg

    输出:

    === /root/openface/data/mydata/others/hg4.jpg ===

    Predict huge with 0.91 confidence.

    === /root/openface/data/mydata/others/lk (1).jpg ===

    Predict lk with 0.93 confidence.

    === /root/openface/data/mydata/others/lk (2).jpg ===

    Predict lk with 0.91 confidence.

    如上所见,输出结果格式是这样的:

    === 正在进行比对的图片的全路径 ===

    Predict 人名 with 置信度 confidence。

    表示的意思是, 如

    === /root/openface/data/mydata/others/hg4.jpg ===

    Predict huge with 0.91 confidence.

    意为: /root/openface/data/mydata/others/hg4.jpg 这张图片是 huge(胡歌)的可能性是0.91。 一般来说, 置信度越小,说明判断正确的可能性越大, 结果小于1 表示基本可以相信。 大于1 表示基本不可信。

    3 常见问题

    Q: 人脸图片无法训练或无法比对, 出现cant find a face … 报错

    A: 这个很可能是图片质量问题,图片要尽量清晰和完整,不能有太大变形,光照不能太暗, 光线要均匀等等。如果图片没拍摄好,我们需要删除重新拍摄,然后上传。

    Q: 同一个人的照片,结果显示置信度大于1是怎么回事?

    A: 这种情况是可能发生的,至少有两个方面原因,1是他的训练图片库的照片质量不高,2是他新上传的需要进行比对的图片质量不高。对此我们可以多试几次,或者提供更加高质量的训练库图片和比对图片,或者业务上进行控制和优化。

    Q: 需要比对的图片是huge怎么被分到了yangyang 这个类别,而且置信度还挺好的,怎么解释?

    A: 这个还是图片质量问题,有两个方面原因,同上。

    参考:

    http://www.cnblogs.com/minsons/p/7922080.html

    http://cmusatyalab.github.io/openface/

    http://www.cnblogs.com/pandaroll/p/6590339.html

    http://blog.csdn.net/u011531010/article/details/52270023

  • 相关阅读:
    小程序滴滴车主板块的银行卡管理左滑删除编辑
    超好用超短的小程序请求封装
    如何使用css来让图片居中不变形 微信小程序和web端适用
    纯css手写圆角气泡对话框 微信小程序和web都适用
    小程序getUserInfo授权升级更新登录优化
    一起聊聊3个线程依次打印1、2、3...的故事
    influxdb基础那些事儿
    influxdb的命令们
    Linux namespace浅析
    kubernetes基础概念知多少
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/8184089.html
Copyright © 2020-2023  润新知