Edge AI + Defect Detector

개발 로그

Edge AI + Defect Detector

개요

   최근 다양한 산업 분야에서는 AI를 다각화적으로 적용 하면서 AI 활용 결과 뿐만이 아니라 그 과정 또한 매우 중요해지고 있습니다. 즉 환경이 제한적인 상황에서 동일한 결과를 도출하기까지 얼마나 더 효율적으로 좋은 결과를 내는지가 매우 중요한 요소가 되었습니다.

   기존 Defect Detector 프로젝트를 활용하여 YOLO 모델을 이용하여 모델의 경량화 및 최적화 작업을 진행하여 결과 비교를 진행하였습니다.

사용 기술

언어 C++, Python
AI 모델 Customized YOLOv8n
추론 ONNX, ONNX Runtime, Quantization (INT8)
이미지 처리 Edge Detection, Morphology, Color Space

처리 과정

ㆍ YOLOv8n 학습 모델을 A4용지 객체만 탐지하도록 재학습

ㆍ Quantization (FP32 → INT8)

ㆍ ONNX Runtime 기반 추론 엔진 구축

ㆍ 기존 Defect Detector 기반 실시간 처리 파이프라인 설정

결과

입력 이미지 크기  :   640×480

FP32 INT8 (k=10) INT8 (k=50) 결과 (k=50 기준)
YOLO-avg 109.2 ms 74.3 ms 70.5 ms 약 -35.3% 개선
YOLO-p95 115.9 ms 78.3 ms 75.1 ms 약 -35.2% 개선
종합 추론 (avg) 159.01 ms 124.31 ms 120.53 ms 약 -24.3% 개선
FPS (avg) 6.29 8.04 8.29 약 31.8% 개선
Memory 258.35 MB 230.99 MB 225.01 MB 약 -12.9% 개선
Raw Score
(mean)
0.2289% 0.2327% 0.2282% -

요약  :   FP32 대비 Raw Score 차이가 적은 Int8 (k=50) 모델로 최종 선정

고찰

ㆍ 초기 알고리즘 구성
      - INT8 전체 양자화

ㆍ 개선 과정
      - INT8 + 후반 레이어 FP32 단계적 부분 양자화

ㆍ 느낀 점
      - 전체 구조 양자화시 모델 자체를 붕괴시킬 수 있음 중요성 확인
      - Edge 환경은 단순 속도 개선 뿐만이 아니라
          전체적인 시스템 구조까지 고려할 필요가 있음을 느낌