论文解读:Cycle ISP Real Image Restoration via Improved Data Synthesis

本文主要是介绍论文解读:Cycle ISP Real Image Restoration via Improved Data Synthesis,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Cycle ISP: Real Image Restoration via Improved Data Synthesis

谷歌去年发表了一篇文章:Unprocessing Images for Learned Raw Denoising,是关于如何构造逼近真实的数据来进行降噪的,在去年的文章里,研究者们主要是模拟了 ISP 中从 RAW 图到 sRGB 的过程,然后将 ISP 的过程逆转过来,从 sRGB 到 RAW,然后再在 RAW 域上添加噪声,从而构造出符合真实场景的噪声数据。

今年谷歌又发表了一篇类似的文章,还是关于如何构造真实的仿真数据来做图像恢复,看来谷歌在构造数据这块已经做了很多的研究了,今年这篇文章叫 Cycle ISP, 核心思想还是基于 ISP 流程,去年的文章是一步一步通过各种算法模块,将 ISP 中的降噪,白平衡,gamma 变换,tone mapping 等串起来,今年的这篇文章直接用网络进行了端到端的模拟,不过与一般的端到端方式不同的是,这篇文章采样了一个循环的方式,从 sRGB 到 RAW 图,然后再从 RAW 图回到 sRGB, 所以这个框架称为 Cycle ISP, 有循环轮回的感觉。

具体的框架示意图如下所示:

在这里插入图片描述

从上图可以看出,整个框架有三个部分,一部分是 RGB2RAW, 实现的是从 RGB 到 RAW 图的变换,另外一部分是 RAW2RGB,实现的是从 RAW 域到 RGB 的转换,还有部分是 color correction,实现颜色的变换。整个算法框架的目的,也是为了将网络训练成能够构造更加真实的数据,一旦网络训练完成,那么 RGB2RAW 的这部分网络,就可以通过大量的 RGB 图得到真实 RAW 图,注意,这个时候的 RAW 图其实是没有噪声的,类似完美的无噪声 RAW 图,然后对这些 RAW 图添加噪声,就能得到噪声 RAW 图与无噪声 RAW 图的训练对,从而可以用来训练降噪网络。

这个方法与去年的方法相比,好处在于不再需要人为地构造变换函数了,直接端到端的完成。

RGB2RAW branch

这个模块,完成 RGB2RAW 的变换,给定一张 RGB 图像, I r g b ∈ R H × W × 3 \mathbf{I}_{rgb} \in R^{H \times W \times 3} IrgbRH×W×3,先借助常规的卷积网络,得到多个 feature map,然后再利用多个 recursive residual groups (RRGs) 进一步进行特征提取,整个过程可以表示为:

T 0 = M 0 ( I r g b ) T d = R R G N ( . . . R R G 1 ( T 0 ) ) T_0 = M_0({\mathbf{I}_{rgb}}) \\ T_d = RRG_N(...RRG_1(T_0)) T0=M0(Irgb)Td=RRGN(...RRG1(T0))

后面再接一个卷积层,得到 3 个通道的 feature map,最后再做一个 Bayer 模式的采样,得到输出的 RAW 图:

I ^ r a w = f b a y e r ( M 1 ( T d ) ) \hat{\mathbf{I}}_{raw} = f_{bayer}(M_1({T_d})) I^raw=fbayer(M1(Td))

这个模块,主要是利用 L 1 L_1 L1 loss 来进行训练:

L s 2 r ( I ^ r a w , I r a w ) = ∥ I ^ r a w − I r a w ∥ 1 + ∥ log ⁡ ( max ⁡ ( I ^ r a w , ϵ ) ) − log ⁡ ( max ⁡ ( I r a w , ϵ ) ) ∥ 1 \mathcal{L}_{s2r}( \hat{\mathbf{I}}_{raw}, \mathbf{I}_{raw} ) = \left\| \hat{\mathbf{I}}_{raw} - \mathbf{I}_{raw} \right\|_{1} + \left\| \log(\max(\hat{\mathbf{I}}_{raw}, \epsilon )) - \log(\max(\mathbf{I}_{raw}, \epsilon )) \right\|_{1} Ls2r(I^raw,Iraw)=I^rawIraw1+log(max(I^raw,ϵ))log(max(Iraw,ϵ))1

$ \mathbf{I}_{raw} $ 表示 RAW 图的 ground truth。

RAW2RGB branch

RAW2RGB 分支,实现 RAW 图到 RAG 的转换,这个分支,首先将 RAW 图拆成 RGGB 四个通道,每个通道的分辨率都下降了一倍,从 $ H \times W $ 变成了 H 2 × W 2 × 4 \frac{H}{2} \times \frac{W}{2} \times 4 2H×2W×4,然后类似 RGB2RAW, 先用一个卷积层将 4 个通道变成多个 feature map,然后再经过多个 RRG 模块,得到多个等大的 feature map,整个过程如下所示:

T d ′ = R R G K − 1 ( . . . R R G 1 ( M 2 ( P a c k ( I r a w ) ) ) ) T_{d'} = RRG_{K-1}(...RRG_1(M_2(Pack(\mathbf{I}_{raw})))) Td=RRGK1(...RRG1(M2(Pack(Iraw))))

不过这里需要注意的一点是,这里的 $ \mathbf{I}_{raw} $ 是相机原始的 RAW 图,不是 RGB2RAW 的输出,因为这两个 branch 是分开独立训练的。

  • Color correction unit

除了上面两个主要的分支,Cycle ISP 还引入了一个颜色校正模块,因为网络是基于很多不同的相机数据来训练的,而不同相机的颜色校正系数一般是不同的,所以为了统一这些数据,Cycle ISP 引入了一个颜色校正模块,这个模块是嵌入在 RAW2RGB 分支里的,color correction unit 的输入是 RGB 图像,然后经过简单的卷积以及两个 RRG,得到多个 feature map:

T c o l o r = σ ( M 4 ( R R G 2 ( R R G 1 ( M 3 ( K ∗ I r g b ) ) ) ) ) T_{color} = \sigma(M_{4}(RRG_2(RRG_1(M_3(K * \mathbf{I}_{rgb}))))) Tcolor=σ(M4(RRG2(RRG1(M3(KIrgb)))))

这里 ∗ * 表示卷积, K K K 表示高斯核,文章里用的高斯核的标准差是 12,这会带来非常强的模糊效果,从而将细节都基本去除了,只留下颜色, T c o l o r T_{color} Tcolor 和前面得到的 T d ′ T_{d'} Td 做一个 residual 的操作:

T a t t e n = T d ′ + ( T d ′ ⊗ T c o l o r ) T_{atten} = T_{d'} + (T_{d'} \otimes T_{color} ) Tatten=Td+(TdTcolor)

其中 ⊗ \otimes 表示 Hadamard product。

最后再利用一个卷积层,以及一个上采用操作,得到三个通道的 RGB 图像:

I ^ r g b = M u p ( M 5 ( R R G K ( T a t t e n ) ) ) \hat{\mathbf{I}}_{rgb} = M_{up}(M_5(RRG_K(T_{atten}))) I^rgb=Mup(M5(RRGK(Tatten)))

这个分支也是利用 L 1 L_1 L1 loss 来训练:

L r 2 s ( I ^ r g b , I r g b ) = ∥ I ^ r g b − I r g b ∥ 1 \mathcal{L}_{r2s}(\hat{\mathbf{I}}_{rgb}, \mathbf{I}_{rgb}) = \left\| \hat{\mathbf{I}}_{rgb} - \mathbf{I}_{rgb} \right\|_{1} Lr2s(I^rgb,Irgb)=I^rgbIrgb1

RRG: Recursive Residual Group

Cycle ISP 除了常规的卷积层, 一个特别之处在于其使用了很多的 RRG 模块,每个 RRG 模块包含了 P 个 dual attention blocks (DAB) 模块,DAB 模块,通过不同的 attention 机制对特征进行选择:channel attention 和 spatial attention,整个过程可以表示为:

T D A B = T i n + M c ( [ C A ( U ) , S A ( U ) ] ) T_{DAB} = T_{in} + M_c([CA(U), SA(U)]) TDAB=Tin+Mc([CA(U),SA(U)])

其中, U ∈ R H × W × C U \in R^{H \times W \times C } URH×W×C, M c M_c Mc 表示 $ 1 \times 1$ 的卷积,具体的框架示意图如下所示:

在这里插入图片描述

Joint Fine-tuning of CycleISP

最后,就是联合训练整个的 Cycle ISP, 这个时候,RGB2RAW 分支的输出,变成了 RAW2RGB 的输入,整个 loss 函数表示为:

L j o i n t = β L s 2 r ( I ^ r a w , I r a w ) + ( 1 − β ) L r 2 s ( I ^ r g b , I r g b ) \mathcal{L}_{joint} = \beta \mathcal{L}_{s2r}( \hat{\mathbf{I}}_{raw}, \mathbf{I}_{raw} ) + (1 - \beta) \mathcal{L}_{r2s}(\hat{\mathbf{I}}_{rgb}, \mathbf{I}_{rgb}) Ljoint=βLs2r(I^raw,Iraw)+(1β)Lr2s(I^rgb,Irgb)

整个 fine tune 的示意图如下所示:

在这里插入图片描述

Synthetic Realistic Noise Data Generation

一旦 CycleISP 训练好,那么 CycleISP 可以很方便地构造训练数据对,并且可以同时构造 RAW 域数据或者 RGB 数据,输入一张 RGB 图,由 RGB2RAW 分支,可以得到一张 RAW 图,然后对该 RAW 图添加噪声,这样可以得到 R A W c l e a n , R A W n o i s y {RAW_{clean}, RAW_{noisy}} RAWclean,RAWnoisy 训练数据对。

同样的,根据添加噪声的 RAW 图,由 RAW2RGB 分支,可以得到添加了噪声的 RGB 图,这样就构造了 s R G B c l e a n , s R G B n o i s y sRGB_{clean}, sRGB_{noisy} sRGBclean,sRGBnoisy 的训练数据对。

这篇关于论文解读:Cycle ISP Real Image Restoration via Improved Data Synthesis的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/457392

相关文章

BD错误集锦3——ERROR: Can't get master address from ZooKeeper; znode data == null

hbase集群没启动,傻子!   启动集群 [s233 s234 s235]启动zk集群 $>zkServer.sh start $>zkServer.sh status   [s233] 启动dfs系统 $>start-dfs.sh 如果s237 namenode启动失败,则 [s237] $>hadoop-daemon.sh start namenode [s233]启动yarn集群

1_Image和Matrix的使用

参考博文: https://www.cnblogs.com/bomo/archive/2013/03/28/2986573.html

【QML】用 Image(QQuickPaintedItem) 显示图片

大体功能: 频繁地往界面推送图片,帧率达到视频效果。捕获画布上的鼠标事件和键盘事件。 代码如下: // DrawImageInQQuickPaintedItem.pro 代码如下:QT += quick# You can make your code fail to compile if it uses deprecated APIs.# In order to do so, uncom

康奈尔大学之论文审稿模型Reviewer2及我司七月对其的实现(含PeerRead)

前言 自从我司于23年7月开始涉足论文审稿领域之后「截止到24年6月份,我司的七月论文审稿GPT已经迭代到了第五版,详见此文的8.1 七月论文审稿GPT(从第1版到第5版)」,在业界的影响力越来越大,所以身边朋友如发现业界有相似的工作,一般都会第一时间发给我,比如本部分要介绍的康奈尔大学的reviewer2 当然,我自己也会各种看类似工作的论文,毕竟同行之间的工作一定会互相借鉴的,我们会学他们

自动驾驶规划中使用 OSQP 进行二次规划 代码原理详细解读

目录 1 问题描述 什么是稀疏矩阵 CSC 形式 QP Path Planning 问题 1. Cost function 1.1 The first term: 1.2 The second term: 1.3 The thrid term: 1.4 The forth term: 对 Qx''' 矩阵公式的验证 整体 Q 矩阵(就是 P 矩阵,二次项的权重矩阵)

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解

游戏高度可配置化(一)通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解 码客 卢益贵 ygluu 关键词:游戏策划 可配置化 模块化配置 数据引擎 条件系统 红点系统 一、前言 在插件式模块化软件开发当中,既要模块高度独立(解耦)又要共享模块数据,最好的方法是有个中间平台(中间件)提供标准的接口来进行数据的交换,这在很多行业软件开发中已经广泛应用。但是,由于中间件的抽象和封

【论文精读】分类扩散模型:重振密度比估计(Revitalizing Density Ratio Estimation)

文章目录 一、文章概览(一)问题的提出(二)文章工作 二、理论背景(一)密度比估计DRE(二)去噪扩散模型 三、方法(一)推导分类和去噪之间的关系(二)组合训练方法(三)一步精确的似然计算 四、实验(一)使用两种损失对于实现最佳分类器的重要性(二)去噪结果、图像质量和负对数似然 论文:Classification Diffusion Models: Revitalizing

【python】python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 python葡萄酒国家分布情况数据分析pyecharts可视化(源码+数据集+论文)【独一无二】 目录 python葡

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

【LLM之KG】CoK论文阅读笔记

研究背景 大规模语言模型(LLMs)在许多自然语言处理(NLP)任务中取得了显著进展,特别是在零样本/少样本学习(In-Context Learning, ICL)方面。ICL不需要更新模型参数,只需利用几个标注示例就可以生成预测。然而,现有的ICL和链式思维(Chain-of-Thought, CoT)方法在复杂推理任务上仍存在生成的推理链常常伴随错误的问题,导致不真实和不可靠的推理结果。