关于本实验的参考资料如下:
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等图像增强模型做分辨率重建的任务,效果非常不好还耗时。分辨率重建用强分辨率模型。
参考:https://github.com/aiff22/DPED
python3 transfer.py
python3 cut.py
#提取帧
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 数据集修改文件名称。以下介绍训练使用的文件夹:
下面开始训练的步骤:
1.修改配置文件 utils.py
process_command_args()中的参数值及文件地址
2.开始训练
python train_model.py model=iphone w_color=0.7
3.训练结果在models文件夹下产生
以下介绍测试使用的文件夹:
python test_model.py model=iphone test_subset=full iteration=29000 resolution=orig use_gpu=true
参考: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张用于同步测试。
数据说明:
图像色彩明艳,整体细节清晰,高对比度,高饱和度,亮度较广,适合用来作为参照训练数据。
与监督部分雷同
以下介绍训练使用的文件夹:
\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)在欠曝条件下(左为增强后,右为原图,以下相同)