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

MMpose 사용해서 (COCO - 2D WholeBody Datasets) 데이터로 모델 학습까지!

데욱 2023. 6. 23. 14:14
  • MMpose를 이용해서 학습을 해보자!

https://mmpose.readthedocs.io/en/latest/dataset_zoo/2d_wholebody_keypoint.html

 

2D Wholebody Keypoint Datasets — MMPose 1.0.0 documentation

2D Wholebody Keypoint Datasets It is recommended to symlink the dataset root to $MMPOSE/data. If your folder structure is different, you may need to change the corresponding paths in config files. MMPose supported datasets: COCO-WholeBody COCO-WholeBody (E

mmpose.readthedocs.io

괜히 키포인트 몇개 추출할바엔 차라리 몸 전체 2D Keypoint를 추출하려고한다. 

이는 나중에 2D를 3D로 변환할 때 나중에 필요없는 키포인트는 제거 후 사용하기만 하면 된다.

 

일단 위의 링크를 들어가면 알 수 있겠지만, 나는 COCO datasets으로 학습하려고 한다.

mmpose
├── mmpose
├── docs
├── tests
├── tools
├── configs
`── data
    │── coco
        │-- annotations
        │   │-- coco_wholebody_train_v1.0.json
        │   |-- coco_wholebody_val_v1.0.json
        |-- person_detection_results
        |   |-- COCO_val2017_detections_AP_H_56_person.json
        │-- train2017
        │   │-- 000000000009.jpg
        │   │-- 000000000025.jpg
        │   │-- 000000000030.jpg
        │   │-- ...
        `-- val2017
            │-- 000000000139.jpg
            │-- 000000000285.jpg
            │-- 000000000632.jpg
            │-- ...

우리가 로컬에 다운받은 mmpose 폴더 구성을 다음과 같이 만들어주면 된다.

 

일단... cocoapi 최신버전으로 업그레이드 하고,

pip install xtcocotools

 

train2017, val2017 파일
images can be downloaded from 
COCO download,2017 Train/Val is needed for COCO keypoints training and validation.

 

annotations 파일 
Download COCO-WholeBody annotations for COCO-WholeBody annotations for 
Train / Validation (Google Drive).

 

person_deteciton_result 파일

Download person detection result of COCO val2017 from OneDrive or GoogleDrive. Download and extract them under $MMPOSE/data, and make them look like this:

 

여기 파란색 하이퍼 링크에 있는 파일들을 다운 받고 폴더 구성을 동일하게 해준다.

 

나는 다른 데이터 셋을 사용하고 싶은데용? 하는 분들은

Doc페이지 왼쪽목록 중  Dataset Zoo[ - ] 에서 원하는 데이터 셋을 하라는 대로 똑같이 구성하면 된다!

 


그래서 저 데이터로 어떻게 학습 시키는데?!!?

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

 

Training and Testing — MMPose 1.0.0 documentation

Docs > Training and Testing 以中文阅读 Edit on GitHub Shortcuts

mmpose.readthedocs.io

 

GPU로 훈련을 하는 코드다!

python tools/train.py ${CONFIG_FILE} [ARGS]

 

mmpose/configs로 이동하면 이런식으로 폴더들이 있다.

본인이 다운로드 한 데이터 형식(나는 wholebody_2d)에 맞춰서 폴더를 확인해보자

 

/home/wook/mmpose/configs/wholebody_2d_keypoint/topdown_heatmap/coco-wholebody 경로를 확인해보면...

 

이런식으로 이미 정리된 py파일이 있다. 저것이 바로 CONFIG_FILE 이다! 그래서 경로를 설정해주면! 학습을 진행하게된다.

저건 이제 mmpose에서 쉽게 사용할 수 있도록 코드 수정을 한 상태이다.

 

본인이 수정하고 싶으면 아래처럼

/home/wook/mmpose/mmpose/models/backbones 여기서 직접 코드를 수정해서 사용하면된다.

cd mmpose
python tools/train.py /home/wook/mmpose/configs/wholebody_2d_keypoint/topdown_heatmap/coco-wholebody/td-hm_vipnas-res50_8xb64-210e_coco-wholebody-256x192.py

여러가지 일단... 모델을 다 돌려보고 싶었는데 저번에 hrnet 대강 돌려봤기 때문에 일단 먼저 vipnas 모델을 돌려봤다.

그래서 위 코드를 실행한다면? 학습이 진행된다!!

 

학습이 완료된다면?!

/home/wook/mmpose/work_dirs 이렇게 폴더가 생성된다.

epoch 별로 저장이 된다!!