Safemotion Lib
Loading...
Searching...
No Matches
smdetect

  • safemotion의 객체 검출 라이브러리

구조

│ ├── 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
      1. mmadetection에서 모델 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, smutils 설치
  3. 검출기의 cfg 및 모델 파라미터 준비
    • cfg에 파라미터 설정

실행 방법

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

객체인식 과정 설명

  1. 객체 검출 모델 빌드
  2. 데이터 로드(이미지)
  3. 객체 검출 모델 구동(inference)

TODO

  1. runner/mmdet_pytorch_runner.py 구현 -> 출력 포맷 맞추기
  2. runner/mmdet_trt_runner.py 수정 -> mask 추론 유무에 따라 출력 데이터 설정