论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline

论文代码开源链接:

A Software Platform for Manipulating the Camera Imaging Pipelineicon-default.png?t=O83Ahttps://karaimer.github.io/camera-pipeline/摘要:论文提出了一个Pipline软件平台,可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块的参数,以及在中间图像经过不同阶段时访问和操作中间图像的能力。

概述:数码相机上有许多处理步骤,用于获得最终的RGB输出。这些处理步骤通常是按顺序执行的,并共同构成了相机成像Pipeline。这些处理步骤的例子包括Bayer Demosaic、白平衡、颜色空间映射、降噪、Tone-Mapping和CCM等。

一个传统ISP Pipeline成像过程如下图所示:

但是由于访问底层硬件的成像Pipeline较为困难,因为这些例程嵌入到相机的硬件中,可能涉及到个别相机制造商独有的专有图像操作。

因此对于ISP Pipeline当中某个模块的研究难以演示它将如何影响相机的最终输出。例如,许多针对白平衡和颜色不变性的工作都是直接在特定于相机的原始RAW图像上执行的,而图像最终的输出质量还与Pipeline的其他模块息息相关。另一个例子是去噪研究,由于缺乏通用的RAW原始图像成像Pipeline,通常研究去噪的论文都是在经过ISP处理后的sRGB图像上进行操作,但是经过了ISP非线性模块处理后的图像很多降噪假设已经难以成立。

因此,该论文提供了一个软件平台,允许访问ISP Pipeline 的每个成像阶段图像参数和数据,可以方便的抓取某个成像阶段的图像处理后再插入进去,该操作可以方便研究某个过程的图像处理对于整个ISP pipeline最终成像输出的影响。该软件平台基于DNG原始RAW格式,DNG保存了CMOS Sensor的原始成像二进制RAW数据,并附加了一些关于成像的其他信息和拍摄信息。

PS:我的HUAWEI Mate30手机拍摄的RAW图格式就是DNG格式

相关工作:论文例举了相关文献说明了在各种计算机视觉和图像处理任务中考虑整个ISP Pipeline成像过程的好处。力求优化最终成像输出。

软件平台架构

论文提供的ISP Pipeline成像处理如下图所示:

相应阶段的输出图像为:

各个成像阶段说明

Stage 1:Reading the raw image ( Params: None ),从DNG格式中获取原始二进制RAW数据
Stage 2:Black light subtraction and linearization (Params: Level values or 1D LUT),可以理解为BLC(黑电平),对于特定的某张RAW图像,其黑电平与拍摄时的ISO和增益有关,或者可以提供一个一维LUT来进行线性化。(但目前的ISP貌似是减去一个固定值即可)
Stage 3:Lens/Flat Field correction ( Params: 4 × Array N × M )。可以理解为LSC(镜头阴影校正),对于每个Bayer通道(总共RGGB四个通道)提供一个NxM的二维矩阵,结合双线性插值来对原始RAW图进行镜头阴影校正。
Stage 4:Demosaicing ( Params: func),将原始RAW图每个通道缺失的颜色分量通过插值还原出来,最终得到RGB图。
Stage 5:Noise reduction ( Params: func),降噪。
Stage 6:White-balancing and color space conversion (Params: Two 3 ×3 matrices),白平衡与颜色空间转换,注意这里指的颜色空间转换可以看作是CCM(颜色校正),指的并不是RGB到YUV的颜色空间转换。
Stage 7:Hue/Sat map application ( Params: 3D LUT),非线性变换,调整饱和度和色调,通常的ISP貌似没有这个步骤(CCM是乘以一个3x3矩阵,是对颜色的线性变换,而这个是3D LUT,可以实现对颜色的非线性变换)
Stage 8:Exposure compensation ( Params: EV value , 1D LUT),曝光补偿,是一种数字曝光调整,类似于DGain(数字增益),只是对像素值增加一个线性增益。
Stage 9:Color manipulation ( Params: 3D LUT),也是对于颜色的非线性调整。
Stage 10:Tone-curve application ( Params: 1D LUT),色调映射,对于亮度和对比度的调整。
Stage 11:Final color space conversion ( Params: 3 × 3 Matrix),类似于CCM线性颜色校正。
Stage 12:Gamma curve application ( Params: 1D LUT),Gamma校正,对于全局亮度的调整。
Exposure Compensation & Tone-mapping

Demosaicing

论文使用了一个Colorimetry Example例子来说明现有的计算机视觉和图像处理研究面临的一个挑战是能够在相机Pipeline中获得中间图像,以评估在各个阶段的有效性。

使用四种相机(LG-G4, Motorola Nexus 6, Samsung S6-Edge, and an HTC One M9)在不同光照条件下拍摄标准色卡并得到DNG格式的原始图像。

分别使用X-Rite software和论文【Bastani, P., Funt, B.: Simplifying irradiance independent color calibration. In: Color Imaging XIX: Displaying, Processing, Hardcopy, and Applications (2014)】中提到的方法来进行颜色空间映射(stage 6)

通过对比颜色转换后的24色与标准24色卡颜色的色差,Bastani and Funt提到的方法取得了良好的结果,余弦角度误差最小。

使用Full Pipeline来评估某个成像阶段的算法性能

White-balancing/color constancy

论文通过该例子说明,只评估不同AWB算法在RAW域的结果没有什么视觉意义,因为RAW图空间是非标准的显示结果。更为合理的比较应该是对相应图像进行ISP Pipeline全流程后得到标准的显示输出后再进行比较。通过这样才能看不同AWB算法的差异性。

Noise Reduction

论文通过这个例子说明同通常噪声是通过图像传感器产生的,因此噪声从一开始的RAW原始图像中就开始出现。论文对比了图像在非线性处理前的降噪结果说明了非线性处理会改变噪声的分布情况,因此降噪最好在非线性处理前进行。

Deblurring

同理,论文也论证了Deblur(锐化)也应该在非线性处理前进行,在RAW域进行deblur的结果要比在sRGB域的结果好。

个人总结:论文提供了一个ISP Pipeline的全流程软件,可以方便的更改某一阶段的算法并查看该算法最终Pipeline输出的效果,但是由于使用的是Adobe的DNG SDK,整个ISP Pipeine的很多阶段被隐藏了,通常一些处理都是调用库或者使用DNG中携带的信息,还是不能更好的从数据流角度透明展示ISP pipeine的各个阶段,后续准备使用传统的ISP算法简单搭建一个类似的MATLAB仿真平台。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT的应用场景:开启无限可能的大门

ChatGPT的应用场景:开启无限可能的大门 随着人工智能技术的快速发展,自然语言处理领域迎来了前所未有的突破。其中,ChatGPT作为一款基于Transformer架构的语言模型,凭借其强大的语言理解和生成能力,在多个行业和场景中展现出了广泛的应用潜力。以下是ChatGPT八个最具代表…

音视频-什么是帧,视频为什么要编码

帧就是动画中的一张图片,这相当于电影胶片上的一个镜头,一帧就是一幅静止的画面,连续的帧就形成了我们看到的动画和视频。 但是直接采集后没经过处理的视频,其实是没有办法真正在互联网上进行传输的。以一张1920乘1080的图片为例&…

“蜀道山”高校联合公益赛 Web (部分)

文章目录 奶龙牌WAF海关警察训练平台恶意代码检测器 奶龙牌WAF <?php if ($_SERVER[REQUEST_METHOD] POST && isset($_FILES[upload_file])) {$file $_FILES[upload_file];if ($file[error] UPLOAD_ERR_OK) {$name isset($_GET[name]) ? $_GET[name] : basen…

【JavaEE初阶 — 网络原理】初识网络原理

目录 1. 网络发展史 1.1 独立模式 1.2 网络互连 1.2.1 网络互联的背景 1.2.2 网络互联的定义 1.3 局域网LAN 1.4 广域网WAN 2. 网络通信基础 2.1 IP地址 2.2 端口号 2.3 认识协议 2.4 五元组 2.5 协议分层 2.5.1 分…

Linux的介绍及虚拟机centOS系统的下载与应用

1、什么是Linux Linux 是一种类 Unix 操作系统&#xff0c;它的内核&#xff08;Kernel&#xff09;由 Linus Torvalds 于 1991 年首次发布。作为一个开源、免费的操作系统&#xff0c;Linux 被广泛用于服务器、桌面计算机、嵌入式设备、移动设备等各种场景。 1、操作系统 操…

Leetcode打卡:交替组II

执行结果&#xff1a;通过 题目&#xff1a;3208 交替组II 给你一个整数数组 colors 和一个整数 k &#xff0c;colors表示一个由红色和蓝色瓷砖组成的环&#xff0c;第 i 块瓷砖的颜色为 colors[i] &#xff1a; colors[i] 0 表示第 i 块瓷砖的颜色是 红色 。colors[i] 1 …

【ONE·基础算法 || 动态规划(二)】

总言 主要内容&#xff1a;编程题举例&#xff0c;熟悉理解动态规划类题型&#xff08;子数组、子序列问题&#xff09;。                文章目录 总言5、子数组问题&#xff08;数组中连续的一段&#xff09;5.1、最大子数组和&#xff08;medium&#xff09;5.1.…

Qt程序发布及打包成exe安装包

参考:Qt之程序发布以及打包成exe安装包 目录 一、简述 Qt 项目开发完成之后,需要打包发布程序,而因为用户电脑上没有 Qt 配置环境,所以需要将 release 生成的 exe 文件和所依赖的 dll 文件复制到一个文件夹中,然后再用 Inno Setup 打包工具打包成一个 exe 安装包,就可以…

通过抓包,使用frida定位加密位置

首先我们抓取一下我们要测试的app的某一个目标api&#xff0c;通过抓api的包&#xff0c;得到关键字。 例如&#xff1a;关键字&#xff1a;x-sap-ri 我们得到想要的关键字后&#xff0c;通过拦截 类&#xff0c;寻找我们的关键字&#xff0c;及找到发包收包的位置&#xff0c…

MFC图形函数学习12——位图操作函数

位图即后缀为bmp的图形文件&#xff0c;MFC中有专门的函数处理这种格式的图形文件。这些函数只能处理作为MFC资源的bmp图&#xff0c;没有操作文件的功能&#xff0c;受限较多&#xff0c;一般常作为程序窗口界面图片、显示背景图片等用途。有关位图操作的步骤、相关函数等介绍…

钟睒睒的“傲慢与偏见”

文章内容根据网络内容整理形成 最近&#xff0c;钟睒睒关于绿瓶水不适合长期饮用的言论&#xff0c;在网上引起了一番新的热议&#xff0c;让刚平静不久的包装饮用水竞争&#xff0c;再次掀起一阵波澜&#xff0c;同时&#xff0c;其对于企业家直播带货的等系列看法&#xff0c…

比亚迪降价令背后的反思,创新还是压榨?

科技新知 原创作者丨依蔓 编辑丨蕨影 比亚迪要求供应商明年起降价10%&#xff1f; 近日&#xff0c;网传一封有关比亚迪乘用车要求供应商降价的邮件&#xff0c;署名为比亚迪集团执行副总裁、乘用车首席运营官何志奇。 邮件称&#xff0c;2025年市场竞争将更加激烈&#xff0…

自媒体图文视频自动生成软件|03| 页面和结构介绍

代码获取方式在文本末尾&#x1f51a; *代码获取方式在文本末尾&#x1f51a; *代码获取方式在文本末尾&#x1f51a; *代码获取方式在文本末尾&#x1f51a; 视频图片生成器 一个基于 Python 和 Web 的工具&#xff0c;用于生成带有文字和语音的视频以及图片。支持多种尺寸、…

(11)(2.2) BLHeli32 and BLHeli_S ESCs(二)

文章目录 前言 1 传递支持 前言 BLHeli 固件和配置应用程序的开发是为了允许配置 ESC 并提供额外功能。带有此固件的 ESC 允许配置定时、电机方向、LED、电机驱动频率等。在尝试使用 BLHeli 之前&#xff0c;请按照 DShot 设置说明进行操作(DShot setup instructions)。 1 传…

逻辑处理器核心指纹修改

navigator.hardwareConcurrency的属性,可以用来获取CPU的逻辑处理器核心数。 1、navigator.hardwareConcurrency接口定义&#xff1a; third_party\blink\renderer\core\frame\navigator_concurrent_hardware.idl // https://html.spec.whatwg.org/C/#navigator.hardwarecon…

Linux下的火墙管理及优化

从功能角度来讲 防火墙是位于内部网和外部网之间的屏障&#xff0c;它按照系统管理员预先定义好的规则来控制数据包的进 从功能实现角度来讲 火墙是系统内核上的一个模块netfilter(数据包过滤机制) 通过netfiler来管理kernel space中的策略 netfilter简介 Netfilter是Lin…

chrome允许http网站打开摄像头和麦克风

第一步 chrome://flags/#unsafely-treat-insecure-origin-as-secure 第二步 填入网址&#xff0c;点击启用 第三步 重启 Chrome&#xff1a;设置完成后&#xff0c;点击页面底部的 “Relaunch” 按钮&#xff0c;重新启动 Chrome 浏览器&#xff0c;使更改生效。

【Vue】Ego商城项目跟做

技术栈 Vue全家桶&#xff1a;Vue VueRouter Vuex Axios ElementUI 依赖安装 网络请求&#xff1a;npm install --save axios --no-fund Element&#xff1a;vue add element 后端相关依赖&#xff1a;npm install --save express cors mysql --no-fund token&#xff1a;np…

ALSA(4) --- CPU DAI实践

CPU_DAI实践 物理拓扑图 上图可知&#xff0c;从dma过来数据&#xff0c;会保存在DAI的一个FIFO队列中&#xff0c;数据是并行过来的各个通道数据&#xff0c;经过shift移位寄存器&#xff0c;再经过P2S并行转串行&#xff0c;再经过DAVC音量控制输出到GPIO端口 音频数据接口…

【开篇】.NET开源 ORM 框架 SqlSugar 系列

01. 前言 ☘️ 1.1 什么是ORM? 对象-关系映射&#xff08;Object-Relational Mapping&#xff0c;简称ORM&#xff09;&#xff0c;面向对象的开发方法是当今企业级应用开发环境中的主流开发方法&#xff0c;关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对…