diff --git a/README.md b/README.md index e94b504..10505ca 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Objects as Points Object detection, 3D detection, and pose estimation using center point detection: ![](readme/fig2.png) -> [**Objects as Points**](https://arxiv.org/abs/xxxx.xxxxx), +> [**Objects as Points**](http://arxiv.org/abs/1904.07850), > Xingyi Zhou, Dequan Wang, Philipp Krähenbühl, > *arXiv technical report ([arXiv 1904.07850](http://arxiv.org/abs/1904.07850))* @@ -81,7 +81,7 @@ python demo.py ctdet --demo webcam --load_model ../models/ctdet_coco_dla_2x.pth Similarly, for human pose estimation, run: ~~~ -python demo.py multi_hp --demo /path/to/image/or/folder/or/video/or/webcam --load_model ../models/multi_pose_dla_3x.pth +python demo.py multi_pose --demo /path/to/image/or/folder/or/video/or/webcam --load_model ../models/multi_pose_dla_3x.pth ~~~ The result for the example images should look like: diff --git a/experiments/ctdet_coco_dla_1x.sh b/experiments/ctdet_coco_dla_1x.sh new file mode 100644 index 0000000..ca69d8e --- /dev/null +++ b/experiments/ctdet_coco_dla_1x.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py ctdet --exp_id coco_dla_1x --batch_size 128 --master_batch 9 --lr 5e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 16 +# test +python test.py ctdet --exp_id coco_dla_1x --keep_res --resume +# flip test +python test.py ctdet --exp_id coco_dla_1x --keep_res --resume --flip_test +# multi scale test +python test.py ctdet --exp_id coco_dla_1x --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/ctdet_coco_dla_2x.sh b/experiments/ctdet_coco_dla_2x.sh new file mode 100644 index 0000000..8aeeed9 --- /dev/null +++ b/experiments/ctdet_coco_dla_2x.sh @@ -0,0 +1,12 @@ +cd src +# train +python main.py ctdet --exp_id coco_dla_2x --batch_size 128 --master_batch 9 --lr 5e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 16 --num_epochs 230 lr_step 180,210 +# or use the following command if your have coco_s2_dla_1x trained +# python main.py ctdet --exp_id coco_dla_2x --batch_size 128 --master_batch 9 --lr 5e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 16 --load_model ../exp/ctdet/coco_dla_1x/model_90.pth --resume +# test +python test.py ctdet --exp_id coco_dla_2x --keep_res --resume +# flip test +python test.py ctdet --exp_id coco_dla_2x --keep_res --resume --flip_test +# multi scale test +python test.py ctdet --exp_id coco_dla_2x --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/ctdet_coco_hg.sh b/experiments/ctdet_coco_hg.sh new file mode 100644 index 0000000..5df68a3 --- /dev/null +++ b/experiments/ctdet_coco_hg.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py ctdet --exp_id coco_hg --arch hourglass --batch_size 24 --master_batch 4 --lr 2.5e-4 --load_model ../models/ExtremeNet_500000.pth --gpus 0,1,2,3,4 +# test +python test.py ctdet --exp_id coco_hg --arch hourglass --keep_res --resume +# flip test +python test.py ctdet --exp_id coco_hg --arch hourglass --keep_res --resume --flip_test +# multi scale test +python test.py ctdet --exp_id coco_hg --arch hourglass --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. \ No newline at end of file diff --git a/experiments/ctdet_coco_resdcn101.sh b/experiments/ctdet_coco_resdcn101.sh new file mode 100644 index 0000000..156b6ca --- /dev/null +++ b/experiments/ctdet_coco_resdcn101.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py ctdet --exp_id coco_resdcn101 --arch resdcn_101 --batch_size 96 --master_batch 5 --lr 3.75e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 16 +# test +python test.py ctdet --exp_id coco_resdcn101 --keep_res --resume +# flip test +python test.py ctdet --exp_id coco_resdcn101 --keep_res --resume --flip_test +# multi scale test +python test.py ctdet --exp_id coco_resdcn101 --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/ctdet_coco_resdcn18.sh b/experiments/ctdet_coco_resdcn18.sh new file mode 100644 index 0000000..4a92f54 --- /dev/null +++ b/experiments/ctdet_coco_resdcn18.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py ctdet --exp_id coco_resdcn18 --arch resdcn_18 --batch_size 114 --master_batch 18 --lr 5e-4 --gpus 0,1,2,3 --num_workers 16 +# test +python test.py ctdet --exp_id coco_resdcn18 --arch resdcn_18 --keep_res --resume +# flip test +python test.py ctdet --exp_id coco_resdcn18 --arch resdcn_18 --keep_res --resume --flip_test +# multi scale test +python test.py ctdet --exp_id coco_resdcn18 --arch resdcn_18 --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/ctdet_pascal_dla_384.sh b/experiments/ctdet_pascal_dla_384.sh new file mode 100644 index 0000000..d6dbdd8 --- /dev/null +++ b/experiments/ctdet_pascal_dla_384.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_dla_384 --dataset pascal --num_epochs 70 --lr_step 45,60 +# test +python test.py ctdet --exp_id pascal_dla_384 --dataset pascal --resume +# flip test +python test.py ctdet --exp_id pascal_dla_384 --dataset pascal --resume --flip_test +cd .. diff --git a/experiments/ctdet_pascal_dla_512.sh b/experiments/ctdet_pascal_dla_512.sh new file mode 100644 index 0000000..22ca1f4 --- /dev/null +++ b/experiments/ctdet_pascal_dla_512.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_dla_512 --dataset pascal --input_res 512 --num_epochs 70 --lr_step 45,60 --gpus 0,1 +# test +python test.py ctdet --exp_id pascal_dla_512 --dataset pascal --input_res 512 --resume +# flip test +python test.py ctdet --exp_id pascal_dla_512 --dataset pascal --input_res 512 --resume --flip_test +cd .. diff --git a/experiments/ctdet_pascal_resdcn101_384.sh b/experiments/ctdet_pascal_resdcn101_384.sh new file mode 100644 index 0000000..95d7fcb --- /dev/null +++ b/experiments/ctdet_pascal_resdcn101_384.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_resdcn101_384 --arch resdcn_101 --dataset pascal --num_epochs 70 --lr_step 45,60 --gpus 0,1 +# test +python test.py ctdet --exp_id pascal_resdcn101_384 --arch resdcn_101 --dataset pascal --resume +# flip test +python test.py ctdet --exp_id pascal_resdcn101_384 --arch resdcn_101 --dataset pascal --resume --flip_test +cd .. diff --git a/experiments/ctdet_pascal_resdcn101_512.sh b/experiments/ctdet_pascal_resdcn101_512.sh new file mode 100644 index 0000000..8eec739 --- /dev/null +++ b/experiments/ctdet_pascal_resdcn101_512.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_resdcn101_512 --arch resdcn_101 --dataset pascal --input_res 512 --num_epochs 70 --lr_step 45,60 --gpus 0,1,2,3 +# test +python test.py ctdet --exp_id pascal_resdcn101_512 --arch resdcn_101 --dataset pascal --input_res 512 --resume +# flip test +python test.py ctdet --exp_id pascal_resdcn101_512 --arch resdcn_101 --dataset pascal --input_res 512 --resume --flip_test +cd .. diff --git a/experiments/ctdet_pascal_resdcn18_384.sh b/experiments/ctdet_pascal_resdcn18_384.sh new file mode 100644 index 0000000..eada159 --- /dev/null +++ b/experiments/ctdet_pascal_resdcn18_384.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_resdcn18_384 --arch resdcn_18 --dataset pascal --num_epochs 70 --lr_step 45,60 +# test +python test.py ctdet --exp_id pascal_resdcn18_384 --arch resdcn_18 --dataset pascal --resume +# flip test +python test.py ctdet --exp_id pascal_resdcn18_384 --arch resdcn_18 --dataset pascal --resume --flip_test +cd .. diff --git a/experiments/ctdet_pascal_resdcn18_512.sh b/experiments/ctdet_pascal_resdcn18_512.sh new file mode 100644 index 0000000..abe7dbb --- /dev/null +++ b/experiments/ctdet_pascal_resdcn18_512.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py ctdet --exp_id pascal_resdcn18_512 --arch resdcn_18 --dataset pascal --input_res 512 --num_epochs 70 --lr_step 45,60 +# test +python test.py ctdet --exp_id pascal_resdcn18_512 --arch resdcn_18 --dataset pascal --input_res 512 --resume +# flip test +python test.py ctdet --exp_id pascal_resdcn18_512 --arch resdcn_18 --dataset pascal --input_res 512 --resume --flip_test +cd .. diff --git a/experiments/ddd_3dop.sh b/experiments/ddd_3dop.sh new file mode 100644 index 0000000..611fcac --- /dev/null +++ b/experiments/ddd_3dop.sh @@ -0,0 +1,6 @@ +cd src +# train +python main.py ddd --exp_id 3dop --dataset kitti --kitti_split 3dop --batch_size 16 --master_batch 7 --num_epochs 70 --lr_step 45,60 --gpus 0,1 +# test +python test.py ddd --exp_id 3dop --dataset kitti --kitti_split 3dop --resume +cd .. diff --git a/experiments/ddd_sub.sh b/experiments/ddd_sub.sh new file mode 100644 index 0000000..117461f --- /dev/null +++ b/experiments/ddd_sub.sh @@ -0,0 +1,6 @@ +cd src +# train +python main.py ddd --exp_id sub --dataset kitti --kitti_split subcnn --batch_size 16 --master_batch 7 --num_epochs 70 --lr_step 45,60 --gpus 0,1 +# test +python test.py ddd --exp_id sub --dataset kitti --kitti_split subcnn --resume +cd .. diff --git a/experiments/exdet_coco_dla.sh b/experiments/exdet_coco_dla.sh new file mode 100644 index 0000000..a04e81a --- /dev/null +++ b/experiments/exdet_coco_dla.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py exdet --exp_id coco_dla --batch_size 64 --master_batch 1 --lr 2.5e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 8 +# test +python test.py exdet --exp_id coco_dla --keep_res --resume +# flip test +python test.py exdet --exp_id coco_dla --keep_res --resume --flip_test +# multi scale test +python test.py exdet --exp_id coco_dla --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/exdet_coco_hg.sh b/experiments/exdet_coco_hg.sh new file mode 100644 index 0000000..73dc5b2 --- /dev/null +++ b/experiments/exdet_coco_hg.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py exdet --exp_id coco_hg --arch hourglass --batch_size 24 --master_batch 4 --lr 2.5e-4 --gpus 0,1,2,3,4 +# test +python test.py exdet --exp_id coco_hg --arch hourglass --keep_res --resume +# flip test +python test.py exdet --exp_id coco_hg --arch hourglass --keep_res --resume --flip_test +# multi scale test +python test.py exdet --exp_id coco_hg --arch hourglass --keep_res --resume --flip_test --test_scales 0.5,0.75,1,1.25,1.5 +cd .. diff --git a/experiments/multi_pose_dla_1x.sh b/experiments/multi_pose_dla_1x.sh new file mode 100644 index 0000000..8902143 --- /dev/null +++ b/experiments/multi_pose_dla_1x.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py multi_pose --exp_id dla_1x --batch_size 128 --master_batch 9 --lr 5e-4 --load_model ../models/ctdet_coco_dla_2x.pth --gpus 0,1,2,3,4,5,6,7 --num_workers 16 +# test +python test.py multi_pose --exp_id dla_1x --keep_res --resume +# flip test +python test.py multi_pose --exp_id dla_1x --keep_res --resume --flip_test +cd .. diff --git a/experiments/multi_pose_dla_3x.sh b/experiments/multi_pose_dla_3x.sh new file mode 100644 index 0000000..6d4f23a --- /dev/null +++ b/experiments/multi_pose_dla_3x.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py multi_pose --exp_id dla_3x --batch_size 128 --master_batch 9 --lr 5e-4 --load_model ../models/ctdet_coco_dla_2x.pth --gpus 0,1,2,3,4,5,6,7 --num_workers 16 --num_epochs 320 lr_step 270,300 +# or use the following command if your have dla_1x trained +# python main.py multi_pose --exp_id dla_3x --batch_size 128 --master_batch 9 --lr 5e-4 --gpus 0,1,2,3,4,5,6,7 --num_workers 16 --load_model ../exp/multi_pose/dla_1x/model_90.pth --resume +# test +python test.py multi_pose --exp_id dla_3x --keep_res --resume +# flip test +python test.py multi_pose --exp_id dla_3x --keep_res --resume --flip_test +cd .. diff --git a/experiments/multi_pose_hg_1x.sh b/experiments/multi_pose_hg_1x.sh new file mode 100644 index 0000000..1bf247f --- /dev/null +++ b/experiments/multi_pose_hg_1x.sh @@ -0,0 +1,8 @@ +cd src +# train +python main.py multi_pose --exp_id hg_1x --arch hourglass --batch_size 24 --master_batch 4 --lr 2.5e-4 --load_model ../models/ctdet_coco_hg.pth --gpus 0,1,2,3,4 --num_epochs 50 --lr_step 40 +# test +python test.py multi_pose --exp_id hg_1x --arch hourglass --keep_res --resume +# flip test +python test.py multi_pose --exp_id hg_1x --arch hourglass --keep_res --resume --flip_test +cd .. diff --git a/experiments/multi_pose_hg_3x.sh b/experiments/multi_pose_hg_3x.sh new file mode 100644 index 0000000..092f3c0 --- /dev/null +++ b/experiments/multi_pose_hg_3x.sh @@ -0,0 +1,10 @@ +cd src +# train +python main.py multi_pose --exp_id hg_3x --arch hourglass --batch_size 24 --master_batch 4 --lr 2.5e-4 -load_model ../models/ctdet_coco_hg.pth --gpus 0,1,2,3,4 --num_epochs 150 --lr_step 130 +# or use the following command if your have dla_1x trained +# python main.py multi_pose --exp_id hg_3x --arch hourglass --batch_size 24 --master_batch 4 --lr 2.5e-4 --gpus 0,1,2,3,4 --num_epochs 150 --lr_step 130 --load_model ../exp/multi_pose/hg_1x/model_40.pth --resume +# test +python test.py multi_pose --exp_id hg_3x --arch hourglass --keep_res --resume +# flip test +python test.py multi_pose --exp_id hg_3x --arch hourglass --keep_res --resume --flip_test +cd ..