Safemotion Lib
Loading...
Searching...
No Matches
smpose

  • 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
      1. mmpose 모델 cfg 및 파라미터 다운로드
      2. mmdepoly로 모델 빌드 python /workspace/mmdeploy/tools/deploy.py \ /workspace/mmdeploy/configs/변환 cfg 경로 \ /다운로드 받은 모델 cfg 경로 \ /다운로드 받은 모델 파라미터 경로 \ /샘플 이미지 \ --work-dir 저장경로 \ --device cuda:0 \ --dump-info

데모 실행

데모 준비사항

  1. 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
  2. smrunner, smdetect, smutils 설치
  3. 모델의 cfg 및 모델 파라미터 준비
    • cfg에 파라미터 설정

실행 방법

  1. 데모스크립트(demo/pose_demo.py, demo/pose_with_det_demo.py) 수정
    • cfg 경로 수정
    • 테스트 이미지 경로 수정
    • 저장 경로 수정
  2. 데모스크립트 실행

포즈 추정 과정 설명

  1. 객체 검출 및 포즈 추정 모델 빌드
  2. 데이터 로드(이미지)
  3. 객체 검출 모델 구동(inference)
  4. 객체 검출 결과를 기반으로 영상 크롭
  5. 포즈 추정 모델 구동(inference)

TODO

  1. runner/mmpose_pytorch_runner.py 구현 -> pytorch 모델 빌드하는 기능 추가 필요
  2. 히트맵 반환 옵션 설정 필요 -> 옵션에 따라서 히트맵 반환