想做人脸识别手机的开发,有没有android的功能全的人脸识别手机SDK?

初学者现在做到这一块,静态嘚好做动态的bug连连,而且识别率太低有木有大神能给点

人工智能时代快速来临其Φ人脸识别手机是当前比较热门的技术,在国内也越来越多的运用例如刷脸打卡,刷脸APP身份识别,人脸门禁等当前的人脸识别手机技术分为WEBAPI和SDK调用两种方式,WEBAPI需要实时联网SDK调用可以离线使用。

Android作为一个比较广泛的平台如何实现人脸识别手机功能呢。

本文章将以一個示例的形式介绍一下我在这方面的经验

本次使用的虹软提供的人脸识别手机的SDK,此SDK也可根据不同应用场景设计针对性强。包括人脸檢测、人脸跟踪、人脸识别手机即使在离线环境下也可正常运行。 
虹软公司是一家具有硅谷背景的图像处理公司除了人脸技术以外,還有多项图像及视频处理技术他们的双摄像头处理算法和人脸美化算法囊括了包括OPPO VIVO,SUMAMNG一系列手机厂商

我们需要实现一个人臉识别手机功能。简单来说就是机的后置摄像头,识别摄像头中实时拍到的人脸信息如果人库注册过,则显示识别后的人脸信息如登记的名字;如果不在,提示未注册 
这个功能具有多个应用场景,比如火车站或者打卡和门禁系统中。

人脸识别掱机包括两个必备的过程人脸注册和实时识别。 
人脸注册是指把人脸的特征信息注册到人脸信息库中人脸注册的来源可以有很多种,仳如

人脸特征提取是一个不可逆的过程你无法从人脸特征信息还原一个人的脸部照片。

在线库在使用时需要传递照片信息,或者提取圖像特征值

离线的SDK相对安全,但是在线的SDK通常提供更多的接入和调用方式,这个要结合实际情况来选择

人脸注册和识别的过程可以鼡下面的图来表示。

在开发之前需要到虹软的官网 
下载用到的android库下载的压缩包中有3个压缩包,如下图: 

人脸检测是人脸技术的基础使用虹软人脸引擎,能够帮助您检测并且定位到影像(图片或者视频)中的人脸

人脸识别手机。引擎可独立运行在终端设备或者獨立服务器中应用端可独立完成算法运行,能保证用户数据的私密性自主运营与保护用户敏感信息。 

人脸跟踪精确定位并追踪面部區域位置,随着人物脸部位置的变化能够快速定位人脸位置并且适用于不同表情、性别、年龄、姿态、光照等条件。

这三包的结构基本楿同我们需要把它们解压。 
- doc 此目录中存放GUIDE文档是说明文档,里面介绍了公开发布的一些API并提供了示例代码。 
- libs 开发中需要用到的库需要把它们目录结构不变的全部引用到你的项目项目中。 

注意:开发中还需要APP_Id和SDK_Key的激活码这些激活码可以在账号管理–》您的申请记录,对应的下载应用中找到相应的激活码

因为引擎需要的图像格式是NV21的,所以需要将摄像头中的图像格式预设置为NV21

从摄像頭识别人脸需要使用FT库,FT库在人脸跟踪算法上对人脸检测部分进行了优化是专门为视频处理而优化的库。

初始化囚脸检测引擎(FT)

和FD一样我们需要初始化人脸识别手机FT引擎。

在摄像头的预览事件处理函数中先调用FT的人脸识函数函数,然后再调用FRΦ的人脸信息特征提取数函数

这里面的result中保存了人脸特征信息。我们可以将其保存下来或下来并与系统中的其它信息进行对比

当score的特征信息大于0.6时,我们就可以认为匹配到了人脸显示人脸匹配信息。

上面的循环中可以看到,是遍历了真个库进行寻找我们的目的是為了演示,实际情况下我们可以在找到一个匹配值比较高的人脸后,就跳出循环

我们来看一下运行的结果。 
效果还不错吧鍾汉良帅哥一枚。

本文档中所有的代码都可以在 下载如果你需要寻找更多的人脸识别手机的demo,也可以到虹软的论坛中去寻找 

附录:会遇到的问题及解决方案

如果你使用的是github中的示例,你可能会遇到下面的问题

直接从github上下载的源代码会有这個问题。

这个主要是build 的版本和gradle中指定的版本不一致按照提示下载或者修改版本指定就可以了。

首先请检查是否导入了必要的so文件一共需要导入四个.so文件。 
另外请确认使用是的真机调试。因为调用了摄像头请使用真机调试。

人脸识别手机是当前的热点技术使用范围广,用户体验良好对硬件的依赖低,不需要昂贵的传感器芯片一个高清的摄像头就可以完成。以前的成本是人脸识别手机的SDK比较貴但现在虹软的SDK免费之后,集成的成本就大大降低了

目前我们的应用内使用了 ArcFace 的人脸檢测功能其他的我们并不了解,所以这里就和大家分享一下我们的集成过程和一些使用心得 集成 ArcFace FD 的集成过程非常简单 在 ArcFace FD 的文档上有说明支持的系统为 5.0 及以上系统但其实在 4.4 系统上也是可以跑的,

我觉得 ArcFace 的优势除了多角度检测之外另外一个是他的每次检测并不是独立,即這一次的检测结果会指导下一次的检测 (我猜测的->_->) 所以 ArcFace 在检测到人脸之后识别的时间会大幅减少,而 Seeta FD 的检测每次都是独立的所以在无人臉的情况下,Seeta 的检测速度要快于 ArcFace, 但是检测到人脸之后因为应用整体的计算量增加,导致 Seeta 的检测速度降低的非常明显大大慢于 ArcFace, (所以二者昰不是可以结合一下...)

优化 不得不说 ArcFace FD 的错误率是有待优化的,虽然 ArcFace 没有提供任何可以调节的参数但是还是可以稍微优化一下!

因为从摄像头絀来的 yuv 数据是横向的,而 ArcFace 只有 AFD_OPF_0_HIGHER_EXT 这个扩展选项优先检测 0 度方向, 但是这个方向一般是没有人脸的,所以如果直接进行检测我们觉得这个可能会增加检测的错误率(猜的->_->),所以处理方法是将 yuv 旋转到手机竖屏方向(当然这个操作不是直接由 CPU 来处理而是从 Camera 的外部纹理上开始做操莋)再拿去检测,这样会减少一点错误率(从用户反馈得出)虽然错误率依然很高(特别对于带栅格的物体)希望虹软能继续优化!

另外一个是目前 ArcFace 还没有支持 Android 8.x 系统,所以这种情况下我们会启用备选的其他方案来进行人脸检测!

最后希望虹软能把 ArcFace 越做越好 _ 因为只有产品足够好才会不断的有人为你做免费宣传 查看更多分享戳?ArcFace Android 人脸检测集成分享

Face++ 致力于研发世界最好的人脸技术提供免费的API和SDK供企业和开发者调用,更有灵活的定制化服务满足不同需求已有多家公司使用Face++技术服务,完成包括人脸搜索、定位、识別、智能美化等功能我们旨在为合作者提供完善的技术与维护服务。


百度媒体云人脸识别手机服务依托百度业界领先的人脸识别手机算法,提供了人脸检测、五官定位、人脸属性检测等功能媒体云人脸识别手机服务通过提供一系列HTTP Restful API及跨终端平台SDK,实现人脸检测、人脸識别手机等的诸项功能


利用ReKognition提供的云端人脸识别手机API实现的一个简单人脸识别手机Demo,能够识别人脸的五官、人脸的大概年龄、是否戴眼鏡、是否闭眼、性别等等功能


RecoFace人脸识别手机SDK是瑞为自主研发的人脸识别手机核心算法,包括人脸检测、人脸跟踪、人脸确认与人脸识别掱机四大核心功能无论是识别准确度还是识别速度均处于全球领先水平。


汉王科技凭借十几年扎根模式识别领域的底蕴早在2003年,就瞄准人脸识别手机技术的国际前沿积极开展人脸识别手机技术的潜心研究。目前已经拥有完全自主知识产权的“双目立体”人脸识别手机算法(Dual Sensor)汉王云提供免费的人脸识别手机API和SDK供企业和开发者调用,汉王人脸识别手机技术广泛应用于智能安全、身份验证等领域还可識别表情年龄性别,应用开发最具潜力


科大讯飞联合香港中文大学汤晓鸥教授团队,共同推出世界领先的人脸识别手机技术提供人脸驗证、人脸检测、人脸关键点检测等功能,识别率高达99%核心技术源自于学术界最新的深度学习方法及其相关研究,结合大量公开和独有嘚训练数据集在超级计算机上学习并提取照片特征,实现高效准确的标定和识别致力于提供便捷准确的人脸识别手机技术,为移动设備交互、摄像头应用等不同场景提供强有力的技术支持


我要回帖

更多关于 人脸识别手机 的文章

 

随机推荐