论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline
论文代码开源链接:
A Software Platform for Manipulating the Camera Imaging Pipelinehttps://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校正,对于全局亮度的调整。

论文使用了一个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来评估某个成像阶段的算法性能

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

论文通过这个例子说明同通常噪声是通过图像传感器产生的,因此噪声从一开始的RAW原始图像中就开始出现。论文对比了图像在非线性处理前的降噪结果说明了非线性处理会改变噪声的分布情况,因此降噪最好在非线性处理前进行。
同理,论文也论证了Deblur(锐化)也应该在非线性处理前进行,在RAW域进行deblur的结果要比在sRGB域的结果好。
个人总结:论文提供了一个ISP Pipeline的全流程软件,可以方便的更改某一阶段的算法并查看该算法最终Pipeline输出的效果,但是由于使用的是Adobe的DNG SDK,整个ISP Pipeine的很多阶段被隐藏了,通常一些处理都是调用库或者使用DNG中携带的信息,还是不能更好的从数据流角度透明展示ISP pipeine的各个阶段,后续准备使用传统的ISP算法简单搭建一个类似的MATLAB仿真平台。
相关文章:

论文阅读:A Software Platform for Manipulating theCamera Imaging Pipeline
论文代码开源链接: A Software Platform for Manipulating the Camera Imaging Pipelinehttps://karaimer.github.io/camera-pipeline/摘要:论文提出了一个Pipline软件平台,可以方便地访问相机成像Pipline的每个阶段。该软件允许修改单个模块…...

【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…...

Ubuntu下安装Qt
1.如图1所示,在Index of /archive上下载安装包; 图1 2.将图1安装包下载好之后,通过共享文件夹的方式拷贝到ubutntu,如图2所示; 图2 3.如图3所示,执行chmod x qt-creator-opensource-linux-x86_64-10.0.2.…...

丹摩征文活动 | AI创新之路,DAMODEL助你一臂之力GPU
目录 前言—— DAMODEL(丹摩智算) 算力服务 直观的感受算力提供商的强大 平台功能介绍 镜像选择 云磁盘创建 总结 前言—— 只需轻点鼠标,开发者便可拥有属于自己的AI计算王国 - 从丰富的GPU实例选择,到高性能的云磁盘,再到预配置的深度学习…...
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别
数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log、binlog 作用、MySQL和Redis的区别 说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undo …...

Docker容器运行CentOS镜像,执行yum命令提示“Failed to set locale, defaulting to C.UTF-8”
最近对运维比较感兴趣,以前虽然对公司负责的项目做过运维工作,但用的都是最原始的方法,例如是在阿里云服务器上直接安装jdk,tomcat,redis ,nginx 。这种方式对不大的项目还能够支持,随着项目变大,服务增加&…...

OpenCV基本图像处理操作(六)——直方图与模版匹配
直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…...

【LLM学习笔记】第四篇:模型压缩方法——量化、剪枝、蒸馏、分解
文章目录 1. 为什么要进行模型压缩2. 模型量化2.1 常见数据类型2.2 浮点数表示2.3 线性量化2.4 非线性量化2.5 挑战2.6 实际应用 3. 模型剪枝4. 模型蒸馏4.1 模型蒸馏的基本流程4.2 模型蒸馏的优势4.3 实际应用 5. 低秩分解(低秩近似)5.1 基本概念5.2 实…...
python3 自动更新的缓存类
这个类会在后台自动更新缓存数据,你只需要调用方法来获取数据即可。 自动更新缓存类 以下是 AutoUpdatingCache 类的实现: import threading import timeclass AutoUpdatingCache:def __init__(self, update_function, expiry_time60):""&qu…...

英语知识网站开发:Spring Boot框架应用
3系统分析 3.1可行性分析 通过对本英语知识应用网站实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本英语知识应用网站采用SSM框架,JAVA作为开发语…...

文件上传upload-labs-docker通关
(图片加载不出,说明被和谐了) 项目一: sqlsec/ggctf-upload - Docker Image | Docker Hub 学习过程中,可以对照源码进行白盒分析. 补充:环境搭建在Linux虚拟机上的同时,以另一台Windows虚拟机进行测试最…...

git(Linux)
1.git 三板斧 基本准备工作: 把远端仓库拉拉取到本地了 .git --> 本地仓库 git在提交的时候,只会提交变化的部分 就可以在当前目录下新增代码了 test.c 并没有被仓库管理起来 怎么添加? 1.1 git add test.c 也不算完全添加到仓库里面&…...
Doris实战—构建日志存储与分析平台
构建日志存储与分析平台 日志是系统运行的详细记录,包含各种事件发生的主体、时间、位置、内容等关键信息。出于运维可观测、网络安全监控及业务分析等多重需求,企业通常需要将分散的日志采集起来,进行集中存储、查询和分析,以进一步从日志数据里挖掘出有价值的内容。 针…...
【vue3+Typescript】unapp+stompsj模式下替代plus-websocket的封装模块
由于plus-websocket实测存在消息丢失的问题,只能寻找替代的方案,看文章说使用原生的即可很好的工作。而目前在stompjs里需要使用websocket类型的封装模块,看了下原来提供的接口,采用uniapp原生的websocket模式,对原模块…...

Tcon技术和Tconless技术介绍
文章目录 TCON技术(传统时序控制器)定义:主要功能:优点:缺点: TCONless技术(无独立时序控制器)定义:工作原理:优点:缺点: TCON与TCONl…...
C#-利用反射自动绑定请求标志类和具体执行命令类
文章速览 概述例程请求类命名空间父类示例子类示例 命令类命名空间子类示例 记录的数据结构实现绑定方法 坚持记录实属不易,希望友善多金的码友能够随手点一个赞。 共同创建氛围更加良好的开发者社区! 谢谢~ 概述 需求: 将指定的两种类型的…...
高中数学练习:初探均值换元法
文章目录 1. 均值换元法定义2. 均值换元法优点3. 均值换元法应用4. 均值换元法示例4.1 求解分式方程4.2 求解指数方程4.3 计算最大值 5. 实战小结 1. 均值换元法定义 均值换元法是一种数学技巧,通过引入新变量 t t t将两个变量 x x x和 y y y表示为它们的平均值加上…...
数据结构单链表,顺序表,广义表,多重链表,堆栈的学习
单链表 比如一个多项式,主要包括x的系数,x的指数,那么可以创建一个一维数组来存储它的系数和指数,用数组下标来表示。它的系数可以用数组下标对应的数组元素来储存。 可是这样储存会浪费空间所以采用单链表形式来存储。 即创建一…...
【保姆级教程】使用lora微调LLM并在truthfulQA数据集评估(Part 2.在truthfulQA上评估LLM)
上一期我们成功用lora微调了一个模型传送门,怎样评估模型呢?目前LLM没有一个统一的BENCHMARK。我们今天选用truthfulQA。 truthfulQA数据集格式如下所示 {question: What is the smallest country in the world that is at least one square mile in ar…...
thinkphp中对请求封装
请求的封装 //调用 $res Http::post($this->baseUrl . $url,$params,[CURLOPT_HTTPHEADER > [Content-Type: application/json,Content-Length: . strlen($params),],]);<?php namespace fast; /*** 字符串类*/ class Http {/*** 发送一个POST请求*/public static …...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...