一步一步教你跑DCPDN深度学习去雾网络
论文:Densely Connected Pyramid Dehazing Network(CVPR2018)
论文就不讲解了,网上有,步骤开始:
1、环境安装:
Ubuntu16.0.4平台运行
Python2.7环境
Pytorch>=0.3.1框架
CUDA9.0+CUDNN7
训练网络需要使用GPU,显存和运行内存、还有系统交换区swap不要太抠,不然容易程序无法进行而报错。还有系统共享内存也不能不足,我的电脑勉强用100个训练数据训练,迭代了40000次。
DCPDN源码下载
建议安装Anaconda3创建Python环境,便于管理,运行程序时,如果缺什么包直接使用anaconda集成安装到环境里即可。
DCPDN的预训练模型可直接用于测试,测试数据、模型、训练数据数都很多,数据均为或者均要转化为h5文件来训练和测试,需要翻墙下载。需要仔细阅读README.md文件。
预训练模型、训练数据、测试数据等已经上传到百度网盘中,提取码为:pv5f,供大家参考,根据自己需要去下载,训练数据也不用全部下载使用。
2、项目文件结构(部分重点介绍)
项目下载解压后目录如下:
项目添加数据后的根目录如下:
checkpoints_new:利用合成图片生成无雾图片和训练生成的新模型的文件夹。
cvprw_test_resize_crop:存储自己的实际有雾图片。
demo_model:存储预训练模型,作者提供了netG_epoch_8.pth,需要自行下载,百度云里已经有了。
facades:最重要,也是最大的文件夹,内容如下图。其中,nat_new4文件夹存储用于测试的实际图片h5数据,test_cvpr文件夹存储你的实际有雾图片转换的h5文件,用于去雾。train512为用于训练的h5文件,共有4000个,根据你自己系统能力,从头按顺序连续选取部分数据,作者使用0-1000来训练网络,会迭代400*1000=400000次。val512存储400个用于对抗鉴别器训练的h5文件。
result_cvpr18:存储去雾结果的文件夹。
create_train.py:所有合成的,用于训练和测试的数据样本,都在HDF5文件中进行了扫描。您还可以使用“create_train.py”生成样本数据。
dehaze22.py:去雾网络模型框架。
demo.py:运行作者提供的预训练模型,anaconda进入创建的环境,cd进入项目根目录“cd 你的路径/DCPDN”,然后运行带参数的命令:(运行前确保对应目录下的文件下载齐全)
python demo.py --dataroot ./facades/nat_new4 --valDataroot ./facades/nat_new4 --netG ./demo_model/netG_epoch_8.pth
generate_testsample.py:用于将你自己的有雾图片生成h5文件,用于去雾。若要修改图片读取和存储方式,请修改代码中的
73行“train_list_per=glob.glob('./cvprw_test_resize_crop/*jpg')”和90行”directory='./facades/test_cvpr/'“。由于网络需要,图片会被resize为512*512的大小,生成去雾图片后请自行resize回来,代码百度云已提供。
train.py:训练网络使用,使用以下命令:(实际是微调作者提供的预训练模型,并保存下来)
python train.py --dataroot ./facades/train512 --valDataroot ./facades/test512 --exp ./checkpoints_new --netG ./demo_model/netG_epoch_8.pth
使用自己的有雾图片去雾:
首先使用 generate_testsample.py将自己的图片生成为h5文件,然后使用以下命令去雾:
python demo.py --dataroot ./facades/test_cvpr --valDataroot ./facades/test_cvpr --netG ./checkpoints_new/netG_epoch_9.pth
./facades/test_cvpr为你的实际有雾图片生成的h5文件所在的根目录,./checkpoints_new/netG_epoch_9.pth为生成的模型的路径。训练中途会保存很多模型,选择你觉得效果好的模型使用即可。
3、源码适配
作者原始源码部分需要修改,如下:(如果下载百度云的则不需要,已修改过了)
generate_testsample.py:
去掉99行的注释,防止自己输入的图片不是规定尺寸;
第一个包numpy不需要as np;
create_train.py:
第119行reshap的参数A改为a;
引用numpy包不需要as np。
我的操作到此结束,写的可能不是很清楚,有问题请随时留言,如果哪里理解有误还望指出。
4、致谢
感谢作者的贡献,感谢大家的支持!
一步一步教你跑DCPDN深度学习去雾网络相关推荐
- 教你如何挑选深度学习GPU
教你如何挑选深度学习GPU 即将进入 2018 年,随着硬件的更新换代,越来越多的机器学习从业者又开始面临选择 GPU 的难题.正如我们所知,机器学习的成功与否很大程度上取决于硬件的承载能力.在今年 ...
- 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...
前言 通过TensorFlow图像处理,全面掌握深度学习模型及应用. 全面深入讲解反馈神经网络和卷积神经网络理论体系. 结合深度学习实际案例的实现,掌握TensorFlow程序设计方法和技巧. 着重深 ...
- 教你使用百度深度学习框架PaddlePaddle完成波士顿房价预测(新手向)
首先,本文是一篇纯新手向文章,我自己也只能算是入门,有说错的地方欢迎大家批评讨论 目录 一.人工智能.机器学习.深度学习 二.PaddlePaddle(飞桨) 三.波士顿房价预测模型 数据处理 模型设 ...
- 步步为营!高手教你如何有效使用深度学习解决实际问题
来自法国 Capgemini Invent 公司的高级数据科学家 Ahmed BESBES 三个月前参加了一个其公司内部的比赛:使用机器学习方法帮助海洋科学家更好的识别鲸鱼,根据鲸尾页突的外观作为主要 ...
- AI 三大教父齐聚深度学习峰会,讨论尖端研究进展
来源:36氪 概要:近日,深度学习峰会正在加拿大蒙特利尔举行,有史以来第一次3位AI教父:Yoshua Bengio.Yann LeCun以及 Geoffrey Hinton聚在了一起出席RE•WOR ...
- 看不懂花书?博士教你如何深入深度学习,从编程基础到完整的项目实战
转眼2020年已过去三分之一,大家都知道今年就业形势不乐观,不过即便如此,现在依然是AI招聘的热门季.疫情过后,AI行业注定会迎来一波大爆发. 近几年,各大企业也开始越来越重视人工智能方向的发展,比如 ...
- 手把手教你搭建机器学习+深度学习AI模型
说起现在搞什么最挣钱,10 人里 11 个都要回答人工智能! 早在几年前,华为就开出百万年薪招聘 AI 专家,当是很多人认为噱头大于实际价值.但如果今天还有谁质疑人工智能的前景,那显然已经和时代脱轨了 ...
- 忽悠神经网络指南:教你如何把深度学习模型骗得七荤八素
知己知彼,无论你是想成为黑客(最好不要!)或防范未来黑客的入侵,都有必要来了解一下如何骗过由海量数据训练出来的深度学习模型. 只要有程序员还在编程,黑客们就会不遗余力地找寻利用这些程序的方法.恶意黑客 ...
- 手把手教你搭建pytorch深度学习网络
总有人在后台问我,如今 TensorFlow 和 PyTorch 两个深度学习框架,哪个更流行? 就这么说吧,今年面试的实习生,问到常用的深度学习框架时,他们清一色的选择了「PyTorch」. 这并不 ...
最新文章
- 使用Leangoo共享脑图/思维导图做多级需求管理
- 9号团队-团队任务4:每日立会(2018-11-26,2018-11-27)
- Android中脱离WebView使用WebSocket实现群聊和推送功能
- (加强版)大数加减乘除,一文彻底搞定
- 《Spring》(一)---- IOC基本概念
- figma设计_在Figma中使用隔片移交设计
- php重载,PHP 重载
- 计算机一级怎么描述,计算机一级「关于RGB正确的描述的是」相关单选题
- 关于 CFileDialog 对话框多选功能的一个问题
- 最近两周的前后端交互
- StretchDIBits显示8位图问题
- 计算机视觉相关科幻片,计算机视觉特效镜头对电影风格的影响
- 我读《非暴力沟通》- 马歇尔 *卢森堡 - 区分观察和评论
- 什么是Linux内核?它有什么功能?
- 物理学原理与工程应用期末复习之公式总结
- 【最新损失函数SIOU全文翻译】超越YOLO-V5等先进模型提高了+3.6%
- 小程序使用本地图片报错问题 Failed to load local image resource
- 解决mysql sum求和返回null问题或IFNULL应用
- win10根据通知栏图标找对应程序
- 多人在线编辑文档 开发_太方便了,支持多人同时编辑,电脑和手机端实时同步保存...
热门文章
- 北京2008年第29届奥运会
- iOS - 直播流程,视频推流,视频拉流,简介,SMTP、RTMP、HLS、 PLPlayerKit
- 情人节活动策划PPT模板
- prometheus监控postgresql
- S3C2440移植uboot之新建单板_时钟_SDRAM_串口
- 开源家庭影院 Kodi 19.1 发布,如何在Ubuntu 21.04中安装
- 信号完整性-10集肤效应
- 孙家启c语言程序设计教程课后答案,新编C语言程序设计教程(普通高等教育“十二五”规划教材)...
- java画个动漫人物_动漫人物绘画教程
- 2022-08-29 AndroidR 修改默认usb连接模式为MTP(Media Transfer Protocol)),UsbDeviceManager.java里面处理OTG口usb设备拔插侦听