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

news2024/11/28 10:43:37

 背景

智能驾驶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相关的方方面面都有着非常大的空间值得我们去探索。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1844835.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

社区团购多级分销流程:从入门到精通实践

随着电商平台和社交媒体的迅速发展,社区团购逐渐成为了一种新兴的购物模式。通过多级分销体系,社区团购有效地扩大了销售网络,提高了商品的流通速度和覆盖范围。本文将详细解析社区团购多级分销的流程,帮助你从入门到精通。 ### 一…

2748. 美丽下标对的数目(Rust暴力枚举)

题目 给你一个下标从 0 开始的整数数组 nums 。如果下标对 i、j 满足 0 ≤ i < j < nums.length &#xff0c;如果 nums[i] 的 第一个数字 和 nums[j] 的 最后一个数字 互质 &#xff0c;则认为 nums[i] 和 nums[j] 是一组 美丽下标对 。 返回 nums 中 美丽下标对 的总…

STM32单片机SPI通信详解

文章目录 1. SPI通信概述 2. 硬件电路 3. 移位示意图 4. SPI时序基本单元 5. SPI时序 6. Flash操作注意事项 7. SPI外设简介 8. SPI框图 9. SPI基本结构 10. 主模式全双工连续传输 11. 非连续传输 12. 软件/硬件波形对比 13. 代码示例 1. SPI通信概述 SPI&#x…

IOS逆向分析—终极详细(三)

IOS逆向分析—终极详细&#xff08;三&#xff09; 前言一、逆向分析是什么&#xff1f;二、IDA分析1.下载并安装IDA2.安装插件3.加载二进制4.代码分析5.其它 总结 前言 本文是个人完成对IOS上APP分析的整个过程&#xff0c;当然对于不同的机型还会遇到不同的情况&#xff0c;谨…

Jenkins+gitee流水线部署springboot项目

目录 前言 一、软件版本/仓库 二、准备工作 2.1 安装jdk 11 2.2 安装maven3.9.7 2.3 安装docker 2.4 docker部署jenkins容器 三、jenkins入门使用 3.1 新手入门 3.2 jenkins设置环境变量JDK、MAVEN、全局变量 3.2.1 jenkins页面 3.2.2 jenkins容器内部终端 3.2.3 全…

从零开始:使用ChatGPT快速创作引人入胜的博客内容

随着科技的飞速发展&#xff0c;人工智能逐渐渗透到我们生活的各个领域。无论是商业、教育还是娱乐&#xff0c;AI技术都在以惊人的速度改变着我们。特别是在内容创作领域&#xff0c;人工智能正发挥着越来越重要的作用。今天&#xff0c;我将和大家分享如何从零开始&#xff0…

Vue67-Vuex简介

因为vuex是插件&#xff0c;所以&#xff0c;使用的时候&#xff1a;vue.use(插件名) 一、Vuex的意义和使用场景 红色的箭头&#xff0c;都是读数据。 若是&#xff0c;B、C、D都想修改A组件中的x数据&#xff08;写&#xff09;&#xff1a;此时&#xff0c;A组件就是数据的接…

音频信号分析

目录 一&#xff0c;音频获取 二&#xff0c;信号的基本形态 三&#xff0c;衰减信号的频域信号 四&#xff0c;低频信号 五&#xff0c;高频信号 六&#xff0c;七个音节的频率 一&#xff0c;音频获取 我用电子琴&#xff08;音色模式是卧式钢琴&#xff09;&#xff…

【C++题解】1741 - 求出1~n中满足条件的数的个数和总和?

问题&#xff1a;1741 - 求出1~n中满足条件的数的个数和总和&#xff1f; 类型&#xff1a;简单循环 题目描述&#xff1a; 请求出 1∼n 之间所有满足 2 的倍数但不是 3 的倍数的数&#xff0c;有多少个&#xff0c;总和是多少&#xff1f; 输入&#xff1a; 读入一个整数 …

After Effects 2024 mac/win版:创意视效,梦想起航

After Effects 2024是一款引领视效革命的专业软件&#xff0c;汇聚了创意与技术的精华。作为Adobe推出的全新版本&#xff0c;它以其强大的视频处理和动画创作能力&#xff0c;成为从事设计和视频特技的机构&#xff0c;如电视台、动画制作公司、个人后期制作工作室以及多媒体工…

【Android】Android Studio版本手动升级到指定版本方法

前言 Android Studio本身存在自动升级的功能&#xff0c;但是这个功能使用的时候基本都是要升级到最新版本&#xff0c;但是有时候我们也不想升级到最新版本&#xff0c;是想升级到某一个版本&#xff0c;这个时候&#xff0c;Android Studio的自动升级版本的功能就无法使用了…

数据结构—排序、查找、图论和字符串算法之Java实例

一&#xff1a;引言 在编程的海洋中&#xff0c;算法是程序员的灵魂之光。它们不仅指引着代码的前进方向&#xff0c;更能解决难题&#xff0c;提升效率。虽然各式各样的算法琳琅满目&#xff0c;但其中有一些却是每位程序员必定会遇到且应当深刻掌握的。本文将带您走进这些至…

前端 html 复制文本到剪切板兼容性较好的方案

直接上代码&#xff1a; const url 要复制的内容; var aux document.createElement("input"); aux.setAttribute("value", url); document.body.appendChild(aux); aux.select(); document.execCommand("copy"); document.body.removeChi…

QT中利用动画弄一个侧边栏窗口,以及贴条效果

1、效果 2、关键代码 void Widget::on_sliderBtn_clicked() {m_sliderWidget->show();QPropertyAnimation* animation = new QPropertyAnimation(m

武汉工程大学24计算机考研数据,有学硕招收调剂,而专硕不招收调剂!

武汉工程大学是一所以工为主&#xff0c;覆盖工、理、管、经、文、法、艺术、医学、教育学等九大学科门类的多科性教学研究型大学&#xff0c;是湖北省重点建设高校、湖北省国内一流学科建设高校&#xff0c;入选卓越工程师教育培养计划、中西部高校基础能力建设工程、“新工科…

Solr9 如何使用 DIH 读取数据库索引数据

使用 Solr 9 中的数据导入处理程序&#xff08;DIH&#xff09; DIH&#xff08;Data Import Handler&#xff09;提供了一种可配置的方式向 Solr 中导入数据。 从 Solr 9 开始&#xff0c;数据导入处理程序&#xff08;DIH&#xff09;已经不再直接包含在 Solr 中&#xff0c…

Linux驱动开发笔记(九)IIC子系统及其驱动

文章目录 前言一、IIC驱动框架二、总线驱动2.1 iic总线的运行机制2.2 重要数据结构2.2.1 i2c_driver结构体2.2.2 i2c总线结构体 2.3 匹配规则 三、设备树的修改四、设备驱动的编写4.1 相关API函数4.1.1 i2c_add_adapter( )4.1.2 i2c_register_driver( )4.1.3 i2c_transfer( )4.…

Vue68-路由简介

一、路由的应用&#xff1a;&#xff08;单页面应用&#xff09; 单页面应用&#xff1a;页面不刷新&#xff0c;但是路径会改变。 二、路由的原理&#xff1a; 2-1、多页面应用&#xff1a; 2-2、路由的相关概念 2-3、前端路由、后端路由 前端路由&#xff1a;你是什么路径…

Spring Boot程序打包docker镜像

1.将springboot程序使用maven package打包出jar。 2.创建dockerfile。 FROM openjdk:8 VOLUME /tmp EXPOSE 8601 #ADD 后面的参数是项目名字 / 后面的参数是自定义的别名 ADD webflux-hello-0.0.1-SNAPSHOT.jar /webflux-hello.jar #这里的最后一个变量需要和前面起的别名相同…

Day15—热点搜索词统计

一、要求 根据用户上网的搜索记录对每天的热点搜索词进行统计&#xff0c;以了解用户所关心的热点话题。 要求完成&#xff1a;统计每天搜索数量前3名的搜索词&#xff08;同一天中同一用户多次搜索同一个搜索词视为1次&#xff09;。 二、数据 三、配置scala环境 1.下载sca…