原文链接:AdaptiveISP: Learning an Adaptive Image Signal Processor for Object Detection
本文收录于2024NIPS,是上海AI Lab、北京大学、香港中文大学 (薛天帆等人)联合发布的新型ISP研究。
[写在前面]
感觉本文是特别“实验科学”的一篇论文,有很多论点都是基于实验现象/结果提出来的
- 只需要ISP的前两个阶段就能在目标检测任务上提点86%,考虑到时间消耗和实时性需求,没必要都跑完
- 颜色处理对于【为人类视觉设计的ISP/为目标检测设计的ISP】都很重要,但是两类ISP的颜色处理模块不太一致,后者倾向于对低光场景下的图像完全去饱和度,这个操作不同于传统ISP。
- 简单的锐化或者模糊 (原文中是blur,但我怀疑是去模糊)模块可以很大的提升检测准确性,但是传统ISP中广泛应用的去噪模块对于目标检测而言帮助不是很大。
- 以提高目标检测性能为目的,不同场景/类型的RAW图偏好不同的ISP管道顺序。
- 以提高目标检测性能为目的,高ISO/噪声的图像适合用去饱和度模块作为第一个模块处理,低ISO/噪声的图像适合用CCM作为第一个模块处理。
Abstract
图像信号处理器 (ISP, Image Signal Processor)的功能是把raw感知信号转换为数码图像,该芯片显著影响了图像质量和下游计算机视觉任务的表现。设计ISP管道和调优ISP参数是构建成像和视觉系统的两个关键步骤。为了找到最优的ISP参数配置,最近的工作使用深度神经网络作为ISP代理以搜索ISP参数或ISP管道。然而,这些方法的设计目的是最大化图像质量,而不是提高生成图像在high-level计算机视觉任务 (例如:检测、识别、跟踪) 中的表现。除此以外,在推理阶段,学到的ISP管道大多数就被固定了,这会导致该类ISP在动态场景下的效果变差。
为了联合优化ISP架构和参数,我们提出了AdaptiveISP,一个任务驱动和场景自适应的ISP。我们观察到的一个关键现象是对于大部分的输入图像,只有一小部分处理模块对于提升下游识别任务的性能是有益的,并且只有一小部分图像需要更多的处理 (才能达到还不错的效果)。基于此,AdaptiveISP使用强化学习自动地生成最优的ISP管道和对应的ISP参数以最大化检测性能。实验结果显示AdaptiveISP不仅超越了先前sota算法在目标检测任务上的性能,而且还在保证检测效果的前提下尽可能减少了计算开销。AdaptiveISP特别适合于具有大的动态范围变化的场景。
Methods
这个论文的方法还是比较简单的,三言两语就可以阐述清楚。
1.本文将ISP处理过程建模成了马尔可夫过程,即,智能体接收上一个模块的输出图像并给出下一步处理应该采用哪个模块以及对应模块的ISP参数,采用的是Actor-Critic架构。
2.经典的ISP管道包括两个RAW域处理和RGB域处理两个部分。考虑到RGB域的图像处理是图像依赖并且需要更多精细设计和调优工作的,本文是在RGB域上做的模块选择和参数预测。
3.奖励函数的设计是 r = D ( s i ) − D ( s i + 1 ) − P i r=\mathcal{D}(s_i)-\mathcal{D}(s_{i+1})-P_i r=D(si)−D(si+1)−Pi,其中 D \mathcal{D} D是目标检测误差, P i P_i Pi是惩罚函数。
惩罚项设计之"利用和探索两难问题(强化学习的经典难题)"
惩罚函数1:
ISP管道中不同模块对目标检测任务的效果是不一样的,为了防止智能体总是选择其中一个模块,作者设计了模块重用惩罚。首先,作者把智能体的输入由RGB图像改成了RGB图像+重用向量V(用N个通道和一个额外的"Stage"通道表示,其中N是ISP模块数量)。在每个阶段,如果一个ISP模块 m i m_i mi被采用了,对应的通道 V i V_i Vi和重用惩罚会被置1,否则会被置0。此外,"Stage"通道会被置为当前阶段的index,即ISP当前一共经过了几个模块的处理。
惩罚函数2:
除了上述惩罚,本文希望鼓励智能体探索不同的模块以防止智能体对ISP参数预测的不充分学习【如果一直选同一个模块,那智能体只能学习到该模块的参数预测范式】。作者引入惩罚项 P e = λ e ∑ m ∈ M p ( m ) l o g p ( m ) P_e=\lambda_e\sum_{m\in M}p(m)logp(m) Pe=λe∑m∈Mp(m)logp(m)。
惩罚项设计之"开销时间惩罚"
惩罚函数3:
P c = λ c ∑ m ∈ M I m M c P_c=\lambda_c\sum_{m\in M}\mathbb{I}_m\mathbb{M}_c Pc=λc∑m∈MImMc,其中, I m \mathbb{I}_m Im是one-hot向量,表示在当前阶段第m个图像处理模块正在被调用; M c \mathbb{M}_c Mc是各模块的开销时长向量。
Experiments
E.A 数据集
- LOD:真实世界低光目标检测数据集,包含2230张14bitRAW图,8个类别的目标。分割1830对数据用于训练,400对数据用于验证。提供了ISO,快门速度,光圈设置等相关信息;
- OnePlus:用OnePlus 6T A6010手机采集的真实世界低光目标检测数据集,主要采集于驾驶场景。50对数据用于训练,91对数据用于验证;
- RAW COCO:把COCO转成RAW,做RAW-RGBpair。
E.B Results
1.跨数据集测试:
在LOD数据集上训练,保存权重,再于三个数据集上都测试,以验证其在不同数据集上的泛化性。【没有明说其他的方法是否采用了相同的模式还是在各个数据集上分别训练-测试】
2.跨检测器测试:
在LOD数据集上训练,保存权重,再于三类检测器上都测试,以验证没有在某一类检测器上过拟合。
3.图像分割实验
在LOD数据集训练,检测器使用的是YOLOv3,在人工raw COCO数据集测试,分割器使用的是YOLOv5分割器。展现了本模型在不同下游任务和不同算法上的泛化性。
4.准确性-效率平衡实验
通过控制 λ c \lambda_c λc,去管制是否把时间开销纳入到优化过程中。
可以看到,当 λ c \lambda_c λc= 0时,考虑的是准确性;当 λ c \lambda_c λc=0.1的时候,考虑耗时更多。除此以外,随着 λ c \lambda_c λc的增加,曝光/白平衡等耗时少的模块在整个验证过程中出现的次数也增加了;锐化/模糊模块和色调映射模块出现的次数减少了。
E.C 消融实验
1.自适应ISP
为了证明不同的数据需要不同的ISP管道,在LOD数据集验证过程中抽离了三个最有代表性的ISP管道和与之对应的三组RAW图输入。执行了如图6的交叉验证实验。可以看到,只有最匹配的ISP管道才能达到最好的结果,否则,就会导致不同程度的表现退化。
2.不同图像的模块偏好
LOD数据集带有元数据 (ISO,快门速度,光圈设置等信息),有利于本文进行分析。
据图6,在三个管道的第一阶段,出现了两种选择。通过元数据分析得知:高ISO(ISO6400, ISO3200)/高噪声的数据倾向于使用去饱和度操作,因为去饱和度可以减少彩噪和饱和度;低ISO(ISO800, ISO1600)/低饱和度的数据倾向使用CCM处理,因为CCM可以去除色偏并增强色彩饱和度。
据图6,在三个ISP管道的第三阶段,出现了三种选择。据作者观察,第二个阶段产生的图像产生了明显的色偏,尤其是在整体亮度相对高的情况下。在这些场景中,最合适的动作应该是选择白平衡模块。与之不同的是,当处理具有高动态范围的图像时 (例如:具有电子光/直射阳光的图像),最好的选择明显是使用色调映射。
总结一下,从实验中可以得出如下几个分析:a. 颜色校正模块显著提高了检测性能(不同于IQA任务的颜色校正)。然而,不同亮度和噪声水平的图像的最佳选择有所不同;b. 锐化/模糊模块在ISP管道中具有一个重要的位置,通过增强/模糊图像,以与检测网络对齐;c. 色调映射也起着至关重要的作用,通过调整整体颜色和亮度来提高检测精度;d. 与之前的研究结论相反,去噪并不认为至关重要。这一发现有助于为ISP节省大量的计算成本。这些分析和结论为未来针对特定下游任务的ISP设计提供了有价值的见解。
3.自适应Trade-off
如图7所示,本文的方法只需要3个阶段就可以在LOD数据集上达到最佳性能,并在效率和准确性之间达到良好的权衡。此外,这种权衡发生在推理时间,不需要任何再训练,并支持权衡策略的动态更新(还没搞懂这个动态更新指的是什么)。
【思考1】怎么考虑惩罚函数2< P e = λ e ∑ m ∈ M p ( m ) l o g p ( m ) P_e=\lambda_e\sum_{m\in M}p(m)logp(m) Pe=λe∑m∈Mp(m)logp(m)>呢?
我们知道 H ( X ) = − ∑ p ( x ) l o g p ( x ) ≈ − P e H(X)=-\sum p(x)logp(x)\approx-P_e H(X)=−∑p(x)logp(x)≈−Pe,表征X事件的信息熵。当X的概率分布越均匀,H(X)越大, P e P_e Pe越小;X的概率分布越集中,H(X)越小, P e P_e Pe越大。我们鼓励 P e P_e Pe变小,就是在鼓励H(X)变大,就是在鼓励X的概率分布变得均匀,也就是希望鼓励智能体多尝试探索不同的模块
【思考2】感觉该工作的思路和另外两个工作有相似之处,现将另外两个工作列出,供大家参考。
DRL-ISP,2022,训练智能体从ISP Tools里面选择一个模块作为下一阶段的处理模块;
RL-SeqISP, 2024AAAI,训练智能体预测ISP的参数;
【思考3】实验做得真多真详细啊,可以从本文的实验中学到不少只有亲自做实验才能推知的内容,还得是正规军啊。