- safemotion의 포즈 추정(스켈레톤 검출) 라이브러리
구조
│ ├── smpose
│ │ ├── builder
│ │ │ ├── runner_builder.py
│ │ ├── configs
│ │ │ ├── mmpose
| │ │ │ ├── hrnet_trt.py
| │ │ ├── ...
│ │ ├── demo
| │ │ ├── pose_demo.py
| │ │ ├── pose_with_det_demo.py
| │ │ ├── ...
│ │ ├── models
| │ │ ├── ...
│ │ ├── runner
│ │ │ ├── mmpose_trt_runner.py
│ │ │ ├── ...
- builder : models, runner의 클래스를 생성하는 함수
- configs : runner 객체를 생성하기 위한 cfg 파일
- demo : smpose를 사용하는 간단한 데모 스크립트
- models : 자체 개발 또는 내제화 모델, 모듈이 들어갈 폴더
- runner : 오픈 소스 및 models의 구성을 활용한 클래스 정의
requirement
TensorRT 변환
- TensorRT 모델 사용하기 위해서는 모델 빌드 필요
- mmpose
- mmpose 모델 cfg 및 파라미터 다운로드
- mmdepoly로 모델 빌드
python /workspace/mmdeploy/tools/deploy.py \ /workspace/mmdeploy/configs/변환 cfg 경로 \ /다운로드 받은 모델 cfg 경로 \ /다운로드 받은 모델 파라미터 경로 \ /샘플 이미지 \ --work-dir 저장경로 \ --device cuda:0 \ --dump-info
데모 실행
데모 준비사항
- docker container 생성
docker run --gpus all -v /media:/media --ipc=host -it -p 1200:1200 --name safemotion_lib_test docker.safemotion.kr:11443/library/smlab:v0.3
- smrunner, smdetect, smutils 설치
- 모델의 cfg 및 모델 파라미터 준비
실행 방법
- 데모스크립트(demo/pose_demo.py, demo/pose_with_det_demo.py) 수정
- cfg 경로 수정
- 테스트 이미지 경로 수정
- 저장 경로 수정
- 데모스크립트 실행
포즈 추정 과정 설명
- 객체 검출 및 포즈 추정 모델 빌드
- 데이터 로드(이미지)
- 객체 검출 모델 구동(inference)
- 객체 검출 결과를 기반으로 영상 크롭
- 포즈 추정 모델 구동(inference)
TODO
- runner/mmpose_pytorch_runner.py 구현 -> pytorch 모델 빌드하는 기능 추가 필요
- 히트맵 반환 옵션 설정 필요 -> 옵션에 따라서 히트맵 반환