Post

정부 R&D 과제 막막한 연구노트 작성 CNN 비전 검사

정부 R&D 과제 막막한 연구노트 작성 CNN 비전 검사

들어가며

혹시 정부 R&D 과제에 참여하고 계신가요? 그렇다면 ‘연구노트’라는 단어만 들어도 머리가 지끈거리는 경험, 다들 한 번쯤은 있으실 겁니다. 저 역시 최근 ‘의료기기 품질검사를 위한 지능형 비전 시스템 개발’ 과제를 진행하면서 아이리스(IRIS) 시스템에 연구노트를 등록해야 했는데요. 백지 앞에서 막막했던 시작부터 논리적인 흐름을 갖춘 한 편의 노트를 완성하기까지의 과정을 공유해볼까 합니다.

단순히 ‘무엇을 했다’는 기록을 넘어, 왜 이 기술을 선택해야만 했고, 어떤 과정을 거쳐 문제를 해결했는지를 설득력 있게 풀어내는 저만의 노하우를 담아봤습니다.


첫 단추: 이 문제, 왜 AI로 풀어야 할까?

모든 기술 도입에는 이유가 있어야겠죠. 저희 과제의 목표는 LED를 이용한 의료기기의 품질을 검사하는 시스템을 만드는 것이었습니다. 특히 민감한 부위에 사용하는 제품이다 보니, 사소한 흠집 하나도 그냥 넘길 수 없는 아주 높은 수준의 신뢰도가 필요했죠.

기존의 검사 방식은 크게 두 가지였습니다.

  1. 사람의 눈으로 직접 검사: 당연히 작업자의 컨디션이나 숙련도에 따라 결과가 들쑥날쑥합니다. 피곤한 오후에는 미세한 흠집을 놓칠 수도 있고, 사람마다 불량이라고 판단하는 기준도 제각각일 수밖에 없죠. 의료기기처럼 일관성이 생명인 분야에는 적합하지 않았습니다.
  2. 규칙 기반 머신비전: ‘특정 위치에, 특정 크기의, 특정 색상 값을 가진 픽셀이 있으면 불량’처럼 명확한 규칙을 코드로 정해놓는 방식입니다. 하지만 현실의 불량은 그렇게 호락호락하지 않습니다. 조명이 조금만 바뀌어도, 흠집의 모양이 약간만 달라도 규칙에서 벗어나 버리니 제대로 검출할 수가 없었죠. 모든 불량 케이스에 대한 규칙을 사람이 만든다는 건 사실상 불가능에 가까웠습니다.

바로 이 지점에서 “AI, 특히 딥러닝 기반의 비전 검사가 필요하다”는 결론에 도달했습니다. 딥러닝 모델은 수많은 불량 이미지를 직접 보고 스스로 불량의 특징을 학습합니다. 마치 숙련된 전문가가 수많은 경험을 통해 불량을 찾아내는 노하우를 터득하는 것처럼요. 덕분에 예측하지 못한 형태의 불량에도 유연하게 대처할 수 있고, 사람의 주관이 개입될 여지도 없습니다. 연구노트의 서론은 바로 이 ‘왜’라는 질문에 답하는 과정이었습니다.


연구노트의 뼈대 세우기: 어떤 순서로 이야기를 풀어나갈까?

‘왜’가 해결되었으니, 이제 ‘어떻게’를 논리적으로 설명할 차례입니다. 저는 다음과 같은 흐름으로 연구노트의 뼈대를 세웠습니다.

1단계: 문제 구체화하기 (결함의 종류 정의)

뜬구름 잡는 이야기는 금물입니다. 가장 먼저 우리가 찾아내야 할 결함이 무엇인지 명확하게 분류하는 작업부터 시작했습니다.

  • 기능적 결함: LED가 켜지지 않는 ‘데드 픽셀’, 밝기가 일정하지 않은 ‘휘도 불균일’ 등 제품 성능에 직접적인 영향을 주는 문제들.
  • 외관 결함: ‘표면 긁힘’, ‘미세 균열’처럼 사소해 보이지만, 의료기기에서는 감염의 원인이 될 수 있는 치명적인 문제들.

이렇게 결함을 구체적으로 정의하고 나니, 우리가 풀어야 할 문제가 훨씬 명확해졌습니다.

2단계: 핵심 기술 파고들기 (왜 하필 CNN인가?)

AI 비전 검사 모델에도 여러 종류가 있지만, 이미지 인식 분야에서는 단연 합성곱 신경망(CNN, Convolutional Neural Network)이 대표 주자입니다. CNN이 이 과제에 가장 적합하다고 판단한 이유는 ‘계층적 학습 능력’ 때문이었습니다.

CNN은 이미지의 작은 부분(지역)부터 훑으며 특징을 추출하는데요. 초기 계층에서는 선이나 점 같은 단순한 특징을 학습하고, 계층이 깊어질수록 이를 조합해 점점 더 복잡하고 추상적인 특징(예: 긁힘 패턴, LED의 둥근 형태)을 이해하게 됩니다. 이 방식은 미세한 흠집부터 넓은 영역의 밝기 불균일 문제까지, 다양한 스케일의 결함을 효과적으로 잡아내는 데 최적화된 구조였죠.

3단계: 실용성을 더하다 (YOLO 모델을 선택한 이유)

단순히 불량 여부를 가리는 ‘분류(Classification)’ 모델을 넘어, 결함이 ‘어디에’ 있는지까지 알려주는 ‘객체 탐지(Object Detection)’ 모델이 필요했습니다. 수리나 원인 분석을 위해서는 정확한 위치 정보가 필수니까요.

후보로는 높은 정확도의 Faster R-CNN과 빠른 속도의 YOLO(You Only Look Once)가 있었습니다. 저희는 YOLO를 선택했는데요. 아무리 정확해도 검사 속도가 생산 라인의 속도를 따라가지 못하면 무용지물이기 때문입니다. YOLO는 실시간에 가까운 빠른 처리 속도를 자랑하면서도 준수한 정확도를 보여주어, 생산성까지 고려해야 하는 현장 상황에 가장 적합한 모델이라고 판단했습니다.


모델의 성능은 결국 ‘이것’에 달렸다: 데이터, 그리고 또 데이터

아무리 뛰어난 모델도 데이터가 없으면 무용지물입니다. 딥러닝 프로젝트의 성패는 80% 이상이 데이터에 달려있다고 해도 과언이 아니죠. 저희는 체계적인 데이터 전략을 세웠습니다.

  • 데이터 수집 및 정제: 가장 중요한 단계입니다. 일관된 조명과 각도에서 고해상도 이미지를 촬영하고, 각 이미지에 어떤 결함이 있는지 꼼꼼하게 이름표를 붙여주는 ‘레이블링(Labeling)’ 작업을 진행했습니다. 이게 바로 AI의 정답지가 되는 셈이죠.
  • 데이터 증강 (Data Augmentation): 수천, 수만 개의 다양한 불량 데이터를 모으는 건 현실적으로 어렵습니다. 그래서 기존 이미지를 좌우로 뒤집거나, 살짝 회전시키거나, 밝기를 조절하는 등 약간의 변형을 주어 데이터의 양을 인공적으로 늘렸습니다. 이 과정을 통해 모델은 더 다양한 상황에 대처하는 능력을 기르고, 과적합(학습 데이터에만 과도하게 최적화되는 현상)을 피할 수 있습니다.

똑똑하게 모델 개발하기: 전이 학습(Transfer Learning)

수백만 장의 이미지로 밑바닥부터 모델을 학습시키는 건 엄청난 시간과 자원이 필요합니다. 저희는 ‘전이 학습’이라는 아주 효율적인 방법을 사용했습니다.

이미 구글이나 페이스북 같은 거대 기업들이 엄청난 양의 이미지로 미리 학습시켜놓은 똑똑한 모델(사전 학습 모델)을 가져와서, 우리가 가진 LED 결함 데이터에 맞게 마지막 부분만 살짝 튜닝하는 방식이죠. 비유하자면, 세상의 온갖 사물을 구분할 줄 아는 전문가에게 ‘LED 결함’이라는 특정 분야만 추가로 가르치는 것과 같습니다. 훨씬 적은 데이터와 시간으로도 놀랍도록 높은 성능을 얻을 수 있는 최고의 전략 중 하나입니다.


마무리하며: 연구노트, 그 이상의 의미

이렇게 하나씩 논리의 조각을 맞춰나가니, 처음엔 막막하기만 했던 연구노트가 어느새 꽤 그럴듯한 모습을 갖추게 되었습니다. 아이리스 시스템에 최종 노트를 등록하며 느낀 점은, 연구노트 작성이 단순히 과제를 위한 행정 절차가 아니라는 것이었습니다.

문제를 정의하고, 기술을 검토하고, 데이터를 준비하고, 모델을 개발하는 전 과정을 스스로 복기하며 프로젝트의 논리를 단단하게 만드는 과정 그 자체였던 셈이죠. 혹시 지금 연구노트 때문에 고민하고 있다면, ‘기록을 남긴다’는 부담감보다는 ‘내 프로젝트의 논리를 완성한다’는 생각으로 접근해보시는 건 어떨까요? 분명 그 과정에서 더 깊은 인사이트를 얻으실 수 있을 겁니다.

This post is licensed under CC BY 4.0 by the author.