嵌入式机器视觉行业现状,这个标题起的有些大了,很难面面俱到,也就通过自己在工业嵌入式视觉产品领域工作五年的经历来尽可能客观的描述一下这个行业。

嵌入式视觉从何而来?

嵌入式视觉是将已经发展多年的计算机视觉技术集成到嵌入式处理器的的一门交叉学科,一个软件一个硬件,当然也少不了Linux这个主角。这两者结合最大的一个有点就是体积的缩小,这个优点它可以应用到各种行业场景,比如地铁闸机的二维码扫描,刷脸考勤机等。层出不穷的嵌入式处理器(TI的Sitara,NXP的IMX,NVIDIA的Jetson,还有国产的华为,瑞芯微,全志等)为复杂的计算机视觉算法提供了平台支撑,而强大的算法则为体积紧凑的硬件产品提供了更多的可能性,为什么说少不了Linux呢?因为Linux为诸多开源软件或算法平台提供了土壤,让我们可以站在巨人的肩膀上。

嵌入式视觉要解决哪些问题?

嵌入式视觉作为计算机视觉领域的新产物,要解决是通过软硬件来是代替人的眼睛完成物体识别相关的任务。在代替人眼实现无题识别时,有三个比较关键的指标就是准确率,速度,鲁棒性。准确率是核心,比如,地铁进出站时识别二维码,扫描不上会影响乘客体验。工业自动化设备识别产品缺陷,最关键的还是要准,因为准确性会严重影响工业制造时的良率。速度当然也是一个关键指标,就说工业自动化设备吧,在有些诸如香烟,饮料等食品行业每天的生产量相当惊人,每台工业读码器每条要扫描上万个1D/2D码,最快的情况是每秒扫描40次左右。稳定性放在最后,但也非常重要,有代码的地方就避免不了的会出现bug。

嵌入式视觉领域的核心是什么?

说到核心,我们先来拆解一下这个技术领域,硬件,算法,操作系统。硬件是非常直观的一个分支,就跟我们买安卓手机,大家都知道选架构新主频高内存大的,这个是硬指标,好不好一眼就看出来。操作系统,我们熟知的Android,Linux,QNX,IOS等等。当然这个背后有强大的组织在维护,每款SoC发布时也都会有官方的操作系统支持。最后说到算法,在厂家提供了一个非常高端的处理器并配置了非常稳定的操作系统时,这个时候就要看我们的算法实力了,这个是我们大部分团队只能突破的方向。

嵌入式视觉领域的痛点在哪里?

上一段说到算法,就已经写到了痛点,我强忍着另起一段来揭开这个伤疤。说一个有趣的事情,2018年我完成了公司第一款嵌入式视觉产品的样机研发,硬件上使用的1.5GHz的双核ARM处理器,算法是另一个团队开发的。首先和国内为数不多的同类产品对比测试,基本在一个起跑线上,然后和国外畅销好几年的产品对比,速度和准确率还是要比我们好很多。后来我们在拆解这台进口产品时,发现他们用的是一款500MHz级别的DSP。后来别的同事和我开玩笑,说你们用了比人家强三倍的处理器,处理时间却只是人家的两倍!这可能已经说到了大多数团队的难处,我们能很容易开发一款当下处理能力最强的硬件,却很难在算法上将这一优势发挥出来。

说到算法不得不提到深度学习,它的出现,降低了大部分产品对于传统算法的依赖,只要你有足够的样本,并且在训练的时候掌握一些技巧,剩下的就交给大佬们的框架来实现吧,不得不说,这些确实解决了很多传统算法难以解决的问题,框架的普适性很大程度上牺牲了速度这个关键指标,所以很多芯片厂商推出了用于深度学习加速的硬件IP,比如最早流行的Movidius,到现在举不胜举,哦对了,提一下国产的Rockchip,部分高端产品集成的NPU表现也不错(据说也是购买的某专业厂商的IP)。

深度学习的出现降低了对传统算法的依赖,而硬件IP解决了深度学习的运行效率,这降低了部分产品的研发门槛。对于一些面向智能闸机等简单场景的,甚至可以在官方EVM的基础上简单做一些外围电路再加上一些通信等功能到软件里就可以拿出去卖,只要硬件上还能压缩,就能多赚一些,最终最赚钱的还是上游的芯片厂商。

深度学习也有它的局限性,在某些应用场景效果并不是那么理想,相比之下传统算法还是更有针对性一些,这一点在工业自动化领域非常明显。

强大的算法背后需要优秀的团队来支撑,而目前国内在计算机视觉领域的人才还是相对欠缺,为数不多的科班出身的毕业生大多都去了互联网大厂,而诸如工业,教育,电力,安防等领域很难招到优秀的人才。

嵌入式视觉的未来?

嵌入式视觉是软硬件结合的学科领域,视觉算法与硬件性能相辅相成,就目前来,视觉算法要走的路还是要更长一些。