昇腾社区首页
中文
注册
昇腾社区
昇腾AI市场
主页
解决方案
原生大模型
软件服务
ModelZoo
应用案例
Powered by Ascend
文档HOT
支持
应用案例
图像去雾
图像去雾
图像处理PythonAscendCL

415次浏览

暂无评分
我要评分
单幅图像去雾在军事活动、自动驾驶、天文研究等领域有较大应用价值,在有雾的天气情况下,由于大气中的水汽和固体颗粒物的存在,使得采集到的图像在色彩、饱和度和对比度等方面与场景原有信息相比出现偏差,严重影响了图像质量。因此设计出合适的图像去雾算法具有重要的实用价值。

背景

单幅图像去雾在军事活动、自动驾驶、天文研究等领域有较大应用价值,如下图所示,在有雾的天气情况下,由于大气中的水汽和固体颗粒物的存在,使得采集到的图像在色彩、饱和度和对比度等方面与场景原有信息相比出现偏差,严重影响了图像质量。因此设计出合适的图像去雾算法具有重要的实用价值。


雾天降质图像

概述

该项目在华为Atlas 200开发平台(Atlas 200 DK 开发者套件(型号:3000),以下简称Atlas 200 DK)上实现单幅图像去雾的系统。该系统将用户在客户端选取的任意有雾图像作为输入,运行部署在Atlas 200 DK上的去雾模型,实时返回去雾结果作为输出并显示给用户。

原理

- 判整个系统的体系结构可以划分为三部分,分别为主机端的训练层、Atlas 200 DK端的推断层以及主机端的展示层,如图5-5所示。各层侧重点各不相同。

- 训练层运行在安装有tensorflow框架的服务器,首先要完成训练数据的读取,即完成有雾图像和无雾图像的读取;其次对训练数据进行随机翻转和随机裁剪等数据增广操作,并将图像归一化至[-1,1]范围内;接下来定义去雾网络的生成器、判别器和损失函数,获得全局可更新参数并初始化全局参数;之后不断更新去雾模型中的生成器和判别器中的所有参数,记录损失函数在训练过程中的下降情况。

- 推断层运行于Atlas 200 DK环境,能够支持卷积神经网络的加速。该阶段主要包括3个步骤。第一步是获取输入的有雾图像并完成图像预处理操作。第二步是调用训练阶段训练好的去雾模型,先通过生成器编码阶段提取图像特征,然后通过生成器转换器阶段将图像从有雾域转换至无雾域,最后通过生成器编码阶段还原特征。第三步是生成无雾图像,保存并显示去雾后的无雾图像。

- 展示层运行于客户端应用程序,能够完成图像选择并实时显示推断层的计算结果。

- 各层之间存在单向依赖关系。推断层需要的网络模型由训练层提供,并根据需要进行必要的格式转换或加速重构。相应的,展示层要显示的元数据需要由推断层计算得到。

技术

Atlas 200 DK 开发者套件(型号:3000)、深度学习服务器。

硬件

- 华为基于Ascend 310 AI处理器的MindSpore DDK(Device Developer Kit)

- OpenCV计算机视觉库,Tensorflow深度学习框架,Tensorlayer扩展,PyTorch框架,ImageAug图像增广

- 基于GAN的图像去雾模型模型

优化点

单张图像去雾网络目前使用的是Resnet类似网络,为了速度进行了两次降采样后升采样,为了提高性能在接下来优化中可以考虑引入DenseNet等结构,同时网络GAN部分使用了基础的GAN,可以考虑用WGAN或者谱归一化提高训练稳定性。网络实现了一个较完整的Pipeline,提供了训练到部署代码和一个简单的CS架构演示程序,该代码也可以用于HDR,图像超分辨率等任务中。

效果展示

关于昇腾

昇腾计算产业概述

新闻与活动

新闻资讯昇腾活动

交流与资讯

昇腾论坛技术干货

支持与服务

文档技术工单

开源社区

昇思社区昇腾开放资源
关注我们
友情链接
华为官网华为计算鲲鹏社区华为云启智社区
版权所有 © 2021-2025华为技术有限公司 保留一切权利粤A2-20044005号
粤公网安备 44030702005057号
法律声明隐私政策Cookie协议用户协议联系我们