前言
本文将介绍图像信号处理(ISP)行业的最佳实践和实用案例。目的并非提供针对ISP的最佳单一实现方案。相反,这些示例旨在为性能和功能的可移植性提供建议,并解决自动驾驶和辅助驾驶计算平台中涉及的图像格式和图像功能的互操作性需求。
另外,本文还探讨了图像处理功能在摄像头数据进行预处理之前如何对传感器融合算法和检测进行进一步处理的问题。主要介绍ISP体系结构的运作、图像格式、关键性能指标、精度、精确度、吞吐量以及实时成像等要点。
本文讨论的范围仅限于ISP领域,从图像传感器的输出开始,到预处理模块(如GDC和缩放)的输出结束。尽管安全性和保密性也是重要的考虑因素,但它们属于整个系统的问题,因此不在本文讨论之列。
下图展示了系统级功能框图中的ISP提取,以及摄像头、预处理和感知模块。
系统级功能模块框图
本文为第一部分,主要介绍ISP体系结构。
二、 感知模块中的ISP模块
下图详细展示了感知模块中图像处理模块的框架,这些模块是在系统级功能框图中所描述的。图的输入来自摄像头传感器。下面描述的功能并没有给出特定的流程或推荐的连接点。
在某些情况下,需要从一个摄像头图像中同时生成经过独立调优的人眼视觉(HV)和计算机视觉(CV)图像。这可以通过多个ISP并行实现,或通过在ISP内部将计算划分为两个独立的路径并具有独立输出来实现。
感知模块中的ISP模块
2.1 校正技术
在辅助驾驶和/或自动驾驶中,摄像头为AI辅助决策提供了关键的数据。图像的清晰和可操作性至关重要。图像处理使用各种工具进行;这些模块通过完善图像,使助力驾驶和自动驾驶系统能够确保安全舒适的乘车体验。在本节中,我们将介绍目前可用的各种校正技术。
红绿蓝-红外线(RGB-IR) 4x4 重构像
互补金属氧化物半导体(CMOS)传感器通常采用Bayer格式的彩滤阵(CFA)。这种格式允许每个像素捕获可见光谱和部分红外波长的特定波长的光。最常用的Bayer CFA像素布局是2x2像素簇,其中每个簇有一个红色、两个绿色和一个蓝色像素,如下图所示:
RGB-IR 4x4 CFA技术可以捕获红外线(Ir)光,但与典型的Bayer CFA不同,它有一个专用的Ir像素。RGB-IR CFA以4x4集群组织,如下所示:
到目前为止,大多数开发的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与响应的梯度比率相同。
曝光强度响应
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)
全局色调映射(GTM)是根据图像的亮度值执行的非线性空间均匀操作。一旦根据特定图像估计出最佳函数,则图像中的每个像素以完全相同的方式映射,与图像中周围像素的值无关。这种技术简单快速,但可能导致局部对比度损失。
2.14 去马赛克
去马赛克模块通过插值缺失的像素,从不完整或空间下采样的颜色样本中获得全彩图像。去马赛克模块是ISP最复杂的模块之一,因为它通常包括用于抑制混叠伪像(摩尔纹伪像)的逻辑,同时达到高细节重现。
2.15 色彩校正矩阵(CCM)
例如,对于RGB模式,系数将配置如下:
2.16 伽马校正
伽马定义了像素的数字值与其实际亮度之间的关系。没有伽马校正,捕获的阴影不会如我们眼睛所见那样出现(在仪表板、界面或监视器上),也不能压缩计算机视觉引擎的动态范围。伽马校正是一种非线性操作,幂律变换,用于有效编码(压缩)图像的不同颜色通道到所需的行业标准,如BT.709。
2.17 颜色空间转换
RGB到YUV的转换是用标准3x3矩阵乘法和一个向量偏移完成的。
本建议只考虑RGB到YUV,但这并不意味着该模块应该限制于单一转换,因为许多应用可能需要不同的颜色空间。
2.18 Y去噪
为了正确的计算机视觉和人眼视觉,必须有效处理图像噪声,Y空间去噪滤波器对每一帧进行独立处理,在NxN像素的滤波核中采用各种线性和非线性操作来减少亮度域中的噪声。
2.19 色度降噪
ISP中的色度降噪模块通过消色被认为是颜色噪声的像素来去除颜色噪声。为此,通常在NxN图像滤波核中使用线性和非线性滤波的组合。
2.20 锐化
ISP中的锐化模块恢复了光学系统和图像传感器所损失的部分锐度。锐化模块的主要目标是通过从检测到的边界的相邻像素中减去和添加一定比例来增强边界(边缘、纹理)的图像对比度。
2.21 ISP计量
直方图
直方图在相机中起着至关重要的作用,因为它们的数据可以用来控制图像的亮度和对比度。因此,可能需要沿着流水线上的多个采样点。
•每个区域和每个颜色通道的最大值
当前的汽车摄像头没有自动对焦功能,但计算机视觉算法最近利用此统计数据来辅助决策。对比度检测的工作原理是通过分析边缘之间对比度的幅值。与色调和颜色信息计量类似,对比度检测通常以每个区域和每帧为基础提供。
该模块的主要目的是将数据格式化为特定格式,以便后续ISP模块、编码器或感知块可以高效接收和使用输出像素。输出格式转换器的功能通常包括考虑以下方面将数据打包成特定格式:
•数据和颜色格式:如视频编解码标准中指定的,例如:YUV444、422、420、RGB等。
•图像格式:交织、平面或半平面。注意,对于某些颜色格式,需要对颜色信息进行子采样。建议仔细进行子采样和缩放以避免图像中出现伪像。
•像素位深:最常见的应用在每个颜色通道使用相同位数的像素。但对于感知引擎和系统架构中的带宽约束,可能需要每个颜色通道使用不同的位深度。例如,YUV 444 avec 16/8/8 bpp。
缩放器模块负责在ISP输出图像之前对其进行上采样或下采样。该模块应能够调整到系统需求所规定的特定长宽比和缩放因子。调整大小的质量应由最终应用的图像质量要求驱动。反过来,这将推动该模块中需要的插值质量和复杂度。缩放器应支持多种输出以生成金字塔图像,这通常用于CV系统中以减少DDR带宽和计算成本。
几何畸变引擎也可以用于360全景图像拼接,该引擎可以拼接所有图像,或者只校正畸变,以便视觉流水线中的其他模块进行拼接。
三、 ISP延迟
ISP内主要的延迟来源是内存访问(读/写)。由于更低的延迟通常更好,应尽可能在有可能的情况下,特别注意将内存访问限制在最小,数据流是最佳情况。如果没有访问内存,ISP通常被设计为达到几个图像行的延迟,这被认为从系统总延迟来看可以忽略。
已完成
数据加载中