精华内容
下载资源
问答
  • 大气消光系数去雾算法总结,承接上一篇传的去雾算法每个人理解总结,然后还要之前本人写的代码,也在资源里面,非暗通道处理的去雾代码
  • 去雾算法总结

    千次阅读 2018-06-14 22:46:32
    之前搞个去雾算法,原理几乎全部忘记,这里再回忆一下参考链接是:https://blog.csdn.net/songhhll/article/details/12612681论文是 Single Image Haze Removal Using Dark Channel Prior论文的核心是提出了暗通道...

    之前搞个去雾算法,原理几乎全部忘记,这里再回忆一下

    参考链接是:

    https://blog.csdn.net/songhhll/article/details/12612681

    https://blog.csdn.net/kuweicai/article/details/78385871

    https://blog.csdn.net/baimafujinji/article/details/74750283

    论文是 Single Image Haze Removal Using Dark Channel Prior

    ----------------------------------暗通道理论------------------------------------

    论文的核心是提出了暗通道先验: 非天空的局部区域内,总有一些像素,至少一个颜色通道具有很低的值

    在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道具有很低的值。换言之,该区域光强度的最小值是个很小的数。

    暗通道的计算公式是。实际上是分两步计算

    (1): 首先求出图像中每个像素RGB分量中的最小值,得到结果图像,为灰度图像。

    (2): 然后是对灰度图像进行最小值滤波,滤波器的半径由窗口大小决定。一般有WindowSize = 2 * Radius + 1;

    公式(5)的最右边min是对3个通道取最小值,而左边的min是对图像的局部信息取最小值。

    ------------------------基于暗通道数据进行去雾的推导------------------------

    其中,I(X)就是我们现在已经有的图像(待去雾的图像),J(x)是我们要恢复的无雾的图像,A是全球大气光成分, t(x)为透射率。现在的已知条件就是I(X),要求目标值J(x),显然,这是个有无数解的方程,因此,就需要一些先验了。


    将式(1)稍作处理,变形为下式:

                                                        

        如上所述,上标C表示R/G/B三个通道的意思。

        首先假设在每一个窗口内透射率t(x)为常数,定义他为,并且A值已经给定,然后对式(7)两边求两次最小值运算,得到下式:

                                      

        上式中,J是待求的无雾的图像,根据前述的暗原色先验理论有:

                                                   

         因此,可推导出:

                                                             

        把式(10)带入式(8)中,得到:

                                                     

        这就是透射率的预估值。

        在现实生活中,即使是晴天白云,空气中也存在着一些颗粒,因此,看远处的物体还是能感觉到雾的影响,另外,雾的存在让人类感到景深的存在,因此,有

    必要在去雾的时候保留一定程度的雾,这可以通过在式(11)中引入一个在[0,1] 之间的因子,则式(11)修正为:

                                                   


    实际上是对原图用255(或者求出一个值)进行归一化,然后求暗通道图像,把这个暗通道图像当做t(x)来对待

    上面12示子是一个粗的图像,然后需要对这个t(x)进行精细化


    ------------------------对于透视率t(x)的精细化--------------------------------

    对t(x)精细化有两个方法,

    1: 解一个soft matting方程

    2: Guided filter, 对于guided filer是输入原图,和暗通道图,原图可以是灰度也可以是彩色,然后对暗通道图进行细化处理

    guided filter 输入的guided图像可以是原图,也可以是其他的图像,核心是在滤波的时候保持边缘信息,认为噪声是的梯度变换在各个方向上都有发生,而边缘的梯度变换只在一个方向上发生

    至于guided filter 详细信息略过


    展开全文
  • 图像预处理:去雾算法总结

    千次阅读 2018-08-10 10:27:01
    图像去雾算法总结 何凯明暗通道去雾算法 去雾算法总结

    图像预处理:图像去雾算法总结

    去雾算法总结

    1、暗通道去雾算法

    何凯明暗通道去雾算法
    matlab源码实现像素逐个运行,比较耗时,可查找C++实现的代码。
    matlab源码和C++源码底部有下载链接

    1.1 单张图片去雾处理
    % 功能:去雾算法单张图片测试
    
    clc
    clear all
    I = imread('F:\\去雾算法\\2.jpg');
    [ J,tmap,tmap_ref ] = darkChannel( I,15,0.95);     % J 为处理后输出的图像
    
    1.2 图像批量去雾处理
    % 功能:读取指定文件夹下的所有图片,改变尺寸后去雾再保存。
     
    clc;
    clear;
     
    % PathName = '.\train\';                   %指定当前程序所在路径下的文件夹
    PathName = 'F:\input_img\';                %指定其他路径下的文件夹
    Num = dir([PathName,'*.jpg']);             %关联文件夹下某种类型的文件
     
    % if ~exist('newData','dir')               %若当前工作路径下不存在,则创建新文件夹newData
    % mkdir('newData')
    % end
    % paths=[pwd,'\newData'];                  %在当前路径下生成新的存储路径
    fprintf('处理ing,请稍等...\n');
    for i=1:length(Num)
        FileName = Num(i).name;
        trainImg = imread([PathName FileName]);
        newImg = imresize(trainImg,[416 416]);                         %统一尺寸
        % newImg = rgb2gray(newImg);%灰度化
        [ J,tmap,tmap_ref ] = darkChannel( newImg,15,0.95);
        newImg = J;
        %重命名
        newName = num2str(Num(i).name(1:end-4));                  %提取原图像文件名-不含格式
        fileName = strcat('F:\output_img\',newName,'.jpg');       %指定新的存储路径+文件名+格式
        imwrite(newImg,fileName);                   %保存图像
        
    %     figure;
    %     subplot(121);imshow(trainImg);
    %     subplot(122);imshow(newImg);
    %     close all;
    end
    fprintf('处理Over,请稍等...\n');
    
    

    2、基于SSR算法的图像去雾

    % 图像效果:去雾效果较好,颜色亮丽,但分辨率有所损失
    % 参考网址:https://blog.csdn.net/baimafujinji/article/details/73824787
    
    I = imread('canon.jpg');
    
    R = I(:, :, 1);
    [N1, M1] = size(R);
    R0 = double(R);
    Rlog = log(R0+1);
    Rfft2 = fft2(R0);
    
    sigma = 250;
    F = fspecial('gaussian', [N1,M1], sigma);
    Efft = fft2(double(F));
    
    DR0 = Rfft2.* Efft;
    DR = ifft2(DR0);
    
    DRlog = log(DR +1);
    Rr = Rlog - DRlog;
    EXPRr = exp(Rr);
    MIN = min(min(EXPRr));
    MAX = max(max(EXPRr));
    EXPRr = (EXPRr - MIN)/(MAX - MIN);
    EXPRr = adapthisteq(EXPRr);
    
    G = I(:, :, 2);
    
    G0 = double(G);
    Glog = log(G0+1);
    Gfft2 = fft2(G0);
    
    DG0 = Gfft2.* Efft;
    DG = ifft2(DG0);
    
    DGlog = log(DG +1);
    Gg = Glog - DGlog;
    EXPGg = exp(Gg);
    MIN = min(min(EXPGg));
    MAX = max(max(EXPGg));
    EXPGg = (EXPGg - MIN)/(MAX - MIN);
    EXPGg = adapthisteq(EXPGg);
    
    B = I(:, :, 3);
    
    B0 = double(B);
    Blog = log(B0+1);
    Bfft2 = fft2(B0);
    
    DB0 = Bfft2.* Efft;
    DB = ifft2(DB0);
    
    DBlog = log(DB+1);
    Bb = Blog - DBlog;
    EXPBb = exp(Bb);
    MIN = min(min(EXPBb));
    MAX = max(max(EXPBb));
    EXPBb = (EXPBb - MIN)/(MAX - MIN);
    EXPBb = adapthisteq(EXPBb);
    
    result = cat(3, EXPRr, EXPGg, EXPBb);
    subplot(121), imshow(I);
    subplot(122), imshow(result);
    

    3、基于单幅图像的快速去雾算法

    % 去雾效果:图像偏绿
    % 参考链接:https://blog.csdn.net/wanglongfei_hust/article/details/19190307
    
    % 基于单幅图像的快速去雾算法
    fileName = 'D:\\image\\haze image\\He\\canon3.bmp';
     
    % step1: 输入:有雾图像H(x)
    H = imread(fileName);
    H = double(H) / 255.0;
    imtool(H);
    [h, w] = size(H);
    sv = ceil(max(h, w) / 50);
    if mod(sv, 2) == 0
        sv = sv + 1;
    end
     
    % step2: 求取H(x)三通道的最小值M(x)
    M = min(H, [], 3);
     
    % step3: 对M(x)进行均值滤波,得到Mave(x)
     
    f = fspecial('average', sv);
    Mave = imfilter(M, f, 'symmetric');   
     
    % step4: 求取M(x)中所有元素的均值Mav
    [h, w] = size(Mave);
    n = 0.0;
    for i=1:h
        for j=1:w
            n = n + Mave(i, j);  
        end
    end
    Mav = n / (h * w);
     
    % step5: 利用Mave(x)求出L(x)
    e = 2.0;    % e是一个用来调节的参数,当e值越大时,去雾后的图像就越暗,去雾效果就越明显,e值越小时,图像偏白,有明显的雾气。
    L = min(min(e*Mav, 0.9)*Mave, M);
     
     
    % step6: 利用Mave(x)和H(x),求出A
    temp = max(H, [], 3);
    A = 0.5 * (max(temp(:)) + max(Mave(:))) * [1; 1; 1];
     
    % step7: 去雾后图像F(x)
    [h, w, c] = size(H);
    F = zeros(h, w, c);
    for i=1:h
        for j=1:w
            for k=1:c
                F(i,j,k) = (H(i,j,k) - L(i,j)) / (1 - L(i,j)/A(k));
            end
        end
    end
     
    imtool(F);
    
    
    展开全文
  • 去雾算法总结(传统+深度学习)

    千次阅读 2020-07-05 19:49:40
    传统的去雾方法 1.Single Image Haze Removal Using Dark Channel Prior 何凯明 2009 CVPR 2. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 2015 TIP 基于深度学习的图像去雾方法 ...

    目录

    传统的去雾方法

    1.Single Image Haze Removal Using Dark Channel Prior  何凯明  2009 CVPR

    2. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 2015 TIP

    基于深度学习的图像去雾方法

    1. DehazeNet: An End-to-End System for Single Image Haze Removal 华南理工大学 16 TIP

    2. All-in-One Network for Dehazing and Beyond  Boyi Li  2017 ICCV

    3.Densely Connected Pyramid Dehazing Network  Rutgers University  2018 CVPR

    4. Gated Fusion Network for Single Image Dehazing 2018 CVPR

    5.Gated Context Aggregation Network for Image Dehazing and Deraining 2019 WACV

    6.Towards Perceptual Image Dehazing by Physics-based Disentanglement and Adversarial Training 2018 AAAI

    7.Cycle-Dehaze: Enhanced CycleGAN for Single Image 2018 CVPRW


    光在雾、霾等介质中传播时,由于粒子的散射作用导致成像传感器采集的图像信息严重降质,在很大程度上限制了图像的应用价值。图像去雾的目的是消除雾霾环境对图像质量的影响,增加图像的可视度,是图像处理和计算机视觉领域共同关切的前沿课题,吸引了国内外研究人员的广泛关注。

    本文主要对近期的一些去雾方法进行简要介绍总结。

    传统的去雾方法

    传统的去雾方法主要是基于先验知识的,主要有何凯明等人暗通道先验(Dark Channel Prior,DCP)方法,Tan等人最大对比度(Maximum Contrast,MC)方法,Zhu等人的颜色衰减先验(Color Attenuation Prior,CAP)方法, Ancuti等人的色度不一致方法。

    在这些方法中,最著名的是09年CVPR的best paper,何凯明的暗通道先验方法,本部分将对暗通道先验方法以及颜色衰减先验方法进行介绍。

    1.Single Image Haze Removal Using Dark Channel Prior  何凯明  2009 CVPR

    本文是所有的去雾方法里面最经典的一篇,本文是09年CVPR的best paper。作者何凯明提出了一种暗通道先验的方法来进行去雾操作。基于暗通道先验的去雾算法实际上是一种统计意义上的算法,作者总结了大量的室外无雾的图像,发现了在无雾图像中局部区域存在一些像素,这些像素中至少有一个颜色通道的亮度值非常非常低(低亮度值区域不包括天空区域)。关于此文的介绍网上非常多,这里就不做介绍了。

    参考链接

    1. https://zhuanlan.zhihu.com/p/28875405

    2.  https://zhuanlan.zhihu.com/p/36785699

    3. http://blkstone.github.io/2015/08/20/single-image-haze-removal-using-dark-channel/

    4.  http://www.cnblogs.com/Imageshop/p/3515871.html

    5.  http://www.cnblogs.com/Imageshop/p/3281703.html

    6.  https://blog.csdn.net/songhhll/article/details/12612681

    7.  https://blog.csdn.net/u013080652/article/details/42706301

    8.K. He, J. Sun, and X. Tang, “Single image haze removal using dark channel prior,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, no. 12, pp. 2341–2353, 2011.

    2. A Fast Single Image Haze Removal Algorithm Using Color Attenuation Prior 2015 TIP

    和暗通道类似,这个color attenuation prior算法本质上也是一种统计上的发现。

     之所以对于单图像进行去雾处理是一个较难的内容是因为一个图像中包含的关于场景结构等信息非常少,因此很难获得较为全面的信息从而进行去雾。

    然而,大脑在面对一幅图像的时候其实是可以很快的分辨清楚哪里有雾、哪里没有,或者很快分辨清楚近景、远景而不需要其他太多的资料。

    作者基于这一思考,通过对很多副有雾图像进行分析发现了统计意义上的结论从而提出一个新的思路,通过对很多图像的远景、中景、近景进行分析发现了haze的浓度与亮度和饱和度之差呈正比。

    这种方法的基本原理,依然是基于大气退化模型的

    大气退化模型

    由上式分析可以得到:

    (1)直接的衰减会导致反射能量的减弱,导致亮度的低值。即公式中 J(x)t(x)

    (2)大气光成分会增强brightness的值并且降低饱和度saturation。

     总结下来,即为,当雾的程度越大,大气光成分的的影响越大。因此,我们可以考虑通过研究saturation和brightness之间差来分析雾的浓度。

    写成表达式的形式,即为

    其中 d(x) 为景深,c(x) 是雾的浓度,v(x), s(x) 分别是value of brightness of scene,以及saturation。这个公式就是color attenuation prior(CAP)。作者通过构建训练样本采集了超过500张图像,最后得出了合适的参数。最终公式形式如下

    最终的参数结果为

    参考链接

    1. Q. Zhu, J. Mai, and L. Shao, “A fast single image haze removal algorithm using color attenuation prior,” IEEE Transactions on Image Processing, vol. 24, no. 11, pp. 3522–3533, 2015.

    2. https://zhuanlan.zhihu.com/p/28942127

    基于深度学习的图像去雾方法

    由于神经网络在检测,识别等任务上的取得了很大的进展,所以研究人员开始尝试用基于深度学习的方法取代传统的图像去雾方法。

    其方法主要可以分为两种,一种是基于大气退化模型,利用神经网络对模型中的参数进行估计,早期的方法大多数是基于这种思想的;另一种是利用输入的有雾图像,直接输出得到去雾后的图像。目前最新的去雾方法更倾向于后者。

    在本部分,将对近三年具有代表性的一些基于神经网络的图像去雾方法进行介绍。

    1. DehazeNet: An End-to-End System for Single Image Haze Removal 华南理工大学 16 TIP

    本文是是较早的一篇利用深度学习进行去雾的文章。

    它是一种端到端的训练模型,利用神经网络来对大气退化模型中的t(x)进行估计。模型输入雾图,输出传输率t(x)映射图,然后通过大气退化模型来恢复无雾图像。采用深度CNN结构(4层),并提出了一种新的非线性激活函数。提高了恢复图像的质量。

    该文章算法贡献如下:

    1. end2end系统,直接学习并估计传输率与有雾图像的关系。

    2. 提出nonlinear激活函数,称为BReLU(双边ReLU)。

    3. 分析了DehazeNet与已有去雾技术之间的关系。

    作者首先对大气退化模型进行了介绍,然后对几种传统的去雾方法进行了介绍:

    (1)暗通道先验(Dark Channel Prior,DCP)

    文献:He等人的暗通道先验

    (2)最大对比度(Maximum Contrast,MC)

    文献:Tan等人的Visibility in bad weather from a single image

    (3)颜色衰减先验(Color Attenuation Prior,CAP)

    文献:Zhu等人的A fast single image haze removal algorithm using color attenuation prior

    (4)色度不一致

    文献:Ancuti等人的A fast semiinverse approach to detect and remove the haze from a single image

    网络结构

    作者想要结合前面的四种传统方法,进行网络设计,网络结构主要分为4部分

    (1)特征提取(Feature Extraction)

    (2)多尺度映射(Multi-scale Mapping)

    (3)局部极值(Local Extremum)

    (4)非线性回归(Non-linear Regression)

     

    网络结构

    1)特征提取(Feature Extraction)

    特征提取有别于传统卷积神经网络,DehazeNet采用“卷积+Maxout”的结构作为网络第一层。

    其中F代表输出的特征,i代表第i个,1是是指第一层,k是指k个层进行maxout操作。W和B是权重和偏置。 第一层是特征提取层,即提取有雾图像特征。本文中使用了16个滤波器,通过maxout unit的激活函数,每四个输出一张图。这里不padding,输入是3*16*16三通道的块。输出的是四个12*12,每一个代表一种特征。

    特征提取

    作者在后面指出,“卷积+Maxout”等价于传统的手工去雾特征。当W1是反向(Opposite)滤波器,通道的最大等价于通道的最小值,等价于暗通道先验(DCP);当W1是环形(Round)滤波器, 等价于对比度提取,等价于最大对比度(MC);当W1同时包含反向(Opposite)滤波器和全通(All-pass)滤波器,等价于RGB到HSV颜色空间转换,等价于颜色衰减先验(CAP)。此外,从机器学习角度,Maxout是一种样条函数,具有更强的非线性拟合能力,如图(d)。

     

    (2)多尺度映射(Multi-scale Mapping)

    使用多尺度的平行卷积操作。由于多尺度特征被证明有利于去雾并且在inception的模型中也用到了平行卷积,即同一张图用不同尺度的卷积核进行卷积。分别用16个3*3、16个5*5和16个7*7的卷积核进行卷积,每一种尺度产生16个,并且通过padding每张图大小应该是一致的(pad见下图)。总共获得48个48*12*12特征图。

     

     

    (3)局部极值(Local Extremum)

     根据假设透射率有局部不变性,所以用一个7*7局部最大值滤波替代maxpooling。输出是48个48*6*6。

     

    4)非线性回归(Non-linear )

    大气透射率是一个概率(0到1),不可能无穷大,也不可能无穷小。受到Sigmoid和ReLU激励函数的启发,提出双边纠正线性单元(Bilateral Rectified Linear Unit,BReLU),在双边约束的同时,保证局部的线性。

    训练过程

    1.数据集

     获取自然场景的有雾和无雾的图像是十分困难的,所以作者使用了基于物理雾霾形成模型的综合训练集。从因特网收集的图像中随机抽样10,000个大小为16*16的无雾霾patch。对于每个patch,作者统一采样10个t以生成10个模糊patch,这里为了减小变量学习的不确定性,将大气光A设置为1,共生成100,000个16*16的数据。

    2.损失函数

    作者将t的估计偏差作为损失函数,使用了均方差损失

    参考链接

    1. B. Cai, X. Xu, K. Jia, C. Qing, and D. Tao. Dehazenet: An end-to-end system for single image haze removal. IEEE Transactions on Image Processing, 25(11):5187–5198, 2016.

    2. https://blog.csdn.net/u012556077/article/details/53364438

    3. https://blog.csdn.net/yinhou1771/article/details/82682311

    4. https://blog.csdn.net/u014195530/article/details/80963278

    2. All-in-One Network for Dehazing and Beyond  Boyi Li  2017 ICCV

    本文并没有单独估计t(x)和大气光A,而是通过轻量级的CNN直接生成清晰的图像,这种端到端的设计使得其可以嵌入到其他的模型中,比如说物体检测faster-RCNN。

    该文章算法贡献如下:

    1. end2end系统,提出了一个end to end的去雾模型,完成了haze  image到clear image之间的转化通过K(x)将t(x)与A统一,基于K(x)可以完成对清晰图像的重构。

    2. 提出了新的比较去雾效果的客观标准,定量研究去雾质量如何影响后续高级视觉任务的,同时,其模型可以和其他深度学习模型无缝嵌。

    作者首先介绍了一些之前的工作,并总结了之前方法的不足,作者认为:

          (1)之前的去雾算法没有端到端的去雾,而大多数用于图像恢复和增强的深度学习方法完全采用端到端建模,训练模型以直接从损坏的图像中回归干净的图像。作者认为估计参数有可能会使得误差相互放大。

          (2)目前,去雾模型依赖于两组评估标准:对于合成模糊图像,其清晰图像是已知的,通常计算PSNR和SSIM来进行评估;对于具有未知地面真实性的真实自然模糊图像,唯一可用的去雾结果比较是主观视觉质量。然而,在最先进的算法中,主观视觉质量的评价是难以做到的。而图像的清晰度会影响一些诸如目标检测类视觉任务的结果,所以,之前的方法缺少将去雾结果与高级视觉任务相关联去进行评估。

    由大气退化模型,可以得到去雾后图像的表达式,如下:

    可以看到,表达式中是有两个未知数的,作者的想法是,将这两个未知数化为一个,即用K(x)将A与t(x)相统一。其中,b是具有默认值的恒定偏差。

    总体网络结构较为简单,主要分为2部分

          (1)K估计模块:利用输入图像I(x)对未知变量K(x)进行估计

          (2)干净的图像生成模块:将估计所得的K(x)作为自适应变量输入网络,得到J(x)

    受到DehazeNet,MSCNN的启发,使用五个卷积层,并通过融合不同大小的滤波器形成多尺度特征。“concat1”层连接层“conv1”和“conv2”的特征,“concat2”连接来自“conv2”和“conv3”的那些; “concat3”连接来自“conv1”,“conv2”,“conv3”和“conv4”的那些。这种多尺度设计捕获不同尺度的特征。AOD-Net的每个卷积层仅使用三个滤波器。

    1.损失函数

          使用了简单的均方差损失。

    2.指标

          除了使用PSNR和SSIM指标外,作者还联合faster-RCNN进行了分析。

    参考链接

    1. Xu , and D. Feng . Aod-net: All-in-one dehazing network. In Proceedings of the IEEE International Conference on Computer Vision, volume 1, page 7, 2017.

    2. https://zhuanlan.zhihu.com/p/47386292

    3.Densely Connected Pyramid Dehazing Network  Rutgers University  2018 CVPR

    作者的总体思路依旧是按照大气退化模型来进行的,作者指出,以往的方法较为侧重对传输图t(x)的估计,对于大气散射A,往往采用经验公式去估计,没有对A足够的重视,所以作者对二者均进行了估计。主要贡献如下:

    1.提出了一种新型的端到端联合优化去雾网络,将公式嵌入到了网络,在训练阶段采取了阶段式训练的方法。

    2.提出了一种边缘保留金字塔密集连接的编码器 - 解码器网络,用于精确估计传输映射。此外,它通过新提出的边缘保留损失函数进行优化。

    3.利用GAN框架内的联合鉴别器来确定配对样本(即透射图和去雾图像)是否来自数据分布。

    4.对两个合成数据集和一个真实世界的图像数据集进行了大量实验。进行消融研究以证明提出网络中不同模块所获得的改进。

    如下图所示,网络以下四个模块组成:1)金字塔密集连接的传输图估计网 2)大气光估计网 3)嵌入公式 4)联合鉴别器网络

    (1) Pyramid densely connected network for transmission map estimation

    A. 用dense block做CNN的基本block来提取feature(dense block被认为是有利于融合多尺度特征)

    B.multi-level pyramid pooling method. 是将得到的特征用不同尺寸的pooling,四个pooling layer,然后再upsize到原尺寸(就算多尺度的feature)

    (2)Atmospheric Light Estimation Network

          作者同样假设大气光是均匀的e.g. A(z)=c constant。采用U-net来估计图像的大气光。

    (3)嵌入公式

          在估计得到传输图与大气光后,将公式嵌入作为第三部分网络。

    (4)鉴别器

          增加了一个discriminator 来更好的生成的transmission map, A(z)。 

    损失函数

    (1)edge-preserving loss

    其中,LE,l2表示整体边缘保留损失,LE,g表示双向(水平,垂直)梯度损失,如下

    LE,f表示特征损失,如下

    (2) 判别器优化

            损失函数

    (3)总损失

    其中,Lt由边缘损失组成,La是预测A的l2损失,Ld表示除雾损失,也是l2损失,Lj是联合鉴别器损失,其前面的系数是一个常量。

    损失太多训练时不好收敛,作者提出initialization stage,先分块优化每一个小block,然后再统一训练。

    参考链接

    1. H. Zhang and V. M. Patel. Densely connected pyramid dehazing network. In The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.

    4. Gated Fusion Network for Single Image Dehazing 2018 CVPR

    本文提出一种基于门限融合网络的雾霾图像的复原方法。该门限融合网络由一个编码解码网络构成。其中,编码网络用于对雾霾图像本身及其多种变换图像进行特征编码,解码网络则用于估计这些变换图像对应的权重。

    具体而言,对一张雾霾图像,作者对其进行多种变换,包括图像白平衡、对比度增强和伽马矫正等操作提取图像内部的不同颜色或对比度特征,然后将得到的变换图像输入到门限融合卷积神经网络中,利用神经网络对雾霾图像的每个变换图像估计一个权重矩阵,再利用权重矩阵对所有的变换图像进行融合获得最终的去雾结果图。

     另外,为了去除恢复结果中容易出现的光晕效应(halo artifacts),作者提出了多尺度门限融合网络,可以有效增加网络感知野并减少光晕效应。

    输入包括四部分,原图,三种方法预处理后的图像,即:

    白平衡操作(目的是恢复出由大气光散射造成的颜色差异) 得到 Iwb

    图像对比度增强(恢复出图像的可视化效果)  得到 Ice

    gamma变换(对比度增强可能导致图像过暗,所以还对图像做gamma变换做增强)  得到 Igc

     最终的输出可以表达为如下形式,其中o代表逐元素相乘:

    C代表confidence maps for gating,是通过神经网络所获得的

    网络使用了encoder-decoder结构,这和U-net很像,但是其所有的feature大小保持一样,其同样像U-net一样使用了前后skip连接在一起的操作。卷积层为了获得更大的感受野使用了空洞卷积,每个卷积层后面加上一个矫正层,网络最后的输出是三个权重图C,网络的大致结构图如下所示:

    网络使用了三个卷积块个三个反卷积块,除了第一层和最后一层,每一层的大小都是32个3*3*32的卷积核,第一层卷积核的大小是5*5,最后一层用于confidence map 的重建。

    进一步优化

    多尺度的Refine(具有多尺度风格,以防止halo artifacts):

    通过对小尺度图像利用上述网络进行处理获得输出,然后输出进行上采样再送到同样的网络,这样做是为了学习得到更多的细节。每个级别的输入都是上一个级别输入大小的两倍,其相应的derived的预处理图像也是由上一个级别的输出图像得到的。这种级联的结构如下所示:

    损失函数

    1.对于前面的网络,对每一次的输出取MSE损失,损失函数如下:

    其中,N是金字塔级别的个数,Θ是卷积和反卷积核的权重。

    2.作者还使用了GAN网络来计算损失,添加了对抗性损失,其遵循[22]中的架构,构建了一个判别器。对抗损失定义如下:

    [22] S. Nah, T. H. Kim, and K. M. Lee. Deep multi-scale convolutional neural network for dynamic scene deblurring. In CVPR, 2017. 5

    3.最终的损失函数是:

    在进行模型训练的时候,和前面的文章相同,作者同样使用的合数据集,但是作者还在合成的图像上增加了1%的高斯噪声来增加网络的鲁棒性。

    在进行比较的时候,作者使用的指标为结构相似性(SSIM)与峰值信噪比(PSNR)。在测试的时候,作者还在公开数据集上进行了测试。

    方法在一般自然图像中表现良好,但是在非常大的雾的情况下,不能取得良好的去雾效果。

    参考链接

    1. W. Ren, L. Ma, J. Zhang, J. Pan, X. Cao, W. Liu, and M.-H. Yang. Gated fusion network for single image dehazing.arXiv preprint arXiv:1804.00213, 2018.

    2. http://tech.ifeng.com/a/20180321/44915180_0.shtml

    3. https://kevinjhuang.github.io/2018/10/15/%E5%8D%9A%E5%AE%A262/

    4. http://forum.xitek.com/forum.php?mod=viewthread&tid=1605692&page=1&ordertype=1

     

    5.Gated Context Aggregation Network for Image Dehazing and Deraining 2019 WACV

    本文利用GAN网络,实现可端到端的图像去雾,本文的重点在于解决了网格伪影(grid artifacts)的问题,该文章的方法在PSNR和SSIM的指标上,有了极大的提升,非常值得借鉴。

    本文的主要亮点如下:

    1. 提出端到端的去雾网络,不依赖于先验

    2. 采用了smooth dilated convolution 代替原有的dilated convolution,解决了原来的dilated convolution导致的grid artifacts问题

    3. 提出了一个gated fusion sub-network,融合high-level 及low-level 特征,提升复原效果

    总体框架

    三个卷积模块作为编码部分,一个反卷积和两个卷积作为解码部分在二者之间插入数个smoothed dilated resblocks。

    Smoothed Dilated Convolution(平滑空洞卷积)

    为了应对分割等任务, F. Yu[41] 等人提出空洞卷积(也叫扩张卷积),扩张卷积可以支持感受野的指数扩展而不会损失分辨率或覆盖范围。在一维情况下,给定1-D输入f,具有内核大小k的常规卷积层w的输出为:

    其中一个输出点覆盖总k个输入点,因此感受野为k。 但是对于扩张的卷积,它可以被视为“带有扩张滤波器的卷积”,可以表示为:

    但是它会所谓的网格伪影,针对这一问题,作者用了一个简单的分离卷积。

    上面的图表示的是原始的空洞卷积的工作,从图中不同颜色的块块可以看出,经过dilated rate(r)>1的空洞卷积后,输出的特征层中相邻的特征值与输入特征层是完全独立的,没有相互依赖的关系,我们可以知道,图像是具有局部相关性的,同理,特征层也应该保留这个特性。

    下面的图是经过改进的空洞卷积,在执行dilated rate>1的空洞卷积之前,做了一次核为(2r-1)的分离卷积,卷积的参数共享,经过该层卷积之后,每一个特征点都融合了周围(2r-1)大小的特征。该操作仅仅增加了(2r-1)(2r-1)大小的参数,却能有效的解决grid artifacts问题。

    Gated Fusion Sub-network(门控融合子网)

    该子网络主要是融合了不同层次的特征信息,以往的网络都是直接添加short-cut操作进行信息融合,本文的Gate fusion network 为不同层次的特征分别学习了权重,最后加权得到融合的特征层。

    损失函数

    简单的均方差损失

    参考链接

    1. Chen D , He M , Fan Q , et al. Gated Context Aggregation Network for Image Dehazing and Deraining[J]. 2018.

    2. http://www.cnblogs.com/jingyingH/p/10061286.html

    3. https://www.jianshu.com/p/6abff04c5f11

    4. https://blog.csdn.net/suixinsuiyuan33/article/details/7945106

    6.Towards Perceptual Image Dehazing by Physics-based Disentanglement and Adversarial Training 2018 AAAI

    作者认为,之前的基于先验知识的去雾,缺点在于先验知识不是在任何情况都满足的(比如说多光源,大雾),并且不是监督训练的,而基于CNN的去雾需要训练集是成对的,即同时有有雾图像与无雾图像,而一个有效的去雾模型应该能够学习无雾图像到有雾图像的映射,无需使用paired supervision。

    并且人类对于去雾后的图像应该和无雾图像的感知是一样的。基于以上观点,作者提出了Disentangled Dehazing Network,主要贡献如下:

    1. 提出一种基于解耦的新型去雾网络

    2. 收集了具有挑战性的数据集,包含800多个自然模糊图像与1000个无雾的室外场景图像

    3. 通过对合成和真实图像的数据集的广泛实验来评估感知图像去雾

    解耦网络 Disentangled Dehazing Network

    作者引入基于基于解耦与重建的物理模型,目标是将有雾图像解耦为隐藏要素,再利用隐藏要素重建图像。

    损失函数包含三部分,重建损失,对抗损失,正则化损失

    (1)在重建损失中,使用L1损失函数,从而像素级一致性和较少模糊(与L2损失相比)

    (2)为了生成both perceptually pleasing and hazefree images,作者其对中间输出J引入了多尺度生成训练,受到(Isola et al. 2017) and (Zhu et al. 2017)启发,作者使用了patch-level discriminator,并进行了改进,使用了局部鉴别器和全局鉴别器。多尺度对抗损失为:

    (3)正则化损失:在该部分,借鉴了前人的经验,使用medium transmission map的平滑性作为正则化损失。

    最终的损失函数为

    目标函数为

    恢复图像

    通过前面的分析可以得到,作者可以得到两个去雾后的图像,一个是生成器GJ直接输出,另一个是利用估计的t和A来获得的,形式如下:

    这两种方法得到的去雾图像各有优劣,其中生成器输出得到的图像倾向于生成具有更多纹理细节的图像,并且在感知上更加清晰,但是其易于受到噪声的影响并且会有undesirable artifacts,而用后种方式得到的图像更平滑,所以作者将二者进行了混合。

    7.Cycle-Dehaze: Enhanced CycleGAN for Single Image 2018 CVPRW

    这篇文章是基于《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》来做改进的,前者设计了一个循环的对抗网络学习图像风格的迁移,使用不成对的图像来训练网络。

      本文在其基础上,进行了改进,加入了循环感知一致损失(cyclic perceptual-consistency loss),对图片的特征进行监督,主要贡献如下:

    1. 通过增加循环感知一致性损失以及循环一致性损失来增强用于单图像去雾的CycleGAN 架构。

    2. 其方法既不需要模拟朦胧和地面实况图像的样本,也不需要估计大气模型参数

    3. 通过拉普拉斯金字塔upscale dehazed images

    4. 提供了一个通用模型,通过跨数据集来验证

    Cycle-Dehaze 主要由两个生成器G,F和两个判别器Dx,Dy组成。

    损失函数

    在该部分,除了cycle-gan的损失外,作者使用了cyclic perceptual-consistency损失。

    在cycle-consistency损失中,使用了VGG-16中的第2层和第5层的输出层来进行损失的计算,形式如下:

    总的损失和目标函数如下:

     

    展开全文
  • 图像去雾的目的是消除雾霾环境对图像质量的影响,增加图像的可视度,是图像处理和计算机视觉领域共同关切的前沿课题,吸引了国内外研究人员的广泛关注。其方法主要可以分为两种,一种是基于大气退化模型,利用神经...

    301d0698f7c677dbb75e8bdb454ba9c0.png

    图像去雾的目的是消除雾霾环境对图像质量的影响,增加图像的可视度,是图像处理和计算机视觉领域共同关切的前沿课题,吸引了国内外研究人员的广泛关注。

    其方法主要可以分为两种,一种是基于大气退化模型,利用神经网络对模型中的参数进行估计,早期的方法大多数是基于这种思想的;另一种是利用输入的有雾图像,直接输出得到去雾后的图像。目前最新的去雾方法更倾向于后者。

    在本部分,将对近三年具有代表性的一些基于神经网络的图像去雾方法进行列出,便于大家查找。

    【1】DehazeNet: An End-to-End System for Single Image Haze Removal 华南理工大学 16 TIP

    它是一种端到端的训练模型,利用神经网络来对大气退化模型中的t(x)进行估计。模型输入雾图,输出传输率t(x)映射图,然后通过大气退化模型来恢复无雾图像。采用深度CNN结构(4层),并提出了一种新的非线性激活函数。提高了恢复图像的质量。作者:lishuoshi1996

    【2】All-in-One Network for Dehazing and Beyond Boyi Li 2017 ICCV

    本文并没有单独估计t(x)和大气光A,而是通过轻量级的CNN直接生成清晰的图像,这种端到端的设计使得其可以嵌入到其他的模型中,比如说物体检测faster-RCNN。

    【3】Densely Connected Pyramid Dehazing Network Rutgers University 2018 CVPR

    作者的总体思路依旧是按照大气退化模型来进行的,作者指出,以往的方法较为侧重对传输图t(x)的估计,对于大气散射A,往往采用经验公式去估计,没有对A足够的重视,所以作者对二者均进行了估计。

    【4】Gated Fusion Network for Single Image Dehazing 2018 CVPR

    本文提出一种基于门限融合网络的雾霾图像的复原方法。该门限融合网络由一个编码解码网络构成。其中,编码网络用于对雾霾图像本身及其多种变换图像进行特征编码,解码网络则用于估计这些变换图像对应的权重。

    具体而言,对一张雾霾图像,作者对其进行多种变换,包括图像白平衡、对比度增强和伽马矫正等操作提取图像内部的不同颜色或对比度特征,然后将得到的变换图像输入到门限融合卷积神经网络中,利用神经网络对雾霾图像的每个变换图像估计一个权重矩阵,再利用权重矩阵对所有的变换图像进行融合获得最终的去雾结果图。

    另外,为了去除恢复结果中容易出现的光晕效应(halo artifacts),作者提出了多尺度门限融合网络,可以有效增加网络感知野并减少光晕效应。

    【5】Gated Context Aggregation Network for Image Dehazing and Deraining 2019 WACV

    本文利用GAN网络,实现可端到端的图像去雾,本文的重点在于解决了网格伪影(grid artifacts)的问题,该文章的方法在PSNR和SSIM的指标上,有了极大的提升,非常值得借鉴。

    【6】Towards Perceptual Image Dehazing by Physics-based Disentanglement and Adversarial Training 2018 AAAI

    作者认为,之前的基于先验知识的去雾,缺点在于先验知识不是在任何情况都满足的(比如说多光源,大雾),并且不是监督训练的,而基于CNN的去雾需要训练集是成对的,即同时有有雾图像与无雾图像,而一个有效的去雾模型应该能够学习无雾图像到有雾图像的映射,无需使用paired supervision。

    【7】Cycle-Dehaze: Enhanced CycleGAN for Single Image 2018 CVPRW

    这篇文章是基于《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》来做改进的,前者设计了一个循环的对抗网络学习图像风格的迁移,使用不成对的图像来训练网络。

    【8】Single Image Haze Removal using a Generative Adversarial Network

    【9】Perceptually Optimized Generative Adversarial Network for Single Image Dehazing

    本文同样采用端到端学习的方式,直接学习hazy image到haze-free image的映射。

    通过GAN模型的生成对抗训练网络。在Discriminator中使用了一种adaptive loss function。

    提出一种利用guilded filtering进行halo artifacts removal的后处理方法

    【10】Physics-Based Generative Adversarial Models for Image Restoration and Beyond

    【11】Towards Perceptual Image Dehazing by Physics-Based Disentanglement and Adversarial Training

    【12】Single Image Dehazing via Conditional Generative Adversarial Network

    【13】Multi-Scale Single Image Dehazing Using Perceptual Pyramid Deep Network

    若想深入了解以上去雾算法,可以下载其具体文献进行研学,若有代下载的需要可以邮箱联系我cxtalk@outlook.com。

    展开全文
  • 图像去雾算法

    2019-02-13 21:49:20
    何凯明经典图像去雾算法:https://www.cnblogs.com/molakejin/p/5708883.html 暗通道 卷积神经网络网络去雾DehazeNet:https://blog.csdn.net/Julialove102123/article/details/80199276 大气散射模型 去雾总结...
  • 图像去雾算法剖析.ppt

    2020-07-11 05:11:23
    西农林科大学 NORTHWEST A&F UNIVER SIT 毕业设计终期答辩 (图像去雾算法分析 西农林科大学 目录 NORTHWEST A&F UNIVER SIT 研究意义 研究思路 研究目标 研究过程 匚研究结果 A. 研究总结 西农林科大学 NORTHWEST A&...
  • 一年去雾算法研究的总结

    千次阅读 2014-01-12 13:35:29
    2013年曾花了不少时间研究图像去雾技术,在新年年初对几种方法做一个综合性的总结吧,其中我最看好的还是何凯明的暗通道方案,在速度和效果上都能达到相当的高度。
  • (图片超了,截图了) 图2,图3是去雾算法A的效果。过曝且算法中没有相关调节变量,白天图片晚上图片各一张大家参考一下。效果很差对吧!处理时间1秒。本人后续会再尝试修改完善一下。 图四是去雾算法B的效果。经过...
  • 总结图像效果差的原因后,利用去雾算法获得了绝大多数场景适用的处理效果,CPU单帧处理时间为160ms(3*1920*1080)。 种种原因,于8.15开始成为一只社畜,找的工作呢是关于图像处理的。入职第一天,我的组长给了我...
  • 前一阶段做项目用到了 何凯明的这篇文章中的算法,闲来无事,总结一下。   其实,对于图像去雾,去模糊,去噪声问题,数学模型都非常接近,而且非常简单,由于数学模型非常简单,如何有效的估计其中的参数...
  • 图像去雾最好的算法原型最好的莫过于何凯明博士的论文--好好阅读,必有灵感 ...暗通道去雾算法,在其他博客都有详细的介绍,在这里我也是借鉴其他各位总结的东西,写点内容。  一、实验原理  ...
  • 前一阶段做项目用到了 何凯明的这篇文章中的算法,闲来无事,总结一下。   其实,对于图像去雾,去模糊,去噪声问题,数学模型都非常接近,而且非常简单,由于数学模型非常简单,如何有效的估计其中的参数就是...
  • 当然去雾方面的经典论文是何凯明博士的《Single Image Haze Removal Using Dark Channel Prior》,我这里讲的论文主要是自己平时在看的一些文献,看的过程中进行总结,一方面是给自己看论文留下一点可参考的东西,另...
  • python图像去雾总结

    千次阅读 2020-05-10 15:24:24
    本人qq号:226607573,欢迎...何凯明博士–暗通道去雾算法 原理:暗通道处理是一个假设, 在绝大多数非天空的局部区域里,某一些像素总会有至少一个颜色通道有很低的值。换言之,该区域光强度的最小值是个很小的数。 **
  • 本人qq号:226607573,欢迎互相讨论的伙伴们毕设期间对python图像去雾的学习与总结近年来,雾霾...直方图均衡化4.Retinex何凯明博士–暗通道去雾算法原理:暗通道处理是一个假设, 在绝大多数非天空的局部区域里...
  • 图像去雾经典算法及代码链接

    千次阅读 2018-04-01 11:12:05
    S.G. Narasimhan and S.K. Nayar, 多幅图像... Ana Belén Petro总结了NASA的Retinex理论,源代码,不过不是matlab版本的。Kopf,Deep Photo: Model-Based Photograph Enhancement and Viewing,3D场景去雾,没...
  • 去雾化算法总结[转]

    2019-11-11 18:26:22
    从最开始的Crimm Imageshop中最简单的去雾功能开始,到前不久为止研究的诸多去雾算法,再到近日和一些朋友的关于去雾经验的交流,感觉自己对这个方面的研究已经止步了,现对这些算法做个简单的总结。 本博客中共给...
  • DehazeZoo (Single Image vs. Video Based) [转载]... Xiang Chen, Yufeng Li, Yufeng Huang 1 Description DehazeZoo: A survey on haze removal from video and single image.... .
  • 关于去雾

    2019-11-13 11:05:21
    去雾化算法总结 下内容参考 一个大婶的博客:https://www.cnblogs.com/Imageshop/p/3515871.html 从最开始的Crimm Imageshop中最简单的去雾功能开始,到前不久为止研究的诸多去雾算法,再到近日和一些朋友的关于...
  • 这位博主将自己的研究生研究去雾算法的过程和难点说出来分享,这里我分享出来大家对去雾模型感兴趣的可以看看,收获会很大的。 https://blog.csdn.net/u013095718/article/details/79452891 ...
  • 图像去雾研究技术进展

    千次阅读 2012-02-08 18:45:59
    将现有的方法分为基于物理模型和非物理模型两类,分别详细地阐述了这两类方法,分析了它们各自的优势和不足,并总结算法性能评价的无参考客观质量评测准则。最后,指出了该技术的研究难点和发展趋势。 好久没
  • 主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测; 二、现代图像算法工程师: 涉及模式识别,主要表现的经验为Adaboost...
  • 在计算机视觉方向做出了很多经典的研究工作,例如:物体检测算法(Faster-RCNN 系列),深度残差网络 (Residual Network),经典去雾算法( Single Image Haze Removal using Dark Channel Prior)等。2016年6月底,...
  • 2009年Tarel提出的去雾算法,该算法最重要的特点就是快速。下面是在本人看过论文之后的简单总结
  • 上周主要研究了何凯明的暗原色去雾算法总结如下 可以先看这篇文章了解暗原色的原理及由来 http://blog.sina.com.cn/s/blog_4caedc7a0100f50e.html  算法分为四步: 1,求出雾图的dark ch
  • 总结一些机器视觉库

    2016-11-17 21:50:00
    主要涉及图形处理,包括形态学、图像质量、相机成像之3A算法去雾处理、颜色空间转换、滤镜等,主要在安防公司或者机器视觉领域,包括缺陷检测; 二、现代图像算法工程师: 涉及模式识别,主要表现的经验为...
  • 海思参数调试个人经验总结

    千次阅读 2019-02-28 18:01:39
    海思参数调试个人经验总结 1、调节亮度: 晚上室内亮度不够:曝光时间、调节增益、界面上调节增益,对比度、锐度、降噪等调大; 图像灰蒙蒙不清晰,首先调节焦距,然后调节去雾AutoStrength,调大; AE 算法的...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

去雾算法总结