Pose Estimation 모델을 사용하려고 검색을 하다보면 우리는 일반적으로 MMPose 라이브러리를 확인하게 된다. 물론 나의 경우에도 학부때부터 지금까지 여러번 이 라이브러리를 사용해왔지만, 아직 제대로 환경 설정이나 모델 학습, 추론에 있어 정리한 적이 없는 것 같아, 이번 기회에 한번에 쭉 정리해두려 한다.
MMPose의 경우 일반적인 다른 MM 라이브러리들처럼 버전과 그에 따른 패키지 버전의 호환이 중요하다. 따라서 이번에 내가 사용한 버전과 날짜를 명시하여 추후에 이 글을 확인하는 사람들이 다른 버전을 실행하려 할 때에 오류가 없도록 작성하려 한다.
- 마지막 확인 날짜: 2024/11/19
- 사용한 MMPose 버전: 1.3.2
https://github.com/open-mmlab/mmpose
0. 참고자료
https://mmpose.readthedocs.io/en/latest/installation.html
우선 기본적인 MMPose의 설치 및 실행 방법은 위의 Docs를 참고하면 된다. 나도 물론 이 링크에서 모든 정보를 얻어 실행하였으며, 이 글은 다음에 MMPose를 사용할 때 내가 더 빠르고 쉽게 사용을 하기 위한 정보 글이다.
1. 가상환경 세팅
나는 Conda 환경을 사용하여 가상환경을 운용하였다. Installation Guide와 같이 python 버전으로는 3.8을 사용하였고, 처음에 3.10을 사용했다가 무언가 호환 오류로 문제가 생겼었던 것으로 기억한다(무슨 오류인지 기억나지 않음...)
conda create -n mmpose python==3.8 -y
conda activate mmpose
2. Pytorch 설치
가상환경을 세팅하였다면 이제 딥러닝 프레임워크 사용을 위해 Pytorch를 설치해주어야 한다. nvcc -V를 통해 확인한 내 Cuda버전은 11.8 이었고 따라서 아래와 같이 cuda version에 맞게 Pytorch를 pip로 설치하였다.
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
주의할 점
이후 설치하게 될 mmdet 3.3이 mmcv<2.2.0을 요구하기 때문에 mmcv==2.1.0 버전을 설치하기 위해서는 torch 2.1.x를 설치해야 함. 아래의 링크에서 OS별/Cuda별/Pytorch별 호환되는 mmcv 버전을 확인할 수 있다.
https://mmcv.readthedocs.io/en/latest/get_started/installation.html#install-with-pip
3. MMEngine, MMCV 설치
다음은 MMPose의 기반이 되는 MMEngine과 MMCV를 설치해준다. 이와 같이 MM은 여러 라이브러리를 연결하여 관리하기 때문에 호환성 문제가 나기 쉬운데, 때문에 버전 관리를 잘 해주어야 한다. 따라서 공식 문서에서는 "mmcv>=2.0.1, mmdet>=3.1.0"으로 설치를 요구하지만 이대로 실행할 경우 호환 문제가 나기 때문에 나는 아래와 같이 직접 버전을 명시하여 설치를 진행해주었다.
pip install -U openmim
mim install mmengine
mim install "mmcv==2.1.0"
mim install "mmdet==3.3.0"
mim install mmpretrain # vitpose 모델용
4. MMPose 설치
다음은 MMPose를 설치하는 방법이다. 여기에는 크게 Github에서 clone으로 설치하는 방법과 위와 같이 mim으로 설치하는 방법이 있다. 하지만 내가 주로 돌리려는 코드는 Pose Estimation 즉, MMPose 내에 존재하기 때문에 코드 수정 및 디버깅의 용이함을 이유로 나는 Git clone으로 설치를 진행하였다. 만약 Inference만 간단하게 해보고 싶다면 mim으로 설치해도 괜찮을 것이다.
# ver 1. git clone
git clone https://github.com/open-mmlab/mmpose.git
cd mmpose
pip install -r requirements.txt
pip install -v -e .
# ver 2. mim install
mim install "mmpose>=1.1.0"
여기까지 설치가 잘 이루어 졌다면 지금까지 설치한 패키지 버전을 아래와 같이 확인할 수 있다.
mim list
# mmcv==2.1.0
# mmdet==3.3.0
# mmengine==0.10.5
# mmpose==1.3.2
# mmpretrain==1.2.0
5. MMPose 설치 확인
마지막로는 이렇게 설치한 MMPose 라이브러리를 가지고 간단한 Demo 실행을 통해 설치를 확인해보는 것이다. 이는 공식 문서를 참고하여 실행하였다.
먼저 아래와 같이 mim 명령어를 통해 사용할 config 파일을 다운받아준다. dest(destination)은 저장 경로를 의미한다.
mim download mmpose --config td-hm_hrnet-w48_8xb32-210e_coco-256x192 --dest .
다음은 아래와 같이 다운받은 config py파일을 이용하여 Repository 안에 있는 테스트 이미지를 가지고 데모 코드를 실행한다.
python demo/image_demo.py \
tests/data/coco/000000000785.jpg \
td-hm_hrnet-w48_8xb32-210e_coco-256x192.py \
td-hm_hrnet-w48_8xb32-210e_coco-256x192-0e67c616_20220913.pth \
--out-file vis_results.jpg \
--draw-heatmap
그럼 자동으로 config py 파일에 해당하는 pth 파일을 다운받으며 주어진 이미지에 대한 Inference를 실행한다.
위와 같은 이미지가 나왔다면 이제 MMPose 환경 세팅은 잘 마무리 된 것이다.
다음에는 세팅된 MMPose 환경에서 어떻게 원하는 데이터를 가지고 학습 및 추론을 할 수 있는지 정리해보도록 하겠다.
'개발 관련 지식 > 잡동사니' 카테고리의 다른 글
[MMPose] MMPose 원하는 데이터로 학습하기 (2) | 2024.11.20 |
---|---|
[OpenCV] VideoCapture 객체 Codec 변경 (2) | 2024.07.22 |
[Pillow] 영상에 한자 텍스트 입력하기 (0) | 2024.06.28 |
댓글