ISP流程--去马赛克详解

前言

      本期我们将深入讨论ISP流程中的去马赛克处理。我们熟知,彩色图像由一个个像元组成,每个像元又由红、绿、蓝(RGB)三通道构成。而相机传感器只能感知光的强度,无法直接感知光谱信息,即只有亮暗而没有颜色。因此,相机厂商通常在传感器前面加上滤色器来透过不同波段的光。想要得到彩色图像,理论上需要给每个像元加上RGB三个通道对应波段的滤色器。厂商们为了节约成本,通常采用颜色滤波器阵列CFA(Color Filter Array)给不同的像元按照阵列排序加上不同波段的滤色器。有了CFA,每个像元只记录对应波段的信息,为了获得完整彩色图像,我们在ISP流程中通过去马赛克处理给图像恢复色彩。因此,我们可以称去马赛克处理为灰色图像融合为彩色图像的神来之笔。

图片
▲传感器感光示意图

      对于不同的CFA类型,成像器件像素单元接收的光强信号不同,相应的去马赛克方法也不一样,因此去马赛克方法与CFA的类型高度相关。

颜色滤波器阵列:

      接下来,小彩将针对几个有代表性的CFA进行具体讨论。

RGGB:

图片
▲RGGB型CFA

      RGGB型CFA也被称为Bayer阵列,是一种最典型、最成熟的CFA,可以透过红、绿、蓝三种光线。RGGB型CFA以2×2像元为基本单元,其中包括1个红光滤色器、1个蓝光滤色器和2个绿光滤色器。这样设计的传感器有50%的空间用于接收绿光,符合人眼对绿色更敏感的事实。虽说利用该CFA可以从绿色通道图像中获得较好的视觉细节,但是整体透光量不足,色彩信息损失较大,所以在暗光环境下拍摄表现较差。

RGBW:

图片
▲RGBW型CFA

     RGBW型CFA由柯达公司于2007年提出,2012 年索尼便将其应用于自家图像传感器产品线中,2015 年华为 P8 相机也是采用索尼的 RGBW 传感器 IMX278。

      RGBW型CFA取消了2×2基本单元中第二排的绿光滤色器,这使得所有光线都可以透过这个无滤色器的像元(称之为W像元)。这样设计的好处是可以增大透光量,增强暗光拍摄能力。同时,其缺点也较为明显,由于减少了一个滤色器,色彩信息损失较大,导致拍摄出来的图像色彩普遍较为寡淡,而且因为W像元透光量大而易于导致过曝。

RYYB:

图片
▲RYYB型CFA

     2014年安森美公司提出RYYB型CFA,随后在2019年华为和索尼联合发布了RYYB产品。该CFA的2×2基本单元中的绿光滤色器被替换成黄光滤色器。由于黄光波峰介于绿光与红光之间,Y像元能同时接收红光与绿光的能量,从而使整体感光能力提升40%。

      这样的设计在保持原有色彩信息的同时也能增大透光量,能适应各种拍摄场景。其缺点是在2×2基本单元中,两个黄光滤色器捕获的光能量远超红光和蓝光滤色器,而单个像元可接收的最大能量又是有限的 ,导致在一些光线强烈的场景,如果优先考虑 R、B 像元的可接收最大能量,那么 Y 像元接收的光能量就可能会溢出,造成过曝;如果优先满足 Y 像元的可接收最大能量,那么 R、B 像元就可能欠曝光,最终导致大光比环境下宽容度不够高。此外,RYYB型CFA需要对捕获的黄光进行红、绿分离,而这一步骤依赖于ISP流程中的校色算法,容易对最终图像产生偏色影响。

Others:

      除了上面提到的三种类型,还存在如Diagonal Stripe,CYGM,Hirakaw,Lukac & Plataniotis等其它形式的CFA,这里不再赘述。

图片
▲Diagonal stripe,CYGM,Hirakawa,DMCNN-VD-Pa设计的CFA

      无论是哪种类型的CFA,都无法完美地解决目前摄影行业中的图像记录颜色信息问题。因此,CFA设计固然重要,而与之搭配的去马赛克算法也是图像记录颜色的重要环节。

传统去马赛克算法:

      去马赛克的传统方法通常指插值法。早期研究人员利用最近邻插值、双线性插值、双三次插值和三次B样条插值等方法简单地预测图像像元中缺失的通道值。

图片
▲双线性插值预测绿色通道驱动值

       这样简单地对缺省值做插值算法忽略了图像边缘结构与三个通道之间的相关性,这可能会导致生成的图像存在拉链效应、伪彩与图像模糊等问题。

图片
▲拉链效应(左)与伪彩问题(右)

      后来,研究人员针对这个问题提出了基于色差一致性的插值算法,即在同一个图像中,两个相邻像素间对应通道的像素值差近似相等。色差插值算法可视为以色差一致性为约束条件的双线性插值。该算法虽从理论分析上更严谨,实际结果也更优秀,但仍存在着在图像高频部分表现不足的问题。

      与色差插值法类似的色比插值法,是以“两个相邻像素间对应通道的像素值比近似相等”为约束条件,但该算法在像素值为0时无法使用。

图片
▲色差插值法示意图

      色差插值法没有考虑到图像纹理方向,而是无差别使用邻域色差,故其效果在高频区的效果一般。为此,HA算法(Hamilton & Adams插值算法)于1997年被提出,其在色差插值法的基础上利用像元间的梯度来判断纹理方向(梯度小的地方被认为是纹理方向),进而使用这个方向的色差进行插值。该算法改进了普通色差插值法的缺点,在实际测试中取得了更高的PSNR。

      2010年,Pekkucuksen和 Altunbasak进一步改进了色差插值法,提出基于梯度的无阈值算法(gradient based threshold free,GBTF) 。该方法利用色差梯度计算每个方向的权重,然后根据每个方向的权重,结合来自各个方向的估计对图像像素值进行插值。

      2013年,Kiku等人在GBTF的框架上提出了残差插值(residual interpolation,RI)。该算法将GBTF法中的色差插值替换为残差插值(残差为最初采样到的像素值与初步估计值之间的差值),为广大学者提供了新的去马赛克思路。之后其他学者基于此方法提出了更多有建设性的去马赛克算法,例如最小化拉普拉斯残差插值算法(MLRI)、迭代残差算法(IRI)、自适应残差插值算法(ARI)等。

图片
▲GBTF(左)与RI(右)算法框架

AI去马赛克算法:

       目前,相关研究者提出了基于AI的ISP概念,即在传统的ISP流程中加入AI,而去马赛克、去噪等模块融入AI算法往往会有较好的效果提升。

       自人们发现卷积神经网络在提取图像特征方面有良好表现后,众多研究人员尝试利用该类网络进行去马赛克处理。目前,热门的方法可以分为三类,即分段式去马赛克、端到端去马赛克和联合其它任务的去马赛克算法。

      分段式去马赛克算法遵循传统去马赛克流程,通常是对Bayer阵列进行去马赛克处理。该类型算法先恢复采样率较高的G通道,并以此为先验信息,再推导出R、B通道的值。

图片
▲二段式去马赛克算法 CDM-CNN

       端到端去马赛克算法指的是输入马赛克图像并直接输出重建后图像的算法。该类算法凭借其重建效率高、泛化能力强的优点获得众多研究人员的青睐。最早Syu等人根据董超提出的超分辨率卷积网络,提出了应用于去马赛克操作的DMCNN(Demosaicing-CNN)与DMCNN-VD(DMCNN-very deep)算法,不但可以轻松应对Bayer阵列,并且对于其它任何类型CFA也有优秀的图像重建效果。

图片
▲端到端去马赛克算法 DMCNN(蓝色层为卷积层)

      除了利用简单卷积堆叠,研究人员还提出了采用残差网络、密集连接网络、U-Net网络与生成对抗网络等完成去马赛克处理的方法。

      除上述的分段式去马赛克算法与端到端去马赛克算法外,考虑到通过CFA采集到的图像存在噪声大、采样率低的问题,还有相关研究人员提出了将去马赛克、去噪、超分辨等任务联合处理的方法。

小结:

    去马赛克是ISP流程中的一项卓越技术,通过巧妙的插值和处理技巧,能够高效而准确地还原图像中缺失的彩色细节,为用户呈现出真实自然的色彩效果。

     目前,去马赛克算法取得了长足的进展,无论是传统插值算法还是深度学习法,都有优秀的重建效果。在未来,可以进一步改进去马赛克算法的自适应能力,使其能够更好地适应不同的拍摄场景和光照条件。除此之外,我们还可以优化算法以提高实时性能,确保用户在拍摄和预览中能够获得高质量的彩色图像。

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

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

相关文章

晨辉面试抽签和评分管理系统之七:面试成绩核算的三种方式

晨辉面试抽签和评分管理系统(下载地址:www.chenhuisoft.cn)是公务员招录面试、教师资格考试面试、企业招录面试等各类面试通用的考生编排、考生入场抽签、候考室倒计时管理、面试考官抽签、面试评分记录和成绩核算的面试全流程信息化管理软件。提供了考生…

FastApi Swagger 序列化问题

问题 错误现象: fastapi的 swagger 界面无法正常打开控制台报错:raise PydanticInvalidForJsonSchema(fCannot generate a JsonSchema for {error_info}) 详细报错: File "d:\Envs\miniconda3\envs\xdagent\lib\site-packages\pydan…

Browser-Use Web UI:浏览器自动化与AI的完美结合

Browser-Use Web UI:浏览器自动化与AI的完美结合 前言简介一、克隆项目二、安装与环境配置1. Python版本要求2. 安装依赖3. 安装 Playwright4. 配置环境变量(非必要步骤)三、启动 WebUI四、配置1. Agent设置2. 大模型设置3. 浏览器相关设置4. 运行 Agent结语前言 Web UI是在…

秒懂虚拟化(三):桌面拟化、用户体验虚拟化、应用程序虚拟化全解析,通俗解读版

秒懂虚拟化(二):服务器虚拟化、操作系统虚拟化、服务虚拟化全解析,通俗解读版-CSDN博客这篇文章学习了服务器虚拟化、操作系统虚拟化、服务器虚拟化,本节将继续学习桌面虚拟化、用户体验虚拟化、应用程序虚拟化。 1、…

UVM RAL Register Abstraction Layer:寄存器抽象层

topic 没有RAL的TB 有RAL的TB RAL介绍 summary

扬帆数据结构算法之舟,启航C++探索征途——LeetCode深度磨砺:顺序表技术精进实践

人无完人,持之以恒,方能见真我!!! 共同进步!! 文章目录 顺序表练习1.移除数组中指定的元素方法1(顺序表)方法2(双指针) 2.删除有序数组中的重复项…

【Linux网络编程】网络层 | IP协议 | 网段划分 | 私有IP和公有IP | NAT技术

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系…

Web基础之什么是HTTP协议

Q:什么是HTTP协议? 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。 特点: 1.基于TCP协议:面向连接,安全 2.基…

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况,提供解决IPv6 无法获取的更硬核的方法,需要有ssh 工具。(无安卓设备,测试环境win、mac、ios) 首先明确一点,就是如果想让你的设备得到GUA 地址,即访问 6.i…

element plus 使用 upload 组件达到上传数量限制时隐藏上传按钮

最近在重构项目,使用了 element plus UI框架,有个功能是实现图片上传,且限制只能上传一张图片,结果,发现,可以限制只上传一张图片,但是上传按钮还在,如图: 解决办法&…

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2) 下面我们继续来介绍AutoSAR CP分层架构,下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计,下面让我们来一起学习一下。 Introductio…

MBTiles 爬取,读取,数据转换,发布

MBTiles :https://github.com/mapbox/mbtiles-spec/blob/master/1.3/spec.md 1.MBTiles是什么 MBTiles是一个在SQLite 数据库存储瓦片地图数据的标准,该标准的目的是即时传输和使用数据。 作为一个容器格式,MBTiles可以存储任何瓦片数据,…

机器学习笔记合集

大家好,这里是好评笔记,公主 号:Goodnote。本笔记的任务是解读机器学习实践/面试过程中可能会用到的知识点,内容通俗易懂,入门、实习和校招轻松搞定。 笔记介绍 本笔记的任务是解读机器学习实践/面试过程中可能会用到…

java_将数据存入elasticsearch进行高效搜索

使用技术简介: (1) 使用Nginx实现反向代理,使前端可以调用多个微服务 (2) 使用nacos将多个服务管理关联起来 (3) 将数据存入elasticsearch进行高效搜索 (4) 使用消息队列rabbitmq进行消息的传递 (5) 使用 openfeign 进行多个服务之间的api调用 参…

Gitlab-Runner配置

原理 Gitlab-Runner是一个非常强大的CI/CD工具。它可以帮助我们自动化执行各种任务,如构建、测试和部署等。Gitlab-Runner和Gitlab通过API通信,接收作业并提交到执行队列,Gitlab-Runner从队列中获取作业,并允许在不同环境下进行作…

SpringBoot项目实战(41)--Beetl网页使用自定义函数获取新闻列表

在Beetl页面中可以使用自定义的函数从后台新闻列表中获取新闻数据展示到页面上。例如我们可以从后台新闻表中获取新闻按照下面的格式展示&#xff1a; <li><a href"#">东亚非遗展即将盛妆亮相 揭起盖头先睹为快</a></li><li><a hre…

LayaAir3.2来了:性能大幅提升、一键发布安装包、支持WebGPU、3D导航寻路、升级为真正的全平台引擎

前言 LayaAir3的每一个分支版本都是一次较大的提升&#xff0c;在3.1彻底完善了引擎生态结构之后&#xff0c;本次的3.2会重点完善全平台发布相关的种种能力&#xff0c;例如&#xff0c;除原有的安卓与iOS系统外&#xff0c;还支持Windows系统、Linux系统、鸿蒙Next系统&#…

【力扣热题100】—— Day18.将有序数组转换为二叉搜索树

期末考试完毕&#xff0c;假期学习开始&#xff01; —— 25.1.7 108. 将有序数组转换为二叉搜索树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵平衡二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] …

C++ Qt练习项目 QChar功能测试

个人学习笔记 代码仓库 GitCode - 全球开发者的开源社区,开源代码托管平台 新建项目 设计UI 1、拖入group box去掉名字 2、拖入2个LineEdit 3、拖入两个Label 4、拖入两个PushButton 5、点栅格布局 1、拖入GroupBox 2、拖入4个PushButton 3、点栅格布局 1、拖入GroupBo…

保证Mysql数据库到ES的数据一致性的解决方案

文章目录 1.业务场景介绍1.1 需求分析1.2 技术实现方案 2.业界常用数据一致性方案分析2.1 同步双写方案2.2 MQ异步双写方案2.3 扫表定期同步方案2.4 监听binlog同步方案 1.业务场景介绍 1.1 需求分析 某知名的在线旅游平台&#xff0c;在即将到来的春季促销活动之前&#xff…