关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?

来源 |  车右智能
知圈  进“域控制器群”请加微13636581676,备注

=====================

引子:TeslaVision技术的概要描述引发本公众号发布以来的最大点击量,同时在后台我们也观察到一些问题陆陆续续浮出水面,主要焦点是关于视觉能力的机器化进程主题。最为自动驾驶的基础技术和核心问题,小编感觉有必要在我们车右智能的理解范围内,提供一些基础资料和分析,与诸位共享。

=====================

 

问题之一:在技术实操层面,通常摄像头采集视频是每秒X帧,图片分辨率是a*b,计算机处理图像是每秒Y幅。可是,人在认知世界时,人眼看世界是每秒多少帧?人类视觉的分辨率是多少?大脑处理视觉的效率如何量度?即,人是把每一秒分成多少份在认知这个世界?

 

++生命体中的视觉结构和性能简析++


先从人眼说起吧!小编不是生物和生命领域的专家,但我们每个人都明白,AI的核心意思还是“A的I”即“类人的、仿人的Intelligence”,所以仿生仿的还需要是人类,以人类的生物结构为核心。雷达这种传感器虽然可以仿蝙蝠、仿海豚,但视觉能力的建立,尤其是自动驾驶为核心任务的自动驾驶任务(这也是人类特有的后天获得性能力),主要还是应该仿人类的眼球结构和对应的脑神经结构,这是不是终极绝配我们不知道,但至少是未来很长一段时间内我们应当全力追求的目标。

 

下划线部分参考tobilipro.cn/一家眼动仪设备制造商所公布的相关信息人类双眼的视野范围约水平220度,垂直135度。但是视野区域能够获取视觉信息的清晰度等级分部却并不均匀,这是由于视网膜上分布的两种不同的感光细胞造成的——视杆细胞和视锥细胞。我们眼球中约有94%的感光细胞是视杆细胞。如之前提到的,视网膜的周边区域不能很好地记录颜色和提供目标的形状,该区域即主要被视杆细胞所覆盖。视杆细胞不需要充足的光线就可以工作,因此它只能为我们提供周边环境的模糊且色彩较少的图像;为了获得更多细节内容和清晰的视野,要靠我们的眼球中的另一类感光细胞——视锥细胞。视锥细胞在我们眼球中的所有感光细胞中所占比例约为6%。视锥细胞通常位于视网膜的中央窝,他们排列紧密以提供尽可能清晰的图像。

 

人类眼球的时间和空间采样能力限制了我们从周围环境中提取视觉信息的方式。由于我们在将视线从视野范围的中央区域移出时,视觉精度会迅速下降,所以我们使用了一系列眼动行为使我们能够将视线放在目标物或场景的感兴趣的位置。眼跳是一种将中央窝视野从一点移到另一点的快速眼动行为,而注视则是将中央窝视野在目标上保持一定的时长以获得足够的视觉图像细节。我们对物体和场景的视觉感知是通过一系列的注视和眼跳来完成的。由于眼跳发生时眼球的移动速度极快,这期间几乎不会获得任何有效的视觉信息,而多数的视觉信息是通过注视获取的。

 

关于眼跳和注视行为的具体指标为,眼跳的平均时间约为20-40毫秒,而注视的时间在80-600毫秒之间变化。参见以下这幅图:                

 

关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图1


上图显示,当人眼从位置1通过“眼跳”操作移植下一个注意力点位置2的时候,如果要实现对于位置2物体或者景物的观察,还需要进行“注视”操作。人类的视觉技能并不能像光学Camera那样一次性完整捕捉整个画幅(对应为人眼视野),而必须通过额外耗时的“眼跳”和“注视”操作进行补充,从而带来额外的性能损耗。

 

人类的眼睛除了具有非常受限的清晰视野范围的特征之外,与现代的计算机屏幕的刷新率相比较,我们的眼睛对图像变化的记录也非常迟钝。研究已证实在常规的光线条件下,视网膜需要80毫秒来记录一幅新图像,这仅仅是眼睛记录下来的一次变化。记录图像的能力还取决于这幅图像上的光线密度。这可以与照相机的快门速度加以对比,光线较差的环境会导致图像发黑并且非常模糊,很难看清任何东西。但是,如果记录的物体或场景的光线环境很好,例如窗户,那么就可以用较快的快门速度且不会出现此问题。除了记录图像需要一定的时间,我们的眼睛还需要一定的时间让图像从视网膜消失。这同样取决于光线的密度。举例来说,当物体暴露在非常强的光线下时(如闪光灯的闪光),图像在闪光结束后还会在视网膜上停留很久。

 

除了眼睛对光线的敏感度,我们对所观察事物的感知速度还取决于我们观察的内容。研究发现当在正常的光线下阅读时,多数人为了感知一个文字而进行的观察时间仅需50-60毫秒。但在观察例如一幅图片时,人们需要对其观察至少150毫秒才能诠释他们看到的内容。小编:这里需要注意的是,这个对于“感知速度”的技术性的描述实际上并未确定这里的“感知”是仅仅对应自动驾驶AI流程中的Perception,还是也需要在对于内容理解基础上再覆盖后续的Prediction和Planning过程?比如观察一幅图片,150ms是只能看到这里有一幅图片,但实际不理解其内容并作出符合上下文的判断?这个差别还是比较关键的,小编倾向于前者。

 

综上所诉,这里所罗列的人眼数据指标上看,并不是在性能上高不可攀的传感器。从视野范围受限,到已经受限的视野范围内狭小的高精度数据捕获区域(只占视野范围内的区区6%),再到视锥细胞狭小范围所引发的生物弥补手段(眼跳和聚焦),和有限的视觉信息刷新率,最终再到完整捕获视锥细胞范围区域内的识别对象同样需要消耗时间……这一个视觉数据捕获链条下来,尚未送到大脑的视神经皮层,已经是代价不菲了。

 

根据以上指标,我们可以在这里做一个不确定的计算。如果对标人体前向水平220度,垂直135度的区域进行视觉识别,实际上人类只能通过眼跳和注视识别其中面积大约6%的高价值视觉信息【小编:当然距离不能太远,人眼的视角有效距离是一定的;但人类的优势还是在于高质量的、通过先天遗传和后天学习所获取的世界经验体系,会告诉我们如何快速找到最敏感的视觉区域。】,而到这一步已经耗费了100-640毫秒的时间了。如果在一个注视周期内无法完成对于图像的锁定,那么至少需要一个以上的注视周期(对应的刷新率是额外的80毫秒),则此时时间耗费来到了180-720毫秒。如果在这个基础之上还需要对视觉聚焦区内的文字或者图像内容做出识别,那么总体的时间消耗最终会达到230-870毫秒……就这么简单的加法运算来判断,定性角度看这已经接近一秒钟,达到秒级别了!

 

这似乎和我们的日常经验相吻合,不论你是在利用视觉能力日常观察行为还是驾驶状态下的持续动态观察中,秒级的时间资源消耗就是大概一眨眼的衡量尺度,除此之外我们也确实需要转动眼球甚至头部去捕捉更大视野范围内的必要视觉信息,比如在驾驶状态中一个合格的人类驾驶员就需要不断通过观测两侧反光镜和后视镜来获取360度环境信息,这引入的时间资源消耗,需要另算,同样是秒级。据此我们可以判断,如果单纯考量视觉信息的获取能力,包括绝对的视觉信息获取量和获取时间、频率,人眼未见得就一定强过现有达到车载商用级别的光学系统。

 

++机器世界中的光学结构和NN网络性能简析++


对比之下,基于现代Camera光学技术和计算机视觉所依赖的卷积神经网络CNN和发展迅速的Transformer network,在视觉数据的捕获和识别等硬指标上,反而更好。我们这里还是以典型的Tesla Autopilot系统为例,如下图:


 

关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图2


本次CVPR2021的自动驾驶Workshop上,Karpathy给出了Autopilot系统所对应的标准8 Cameras硬件体系和其背后的Camera network(CNN)概要性能指标:8 cameras(1280*960*3) uint8 @36Hz【小编:这里的uint8代表无符号整数类型,意味着每一个单色像素都会被以8位的无符号整型数据存储下来,并做后续处理】。这意味着8个摄像头在各自独立的视野范围,以每秒36帧的频率记录着以无符号整数8bit为单位记录RGB像素信息。在这里读者不必在意每单个摄像头的视野具体范围,因为整体看,做到车周360度水平视场无死角覆盖对于自动驾驶来说是个标准需求。但是垂直视场可能因厂家而异,比如高大SUV车辆的车头下部的近距离区域,就有可能造成视场上的死角。我们如果动手做个简单的运算,这些摄像头每秒钟所贡献的原始数据量Raw data rate为,1280*960*3*8*36=1061MBuint8

 

但读者也可能注意到了,虽然Tesla Autopilot的硬件Raw data的捕获数据量惊人,但实际上产生的有效数据按照Karpathy的说法,是保持在每秒产生8M bits所可以描述的constraints(约束)这个规模【小编:按照我的理解,这里的constraints描述的是主车车身四周的交通场景约束定义,他有两个特点:首先constraints的源泉是来自于Camera的硬件信息流raw data的,其次constraints还是语义级别的识别结果,通过constraints的形式准确描述车身四周的物理环境和其交通互动关系】。这里面有比较大的收敛比,而收敛比的定义和具体的驾驶场景相关,也和Autopilot中的Camera networks处理方式和网络规模相关。其实,只要车载光学器件和自动驾驶中央域CPU的计算力足够,从Raw data到constraints的收敛比就不需要我们在这里做进一步的猜测了。但如果读者希望了解更多关于所谓的Tesla“camera networks”的工作方式,还是应该了解以下的事实:

 

从视觉处理的流程上看TeslaData Pipeline架构: 


关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图3


大概一年多前,Tesla的公开Data pipeline专利附图(如上图)显示了使用深度学习流水线过程的autopilot图像处理流程图。图中的过程主要说明了在大规模的视觉机器学习中使用“预处理”技术的必要性。通过预处理传感器数据,可为深度学习提供有效数据,并获得更精确的结果来控制车辆。在一些具体的实施例中,预处理过程还可以解决传感器捕获的数据与神经网络期望用于深度学习的数据之间的数据失配问题。【小编:在今天的主题下,我们关注的是Data pipeline中的101和103环节,这些环节上体现的功能基本可以和人眼功能和视神经连接结构划等号

 

上图的101处,Tesla的专利表明数据获取的源头在于车辆的各类型传感器所捕获的外界数据,包括Lidar、Camera、mmRadar和microwave甚至V2X等技术在专利文件中都有描述,但我们知道目前对于Tesla和其Tesla Vision技术来说,长远看还是以视觉数据为主,甚至为单一数据来源。

 

需要注意的是,在一些实施例中,某种性质的传感器数据的“位深度”可能超过用于深度学习分析的神经网络的位深度。通常来讲,传感器直接获取的各类型数据的“数据深度”普遍都是比较丰富的。以可视的图形获取为例,即便是只有400*400大小,也有16万个像素点,如果再考虑每个像素的颜色(一般都是多通道的彩色图像捕获),可以用红R、绿G、蓝B、透明度四个值描述,大小范围都是0 ~ 255,比如黑色是[0,0, 0, 255],白色是[255, 255, 255,255],那么图形文件的数据厚度会大大加重后端神经网络的工作量从而使得在车端本地和云端中央处理大量可视的图形文件变得不可能。【小编:提醒大家此处位深度的概念和我们之前提到的uint8数据结构不完全一致,主要还是指传感器所产生的raw data的数据流量和后端机器学习NN的处理能力是否匹配的问题】Tesla的8个标准配备的camera像素并不算太高,1280*960p大约1百万像素级别只能说勉强算是准高清标准,这也是Tesla对于数码硬件规格的一贯风格。但实际上我们考虑摄像头的规格最主要还是需要后端处理能力匹配才能发挥最大效能,所以我们对于camera的像素指标并不十分看重。半年前蔚来发布ET7的时候李斌特意强调过他们的摄像头分辨率更高,足足八百万!参见下图,更有利于观察到更远距离上的交通细节(在687m的距离上可以等效实现1百万像素相机在229m距离上的信息获取能力)……小编觉得分辨率高低之争的核心还是在于评估最终的识别效果,单纯拼硬件指标没有太大的实际意义。蔚来藏在摄像头后端的NN神经网络的识别能力,如果要匹配如此强大的光学和数码图像获取能力,势必要更加强大,才可以提供更好的识别效果。蔚来的相关资料比较少,我们在后面的篇幅会介绍一下我们所掌握的Tesla的camera networks(NN)一些公开分析,读者可以了解到光学和数字图像能力是必须和后端NN处理能力协调一致才能发挥最大效力。


关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图4

 

因此,提前统一考虑传感器数据的异构型、来源不同和数据位数的丰厚不一,就十分有必要。因此有了图中的103模块——Pre-processing。从这个角度看,Tesla Vision作为单一传感器性质的信息获取手段,至少在数据预处理这个环节上看还是有优势的:简单、划一。

 

同时在上图的103处(Pre-processing模块),Data Pipeline将会对传感器数据执行数据预处理操作,这些操作包含但不限于以下:

第一:在一些实施例中,可以对传感器数据执行一个或多个预处理过程。例如,可以首先对数据进行预处理以去除噪声,校正对准问题和/或模糊等;根据目前普遍的计算机视觉技术,对于图案的噪声去除技术(相当于高频率波)和模糊技术(相当于低频滤波),通常有两种做法,一种是在图像的频域利用数字滤波技术来获取所需要的处理效果;另外一种是在图像的空间域,直接利用数字图像的卷积操作(Convolution)来获取所需要的处理效果。Tesla的具体处理方法不确定,小编倾向于后者基于机器学习CNN技术的处理方法;

第二:在一些实施例中,对数据执行两次或更多次不同的滤波通过。例如,可以对数据执行高通滤波器,并且可以对数据执行低通滤波器。这个图像数字处理方法同上,在频率域上的高低通滤波或者带通滤波,都会在原始图像上捕捉到和后续处理重点相合拍的图像内容,这里不做重点描述;

第三:在一些实施例中,可以执行一个或多个带通滤波器。例如,除了高通和低通以外,还可以对数据执行一个或多个带通。同上,但此处强调的是在Pre-processing预处理阶段,Data Pipeline的相关模块化组织,不仅可以容纳单个高低通滤波操作,也还可以根据后端处理(AI神经网络的识别)的需要,提供各种各样的组合(包括一个或者多个的频域处理结果)。

 

在以上的各种实施例中,传感器数据都按照处理通道被分成两个或多个数据集,这里所谓不同的数据集就是原始传感器数据的不同组成部分。

 

更具体的Data Preprocessing预处理操作,在Data pipeline的专利描述中有这样的介绍。

第一:在一些实施例中,通过对传感器数据执行高通或带通滤波器来创建特征和/或边缘分量,并且通过对传感器数据执行低通或带通滤波器来创建全局数据分量;例如,可以通过从图像数据去除噪声和/或增强图像数据的局部对比度来处理高通分量;

第二:在一些实施例中,不同的分量(可以是高通分量也可以是低通分量)被压缩和/或下采样。例如,可以适当地压缩,调整大小和/或下采样组件,以调整数据的大小和/或分辨率,以将数据输入到机器学习模型的某一层。具体来说,预处理模块可以调整传感器数据的位深度。例如,将以20位或另一适当位深度捕获数据的相机的数据通道压缩或量化为8位,以为8位机器学习模型准备通道。同样可以实现的是,一个或多个传感器以12位,16位,20位,32位……

 

在上图103处执行的预处理的模块,物理基础为图像预处理器。需要关注的是,“图像预处理器”不是一个固定的硬件资源,而是根据不同的预处理任务的需求不同而灵活调度的相关硬件资源。例如:在一些实施例中,图像预处理器可以是图形处理单元(GPU),或者中央处理单元(CPU),或者人工智能(AI)处理器,专用的图像信号处理器、色调映射器处理器或其他类似的硬件处理器。在各种实施例中,不同的图像预处理资源用于并行地提取和/或预处理不同的数据分量。

 

以上的描述对于大多数没有计算机视觉知识背景的读者并不算友好,但如果你坚持看到这里了,那么小编可以提供对于这些晦涩的Computer Graphic词汇有一种很好的理解方式,如下图:

 

关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图5


上图对于熟悉CG领域的读者来说,可能是再熟悉不过了。这是鼎鼎大名的模特Lena和其对应的右侧高频处理结果图。照片是在1972年底拍摄的,是当月份《花花公子》一张裸体插图照片的一部分,但阴差阳错地被美国南加州大学的信号图像处理研究所的一个助理教授选为作为一个学术会议的数字照片样本,并在那之后,莱娜图在图像压缩算法界成为最广泛应用的标准测试图——她的脸部与裸露的肩部已经变成了事实上的工业标准。此侧身肖像图在科研领域流行的原因后来被总结为:1 该图适度的混合了细节、平滑区域、阴影和纹理,从而能很好的测试各种图像处理算法;2 Lenna是个不折不扣的美女,对于图像处理界的研究者(大部分都是男性)来说,美女图可以有效的吸引他们来做研究。【此段文字来源为CSDN博主「菜鸟知识搬运工」的原创文章,遵循CC 4.0 BY-SA版权协议,原文链接:https://blog.csdn.net/qq_30815237/article/details/87168416】

 

另一个概念是针对图像文件的频域分析,虽然理解起来比较晦涩,但实际上只要理解这是针对图形文件的另外一种信息表达方式。读者只需要知道图像文件中,往往图幅中亮度变化明显的点,比如边缘区域或者线条等细节部分与图像频谱的高频分量相对应即可。正因为如此,对于图形文件的频域信息采用高通滤波技术就可以实现让高频分量顺利通过,而大幅度过滤掉低频信息,从而使图像的边缘或者线条细节变得清楚,最终实现边缘的提取和图像锐化效果。以下图为例,他们对应四种截止频率的高通滤波器,从左到右,截止频率逐渐增加。这意味着从左到右,这些滤波器允许通过频率信息逐渐增加。

 

关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图6


关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图7

 

因此当将这些滤波器作用于Lena标准像上时,高通滤波的效果得以展示,我们可以看到明显的边缘信息提取效果:截止频率越低,越多的低频信息被过滤掉,得以保留的轮廓和线条信息就越明显。对应Tesla的Data Pipeline专利中对于camera networks的架构描述,高通分量、低通分量和带通分量,在卷积网络得到视觉输入信息后,会得到一一处理和存储,并在后续的视觉信息识别(identification)功能模块上得到进一步处理。掌握了这一点,就明白了103所代表的图像数字信号预处理功能的意义。

 

为了更好的理解,这里可以再看一个关于“带通分量”数字处理的效果,带通频域数字处理的目标在于,尽可能在抓到数字图像的高频边缘部分和低频局部特征部分,下图的最底部即为这个平衡的最终效果。不同的频域信息处理方法,可以得到图像文件不同的处理效果,小编不是CG专业,也只能说这么多了。但是这些包含不同特征的处理结果,在Tesla的Data Pipeline中被做各种分项的专题处理,并按需组合,最终满足视觉系统identification的效果。


关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图8


在Data Pipeline流程中的105处,Data pipeline跳出了“预处理”过程而进入真正的Deep Learning模块而开始执行深度学习分析。使用机器学习模型(例如神经网络)执行深度学习分析。到此为止就相当于进入大脑皮层环节了,不再展开讨论。总得来说,Tesla的Data Pipeline流程,其本质就是卷积神经网络在对于图形文件特征提取(卷积操作)和图像压缩/下采样(池化操作)的重新梳理和组织。当然Data pipeline一定会针对Tesla的神经网络结构,而做出具体的调整。比如上述的,“神经网络接收高通分量作为对网络第一层的初始输入,而低通分量作为对网络后继层的输入。”即使一种比较新颖的数据喂养方式。

 

从视觉处理网络的规模上看机器视觉的处理能力:

……

 

篇幅所限,精力所限,关于对于Tesla camera networks v9的分析我们放到下一期完成,主要技术来源是jimmy_dreddit上的一篇分析文章,小编个人感觉很精彩。

敬请期待。


备注:

1 插图1来自于tobiipro.cn的产品介绍插图,参考URL:https://www.tobiipro.cn/learn-and-support/learn/eye-tracking-essentials/types-of-eye-movements/;

2 插图2来自于CVPR大会自动驾驶Workshop的online会议Karpathy议题的截图,参考URL:https://www.youtube.com/watch?v=eOL_rCK59ZI&t=28286s;

3 插图3来自于Tesla Pipeline专利文件插图,参考URL:https://patents.justia.com/patent/20190391587;

4 插图4来自于蔚来网站ET7宣传资料截图;

5 插图5来自于推特用户@im_abhisshekumar的推文截图,参考URL:https://twitter.com/im_abhishekumar/status/501702123843629057;

5 插图6/7来自于CSDN文章“高通滤波法、微分算子法、神经网络方法实现图像边缘检测”的插图,参考URL:https://blog.csdn.net/adamding1999/article/details/106151917/;

7 插图8来自于CSDN文章“数字图像处理与python实现——带通滤波器”中的插图,参考URL:https://blog.csdn.net/qq_43808611/article/details/106562794?utm_term=%E5%AF%B9%E5%9B%BE%E5%83%8F%E8%BF%9B%E8%A1%8C%E5%B8%A6%E9%80%9A%E6%BB%A4%E6%B3%A2%E5%A4%84%E7%90%86&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-0-106562794&spm=3001.4430;

8 封面插图来自于https://www.tesmanian.com/blogs/tesmanian-blog/tesla-cameras-helped-catch-a-criminal-accused-of-shooting-at-moving-cars ;

关于Tesla Vision的一些问题:视觉如何一步步发展到今天的?的图9

登录后免费查看全文
立即登录
App下载
技术邻APP
工程师必备
  • 项目客服
  • 培训客服
  • 平台客服

TOP