诸如此类的实地场景想必大家并不陌生,那么支撑这些场景落地的技术究竟是什么呢?
实际上,这类设备的操作流程可统称为 人脸识别系统 。从英国赫特福德大学与 GBG Plc 的研究者发布了一篇综述论文中可知,它主要由人脸检测、人脸对齐、人脸表征、人脸匹配的模块构建而成。在这里我们就不详细展开,不过进行人脸智能识别分析中担任较为重要的两项功能则是由人脸检测与人脸识别共同完成的。
其中,人脸检测技术完成了两项工作:一是判断采集设备中是否包含人脸的区域;二是如果存在人脸,则将人脸位置预测出来,并标示出人脸的位置。之后的工作就由人脸识别技术接替。
接任之后,人脸识别技术利用自身的核心算法对脸部的五官位置、脸型和角度进行计算分析,进而与自身数据库里已有的范本进行比对,从而判断出用户的真实身份,执行设备指令。
01人脸识别技术的三种模式
在实际应用中,人脸识别技术有三种模式,分别为1:1模式、1:N、M:N模式。
M:N
M:N的模式是计算机将场景内所识别的脸部信息与人像数据库的所有人的信息进行对比。因此在大多数采集设备进行人脸识别计算分析的过程中,采用的都是M:N模式。
然而,这种模式存在的一定程度 的缺陷。譬如,算法的运行需要依靠海量的人脸数据库才能运行。另外,由于数据库中的识别基数过大、设备分辨率不足等外部干扰因素,往往会导致M:N模式产生很高的错误率影响识别结果,甚至出现盗刷的安全问题。
验证你是你与寻找我是谁
从定义上看,1:1本质上是”证明你是你“的过程,即将你的人脸与数据库快速对比看看是否匹配;而1:N则是”寻找我是谁“的过程,即在海量的人像数据库中找到采集设备的当前用户的人脸数据进行匹配。
一旦N越大,人脸识别会越困难。所以从技术难度及落地场景上1:N的难度高于1:1。
02一款 阿里云 视觉智能开放平台人脸1:N的开源替代
不过如今伴随技术的不断进步与完善,在行业实际应用市场上,1:N的实际应用场景也逐渐扩大。
譬如阿里云视觉智能开放平台下围绕「人脸人体」大类下上线的视觉AI算法,其中就包括人脸比对1:N。
据官方介绍可以得知,在使用在使用人脸比对1:N之前,需要创建对应的人脸库并在人脸库中加入对应的人脸数据,以上工作准备好后,输入单张人脸图片通过调用人脸比对1:N算法,会与人脸库中的人脸图片进行对比并进行结果的输出。
今天我们就给大家介绍一款在Gitee上开源,使用 Java 开发的与阿里云视觉智能开放平台的人脸1:N相似的开源替代项目—— face-search。
值得关注的是,该项目中使用的模型均为开源模型,项目支持milvus和proxima向量存储库,并具有较高的自定义能力。
face-search 开源许可证: MIT 项目地址: https:// git ee.com/open-visual/face-search
项目部署
- docker 部署,脚本目录: [face-search/scripts]
1、使用milvus作为向量搜索引擎
docker-compose -f docker-compose-milvus.yml --compatibility up -d
2、使用proxima作为向量搜索引擎
docker-compose -f docker-compose-proxima.yml --compatibility up -d
- 项目编译
1、克隆项目
git clone
2、项目打包
cd face-search && sh scripts/docker_build.sh
如何进行人脸搜索服务
- 接口描述:
接口地址: /visual/search/do
- 请求方式:POST
consumes: [application/json]
produces: [“*/*”]
- 请求示例
{
"namespace": "",
"collectionName": "",
"imageBase64": "",
"faceScoreThreshold": 0,
"confidenceThreshold": 0,
"limit": 0,
"maxFaceNum": 0
}
其余的关于 数据库管理 、 人脸样本管理 、以及 人脸数据管理 等文档,请登录 #1%E4%BA%BA%E8%84%B8%E6%90%9C%E7%B4%A21n 查看。