MVIG-SJTU / AlphaPose

Real-Time and Accurate Full-Body Multi-Person Pose Estimation&Tracking System
http://mvig.org/research/alphapose.html
Other
8.05k stars 1.98k forks source link

Update YOLO Detector #1037

Closed pranavgundewar closed 2 years ago

pranavgundewar commented 2 years ago

Hi! Thank you for sharing the codebase.

I have seen that YOLO V3 SPP is not very robust when detecting small, fast-moving objects in the videos.

I wanted to update the YOLO backbone to either Yolo v5 or YoloX. Can you share steps to update the detection backbone?

Thank you!

HaoyiZhu commented 2 years ago

Hi, we have supported YOLOX now! Could you try the latest version?

pranavgundewar commented 2 years ago

I will check the code today and will let you know.

Fang-Haoshu commented 2 years ago

Great! In fact, we have tested EfficientDet and Yolov5 series, and they perform worse than yolov3 for pose estimation. Yolox is the only one that surpass yolov3 so far in our case.

foocker commented 2 years ago

unexpected.

VisImage commented 2 years ago

I tried and did not go through. In colab:

! python3 scripts/demo_inference.py --cfg configs/coco/resnet/256x192_res50_lr1e-3_1x.yaml --checkpoint pretrained_models/fast_res50_256x192.pth \ --detector yolox --video /content/alphaPose_sample3.avi --outdir /content/out_yolox --save_img --save_video --sp --vis_fast

output: Loading YOLOX-X model.. Exception in thread Thread-2: Traceback (most recent call last): File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner self.run() File "/usr/lib/python3.7/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/content/AlphaPose/alphapose/utils/detector.py", line 223, in image_detection dets = self.detector.images_detection(imgs, im_dim_list) File "/content/AlphaPose/detector/yolox_api.py", line 89, in images_detection self.load_model() File "/content/AlphaPose/detector/yolox_api.py", line 46, in load_model torch.load(self.model_weights, map_location="cpu")["model"] File "/usr/local/lib/python3.7/dist-packages/torch/serialization.py", line 705, in load with _open_zipfile_reader(opened_file) as opened_zipfile: File "/usr/local/lib/python3.7/dist-packages/torch/serialization.py", line 243, in init super(_open_zipfile_reader, self).init(torch._C.PyTorchFileReader(name_or_buffer)) RuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory

Loading pose model from pretrained_models/fast_res50_256x192.pth... ===========================> This video get 570 frames in total. 0% 0/571 [00:00<?, ?it/s]

@pranavgundewar have you got any chance to try it out?

HaoyiZhu commented 2 years ago

Hi, thanks for your feedback @VisImage ! We actually have not updated colab yet. And I think your error might be due to the yolox weight is not downloaded. You have to download the weights from https://github.com/Megvii-BaseDetection/YOLOX and put them into detector/yolox/data/. We will update this part later.

Fang-Haoshu commented 2 years ago

please use !wget -P ./detector/yolox/data/ https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.0/yolox_x.pth to download weight on colab

VisImage commented 2 years ago

@Fang-Haoshu, Thank you for the update. I downloaded yolox_x.pth file and tried again. Unfortunately, it does not goes through, as shown in the screen capture below. Please advise.

ColabCapture

HaoyiZhu commented 2 years ago

Seems there is no error? And the progress bar is 11/571, so why you interupt it?

VisImage commented 2 years ago

@Fang-Haoshu, Thank you for the feedback. Upon further investigation, we find that it is an issue on Colab memory. After changing Colab runtime shape to High RAM, from standard, the expected result json file (alphapose_result.json) is generated.

The following are the results of three models (-- pose_track; --detector yolox; and --detector tracker) on my video:

1) At the default configuration (threshold e.t.c) "--detector yolox" produce more poses than "--pose_track", but not more reliable poses. 2) The bounding boxes (the 'box' values in result.json file) are not accurate/reliable. When plotting such bounding box together with pose (keypoints), many boxes seems NOT related with the pose. Is the 'box' values validated before writing into alphapose_result.json? 3) we still can not make the model "--detector tracker" work

HaoyiZhu commented 2 years ago

@VisImage Thanks! We have fixed a bug of --detector tracker. To use pose tracker, you could check our detailed doc here. By the way, could you offer the vis result of the "unrelated" boxes and poses? Because it is unexpected.

VisImage commented 2 years ago

Thank you for the update. I'll check the --detector tracker fix in these couple of days. To share the "unrelated" boxes and poses, I have sent you an email to fhaoshu@gmail.com, since our video is not proper to be shared in public. If you prefer other communication channel, please email me at yin.s@vis.ca..