前端人脸识别芯片选型指南

来源:内容来自半导体行业观察(ID:icbank)的原创文章,作者:BillG,谢谢。

之前跟⼤家交流端侧AI芯⽚的过去与现状,后续想跟各位⼩伙伴陆续聊⼀些我所做过的AI应⽤在芯⽚选型过程的总结考量。当今的AI领域,如果说商业变现之最,我觉得当之⽆愧是⼈脸识别应⽤。从早期基于服务器的公安/⾦融应⽤,到现在随处可⻅的前端⼈脸识别摄像头、⻔禁考勤机、⻘蛙/蜻蜓的刷脸⽀付,这种从云到端的变化很⼤程度上归功于前端芯⽚AI计算能⼒的⼤幅提升,17年时我们提到AI算⼒还以”G“为量级,今天拥有”TOPS”算⼒的前端SOC已经 ⽐⽐皆是。那么对于⼈脸识别的前端应⽤,我们该如何选择合适的芯⽚开发产品呢?

从“准快稳”到“稳准快”

既然今天讨论的是⼈脸识别在前端的应⽤,那么我们先简要介绍⼀下⼈脸识别及应⽤是什么?我⼈脸识别的本质是基于⼈脸信息,通过深度学习技术⼿段,对⼈员身份进⾏⼀种“鉴权”。这 种鉴权的结果,当我们加上“时间”和“空间”维度的数据标签后,就可以让⼈脸识别形成上层 应⽤。⽐如当对⼈脸识别结果增加“时间”标签后,这就是访客系统的雏形;当我们增加“时 间”+“空间”标签后,这就是考勤系统的雏形;当鉴权+时间+空间都满⾜,同时增加了⼿机账 户信息后,这就是⽀付系统的雏形。⼀切的基础来⾃于适应不同标准的鉴权结果。

由于⼈脸识别是典型的技术驱动催⽣的产品应⽤,从15年到17年产品的主要关注点依次还是准确率>速度>系统稳定性,在早期最容易证明技术准确性的就是在Imagenet“刷榜”,我们⼏乎可以看到今天的独⻆兽在那个时间段都上过榜。到了17年后,⼤家开始推出前端硬件产品,开始在速度上⽐拼,这⾥的原因有⼆,第⼀是学术界精度研究的触顶,第⼆是专⽤的AI芯⽚开始普及。从18年到⾄今,由于市场开始爆发,出现规模效应,系统稳定性的价值开始被 ⼤家⼴泛关注,所以我们衡量好的⼈脸识别产品也从“准快稳”到了“稳准快”。

前端⼈脸识别产品由推理算法及算法应⽤、嵌⼊式(影像系统、连接系统、显示系统等等)、 端云结合应⽤三⼤核⼼组件构成,当然每个硬件产品都需要具备的PCBA、模具、线缆基础部 分也需要具备。下⾯的⽂章会逐步给⼤家介绍这三⼤核⼼组件以及它们与SOC芯⽚的关系。

理解AI计算

⼈脸识别应⽤离不开深度学习算法的突破,深度学习算法⼜离不开卷积神经⽹络的发展,我们 将⼈脸识别产品落地的过程,其实就是将卷积运算运⾏在各类前端处理器的过程。那么在这个 过程中有哪些值得我们注意的地⽅呢?

⾼精度轻量化模型——上⾯的⽂章我们讲过,⼈脸识别算法已经度过了通过⼤型⽹络提⾼精度 的时代,像mobilenet这种轻量化的分类模型,已经在精度上达到了VGG-16⽔平(71%),新的v3版本甚⾄还做到了超越。在精度接近的情况,这种轻量化模型⽆疑能速度上占据优势, 同时这类⾼精度轻量化模型的发展,也⼤⼤降低了AI处理器的算⼒准⼊⻔槛。

卷积运算硬件化——深度学习算法⽹络⼀般有池化、卷积、BN、激活函数、全连接等操作, 但是其中90%以上的运算都集中在卷积过程,卷积操作本质是卷积核矩阵与输⼊数据矩阵的 乘加。我们在早期没有专⽤硬件时,使⽤ARM CPU来完成这种乘加操作,接着⼜尝试了多核 DSP,后来选择了以硬件乘加器MACs组成的CNN加速器。⽽专⽤CNN加速器在前端胜利的原 因当然是最优卷积运算效率和最优的能效,本质上赢在⼀个“专”字上。

深度卷积的提出——mobilenet这种轻量化模型的发明,本质的创新在于对深度卷积 (depthwise)的引⼊,深度卷积相⽐于普通卷积⼤幅降低了乘加计算量,同时也减少了模型的参数量。这对于芯⽚CNN部分影响就⾮常⼤了,试想当乘加器的运算耗时⼤幅减少,CNN 部分的计算瓶颈就来到了数据交换速率,也就是数据带宽。由于这⼀创新是17年才提出,在近两年才被逐步认可其精度的等效性,⽽⽬前⼀代的CNN加速器芯⽚也都是这两年的才陆续上市,他们的规划时间⼤多也是在1718年,因此如果单就CNN加速器的发展⽽⾔,应该在下⼀ 代AI芯⽚会对深度卷积有较好的⽀持。

卷积之外的计算——虽然深度学习算法中90%都是卷积运算,但如果我们想对整个算法过程 的时间优化,就必须关注图像的前处理以及后处理进⾏关注,因为10%短板可能耽误90%的时间。现阶段的前端AI芯⽚普遍都关注的到了图像的前处理,基本都有硬件resize模块,但是 对于后处理还没有过多关注。从我们今天说的⼈脸识别来看,⼈脸算法的核⼼过程检测、跟踪、特征提取,通过CNN加速器我们可以快速完成,最耗时的特征提取部分也都能在30ms以 内完成,当我们30ms提取⼀个特征时,CNN部分已经不是整个应⽤的最耗时部分,⽽在于万⼈乃⾄10万⼈特征⽐对过程,假如⽐对过程⽤270ms,那么整个CNN部分也只是整体的1/10⽽已。其实特征⽐对过程的计算过程并不复杂,只是计算多维向量的距离,并且特征向量的数 组⼤多为浮点型,相信未来会有芯⽚提供这类⼩巧⾼效的浮点运算单元,⽤于提升卷积之外的 算法运算。

产品是⼀套完整系统

这⼏年在⼈脸识别产品应⽤中,⼤家开始改⼝谈“落地”谈“解决⽅案”,巨⼤的变现压⼒开始逼迫AI公司从技术思维向产品思维转型,那么什么样的芯⽚才是适合做产品的芯⽚呢?

AI之外的产品需求——前端⼈脸识别硬件,除了所有⼈都盯着的算法算⼒之外,还有许多容易 被忽视的系统需求。以具体的⼈脸识别平板举例,算法满⾜要求时,影像系统需要满⾜摄像头 接⼊(⼀般为双摄),显示系统需要满⾜单块LCD触摸屏接⼊(⽀付平板可能会是双屏),连接系统需要满⾜WIFI/BT和选配4G,外围的接⼝预留485/232/继电器IO/USB/以太⽹,外设 喇叭/读卡器/扫码器也要考虑。技术和产品的最⼤的差别就是产品是⼀套完整的系统,系统的 组件也许很⼩,但是少⼀个也都⽆法做出产品。当选择⼀颗SOC开发⼈脸识别产品时,其系 统完整性的价值是不可忽视的,例如当我们需要双屏应⽤时也许⼀个SOC只有显示接⼝,或 者需要⽤转接芯⽚转接,⼜⽐如我们需要多个USB外设接⼊时,需要使⽤HUB芯⽚扩展,虽然 我们满⾜了需求,但是产品的复杂度也随着提升。

问题场景是关键——我的上⼀篇⽂章有提到,其实⽬前⼤多数算法⼈员主要的时间精⼒并不是 的开发算法,⽽是处理⼤量的问题场景(cornercase),这也是从做技术到做产品的⼀种表现,图像识别产品的落地需要⼤量的问题场景积累,这⾥举两个例⼦来说明问题场景与SOC 关系。第⼀个是⼈脸识别摄像机的图像效果问题,要“识别准”就要“拍的清”,但是“拍的 清”这件事在算法领域⼜是很模糊的概念(⼈眼觉得好的HDR效果算法未必认可),⽬前的主要⽅案是采集问题场景数据对模型进⾏更新,这种⽅案效率不⾼,于是真正的产品公司开始建 ⽴⾃⼰的影像团队,提升问题场景的图像效果,这就需要SOC有出⾊的ISP性能和好⽤的ISP 调试⼯具。第⼆个例⼦是⼈脸识别⻔锁的功耗问题,就算法可⽤性来说⼈脸⻔锁场景早已满⾜ (库容⼩算⼒需求低),但是功耗问题⼀直在寻找突破,如何在6\~8节电池的供电下让⼈脸锁⼯作半年呢?720P级的图像传感器⼀般功耗在150mw⽔平,再加上红外补光灯,功耗⽔平远 远⾼于指纹,于是sensor⼚商开始推出超低待机功耗的sensor,SOC⼚商也开始的内置riscv 或ARM的MCU,既然使⽤功耗不容易解决,那么就从解决待机功耗。这两个产品例⼦都是⼈ 脸识别产品,但他们的核⼼问题都不是算法,当选择对应SOC时,如果能有效解决关键问题 场景,那么我们的产品研发进程将事半功倍。

尊重行业应用

这两年的AI⾏业,做技术平台的已经逐步聚合,做垂直⾏业解决⽅案的开始崛起,⼀谈到⾏业解决⽅案,可以发现⼀个有趣的现象“只卖AI硬件的基本没赚到钱,做细分⾏业的反⽽多点开花”,那么为什么会这样,同时这⼜跟底层芯⽚有什么关联呢?我们从端云结合产品和快速响应⾏业需求来谈。

⼈脸识别硬件是⼀个典型的端云结合产品,设备端是⼀个前端应⽤的载体,云端是设备管理/ 数据互通的载体,云+端组合在⼀起才是能落地到具体⾏业的产品。这也就是为什么“只卖硬 件赚不到钱”的原因,产品是需要完整性的,只提供了⼀半如何让客户买单呢。今天我们选择 SOC时⼀般只看到了某些单芯⽚⽅案的硬件成本优势,却忽略⼈脸识别硬件的云服务属性,各⾏各业的云服务需要具体对接到前端的AI硬件,如果硬件⼚商来做这件事,⼤量的垂直⾏业 需求会让技术⽀持⼈员崩溃,于是Android可移植的的价值就被突显了出来。⽬前市⾯的 Android AI芯⽚价格还⾼于只⽀持Linux的芯⽚,虽然前端使⽤Linux降低了硬件成本,但是⼤ 量的下游客户对Linux没有开发能⼒(他们更习惯把⾃家的服务封装成⼀个APP集成在前端硬 件中),于是⼤量的对接⼯作也到了硬件⼚商这⾥,让硬件⼚商焦头烂额。当⼈脸识别产品是 很具体明确的场景时,我们使⽤有Linux成本最优的AI芯⽚没有问题,当产品需要⼤量云端对 接时,⽀持Android的AI芯⽚因为其便于⼆次开发的特性,应该被⼤家重视。

上⾯说明了⼈脸识别产品的云和端对SOC的影响,下⾯就来谈谈具体⾏业需求对SOC选型的影响。在现在追求产品落地的市场环境下,快速响应具体⾏业客户的需求是⼀个关键,选好⼀ 颗SOC就快速响应客户需求的基础。这⾥也举两个例⼦说明,第⼀个⼈脸识别⼴告机,曾经 听到⼀个做技术的朋友吐槽,客户需求希望在⼈脸平板上播放⼀段⼴告,幸好他们选择的芯⽚ 有视频解码能⼒,他花了⼤⼒⽓做了简易播放器满⾜了这个需求,过了段时间客户⼜希望播放 界⾯增加⼀些动画效果,因为他们的SOC没有GPU,做动画渲染让他抓狂。第⼆个例⼦楼宇 ⻔禁机,我们知道楼宇⻔禁机除了通⾏之外,还有⼀个重要的功能就是楼宇视频对讲,⽽相应 楼宇对讲需求的关键就在于SOC要⽀持硬件视频编码。记得⽹上有个经典的段⼦,“某安产品 经理因程序员不能完成随⼿机壳颜⾊变化的⼿机桌⾯主题需求⽽⼤打出⼿”,其实技术与产品的界限并⾮那么明显,同样在⼈脸识别应⽤中,快速响应客户需求是常态,⽽在底层芯⽚选型时多考虑技术关键点有助于更好地满⾜客户需求。

看不到的成本

做任何硬件产品都⽆法忽视成本问题,⼈脸识别硬件也不例外,经过了不计成本的技术驱动时期,⼤家已经对⼈脸识别硬件成本有了很深的认识。原先技术在过渡时期,芯⽚⼚商推出的协 处理器+主控⽅案已经基本被淘汰,⽽近两年推出最多的就是集成NPU的SOC芯⽚,⽀持Linux 系统,单芯⽚具备编码\显示等功能模块。对于成熟的硬件产品公司,⼀款硬件产品的“显 性”成本是很好计算的,各类电⼦器件BOM、PCB洗板费⽤、PCBA贴⽚费⽤、模具ID设计/开模费⽤、⽣产组装费⽤,基本在我们选择⼀款芯⽚后,知道了主芯⽚价格,就可以⼤致估算单个硬件的成本。那么我们就跳开这些“显性”成本,单独看看选择⼀款芯⽚⽅案后“看不到的成 本”。

少就是多——记得刚接触AI这个⾏业时,算法公司开始⾃⼰研发硬件产品,当时的很多公司还 是“年少轻狂”,2年时间换了3\~4个芯⽚平台,有的还并⾏进⾏,结果2年过后产品没卖出多 少,研发⼈员倒是换了⼏波,甚⾄第⼀款芯⽚的代码可能早已⽆法维护了。芯⽚本身是⼀个⽣ 命周期较⻓的产品,近两年新⽼公司⼜在AI芯⽚⾏业持续发⼒,让⼀众硬件⼚商都挑花了眼, 有更好的就跟进⼀个。我们从开始的需求分析讲过,⼈脸识别硬件是有其复杂度的,算法/嵌 ⼊式/云服务紧密结合,⽽嵌⼊式部分⼜是⼀⻔时间积累性技术的,会与芯⽚本身强绑定,好 ⽐盖楼地基打好如果再换就要拆掉重建。因此某些芯⽚的局部优势并不适合频繁更换平台,相 反随着时间的积累,既有平台的局部劣势会进步,记得曾经在芯⽚公司时遇到过⼀个印象深刻 的客户,他们公司⼈数不少但是5年只⽤⼀颗芯⽚做产品,对这颗芯⽚的技术专业度甚⾄超过 了我们的FAE。最核⼼的所有的产品型号从⼀个平台发展⽽来,研发⼈员效率⼤幅提⾼,这就 是典型的“看不到的成本”。

⻔当户对——在AI芯⽚市场早期,我们经历过⼀段“外来的和尚好念经”的时代,⽐较典型的 Movidius这类芯⽚,不可否认这类芯⽚在前期教育市场的价值,但是今时今⽇还有不少算法公 司芯⽚选型只盯着xilinx、TI、安霸、⾼通、NXP这类芯⽚公司,开发的应⽤也只是⼈脸识别, 选择这类芯⽚的“利”在于这类芯⽚品牌影响⼒和芯⽚⽔平都经过了市场的认可,属于典型 的“⼤户⼈家”。这时就需要反观⾃⼰的市场位置,如果能够获得这些公司较好的技术⽀持,产 品定位⼜能消化对应的芯⽚成本,那么没有问题,反之可以多看看国内芯⽚(这两年中国产前 端AI芯⽚规格上正在超过国外)。我们在开发⼀款的芯⽚时,最容易忽视的成本就是原⼚技术 ⽀持情况,⽐如⼀个芯⽚问题是今天解还是明天解,是能解决还是没⼈处理,这都直接关乎项⽬的成败,⽽⼀旦技术⽀持不⾜,造成的机会成本损失是巨⼤的。

选合作伙伴而非某个芯片

从芯⽚选型⻆度聊完了⼈脸识别应⽤技术和产品⽅⾯的信息,最后想从商业⻆度的聊聊芯⽚⼚ 商和产品公司的关系。我想先从⼀个⼩故事说起:

“记得当时我们推出⼀款很有竞争⼒的芯⽚,⽽竞争对⼿A这⼀年都没有新产品上市,于是我 们就想突破竞争对⼿A的⼤客户,刚好也顺利⻅到了⼤客户的⽼板B,当时聊的很开心,对方也承认了我们的产品优势,会议结束B私下跟我说,你们的这颗芯片很好,但是我们可能还⽤ 不了,因为你们已经有了⾃⼰的⼤客户,⽽且A公司我了解,⼀个公司总会有⾼潮和低估,他 们这⼀代不⾏,但下⼀代⼀定会赶上。”

⼀段话说明了⼀个道理:从⼈脸识别这个产品类⽬来看,也许很多公司的芯⽚都会满⾜,并且能够最终做出产品,不过就公司⻆度来讲,谁⼜能说在漫⻓的经营周期中⼈脸识别就是最后⼀ 个产品呢?当我们经过深思熟虑选择⼀个芯⽚时,其实也是选择了⼀个合作伙伴,从产品⽬标的实现讲,我们需要⼀款满⾜需求的芯⽚,从公司的经营⻆度来讲,我们需要⼀个能够持续输 出有竞争⼒芯⽚的伙伴。