关于人脸识别:百度大脑FaceID人脸识别模型量化技术确保算法精度无损加速一倍

23次阅读

共计 1979 个字符,预计需要花费 5 分钟才能阅读完成。

随着 FaceID 人脸识别技术在手机、IoT 等设施的遍及,受能耗和设施体积的限度,端上硬件的计算性能和存储能力绝对较弱,这给端上人脸识别带来了新的挑战——须要更小更快更强的模型。

为了实现 FaceID 人脸识别技术在挪动端上更快更准的运行,量化就成为一个重要伎俩。量化简略来说,就是用更低比特数据代替原浮点数据,已达到放大模型的过程。其最外围的挑战,是如何在缩小模型数据位宽的同时,保障人脸识别的准确率。为了解决人脸识别速度和精度的均衡问题,就须要思考整个人脸识别过程中的诸多因素,接下来顺次论述人脸模型量化的益处、应用传统量化面临的问题、百度 FaceID 人脸识别模型量化技术 / 量化收益、以及对不同芯片的反对状况等。

一、人脸模型量化的益处 \
人脸模型量化,是将以往用 32/64bit 表白的浮点数,用 8 /16bit 甚至 1bit、2bit 等占用较少内存空间的模式进行存储。量化之后的益处是:

  • 缩小模型体积。升高模型存储空间需要,使模型更容易在端上部署。
  • 压缩老本。升高端设施内存带宽,及数据拜访功耗,使得设施运维老本升高。
  • 减速计算。针对反对 SIMD(单指令流多数据流)的设施,以 128-bit 寄存器为例,单个指令能够同时运算 4 个 32 位单精度浮点,或 8 个 16 位整型,亦或 16 个 8 位整型。显然 8 位整型数在 SIMD 的加持下,运算速率要更快。在大部分 ARM 芯片上能够实现 40% 到一倍的减速。

二、人脸模型应用传统量化面临的问题:精度受损 \
传统的人脸识别模型量化映射形式,是将 32bit 浮点数转换成 8bit 整数,转换过程分为三种形式:

  • 非饱和形式:将模型中浮点数正负绝对值的最大值映射到整数的最大最小值。
  • 饱和形式:先计算模型中浮点数的阈值,而后将浮点数的正负阈值映射到整数的最大最小值。
  • 仿射形式:将模型中浮点数的最大最小值映射到整数的最大最小值。

图片说明:红色代表非饱和形式,黄色代表饱和形式,绿色代表仿射形式

那么,应用传统的量化形式,对人脸识别模型进行量化时,无论哪种映射形式,都会受到离群点、float 参数散布不平均的影响,造成量化后辨认精度损失减少。如图,因为左侧的离群点,使得量化的范畴更大,让量化后的右侧数值点变的适度密集,增大了量化损失。

三、百度大脑 FaceID 人脸识别模型量化原理 \
针对人脸识别模型量化过程中的精度损失状况,百度 FaceID 团队通过对量化技术的钻研总结,发现模型量化次要包含两个局部,一是对权重 Weight 量化,一是针对激活值 Activation 量化。同时对两局部进行量化,能力取得最大的计算效率收益。

针对模型权重 Weight 量化,百度 FaceID 人脸识别技术钻研人员在做模型训练的时候,退出了网络正则化等伎俩,实现了让权重散布更紧凑,缩小了离群点、不均匀分布等状况的产生。

针对激活值 Activation 量化,百度钻研人员采纳了一种全新的量化办法,在量化激活值之前,去掉一些离群点来升高模型量化带来的精度损失。百度提出截断式的激活函数,该截断的上界,即 α 是可学习的参数,这保障了每层可能通过训练学习到不一样的量化范畴,最大水平升高量化带来的舍入误差。

如上图,百度 FaceID 人脸识别模型的量化的办法是,一直裁剪激活值范畴,使得激活值散布收窄,从而升高量化映射损失。具体量化公式如下:

通过对激活数值做裁剪,从而缩小激活散布中的离群点,使量化模型可能失去一个更正当的量化 scale,升高量化损失。

四、百度大脑 FaceID 人脸识别模型量化收益 \
人脸识别模型作为 FaceID 端人脸识别技术中体积最大、模型最耗时、对后果影响最间接的模块,如何无效的对模型进行减速的同时保障模型精度不变显得至关重要。联合百度自研的量化技术及 PaddleLite 预测库减速,咱们实现了在 RK3288 ARM 芯片上有一倍的减速,同时能够放弃模型精度不变。

五、百度大脑 FaceID 人脸识别模型量化技术对不同芯片的反对 \
百度 FaceID 人脸识别量化技术不仅在 ARM 系列芯片上验证无效,在不同 NPU 芯片上也获得了不俗成果。其中针对目前罕用海思 3559、RV1109 两款芯片做了量化前后速度及精度比照。在不同芯片上,量化技术都能在速度及精度上获得最佳均衡,实现精度简直不降的同时减速 1 倍左右。针对不同芯片做了不同模型适配,目前已反对 17 款芯片 SDK 专项适配,助力不同客户业务开发需要落地。

百度 AI 开发者社区 https://ai.baidu.com/forum,为全国各地开发者提供一个交换、分享、答疑解惑的平台,让开发者在研发路上不再“孤军奋战”,通过一直地交换与探讨找出更好的技术解决方案。如果你想尝试各种人工智能技术、开辟利用场景,赶快退出百度 AI 社区,你对 AI 的所有畅想,在这里都能够实现!

扫描下方二维码,增加小助手微信「京东卡、小度定制周边、神秘礼盒、行李箱」等更多福利你来拿~

正文完
 0