论文阅读:Hyperparameter Optimization in Black-box Image Processing using Differentiable Proxies

Posted Matrix_11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文阅读:Hyperparameter Optimization in Black-box Image Processing using Differentiable Proxies相关的知识,希望对你有一定的参考价值。

Hyperparameter Optimization in Black-box Image Processing using Differentiable Proxies

ABSTRACT

在我们的日常生活中,我们会接触到各种各样的数码设备,不管是直接接触,比如手机,相机等;还是间接接触,比如城市里的监控摄像头等。这些数码设备都有一个复杂的成像系统,我们一般称为 ISP (image signal processing),ISP 可以硬化之后运行在硬件单元,也可以通过 “软算法” 实现,一般来说,ISP 里面会有很多的模块,每个模块都承担不同的功能,涉及不同的算法,然后算法又会涉及不同的参数,这些参数一般称为“超参数”,为了让 ISP 最终输出理想的效果,这些 “超参数” 需要反复的调试,这些 “超参数” 都是有经验的工程师反复尝试,反复试验得到的,所以我们看到各大手机厂商的摄影出来的效果都不太一样,这其中除了硬件本身的差异之外,ISP 系统的差异,可能也是很重要的一个原因。

人工调试 “超参” 是非常费时费力的,这篇文章提出了一种自动化调试 “超参” 的方案,可以针对不同的目标效果,寻找合适的 “超参数” ,文章中利用一个卷积神经网络,在 “超参数” 空间与目标效果之间建立一个可导的映射,这样可以实现端到端的训练,从而对 “超参” 进行优化。文章声称这种自动化调试的方法,可以同时调试很多个"超参",同时不需要对图像处理进行显式地建模,简单来说,就是一个“黑盒”调参,这种自动化调参可以适应很多不同的图像任务,同时将参数调整的处理时间从数月缩短到数天,甚至几个小时,文章在很多任务包括图像检测以及图像质量相关的任务都取得很好的效果,甚至在降噪任务上,将调试得到的“超参”用在传统的降噪算法上,也比之前的效果要好。

RELATED WORK

  • Camera Image Processing Pipelines, 成像系统中的 ISP,camera sensor 输出的原始 RAW 图会受到各种退化因素的影响,包括各种噪声,镜头导致的光学像差,Bayer 模式导致的分辨率下降,以及像素之间的串扰。从原始 RAW 图中,恢复出一个高质量的图像,需要经过复杂的处理流程,这些流程一般都是通过高度优化过的 ASICs 来实现。随着高帧率成像系统的出现,对 ISP 的实时性要求越来越高,一些特定的应用比如 4K 视频或者 slow motion 等,都会用到定制的 ISP。拍照模式一般有更加宽裕的处理时间,而视频模式就严苛地多。随着硬件的发展及深度学习的流行,很多 ISP 的模块都可以用 AI 模型来替换,这些模型通过特定的硬件可以实现快速的运行,但是比起直接硬化的 ISP 来说,这篇文章将数据驱动的方式与硬化有效地连接起来了,通过数据驱动的方式寻找合适的超参数,然后将获得的超参数作用于硬化的 ISP 流程中,这样既兼顾了效果,同时也能不降低运行的效率。
  • Image Quality Analysis,ISP 将 RAW 图处理成最终的高质量图像输出,但是图像质量评估是一个非常难以量化的过程,因为人眼对图像质量的评估是非常主观的,涉及到心理学,颜色感知等,无法定量评判。有些图像评价的指标比如噪声,锐度,对比度等可以对图像的某些维度进行评估,但是图像质量最终是人眼的一个整体的主观感受,所以目前,最为可靠的图像质量评估还是依赖于有经验的评测人员。
  • Automated Camera Design,目前成熟的自动化端到端成像系统设计还没有,一个完整成像系统严格来说包括了镜头,sensor 以及后端的 ISP,但是对于某些单独的模块来说,比如光学镜头,已经有了一些半自动化设计的方式,借助光学设计软件 ZEMAX,CODE-V 等,光学设计人员可以对镜头的面型进行优化。但是对 ISP 的自动优化却很困难,因为 ISP 流程很多模块是不可导的,所以无法用常规的梯度回传的方式进行优化,虽然有文章也尝试用 0 阶优化的方式对 ISP 的某些模块进行参数优化,但是能够优化的参数毕竟有限。而且是每个模块单独优化,无法端到端统一优化。
  • 0-th order Optimization:不可导的 “黑盒” 超参优化一直以来都是一个非常挑战的问题,如果搜索空间比较小,而且可以快速给出评价的话,那么一些暴力的搜索方式或许可以取得不错的效果,但是随着搜索空间的增加,算法的复杂度及代价都会成指数级增长。“黑盒”搜索的方式也发展了很多分支,包括随机搜索,Bayes 优化等。

THE IMAGING PIPELINE AND ITS PARAMETERS

Common Imaging Pipeline Stages

文章给出了常规的 ISP 处理流程,

  • Optics: 环境中的光线,通过镜头到达 sensor 上,再通过光电效应,以及模数转换,最终将环境中的光信号转换成数字信号,就是我们说的 RAW 图。
  • White Balance & Gain,在做完坏点校正,去除黑电平,以及暗角校正之后,就会做白平衡校正
  • Demosaicking: 这个流程就是将 Bayer 模数转换成 3 通道的 RGB 图像
  • Denoising: 这个流程就是降噪
  • Color & Tone Correction: 这个流程进行颜色的增强以及动态范围的调整
  • Colorspace Conversion & Compression: 最后就是色彩空间的转换以及编码压缩,输出

文章中主要针对 ISP 模块中的参数进行优化调整,不涉及到镜头的优化设计。

Imaging Pipeline Hyperparameters

不同厂商的 ISP 涉及的超参并不一样,文章中使用了 ARM Mali-C71 进行验证,这个 ISP 共有 32 个超参数,涉及到上面介绍的几个处理模块。具体的参数如下表所示:

DIFFERENTIABLE PROXY MODELS

这篇文章只考虑 ISP 中可以调试的参数,将 f I S P f_ISP fISP 表示整个 ISP 流程,假设整个 ISP 过程中相关的参数集合为 P \\mathcalP P,输入为 I I I, 输出为 O I S P O_ISP OISP,目标效果为 T T T,那么这篇文章是为了寻找最优的参数集合 P ∗ \\mathcalP^* P

P ∗ = arg min ⁡ P ∑ i = 1 N L T A S K ( f I S P ( I i ; P ) , T i ) ) \\mathcalP^* = \\argmin_\\mathcalP \\sum_i=1^N \\mathcalL_TASK \\left( f_ISP(I_i; \\mathcalP), T_i) \\right) P=Pargmini=1NLTASK(fISP(Ii;P),Ti))

f I S P f_ISP fISP 表示传统的 ISP 流程, P \\mathcalP P 是 传统 ISP 流程里的超参数,为了求得这些超参数,文章中用了两阶段的方法来进行求解:

  • 阶段一,训练一个可导的 Differentiable Proxy Function (DPF) 来拟合这个 ISP 流程
  • 阶段二,用这个训练过的 DPF 去优化 ISP 的超参

传统的 ISP 流程,很多模块可能不可导,为了能将这个过程变得可导,文章用一个卷积神经网络来建模这个 ISP 过程,同时,考虑到阶段二的超参优化,这个神经网络的输入包括了 RAW 图 I I I 与超参数 P \\mathcalP P,这个过程可以表示成如下所示:

O p r o x y = f p r o x y ( I , P ; W ) O_proxy = f_proxy (I, \\mathcalP; \\mathcalW) Oproxy=fproxy(I,P;W)

f p r o x y f_proxy fproxy 表示一个拟合能力很强同时可导的函数,比如卷积神经网络,那么可以通过优化 W \\mathcalW W,可以将 f p r o x y f_proxy fproxy 的输出与传统流程 f I S P f_ISP fISP 的输出类似:

O p r o x y ≈ O I S P O_proxy \\approx O_ISP OproxyOISP

W ∗ = arg min ⁡ W ∑ i = 1 M ∥ f p r o x y ( I i , P i ; W ) − f I S P ( I i ; P i ) ∥ 2 \\mathcalW^* = \\argmin_\\mathcalW \\sum_i=1^M \\left \\| f_proxy(I_i, P_i; \\mathcalW ) - f_ISP(I_i ; \\mathcalP_i) \\right \\|_2 W=Wargmini=1Mfproxy(Ii,Pi;W)fISP(Ii;Pi)2

求出 $ \\mathcalW^*$ 之后,接下来就是求超参,将 f p r o x y f_proxy fproxy 替换 f I S P f_ISP fISP 代入上面的式子,可以得到:

P ∗ = arg min ⁡ P ∑ i = 1 N L T A S K ( f p r o x y ( I i , P ; W ∗ ) , T i ) \\mathcalP^* = \\argmin_\\mathcalP \\sum_i=1^N \\mathcalL_TASK \\left( f_proxy(I_i, \\mathcalP; \\mathcalW^*), T_i \\right) P=Pargmini=1NLTASK(fproxy(Ii,P;W),Ti)

所以总结来说,就是先求 f p r o x y f_proxy fproxy 中的 W ∗ \\mathcalW^* W,然后固定 W ∗ \\mathcalW^* W,再去求解 f p r o x y f_proxy fproxy 中的 P ∗ \\mathcalP^* P,这样求得的 P ∗ \\mathcalP^* P,可以放入 ISP 流程中。

文章中 f p r o x y f_proxy f论文阅读:Hyperparameter Optimization in Black-box Image Processing using Differentiable Proxies

非常简单的 optim.SGD 训练循环无法按预期工作 - PyTorch

Hyperparameter tuning

graph embedding第一篇——deepwalk and line

Python使用模拟退火(Simulated Annealing)算法构建优化器获取机器学习模型最优超参数组合(hyperparameter)实战+代码

第三周 超参数调试Batch正则化和程序框架(Hyperparameter tuning)