품질 검사를 위한 AI의 발전 동향

TELEDYNE DALSA

 

제조 산업은 AI와 딥 러닝 기술로 전환되고 있으며 이는 제품 생산과 품질 검사에 사용되는 방식을 변화시키고 있다. 이러한 변화의 핵심은 소프트웨어, 새로운 딥러닝 기술, 병렬 처리의 힘, 사용하기 쉬운 도구의 조합 등이다. 기존의 이미지 처리 소프트웨어는 작업별 알고리즘에 의존하지만, 딥 러닝 소프트웨어는 사전 훈련 또는 사용자 훈련 알고리즘을 구현하는 다층 네트워크를 사용하여 좋은 이미지와 나쁜 이미지 또는 영역을 인식한다.


딥러닝 시스템을 훈련하고 예측 가능성이 높은 개체를 분류하는 모델을 생성하려면 수백 또는 수천 개의 고품질로 분류된 이미지가 필요했다. 이러한 유형의 데이터 세트를 수집하는 것은 매우 어렵기 때문에 제조 환경에 딥 러닝을 채택하는 것을 어려워했다.


하지만 새로운 기술의 발전으로 제조업체는 검사 프로세스의 일부만으로 딥 러닝을 더욱 쉽게 적용할 수 있게 됐다. 즉, 불량 이미지가 적거나 아예 없는 딥 러닝 시스템을 훈련할 수 있다. 머신 비전을 위한 딥 러닝 소프트웨어는 이제 사용자 친화적이고 실용적으로 변하고 있다. 결과적으로 제조업체는 딥 러닝 소프트웨어 실험 단계에서 구현 단계로 점차 발전하고 있다.

 

딥 러닝 vs 기존 방법


딥 러닝은 기존의 이미지 처리 방법으로 달성하기 어려운 작업에 이상적이다. 딥 러닝에 적합한 일반적인 환경은 조명, 노이즈, 모양, 색상, 질감 등 변수가 많다. 예를 들어, 식품 검사에서 두 덩어리의 빵이 완전히 똑같지는 않다. 각 덩어리는 재료가 같고 무게가 같지만 모양, 색상 및 질감이 약간 다르다. 또 다른 예는 사과의 숙성 경우다. 숙성은 색상, 부드러움 또는 질감을 의미할 수 있다.

 

그러나 사과가 익은 것으로 간주되는 다양한 가능성이 있다. 이러한 유형의 환경에서 딥 러닝이 빛을 발한다. 다른 예로는 표면 마감 품질 검사, 키트에 여러 품목이 있는지 확인, 이물질 감지 등을 들 수 있다. 이는 조립 공정 전반에 걸쳐 품질을 보장한다. 딥 러닝의 강점을 보여주는 실용적인 예는 금속과 같은 질감 표면의 스크래치 검사다.

 

이러한 스크래치 중 일부는 색상이 어둡고 질감이 있는 배경 자체와 같은 정도여서 식별이 힘들다. 종전의 기술은 모양, 밝기 및 대비가 샘플마다 다를 때 결함을 찾는 데 실패해왔다. 그림 1은 금속판의 스크래치 검사를 보여준다. 결함 위치의 픽셀을 강조 표시하는 유사 색상 이미지(pseudo-color image)인 히트 맵(heatmap)을 통해 결함이 명확하게 표시된다.

 

 

결함 검사의 또 다른 예는 복잡한 부품을 양호 또는 불량으로 분류하는 기능이다. 예를 들어 금속 나사는 표면에 고도의 변화가 나타내는 물체로 기존 알고리즘이 결함을 분리하기가 매우 어렵다. 딥 러닝 알고리즘은 그림 2와 같이 이러한 유형의 객체를 검사하는 데에 매우 능숙하다.

 

 

단순 분류를 사용한 결함 감지


기존 이미지 처리 기술에 비해 딥 러닝은 상당한 이점을 제공하지만 그럼에도 불구하고 문제는 존재한다. 첫째, 많은 사용자가 딥 러닝으로 성공하는 데 필요한 것이 무엇인지 이해하지 못한다. 둘째, 최근까지 딥 러닝은 시스템을 훈련시키기 위해 방대한 데이터 세트가 필요했다. 많은 애플리케이션이 수동으로 분류된 고품질 이미지의 부족으로 인해 딥 러닝을 활용할 수 없었다. 큰 데이터 세트를 사용할 수 있는 경우도 문제는 각 이미지에 레이블을 지정해야 하는 것이었다.

 

이 라벨링은 전문가가 수행해야 하고 오류가 없어야 하기 때문에 어려운 작업이다. 많은 수의 클래스(각각 고유한 레이블이 있는 다른 그룹)가 있는 경우는 더욱 오류가 발생하기 쉽다. 하지만 좋은 예 만을 네트워크에 훈련시키는 이상 탐지(anomaly detection)라는 새로운 분류 기술이 대안이 될 수 있다. 이 경우 네트워크 내에 있는 것은 정상으로 간주되는 것을 인식하고 해당 데이터 세트 외에 모든 것을 비정상으로 식별한다.


그래프에 ‘좋은 예’ 데이터 세트를 넣으면 얼룩처럼 보일 것이다. 얼룩 안에 있는 것은 모두 정상으로 분류되고 얼룩 밖에 있는 모든 것은 비정상으로 분류된다. 그림 1과 그림 2에 표시된 예제는 모두 학습에 사용할 수 있는 불량 샘플이 적거나 아예 없는 상황에서 이상 감지로 해결할 수 있다.


현재 사용 가능한 이상 탐지 도구를 사용하면 이전에는 활용할 수 없었던 새로운 애플리케이션으로 딥 러닝을 확장할 수 있다. 이상 탐지를 포함하면 시스템을 훈련하는 데 필요한 엔지니어링 노력을 줄이는 데 도움이 된다.


데이터가 있는 경우 이미지 처리 비전문가도 시스템을 교육받으면서 비용을 크게 줄일 수 있다. eledyne DALSA의 AstrocyteTM 소프트웨어는 분류, 이상 감지, 객체 감지, 분할 및 노이즈 감소를 포함하는 딥 러닝 알고리즘을 기반으로 하는 교육 도구이다.

 

 

결함 감지를 위한 딥 러닝 구현


제조 환경에서는 검사시스템을 구현하기 위해 간단한 분류기를 사용하든 이상 탐지 알고리즘을 사용하든 최소한의 샘플 세트로 신경망을 훈련시켜야 한다. 앞서 언급했듯이 이상 감지는 일반적으로 불량 샘플보다 양호한 샘플을 포함하는 불균형 데이터 세트를 허용한다. 그러나 얼마나 균형이 잡혔는지에 관계없이 이러한 샘플은 양호 또는 불량으로 분류되어 신경망 트레이너에 제공되어야 한다.


AstrocyteTM와 같은 GUI 기반 교육 도구는 데이터 세트를 신경망에 공급하는 동시에 이미지에 그래픽으로 레이블을 쉽게 지정할 수 있다. 아래 그림 4는 모든 샘플이 썸네일로 나열되는 AstrocyteTM의 분류 훈련을 보여준다. 각 샘플에 대해 썸네일 주변의 사각형은 레이블(예: 좋음 또는 나쁨)을 지정한다. 이 정보는 교육 시간에 사용자가 편집한 것이다.

 


이 프로세스를 자동화하는 쉬운 방법은 샘플을 두 개의 서로 다른 폴더(양호한 폴더와 불량품)에 넣고 폴더 이름을 레이블로 사용하는 것이다. 데이터 세트를 훈련할 때 고려해야 할 또 다른 중요한 측면은 테스트를 위해 이러한 샘플의 일부를 예약하는 것이다.


실제로 좋은 룰 중 하나는 그림 4에서 훈련/데이터 집합 비율 %로 표시된 것처럼 데이터 세트의 80%를 훈련에 할당하고 나머지 20%는 테스트에 남겨두는 것이다. 훈련 샘플이 신경망을 통과할 때 신경망의 가중치는 에포크(epoch)라고 하는 특정 반복 횟수에 맞게 조정된다. 훈련 샘플과 달리 테스트 샘플은 네트워크 가중치에 영향을 주지 않고 테스트 목적으로 신경망을 통과한다. 샘플의 훈련 및 테스트 그룹은 프로덕션에서 적절한 훈련 모델을 개발하는 데 중요하다.


훈련 세트가 생성되고 레이블이 지정되면 훈련 프로세스를 시작할 수 있다. 훈련 매개변수를 하이퍼파라미터(Hyperparameters, 신경망의 실제 가중치인 매개변수와 반대) 라고 한다. 가장 일반적인 하이퍼파라미터에는 알고리즘에 솔루션으로 수렴하는 속도를 알려주는 학습율, 훈련 프로세스 동안 반복 횟수를 결정하는 에포크 수, 한 번에 처리되는 샘플 수를 선택하는 배치 크기 및 문제를 해결하기 위해 선택된 모델 아키텍처 그리고 단순 분류를 위한 모델 아키텍처의 일반적인 예로 결함 감지와 같은, 분류 문제에서 자주 사용되는 모델 아키텍처인 콘볼루선 신경망(Convolutional Neural Network)인 ResNet 이 있다.

 

 


하이퍼파라미터가 구성되면(좋은 교육 도구는 실제로 잘 작동하는 기본값을 제공함) 학습 프로세스를 시작할 준비가 된 것이다. 훈련 시간 범위는 몇 분에서 몇 시간이며 데이터 세트의 샘플 수, 하이퍼파라미터, GPU 카드의 전원/메모리에 따라 다르다.


훈련 중에 손실 함수와 정확도라는 두 가지 기본 메트릭을 모니터링 할 수 있다. 손실 함수(loss functions)는 현재 모델 예측(신경망의 출력)과 기대(실제) 간의 차이를 보여준다. 이러한 손실 함수는 훈련하는 동안 0 을 향해 가야 한다. 서로 다른 경우 교육 세션을 취소하고 다른 하이퍼파라미터로 다시 시작해야 할 수 있다.


정확도는 모델이 샘플을 적절하게 분류하는 것이 얼마나 중요한 지를 알려준다. 이 메트릭은 훈련 중에 100%를 향해 가야 한다. 실제로 100%를 달성하는 경우는 거의 없지만 보통 95%에서 99% 사이이다. 그림 5는 AstrocyteTM에서 훈련하는 동안 손실 함수와 정확도의 그래프를 보여준다.


훈련이 허용 가능한 정확도로 완료되면 모델을 생산에서 사용할 준비를 마친 것이다. 실제 샘플에 모델을 적용하는 것을 추론(inference.)이라고 한다. 추론은 GPU 카드를 사용하는 PC 또는 병렬 처리 엔진을 사용하는 임베디드 장치에서 구현할 수 있다.


애플리케이션에 필요한 SWAP(크기, 무게, 전력)에 따라 GPU, FPGA 및 특수 신경 프로세서와 같은 임베디드 장치에서 딥 러닝을 구현하기 위한 다양한 기술을 사용할 수 있다. 딥 러닝은 그 어느 때보다 사용자 친화적이고 실용적으로 진화해 많은 애플리케이션에서 이점을 얻을 수 있다.


딥 러닝 소프트웨어는 기존 알고리즘보다 이미지를 더욱 잘 분류할 정도로 향상되었으며 곧 인간 검사자보다 뛰어난 검사 결과를 나타낼 것이다.

 

 

 

 

자료 제공: TELEDYNE DALSA(www.teledynedalsa.com)

 

 

 

 

주요기사

먼저 비밀번호를 입력하여 주세요.

창닫기확인