论文阅读:Graphics2RAW: Mapping Computer Graphics Images to Sensor RAW Images

news2024/12/28 5:48:35

论文阅读:Graphics2RAW: Mapping Computer Graphics Images to Sensor RAW Images

这是一篇 ICCV 2023 的文章,主要介绍了一种数据仿真的方式。

Abstract

CG 渲染得到的图像与相机拍摄得到的图像越来越像了,这种摄影级的渲染逼近效果让越来越多的 CG 渲染图像参与到 high level 的计算机视觉任务的训练数据构建中,比如自动驾驶领域和图像分割领域,有很多的 CG 渲染图像构建的数据集。不过 CG 渲染图像,还无法像 high level 任务一样,可以很便捷地应用到 low level 的图像处理领域,尤其是对于处理对象会 sensor RAW 的图像。因为 sensor RAW 的图像的颜色空间是由 sensor 实际的光谱响应决定的,一般这些光谱响应也就决定了后端的白平衡的处理方式。而 CG 渲染的图像,一般是一个独立于设备的颜色空间,不需要考虑白平衡的问题。所以,为了能让 CG 渲染图像用于low level 视觉任务,需要构建一个映射关系,以消除 CG 图像与 RAW 图像之间的域差异。为了实现这个目标,这篇文章介绍了一种从CG 图像转换到 RAW 图像的框架。这个框架可以方便的实现一对多的映射,给定一张 CG 图像,可以快速地转换到多个不同的 sensor RAW 域或者不同环境光照下的图像。这个方法只要基于少量的记录目标 sensor 响应的 RAW-DNG 文件就可以实现映射参数的估计。文章将这个方法应用到不同的 low level 视觉任务中,包括 RAW 域降噪,光照估计以及夜晚场景下的神经渲染,都取得了不错的效果。

在这里插入图片描述
文章在上图中,展示了两张效果图,从 RAW 图中通过 Adobe Photoshop 处理得到的,这两张 RAW 图如图中的小图所示,一张是实拍的 RAW 图,一张是将 CG 渲染的图通过本文的方法仿真得到的,大家能看出两张的区别吗 ?

Introduction

这篇文章主要为了解决训练数据的构造问题,用 CG 渲染的图像来构造训练数据,应该不算是一个新的 idea,在 high level 的很多视觉任务,比如自动驾驶,语义分割中,已经有很多相关的工作尝试用 CG 渲染的图像来构造训练数据。不过在 low level 成像领域,这个问题要复杂地多,Camera 中的 ISP 通过将 sensor 捕获的 RAW 图像转换成 RGB 图像,虽然看起来和 CG 渲染一样,最终也是生成一张 sRGB 图像。不过 RAW 域的图像有其独特的性质,sensor RAW 代表了某款特定 sensor 对环境的光谱响应,不同的 sensor,其光谱响应可能不同。RAW 域图像显示了其特有的对环境光照的颜色倾向,在 ISP 中,一般会通过 AWB,也就是自动白平衡算法来纠正这种颜色偏向。在 low level 视觉任务里,很多时候需要的输入图像是 RAW 图,单独的 RAW 图或者 sRGB 图相对来说都比较好获取,难的是得到 RAW 和 sRGB 成对的数据。这篇文章就是想将 CG 渲染得到的 sRGB 图像,转换成特定 sensor 下的 RAW 图像,从而构建成对的数据。

在这里插入图片描述
上图展示了 ISP 处理的图像与 CG 渲染之间的差异,ISP 处理图像会与特定的 sensor 有关,不同的 sensor 获取的 sensor RAW 的颜色空间会有差异,所以ISP 中的颜色处理模块,一般是与 sensor 绑定的。而 CG 渲染一般会渲染得到一个独立于设备的 sRGB 颜色空间。

Graphics to RAW

接下来,重点介绍文章的方法部分,文章先介绍了成像的 pipeline,说明一个 sensor 是如何对环境光照进行记录的,sensor 的成像本质上是光电效应,也就是从光谱的能量积分的角度来建模,sensor 上一个像素积累的能量,是由环境光照的光谱分布,环境中物体的表面反射性质,以及 sensor 上的 CFA 的光谱响应曲线共同决定的,定向来看,可以写成如下的表达式:

I x c = ∫ λ ∈ L x , λ P x , λ F c , λ , c ∈ { R , G , B } (1) I_{x}^{c} = \int_{\lambda \in } L_{x, \lambda} P_{x, \lambda} F_{c, \lambda}, c \in \{ R, G, B \} \tag{1} Ixc=λLx,λPx,λFc,λ,c{R,G,B}(1)

从上面的表达式可以看出,不同的环境光照,不同物体表面的反射特性,都可能造成不同的能量积分,即使同样光照,同样的物体表面反射特性,不同 sensor 的 CFA 可能也不同,所以最后 sensor 上的像素值也会不同。camera 的 ISP 就是将 sensor 获取的 RAW 图,通过一系列的处理模块,将 sensor RAW 上的颜色空间通过白平衡算法校正,再通过后续的色调映射算法,将最终的 RAW 图变换到一个 sRGB 颜色空间,不过由于不同的 sensor 对应的 ISP 模块有差异,每个模块的参数也不同,所以最终映射到 sRGB 空间的图像看起来可能也会不同。

CG 渲染,本质上是模拟实际的光照过程,但是一般来说,渲染都不会包含颜色校正,白平衡校正等模块,而是直接渲染成 sRGB 空间的图像,所以从这点出发,理论上 CG 渲染的 sRGB 图像是可以通过建立某种映射关系,映射到不同 sensor 的 RAW 空间的。Graphics to RAW, 本质上是学习一个 sRGB 空间到 RAW 域颜色空间的映射关系。

未经处理过的 sensor RAW 记录的是环境的光照,为了适应人眼的感知特性(颜色常恒性),一般 ISP 流程里面,会用一个 AWB (自动白平衡)的算法进行补偿,AWB 算法一般包含两个步骤,i) 一是估计环境中的光谱 ii) 二是基于估计的光谱进行颜色校正。传统的 AWB 方法基于图像的统计信息,现在也有很大基于深度神经网络的方法。估计的环境光照信息存储在一个 ASN 的 DNG tag 里面,白平衡校正其实是用一个 3x3 的矩阵,对 sensor RAW 上的每个通道进行重映射,将 sensor RAW 上的颜色在某种光照下映射到一个参考光照下。经过白平衡的处理之后,sensor RAW 上的颜色可以认为消除了对环境光照的映射,不过白平衡这是校正了黑,白,灰几种色,让白的看起来是白的,灰的看起来是灰的,不过其它颜色需要进一步的调整,ISP 随后会再用一个 3x3 的 color space transform (CST) 颜色转换矩阵,做进一步的变换。CST 矩阵不是固定的,而是和光照相关的。特定的 CST 矩阵会通过估计的光照与插值来实现,ISP 里面会存储两个典型光照下的 CST,比如 D65 和 A 光,分别对应室外与室内的标准光照环境,其他光照下的 CST 通过插值实现,CST 将 sensor RAW 的色彩空间,映射到一个标准的颜色空间,比如 CIEXYZ。Camera 会在 CIEXYZ 空间,进行颜色调整,最后再转回 sRGB 空间,从 CIEXYZ 映射到 sRGB 也是用一个 3x3 的转换矩阵。CST 矩阵与 XYZ2sRGB 矩阵结合起来,被称为 CCM 矩阵。

为了将 CG 渲染的图像转换回 sensor RAW,文章中通过对某个特定 sensor 采集少量的 sensor RAW 图,用少量 sensor RAW 中的 ASN 统计信息,估计一个该 sensor 的光照分布,假设我们从 sensor RAW 中采集了 M 张 DNG 图,我们定义色度值 R / G , B / G R/G, B/G R/G,B/G,从这 M 张 sensor RAW 图中,统计这些色度值的分布,并用一个高斯函数去拟合该分布:

L ∼ N ( μ , Σ ) (2) L \sim \mathcal{N}(\mu, \Sigma) \tag{2} LN(μ,Σ)(2)

Σ = 1 M ∑ i = 1 M ( ( [ R G B G ] i − μ ) T ( [ R G B G ] i − μ ) ) (3) \Sigma = \frac{1}{M} \sum_{i=1}^{M} \left((\begin{bmatrix} \frac{R}{G} & \frac{B}{G} \end{bmatrix}_{i} - \mu)^T (\begin{bmatrix} \frac{R}{G} & \frac{B}{G} \end{bmatrix}_{i} - \mu) \right) \tag{3} Σ=M1i=1M(([GRGB]iμ)T([GRGB]iμ))(3)

μ \mu μ Σ \Sigma Σ 分别表示归一化色度值下的均值,方差,从这个高斯分布中采样,模拟某个光照,从光照值 L 中计算 correlated color temperature (CCT),基于估计的 CCT 值,以及事先标定好的 CST 矩阵: S D 65 , S A S^{D65}, S^{A} SD65,SA, 插值得到当前采样光照下的 CST 矩阵:

S L = α S A + ( 1 − α ) S D 65 , α ≥ 0 (4) S^{L} = \alpha S^{A} + (1-\alpha) S^{D65}, \alpha \ge 0 \tag{4} SL=αSA+(1α)SD65,α0(4)

α = C C T L − 1 − C C T D 65 − 1 C C T A − 1 − C C T D 65 − 1 (5) \alpha = \frac{CCT_{L}^{-1} - CCT_{D65}^{-1}}{CCT_{A}^{-1} - CCT_{D65}^{-1}} \tag{5} α=CCTA1CCTD651CCTL1CCTD651(5)

为了处理 CG 渲染图像,文章将 CG 渲染图像,通过一系列的逆变换,将 CG 图像从 sRGB 色彩空间,转换到 sensor RAW 的颜色空间。其它的模块,包括 tone mapping,Bayer 模式的生成,以及噪声的添加,都是参考相应的现有技术来实现的。比如噪声的模拟,就是利用一个泊松-高斯分布来模拟,Bayer 模式的生成,可以直接将 RGB 图像通过抽取相应的通道来实现。整体的算法框图如下所示:

在这里插入图片描述
上图展示了文章主要的流程,通过对目标 sensor 的 RAW 图进行少量的采样,然后进行统计,估计出一个光照分布,从光照分布中进行采样,计算出一个 CST 矩阵,然后将 sRGB 空间转换到 CIE XYZ,再从 CIEXYZ 转换到 sensor RGB 空间,通过逆 AWB 变换。

最后,文章给出了一系列的实验结果,包括仿真的实验和实拍的对比实验,这篇文章的创新性主要在于对色彩空间的还原,通过对特定 sensor RAW 进行采样,用一个高斯分布进行拟合,可以比较真实地模拟目标 sensor 的色彩空间。

在这里插入图片描述

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

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

相关文章

Unity Profiler 详细解析(一)

Overview: . Profiler简介 . Profiler各模块介绍 . 各平台下Profiler的使用 . 基于Profiler的优化定位 . Profiler的主要参数详解 . Profiler案例 Profiler简介 Profiler 是Unity中分析性能开销的工具 • 各种开销一览无遗 • 可跨平台使用(Web、PC、iOS、Android、…

Visual Studio 2022下载安装的详细步骤-----C语言编辑器

目录 一、介绍 (一)和其他软件的区别 (二)介绍编写C语言的编辑器类型 二、下载安装 三、创建与运行第一个C语言程序 (一)创建项目 (二)新建文件 (三&#xff09…

Bag of Tricks for Efficient Text Classification(FastText)

主要的有点就是快,用途就是用于文本分类,模型结构如上,主要是通过embedding将文本转换成向量,然后进行mean-pooling,然后输入到hidden隐向量中,通过softmax输出多分类,损失函数是对数似然损失函…

CDA level II 知识点 根据模拟题抱佛脚速记

第一章 市场调研的基本步骤:提出问题-->理论推演-->收集材料-->构建模型-->归因分析。 定性研究方法:1、文案调查法;2、深度访谈法;3焦点小组座谈法;4、投影技法。 一般离中趋势的指标有:标…

Transformers基本组件(二)快速入门Datasets、Evaluate、Trainer

Transformers基本组件(二)快速入门Datasets、Evaluate、Trainer 1、基础组件Datasets 数据集部分的工作,一部分在于数据集的收集,另一部分在于数据集的处理。Datasets库的出现,一定程度上也使得这两部分的工作变得简…

学习杂谈1

不知道写些什么就想着把这段时间网上看到的一些面试题写下来,供各个找工作的人参考 简述一下RabbitMQ的工作模式 simple模式(即最简单的收发模式) 消息产生消息,将消息放入队列消息的消费者(consumer)监听:消息队列&a…

YOLOV8改进:RefConv(即插即用重参数化重聚焦卷积替代常规卷积,无额外推理成本下涨点明显)

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 3.涨点效果:RefConv,实现有效涨点! 论文地址…

游戏设计模式专栏(十三):在Cocos游戏开发中运用责任链模式

点击上方亿元程序员关注和★星标 引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 责任链模式&#xff…

面试题:谈谈过滤器和拦截器的区别?

文章目录 一、拦截器和过滤器的区别二、拦截器和过滤器的代码实现1、拦截器2、过滤器 三、总结1、什么是Filter及其作用介绍2、Filter API介绍3、Filter链与Filter生命周期 四、拦截器五、过滤器和拦截器的区别 一、拦截器和过滤器的区别 1、拦截器(Interceptor)只对action请求…

全球国家行政区划边界(中国科学院地理科学与资源研究所)

简介: 行政区划边界是指各个行政区域之间划定的界限,以确保行政管理的有序和合法。通常,这些边界是根据政治、行政、文化等因素来划分的,如国家、省份、市级行政单元、县区等。这些行政区划边界的划分和调整需要经过政府的制定和…

proteus中仿真arduino的水位测试传感器

一、原理介绍 我们这里使用的水位传感器,只能说是一个小实验用途的水位传感器。我们首先上图 如上图所示,线没有连接,传感器由许5对裸露在外的铜线片作为传感部分,当浸入水中时这些铜线片会被水桥接。 这些被水连接起来的铜线&a…

CUDA学习笔记(二)CUDA简介

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/,仅用于学习。 CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样。只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序&#xf…

2024王道考研计算机组成原理——指令系统

零、本章概要 指令寻址:解决的是PC"1"的问题 数据寻址:使用寄存器/内存/结合 基址寻址:用于多道程序的并发执行 直接寻址:call 0x12345678 变址寻址:esi edi用于循环,因为使用直接寻址需要一堆…

TX Text Control ActiveX 32.0 For VB6 Crack

ActiveX Visual Basic 6 应用程序的文档处理,TX Text Control适用于 Visual Basic 6 和基于 COM 的语言的综合文字处理和报告 视窗用户界面,功能齐全的文档编辑器 TX Text Control 是一款完全可编程的丰富编辑控件,它在专为 Visual Studio 设…

自然语言处理---Transformer机制详解之BERT模型介绍

1 BERT简介 BERT是2018年10月由Google AI研究院提出的一种预训练模型. BERT的全称是Bidirectional Encoder Representation from Transformers.BERT在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:全部两个衡量指标上全面超越人类,并且在11种不…

计算机视觉实战项目3(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人机检测+A*路径规划+单目测距与测速+行人车辆计数等)

车辆跟踪及测距 该项目一个基于深度学习和目标跟踪算法的项目,主要用于实现视频中的目标检测和跟踪。该项目使用了 YOLOv5目标检测算法和 DeepSORT 目标跟踪算法,以及一些辅助工具和库,可以帮助用户快速地在本地或者云端上实现视频目标检测和…

最新AI智能写作创作系统源码V2.6.4/AI绘画系统/支持GPT联网提问/支持Prompt应用

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统AI绘画系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署…

[深入浅出AutoSAR] SWC 设计与应用

依AutoSAR及经验辛苦整理,原创保护,禁止转载。 专栏 《深入浅出AutoSAR》 全文 3100 字, 包含 1. SWC 概念 2. 数据类型(Datatype) 3. 端口(Port) 4. 端口接口(Portinterface&…

【终极版】刷完这100行Python,从新人变成大佬

文章目录 基础入门菜鸟提升基础晋级高手之路内置包库奇技淫巧 基础入门 1 python 即在命令行输入python,进入Python的开发环境。 2 x 12*3-4/56**2 加减乘除四则混合运算,可当作计算器使用,其中**表示乘方。 3 print(x) 输出x的值&#x…

2023年中国跨境电商进出口数据及分布占比分析

中商情报网讯:据海关数据,2022年中国跨境电商进出口(含B2B)2.11万亿元,同比增长9.8%,跨境电商进出口规模首次突破2万亿元关口。其中,出口1.55万亿元,进口0.56万亿元。 2023上半年&a…