zoukankan      html  css  js  c++  java
  • ISP中去马赛克-demosiac入门

    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格式的去马赛克算法研究及硬件实现 浙大 丁文

  • 相关阅读:
    P1182 数列分段`Section II`
    算法整理:Floyd_多源最短路
    【FBI WARNING】递归(高级数据结构的基础)
    【FBI WARNING】DP 从看透到看开
    两个例题
    结构体
    环状序列(Circular Sequence, ACM/ICPC Seoul 2004, UVa1584)
    生成元(Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
    猜数字游戏的提示(Master-Mind Hints, UVa 340)
    回文词(Palindromes, UVa401)
  • 原文地址:https://www.cnblogs.com/sunny-li/p/8641767.html
Copyright © 2011-2022 走看看