Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来! | 附代码

在过去的几十年中,单图像去雾作为基本的低级视觉任务已引起了计算机视觉社区和人工智能公司的越来越多的关注。其中最为典型的便是北大&北航提出FFA-Net去雾新网络和何凯明博士提出的暗通道去雾算法,现所有源码已开源。其论文链接: 

https://arxiv.org/abs/1911.07559 。
加python学习qq群:775690737 送python零基础入门学习资料+99个源码

而今天我们就将针对这两个项目进行实践。其中得到的去雾效果如下:

 

实验前的准备


首先我们使用的python版本是3.6.5所用到的模块如下:

Pytorch模块用来模型训练和网络层建立;其底层和Torch框架一样,但是使用Python重新写了很多内容,不仅更加灵活,支持动态图,而且提供了Python接口。不仅能够实现强大的GPU加速,同时还支持动态神经网络。

numpy模块用来进行数值运算处理矩阵运算;

OpenCV用来读取图片和图像处理;

os模块用来读取数据集等本地文件操作。 

FFA去雾算法

其代码结构如下图可见:

FFA-Net体系结构包含三个关键组件:

1.考虑到不同的通道特征包含完全不同的加权信息并且不同图像像素上的雾度分布不均匀,一种新颖的特征注意(FA)模块将通道注意与像素注意机制结合在一起。FA不平等地对待不同的特征和像素,这在处理不同类型的信息时提供了额外的灵活性,从而扩展了CNN的表示能力。

2.基本的块结构包括本地残差学习和功能注意,本地残差学习允许较不重要的信息(例如薄雾区域或低频)通过多个本地残差连接被绕开,让主网络体系结构专注于更有效的信息。

3.基于注意力的不同级别特征融合(FFA)结构,可从特征注意(FA)模块中自适应学习特征权重,从而为重要特征赋予更多权重。这种结构还可以保留浅层信息,并将其传递到深层。

实验结果表明,提出的FFANet在数量和质量上都大大超过了现有的单图像去雾方法,从而将SOTS室内测试数据集上最佳的PSNR度量从30.23db提高到35.77db。

其中训练FFA模型的部分代码如下:

使用

python main.py --net='ffa' --crop --crop_size=240 --blocks=19--gps=3 --bs=2 --lr=0.0001 --trainset='its_train' --testset='its_test' --steps=500000--eval_step=5000

命令实现模型的训练功能。 

使用

python test.py --task='its or ots' --test_imgs='test_imgs'

来测试模型效果: 

最终得到效果如下: 

暗通道去雾算法搭建


何恺明的暗通道先验(dark channel prior)去雾算法是CV界去雾领域很有名的算法,关于该算法的论文"Single Image Haze Removal Using DarkChannel Prior"一举获得2009年CVPR最佳论文。作者统计了大量的无雾图像,发现一条规律:每一幅图像的每一个像素的RGB三个颜色通道中,总有一个通道的灰度值很低。基于这个几乎可以视作是定

  • 1
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python图像去可以使用不同的算法来实现。其中一个常用的方法是暗通道先验去雾算法,由何恺明提出。该算法基于一个观察结果,即无图像的每个像素的RGB三个颜色通道中至少有一个通道的灰度值很低。根据这个观察结果,算法通过计算图像的暗通道来估计的浓度,并通过逆向模型来去除气。 另外,还可以使用FFA(Fast Foggy Algorithm)去雾算法。该算法利用PyTorch模块进行模型训练和网络层建立,使用numpy模块进行数值运算和矩阵运算,使用OpenCV模块读取图片和图像处理,使用os模块进行本地文件操作。FFA去雾算法代码结构可以参考相关资料。 除了上述方法,还有其他的图像去方法可以参考。这些方法可以根据具体的需求和场景选择使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python图像去](https://blog.csdn.net/qq_42279468/article/details/108980006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [OpenCV—Python 暗通道图像去雾算法](https://blog.csdn.net/wsp_1138886114/article/details/95012769)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值