머신비전 파이프라인 아키텍처 & 멀티태스크 학습(MTL) 전략

1. 서론 (Introduction)

현대의 제조 산업(반도체, 디스플레이 등)에서는 고해상도 대용량 이미지를 초고속으로 분석하여 불량을 검출하는 자동 광학 검사(AOI) 시스템이 필수적입니다. 본 보고서는 이러한 현업의 요구사항을 충족하기 위해 설계된 ‘하이브리드 머신비전 파이프라인’의 이원화된 구조(Build-up / Runtime)를 정의하고, 향후 모델 성능 고도화를 위한 ‘멀티태스크 학습(MTL)’ 도입 전략을 고찰합니다.


2. 하이브리드 머신비전 파이프라인의 이원화 구조

진정한 의미의 장비 제어 소프트웨어는 AI 모델을 만드는 ‘연구 환경’과 실제 장비가 굴러가는 ‘배포 환경’이 완벽하게 분리되면서도 유기적으로 연결되어야 합니다. 이를 두 가지 파이프라인으로 정의합니다.

2.1. 1단계: 빌드업 (Build-up) 파이프라인 - “AI 뇌의 설계와 정제”

개발자가 데이터를 수집하고 AI 모델을 학습시켜 실제 장비에 얹을 수 있는 최적화된 파일(ONNX)로 뽑아내는 ‘인프라 준비 과정’입니다.

  • 데이터 수집 (Kaggle): 수십만 장의 웨이퍼 결함 데이터셋(WM-811K 등)을 확보합니다.
  • 모델 학습 (Hugging Face / PyTorch): 확보한 데이터를 바탕으로 CNN 기반의 경량 비전 모델(MobileNet, ResNet 등)을 파인튜닝(Fine-tuning)합니다.
  • 포맷 변환 및 이식 (ONNX Export): 학습이 완료된 무거운 Python 기반 모델을 C++ 엣지(Edge) 환경에서 즉시 로드할 수 있도록 범용적이고 가벼운 ONNX 포맷으로 추출합니다.

2.2. 2단계: 런타임 (Runtime) 파이프라인 - “실시간 현장 제어와 시각화”

실제 공장의 엣지 PC(장비) 내에서 C++ / C# 프로그램이 가동되며 초고속으로 불량을 탐지하는 ‘실행 과정’입니다.

  • 고속 필터 전처리 (OpenCV): 카메라에서 들어온 4K 원본 이미지 전체를 AI에 넣지 않습니다. 가우시안/라플라시안 필터를 거쳐 ‘불량으로 의심되는 구역(ROI)’만 빛의 속도로 작게 잘라냅니다.
  • 로컬 정밀 추론 (ONNX Runtime): 잘라낸 작은 이미지 조각만 메모리에 올라가 있는 AI 뇌(ONNX 모델)에 던져넣어 최종 판정을 내립니다.
  • 멀티스레딩 & 큐 구조: 카메라 수신, OpenCV 전처리, AI 추론을 각각 독립된 스레드(Thread)로 쪼개고, 그 사이에 데이터 버퍼(Queue)를 두는 생산자-소비자(Producer-Consumer) 패턴을 적용하여 프레임 드랍(Frame Drop)을 방지합니다.

💡 핵심 인사이트 (Training-Serving Skew 극복): 빌드업 단계(Python)의 데이터 리사이즈 방식과 런타임 단계(C++ OpenCV)의 리사이즈 보간법(Interpolation)이 다를 경우 AI의 신뢰도가 흔들립니다. 두 파이프라인의 전처리 로직을 cv::resize()로 완벽히 동일하게 맞추는 것이 본 아키텍처의 핵심 무기입니다.


3. 차세대 딥러닝 고도화 전략: 멀티태스크 학습 (Multi-Task Learning)

현재 구축한 시스템의 빌드업 파이프라인을 더욱 고도화하기 위해, 현업 AI 연구원들이 널리 사용하는 멀티태스크 학습(MTL) 개념을 도입할 수 있습니다.

3.1. 멀티태스크 학습(MTL)이란?

멀티태스크 학습은 인공지능이 서로 연관된 두 개 이상의 문제를 동시에 학습하도록 설계하는 기법입니다. 인간이 의학을 배울 때 해부학, 생리학, 병리학을 따로 배우는 것보다 함께 배울 때 서로의 지식이 시너지를 내어 더 깊게 이해하는 것과 같은 원리입니다.

  • 구조적 특징: 네트워크의 앞부분(Backbone)은 여러 태스크가 파라미터를 ‘공유(Shared)’하여 공통적인 특징을 추출하고, 뒷부분에서는 각 태스크별로 분기된 레이어(Task-specific layer)를 통해 각각의 결과값을 출력합니다.

3.2. 결함 탐지 시스템에 MTL이 강력한 이유

일반적인 단일 작업(Single-Task) AI는 “이게 불량인가요?” 하나만 묻고 답합니다. 하지만 MTL을 적용하면 다음과 같은 엄청난 이점이 생깁니다.

  1. 상호 보완을 통한 성능 향상 (Knowledge Transfer): 결함의 ‘크기’를 예측하는 회귀(Regression) 학습과 결함의 ‘종류’를 판별하는 분류(Classification) 학습을 동시에 진행하면, 모델이 “이런 종류의 스크래치는 보통 길쭉한 모양이구나”라는 공통 지식을 추출하여 과적합(Overfitting)을 방지하고 일반화 성능이 훨씬 좋아집니다.
  2. 런타임(Runtime) 속도 및 리소스 극대화: 실제 상수관로 내부 결함 연구 사례를 보면, 결함의 유무, 결함의 유형, 결함의 크기를 각각 다른 모델로 돌리지 않고 하나의 다중과제 학습(MTL) 모델로 동시에 예측하여 성과를 냈습니다. 우리 장비(C++) 입장에서도 여러 개의 ONNX 파일을 돌릴 필요 없이, 하나의 MTL ONNX 모델만 메모리에 올리면 한 번의 추론(Session.Run)으로 [결함 여부 / 불량 종류 / 위치 좌표] 3가지 값을 동시에 뱉어내므로 연산 속도가 비약적으로 상승합니다.

3.3. MTL 도입 시 극복해야 할 과제

물론 장점만 있는 것은 아닙니다. 태스크마다 데이터의 불균형이 있거나 학습 난이도가 다를 수 있습니다. 예를 들어 불량 종류를 맞추는 데 집중하느라 정작 위치 좌표는 엉망으로 뱉어낼 수도 있습니다. 따라서 각 태스크의 손실 함수(Loss function) 가중치를 어떻게 조절(Loss Balancing)할지가 핵심 연구 과제가 됩니다.


4. 결론 및 향후 계획

현재 기획된 [OpenCV 전처리 ➡️ 경량 비전 모델 로컬 추론]이라는 직렬 하이브리드 파이프라인은 현업 장비 소프트웨어의 표준 아키텍처를 정확히 따르고 있습니다.

향후 1단계(빌드업 파이프라인)에서 Hugging Face의 기본 분류 모델을 넘어 멀티태스크 학습(MTL) 아키텍처를 설계해 본다면, 2단계(런타임 파이프라인)에서 단 한 번의 고속 추론으로 복합적인 불량 정보를 모두 얻어낼 수 있는 초고도화된 검사 장비 시뮬레이터를 완성할 수 있을 것입니다.