算法推荐 | 在iOS14与Android11系统上,App开发如何实现人脸识别


    智能手机堪称移动互联网时代的机械义肢,与日常生活密不可分。除了手机操作系统自带的人脸解锁,大量App也引入了人脸识别以进一步完善产品功能,譬如政务和金融类App会通过人脸识别进行用户身份核验,相册管理App通过以此进行照片分类,摄影摄像类App则通过人脸检测进行对焦和美颜……
    尽管手机上发生的人脸识别都在同一套硬件上运行,然而App并不能调用操作系统自带的人脸识别功能,而是需要在开发中引入第三方算法。在算法类型的选择上,大致有API和SDK两类。考虑到如今App开发通常需要兼容多版本iOS和Android系统,所以算法最好能同时适配iOS14与Android11这两个操作系统的最新版本。
    【适用App的人脸识别算法选型】
    API和SDK是人脸识别算法的不同应用形式,与识别准确率无关,取决于算法厂商究竟是开放可以调用人脸识别功能的接口(API),还是直接提供人脸识别软件的安装包(SDK)。
    API本质上是“在线请求,返回结果”:算法厂商将算法布置在云端,把接口向有需求的公司开放。本地端只上传照片,并接收结果。整个人脸识别过程都在云端进行,消耗云端算力。SDK是软件开发工具包。算法厂商将人脸识别功能封装成SDK,分发给其他公司使用。使用时需要下载安装软件包,算法在本地端运行。
    API由于消耗云端算力,所以难以完全免费。通常算法提供商会根据调用量收费,目前业内知名的几大公司均采用此类模式。但是考虑到APP用户一般规模量较大、使用频繁,大规模调用下的高成本,将成为中小企业不小的成本负担。
    另外,由于API的人脸识别数据需要上传和存储在云端,必须要在有网络的环境下使用,算法运行速度受网络状况影响较大,也存在一定的数据泄露风险。对数据安全性要求较高,或是需要在无网络封闭环境下应用的场景,就不适合使用人脸识别API。
    SDK与API恰好相反,所有运算都放在本地端进行。API的缺陷恰好成了SDK的优势,以业内公认在人脸识别SDK领域可能最具影响力的虹软视觉开放平台为例,它免费提供的ArcFace SDK能够本地运行,离线使用,不受网络环境影响,响应速度极快;人脸数据也储存在本地,无需与服务端进行数据交互,安全性更高;正因为算法是本地运行,使用时也就无需为云服务和网络流量支付成本,这也是能免费提供给开发者使用的重要原因。
    
    图片源自虹软视觉开放平台官网
    在ArcFace的基础上,虹软视觉开放平台还推出了增值版算法ArcFace Pro App,性能进一步提升,1:N支持万人级人脸场景,RK3399平台1万人全流程时间400ms以内,支持包括IOS14和Android11在内的多平台和多版本系统。
    该算法适用于大规模量级的App应用场景,涵盖采集、比对、活体、识别、人证等功能,实现毫秒级识别,适配市场主流镜头模组、芯片方案,让App轻松接入人脸识别能力,实现刷脸登录、实名认证、娱乐应用等功能,并配有专人对接提供技术支持,让算法集成也不再成为难题。
    【App端算法应用实例】
    业内知名的学前教育服务平台掌通家园就采用了ArcFace Pro App,而无需为每日高额调用量付费。为解决家长和校园之间的信息不对称的问题,掌通家园推出了“掌通时光集”功能:通过文字、图片、语音及视频等多样化载体,记录幼儿在学校从上学到下课、从入园到毕业的精彩瞬间。
    但是在该功能上线初期,全靠幼儿园老师上传照片、视频后,手动进行分类并添加标签。这使得教师需要在照顾孩子们的同时,投入大量精力,且往往难以做到分类的准确和及时。引入虹软视觉开放平台的ArcFace Pro App后,教师们只需上传学生照片和视频,无需额外操作,系统即可自动识别、快速归类属于每位孩子的照片和视频,并及时推送至家长手中的APP内。
    
    图片源自虹软视觉开放平台官网
    离线使用则是ArcFace SDK的另一大优势。在部分人迹罕至的极端场景中,网络难以部署到位,但又需要人脸识别来核验用户身份,譬如护林员在大山深处进行林场巡逻。
    为确保护林员抵达特定地点完成巡检,管理系统会要求护林员抵达特定地点后打开软件进行身份核验。此时手机自带的GPS导航系统仍然能接受到卫星发出的信号,因此能确定护林员身处位置,但由于网络不畅,人脸识别API无法发挥作用,ArcFace SDK则能够顺利使用。打卡完成后,当巡检员回到有网络的区域,手机管理系统会自动上传打卡记录,从而实现巡检管理的闭环。
    总体而言,人脸识别API和SDK各有千秋,需要开发者根据实际场景选择使用。目前支持iOS14和Android11版本系统的人脸识别SDK并不多,虹软视觉开放平台推出的ArcFace Pro App已经实现对该版本的支持与优化,值得开发者尝试一下。