딥러닝 머신비전 소프트웨어 라이브러리

[테크월드=정환용 기자] 스마트 팩토리 솔루션이 전 세계적으로 확산되고 있다. 이제 손으로 만들고 눈으로 확인하는 수공업은 보기 힘들고, 모든 제품을 빠르고 정확하게 생산해 효율을 높이는 것이 관건이 됐다. 특히 생산 라인에서 제품의 상태를 검사하는 공정의 중요성이 날로 더해지고 있다. ㎜ 단위의 오차도 용납되지 않는 정밀부품이나 식품 분야에선 더욱 그렇다. 따라서 카메라로 제품의 상태를 빠르게 확인하는 머신 비전 시스템의 기술력이 더 크게 요구된다.

수아랩(SUALAB)은 인공지능 이미지 해석 기술을 기반으로 기존의 머신비전 기술을 향상시킨 딥러닝 머신비전 검사 솔루션을 제공한다. 딥러닝 기술이 적용된 머신비전 소프트웨어 라이브러리 ‘수아킷’(SuaKIT)은 제조업 분야에 특화된 솔루션으로, 검사 장비에 탑재해 사용할 수 있다. 제품의 불량을 픽셀 단위로 정확한 영역 형태로 검출할 수 있으며, 5픽셀 이하의 아주 작은 크기 불량도 검출할 수 있다.

수아킷은 현재 전기, 전자 산업군에 가장 많이 적용돼 있고, 이밖에도 다양한 산업 영역에 모두 적용할 수 있다. 수아킷으로 검사 프로젝트를 진행한 바 있는 분야는 다음과 같다.

전기·전자: 반도체, PCB, 디스플레이, 태양광 셀, 배터리, 카메라 모듈 등
자동차: 자동차 부품(베어링, 실린더 등), 산업용 섬유, 도장 검사 등
식품; 식음료 이물 검사, 패키징 외관 검사, 식자재 불량 검사 등
화학: 2차 전지, 산업용 필름 등
기타: 철강, 비파괴 검사(X-ray), 건축물 외관 검사, 기차 부품 검사 등

▲산업군 별 검사 자동화 보급률(단위: %) 자료: Metrology News
▲수아킷 그래픽 유저 인터페이스(GUI). 수아킷 GUI는 디벨로퍼와 런타임 2가지 유형으로 나뉜다. 디벨로퍼는 GUI 상에서 모델 트레인, 테스트를 수행하고, 런타임은 생성된 모델을 실제 생산 라인에 적용하고, 기존의 검사 장비와 연동해 검사할 수 있다.

양산 적용에 최적화돼 있는 수아킷은 ▲다양한 학습 방법론 ▲빠른 프로세싱 시간 ▲제품의 빠른 교체 주기와 다양성 극복 등의 장점을 가지고 있다

① 다양한 학습 방법론

‣단일 이미지 분석(Single Image Analysis)
각 이미지의 특징을 학습·검출한다.

‣이미지 비교(Image Comparison)
두 이미지 간의 차이점에 집중해 학습·검출한다. 단일 이미지만으로 불량 판단이 애매하거나 광학 조건·배경이 조금씩 달라지는 경우, 두 이미지 간 유의미한 차이점(불량 영역)에만 집중해 검출 성능을 극대화할 수 있다.

‣다중 이미지 분석(Multi Image Analysis)
여러 이미지 간의 상관관계를 분석, 학습하고 불량을 검출한다. 동일 제품을 여러 광학 조건으로 촬영해 검사하는 경우, 촬영된 다수 이미지 간의 상관관계를 분석해 검출 능력을 높
이고, 이미지를 묶어 한 번에 검사해 처리 시간이 짧아진다.

‣비지도 학습(One Class Learning)
결함 이미지 없이 정상 이미지만 학습해 불량을 검출한다. 일반적으로 딥러닝 모델을 학습하기 위해서는 일정 수준 이상의 정상과 결함 이미지가 필요하다. 그러나 제조 현장의 특성상 결함 이미지를 얻는 것이 어렵기 때문에, 불량의 특징을 충분히 분석할 수 없다는 문제점이 있다. 수아킷은 결함 이미지 없이 정상 이미지만 학습해 정상과 정상 외로 분류하는 비지도 학습 방법론을 통해 이런 문제점을 해결한다.

② 빠른 프로세싱 타임

‣쿠다(CUDA), cuDNN 등 GPU 전용 처리 언어를 활용해 처리 속도가 빠르다.

‣고속 라인, 진동이 발생하는 상황에서도 검사를 수행할 수 있다.

③ 제품의 빠른 교체 주기, 제품의 다양성 극복

‣특정 제품의 특정 결함을 학습한 딥러닝 모델은 새로운 제품이나 새로운 유형의 불량이 나왔을 때는 적용할 수 없고, 새로운 데이터를 다시 학습시켜 또 다른 딥러닝 모델을 생성해야 한다. 제품이 다양하고 교체 주기가 빠를수록 딥러닝 모델 생성에 많은 리소스를 할애해야 한다.
수아킷은 ‘이어 학습하기’ 기능으로 이 문제를 해결한다. 이어 학습하기는 동일 산업군의 새 제품 생산 시, 기존 제품의 딥러닝 모델을 활용할 수 있는 기능이다. 기존 검사 제품의 이미지에 적은 수량의 신제품 이미지만 추가하는 것으로 새로운 딥러닝 모델을 생성할 수 있다.

▲SuaKit Developer’s ver.

수아킷을 활용하기 위한 전제 조건
수아킷은 촬영된 이미지를 바탕으로 분석해 검사하는 소프트웨어다. 따라서 공정에서 반드시 제품이 이미지로 촬영돼야 하며, 촬영된 이미지의 불량은 육안으로 식별 가능한 수준이어야 한다. 비지도 학습 방법론을 제외한 다른 방법론을 통해 검사할 때는 정상과 불량 이미지가 모두 필요하며, 이 때 이미지 숫자는 불량 당 100장 정도를 권장한다. 또한, GPU 기반의 PC에서 수아킷을 사용할 수 있다.

▲PCB 양·불 판정 사례. 필터링율이 높을수록 육안 검사자가 검사할 이미지 수가 적어진다.

PCB 불량 검사 사례를 통한 수아킷 적용 시나리오
PCB AFVI를 최종 검사할 때, 분류 작업을 통해 양·불 제품을 분류한다. 실장된 판과 실장되지 않은 판 모두 수아킷으로 검사할 수 있다.

수아킷 적용 기본 흐름

1. 개발자 버전을 통해 딥러닝 망 학습과 생성, 모델 추출

   a. PCB 생산 라인의 검사 장비를 통해 정상과 불량 이미지를 취득한다. PCB 패널 전체 이미지를 취득하는 경우, 효과적인 불량 검출을 위해 전체 이미지를 유닛 단위로 잘라서 검사에 사용한다.
   b. 개발자 버전 수아킷(이하 수아킷.Dev)를 실행하고, 제품의 양·불을 분류할 수 있는 ‘Classification’ 기능을 선택해 프로젝트를 생성한다.
   c. 취득한 이미지를 수아킷.Dev에 로드하고, 검사할 영역(Region of Interest, RoI)를 설정한다. PCB 패널 분류의 경우, 불러올 수 있는 이미지의 최대 사이즈는 512×512픽셀로 제한된다.
   d. 불러온 전체 이미지를 학습용(Train), 테스트용(Test), 검증용(Validation)으로 나눈다. 학습용 데이터는 딥러닝 알고리즘이 특징을 추출해 학습하는 용도로 사용되며, 검증용 데이터는 학습이 올바르게 진행되는지 검증하는 비교군으로 사용된다. 테스트용 데이터는 앞서 학습을 바탕으로 생성된 딥러닝 망으로 테스트를 진행할 때 사용된다.
   e. 이미지 데이터의 용도를 구분한 후, 각각의 이미지에 라벨링(Labeling) 작업을 진행한다. ‘Classification’에서 라벨링이란 사용자가 직접 정상 이미지는 정상이라고 분류, 불량 이미지는 불량이라고 분류하는 작업이다. 학습을 진행하기 전 딥러닝 알고리즘에게 정답을 알려주는 과정이라고 보면 된다. 이후 사용자가 설정한 정답을 토대로 학습과 테스트를 진행하게 된다. PCB의 경우 결함이 없는 이미지에 ‘정상’으로 라벨링하고, 상처·돌기·이물·핀홀 등의 불량 이미지에 ‘불량’으로 라벨링한다.
   f. 수아킷 내 ‘학습 마법사’(Train Wizard)를 통해 밝기, 상하좌우, 반전, 학습 횟수, 학습 가중치 등 여러 매개변수를 설정한 후 학습을 시작한다. 학습 시간은 데이터의 수량에 따라 다르지만 1024×1024 픽셀 크기의 이미지 1000장을 기준으로 약 20분의 시간이 소요된다.
   g. 모델(학습 망)을 생성 후 테스트를 통해 망의 성능을 확인해 볼 수 있다. 검출 성능이 좋은 모델을 선택해 추출한다. 이 때, 모델은 ‘.net’ 파일 형태로 제공한다.

2. 모델과 검사 장비 연동

추출한 모델을 검사 장비와 연동한다. 검사 장비의 API에 모델의 API를 연계한다.

3. 실제 양산 라인에서 수아킷을 통한 검사 진행(실시간으로 촬영된 이미지를 검사)

   a. 각 제조 라인에 USB 형태의 동글키 ‘Runtime’을 꽂아 검사를 진행한다. PCB가 검사 장비를 통과하며 촬영되면, 실시간으로 촬영된 이미지를 분석해 정상과 불량 여부를 판정한다.
   b. 검사 결과 양·불 판정이 잘못된 이미지가 있으면 ‘비주얼 디버거’(Visual Debugger) 기능을 통해 딥러닝 망이 집중해 검사한 영역을 찾아 잘못된 판정을 시정할 수 있다. 일반적으로 딥러닝 기술은 인풋과 아웃풋은 알 수 있지만 중간 과정은 알 수 없는 블랙박스와 같다. 딥러닝 알고리즘이 ‘왜’ 그런 판정을 내렸는지는 알기 힘들다. 하지만 수아킷의 비주얼 디버거 기능은 딥러닝 알고리즘이 집중해 검사한 영역을 시각화해 보여주기 때문에 검사 결과의 원인을 알 수 있어, 이를 통해 문제를 해결할 수 있다.

 

기존 PCB 검사에 수아킷이 필요한 이유
PCB 검사는 일반적으로 AOI, AFVI 장비를 통해 먼저 1차 검사를 진행하고, 육안 검사자가 재검을 하는 형태로 이뤄진다. AOI, AFVI와 같은 기존 머신 비전 검사는 룰 기반 검사 방식으로, 룰 기반 알고리즘(Rule-Based Algorithm)이란 룰을 설정하고 그 룰을 기준으로 정상과 불량 여부를 판단하는 방식이다. 예를 들어 ‘밝기’를 기준으로 룰을 설정하면, 일정 수준 이하의 밝기를 가진 지점을 불량 영역으로 간주하는 식이다.

이 방식의 문제는 모든 룰을 수동으로 설정해야 한다는 것이다. 엔지니어들은 각각의 모든 결함들에 대해 룰을 세팅해야 하므로 상당한 시간적 비용이 발생한다. 전문 인력이 아닌 경우에는 룰 세팅조차 어려운 경우가 많다. 또한, 이런 과정을 거쳐 검사 알고리즘을 만들어도 비정형 불량의 경우에는 불량의 특징값을 도출하고 룰을 설정하는 자체가 힘들어, 결국 육안 검사를 병행해야 한다.

특히 PCB 검사의 경우 AOI, AFVI 1차 검사에서 정상 이미지를 불량으로 판별하는 과검이 70~80%나 발생해, 육안을 통한 재검이 필수다. 수아킷은 과검률을 상당히 낮춰 육안 검사자의 재검 비율을 대폭 감소시킬 수 있으며, 각 라인마다 배치돼 있던 상당수의 인력을 적절한 곳에 분배해 생산 효율을 높일 수 있다.

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지