something about my learning face recognition
-
安装:
- face_recognition, openface, facenet这几个使用python,有些依赖于dlib库用作检测定位人脸,有些用他的深度残差网络来做人脸特征获取。在一些用例中有用到opencv作为辅助,不过他本身的人脸识别库没有opencv的依赖。openface, facenet这两个在下载依赖的时候,会有些函数已经被新版本的库给删掉了,face_recognition下载的时候的时候算是比较顺的。
- Seetaface2使用c/c++语言,配合使用动态链接库来使用它的库函数,但是官方给的文档支持Win和Linux,试着使用MacOS编译,倒也能编译出来,不过修改example内容后,重新编译,出错了,大概是需要修改他提供的cmake文件,使得可以生成一个完整的编译链,会有些麻烦。
-
文档:
-
效果:
从官方给的表面数据来看,准确率:facenet > face_recognition > openface > Seetaface2, 但是我在openface上看到,他的给的数据,有FaceNet Paper (Reference),准确性:0.9963 ± 0.009,Model给的准确率:0.9292 ± 0.0134,那么就有理由怀疑,其他的到底有没有那么高。在face_recognition中有说明,**本项目的人脸识别是基于业内领先的C++开源库 dlib中的深度学习模型,用Labeled Faces in the Wild人脸数据集进行测试,有高达99.38%的准确率。但对小孩和亚洲人脸的识别准确率尚待提升。**那么也有理由怀疑,其他的库对于亚洲人脸效果到底也有没有那么高,不过Seetaface2怀疑度倒是最小。
- 1.基本的功能都是齐全的,收费有按时收费和按调用次数收费。
- 2.效果的话,从给的数据来看,应该差不了太多。
- 3.费用方面,ArcSoft每年一次更新一次key;百度和腾讯优图有一定的免费额度;旷世face++和云从科技没找到免费额度。
- 收费与否:公司有收费项目也有部分免费,也有计量计时的模式
- 功能:公司的功能齐全,有图像预处理,活体检测,开源的只有基本的人脸检测,人脸特征获取,人脸比对
- 文档:公司的文档肯定更齐全,可以直接使用,只要宏观地明白输入输出就行。开源的文档不一定全,可能还需要深挖才能实现某些功能。
LFW全名Labeled Faces in the Wild
,是由马萨诸塞大学于2007年建立,用于评测非约束条件下的人脸识别算法性能,是人脸识别领域使用最广泛的评测集合。
开源库 | 效果(LFW) |
---|---|
Face_recognition | 99.38 |
SeetaTech | |
Openface | 0.9292±0.0134 |
facenet | 0.9963±0.0009 |
产品 | 效果(LFW) |
---|---|
百度大脑 | 0.9977±0.0006 |
旷世Face++ | 0.9950±0.0036 |
腾讯优图 | 0.9980±0.0023 |
云从科技 | 0.9950±0.0022 |
ARcSoft(虹软) |
VGG resnet深度残差网络
dlib:https://www.cnblogs.com/supersayajin/p/8489435.html
残差网络:https://zhuanlan.zhihu.com/p/72679537。 https://www.bbsmax.com/A/8Bz8nXQo5x/
最好使用GPU
Github:https://github.com/ageitgey/face_recognition
语言:Python
网络模型:使用dlib的网络模型
可以使用gpu加速,cuda加速
文档:http://cmusatyalab.github.io/openface/
Github:https://github.com/cmusatyalab/openface
models:http://cmusatyalab.github.io/openface/models-and-accuracies/
环境:Python2 torch Opencv2.4 dlib18.16
使用docker测试:http://cmusatyalab.github.io/openface/setup/
模型准确性:http://cmusatyalab.github.io/openface/models-and-accuracies/
网络模型:DNN网络模型
使用的训练集: FaceScrub 和 CASIA-WebFace.
得到四个不同参数的模型:
可以开gpu加速和cuda加速
缺点:所需的依赖版本太老了,好多新版本的库都已经删除了现使用的函数了。
GitHub:https://github.com/davidsandberg/facenet
语言:Python
框架:tensorflow,dlib
训练集:Casia-WebFace和VGGFace2
网络模型:Inception - resNet
Model name | LFW accuracy | Training dataset | Architecture |
---|---|---|---|
20180408-102900 | 0.9905 | CASIA-WebFace | Inception ResNet v1 |
20180402-114759 | 0.9965 | VGGFace2 | Inception ResNet v1 |
可以开gpu加速和cuda加速
缺点:所需的依赖版本太老了,好多新版本的库都已经删除了现使用的函数了。
语言:c/c++
网络模型:深度残差网络模型ResNet50
训练集:3300万张
测试使用的是FDDB数据集,人脸检测的准确率:
模块 | 方法概述 | 基础技术指标 | 典型平台速度 |
---|---|---|---|
人脸检测 | Cascaded CNN | FDDB 上召回率达到92%(100个误检情况下)。 | 40 最小人脸 I7: 70FPS(1920x1080) RK3399: 25FPS(640x480) |
面部关建点定位(81点和5点) | FEC-CNN | 平均定位误差(根据两眼中心距离归一化) 300-W Challenge Set 上达到 0.069。 | I7: 450FPS 和 500FPS RK3399: 110FPS 和 220FPS |
人脸特征提取与比对 | ResNet50 | 识别:通用1:N+1场景下,错误接受率1%时, 1000人底库,首选识别率超过98%, 5000人底库,首选识别率超过95%。 | I7: 8FPS RK3399: 2.5FPS |
版本 | 人脸检测 | 关键点定位 | 人脸识别 | 第三方依赖 | |||
---|---|---|---|---|---|---|---|
速度[1] | 单精度[2] | 速度 | 功能 | 训练数据规模 | 应用 | ||
1.0 | 16FPS | 85% | 200FPS | 5点 | 140万张 | 实验室 | 无 |
2.0 | 77FPS | 92% | 500FPS | 5/81点 | 3300万张 | 商业环境 | 无 |
备注 |
[1] 640x480输入、检测40x40人脸、I7-6700。 [2] 人脸检测的精度指100个误捡FDDB数据集的召回率。 |
https://ai.arcsoft.com.cn/manual/docs#/41
使用的是CPU
- 1.支持的语言及平台:
虹软视觉开放平台根据不同操作平台提供不同的SDK。目前 SDK(内置活体检测) x86,x64平台(c++/Java语言)、Linux x64平台(c++/Java语言)、iOS平台(Objective-C语言)与Android arm32平台(Java语言); 人证核验SDK 可下载 Windows x86,x64平台(c++语言)与Android arm32平台(Java语言)。
-
2.有收费和免费的:
-
有手机刷脸登陆的方案:https://ai.baidu.com/ai-doc/FACE/7k37c1k3a
-
有离线sdk,还有在线访问API的
-
看了很多,给的指标的都是活体的性能指标:
-
付费
-
离线sdk,采集模块免费,识别对比模块是收费的。
-
访问云API
-
免费额度
-
接口 免费额度 人脸检测 调用量免费,以 QPS 维度来进行资源的赠送或购买。 个人账户默认赠送 2QPS;企业认证账户默认赠送 10QPS。 如需更多 QPS,支持 付费购买 人脸对比 调用量免费,以 QPS 维度来进行资源的赠送或购买。 个人账户默认赠送 2QPS;企业认证账户默认赠送 10QPS。 如需更多 QPS,支持 付费购买 人脸搜索 调用量免费,以 QPS 维度来进行资源的赠送或购买。 个人账户默认赠送 2QPS;企业认证账户默认赠送 10QPS。 如需更多 QPS,支持 付费购买 人脸库管理 包含人脸注册、人脸更新、人脸删除等子接口,每个接口并发相同 调用量免费,以 QPS 维度来进行资源的赠送或购买。 个人账户默认赠送 2QPS;企业认证账户默认赠送 10QPS。 如需更多 QPS,支持 付费购买
免费额度说明:
如果账号完成企业认证
基础服务API
并发支持永久赠送 10QPS,折算成实际业务调用次数,相当于:- 每天:最高免费享用 10QPS *24h* 3600s = 864000次 有效调用
- 每年:最高免费享用 864000次/天 * 365天 = 315360000次 有效调用。
购买费用
-
购买 QPS 数量 按月购买 按天购买 0<QPS<=10 300元/月/QPS 30元/天/QPS 10<QPS<=50 250元/月/QPS 25元/天/QPS 50<QPS<=100 200元/月/QPS 20元/天/QPS 100<QPS 150元/月/QPS 15元/天/QPS 说明:
- 同一个百度云账号下多个应用共享各接口的并发支持。
- 阶梯价格梯度按照单次购买的数量计算,不同订单不累计。
- 每个接口单独计算QPS,若您需要人脸注册和人脸比对接口各15个QPS,则您需要分别购买5个QPS的人脸注册和人脸比接口(企业认证用户免费赠送10QPS)。
- 每个接口最多只可购买200个QPS,如需更多QPS,请 提交工单 与我们联系。
调用计费示例
- 如果您需要50个QPS,除免费赠送的10QPS外(需要企业认证),您还需购买40个QPS。则计费方式为:
300*10+250*30=10500
元/月 - 如果您需要购买1个月+5天的1个QPS,可以按照包月+按天的搭配模式购买,即:
300*1+30*5=450
元
-
-
活体检测使用另外的的计费
-
活体验证 API : 在线活体检测 、H5视频活体检测 与 H5语音验证码
产品价格如下表所示:
接口 产品价格 计费错误码 在线活体检测 调用量免费,以 QPS 维度来进行资源的赠送或购买。 个人账户默认赠送 2QPS;企业认证账户默认赠送 10QPS。 如需更多 QPS,产品价格与基础服务 API 一致 无 H5视频活体检测 0.2 元/次,每天50次免费调用,免费额度用尽后开始计费 计费错误码:216434、216500 H5语音验证码 0.01 元/次,每天50次免费调用,免费额度用尽后开始计费 无 说明: 1.“调用量”包含成功调用与少部分需计费的失败调用,其中需要计费的失败调用请参考上述表格最后一列,错误码详情 2.
H5视频活体检测 API
与H5语音验证码 API
接口并发支持默认 2QPS ,完成百度云企业认证后,并发支持将扩充至 10QPS。如需更多QPS,可以通过提交工单与我们联系
-
-
-
开放形式:
-
1.API
通过 API 直接调用 Face++ 的各项能力,适合联网产品。
-
2.SDK
移动端应用通过嵌入SDK获得开放能力,适合离线场景(如实时美颜),目前支持 Android / iOS。
-
-
-
包时计费:
人脸识别 面部特征分析 人脸稠密关键点 其他 100元 / QPS / 天 1,000元 / QPS / 个月(30天) 500元 / QPS / 天 10,500元 / QPS / 个月(30天) 500元 / QPS / 天 10,500元 / QPS / 个月(30天) 更多 -
按量计费:
人脸检测 人脸搜索 人脸比对 人脸稠密关键点 人脸集合API组 面部特征分析 皮肤分析 3D人脸重建 高阶版-皮肤分析 其他 0.001元 / 次 0.01元 / 次 0.01元 / 次 0.03元 / 次 0.0005元 / 次 0.1元 / 次 0.1元 / 次 2元 / 次 0.3元 / 次 更多
-
-
功能演示:
人脸检测:https://www.faceplusplus.com.cn/face-detection/
费用:
https://open.youtu.qq.com/#/open/experience/living
-
提供包括人脸检测与分析、五官定位、人脸搜索、人脸比对、人脸验证、人员查重、活体检测等多种功能。
-
腾讯云的已编写好的开发工具集(SDK)来调用人脸识别服务 API。SDK 已支持多种语言,包括 Python、Java、PHP、Go、NodeJS、.Net 等。可以通过 SDK 中心 获取。这样就很方便的集成在我们的程序中了。
-
Go封装好的访问云端API的库:https://github.com/Tencent-YouTu/Go_sdk
-
计费:
-
在线API调用
针对在线 API 调用方式,腾讯云提供预付费和后付费两种计费模式,无论您选择何种计费模式,您每月每种服务均有10000次的免费调用额度,以免费资源包的形式发放到您的腾讯云账号中,优先扣除。
- 您可以在 控制台-资源包管理 中查看免费资源包的消耗情况。
- 免费资源包消耗完后,如果您已购买付费资源包,则将转入预付费资源包结算,如果您未购买预付费资源包或者预付费资源包已耗尽,将直接转入后付费结算。
预付费当前不支持退款和剩余次数冻结。如需购买,请单击 购买资源包。
资源包规格 100万次 1000万次 5000万次 1亿次 人脸检测与分析 450元 4100元 17500元 25000元 五官定位 1900元 18200元 82500元 135000元 人脸比对 3100元 30400元 142500元 255000元 人脸验证 3100元 30400元 142500元 255000元 人脸搜索 3100元 30400元 142500元 255000元 人员库管理 3100元 30400元 142500元 255000元 人脸静态活体检测 1800元 17400元 75000元 110000元
-
- dlib----go----读取模型,参考例子:
1.https://studygolang.com/articles/20172
2.https://hackernoon.com/face-recognition-with-go-676a555b8a7e
3.https://godoc.org/github.com/Kagami/go-face
4.https://github.com/Kagami/go-face/blob/master/classify.cc
- opencv---dnn库----gocv----读取模型,参考例子:
1.https://github.com/tczhangzhi/face-recognition
2.https://zhuanlan.zhihu.com/p/54845295
3.https://www.jianshu.com/p/c87e3e88e8dc
- 利用欧式距离计算相似度:
2.dlib:dlib::squared_euclidean_distance()
3.golang:gonum.Norm
- 利用余弦距离计算相似度:
https://blog.csdn.net/akadiao/article/details/79767113
Deep Neural Networks (dnn module)
https://docs.opencv.org/master/d2/d58/tutorial_table_of_content_dnn.html
https://github.com/opencv/opencv/wiki/Deep-Learning-in-OpenCV
https://docs.opencv.org/3.4/d6/d0f/group__dnn.html#ga3b34fe7a29494a6a4295c169a7d32422
https://github.com/Smartuil/OpenCV-Practical-Exercise
1.人脸检测,opencv-haar,opencv-dnn,dlib-hog,dlib-dnn
2.特征提取,dlib-dnn+res模型,opencv-dnn+模型
3.匹配和识别,分类比对,欧式距离,余弦距离
DNN:
2.BlobFromImage函数解析:https://blog.csdn.net/u011341856/article/details/100041050
3.使用:
-
face detection —— FMTCNN
-
face calibration —— Affine Transform
-
face feature extraction —— SphereFace
-
face classification —— Cosine Similarity
https://github.com/tczhangzhi/face-recognition
4.opencv DNN模块之人脸识别基于Torch openface:
https://blog.csdn.net/z961968549/article/details/104270723
5.https://github.com/Smartuil/OpenCV-Practical-Exercise