Hailo 최적화 파이프라인

모델표준화(ONNX변환) - 데이터셋변환 - Hailo파싱 - Hailo양자화 - Hailo컴파일- Hailo성능평가

1. 모델 표준화(ONNX 변환)

수행작업

  • .pt, .pth, h5 등 다양한 딥러닝 라이브러리에서 생성된 가중치 파일을 .onnx 표준 포맷으로 변환 하는 작업
  • 최종 선정된 모델을 대상으로, 모델 학습 파이프라인의 마지막에 수행되는 것이 좋을 듯

필요사항

  • 각 모델 라이브러리 등 python 환경
  • 각 모델 환경에서 제공된 .onnx 변환 스크립트

산출물

  • model.onnx

2. 데이터셋 변환

수행작업

  • Hailo 최적화 단계 중 양자화 단계에서 사용될 데이터셋을 준비하는 과정
  • 이때 데이터셋은 모델 학습에 사용된 데이터셋을 일부 사용함
  • Hailo 라이브러리에서는 .tfrecord 포맷의 데이터셋만을 지원하므로 학습 데이터셋 일부를 .tfrecord 단일 파일로 병합함

필요사항

  • Hailo python 환경
  • 각 테스크(segmentation, detection)에 대한 어노테이션파일을 .tfrecord로 변환하는 스크립트

산출물

  • dataset.tfrecord

3. Hailo 파싱

수행작업

  • onnx 가중치 파일을 최적화를 위해 Hailo에서 지정한 표준( .har )으로 변환하는 과정
  • Hailo에서 제공된 (모델+스크립트)를 기본으로 하지만, 커스텀 모델의 경우 네트워크의 구조를 파악하고 변환할 node를 명시하도록 스크립트를 수정하여 사용

필요사항

  • Hailo python 환경
  • Hailo 모델 최적화를 위한 스크립트 (model_config.yaml)

산출물

  • hailo_model_parsed.har

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 환경
  • 모델 인퍼런스 및 평가 스크립트
  • 평가 데이터셋

산출물

  • 성능평가결과 (속도, 정확도 등)