实战分享:如何规划一款人脸识别考勤门锁产品
本文通过一款人脸识别考勤门禁产品,分享初做AI产品过程中的思考和总结,特别对人脸识别性能指标做了详细的说明。
目录
- 为什么是人脸识别
- 确定需求和场景
- 整体方案设计
- 产品开发
- 产品测试-人脸识别指标详解
- 总结
随着AI技术兴起的浪潮,各种传统硬件不断被智能化,以提高效率和体验。纵观市面上的AI硬件产品,无非有两种:
- 一种是传统硬件企业以硬件为主进行AI赋能,比如智能门锁、智能冰箱等,核心还是硬件;
- 另一种就是互联网企业以提供AI服务和内容为主的载体终端,比如智能音箱、翻译机等,核心是AI服务能力和内容;
硬件不同于软件,做硬件成本很高,但是随着市场不断扩大,竞争也越来越大,产品开始同质化导致价格不断降低,利润也越来越低。所以对于传统硬件公司来说,一方面需要引入新的AI元素对产品进行创新打造差异化,另一方面也要不断满足用户新的需求,保持市场地位。
互联网公司在软件服务上有明显的优势——擅长AI技术研发以及设备管理系统、业务管理系统、APP等平台开发,海量数据收集和内容提供,具有很强的产品运营能力和营销意识。战略上作为软件服务的延伸,互联网企业也可能会开发硬件产品,打造新的端到端的闭环。
做为创业者,直接从硬件入手门槛非常高,硬件涉及到ID结构、组装生产、供应链管理和销售渠道等方面,需要长期的摸索积累;在这个机会稍纵即逝的关口,这显然不合适。所以,不妨将自己定位为一个AI技术解决方案和服务商,为传统硬件企业赋能,这样既能贴合传统硬件企业转型升级的迫切需求,又能避开跟大型互联网企业的直接竞争。
本文通过针对200人以内企业的人脸识别考勤门禁一体机方案,分享一下关于做AI产品的一些思考和总结。
一、为什么是人脸识别
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。说到生物识别,通常应用在智能门禁中的其他生物识别技术主要包括指纹、静脉、虹膜、声纹。对比如下图所示:
目前消费者对智能门禁的关注顺序如下:首先是安全性;然后是长期稳定性(5~10年)、便利性、准确性和成本;其他因素还有外观、品牌等。综合上表可以看出,在生物识别上,人脸识别具有很大的优势。
目前市面上关于人脸识别考勤一体机的价格主要集中在千元左右,静脉识别和虹膜识虽然在安全性上很有优势,但便利性不够、成本太高;声纹识别准确性中等,且容易受到噪音干扰,因此也很少选择这种方案。
目前市面所有的智能考勤门禁一体机,指纹识别基本上都是标配,相比与人脸识别来说,指纹不够安全也不够便利,而且对小孩和老人的手指支持不好。
综上所述,相比其他生物识别方式,人脸识别非常有优势,而且随着算法的提升和活体检测等技术的补充,人脸识别在安全性和稳定性上会越来越高,这块趋势将越来也明显。
这里普及一下人脸识别的几个特点:
- 非侵扰性:人脸识别无需被识别者主动配合采集设备,在不干扰人们的正常行为情况下就能较好地达到识别效果。
- 非接触性:人脸图像信息的采集不需要用户与设备直接接触。
- 并发性:在实际应用场景下可以进行多个人脸的分拣、判断及识别。
- 友好性:通过人脸识别身份的方法与人类的习惯一致,人和机器都可以使用人脸图片进行识别。
- 便捷性:采集设备简单,使用快捷。常见摄像头在在数秒内即可完成图像采集。
通过人脸识别,能够在保证安全性的前提下,快速地同时对多人进行识别,完成快速解锁通行和排队考勤等应用场景,体验非常好
二、确定需求和场景
需求分析是产品经理的基本功,做需求分析的时候一定要结合具体的场景。
比如我们的人脸识别考勤门禁一体机,主要是用于200人以内的中小公司,一般安装在公司大门口,使用时间早晚比较集中,使用对象包括员工和HR等。不同的场景对需求的具体满足方式提出了不同的要求,也就是对产品方案的要求。
一般客户会提出大概的需求,产品经理需要仔细考虑每一个需求描述,结合自身对竞品、场景和技术的了解,设计产品方案,并反复与客户沟通。比如客户提出了如下需求:
- 人脸识别 数量:不低于200PCS用户
- 刷卡功能 数量:200组
- 密码功能 数量:50组
- 显示屏 2.4 TFT
- 低功耗:待机功耗小于50ua
- 唤醒和对比时间小于1.5秒
- 采用4节干电池供电
- 常规门锁功能
- 内置蓝牙模块
- 手机APP开门
- 考勤功能
- 动态密码功能 10分钟内1次有效 通过手机生成
- 时效密码功能(10组)通过手机下发
- ………
当收集到很多需求时,建议首先对问题进行分类并根据经验和分析进行补全,比如分为嵌入式硬件需求、嵌入式软件需求、APP需求、管理后台需求和其他需求,如下图所示:
这里只是做一下简单的介绍,实际做产品需求分析时候会有大量的沟通和细节上的决策,涉及到用户访谈、竞品分析、场景分析、卡诺分析等多种复杂的过程。
三、整体方案设计
作为AI赋能方案商,我们的专注点通常在人脸识别嵌入式模块和互联网平台服务上,而外观结构、生产组装以及认证销售都由传统厂商负责。
目前关于人脸识别考勤门禁一体机主要有两种方案:
一是终端采集到人脸照片后将图片上传到云端服务器,由服务器对照片进行实时处理,并将处理结果返回给终端设备,这种方案对网络的依赖比较强,同时处理能力也比较强。
二是将训练好的人脸识别模型部署到终端设备上,设备采集到人脸照片后直接处理,只将处理结果反馈到云端,这种方案不依赖外部环境,但对设备本身的计算能力有较高的要求。
随着终端设备计算能力的不断提升和成本下降,第二种方案在体验和成本上的优势将越来越大。系统架构如下图所示:
人脸识别考勤门锁系统主要有以下几个组成部分:
1. 终端设备:由双目摄像头或其他如3D Tof摄像头(图像采集、活体检测)、补光板(适应昏暗环境)、AI芯片(提供模型运行算力)、MCU(业务系统)和触摸屏幕(人机交互界面)等关键元器件和机械零件等组成。
2. 固件:内置了人脸检测、图片预处理、特征提取、特征对比、活体检测、人脸识别等算法模型SDK和门锁应用程序,其中机器学习算法可在外挂的AI芯片上进行加速运算,应用程序在MCU上进行运算;更好的方案是算法模型和应用程序都运行在集成了AI加速单元的SoC芯片上。
3. IOT平台:通常拥有AI能力的硬件会通过wifi或2/3/4G无线网络等方式联网,与云端服务器进行通信。因为终端设备数量众多,且比较分散,也不会实时联网,所以通过IOT平台对设备进行管理,包括设备管理、生命周期管理、固件更新、数据存储、可视化监控等。同时IOT作为管道负责设备端与云端Sass系统之间的数据交互。
4. 门锁Saas系统:人脸识别考勤门锁产品的客户通常为企业用户,一般会提供一个多租户的Sass管理后台,以满足用户门锁管理、报警管理、员工管理、考勤管理等复杂的需求。
5. 小程序:因App开发和维护成本较高,采用小程序实现轻量级的门锁Saas系统中的功能,方便管理员进行移动办公管理。
6. 人脸识别平台:包括人脸数据、标注平台和模型训练平台,将训练好的模型打包成SDK移植到芯片上供业务系统进行调用。
四、产品开发
人脸识别考勤门禁产品方案开发主要涉及到三个方面,分别是:
1. 人脸识别模块:包括人脸数据集准备、人脸数据标注、服务器端训练模型,模型SDK封装和模型迁移到终端环境等;
2. 嵌入式软硬件:人脸识别相关芯片、补光板、活体检测、防撬传感器、屏幕等硬件功能模块和人脸注册识别解锁流程以及设备端用户管理等软件功能模块;
3. 互联网平台:主要指设备连接和通信管理的IOT平台,轻量级的小程序管理端以及完整功能的考勤门禁Saas平台。
4.1 人脸识别模块开发
人脸识别平台通常包括人脸数据库、标注数据库和标注工具、模型训练和测试平台。
通常我们可以采用公开的已经标注好的人脸数据集进行模型训练,为了实现更好的模型效果,也很有必要建立自有的人脸数据库,并通过标注平台对数据进行标注。然后通过Opencv、Dlib、Tensorflow、Cafe等平台对人脸数据集和标注文件进行不断训练和测试,从而得出符合预期的人脸检测、特征提取、特征对比、活体检测等模型。
整个人脸识别平台大概如下图所示:
模型训练好,通常还需要对模型进行裁剪迁移到实际运行环境中并封装成SDK供嵌入式业务系统进行调用,其中还涉及到模型在真实环境中参数的调整和优化。一般的人脸识别流程如下图所示:
关于人脸识别流程,网上有很多资料,写的非常详细,具体查看:
3) AMiner 第十三期研究报告《2018人脸识别研究报告》
人脸采集:通过摄像头实时采集人脸图片,采集人脸数据时需要注意一下关键相应因素:
1. 图像大小:人脸图像过小会影响识别效果,人脸图像过大会影响识别速度。非专业人脸识别摄像头常见规定的最小识别人脸像素为60*60或100*100以上。在规定的图像大小内,算法更容易提升准确率和召回率。图像大小反映在实际应用场景就是人脸离摄像头的距离。
2. 图像分辨率:越低的图像分辨率越难识别。图像大小综合图像分辨率,直接影响摄像头识别距离。现4K摄像头看清人脸的最远距离是10米,7K摄像头是20米。
3. 光照环境:过曝或过暗的光照环境都会影响人脸识别效果。可以从摄像头自带的功能补光或滤光平衡光照影响,也可以利用算法模型优化图像光线。
4. 模糊程度:实际场景主要着力解决运动模糊,人脸相对于摄像头的移动经常会产生运动模糊。部分摄像头有抗模糊的功能,而在成本有限的情况下,考虑通过算法模型优化此问题。
5. 遮挡程度:五官无遮挡、脸部边缘清晰的图像为最佳。而在实际场景中,很多人脸都会被帽子、眼镜、口罩等遮挡物遮挡,这部分数据需要根据算法要求决定是否留用训练。
6. 采集角度:人脸相对于摄像头角度为正脸最佳。但实际场景中往往很难抓拍正脸。因此算法模型需训练包含左右侧人脸、上下侧人脸的数据。工业施工上摄像头安置的角度,需满足人脸与摄像头构成的角度在算法识别范围内的要求。
人脸检测:人脸图像采集完成后需要通过“人脸检测”技术判断图像中是否存在人脸。如果存在人脸则继续流程,否则重新采集图像。
人脸图像预处理:系统获取的原始图像由于受到各种条件的限制和随机干扰,往往不能直接使用,必须在图像处理的早期阶段对它进行图像预处理。所谓图像预处理就是基于人脸检测结果,对图像进行灰度矫正、噪声过滤等处理,并最终服务于特征提取的过程。
人脸图像特征提取:人脸特征提取就是对人脸进行特征建模将一张人脸图像转化为一串固定长度的数值的过程。输入是“一张人脸图像(带人脸坐标框)”,经过人脸关键点定位后,输出人脸相应的一个数值串(特征)。
人脸图像匹配与识别:特征提取后,便可以任意两个人脸特征进行比对,得到投特征之间的相似度。通过设定一个阈值,当相似度超过这一阈值,则把匹配得到的结果输出。人脸验证、人脸识别、人脸检索和人脸聚类都是在人脸特征比对的基础上加一些策略来实现。相对人脸特征提取过程,单次的人脸比对耗时极短,几乎可以忽略;
人脸活体检测:人脸活体(FaceLiveness)是判断人脸图像是来自真人还是来自攻击假体(照片、视频、换脸、面具、遮挡以及屏幕翻拍等)的方法。和前面所提到的人脸技术相比,人脸活体不是一个单纯算法,而是一个问题的解法。这个解法将用户交互和算法紧密结合,不同的交互方式对应于完全不同的算法。
4.2 嵌入式开发
关于嵌入式软件硬件开发流程具体可参考我之前的一篇文章《【从软到硬】做智能硬件的6个月,全流程详解》,这里再详细说明一下实际开发过程中可能会遇到的问题和需要注意的地方。
1. 要选择合适分辨率的双目摄像头,考虑AI芯片对图像的处理能力;同时需要调教摄像头,以便采集到质量更高的图像,并配合模型算法,调整模型参数。
2. 考虑尽量减少电池更换的频率,延长续航时间,降低设备的功耗,当门锁面前无人经过的时候尽量保持休眠状态,可通过单独的传感器做设备激活,比如红外传感器,检测到有人经过时,再启动设备上的其他模块。
3. 考虑设备所处的光线环境,针对强光环境通过滤光片进行过滤,针对弱光环境,要能够及时通过补光板进行补光。
4. 考虑设备的安全性,当有人撬锁时,能够检测出来并及时通知到用户,比如在设备内部加入光感传感器,见光后表示设备被拆解;或者在设备关键结合部加入运动传感器,感受到部件分离时进行报警。
5. 补充第4条,考虑有人通过照片等方式对门锁进行破解或陌生人非法开锁的情况,对可疑人员进行拍照捕捉,并及时通知到管理人员。
6. 选择合适的设备通讯协议,比如MQTT比TCP能够支持更大的并发量,尽量减少设备与服务端的连接,一方面减少资源消耗,另一方面也可以降低设备功耗。
7. 预先定义好人脸识别模块和业务模块的数据协议,以及业务模块与服务端的数据协议,方便模块化开发,以及模块之间的对接,提高整体的开发效率。
4.3 互联网平台开发
这里的互联网平台主要包括IOT平台、考勤门锁Saas平台和小程序,在涉及到硬件的互联网端开发的时候,区别于纯软件产品,功能够用就行了;切忌过度开发,既增加研发成本,也可能开发出来一堆不实用的功能。
IOT平台有很多开源平台可以选择,比如github上人气最高的ThingsBoard就是个不错的选择,功能齐全,架构简单,可视化组件丰富,对于中小型企业应用绰绰有余了。
考勤门锁Saas平台主要考虑如何接收设备数据并进行展示,以及针对用户的双向管理和考勤功能。小程序是为管理员提供的辅助管理客户端,主要用户消息接收,功能上应当尽量简化,主要功能模块如下图所示(部分):
五、产品测试
产品测试除了常规的嵌入式软硬件测试、互联网平台功能测试和整个系统联调测试;还要着重强调一下人脸识别算法的测试,网上有很多介绍关于人脸识别性能的指标,但是都不好理解,这里通过具体数据举例详细说明一下。
通常评价一个人脸识别算法的好坏分两个方面:识别率(准确率、召回率、误识率、拒识率和ROC曲线等)和识别速度。
为了便于理解,这里先举一个人脸识别门锁的模型测试的例子,然后再对相关指标进行说明会更加清晰。人脸识别模型测试方法为比较两个人脸照片是否为同一人,假设如下:
假设一:测试数据集中有100个人,每个人10张人脸照片,那么正样本(同一个人的照片两两组合)数量为 100 * (10 * 9 / 2)= 4500个;负样本(不同人的照片两两组合)数量为 100 * 99 /2 *10 * 10 = 495000个。
假设二:判断两张图片特征相似度时,阈值为80,超过80则判断为同一人;低于80则判断为不同人。
假设三:测试结果如下图所示,其中P表示同一人,N表示不同人,T表示预测结果为真,N表示预测结果为假。
5.1 准确率(Accuracy)
准确率是指我们的模型预测正确的结果所占的比例。准确率的定义如下:
Accuracy = (TP+TN) / (TP+TN+FP+FN)
上面的例子中可以计算出 :
模型的准确率 = (500+490000)/(4500 + 495000) = 98.2%
这个结果足以说明,我们的模型非常不错,绝大部分样本预测正确。但是仔细一看会发现问题,我们4500个正样本中只有500个被正确预测,大部分(另外4000个)正样本没有成功预测出来;相反在495000个负样本中只有5000个没有被预测出来,模型关于正负样本的预测结果差异巨大。
造成这一结果的原因在于正负样本数据集极度不平衡,如果只是预测负样本,那么这个模型或许还可以,但人脸识别更需要对正样本的预测,所以我们还需要关注召回率和精确率。
5.2 召回率与拒识率
召回率(recall,TPR,命中率):在所有正类别样本中,被正确识别为正类别的比例。从数学上讲,召回率的公式如下:
Recall = TP/(TP+FN)
上面的例子中可以计算出:
模型的召回率 = 500 /4500 = 11.11%
由此可见此模型人脸识别成功率很低。
拒识率(False Reject Rate,FRR)与召回率相反,是指在所有正类别样本中,被错误识别为负类别的比例。比如张三拿着李四的手机人脸解锁成功了,公式如下:
FRR = FN/(FN+TP)= 1-TPR
上面的例子中可以计算出:
模型的拒识率= 4000/(4000 + 500)= 88.89%
也就是说大部分将会被人脸识别门锁拒绝访问。
5.3 误识率(FAR)
误识率(False Accept Rate,FAR,FPR,假报警率,错判率)是指将他人误认为指定人员的概率,公式如下:
FPR=FP/(FP+TN)
上面的例子中我们可以计算出:
模型的误报率 = 5000 /(5000 + 490000)= 1.01%
也就是说在一个人脸识别门锁上,100个陌生人中,有一个可以识别通过,存在很大的安全隐患。
误识率(FAR)决定了系统的安全性,召回率(FRR)决定了系统的易用程度。在实际中,FAR对应的风险远远高于FRR,因此生物识别系统中,会将FAR设置为一个非常低的范围,如万分之一甚至百万分之一,在FAR固定的条件下,FRR低于5%,这样的系统才有实用价值。
5.4 ROC曲线
如上面例子中的判断两个图片是否相似的阈值设置为 80,大于这个值的实例划归为正类,小于这个值则划到负类中。
如果减小阀值,减到70,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比类,即召回率(TPR);但同时也将更多的负实例当作了正实例,即提高了误识率(FPR)。为了形象化这一变化,我们引入ROC曲线——ROC,受试者工作特征曲线,是比较两个分类模型好坏的可视化工具。
(a)横轴为误识率FPR,纵轴为召回率TPR,理想情况下,TPR应该接近1,FPR应该接近0。
ROC曲线上的每一个点对应于一个阈值,对于一个模型,每个阈值下会有一个TPR和FPR。比如阈值最大时,TP=FP=0,对应于原点;阈值最小时,TN=FN=0,对应于右上角的点(1,1)。
(b)随着阈值不断增加,TP和FP都减小,TPR和FPR也减小,ROC点向左下移动。
ROC曲线怎么看?曲线越陡峭,曲线上的点越接近(0,1),表示检测器性能越好。
5.5 识别速度
识别一副人脸图像的时间,包括人脸图像的采集、检测、预处理、特征提取到匹配和识别出来为止的总时间。除了总体时间的计算意外,其中人脸检测的时间可以作为一个重要的衡量标准,并可以直观的感受出来。
人脸检测速度是从采集图像完成到人脸检测完成的时间,通常用帧率(frame-per-second,FPS)来表示。时间越短,检测模型效果越好。
这里也有一个问题,常见的人脸检测算法基本是一个“扫描”加“判别”的过程;即算法在图像范围内扫描,再逐个判定候选区域是否是人脸的过程,因此人脸检测算法的计算速度会受图像尺寸(VGA640*480)、图像中人脸大小(80*80)和数量、图像背景复杂度等因素影响。
通常在测试一个人脸检测速度时,通过控制输入图像越小、图像中人脸越少、图像中人脸越大、图像背景越简单(比如白底)和使用越高性能的处理器,使得检测算法速度越快。
六、总结
以上是自己在人脸识别考勤门锁产品的规划设计,和研发过程中对人脸识别AI产品的个人理解和总结。
技术是产品存在的基础,在AI技术还没有完全统一和标准化的时候,作为产品经理需要对AI技术有一定的了解。最基本的要求是要知道什么事情AI能做,什么事情AI不能做,对技术的能力有边界感,不然很难顺利的将用户需求转化为产品需求;然后更进一步地知道什么好做,什么不好做,以便更好的进行开发量的评估和模块的划分。
在与技术人员进行需求沟通的过程中,对于不明白的技术一定要多请教,不能让技术问题限制了对产品的思考;如果对技术有一定了解,也需要克制自己,不要告诉技术应该怎么去实现。产品经理永远都是一个提出问题和分析问题的人,而不是去解决问题的人。
参考资料
关于人脸识别流程,网上有很多资料,写的非常详细,感谢前人的努力。
3)AMiner 第十三期研究报告《2018人脸识别研究报告》
作者:Ocean,公众号:pm_know_practice
本文由 @Ocean 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
很厉害!
指标那里好像有错误 TN和FN反了
牛批!很全面!