标题:Qt编写百度离线版人脸识别+比对+活体检测
作者:liudianwu
日期:2018-09-15 22:24
内容:
在AI技术发展迅猛的今天,很多设备都希望加上人脸识别功能,好像不加上点人脸识别功能感觉不够高大上,都往人脸识别这边靠,手机刷脸解锁,刷脸支付,刷脸开门,刷脸金融,刷脸安防,是不是以后还可以刷脸匹配男女交友?
很多人认为人脸识别直接用opencv做,其实那只是极其基础的识别个人脸,然并卵,好比学C++写了个hello类似。拿到人脸区域图片只是万里长征的第一步,真正能够起作用的是人脸特征值的提取,然后用于搜索和查找人脸,比如两张图片比较相似度,从一堆人脸库中找到最相似的人脸,对当前人脸识别是否是活体等。
对于可以接入外网的设备,可以直接通过在线api的http请求方式获得结果,但是有很多应用场景是离线的,或者说不通外网,只能局域网使用,为了安全性考虑,这个时候就要求所有的人脸处理在本地完成,本篇文章采用的百度离线SDK作为解决方案。可以去官网申请,默认有6个免费的密钥使用三个月,需要与本地设备的指纹信息匹配,感兴趣的同学可以自行去官网下载SDK。
百度离线人脸识别SDK文件比较大,光模型文件就645MB,估计这也许是识别率比较高的一方面原因吧,不断训练得出的模型库,本篇文章只放出Qt封装部分源码。官网对应的使用说明还是非常详细的,只要是学过编程的人就可以看懂。
第一步:初始化SDK
第二步:执行动作,比如查找人脸、图片比对、特征值比对等
完成头文件代码:
#ifndef FACEBAIDULOCAL_H
#define FACEBAIDULOCAL_H
/**
* 百度离线版人脸识别+人脸比对等功能类 作者:feiyangqingyun(QQ:517216493) 2018-8-30
* 1:支持活体检测
* 2:可设置最大队列中的图片数量
* 3:多线程处理,通过type控制当前处理类型
* 4:支持单张图片检索相似度最高的图片
* 5:支持指定目录图片生成特征文件
* 6:支持两张图片比对方式
* 7:可设置是否快速查找
* 8:可设置是否统计用时
*/
#include
#include
#if (QT_VERSION > QT_VERSION_CHECK(5,0,0))
#include
#endif
#include "baidu_face_api.h"
class FaceBaiDuLocal : public QThread
{
Q_OBJECT
public:
static FaceBaiDuLocal *Instance();
explicit FaceBaiDuLocal(QObject *parent = 0);
~F ..
#1 [crazy 09-16 10:14]
一级棒 不懂,帮顶
#2 [自强不吸 09-17 08:38]
#3 [305750665 09-17 08:42]
刘大师威武
#4 [john_wang 09-17 09:15]
#5 [windzq 09-17 14:05]