自动驾驶中图像信号处理(ISP)最佳实践(一)

来源:智车Robot
2023-11-29
1815

前言


本文将介绍图像信号处理(ISP)行业的最佳实践和实用案例。目的并非提供针对ISP的最佳单一实现方案。相反,这些示例旨在为性能和功能的可移植性提供建议,并解决自动驾驶和辅助驾驶计算平台中涉及的图像格式和图像功能的互操作性需求。

另外,本文还探讨了图像处理功能在摄像头数据进行预处理之前如何对传感器融合算法和检测进行进一步处理的问题。主要介绍ISP体系结构的运作、图像格式、关键性能指标、精度、精确度、吞吐量以及实时成像等要点。

本文讨论的范围仅限于ISP领域,从图像传感器的输出开始,到预处理模块(如GDC和缩放)的输出结束。尽管安全性和保密性也是重要的考虑因素,但它们属于整个系统的问题,因此不在本文讨论之列。

下图展示了系统级功能框图中的ISP提取,以及摄像头、预处理和感知模块。

37.png

系统级功能模块框图

本文为第一部分,主要介绍ISP体系结构。

二、 感知模块中的ISP模块


下图详细展示了感知模块中图像处理模块的框架,这些模块是在系统级功能框图中所描述的。图的输入来自摄像头传感器。下面描述的功能并没有给出特定的流程或推荐的连接点。

在某些情况下,需要从一个摄像头图像中同时生成经过独立调优的人眼视觉(HV)和计算机视觉(CV)图像。这可以通过多个ISP并行实现,或通过在ISP内部将计算划分为两个独立的路径并具有独立输出来实现。

38.png

感知模块中的ISP模块


2.1 校正技术


在辅助驾驶和/或自动驾驶中,摄像头为AI辅助决策提供了关键的数据。图像的清晰和可操作性至关重要。图像处理使用各种工具进行;这些模块通过完善图像,使助力驾驶和自动驾驶系统能够确保安全舒适的乘车体验。在本节中,我们将介绍目前可用的各种校正技术。

红绿蓝-红外线(RGB-IR) 4x4 重构像

互补金属氧化物半导体(CMOS)传感器通常采用Bayer格式的彩滤阵(CFA)。这种格式允许每个像素捕获可见光谱和部分红外波长的特定波长的光。最常用的Bayer CFA像素布局是2x2像素簇,其中每个簇有一个红色、两个绿色和一个蓝色像素,如下图所示:

39.png

RGB-IR 4x4 CFA技术可以捕获红外线(Ir)光,但与典型的Bayer CFA不同,它有一个专用的Ir像素。RGB-IR CFA以4x4集群组织,如下所示:

40.png

到目前为止,大多数开发的ISP都是为处理2x2 Bayer模式而设计的。如果需要彩色成像,ISP可能需要一个专门的RGB-IR4x4转RGGB2x2转换模块。该过程应包括从彩色像素中减去Ir内容,以及插值红色和蓝色颜色通道以匹配 Bayer2x2 CFA模式。没有专门的RGB-IR重构像模块,RGB-IR4x4 CFA的处理就是不可能的。如果ISP的设计全面考虑了处理这种模式,那么就不需要RGB-IR重构像模块。


2.2 线性化(Linearization)


图像传感器的输出并不总是线性的。为了使RAW图像(包含直接的图像传感器输出)中的非线性响应线性化,在将其从Bayer格式重构像(demosaicing)到RGB以及进行任何其他处理(如白平衡调整、黑电平校正)之前,使用线性化。该模块提供线性扩展,然后进行动态范围压缩,用于具有压缩输出的高动态范围(HDR)图像传感器。较低位宽的传感器输出通常是线性视频的分段线性压缩表示,覆盖高达20位或24位的范围。线性化模块在功能上将压缩的传感器值转换回线性范围,适合ISP后续处理阶段。


2.3 高动态范围合成器(HDR Combiner)


HDR合成器模块将多个时间相近但曝光时间不同的图像帧合成为一个精度高于原图的单独HDR帧。

下图展示了两个不同曝光时间产生的强度响应示例,一个曝光时间长,一个曝光时间短。假设传感器具有线性响应,因此积分时间的比率R与响应的梯度比率相同。

41.png

曝光强度响应


2.4 根据坐标的坏点矫正(DPC)


根据坐标的DPC存储在一次可编程(OTP)嵌入式内存中,也称为静态坏点校正模块,它根据每个坏点的(x,y)位置坐标图来矫正坏点。这个坐标图通常存储在传感器的OTP内存中。


2.5 动态坏点检测/实时矫正


动态DPC执行实时坏点检测和矫正。可以矫正的单像素或小簇坏点的数量没有限制。


2.6 RAW去噪


去噪在保留细节的同时去除图像中的噪声,使结果清晰。空间去噪滤波器对每一帧进行独立处理,,在NxN像素的滤波核中采用各种线性和非线性操作来减少未滤波RAW域中的噪声。


2.7 时间去噪


该模块在视频帧之间执行时间降噪,特别适用于提高黄昏或夜间驾驶图像的清晰度。它可以预测移动以对齐然后平均帧,从而提高信噪比。在大多数情况下,平均水平由当前帧中检测到的本地运动程度本地设置。时间累积需要通过高级可扩展接口(AXI)直接存储器访问(DMA)使用外部双数据速率(DDR)存储器。


2.8 黑电平补偿


黑电平补偿对获得正确对比度和细节至关重要。每个数字图像传感器都具有不敏感光的单元,,用于测量参考电压(黑电平),然后从图像信号中减去该电压。为Bayer组分颜色通道(R、Gr、Gb、B)中的每一个提供单独的黑电平偏移,或者为成像器使用的其他CFA提供偏移。         


2.9 ISP增益


ISP增益通过软件中实现的自动曝光(AE)算法放大和增亮整个图像。


2.10 白平衡(WB)增益


WB增益为每个颜色通道提供增益。这些增益的使用应该是尝试将场景捕获的色温拉回到中性。增益应该由软件中实现的自动白平衡(AWB)算法动态计算。


2.11 镜头阴影矫正


镜头阴影,也称为渐晕(与图像中心相比,图像边缘的亮度或饱和度减少),是许多镜头在大光圈时的常见问题。该模块的目的是为了矫正光线衰减类图案。镜头阴影矫正算法应该能够估计损坏并校正亮度和色度的光线衰减不均匀性。


2.12 色差矫正


相机光学系统在不同波长的光通过时,会遭受不同程度的折射或色散,因为媒质的折射率取决于光的波长。简单地说,有时镜头无法将所有颜色对焦在同一点,留下不该出现的色彩环绕。这种效应会导致在最终图像中可见的像差。典型原因是金属反射或车道上高对比度物体。主要有两种色差,横向和纵向色差。
纵向像差(也称为紫边)发生在光学系统无法在同一焦距上对不同颜色对焦的时候。基本上,不同色道的焦点沿着光轴的纵向方向位于不同的点上。相反,当色道在同一平面上对焦但焦点不在光轴上时,会发生横向色差。横向像差不会导致紫色/蓝色的紫边,而是导致高对比度物体周围的边缘,因为放大倍数取决于波长。这在镜头的角落通常会更糟。

色差矫正模块可以矫正像差,还可以自动检测像差。


2.13 局部色调映射(LTM)和全局色调映射(GTM)


色调映射解决了从场景辐射到可显示范围的高对比度压缩问题,同时保留了感知原始场景内容所需的图像细节和色彩外观。色调映射,也称为动态范围压缩或直方图均衡化,根据特定应用使用不同的目的。色调映射可以通过不同的方式进行;局部或全局。这两种方法通常在ISP中协同工作。
局部色调映射(LTM)通过使用从图像的局部区域聚集的信息,对图像应用强度变换以实现压缩或更好的可视化。在某些情况下,局部色调映射用于在保持中音和高光的同时尽可能强调暗区域的细节,或者仅仅是为了最大化整体图像对比度。

全局色调映射(GTM)是根据图像的亮度值执行的非线性空间均匀操作。一旦根据特定图像估计出最佳函数,则图像中的每个像素以完全相同的方式映射,与图像中周围像素的值无关。这种技术简单快速,但可能导致局部对比度损失。


2.14 去马赛克


今天使用的大多数彩色相机都是使用覆盖有CFA的单个图像传感器来获取图像的。由于成像传感器中部署的CFA的特性,颜色通道以不同的速率采样。这会导致信息丢失。去马赛克过程从不完整的颜色样本中重建完整的彩色图像。

去马赛克模块通过插值缺失的像素,从不完整或空间下采样的颜色样本中获得全彩图像。去马赛克模块是ISP最复杂的模块之一,因为它通常包括用于抑制混叠伪像(摩尔纹伪像)的逻辑,同时达到高细节重现。


2.15 色彩校正矩阵(CCM)


CCM用于将传感器特性适配到特定颜色空间域的光谱特性,为CV目的或仪表板、界面或监视器查看提供更高保真度的图像。CCM模块对支持的CFA的3个颜色通道应用线性颜色校正。对支持的CFA模式的3x3计算如下:
其中In1、In2、In3是支持的CFA的输入颜色通道。A11、...、A33是可配置的矩阵系数,coeff[1、2、3]是每个通道的增益。

例如,对于RGB模式,系数将配置如下:

42.png


2.16 伽马校正


伽马定义了像素的数字值与其实际亮度之间的关系。没有伽马校正,捕获的阴影不会如我们眼睛所见那样出现(在仪表板、界面或监视器上),也不能压缩计算机视觉引擎的动态范围。伽马校正是一种非线性操作,幂律变换,用于有效编码(压缩)图像的不同颜色通道到所需的行业标准,如BT.709。


2.17 颜色空间转换


在汽车应用中,由于颜色空间能够以使计算方便的方式来表示颜色信息,或者因为特定的颜色空间以更直观的方式识别某些颜色,所以使用了许多不同的颜色空间。例如,RGB颜色空间将颜色定义为红色、绿色和蓝色混合的百分比。其他颜色模型,如YUV(Y定义亮度,UV控制色度分量)通过色调、饱和度和亮度来描述颜色。YUV更接近人类对颜色的感知。
颜色转换模块的主要目的是减小文件大小以及在不同设备之间转换颜色。本建议中考虑的转换是RGB到YUV。

RGB到YUV的转换是用标准3x3矩阵乘法和一个向量偏移完成的。

43.png

本建议只考虑RGB到YUV,但这并不意味着该模块应该限制于单一转换,因为许多应用可能需要不同的颜色空间。


2.18 Y去噪


为了正确的计算机视觉和人眼视觉,必须有效处理图像噪声,Y空间去噪滤波器对每一帧进行独立处理,在NxN像素的滤波核中采用各种线性和非线性操作来减少亮度域中的噪声。


2.19 色度降噪


色度噪声,也称为颜色噪声,是一种低频噪声,通常表现为像素之间的颜色斑驳波动。这种噪声非常难看,可以说比亮度噪声更令人恼火。

ISP中的色度降噪模块通过消色被认为是颜色噪声的像素来去除颜色噪声。为此,通常在NxN图像滤波核中使用线性和非线性滤波的组合。   


2.20 锐化


ISP中的锐化模块恢复了光学系统和图像传感器所损失的部分锐度。锐化模块的主要目标是通过从检测到的边界的相邻像素中减去和添加一定比例来增强边界(边缘、纹理)的图像对比度。


2.21 ISP计量


ISP计量模块由一系列专门用于每帧基础上提取统计数据的硬件或软件模块组成,这些数据可被高级算法(如3A或计算机视觉算法)用来提高检测准确性。
这些计量模块充当硬件计算加速器,每帧提供汇总统计数据,每个区域提供,或者两者都提供,并且通常在整个流水线中的多个位置提供。具有专用硬件的计量模块减少了ISP驱动程序的负载。
还有一些其他的计量模块可以提供像素转储,以及来自图像帧中感兴趣区域(ROI)的统计数据。这通常被计算机视觉算法使用。
常见的计量模块集合如下:

直方图

ISP直方图是一种提供图像数据易于理解摘要的方法。它以预定义的箱数跟踪图像中的色调分布。这可以是每个颜色通道的,也可以是在亮度域中的。直方图可以是全局的,也就是说,图像中的所有像素都被统计,或者基于区域的,用户可以设置感兴趣区域(ROI),只收集该ROI内的直方图。此外,ISP可以在一帧内提供多个ROI直方图。

直方图在相机中起着至关重要的作用,因为它们的数据可以用来控制图像的亮度和对比度。因此,可能需要沿着流水线上的多个采样点。

色调和颜色信息
颜色信息通常被自动白平衡算法或计算机视觉算法使用。色调和颜色信息通常以区域为基础和每帧为基础提供。区域数量将取决于应用需求和成像系统考虑的最大图像分辨率。通常收集的颜色统计信息有:
每个区域的颜色比:定义为红色与绿色的比率,以及蓝色与绿色的比率。为此功能建议提供一个阈值函数,该函数仅考虑指定亮度范围内的像素。
•每个区域和每个颜色通道的平均值
每个区域和每个颜色通道的最小值

每个区域和每个颜色通道的最大值

对比度

当前的汽车摄像头没有自动对焦功能,但计算机视觉算法最近利用此统计数据来辅助决策。对比度检测的工作原理是通过分析边缘之间对比度的幅值。与色调和颜色信息计量类似,对比度检测通常以每个区域和每帧为基础提供。   

输出格式转换器
输出转换器模块与颜色空间转换模块密切配合。

该模块的主要目的是将数据格式化为特定格式,以便后续ISP模块、编码器或感知块可以高效接收和使用输出像素。输出格式转换器的功能通常包括考虑以下方面将数据打包成特定格式:

数据和颜色格式:如视频编解码标准中指定的,例如:YUV444、422、420、RGB等。

图像格式:交织、平面或半平面。注意,对于某些颜色格式,需要对颜色信息进行子采样。建议仔细进行子采样和缩放以避免图像中出现伪像。

像素位深:最常见的应用在每个颜色通道使用相同位数的像素。但对于感知引擎和系统架构中的带宽约束,可能需要每个颜色通道使用不同的位深度。例如,YUV 444 avec 16/8/8 bpp。 

缩放器

缩放器模块负责在ISP输出图像之前对其进行上采样或下采样。该模块应能够调整到系统需求所规定的特定长宽比和缩放因子。调整大小的质量应由最终应用的图像质量要求驱动。反过来,这将推动该模块中需要的插值质量和复杂度。缩放器应支持多种输出以生成金字塔图像,这通常用于CV系统中以减少DDR带宽和计算成本。

几何畸变校正(GDC)
光学成像系统通常会遭受畸变伪像,特别是在需要大视场(FOV)的自动驾驶系统中。这对直接解释人眼或计算机视觉算法看到的图像带来重要限制。
几何畸变校正(GDC)模块通过图像处理校正光学系统引入的镜头畸变,通常包括桶形畸变、枕形畸变和胡须畸变校正。除此之外,GDC模块还可以用于旋转、透视校正和镜像。

几何畸变引擎也可以用于360全景图像拼接,该引擎可以拼接所有图像,或者只校正畸变,以便视觉流水线中的其他模块进行拼接。

三、 ISP延迟


本文中,ISP延迟被理解为图像传感器数据在ISP输入和ISP输出处经修改后相同参考(例如第一个像素)之间的时间延迟。由于不同使用案例的总系统延迟预算差异很大(安全关键系统的延迟需要比信息娱乐系统低得多),延迟需要是一个系统范围的设计考量,并设计成保持在目标应用驱动的某些范围内。示例应用包括人眼视觉或安全关键应用。本文不再详细介绍这个话题。

ISP内主要的延迟来源是内存访问(读/写)。由于更低的延迟通常更好,应尽可能在有可能的情况下,特别注意将内存访问限制在最小,数据流是最佳情况。如果没有访问内存,ISP通常被设计为达到几个图像行的延迟,这被认为从系统总延迟来看可以忽略。


收藏
点赞
2000