深度学习最近在图像处理领域经常有革命性的成果出来,继SRCNN之后,在图像处理领域应该当属HDRNet了,CVPR2017比较优秀的文章。
- 源码
https://github.com/google/hdrnet
https://github.com/mgharbi/hdrnet_legacy
- 论文 deep_bilateral_learning_for_real_time_image_enhancement
https://groups.csail.mit.edu/graphics/hdrnet/
大家打不开的话,可以选择境内网站资源
https://download.csdn.net/download/szfhy/10439266
- demo
下载完code之后,编译:
cd hdrnet
make #如果host上装有多个python版本,需要修改makefile,指定python版本
报如下错误:笔者tensorflow-gpu是1.4的版本,不过这个应该是兼容的吧
/usr/local/lib/python2.7/dist-packages/tensorflow/include/tensorflow/core/platform/default/mutex.h:27:22: fatal error: nsync_cv.h: No such file or directory
有说在mutex.h中添加:
#include "/usr/local/lib/python2.7/dist-packages/tensorflow/include/external/nsync/public/nsync_cv.h"
#include "/usr/local/lib/python2.7/dist-packages/tensorflow/include/external/nsync/public/nsync_mu.h"
不过问题还是没有解决。难道非要将tensorflow-gpu版本降低到1.1吗?
经过检查,原来的code还需要注释掉
//#include "nsync_cv.h"
//#include "nsync_mu.h"
make完成之后,hdrnet目录下会生成build目录.
测试:
执行py.test test命令时,笔者host上安装有多个版本的python,默认使用的不时python2.7, 暂时还不知道如何做?
训练:
修改hdrnet/bin/train.py 第一行,将python修改为python2.7
python2.7 train.py pretrained_models/hdrp sample_data/identity/filelist.txt
训练的过程不会自己停下来,需要自己定义,loss小于多少就定下来,epoch达到多少就停下来。
tensorboard --logdir pretrained_models/hdrp
按照tensorboard提示的地址,就可以访问训练的中间过程了,笔者地址为:
http://dl:6006
笔者训练过程:
![](https://i-blog.csdnimg.cn/blog_migrate/6a9460b5fb35aa5bc8eb6aef8b81bd6f.png)
推理:
修改hdrnet/bin/run.py 第一行,将python修改为python2.7
python2.7
hdrnet/bin/run.py pretrained_models/hdrp sample_data/identity/input/input.png sample_data/identity/output
执行的过程中会报错
![](https://i-blog.csdnimg.cn/blog_migrate/bf9a70b99e83582b81c9ad14246dbd9b.jpeg)
保存图片时不用skimage了,修改为scipy.misc.imsave(output_path, out_)
这样就好了。
MIT HDR训练图像数据集,有5000组测试图片,每组图片1张原始图像,5张经过专业摄影师HDR tune之后的图像,差不多50G的大小。
https://data.csail.mit.edu/graphics/fivek/
HDRNet的视频介绍
https://www.csail.mit.edu/news/automatic-image-retouching-your-phone