Demosiac是整个ISP imaging pipeline的核心算法,将Bayer pattern的图像转换成RGB。
去马赛克算法是用于从覆盖有颜色滤波器阵列(CFA)的图像传感器输出的不完整颜色样本重建全色图像的数字图像处理。 也称为CFA插值或颜色重建。 重建图像通常在均匀着色的区域中是精确的,但是具有分辨率(细节和清晰度)的损失并且具有边缘伪影。

1. Bayer Pattern

我们知道,CMOS其实只能记录光子的能量,并不能记录光波的波长(即色彩信息),所以,为了得到图像的颜色信息,前人们想到了一种办法,就是在每一个像素面前加带颜色的滤光片,这样就知道某一颜色分量的光强了,柯达的工程师提出了下面这种pattern,也叫CFA(color filter array)。
这样就可以记录色彩信息了,绿色pixel比其他两种颜色多,是因为人眼对绿色(550nm左右)最敏感啊,为什么是这三种颜色呢,三原色呀,那么这样每个像素还是只有一种色彩呀,怎么能得到每个像素的所有色彩呢,插值去马赛克呗
图1
插值,邻域像素的色彩都有了,我们肯定是可以插值出本像素的值的。不过简单的双线性插值的方法总是在IQ上面有缺陷的。在图像的边缘,会产生伪彩色,这一点不难理解。

2. Demosiac CIP的基本方法

demosiac的插值一般遵循以下几个原则:
1.先对G分量进行插值,因为G的像素个数是GB的两倍
2.插值时采用方向性插值,即如果是垂直的边缘,则采用上下的像素进行插值,而不选用左右
3.Hamilton提出的patent奠定了基础,基本原理就是色差恒定,即相邻点的R(i,j)-G(i,j) = R(i, j+1)-G(i, j+1)
A.先获取图像中的物体的边缘
B.根据边缘信息重建G分量
C.根据哈密尔顿提出的色差恒定理论,重建R和B
D.一些后处理,包括伪彩色抑制和zipper cancelling等

3. Nearest Neighbor Replication
每个插值输出像素被分配输入图像中最近像素的值。 最近的邻居可以是上,下,左和右像素中的任何一个。
下面的示例在图2中以绿色平面中的3x3块为例。 在这里,我们假设左侧的相邻像素值用于填充缺失的像素值。

4. Bilinear Interpolation

绿色像素插值:将上,下,左和右像素值的平均值指定为插值像素的G值。 例如:G8 =(G3 + G7 + G9 + G13)/ 4
为方便起见,图1在此重复

红色/蓝色像素的插值:
红色/蓝色像素在绿色位置的插值:将对应颜色的两个相邻像素值的平均值分配给插值像素。 例如:B7 =(B6 + B8)/ 2; R7 =(R2 + R12)/ 2
红色/蓝色像素在蓝色/红色位置的插值:将四个相邻对角像素值的平均值分配给该插值像素。 例如:R8 =(R2 + R4 + R12 + R14)/ 4; B12 =(B6 + B8 + B16 + B18)/ 4

5. Smooth Hue Transition Interpolation 平滑色调过渡插值

双线性插值的关键反对之一是相邻像素的色调不可思议地以不自然的方式改变。 另一方面,拜耳CFA图案可以被认为是由亮度通道(相对多的绿色像素)和色度通道(相对稀疏的红色和蓝色像素)组成。 可以创建一种方案以不同方式内插这些信道。
为方便起见,图1在此重复

绿色像素的插值:
与双线性插值相同。 还要注意绿色像素的插值必须在红/蓝像素的插值之前完成。

红/蓝像素的插值:

这里的想法是尝试从像素到像素强制平滑过渡。
为此,请将蓝色“色调值”定义为:B / G. 并且可以类似地定义红色“色调值”。 考虑蓝色像素值的插值:蓝色像素值插值有三种不同的情况。

估计绿色位置处的蓝色像素值和相邻的蓝色像素位于左侧和右侧:例如, B7 = G7 / 2 *(B6 / G6 + B8 / G8)

估计绿色位置处的蓝色像素值和相邻的蓝色像素位于顶部和底部:例如, B13 = G13 / 2 *(B8 / G8 + B18 / G18)

估计红色位置处的蓝色像素值:例如 B12 = G12 / 4 *(B6 / G6 + B8 / G8 + B16 / G16 + B18 / G18)

6. Edge Sensing Interpolation Algorithm I

非自适应算法,大多数颜色插值是通过不加区分地平均相邻像素来完成的。 这会导致伪影 - 插值图像中的“拉链效果”。 为了对抗这种伪像,很自然地导出一种算法,该算法可以检测像素邻域中存在的局部空间特征,然后有效地选择使用该邻域的预测器。 结果是减少或消除了“拉链型”工件。 涉及这种“智能”检测和决策过程的算法称为自适应颜色插值算法。

人类视觉系统对图像中存在的边缘敏感,并且非自适应颜色插值算法经常在边缘处失败,因为它们不能检测“边缘”。 为了处理边缘,让我们首先看一下边缘感知算法。

绿色像素的插值:
首先,为每个蓝色/红色位置定义两个梯度,一个在水平方向,另一个在垂直方向。 例如,考虑B8:将两个渐变定义为,其中,| | 表示绝对值。
定义一些阈值T.
然后该算法可以描述如下:
T的选择取决于图像,并且可以具有来自不同邻域的不同最佳值。 T的特定选择是。 在这种情况下,算法变为:![在这里插入图片描述](https://img-blog.csdnimg.cn/20190927165508532.png
红/蓝像素的插值:与对数曝光空间中的平滑色调过渡插值相同。 也可以使用其他方法。

Edge Sensing Interpolation Algorithm II

绿色像素的插值:与边缘感应插值算法I中的相同,不同之处在于不同地定义了horzitonal和垂直渐变。 参考下面的图,为了估算B5处的G5。

7. Subjective Quality Measure 主观质量测量

Nearest Neighbor Replication Interpolation最近邻复制插值:
整个图像出现明显错误,非常明显的阻塞效果,对于锐边非常不利。静止成像系统不可接受。在视频应用中,许多这些问题可能会被平均掉。

Bilinear Interpolation双线性插值:
与最近邻复制插值相比,性能大大提高;由于平均相邻像素而导致一些模糊;介绍所谓的“拉链”效应

Smooth Hue Algorithms平滑色调算法:
与“宝马”图像中的双线性算法相比,模糊度更低。另一方面,如图像“花朵”中所示,施加了显着的“色调”插值误差。这是由于R / B通道插值中的除法(或对数空间的减法),其中相邻像素之间的大G差异将在插值期间引起巨大的R / B误差。

Edge Sensing Algorithms边缘感应算法:
正如他们的名字所暗示的那样,确实可以看到更清晰的图像。由于R / B插值使用与平滑色调转换算法中相同的算法,因此在图像“鲜花”中可以看到显着的“色调”错误。不太适合彩色小物体。

Linear Interpolation with Laplacian 2nd order color correction terms I 具有拉普拉斯算子的线性插值二阶色彩校正术语I:
在所有算法中给出最佳质量之一。特别适合边缘。

Interpolation using Threshold-based Variable Number of Gradients使用基于阈值的可变梯度数进行插值:
似乎在所有算法中都给出了最佳结果。锋利的边缘也是如此。

Pattern Recognition模式识别:
非常好的结果,但边缘不像可变数字梯度方法或拉普拉斯颜色校正方法那样处理

8. Objective Quality Measure 客观质量测量

为了客观地比较这些算法,我们采用均方误差(MSE)作为我们的质量指标。 原始图像Io(x,y)与每个颜色通道的插值图像Ir(x,y)之间的MSE定义为:

第III节中实现的每种算法的MSE值分别在下面针对三个颜色通道进行描述。 我们将MSE值标准化为最小值,因为我们只关心这些算法的相对性能。

从这些图中,我们得出结论,基于使用MSE的客观测量:

Nearest Neighbor Replication Interpolation 最近邻复制插值比其他算法具有更大的均方误差,因此预期插值图像会显示最差的伪像,这可以在前面的小节中进行验证。

就绿色(或亮度)通道插值而言,Variable Number Gradients Method 可变数梯度方法在两个示例中都提供了最佳性能。 Laplacian Color Correction I method 拉普拉斯颜色校正I方法也给出了令人印象深刻的结果。 就其余算法而言,它们的MSE值没有显示出任何重大差异。

就红/蓝(或色度)通道插值而言,没有明显优越的算法可以单独脱颖而出。Variable Number Gradients Method 变量数梯度方法提供稍好的结果。

9. Computational Cost 计算成本

在这里,我们将比较与实现的每个算法相关的计算成本。我们计算成本的方法是在处理一些输入图像时计算Matlab中发生的触发器。对于那些非自适应算法,只要图像大小是固定的,无论输入图像的内容如何,​​成本都是固定的。而对于自适应算法,计算成本是场景相关的,因为这些算法涉及比较或决策制定步骤,其中可以发生分支。然而,由于图像内容导致的计算成本的这种变化对于我们在此包括的两个示例而言并不明显。
由于计算成本仅从软件的角度来确定,因此它当然与算法的实际实现有关。高效的计划降低了成本。在我们的研究中,没有特别的努力来处理这种与实现相关的成本特征,并且没有一个算法代码被有意调整以提高其效率,也没有故意减少它。我们假设我们的实现行为一般都遵循平均值。
下图显示了两个图像的比较。

Nearest Neighbor Replication Interpolation 最近邻复制插值不涉及任何算术运算,因此不会产生任何计算成本

排除最近邻复制算法,Bilinear interpolation 双线性插值在其他八个插值方案中施加最少量的计算

另一方面,使用interpolation using threshold-based variable number gradients method 基于阈值的可变数梯度方法的插值与其他方法相比具有显着的计算成本代价,并且对于实时数字视频应用来说它是非常不切实际的。

使用Linear interpolation with Laplacian second-order color correction terms I拉普拉斯算子二阶颜色校正项的线性插值与其他算法相比,其也增加了大的计算成本,但与可变数梯度方法相比具有更少的损失。

ISP(二) Demosiac 去马赛克 (CIP)相关推荐

  1. Image Signal Processing(ISP)-第二章-Demosaic去马赛克以及BMP软件实现

    Hello!ISP的基础知识分享第二章终于来了!最近精力都投入到了工作上,真是没时间写东西.但一位大佬私信我催更,着实让我感动.即使我的文字只有一个人看,那我也会写下去,而且泡做事怎么会半途而费呢? ...

  2. ISP—去马赛克和颜色空间变换对图像噪声的影响

    图像噪声的存在很大程度上会影响图像质量,然而去马赛克和颜色空间转换对噪声的相关性起着主要的影响. 去马赛克 camera中的CMOS通过CFA拜尔阵列来采集不同通道的颜色,一般情况下,R:G:B=1: ...

  3. 心中无码,自然高清 | 联合去马赛克与超分辨率研究论文Pytorch复现

    作者 | 知凡,个人公众号:林木蔚然读书会(ID:EspressoOcean),知乎ID:Uno Whoiam 本文授权转载自知乎 本文结构 简单扫盲 什么是去马赛克 什么是超分辨率 <Deep ...

  4. 图像去马赛克:双线性插值VS高质量线性插值

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

  5. 彩色图像去马赛克与图像超分辨问题的关系

    一.图像超分辨率问题 首先我们先看百度定义:超分辨率(Super-Resolution)即通过硬件或软件的方法提高原有图像的分辨率,通过一系列低分辨率的图像来得到一幅高分辨率的图像过程就是超分辨率重建 ...

  6. CNN去马赛克代码阅读笔记

    有的博客链接是之前几周写好的草稿,最近整理的时候才发布的 CNN去马赛克论文及代码下载地址 有torch,minimal torch和caffe三种版本 关于minimal torch版所做的努力,以 ...

  7. 自编码AE 实现图片去马赛克(完整代码奉献) pytorch

    前言:博主闲来无事,写了个AE网络来实现任意图片的去马赛克(前提是训练样本是哪方面的马赛克图~~,博主是针对打码人脸的去码).样本分为没打码人脸8000张和经打码处理的对应8000张(取自celeba ...

  8. 阿里“去 IOE”十二年,弹性计算如何二次去 I 和 E?

    [CSDN 编者按]王坚院士曾讲过一句话让人印象深刻,他说「云计算的本质是服务,如果不能将计算资源规模化.大范围地进行共享,如果不能真正以服务的方式提供,就根本算不上云计算.」众所周知,阿里云是完全经 ...

  9. pulse 去马赛克软件_细致到毛孔头发 神还原的高清大图!AI去马赛克新算法

    AI人工智能技术近年来大热,尤其是在图像识别领域,大家很期待的一个功能就是AI去马赛克.美国杜克大学的研究人员日前发明了一种新的PULSE算法,它可以将低分辨图片变成高清图片,细致到毛孔.头发都能神还 ...

最新文章

  1. Linux qfile中文文件名,QFile无法打开包含unicode字符的文件名
  2. 【错误记录】Android NDK 错误排查记录 ( error: undefined reference to | Linking CXX shared library FAILED )
  3. Jasypt 加密-整合SpringBoot
  4. Java中Comparator和Comparable之间的区别
  5. 编程界的“二向箔”——Dart元编程
  6. 【转】雷军自曝创业第一年:掏自己的钱创业成功率最高
  7. 推行CMMI能在哪些方面为软件企业带来好处?
  8. 计算机网络及分布式系统
  9. CX水晶易表连接数据库的方法
  10. 计算机房灭火器采用哪种类型,机房灭火器类型有哪些
  11. excel公式编辑器_无需支付!免费领取!极度公式丨专业公式 OCR 识别编辑软件...
  12. psf2otf函数的解释
  13. 华硕天选4和联想拯救者r9000p选哪个好
  14. 路由器工作原理及其主要部件详解
  15. 苹果手机用stream获取wskey
  16. Linux的route命令
  17. [前端框架]-VUE(上篇)
  18. 谁来给网络彩票排毒?
  19. 珠海:IT应用向政府投资行业集中
  20. 配置 FoxyProxy 规则自由切换代理模式

热门文章

  1. 餐饮外卖平台小程序源码,附带详细教程
  2. cell数据如何删除重复项
  3. 锂离子电池热失控预警资料整理(三)
  4. 报错:SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>)
  5. java系统架构设计,2022最新
  6. IT未来发展五大趋势
  7. clickhouse-MergeTree原理解析
  8. android10 禁止下拉状态栏
  9. 罗德里格斯公式(Rodrigues‘ rotation formula)推导
  10. Mq报错:Caused by: com.rabbitmq.client.ShutdownSignalException