I. Introduction
품질 검사(Quality Control)와 이상치 탐지(Anomaly Detection)는 제조 과정에서 중요한 단계로, 제품의 품질과 성능을 보장하기 위한 필수적인 요소 중 하나이다. 과거에는 이러한 품질검사 작업이 주로 작업자가 직접 수행하여 검수 과정에서 숙련도, 경험 차이로 인한 일관된 불량 선별이 이루어지지 못한 문제가 있다. 최근에는 인공지능 기술의 발전에 따라 품질검사에 인공지능을 적용한 연구가 많이 진행되고 있다. 이러한 품질검사 자동화 기술은 작업자의 편견과 주관적인 판단을 제거 할 수 있고, 일관된 기준에 따라 제품을 선별하도록 하여 일정한 품질을 유지 하는 것을 가능하게 만들어 준다. 또한, 작업자를 대체하여 중소기업에서 가장 큰 문제 중 하나인 인력난을 해결해 주는데 도움을 줄 수 있다. 그러나 이러한 품질검사 시스템을 구축 하려면 카메라, 자동화 라인 등의 하드웨어뿐만 아니라 적절한 품질 데이터 셋을 확보하고 알고리즘을 개발할 전문가가 필요하다. 이는 많은 비용과 시간이 필요하여 쉽게 적용하지 못한다는 문제가 있다. 특히 데이터셋에서 수작업으로 레이블링(Labeling)이 필요한 경우 전문적인 지식을 요하기 때문에 비용과 시간 소요는 더욱 커지게 될 수 있다.
품질검사 방법에는 여러 가지가 있지만 가장 많이 사용하는 센서는 비전 카메라이다. 비전 기반의 품질검사는 카메라로 부터 획득한 이미지를 활용하여 불량품을 검출해 내는 방법으로 가장 많이 사용하는 알고리즘 방식에는 크게 지도 학습(Supervised Learning)과 비지도 학습(Unsupervised learning) 두 가지로 나눌 수 있다.
지도 학습 기반의 품질검사 방법은 레이블링 된 정상 및 비정상 데이터를 기반으로 모델을 학습시키는 방식으로 일반적으로 사용되는 기법에는 서포트 벡터 머신(Support Vector Machine), 딥 러닝 신경망, 랜덤 포레스트(Random Forest) 등이 있다. 이러한 지도 학습 방법은 정상/비정상 모두의 데이터에 기반 하여 불량을 식별하므로 일반적으로 높은 정확도를 갖지만 정상과 비정상 데이터의 균형을 유지하고 정확한 레이블이 필요하다는 한계가 있다[1,2].
반면, 비지도 학습 기반의 품질검사 방법은 레이블이 없는 데이터를 활용하여 모델이 데이터의 구조와 패턴을 스스로 학습하고 비정상 상태를 탐지하는 방식이다. 이 방법은 별도의 레이블이 필요 없기 때문에 데이터 수집 및 비단계에서 많은 시간과 비용을 절약할 수 있고, 정상과 비정상 데이터 간의 균형을 유지할 필요가 없다는 장점이 있다. 그러나 불량을 규정하는 특성 추출이나 데이터 패턴에 대한 결과 해석이 어렵다는 점과, 정확도가 지도 학습에 비해 낮아진다는 단점이 있다.
Fig. 1은 비닐 포장으로 이루어진 사각 티슈로 생산되는 제품마다 다른 형태를 갖는다. (a)는 정상 제품의 이미지로 4개의 제품 모두 정상 이지만 조금씩 서로 다른 형상을 갖는다. (b)는 불량(비정상)품 이미지로 포장 부분이 찢어져 있는 상태이다. 제품의 형태가 위와 같기 때문에 정상상태를 완벽하게 정의하기 어렵다.
Fig. 1. Examples of normal data(a), abnormal data(b)
본 논문에서는 이러한 대상 물체를 제조 하는 기업을 위한 품질 검사 시스템을 구축하는 방법을 제안 하고 실제 현장에 적용하여 그 성능을 평가 했다.
II. Preliminaries
이상치 탐지(Anomaly Detection)는 Fraud Detection[3], Violence Detection[4], Medical Diagnostics[5], Industrial Defect Detection[6] 등 광범위한 응용 분야에서 연구 되어 지고 있다. 특히 제조 산업현장에서의 결함 탐지는 단순하게 이상치를 구별하는 것뿐만 아니라 이상치의 영역까지 잘 찾아내려는 시도를 하고 있다. 그러나 이상치 영역 탐지로 생산성과 최적화가 이루어진다 하더라도 실제 제조 과정 중 발생하는 모든 이상치를 예측하고 이를 포함하는 데이터 셋을 구성하는 것은 비현실적이다. 특히 픽셀 단위로 이상치 데이터에 레이블링을 할 경우 많은 시간이 들기 때문에 지도 학습 방식의 이상치 탐지로는 불가능한 경우가 있을 수 있다. 이러한 어려움을 해결하기 위해 비지도 학습 방식의 이상치 탐지는 별도의 레이블을 필요로 하지 않아 데이터 수집에 용이하다는 장점이 있다. 또한 완전한 자동화가 이루어지기 어려운 중소 제조 현장에서는 많은 비용의 투자가 어렵기 때문에 전문가가 아니더라도 쉽게 구성하고 운용이 가능 하도록 구성해야 한다. 따라서 비지도 학습 기반의 중요성이 더 커지고 정확도를 높이려는 연구가 많이 진행되고 있다.
실용적인 시나리오에서 정상 데이터만으로 사용이 가능한 비지도 학습 이상치 탐지는 out-of-distribution 또는 one-class classification으로도 불린다. 일반적인 접근방법으로는 재구성 기반 방법(Reconstruction based method)으로 이미지 이상치 탐지뿐만 아니라 비디오 위반 탐지(Video violation detection)에서도 많이 사용되는 방법론 이다[7-9]. 이 방법은 오토인코더(Auto encoder). GAN(Generative Adversarial Networks)과 같은 생성모델을 사용하여 정상 데이터를 encoding 하고 다시 reconstruction 하도록 학습하고, 이상치 데이터의 경우 높은 reconstruction error가 발생하여 이를 구별하는 방식이다[10-14].
이러한 이상치 탐지 분야에서 가장 널리 알려진 MVTech-AD Dataset[6]으로 많은 연구가 진행되고 있다. 대표적으로 PathCore[16] 알고리즘은 패치 특징의 메모리 뱅크를 구축하고 테스트 패치와 가장 가까운 이웃 간의 유사도를 측정한다. 최근에는 패치간의 무차별 매칭 외에도 테스트 패치와 유사한 기하학적인 특성을 가진 참조 집합간의 패치 매칭이 제안되기도 했다[17,18]. 그러나 이러한 패치 매칭 방법은 높은 정확도를 갖지만 정렬되지 않은 이미지에서는 뚜렷한 성능 향상을 보이지 않고 있다. 또한 실제 제조 현장에서는 MVTech-AD Dataset처럼 잘 정렬되고, 정확한 레이블 값을 추출되기는 어려운 환경이다.
따라서 본 연구에서는 (1)제조 환경 설비의 변화 없이 구축 가능한 비전 시스템 하드웨어 구성과 (2)이를 운용하는 소프트웨어 시스템과 사용자 GUI환경 구축, (3)레이블링과 같은 전처리 없이 학습 가능한 재구성 기반의 Deep SVDD[15] 알고리즘을 응용한 모델을 제안했다.
III. Implementation
본 절에서는 품질 검사 시스템의 하드웨어 및 소프트웨어 설계 방법과 인공지능을 활용한 양품/불량품 판정에 대한 알고리즘 구현 방법에 대해 소개한다.
1. Hardware System
Fig. 2는 품질 검사 시스템의 하드웨어 구성이다. 제조 현장에서 물체는 컨베이어를 따라 계속 움직이고 있기 때문에 이미지를 획득해야 하는 정확한 시점을 Vision Sensor에 전달해 줘야한다. 본 연구에서는 Trigger Sensor를 포토 센서로 선정하고, Vision Sensor와 GPIO(General Purpose Input/Output) 케이블로 연결했다. 물체가 포토 센서를 통과 할 때 5V의 전압을 발생시키고 이를 Vision Sensor로 입력 받아 이미지를 촬영 하도록 구성 했다. 촬영된 이미지는 Ethernet 케이블을 통해 PC(Personal Computer)로 전달하고 양품/불량품 판정 알고리즘을 수행 한다. 그 결과로 불량품 판정을 내린 경우 Vision Sensor의 GPIO 케이블을 통해 3.3V를 공압실린더(Pneumatic Cylinder)에 전달하여 동작시켜 외부로 배출 될 수 있도록 구성했다.
Fig. 2. Hardware System
2. Software System
Fig. 3은 본 연구에서 진행한 품질 검사 시스템의 흐름도 이다. 품질검사 시스템이 실행되면 카메라 연결 확인 및 모드를 선택하게 된다. 이때 모드는 AI 모드와 일반 모드로 나누어지는데, 일반 모드는 알고리즘 동작 없이 촬영한 이미지를 저장만 하고 AI 모드는 이미지를 촬영 하고 인공지능 기반의 양품/불량품 판정을 내리는 알고리즘이 동작한다. AI 모드에서는 촬영된 이미지를 전처리 하고, 학습된 인공지능 모델로부터 결과를 얻는다. 이때 얻는 결과는 실수 형태의 Score 값으로 미리 정의된 Score 값 이하면 양품, 이상이면 불량 판정을 내리고, Vision Sensor에 배출 명령을 전달한다.
Fig. 3. System Flow Chart
3. AI based Quality Inspection Algorithm
본 절에서는 Deep SVDD의 Framework를 활용한 양품/불량품 판정 알고리즘 개발에 대한 내용을 다룬다. Deep SVDD는 딥러닝을 기반으로 학습한 데이터의 Feature Space를 통해 정상 데이터를 둘러싸는 구를 찾는 것을 목적으로 한다. 먼저 Fig. 4에서 Pretrained 부분은 오토엔코더(Auto encoder) 구조로 이루어진 모델을 학습 하는 것으로 정상 이미지만으로 이루어진 데이터를 기반으로 인코더-디코더를 통해 reconstruction error를 최소화 하도록 학습하여 정상 제품의 중요한 특징들을 학습한다. 이때, 학습된 인코더를 통해 나오는 잠재 공간 벡터를 특징 벡터로 사용하여 반지름이 R, 중심이 C인 구를 만들도록 학습한다. 따라서 테스트 데이터는 학습된 인코더를 통해 특징 벡터로 추출 되면, 중심 C로 부터의 거리가 최종 score로 출력 되며 값이 작을수록 정상에 가깝고, 멀수록 비정상 상태로 탐지가 가능하다. 이를 식으로 나타내면 아래와 같다.
Fig. 4. Deep SVDD Framework
S(x) = ||Zi - c0||2 … (1)
식 (1)에서 S는 최종 출력 값인 score 값, x는 input 되는 이미지이다. Fig. 4에서도 나와 있는 Zi 는 Encoder에서 나오는 100차원의 특징 벡터로 학습된 중심점인 c0 부터의 거리를 계산하고 이를 바탕으로 정상, 비정상으로 판단 한다.
Table 1은 Fig. 4의 구조 중 Pretrained Auto encoder 모델에 대한 구조이다. 이때 기존의 Deep SVDD와는 다르게 학습 데이터로 사용되는 이미지를 256 x 256 사이즈로 resizing하는 전처리를 거친 후, 모델에 입력 한다. 파란색으로 표시된 부분이 Encoder, 초록색으로 표시된 부분이 Decoder로 Layer 구성과 output shape, Parameter의 수로 나누어 표시 했다. 특징 벡터의 크기는 100차원으로 사용 하고, Loss Function과 optimization 은 Deep SVDD와 동일하게 구성했다. Test 부분은 Decoder를 제외한 Encoder 부분만을 활용하여 앞서 구한 Centroid 부분과의 L2 Norm으로 거리를 구하고 이를 Score 값으로 정의했다. Score 값이 기준치 이하면 정상품, 이상이면 불량품으로 판정을 내리는데, 현장 실험을 통해 적절한 기준 값을 정했다.
Table 1. Pretrained Auto encoder Architecture
4. Application
앞서 카메라와 포토 센서 등의 하드웨어와 AI model을 활용하여 현장에 적용 테스트가 가능하도록 Fig. 5와 같이 UI를 구성했다. Fig. 3의 소프트웨어 흐름도에 맞춰 카메라를 연결하고 Normal mode, AI mode를 선택 할 수 있도록 했다. Fig. 5의 파란 박스에 있는 Normal mode는 데이터 취득을 위해 촬영되는 모든 이미지를 바로 저장 하고, AI mode는 촬영된 이미지에 대해 위에서 구현한 인공지능 모델을 적용하여 양품/불량품 판정을 내릴 수 있도록 했다. 왼쪽 하단에 텍스트 박스를 통해 저장되는 이미지의 시간과 정상, 불량 상태, score 값을 표시하여 실시간으로 확인이 가능하도록 했다. 빨간 박스로 표시되어 있는 부분은 양품/불량품 판정 기준 값(Score Threshold)과 카메라의 Configuration 값을 작업자가 변경 할 수 있도록 구성 했다. Count 값은 촬영된 이미지의 전체 개수 이고 AI 모델 결과에 따라 양품, 불량품의 수를 카운팅 했다. 불량품으로 판단 할 경우 배출 신호를 내리는데 3.3V를 출력하여 공압 실린더를 작동 시킨다. Set Delay와 Apply Time은 양품/불량품 판단 후에 정확한 배출 시점을 계산하기 위한 기능이다. 컨베이어에서 제품이 계속 움직이기고 있기 때문에 알고리즘 수행 후 얼마를 기다리고, 3.3 V 출력을 유지 시켜주어야 하는지에 대한 시간(초 단위)을 셋팅하기 위해 구현했다. 아래 Exposure, Gain 은 카메라의 조명 값을 조절하여 적절한 밝기 값을 유지 시켜 주기 위한 기능이다. 마지막으로 빨간 박스 오른쪽의 Show Results를 통해 이미지가 저장된 폴더를 불러와 촬영된 이미지를 확인 할 수 있는 기능을 추가 했다.
Fig. 5. Application UI
IV. Experiment Results
본 연구에서 제안하는 품질 검사 시스템은 포토센서, RGB 카메라, PC, 공압 실런더로 이루어져 있다. 포토 센서는 오토닉스 BJ300-DDT모델을, RGB 카메라는 Flir BFLY-PGE-50S5C를 사용 하고, 쉽게 구매 가능한 공압실린더를 사용했다. 인공지능 알고리즘이 수행되는 PC는 인텔 코어 i7, RTX 3070 GPU를 사용하고 Python 3.8, Pytorch 1.9.0, CUDA 11.1 버전 환경으로 구성했다.
알고리즘의 학습 데이터는 실제 제조 현장에서 획득 한 데이터를 기반으로 구성했으며, 학습 데이터는 6,337개로 구성했다. 테스트 데이터는 2000개로 구성하여 총 8,337개의 데이터 셋을 사용했다. 먼저, Pretrained Auto encoder는 300 epoch, 0.0001 Learning rate, 0.5e-3weight decay, batch size는 32로 설정 했다. 최종 적으로 Deep SVDD network는 300epoch, 0.0001 Learning rate, 0.5e-6 decay로 하이퍼파라미터를 설정 했다. 학습된 모델을 바탕으로 테스트 데이터셋은 1900개의 정상품과 100개의 불량품으로 나누어 분류 정확도 및 AUC-ROC(Area Under the Curve – Receiver Operating Characteristic)를 그려 실험 결과를 확인 했다. 테스트 데이터가 불균형한 이유는 실제로 제조 현장에서 발생하는 불량률은 5% 내외로 발생한다. 이 때문에 2000개의 5%인 100개를 불량품으로 구성 했다.
Fig. 6는 2000개의 테스트 데이터로부터 학습한 모델의 ROC 그래프를 그려 0.92의 ACU 값을 얻었다. 이 값이 1에 가깝기 때문에 학습한 모델이 양품/불량품을 잘 구별해 낼 수 있다는 결과를 얻었다. 이를 바탕으로 테스트 데이터의 Confusion Matrix 및 정확도 측정을 진행 했다.
Fig. 6. Results of AUC-ROC Graph
Table 2는 양품/불량품의 기준이 되는 Score Threshold 값을 정하고 그에 따른 정확도를 측정한 테이블 이다. 구성한 테스트 셋에 대해 서로 다른 5개의 Score Threshold을 정하고 그에 따른 FP(False Positive), FN(False Negative)를 표시 했다. Table 2에서 확인 할 수 있듯이, Score Threshold 값이 0.01 일 때, 오탐지 FP가 0이 되어 Precision 값이 1이 된다. 그 이상으로 갈수록 불량품에 대한 오탐지가 많아져 Recall 값이 미세하게 낮아지는 것을 확인했다.
Table 2. Results of Confusion Matrix based on the Score Threshold
Fig. 7에서 첫 번째 이미지는 정상품으로 Score 값이 0.001 미만으로 나오는 반면 두 번째 이미지는 정상제품이지만 Alignment가 틀어져 Score 값이 높게 나와 비정상으로 분류된 예시이다. 마지막 이미지는 불량품 이지만 정상품과 비슷하여 Score Threshold 값이 높을 경우 정상으로 오탐지 되는 경우가 발생 하였다. 정확도를 보다 높이기 위해 공정 라인의 가이드를 수정하여 제품의 Alignment를 맞춰 FP(False Positive)가 발생할 확률을 줄일 수 있다. 실제 제조 공장에서는 검수자가 따로 있기 때문에 Score Threshold 값을 가능한 낮게 두어 정상품의 오탐지율을 낮게 가져가는 방향으로 설정할 예정이다.
Fig. 7. Example of normal, False Positive, False Negative sample data
Fig. 8은 실제 제조 현장에 설치된 비전 시스템의 모습이다. 왼쪽 이미지에서 빨간색 원 위치에 카메라가 설치되어 있고, 파란색 원 위치에 트리거 신호가 나오는 포토 센서를 설치했다. 오른쪽 이미지의 초록색 원에 실린더를 설치하여 라인 외부로 불량품을 배출해 내도록 구성 했다.
Fig. 8. Proposed vision system
V. Conclusions
본 연구에서는 인공지능 기반의 품질검사 알고리즘 개발과 그에 따른 시스템을 구축하는 방법을 제안하였다. 레이블링이 없는 비지도 학습 기반으로 알고리즘을 구성하고 저가의 센서 및 하드웨어로 구성 되어 전문적인 지식이 없어도 쉽게 시스템 구축이 가능한 방법을 제시 했다. 데이터가 더 누적 되고 라인을 보정 시켜 제품의 Alignment를 교정 한다면 더 높은 정확도를 보일 것으로 기대 한다. 그러나 단일 카메라로만 제품의 이미지를 획득하다 보니 보이지 않는 부분에 대해서는 불량 검출을 할 수 없다는 문제가 있었다. 향 후 다중 카메라 또는 제품을 회전 시키거나 라인의 양 옆에 거울을 배치시키는 등 보다 정확한 불량 검출에 대한 연구를 진행할 예정이다. 또한, 현재 구축한 비전 품질검사 시스템을 비슷한 동종 업계에 설치하여 테스트 할 것이다.
ACKNOWLEDGEMENT
This work was supported by the Technology development Program(RS-2022-00156441) funded by the Ministry of SMEs and Startups(MSS, Korea)
References
- El Hajjami, S., Malki, J., Berrada, M., & Fourka, B. "Machine learning for anomaly detection. performance study considering anomaly distribution in an imbalanced dataset" International Conference on Cloud Computing and Artificial Intelligence: Technologies and Applications (CloudTech). IEEE 5th: pp. 1-8, 2020 DOI:10.1109/CloudTech49835.20 20.9365887
- Papernot, Nicolas, et al. "The limitations of deep learning in adversarial settings." IEEE European symposium on security and privacy (EuroS&P). IEEE, pp. 372-387, 2016 DOI: 10.1109/EuroSP.2016.36
- Raj, S. Benson Edwin, and A. Annie Portia. "Analysis on credit card fraud detection methods." International Conference on Computer, Communication and Electrical Technology (ICCCET). IEEE, pp 152-156, 2011 DOI: 10.1109/ICCCET.2011.5762457
- SULTANI, Waqas et al. "Real-world anomaly detection in surveillance videos." In: Proceedings of the IEEE conference on computer vision and pattern recognition. pp. 6479-6488, 2018 DOI:10.48550/arXiv.1801.04264
- PALURU, Naveen, et al. "Anam-Net: Anamorphic depth embedding-based lightweight CNN for segmentation of anomalies in COVID-19 chest CT images." IEEE Transactions on Neural Networks and Learning Systems, Vol. 32, No. 3: 932-946, 2021 DOI: 10.1109/TNNLS.2021.3054746
- BERGMANN, Paul, et al. "MVTec AD--A comprehensive real-world dataset for unsupervised anomaly detection." In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. pp. 9592-9600, 2019 DOI: 10.1109/CVPR.2019.00982
- LUO, Weixin et al. "A revisit of sparse coding based anomaly detection in stacked rnn framework". In: Proceedings of the IEEE international conference on computer vision. pp. 341-349, 2017 DOI: 10.1109/IC CV.2017.45
- SABOKROU, Mohammad, et al. "Deep-cascade: Cascading 3d deep neural networks for fast anomaly detection and localization in crowded scenes." IEEE Transactions on Image Processing, Vol. 26, No, 4: 1992-2004, 2017 DOI: 10.1109/TIP.2017.2670780
- ERGEN, Tolga; KOZAT, Suleyman Serdar. "Unsupervised anomaly detection with LSTM neural networks." IEEE transactions on neural networks and learning systems, Vol. 31, No. 8. pp:3127-3141, 2019 DOI: 10.1109/TNNLS.201 9.2935975
- ZHOU, Chong; PAFFENROTH, Randy C. "Anomaly detection with robust deep autoencoders." In: Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining. pp. 665-674, 2017 DOI:https://doi.org/10.1145/3097983.3098052
- AKCAY, Samet; ATAPOUR-ABARGHOUEI, Amir; BRECKON, Toby P. Ganomaly "Semi-supervised anomaly detection via adversarial training." In: Computer Vision-ACCV 2018: 14th Asian Conference on Computer Vision, Perth, Australia, December 2-6, 2018, Revised Selected Papers, Part III 14. Springer International Publishing, pp. 622-637, 2019 DOI:10.48550/arXiv.1805.06725
- LIU, Wenqian, et al. "Towards visually explaining variational autoencoders." In: Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. pp. 8642-8651, 2020 DOI:10.48550/arXiv.1911.07389
- ZHOU, Kang, et al. "Memorizing structure-texture correspondence for image anomaly detection." IEEE transactions on neural networks and learning systems, Vol. 33, No. 6, pp. 2335-2349, 2021 DOI:10.1109/TNNLS.2021.3101403
- PERERA, Pramuditha; NALLAPATI, Ramesh; XIANG, Bing. "Ocgan: One-class novelty detection using gans with constrained latent representations." In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. pp. 2898-2906, 2019 DOI: 10.48550/arXiv.1903.08550
- RUFF, Lukas, et al. "Deep one-class classification. In: International conference on machine learning." PMLR, pp. 4393-4402, 2018
- Roth, Karsten, et al. "Towards total recall in industrial anomaly detection." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. pp.14318-14328, 2022. DOI:https://doi.org/10.48550/arXiv.2106.08265
- Huang, Chaoqin, et al. "Registration based few-shot anomaly detection." European Conference on Computer Vision. Cham: Springer Nature Switzerland, pp. 303-319 , 2022 DOI:https://doi.org/10.48550/arXiv.2207.07361
- Zheng, Ye, et al. "Focus your distribution: Coarse-to-fine non-contrastive learning for anomaly detection and localization." 2022 IEEE International Conference on Multimedia and Expo (ICME). IEEE, pp.1-6, 2022 DOI:https://doi.org/10.48550/arXiv.2110.04538