Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

Drop Rain

[MMAction2] 커스텀 데이터셋으로 MMAction2 실행시키기(1) 본문

카테고리 없음

[MMAction2] 커스텀 데이터셋으로 MMAction2 실행시키기(1)

Droprain 2023. 10. 31. 18:06

환경

  • window11
  • cuda 11.1 (GPU로 돌리는 과정입니다. CPU와 관련된 내용은 적혀있지 않습니다.)
  • anaconda

cuda 11.1


목표

MMAction2의 모델들을 커스텀 데이터셋으로 사용해보자

공식 설치 사이트은 여기있으니 보면서 각자의 상황에 맞게 하면 될 것이다.


0. 가상환경 생성

무난하게 파이썬 버전은 3.8로 설정했다.

나는 보통 가상환경 이름을 지을 때 '날짜 + 내용'으로 짓는다. 이렇게 하면 덜 헷갈린다.

conda create -n 1031mmrotate python=3.8
conda activate 1031mmrotate

1. 파이토치 설치

  • 파이토치
    • 최근 버전에 cuda를 사용하는 사람들은 여기에서, 이전 버전을 사용하는 사람들은 여기에서 파이토치 설치 명령어를 찾으면 된다. (ctrl +F로 찾으면 편하다. ctrl+F "11.1")
    • 나는 cuda 11.1이기 때문에 이전 버전을 다운받았다. 
    • cuda 11.1과 관련된 버전으로 다운받다가 오류가 나서 그냥 11.3호환 버전으로 다운받았다. 경험상 괜찮다.
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

mmaction2 설치 설명,   Python 3.7+, CUDA 10.2+ and PyTorch 1.8+ 이어야 한다.


오류1. 타임아웃 오류 

만약 타임아웃 오류가 생긴다면 pip install 뒤에 --timeout <sec>를 붙여주면 된다

네트워크 연결의 타임아웃으로 인해 발생하는 오류

pip install ~~~~~~~~~ --timeout 100

2. MM~~ 설치

  • 별 다른 오류 없이 설치되었다.
pip install -U openmim
mim install mmengine
mim install mmcv
mim install mmdet
mim install mmpose

3. MMAction2 설치

  • MMAction2를 설치하는 방법에는 두 가지가 있다. (a) github 코드를 clone하여 전체 MMAction2를 설치하는 것이고, (b) MMAction2의 API나 모듈을 import하기 위해 파이썬 패키지를 다운받는 것이다. 
  • 나는 커스텀 데이터셋을 사용해야하기 때문에 전체 코드를 clone하였다.
git clone https://github.com/open-mmlab/mmaction2.git
cd mmaction2
pip install -v -e .

X. Verify the installation

  • 필수 단계는 아니다. 단지 설치가 잘 되었는지 확인하는 단계
  • 그냥 한번 해봤다.
  • Step 1. Download the config and checkpoint files.
    • config 파일과 checkpoint 파일을 다운받자
mim download mmaction2 --config tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb --dest .
  • Step 2. Verify the inference demo.
    • 2가지 옵션이 있는데, (a) 소스코드로, (b) 패키지로 확인하는 것이다. 나는 이전에 이미 전체 코드를 clone했기 때문에 (a)옵션을 사용하였다.
python -u "demo/demo.py" tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb.py tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb_20220906-2692d16c.pth demo/demo.mp4 tools/data/kinetics/label_map_k400.txt

정상 실행 결과

  • 아래 명령어 설명
    •  demo.py를 실행시킬 때, 인자 3개를 넣어서 실행하는 명령어이다
    • python -u "demo/demo.py"
      • 코드 실행
    • tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb.py
      • config 파일
    • tsn_imagenet-pretrained-r50_8xb32-1x1x8-100e_kinetics400-rgb_20220906-2692d16c.pth
      • checkpoint 파일
    • demo/demo.mp4
      •  입력 비디오
    • tools/data/kinetics/label_map_k400.txt
      • label 데이터

demo.py의 parse_args()를 보면 어떤 인자를 받는지 알 수 있습니다.


4. 모델 선택

  • MMAction2에는 정말 다양한 모델들이 있는데 여기를 통해 살펴볼 수 있다.
  • 나는 Skeleton-based Action Recognition 모델이 필요하다. (애초에 그걸 위해 MMAction2를 실행시키는 것.)
  • 여러 개의 모델을 전부 해볼 생각이기에 처음 시도할 모델은 가장 최근에 나온 STGCN++ (ArXiv'2022)이다 

MMAction2에서 제공하는&nbsp; Skeleton-based Action Recognition 모델들