龙空技术网

介绍一款阿里云视觉智能开发平台人脸识别开源替代项目

Gitee 267

前言:

今天各位老铁们对“人脸识别开发平台”大致比较讲究,各位老铁们都需要知道一些“人脸识别开发平台”的相关内容。那么小编在网上汇集了一些有关“人脸识别开发平台””的相关资讯,希望各位老铁们能喜欢,姐妹们快快来了解一下吧!

回想起每天生活的场景:起床时打开手机无需输入密码或指纹验证,拿着手机屏幕对着脸就可自动解锁;进公司考勤打卡时也无需拿卡排队验证,仅需将脸对准机器扫描一通便可入内;办公休闲去自动贩卖机购买物品时,也不用拿着手机到处跑,只要人站到贩卖机的刷脸支付前,就能成功购买.....

诸如此类的实地场景想必大家并不陌生,那么支撑这些场景落地的技术究竟是什么呢?

实际上,这类设备的操作流程可统称为人脸识别系统。从英国赫特福德大学与 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项目地址:

项目部署docker部署,脚本目录:[face-search/scripts]

1、使用milvus作为向量搜索引擎  docker-compose -f docker-compose-milvus.yml --compatibility up -d2、使用proxima作为向量搜索引擎   docker-compose -f docker-compose-proxima.yml --compatibility up -d
项目编译
1、克隆项目  git clone 、项目打包   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}

其余的关于数据库管理人脸样本管理、以及人脸数据管理等文档,请登录 查看。

项目架构

标签: #人脸识别开发平台