Model Optimization

개발 로그 - 번외

SwinIR Model Optimization

개요

   최근 다양한 산업 분야에서는 AI를 다각화적으로 적용 하면서 AI 활용 결과 뿐만이 아니라 그 과정 또한 매우 중요해지고 있습니다. 즉 머신비전, 온디바이스화, 저사양 시스템 등 환경이 제한적인 상황에서 동일한 결과를 도출하기까지 얼마나 더 나은 속도로 도달하느냐가 매우 중요한 요소가 되었습니다.

   이를 참고하여 기존 프로젝트의 SwinIR 모델을 이용하여 모델의 경량화 및 C++를 활용한 최적화 작업을 진행하여 결과 비교를 진행하였습니다.

사용 기술

언어 Python (모델 경량화), C++ (추론 최적화)
모델 최적화 ONNX, ONNX Runtime (C++), Quantization(INT8)
개발 환경 Google Colab

처리 과정

ㆍ Python 학습 모델을 ONNX 포맷으로 변환

ㆍ 경량화 적용 (FP32 → INT8 Quantization)

ㆍ C++ 추론 엔진 구축 및 최적화
          └  ONNX Runtime C++ 기반 Inference Engine 구현

결과

입력 이미지 크기  :   174×228

FP32 INT8 결과
모델 크기 64.17MB 37.10MB 약 42.19% 경량화
추론 속도 약 737초 약 41초 약 94% 추론 속도 개선
평균 DIFF - - -2.50E-07
MSE - - 1.35E-06
PSNR - - 58.68dB

요약  :   모델 경량화 및 속도는 개선되면서 픽셀 차이 및 MSE값은 0의 가까운 수치
                   또한 PSNR값은 50dB 이상의 결과. 즉 품질은 동등한 수준

결과물 비교

FP32
INT8