使用部分卷积的PyTorch图像修复
官方实现已由作者发布。
请注意,这是一个正在进行中的重新实现,我无法完全复现结果。欢迎提出建议和提交PR!
这是一篇论文的非官方PyTorch实现:使用部分卷积对不规则孔洞进行图像修复 [Liu+, arXiv2018]。
要求
- Python 3.6+
- PyTorch 0.4.1+
pip install -r requirements.txt
使用方法
预处理
-
下载Places2数据集并将其放置在某处。该数据集应包含
data_large
、val_large
和test_large
作为子目录。使用train.py
或test.py
时,不要忘记通过--root ROOT
指定数据集的根目录。 -
按照1生成掩码(默认保存在
./masks
下)。请注意,掩码生成方式与原始工作不同
python generate_data.py
训练
CUDA_VISIBLE_DEVICES=<gpu_id> python train.py
微调
CUDA_VISIBLE_DEVICES=<gpu_id> python train.py --finetune --resume <checkpoint_name>
测试
CUDA_VISIBLE_DEVICES=<gpu_id> python test.py --snapshot <snapshot_path>
结果
以下是经过500,000次迭代训练和500,000次微调(冻结编码器中的BN)后,测试集的一些结果。模型可在此处获得,但我不保证其质量。 (从上到下:输入、掩码、网络生成的图像、与原始图像非掩码区域组合后的图像、真实图像)