Open xxx2974 opened 5 years ago
@xxx2974 如果图像不是bicubic downsampling, 并且有JPEG压缩的时候, 图像质量会较差. 因为现在的模型是针对MATLAB bicubic downsampling kernel的.
等宽高不重要, jpg压缩可能会会把jpg压缩也放大, 因此会出现明显的块状artifacts. 需要重新train一下网络, 可以从现有的4倍网络finetune过去,会更快.
谢谢回复。那如果现在只有低分辨率的jpg图像,而没有高分辨率的,是不是没有办法重新训练模型??
这个jpg 的问题,GAN 的方法有好的解决办法么?
@xinntao 你好,还有个问题想请教,假如将高分图片下采样为原来的二分之一,而不是四分之一,具体应该修改哪些参数来重新训练一个2倍的超分模型呢?
@xxx2974 如果只有低分辨率的jpg图像, 你可以参考 盲超分 的paper. 关于修改的参数, 主要是1) 准备好相应的训练数据集和测试集; 2) 修改模型(比如在.json文件中)的相应的配置参数. 这个主要影响的是网络的构建, 主要是upsampling layer. 一般可以从现有的其他scale的模型fine-tune过去.
@suke27 jpg的问题, 我现在想到的有 1) 首先做Dejpeg, 然后做SR. 这个比较直接. 2) 训练数据中就加入jpeg的压缩, 先用MSE/L1的loss预训练, 然后再加入GAN fine-tune. 这样从训练数据角度, 网络有一定的能力同时去除jpeg和SR 3) 进一步得, 可以让网络同时做dejpeg和SR的两个任务, 通过multi-task的训练,应该能够更加有效. (也是通过准备有jpeg压缩的训练数据)
@xinntao 方法2 我试过,没用,你可以再试下 方法3,我看有paper 有人这么干,2个网络级联,先做去噪,再SR
方法3有paper这么做了, 那应该有效~你可以试试. 有JPEG的问题,在实际中还是很有必要的
@xxx2974 如果只有低分辨率的jpg图像, 你可以参考 盲超分 的paper. 关于修改的参数, 主要是1) 准备好相应的训练数据集和测试集; 2) 修改模型(比如在.json文件中)的相应的配置参数. 这个主要影响的是网络的构建, 主要是upsampling layer. 一般可以从现有的其他scale的模型fine-tune过去.
谢谢!冒昧的问一下,我不太清楚具体要怎么做参数的修改,训练集与测试集我已准备好了,.json文件中我修改了一处"pretrain_model_G": "../experiments/pretrained_models/SRResNet_bicx2_in3nf64nb16.pth"
然后运行报错:
19-01-03 17:07:54.863 - INFO: Random seed: 0
19-01-03 17:07:54.868 - INFO: Read lmdb keys from cache: /home/xiaozhenzhen/data/BasicSR/datasets/DIV2K800/DIV2K800_sub_1.lmdb/_keys_cache.p
19-01-03 17:07:54.932 - INFO: Read lmdb keys from cache: /home/xiaozhenzhen/data/BasicSR/datasets/DIV2K800/DIV2K800_sub_bicLRx2_1.lmdb/_keys_cache.p
19-01-03 17:07:55.019 - INFO: Dataset [LRHRDataset - DIV2K] is created.
19-01-03 17:07:55.019 - INFO: Number of train images: 32,208, iters: 2,013
19-01-03 17:07:55.019 - INFO: Total epoches needed: 249 for iters 500,000
19-01-03 17:07:55.019 - INFO: Read lmdb keys from cache: /home/xiaozhenzhen/data/BasicSR/datasets/DIV2K_valid/val_sub_1.lmdb/_keys_cache.p
19-01-03 17:07:55.048 - INFO: Read lmdb keys from cache: /home/xiaozhenzhen/data/BasicSR/datasets/DIV2K_valid/val_sub_bicLRx2_1.lmdb/_keys_cache.p
19-01-03 17:07:55.061 - INFO: Dataset [LRHRDataset - val_set14_part] is created.
19-01-03 17:07:55.062 - INFO: Number of val images in [val_set14_part]: 4144
19-01-03 17:07:55.338 - INFO: Initialization method [kaiming]
19-01-03 17:08:06.983 - INFO: Initialization method [kaiming]
19-01-03 17:08:07.226 - INFO: Loading model for G [../experiments/pretrained_models/SRResNet_bicx2_in3nf64nb16.pth] ...
Traceback (most recent call last):
File "train.py", line 154, in
你应该写一个script, 把x4的model transfer过去, 可以参考一下transfer_params.py
OK,thanks a lot.
@xxx2974 你好,请问你用自己的数据,就是只有低分辨率的图片怎么训练网络啊,我现在也想用这个代码吧自己低分辨率的图调清楚一些,但是我不知道该怎么做,特别感谢您的帮助
@1810325 Currently, it is a data-driven method, so you need to prepare such training pairs. If you only have the low-resolution images, 1) try to synthesize training pairs that have a similar distribution as your test images. 2) try to search relevant papers
您好,当我直接用您训练好的模型拿来测试时,生成的高分图像质量比较差,有几个问题想请教, 1、LR图片的分辨率是128×64,格式是jpg格式的,不是等宽高的,这样对结果影响大吗? 2、如果想生成的分辨率是原来的两倍而不是四倍,需要从改变训练图片上入手吗?