
Tesla决定弃用ISP?
Tesla要放弃“ISP”,直接将image sensor raw数据输入给网络做检测的消息在业内火了。一些媒体甚至采访了多个国内相关公司CEO、CTO和各种专家表达了各自的看法。总体上,大家对Tesla的做法给与的是认可的态度,几乎没有人提出异议,这可能是Tesla已经在其FSD10.9版本更新中正式发布了“raw”数据用于网络输入,几万用户已经用上了基于"raw"数据的AI算法。似乎丢掉"ISP"已经成为新的行业标杆,听说车企因此也开始转向研究这方面的收益。
好奇的我也想从自己的一点专业知识分析下Tesla是不是真的已经放弃了ISP,有哪些问题值得关注。
整件事起因来自马院士的twitter和最重要的是Lex Frideman的采访视频。尤其是Lex的采访,信息量巨大,这也是Lex第四次采访马院士了,可以说这次是做的最棒的,真是感谢Lex的精细准备!(题外话,Lex也是个牛人,MIT的俄裔教授,本来就在MIT教授过自动驾驶,深度学习等学科,吉他,顶级跆拳道黑带,真不要太酷。这次采访不仅仅涉及Tesla,还包括spaceX,加密货币,历史,政治,爱情:),强烈安利),Lex&马院士YYDS!
好了,先附上相关信息:
FSD的一个改进包括了基于实际的光子计数(photon counts),所以去除那些用来让人眼看起来不错的滤波器
不对图像信号做图像后处理
以上信息,都是马院士亲口讲述,都是说tesla在FSD应用中不对输入图像做各种滤波处理,twitter中解释是,这些滤波处理是为了让人眼看得漂亮,言外之意就是机器并不需要这些“好看”。
这里我表示非常认同,我们可以学习马教授的第一性原理分析问题。对于机器来说,图像就是信号,只不过图像是空间上二维的光谱上n维(例如RGB)的信号。所以,对于信号来说,不在乎好不好看这么一说,只有信息量或信噪比才是机器关心的。我们可以看看传统的ISP(image signal processor)主要干了哪些内容,哪些是为了让人感觉好看?
ARM's Mali-C71 ISP
上图是业内使用得比较多的ARM ISP,其中列出了一些主要的图像处理模块,包括去噪、去坏点,去马赛克,局部和全局tone map,颜色处理和gamma等,其实没画出的还包括增强(sharpen), 去shading等
哪些是为了让人感受漂亮的呢?明确的是:去噪、去马赛克,颜色处理、增强,可能有争议的是:tone map, gamma,去坏点,去shading。总之,大部分都是为了好看。
从PPA角度考虑,去掉这些部分有什么好处?
这些算法消耗的芯片面积、功耗和延时是ISP中最大的。我相信面积绝对不是重点,因为相比tesla的HW SoC中的CPU、GPU、NNA,完整的ISP也是非常小,当然,如果tesla为了延时放入8个可以并行工作的ISP对接8个摄像头,那就另说。后面可以听马院士说的,他们只用了一个ISP。
ISP仅仅缩在左上角,小小的位置
功耗永远是现代SoC需要考虑的因素,但是对于纯电车上百kWh能量来说,一个完整ISP 1w左右的功耗可以忽略。只不过对于电源,频率,散热到是需要考虑的问题。
最后是延时,其实也是最重要的部分,因为对于FSD这种应用,延时等同于杀手。做过控制的同学一定有知道,延时会使控制信号震荡,收敛慢,甚至无法收敛!玩过游戏的同学也懂得这个道理!
对于自动驾驶,发现障碍,能早100ms执行刹车可以救命,晚100ms可能丧命。
对于延时看看马院士怎么说:
去除各种处理后,节省了13ms的延时。马院士解释道,ISP处理每个摄像头大概需要1.6ms延时,所以8个摄像头一共节省了大概13ms。从这几话可以推断,8个摄像头是复用的一套ISP,排在最后的那个摄像头要到11ms左右,才开始处理第一个像素,然后才可以进行检测、分割等AI处理。
这里必须解释下,sensor一般工作在60fps,意思一帧图像曝光和数据读出需要几个ms,虽然第一行像素到达ISP的时间是在us级别的,但是最后一行像素到达ISP可能在几个ms之后了,如果ISP处理完第一个摄像头的图像最后一个像素再处理第二个,那么第二个摄像头的图像已经被丢弃了,因为sensor内部没有memory可以存储图像,如果你来不及处理就会被下一次reset和曝光覆盖掉。当然sensor图像可以保存到DDR里,但结果就是第二个摄像头的延时为ISP处理完第一个的时间,第8个摄像头延时是7倍ISP处理整帧图像的时间,这是完全不可接受的。
所以,一般技术上会将每个摄像头的图像分为较小的tile(或叫做块),ISP一次处理完一个摄像头的tile然后处理下一个摄像头的tile,如此轮转交织前进。当第一个摄像头的tile处理完成后可以立即将这部分数据交给NNA做检测任务,这样就不用等最后一个像素完成再开始后面的工作。但是,因为有8个摄像头,所以第一个摄像头的第二个tile需要再等后面7个摄像头的7个tile全做完才开始工作,所以ISP处理一个tile的时间乘上8就是马院士说的13ms了。而ISP处理一个tile的处理时间是1.6ms左右,这个1.6ms干的就是各种图像增强处理,可以省掉!
但是,13ms似乎不是那么严重吧?人大脑处理反映时间是在20ms左右,省这13ms有多大收益?
马院士接着给出了解释
问题出在物理执行装置,更新频率太低(我不是这方面专家,请高手指点),大概在10hz左右。也就是说控制器接收命令的时机间隔了100ms,如果检测算法刚好错过了接收命令的时机,那么需要再等下一个100ms控制器才能接收制动命令,这就非常严重了。
这个问题可能无法完全消除,但是降低photon到命令发出的延时可以降低发生的概率!
最后,马院士继续补充到
Jitter,工程上翻译为抖动。也就是因为某些异步和不确定性,出现了延时的不确定性,一会儿200ms,一会儿100ms,这给规划和控制带来的很大麻烦。马院士认为延时也许没那么可怕,只要我们知道端到端延时是多少,那么在做出控制动作前可以做一定的预测,补偿延时的后果。如果延时不确定,这个补偿就没法做了!
小结下:
到这里,采访关于去除ISP部分的内容就结束了。马院士谈到更多的是延时和抖动给FSD带来的麻烦,也就是说去除ISP主要是为了这两点!
But!大家肯定Tesla裁掉"ISP"的同时,需要注意几点:
所谓photon count是什么意思?起初我冲动的认为tesla用上了下一代基于photon计数器的sensor(Photon-conting image sensor),这可是image sensor的革命,能完全消除电路所带来的噪声,做到更高的信噪比。但是显然我想多了,它不过是想强调,进入网络的数据是最原始的数据而已,至于这个数据有多原始,马院士或其它能获得的信息都没有明确的说明,所以我们不能简单推测进入网络的就是光电转换后的最原始的数据。我个人认为也不可能是这么原始的数据,后面再分析原因。
马院士说的是post-processing(后处理),并不是image signal processor!去掉的是大部分为讨好人眼所进行的图像后处理(image post-processing),不是整个ISP,这有很大区别。比如,摄像头模组在工程上是有很多缺陷的,而ISP中解决这些缺陷的算法已经比较成熟,例如lens shading,defect pixels。这些算法简单有效,算力低廉,如果都交给网络处理,势必付出成倍的算力和功耗!
第二部分来分析去除大部分增强处理后的图像数据进入网络对感知算法带来的影响
虽然,马院士强调FSD要的是给机器看的图像,所以不需投人眼所好的图像增强处理。这话听起来是很吸引人,也似乎很有道理的,加上tesla在自动驾驶上的前沿地位,大家往往毫不怀疑的全盘接受了,认为整个ISP完全被拿掉了,没有了3A,demosaic,tonemapping,denoise等等所有图像处理算法。
但是凡事需要小心求证,人家话可能只说了一半,某些细节也不可能都告诉你。当然我也无法猜测出Tesla的具体做法,只不过学界早有研究基于机器学习的ISP应该做成什么样子,做了一些实验,可以从他们的实验数据看出一些眉目。
Origianl RGB来自ImageNet图片,Simulated Raw是通过模拟仿真sensor上的bayer color filter得到的,Simulated RGB是在Simulated Raw的基础上用demosaic算法得到的。
从上图看出的结论是,使用RGB数据的MobileNet精度明显优于使用Bayer raw数据的结果(绿色比蓝色高)。同时也可能意味着采用bayer filter的sensor是不利于computer vision业务的(黄色比绿色高)。
上图基于MobileNet和ISP各个模块的开关进行了组合测试,从Top AAC就可以看出,去噪模块对分类精度是有明显损伤,而去掉denoise后与Full ISP的精度是非常接近的,甚至超过Full ISP精度。
但是其它模块,包括BL(black level),TM(tone mapping), WB(white balance)都是有正向作用的,尤其是BL+TM的作用非常大,已经非常接近Full ISP精度。
就从上面这两个图可以看出,传统ISP对基于神经网络的感知算法不但不是一无是处,还是很有必要的,尤其是demosaic、tonemapping几个算法起到的正向作用非常明显,只不过denoise,WB, color space和sharpen这些模块确实会起反作用或作用不大。
当然,这个实验离真实场景有很大差别,包括图像的分辨率,内容,像素位宽,使用的网络,仿真得到的raw和rgb等。所以这里我也并不能就此全盘接受实验的结果,只能作为一个重要参考。ISP4ML: The Role of Image Signal Processing in Efficient Deep Learning Vision Systems 大家可以自行参考原paper分析其可信度。
我自己事后诸葛亮的揣测,为什么某些模块对感知网络是有益的呢?大概可以从网络的泛化能力以及数据集充分程度来思考,例如tone mapping算法,它压缩了数据的动态范围,这也许能缓解对网络泛化能力的要求,也许就像normaization一样能对数据分布做些约束,这样数据集也不需动态范围那么广泛,训练收敛更容易。
附上FSD更新记录(只能说Tesla真自信,做了什么到都告诉你)
注意下面加粗的那段,明确告诉你,更新了static objec network,从原来的8bit输入更新到10bit,使得找回来提升3.9%,进度提升1.7%,做过检测的同学应该能理解这是多么大的进步。
我们知道车载sensor的像素位宽一般为20或24bit,所以tesla确认是使用了tonemapping将24比特数据压缩到10bit,只不过老版本压缩到8bit。但任然不能确定是不是bayer raw数据。
FSD Beta 10.9 Release Notes (2021.44.30.10)
- Improved intersection extents and right of way assignment by updating modeling of intersection areas from dense rasters (“bag of points”) to sparse instances. Increased intersection region IOU by 4.2%. The sparse intersection network is the first model deployed with an auto-regressive architecture that runs natively with low latency on the TRIP AI accelerator chip, through innovations in the AI compiler stack.
- Upgraded generalized static object network to use 10-bit photon count streams rather than 8-bit ISP tonemapped images by adding 10-bit inference support in the AI compiler stack. Improved overall recall by 3.9% and precision by 1.7%.
- Made unprotected left turns across oncoming lanes more natural by proceeding straight into intersection while yielding, before initiating the turn.
- Improved lane preference and topology estimation by 1.2% with a network update and a new format for navigation clues.
- Improved short deadline lane changes with better modeling of necessary deceleration for maneuvers beyond the lane change.
- Improved future paths for objects not confined to lane geometry by better modeling of their kinematics.
- Made launches from a stop more calm when there is an imminent slowdown nearby.
- Improved gap selection when yielding to a stream of oncoming cars on narrow roads.
第三部分从训练和量产的角度来分析去掉ISP的影响
Tesla可以说是业内唯一一家能做到数据采集,预处理,标注,存储,训练,部署自动闭环系统的公司,如果马院士说Tesla的竞争力在于Giga Factory里的量产能力,那么我认为自动驾驶方面竞争力在于这套闭环系统,不在于Tesla有多好的算法或芯片,这些只是系统的一个环节,没有任何一个技术点能与系统发挥出的效率相提并论!所以Tesla敢于宣传自己的技术细节,因为系统优势不容易被偷学!
回到话题,训练和推理使用的图像必须是非常一致性的,否则基于数据驱动的神经网络可能不再认识其中的内容。如果说HW SoC ISP去除了部分图像处理算法,那么采集的数据也应该做同样的处理。
对于已经经过几年时间建立起来的闭环系统来说,数据的这些改动影响很可能是巨大的。比如需要重新对所有数据集重新运行一次更新后的ISP版本,基于数据集的庞大,这个过程想必快不了,服务器要承受很大压力。
更复杂的可能是标注,例如老版数据集是基于RGB的,而新版本是基于RAW的,那么某些标注可能需要重新做。
训练是否还需要兼容新老版本的数据集,这似乎要看数据更新的速度等因素,以及已经量产的FSD车是否都能及时更新到最新版本。
总之,问题应该比想象的更复杂。所以,我不太认为Tesla会一朝去掉太多图像处理,这个过程应该也是渐进式的。马院士在采访中也说过,FSD的工程师有个说法,神经网络在吃掉传统代码。这或许是说,网络在逐渐成长,慢慢替代掉一些传统的算法处理。也许真的再过一两年,神经网络会吃掉更多ISP模块,更多规划决策算法,最后剩下的可能就只有几个事关生命的开关策略了。
也许,下图反映了机器视觉与ISP的发展趋势。
文章转载自公众号:软件赋能汽车
