【深度学习模型训练】使用DPED DPE模型进行图片增强

关于本实验的参考资料如下:
DPED论文:http://people.ee.ethz.ch/~ihnatova/
DPED github:https://github.com/aiff22/DPED
DPE论文:https://www.cmlab.csie.ntu.edu.tw/project/Deep-Photo-Enhancer/CVPR-2018-DPE.pdf
DPE github:https://github.com/nothinglo/Deep-Photo-Enhancer

本实验使用以上两个模型及论文为研究基础,在复现论文结果的基础上对其进行部分改进。这里以DPE的讲解为主,实验主要使用DPE的无监督训练模型增强图片。尽量不要使用DPED DPE等图像增强模型做分辨率重建的任务,效果非常不好还耗时。分辨率重建用强分辨率模型。

使用DPED模型进行图片增强

参考:https://github.com/aiff22/DPED

数据集

  • 来源
    DSLR-IPHONE——DPED论文数据集(下载地址见DPED github)
    MIT5K——DPE监督训练数据集(下载地址见DPE github)
  • 使用自己的数据集进行训练注意:
    1)DPED模型为监督训练模型,若input与label不对齐,先用transfer.py进行对齐处理再投入训练;
    2)DPED训练入口为100*100 patches,若尺寸不对应,可修改模型结构,推荐使用cut.py将原图crop成patches后投入训练;
python3 transfer.py
python3 cut.py
  • 训练先后采用了DSLR MIT5K数据集,其中DSLR使用iphone文件夹下数据,MIT5K使用input 文件夹下数据为input,lable_C 文件夹下数据为label
  • 若使用视频,事先需要将视频文件转为图片,提取帧
#提取帧
for filename in *.y4m; do ffmpeg -i $filename -vsync 0 -q:v 2  $filename%3d.bmp -y  ;done
#合并帧
for filename in *;ffmpeg -i $filename%3d.bmp  -pix_fmt yuv420p  -vsync 0 -crf 10 $filename -y ; done 

训练部分

按照GITHUB上的步骤,下载预训练的 VGG-19模型放入vgg_pretrained文件夹下,下载DPED 数据集解压放入 dped文件夹下。若为MIT5K数据,请先进行数据的对齐和裁剪并按照DPED 数据集修改文件名称。以下介绍训练使用的文件夹:

  • \dped\iphone\training_data iphone为训练的input canon为训练的label
  • \dped\iphone\test_data\patches iphone为与训练同步测试的input canon为label

下面开始训练的步骤:
1.修改配置文件 utils.py
process_command_args()中的参数值及文件地址
2.开始训练

python train_model.py model=iphone   w_color=0.7

3.训练结果在models文件夹下产生

测试部分

以下介绍测试使用的文件夹:

  • \dped\iphone\test_data\full_size_test_images 为单独测试用的全部测试数据
  • \visual_resluts 为测试的输出结果
    下面开始训练的步骤:
    1.修改配置文件 utils.py
    process_test_model_args get_resolutions()中的dped_dir 地址
    get_resolutions()中的res_sizes[“iphone”]值,此值为测试图像最终输出大小
    2.开始测试——以使用29000迭代的模型为例
python test_model.py model=iphone test_subset=full iteration=29000 resolution=orig use_gpu=true

使用DPE模型进行图片增强

参考:https://github.com/nothinglo/Deep-Photo-Enhancer

监督学习

数据集

MIT5K——DPE监督训练数据集(下载地址见DPE github)

训练部分

以下介绍训练使用的文件夹:
\DPE\dataset\LPGAN input为训练的input label为训练的label test为同步测试的图片文件夹
\DPE\dataset\LPGAN train_input.txt train_label.txt为训练图片索引,test.txt为与训练同步测试的图片索引
下面开始训练的步骤:
1.按照需求修改配置文件 DATA.py
FLAGS[‘num_exp’]为最终保存结果的文件夹名称
FLAGS[‘data_train_batch_size’]为图像批训练的数量大小,可为5
FLAGS[‘process_write_test_img_count’]为测试图片的数目
FLAGS[‘process_max_epoch’]为训练的迭代次数
FLAGS[‘path_data’] FLAGS[‘path_result_root’]为数据及存储的目录
FLAGS[‘data_input_ext’]为图片后缀
2.开始训练
使用DPE下的TF.py训练模型

python3 TF.py

3.训练的结果保存在FLAGS[‘path_result_root’]中,再次训练时记得删除缓存文件,修改FLAGS[‘num_exp’],防止原始结果被覆盖

测试部分

以下介绍测试使用的文件夹:
\DPE\test 为单独测试图片的代码
\DPE\dataset\LPGAN test为单独测试的图片文件夹
\DPE\dataset\LPGAN test.txt为单独测试的图片索引
test test.txt为与训练共用的图片文件夹和索引,根据需要修改
下面开始测试的步骤:
1.按需求修改 \DPE\test\DATA.py
FLAGS[‘num_exp’]为生成测试结果的文件夹名称
FLAGS[‘load_previous_exp’] 为测试的目标模型的文件夹名称
FLAGS[‘load_previous_epoch’]为测试的目标模型的迭代次数
FLAGS[‘process_write_test_img_count’]为测试的图片数目
FLAGS[‘process_max_epoch’] = 0 表明不训练,只进行测试
2.开始测试

#\DPE\test下的 TF.py
python3 TF.py

3.测试的结果保存在FLAGS[‘path_result_root’]的test_img文件夹下

有监督学习可用的数据集较少,效果大多是提高亮度,在对比度,饱和度上面的提升要比无监督学习逊色不少,强烈建议使用无监督学习进行图像增强

无监督学习

数据集

MIT5K(input)—HDR(label)
来源:https://www.flickr.com/search/?text=HDR
前后更换过三、四次数据集,HDR数据集的增强效果最好,故说明以此为例。
数据集注意:
1.避免收集色调偏蓝的图片;例如被处理偏蓝色调的冰川,雪山,湖泊等,防止白色偏蓝;
2.因测试图片多为人像,可收集部分人像图片,避免人脸色调偏黄,控制与肤色相近的对比度的调整;
3.最后数据集的构成:1/8食物、1/8动物、2/8人像、4/8风景,共871张,851张用于训练,20张用于同步测试。
数据说明:
【深度学习模型训练】使用DPED DPE模型进行图片增强_第1张图片
图像色彩明艳,整体细节清晰,高对比度,高饱和度,亮度较广,适合用来作为参照训练数据。

训练部分

与监督部分雷同
以下介绍训练使用的文件夹:
\UDPE\dataset\LPGAN input为训练的input label为训练的label test为同步测试的图片文件夹
\UDPE\dataset\LPGAN train_input.txt train_label.txt为训练图片索引,test.txt为与训练同步测试的图片索引
下面开始训练的步骤:
1.按照需求修改配置文件 DATA.py
FLAGS[‘num_exp’]为最终保存结果的文件夹名称
FLAGS[‘data_train_batch_size’]为图像批训练的数量大小 一般为2,3
FLAGS[‘process_write_test_img_count’]为测试图片的数目
FLAGS[‘process_max_epoch’]为训练的迭代次数
FLAGS[‘path_data’] FLAGS[‘path_result_root’]为数据及存储的目录
FLAGS[‘data_input_ext’]为图片后缀
2.开始训练
使用UDPE下的TF.py训练模型

python3 TF.py

3.训练的结果保存在FLAGS[‘path_result_root’]中,再次训练时记得删除缓存文件,修改FLAGS[‘num_exp’],防止原始结果被覆盖

测试部分

以下介绍测试使用的文件夹:
\UDPE\dataset\LPGAN test为单独测试的图片文件夹 testtest.txt为单独测试的图片索引
下面开始测试的步骤:
1.将LPGAN_exp_G3_999文件夹下的所有文件复制到FLAGS[‘path_result_root’]中,保证python文件与生成的model文件夹同目录
2.按需求修改复制到目标文件夹下的 DATA.py
FLAGS[‘num_exp’]为FLAGS[‘path_result_root’]中的数字部分
FLAGS[‘num_epoch’]为用来测试的模型,以迭代次数指定
3.运行同目录下的 rename_model.py ,生成指定的new.ckpt

python3 rename_model.py

4.在\UDPE下创建result文件夹,运行 FLAGS[‘path_result_root’]下TF.py,进行测试

cd UDPE
mkdir result
# FLAGS['path_result_root']下的TF.py
python3 TF.py

3.测试的结果保存在\UDPE\result下
测试效果如下:
1)在欠曝条件下(左为增强后,右为原图,以下相同)
【深度学习模型训练】使用DPED DPE模型进行图片增强_第2张图片【深度学习模型训练】使用DPED DPE模型进行图片增强_第3张图片

2)在过曝条件下(上为增强后,下为原图,以下相同)
【深度学习模型训练】使用DPED DPE模型进行图片增强_第4张图片【深度学习模型训练】使用DPED DPE模型进行图片增强_第5张图片
3)在物件上
【深度学习模型训练】使用DPED DPE模型进行图片增强_第6张图片【深度学习模型训练】使用DPED DPE模型进行图片增强_第7张图片
4)在人像上
【深度学习模型训练】使用DPED DPE模型进行图片增强_第8张图片
【深度学习模型训练】使用DPED DPE模型进行图片增强_第9张图片
5)在食物上

【深度学习模型训练】使用DPED DPE模型进行图片增强_第10张图片
【深度学习模型训练】使用DPED DPE模型进行图片增强_第11张图片
6)在城市场景上
【深度学习模型训练】使用DPED DPE模型进行图片增强_第12张图片
【深度学习模型训练】使用DPED DPE模型进行图片增强_第13张图片
6)在自然风景上
【深度学习模型训练】使用DPED DPE模型进行图片增强_第14张图片【深度学习模型训练】使用DPED DPE模型进行图片增强_第15张图片
可以看出,图像在对比度,饱和度,阴影等都有较明显的增强

你可能感兴趣的:(深度学习,训练,图像增强,GAN,DPED)