English | 简体中文
在开始使用之前,您需要按照以下命令安装额外的依赖包:
python -m pip install scikit-image
这是CVPR2020论文"Memory aggregation networks for efficient interactive video object segmentation"的Paddle实现。
此代码目前支持在 DAVIS 数据集上进行模型测试和模型训练,并且将在之后提供对任何给定视频的模型推理。
下载 DAVIS2017 和 scribbles 到一个文件夹中。请参阅 DAVIS.
如果您需要文件"DAVIS2017/ImageSets/2017/v_a_l_instances.txt",请参阅链接 https://drive.google.com/file/d/1aLPaQ_5lyAi3Lk3d2fOc_xewSrfcrQlc/view?usp=sharing
-
下载 deeplabV3+ model pretrained on COCO 作为主干初始化参数,或通过 wget 下载
wget https://drive.google.com/file/d/15temSaxnKmGPvNxrKPN6W2lSsyGfCtTB/view?usp=sharing
-
打开
PaddleVideo/configs/segmentationer/manet_stage1.yaml,然后在
pretrained:`填写下载的模型权重存储路径MODEL: #MODEL field framework: "Manet" backbone: name: "DeepLab" pretrained: fill in the path here
-
我们的训练过程包括两个阶段。
-
您可以通过以下命令使用一张卡开始第一阶段的训练:
python main.py -c configs/segmentation/manet.yaml
-
使用多张卡进行训练,以加快训练过程。训练开始命令如下:
export CUDA_VISIBLE_DEVICES=0,1,2,3 python -B -m paddle.distributed.launch --gpus="0,1,2,3" --log_dir=log_manet_stage1 main.py -c configs/segmentation/manet.yaml
-
使用混合精度训练以加快训练过程。训练开始命令如下:
export FLAGS_conv_workspace_size_limit=800 # MB export FLAGS_cudnn_exhaustive_search=1 export FLAGS_cudnn_batchnorm_spatial_persistent=1 # frames data format python3.7 -B -m paddle.distributed.launch --gpus="0,1,2,3,4" --log_dir=log_manet_stage1 main.py --amp -c configs/segmentation/manet.yaml
-
-
使用第一阶段的模型训练结果,您可以使用一张卡开始训练第二阶段(其他训练方法,如多张卡或混合精度类似于上述),命令如下:
export CUDA_VISIBLE_DEVICES=0,1,2,3 python -B -m paddle.distributed.launch --gpus="0,1,2,3" --log_dir=log_manet_stage1 main.py --validate -c configs/segmentation/manet_stage2.yaml
-
此外,您可以自定义和修改参数配置,以达到在不同数据集上训练/测试的目的。建议配置文件的命名方法是
model_dataset name_file format_data format_sampling method.yaml
,请参考 config 配置参数的方法。
您可以通过以下命令开始测试:
python main.py --test -c configs/localization/bmn.yaml -w output/BMN/BMN_epoch_00009.pdparams -o DATASET.test_batch_size=1
测试精度在 DAVIS2017上:
J@60 | AUC |
---|---|
0.761 | 0.749 |