自动驾驶学习-车载摄像头ISP(2)

 背景

智能驾驶ISP(Image Signal Processor,图像信号处理器)在自动驾驶和辅助驾驶系统中扮演着至关重要的角色。

典型的ISP通常会对摄像头输出的RAW数据先做黑电平矫正(BLC)、坏点矫正(DPC)、数字增益(Dgain)、镜头阴影矫正(LSC)等必要处理。然后通过去马赛克(DM)插值恢复出全彩色图像,在RGB域完成色彩矩阵矫正(CMC)、伽马矫正(GMA)。最后转到YUV域,进行锐度(SHP)、对比度(CON)、颜色饱和度(SAT)等调整后输出。在整个ISP pipeline中间会插入若干降噪(NR)模块。需要注意,某些处理可能会合并到一起,例如某些ISP方案将锐度调整合入到了DM内。

 

 ISP 特点

智能驾驶作为ISP的进阶应用场景,需要ISP将车身摄像头的数据做必要的处理,然后送给后续的AI感知网络进行推理运算,进而对车辆周边环境做出快速准确的判断。为此,当下的智能驾驶芯片厂商,除了提供感知网络所需要的AI算力外,都会提供ISP能力。

为了在行驶当中对外界环境变化做出快速的响应,保证行车安全,ISP的处理延迟应该尽量小,为后续的感知和规控预留出尽量多的时间。所以一个低延迟的数据通路设计,在智能驾驶ISP中显得尤其重要。

行车过程中,光照条件千变万化,像进出隧道、地库等场景,其亮暗比例远远超过目前绝大部分摄像头单次曝光可以覆盖的动态范围。为解决该问题,智能驾驶使用多次曝光来提升动态范围捕获能力。目前主流智能驾驶摄像头动态范围超过140dB。为此,智能驾驶ISP需要考虑如何支持24-bit甚至更高位宽的RAW数据的处理。

为了覆盖更全面的视野,智能驾驶车辆配备了数量众多的摄像头,并且这些摄像头都是同时工作。此外,为了能够识别更细小的物体,摄像头的分辨率也逐渐升高,量产车型使用8M摄像头已经很常见,sensor厂商甚至已经有10M以上的产品。摄像头数量多、分辨率高,这就对ISP的处理能力提出了要求。

另外,智能驾驶ISP的输出是给感知网络使用,不是给人去做主观的美丑评判。这一点和其他领域,例如消费相机,有着本质区别。面向CV的ISP应该设计成什么样,学术界给出了一些参考。《Reconfiguring the Imaging Pipeline for Computer Vision》做了大量的实验,比较了传统ISP中各个模块对网络性能的影响。根据下图呈现的实验数据,该文作者认为Demosaic和Gamma对AI网络性能影响最大,是CV ISP中最重要的两个模块。

类似的,《ISP4ML:The Role of Image Signal Processing in Efficient Deep Learning Vision Systems》在实验中发现,有无去噪对网络性能影响不大。如下图浅蓝色和绿色的柱状条在各种情况下高度都差不多。甚至在某些情况下,没有去噪的时候反而网络的精度还略高一些。换句话说,去噪起了负作用。

技术现状

为减小开发难度,缩短开发周期,很多智能驾驶ISP都是在其他领域ISP基础上做增量开发。背着历史的包袱,必定带来不少问题。

架构层面,很多ISP都是多级结构,级与级之间通过DDR交互,如下图所示。该架构通过对DDR的利用,能够以较低成本实现需要frame buffer才能操作的复杂算法。同时,那些需要统计数据才能进行的计算,如tone mapping等,可以使用前级统计、后级运算的策略,让计算结果“当帧生效”,避免由统计数据和图像内容不匹配引起的效果“振荡”。下图中绿色模块的统计数据由stage 1产生,该统计数据可以由stage 2使用。这种多级架构用极低的成本带来了极致的图像处理效果。但是对智能驾驶而言,每进出一次DDR都意味着带来额外一帧的处理时延。

算法层面,智能驾驶有其自身的技术关注点,例如对高饱和度红色的处理。传统的基于Bayer pattern的demosaic算法,会先对绿色通道进行插值,其他颜色通道再以绿色为基准,借助色差信息进行插值。如果此时绿色分量数值很小,则会引起作为基准的绿色通道插值误差变大,进而导致红色和蓝色的插值结果出错。尤其是在距离较远的情况下,物体小、像素少,demosaic变得更加困难。智能驾驶场景中远处的红色交通信号标识正好满足绿色分量数值小且体积小的条件。下图是几个ISP在该类场景下的表现。可以看到,下图左侧的左转箭头非常难以辨认,势必影响后续感知识别的结果。

虽然学术界对CV ISP的研究虽然已经有了一些成果,但是也有一定局限性。论文中使用的RAW数据很多都是用RGB数据反向生成的,并非真正实采的RAW。实验中使用的ISP pipeline,其规模相对较小,模块设计也非常简单,和真正商用量产的ISP相比差距明显。这些都会对最终的研究结论造成影响。

消费相机领域的ISP经过充分的市场竞争已经非常成熟。以手机为例,手机将拍照性能作为一大卖点,身为核心的ISP经过了10余年的迭代,从低分辨率到高分辨率,从单摄到多摄,从传统到AI。无论是芯片厂还是终端厂,都是各显神通,投入巨资不断提升ISP性能。反观智能驾驶领域,ISP的演进相形见绌。平台厂缺乏改进动力,IP厂又缺乏足够的数据来支持改进。再加上作为ISP输出图像使用者的AI网络,其本身拥有一定的鲁棒性,“细粮”和“粗粮”多少都能吃一点,因此改进ISP设计似乎不那么迫切。

智能驾驶对ISP的需求简单归纳起来有两点:一是低延迟,二是信号保真。

延迟越低,系统响应越快,智能驾驶安全性越高。目前大部分智能驾驶方案都采用离线处理的方式,摄像头数据先进入缓存,ISP从缓存读出数据再进行处理,如下图所示。该架构有利于以合理的成本支持数量众多的摄像头带来的海量图像数据,但是缓存的使用引入了延迟。

这里不得不提到手机领域的ISP。虽然手机ISP无法直接用于智能驾驶,但是其研发方式和方法值得借鉴。甚至某些技术方案,可能就是智能驾驶ISP的演进方向。例如手机ISP为了节省面积减少line buffer宽度,将图像切分成tile进行处理。Tile节省line buffer带来的收益在智能驾驶场景下一样适用。更重要的是,tile模式可以让下一级处理提前启动,甚至让ISP自身提前启动,借此有效减少系统延迟。

上图给出了3个不同方案的延迟示意。在第一个虚线框里的“传统方案”中,摄像头输出一帧后,ISP开始处理;ISP处理完一帧后,感知的AI网络开始处理。从摄像头输出完成到感知处理完成,延迟大概是两帧。在第二个虚线框里的“Tile Mode + 感知快速启动”方案中,一帧图像被切成了4个tile。摄像头输出完一帧,ISP启动处理;ISP每处理完一个tile,感知就开始该tile的处理。由此产生的延迟缩短到了一加四分之一帧。在最后一个虚线框里的“Tile Mode + ISP快速启动 + 感知快速启动”方案中,摄像头每输出一个tile,ISP就启动处理;ISP每处理完一个tile,感知就开始该tile的处理。这种方案下,延迟进一步缩短到了二分之一帧。虽然以上分析基于感知网络支持tile模式的假设,但是ISP的设计者必须考虑作为上游的ISP要先拥有这样的能力。

信号保真,目的是为感知网络提供尽可能正确的信息。一方面信息不能丢失,例如HDR技术的采用就是为了同时正确地获取高动态范围场景下高亮和低亮的信号。如何控制好摄像头的曝光,如何利用好摄像头输出的24-bit甚至更高动态范围的数据,在位宽压缩过程中不丢失重要信息,不仅需要对算法模块进行细致的打磨,甚至在最初系统架构设计的时候就需要考虑清楚。不要制造出虚假的细节,是信号保真的另一个重要方面。比如前面提到的demosaic算法,如果设计不当,则会引入虚假的细节。如下图左侧所示,红色数字经过某ISP的demosaic后出现异常的黑点。各种虚假细节对后续的感知网络都是潜在的干扰。

如何构建一个面向智能驾驶的ISP架构,在提供高保真、高性能处理的同时,尽量减小处理延迟,需要我们结合智能驾驶碰到的各种场景做细致的分析和研究。

去ISP化?

早在2021年底,新能源汽车的引领者特斯拉就表达了对ISP的看法。马斯克认为ISP为了让人眼舒适做了不必要的后处理,从而带来额外的延迟。

在2022年的Tesla AI Day上,特斯拉展示了occupancy network的架构,如下图所示。工程师介绍说:“We are giving the 12-bit raw photon count image to the network since it has four bits more information.”根据这个架构图,摄像头的数据经过了一个名为“Rectify”的模块后,直接进入了网络。

虽然特斯拉对ISP颇有微词,但是对ISP的去留又始终语焉不详。推测特斯拉也在来回琢磨如何设计一个智能驾驶适用的ISP,因为从很多角度来看,ISP都应该在智能驾驶的数据链路中拥有一席之地。首先,获取智能驾驶网络训练图像的摄像头通常和项目量产的摄像头的成像风格有差异。为避免感知网络性能由此下降,需要借助ISP的调试灵活度来拉齐两个摄像头的成像差别。其次,针对摄像头模组本身的缺陷,传统ISP有着非常成熟的算法,能够高效的解决诸如坏点等问题。再者,摄像头的曝光控制和颜色管理等目前还没有看到完全依靠网络就能够稳定工作的方案,曝光正确与否决定了环境信息能否被摄像头正确捕捉,颜色是否正确则决定了诸如红绿灯等交通信号标识能否被正确识别,这些场合传统ISP仍然是第一选择。

 总结

在可见的未来,ISP+AI感知网络仍然是一个较优的技术方案。虽然近几年新能源汽车发展迅速,但是针对车载ISP的深入研究还不太多,大家基本上都是处于有什么用什么的状态。如何以合理的成本设计出满足车载低延迟、高吞吐要求的ISP架构,如何针对CV的需求来规划pipeline算法方案使得CV性能最优,如何设计出简单易用的调试工具与流程从而加速量产,这些和ISP相关的方方面面都有着非常大的空间值得我们去探索。

<think>好的,我现在需要回答用户关于自动驾驶摄像头ISP(图像信号处理)软件架构设计与实现的问题。首先,我得明确用户的需求,他们可能想了解ISP自动驾驶系统中的角色、软件架构的层次、设计原则以及实现中的技术细节。 根据提供的引用材料,引用[2]详细说明了ISP的功能,包括图像处理算法、色彩空间转换等,这应该是架构设计的核心部分。引用[3]提到不同处理方案的延迟优化,特别是Tile Mode和快速启动技术,这可能涉及到软件架构中的并行处理和流水线设计。引用[4]指出摄像头数据流向域控制器进行处理,说明ISP可能集成在域控制器中,或者作为独立模块存在。 首先,我需要整理ISP软件架构的主要组成部分。通常,软件架构可能包括硬件抽象层、算法处理层、控制管理层和接口层。硬件抽象层负责与图像传感器、镜头等硬件的交互,这对应引用[4]中的摄像头零部件部分。算法处理层需要涵盖引用[2]提到的各种图像处理算法,比如降噪、HDR、色彩校正等。控制管理层可能涉及任务调度、资源管理,以支持引用[3]中的Tile Mode处理,减少延迟。接口层则需要与域控制器或其他模块通信,传递处理后的数据。 接下来,设计原则方面,实时性、低延迟是关键,特别是自动驾驶对实时处理的要求极高。引用[3]中的不同方案优化延迟的方法,如分块处理和流水线技术,应该在架构设计中体现。此外,可扩展性也很重要,可能通过模块化设计,允许不同算法或硬件的替换。 在实现技术上,可能需要使用多线程或并行处理来加速图像处理。例如,每个Tile的处理可以分配到不同的处理单元,同时进行,以减少整体处理时间。此外,硬件加速如GPU或专用ASIC可能被用于提升性能,这点虽然引用中没有提到,但属于常见做法。 还需要考虑软件与硬件的协同,比如引用[1]提到的ISP作为车载摄像头模组的一部分,可能涉及与串行器、连接器的数据传递。软件架构需要高效的数据流管理,确保图像数据从传感器到处理器再到域控制器的流畅传输。 最后,测试和验证也是实现的重要部分,确保ISP处理后的图像质量满足自动驾驶的精度要求,同时满足实时性约束。可能涉及仿真、硬件在环测试等方法。 现在需要将这些点组织成结构清晰的回答,涵盖架构层次、设计原则、实现技术和优化策略,并引用提供的资料支持每个部分。同时生成相关问题,帮助用户深入理解。</think>### 自动驾驶摄像头ISP软件架构设计与实现 #### 一、ISP软件架构的核心层次 1. **硬件抽象层(HAL)** 负责与摄像头模组硬件(如CIS图像传感器、串行器)的交互,实现驱动接口标准化。例如,从传感器获取原始RAW数据,并通过MIPI等接口传输到ISP处理模块[^4][^1]。 2. **算法处理层** 包含多级图像处理流水线,典型模块包括: - **预处理**:坏点校正、镜头阴影补偿 - **基础处理**:去马赛克(Demosaic)、白平衡、伽马校正 - **增强处理**:HDR融合、降噪(3DNR)、边缘增强 - **色彩管理**:RGB-YUV转换、宽动态范围映射[^2] 3. **控制管理层** 实现任务调度与资源分配,支持分块处理(Tile Mode)。例如,将一帧图像划分为多个Tile,ISP完成单个Tile处理后立即触发感知算法处理,从而降低端到端延迟[^3]。 4. **接口与协议层** 提供与域控制器的通信接口(如以太网、CAN FD),支持多摄像头同步和时间戳对齐,确保数据流实时传输。 #### 二、关键设计原则 1. **低延迟优化** - 采用**流水线并行化**:ISP处理与感知处理重叠执行(如引用[3]中第三种方案) - **分块处理(Tile-based Processing)**:图像按区域分块传输和处理,减少单帧等待时间 - **快速启动机制**:硬件中断触发即时处理,避免帧缓存积压 2. **实时性保障** - 硬实时任务优先级划分(如曝光控制>色彩校正) - 内存带宽优化:通过零拷贝技术减少数据搬运开销 3. **可扩展性设计** - 模块化算法库:支持动态加载不同厂商的3A算法(自动曝光、自动对焦、自动白平衡) - 参数可配置化:通过XML或JSON文件定义处理流水线顺序 #### 三、典型实现技术 ```cpp // 示例:分块处理伪代码 void process_frame(Frame& frame) { for (auto& tile : split_into_tiles(frame, 4)) { isp_pipeline.process(tile); // ISP处理单个Tile perception.on_tile_ready(tile); // 触发感知模块处理 } } ``` #### 四、性能优化策略 1. **硬件加速** - 专用指令集:ARM Neon或GPU Shader实现卷积滤波加速 - FPGA流水线:固定算法(如去马赛克)固化到硬件逻辑 2. **软件优化** - 多线程调度:分离传感器数据采集、ISP处理、结果输出线程 - 内存复用:环形缓冲区避免动态内存分配 3. **质量校准** - 在线标定:基于温度/光照变化的暗电流补偿 -摄像头一致性:同步白平衡参数与色彩空间 #### 五、挑战与趋势 - **极端光照适应**:需融合ISP处理与深度学习(如对抗生成网络去雾) - **功能安全**:符合ISO 26262 ASIL-B等级要求,增加CRC校验与看门狗机制 - **异构计算**:CPU+GPU+NPU协同处理,如将色彩转换卸载到NPU
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值