1、环境搭建
1、构建虚拟环境安装torch
conda create -n mmdetsam python=3.8 -y
conda activate mmdetsampip install torch==1.10.0+cu102 torchvision==0.11.0+cu102 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
import torchif torch.cuda.is_available():print("GPU 可用")
else:print("GPU 不可用")
2、安装 Detectron2
python -m pip install detectron2 -f https://dl.fbaipublicfiles.com/detectron2/wheels/cu102/torch1.10/index.html -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
3、安装其他的依赖库
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
4、CUDA kernel for MSDeformAttn
cd maskdino/modeling/pixel_decoder/ops
sh make.sh
2、Getting Started with Detectron2
模型测试
cd demo/
python demo.py --config-file /configs/coco/instance-segmentation/maskdino_R50_bs16_50ep_3s.yaml \--input input1.jpg input2.jpg \[--other-options]--opts MODEL.WEIGHTS /path/to/model_file
要在网络摄像头上运行, replace --input files with --webcam.
要在视频上运行, replace --input files with --video-input video.mp4.
要在 cpu 上运行, add MODEL.DEVICE cpu after --opts.
要将输出保存到目录(对于图像)或文件(对于网络摄像头或视频), use --output.
本地测试案例
python demo.py --config-file /media/lhy/MaskDINO-main/configs/coco/instance-segmentation/maskdino_R50_bs16_50ep_3s.yaml --input 000000000064.jpg 000000000071.jpg --output /media/lhy/MaskDINO-main/demo/out --opts MODEL.WEIGHTS /media/lhy/MaskDINO-main/models/maskdino_r50_50ep_300q_hid1024_3sd1_instance_maskenhanced_mask46.1ap_box51.5ap.pth
本地评估
python train_net.py --eval-only --num-gpus 8 --config-file config_path MODEL.WEIGHTS /path/to/checkpoint_file
例如,为了重现我们的实例分割结果,您可以从表中复制配置路径,将预训练的检查点下载到/path/to/checkpoint_file中,然后运行
python train_net.py --eval-only --num-gpus 8 --config-file configs/coco/instance-segmentation/maskdino_R50_bs16_50ep_3s_dowsample1_2048.yaml MODEL.WEIGHTS /path/to/checkpoint_file
3、 Train MaskDINO
使用上面的命令而不使用eval-only将训练模型。对于Swin主干,您需要使用MODEL .WEIGHTS /path/to/pretrained_checkpoint指定预训练主干的路径
python train_net.py --num-gpus 8 --config-file config_path MODEL.WEIGHTS /path/to/checkpoint_file
python train_net.py --num-gpus 1 --config-file config_path SOLVER.IMS_PER_BATCH 2 SET_TO_SOME_REASONABLE_VALUE SOLVER.BASE_LR 0.0025 SET_TO_SOME_REASONABLE_VALUESOLVER.IMS_PER_BATCH 2 SOLVER.BASE_LR 0.0025