git clone https://github.com/jiupinjia/SkyAR.git
cd SkyAR
unzip checkpoints_G_coord_resnet50.zip
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
python skymagic.py --path ./config/config-canyon-district9ship.json
python skymagic.py --path ./config/config-annarbor-supermoon.json
如果你想尝试自己的数据,或者想要不同的混合风格,你可以在 ./config 目录中配置 .json 文件。下面我们通过一个简单的例子来说明参数是如何定义的。
{
"net_G": "coord_resnet50",
"ckptdir": "./checkpoints_G_coord_resnet50",
"input_mode": "video",
"datadir": "./test_videos/annarbor.mp4",
"skybox": "floatingcastle.jpg",
"in_size_w": 384,
"in_size_h": 384,
"out_size_w": 845,
"out_size_h": 480,
"skybox_center_crop": 0.5,
"auto_light_matching": false,
"relighting_factor": 0.8,
"recoloring_factor": 0.5,
"halo_effect": true,
"output_dir": "./eval_output",
"save_jpgs": false
}
在这里,我们还提供了我们方法的推理运行时的最小工作示例。在 Colab 上查看结果。
请注意,如果您想训练自己的模型,则需要下载完整的CVPRW20-SkyOpt 数据集。由于存储库空间有限,我们只上传了其中的一小部分。我们在此存储库中包含的迷你数据集仅用作示例,以显示文件目录的结构是如何组织的。
unzip datasets.zip
python train.py \
--dataset cvprw2020-ade20K-defg \
--checkpoint_dir checkpoints \
--vis_dir val_out \
--in_size 384 \
--max_num_epochs 200 \
--lr 1e-4 \
--batch_size 8 \
--net_G coord_resnet50
我们方法的局限性是双重的。首先,由于我们的天空抠图网络仅在白天图像上进行训练,因此我们的方法可能无法检测夜间视频中的天空区域。其次,当视频中某段时间没有天空像素,或者天空中没有纹理时,无法对天空背景的运动进行准确建模。
下图显示了我们方法的两个失败案例。顶行显示了夜间BDD100K的输入帧(左)和错误检测到的天空区域(右)产生的混合结果(中)。第二行显示了一个输入帧(左,视频源),以及前景和渲染背景(中和右)之间不正确的运动同步结果。
[/hidecontent]