개발 로그 - 번외
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 이상의 결과. 즉 품질은 동등한 수준