데이터사이언스 대학원 생활/Human Pose Estimation

MMPose - 훈련된 모델로 포즈 추정 실행!

데욱 2023. 6. 24. 19:03

훈련된 모델을 사용하여 제공된 이미지 또는 비디오에서 추론을 수행하거나 포즈 추정을 실행하는 방법!!

 

https://mmpose.readthedocs.io/en/latest/user_guides/inference.html

 

Inference with existing models — MMPose 1.0.0 documentation

Inference with existing models MMPose provides a wide variety of pre-trained models for pose estimation, which can be found in the Model Zoo. This guide will demonstrate how to perform inference, or running pose estimation on provided images or videos usin

mmpose.readthedocs.io

 

여기 Inference 사이트 에서 나온 코드다.

# build the inferencer with model alias
inferencer = MMPoseInferencer('human')

# build the inferencer with model config name
inferencer = MMPoseInferencer('td-hm_hrnet-w32_8xb64-210e_coco-256x192')

# build the inferencer with model config path and checkpoint path/URL
inferencer = MMPoseInferencer(
    pose2d='configs/body_2d_keypoint/topdown_heatmap/coco/' \
           'td-hm_hrnet-w32_8xb64-210e_coco-256x192.py',
    pose2d_weights='https://download.openmmlab.com/mmpose/top_down/' \
                   'hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth'
)

이 코드를 참조해서 코드를 짜보자!

from mmpose.apis import MMPoseInferencer

# build the inferencer with model config path and checkpoint path/URL
inferencer = MMPoseInferencer(
    pose2d='/home/wook/mmpose/work_dirs/td-hm_vipnas-res50_8xb64-210e_coco-wholebody-256x192/td-hm_vipnas-res50_8xb64-210e_coco-wholebody-256x192.py',
    pose2d_weights='/home/wook/mmpose/work_dirs/td-hm_vipnas-res50_8xb64-210e_coco-wholebody-256x192/best_coco-wholebody_AP_epoch_210.pth'
)
img_path ='/home/wook/Downloads/drive-download-20230621T100046Z-004/BarbellRow/Labeled_Dataset/barbellrow_images_raw/52971_2_14.jpg'
result_generator = inferencer(img_path, out_dir='output')
result = next(result_generator)

pose2d는 가장 끝쪽에 있는 py파일을 뜻하고,

pose2d_weight는 best_coco epoch_pth 파일이다. 

원하는 img가 있는 경로를 설정해준다.

 

경로설정은 저처럼 알아서 해주세요!

그러면 이런식으로 원하는 이미지에 원하는 훈련 모델을 적용시켜볼 수 있다!!

코드도 수정하면 여러 이미지를 계속 돌려서 결과를 확인해 볼 수 있다.

 

잘 나오면 참 좋겠지만... 추정이 완벽하지 않을 수 있다 ㅎㅎ 

MMPose로 쉽게 여러 모델들을 돌려보고 모델끼리 어떻게 나왔는지 비교해보자!