구조
│ ├── smdetect
│ │ ├── builder
│ │ │ ├── runner_builder.py
│ │ ├──configs
│ │ │ ├── mmdet
| │ │ │ ├── rtmdet
| │ │ │ │ ├── rtmdet_trt.py
│ │ │ ├── yolo
| │ │ │ ├── yolov8.py
| │ │ ├── ...
│ │ ├── demo
| │ │ ├── det_demo.py
| │ │ ├── ...
│ │ ├── models
| │ │ ├── ...
│ │ ├── runner
│ │ │ ├── mmdet_pytorch_runner.py
│ │ │ ├── mmdet_trt_runner.py
│ │ │ ├── yolov8_runner.py
│ │ │ ├── ...
- builder : models, runner의 클래스를 생성하는 함수
- configs : runner 객체를 생성하기 위한 cfg 파일
- demo : smdetect를 사용하는 간단한 데모 스크립트
- models : 자체 개발 또는 내제화 모델, 모듈이 들어갈 폴더
- runner : 오픈 소스 및 models의 구성을 활용한 클래스 정의
requirement
TensorRT 변환
- TensorRT 모델 사용하기 위해서는 모델 빌드 필요
- YOLO
yolo mode=export model=/workspace/ultralytics/weights/yolov8x.pt format=engine device=0 half=True
- mmdetection
- mmadetection에서 모델 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, smutils 설치
- 검출기의 cfg 및 모델 파라미터 준비
실행 방법
- 데모스크립트(demo/det_demo.py) 수정
- cfg 경로 수정
- 테스트 이미지 경로 수정
- 저장 경로 수정
- 데모스크립트 실행
cd demo
python det_demo.py
객체인식 과정 설명
- 객체 검출 모델 빌드
- 데이터 로드(이미지)
- 객체 검출 모델 구동(inference)
TODO
- runner/mmdet_pytorch_runner.py 구현 -> 출력 포맷 맞추기
- runner/mmdet_trt_runner.py 수정 -> mask 추론 유무에 따라 출력 데이터 설정