Hailo 최적화 파이프라인
모델표준화(ONNX변환)
- 데이터셋변환
- Hailo파싱
- Hailo양자화
- Hailo컴파일
- Hailo성능평가
1. 모델 표준화(ONNX 변환)
수행작업
.pt
, .pth
, h5
등 다양한 딥러닝 라이브러리에서 생성된 가중치 파일을 .onnx
표준 포맷으로 변환 하는 작업
- 최종 선정된 모델을 대상으로, 모델 학습 파이프라인의 마지막에 수행되는 것이 좋을 듯
필요사항
- 각 모델 라이브러리 등 python 환경
- 각 모델 환경에서 제공된
.onnx
변환 스크립트
산출물
2. 데이터셋 변환
수행작업
- Hailo 최적화 단계 중 양자화 단계에서 사용될 데이터셋을 준비하는 과정
- 이때 데이터셋은 모델 학습에 사용된 데이터셋을 일부 사용함
- Hailo 라이브러리에서는
.tfrecord
포맷의 데이터셋만을 지원하므로 학습 데이터셋 일부를 .tfrecord
단일 파일로 병합함
필요사항
- Hailo python 환경
- 각 테스크(segmentation, detection)에 대한 어노테이션파일을
.tfrecord
로 변환하는 스크립트
산출물
3. Hailo 파싱
수행작업
- onnx 가중치 파일을 최적화를 위해 Hailo에서 지정한 표준(
.har
)으로 변환하는 과정
- Hailo에서 제공된 (모델+스크립트)를 기본으로 하지만, 커스텀 모델의 경우 네트워크의 구조를 파악하고 변환할 node를 명시하도록 스크립트를 수정하여 사용
필요사항
- Hailo python 환경
- Hailo 모델 최적화를 위한 스크립트 (
model_config.yaml
)
산출물
4. Hailo 양자화
수행작업
- 파싱된
.har
파일의 가중치를 양자화하여 최적화하는 과정
- Hailo에서 제공된 (모델+스크립트)를 기본으로 하지만, 커스텀 모델 또는 여러 양자화 알고리즘을 적용하기 위해 스크립트를 수정하여 사용
필요사항
- Hailo python 환경
- Hailo 모델 최적화를 위한 스크립트 (
model_config.yaml
)
- Hailo 모델 양자화/컴파일을 위한 스크립트 (
model_optimize.alls
)
- 필요에 따라, 모델의 전/후 처리를 위한 스크립트 (
yolo_nms_config.json
)
산출물
hailo_model_optimized.har
5. Hailo 컴파일
수행작업
- 양자화된
.har
파일을 Hailo 디바이스에서 실행가능한 파일(.hef
)로 변환하는 과정
- Hailo에서 제공된 (모델+스크립트)를 기본으로 하지만, 커스텀 모델 또는 최적의 컴파일 방법을 적용하기 위해 스크립트를 수정하여 사용
필요사항
- Hailo python 환경
- Hailo 모델 최적화를 위한 스크립트 (
model_config.yaml
)
- Hailo 모델 양자화/컴파일을 위한 스크립트 (
model_optimize.alls
)
- 필요에 따라, 모델의 전/후 처리를 위한 스크립트 (
yolo_nms_config.json
)
산출물
Hailo_model_compiled.har
Hailo_model_compiled.hef
6. Hailo 평가
수행작업
.hef
파일을 Hailo 디바이스를 통해 실행하고, 평가 데이터셋을 이용해 평가함
- 각 모델에 맞게 수정된 c++ 기반 실행파일을 이용해 결과를 저장하고, 평가 스크립트를 이용해 모델별 평가지표에 따른 결과를 도출함
필요사항
- Hailo device 및 runtime 환경
- 모델 인퍼런스 및 평가 스크립트
- 평가 데이터셋
산출물