Demosiac是整个ISP imaging pipeline的核心算法,将bayer pattern的图像转换成RGB。
那么我们这篇博文呢,希望从以下几个角度,对Demosiac做一个入门,给大家一些基本的概念。
0 什么Bayer pattern,他是怎么产生的
1 什么是去马赛克,为什么需要去马赛克
2 如何去马赛克,基本依据是什么
3 去马赛克中的难点
4 any other choices?
==========================
0 什么Bayer pattern,他是怎么产生的
==========================
我们知道,CMOS其实只能记录光子的能量,并不能记录光波的波长(即色彩信息),所以,为了得到图像的颜色信息,前人们想到了一种办法,就是在每一个像素面前加带颜色的滤光片,这样就知道某一颜色分量的光强了,柯达的工程师提出了下面这种pattern,也叫CFA(color filter array)
BGBGBGBGBGBGBGB
GRGRGRGRGRGRGR
这样就可以记录色彩信息了
背后的逻辑当然是这样的
1.绿色pixel为什么比其他两种颜色多呢? 因为人眼对绿色(550nm左右)最敏感啊
2.为什么是这三种颜色呢?三原色嘛
3.那么这样每个像素还是只有一种色彩呀,怎么能得到每个像素的所有色彩呢? 真聪明,这个就是我们做demosiac的目的了
好啦,知道了为什么需要做demosiac,我们就可以继续了
==========================
1 什么是去马赛克,为什么需要去马赛克
===========================
看了上面关于bayer的介绍,其实很好理解我们为什么需要去马赛克了,这是我们色彩恢复的重要的一步。将bayer模式的raw图像转换成为RGB的图像。
===========================
2 如何去马赛克,基本依据是什么
===========================
简单来说就是插值,邻域像素的色彩都有了,我们肯定是可以插值出本像素的值的。不过简单的双线性插值的方法总是在IQ上面有缺陷的。
在图像的边缘,会产生伪彩色,这一点不难理解。
下面介绍一种目前常用的demosiac插值方法。
demosiac的插值一般遵循以下几个原则:
1.先对G分量进行插值,因为G的像素个数是GB的两倍
2.插值时采用方向性插值,即如果是垂直的边缘,则采用上下的像素进行插值,而不选用左右
3.Hamilton提出的patent奠定了基础,基本原理就是色差恒定,即相邻点的R(i,j)-G(i,j) = R(i, j+1)-G(i, j+1)
4.另外各个颜色分量在同一像素点处的高频分量可认为是相同的
一个简单的实现demoisac的流程是这样的
A.先获取图像中的物体的边缘
B.根据边缘信息重建G分量
C.根据哈密尔顿提出的色差恒定理论,重建R和B
D.一些后处理,包括伪彩色抑制和zipper cancelling等
这两年也出现了基于deep learning的demosiac方法,以后有机会可以跟写一篇文章来解析一下。
===========================
3 去马赛克中的难点
===========================
去马赛克算法会产生两种缺陷,色彩混叠和拉链效应。就是上面D这个步骤要解决的两个问题。
关于色彩混叠,在后文中我们会介绍他的形成,而色彩混叠的解决方法也很多,其中一种就是中值滤波,对
U = R-G
V = B-G
U和V进行中值滤波,可以保证在边界处抑制色彩混叠
==========================
4 any other cholces?
===========================
讲了半天去马赛克,其实就是因为最初我们用了bayer pattern,不能够在一个像素处拿到所有的RGB三种色彩的值,所以才有了这么多的处理。
其实很多人对Bayer这种pattern颇有微词,它至少有以下两点不足
1.G和RB的采样率不同,导致色彩混叠。G的采样率比RB都要高,这样,RB不能像G那样准确的恢复出原始被采样图像的色彩,就会有假的色彩花纹在图像的高频部分产生。
典型的色彩混叠的例子,注意图中的白色栅栏
2.滤光片的存在导致光能的丢失
那么有公司提出了全彩色CMOS的概念,每一个像素可以拿到RGB三种色彩强度信息,无需demosiac插值,基本原理如下图
当然造价之类的肯定是比bayer的要高,所以目前普遍使用的还是bayer的sensor。
最后向大家推荐一本书《image processing for embeded devices》,非常棒,ISP中用到的各种基本算法都有涉及,类似于文献综述。里面有一章专门讲去马赛克和抗混叠的。
参考文献
1. https://www.dpreview.com/articles/3560214217/resolution-aliasing-and-light-loss-why-we-love-bryce-bayers-baby-anyway
2. image pricessing for embeded devices
3. 基于bayer格式的去马赛克算法研究及硬件实现 浙大 丁文