I. Introduction
제조 현장에서는 제품을 생산하는 과정에서 양품과 불량품 여부를 판별하는 품질 검사 과정을 거치게 된다. 또한, 검사 과정에서 발생한 불량품(결함)을 제거하기 위해 품질관리를 수행한다. 현재 일부 제조 공정의 품질 검사로육안검사 방법을 수행하고 있다[1]. 그 예로 PCB 공정에서의 불량 검사 작업 시, 수작업으로 수십에서 수백 명의 인력 투입 등이 있다[1].
하지만 육안으로 검사하는 품질관리에는 많은 단점이 있다. 첫째로, 인적 오류가 발생할 수 있다. 단순 반복 작업에 의한 피로도 가중으로 작업 실수가 발생할 수 있으며, 작업자의 경험이나 실력 혹은 불량 유형에 따라 작업 품질 수준의 편차가 많이 생길 수 있다[2]. 둘째로는 인력배치에 따른 기회비용을 상실할 수 있다. 회사 내의 프로세스를 잘 이해하는 작업자가 단순 반복 업무만을 수행할 경우, 프로세스 개선, 새로운 아이디어 제안 등 창의적인 활동을 하지 못하게 된다[3].
이러한 문제를 해결하기 위해 최근에는 육안검사 대신 딥러닝 기반의 비전 검사를 도입하고 있다. 특히 이상 탐지라는 기법을 이용하여 제조 제품의 양/불량 판정을 통해 품질을 검사한다.
이상 탐지(Anomaly Detection)란, 정상(normal)의 반대 개념인 이상(anomaly) 데이터를 탐지하는 것으로, 제조 분야에서 이상 데이터는 불량(결함 혹은 비정상) 데이터를 의미한다[4]. 정상 데이터와 비정상 데이터가 충분한 경우, 지도 학습 알고리즘을 통해 충분히 훌륭한 성능의 모델을 만드는 것이 가능하지만, 제조 제품 데이터는 특성상 정상 데이터와 비교하여 비정상 데이터의 수가 현저히 적고, 비정상 데이터의 유형도 특정 짓기 어렵다[5]. 이러한 이유로, 최근 이상 탐지에 있어 정상 데이터만을 사용하여 이상 탐지를 수행하는 연구들이 진행되고 있다. 주요 적용 분야로는 침입 탐지시스템(IDS), 이상금융거래탐지시스템(FDS), Malware 탐지, 의료(Healthcare), 소셜네트워크 이상 탐지 (스팸, 사기 등의 탐지), Log 이상 분석, IoT 이상 탐지(IoT 장비에서 센싱된 데이터의 이상 분석), 산업 분야 이상 탐지 (시설 예지보전), 시계열 데이터분석, 이상 영상 분석(CCTV 영상) 등이 있다[5]. 특히, 본 논문에서 대상으로 하는 제품 이상 탐지의 예로, Alberto Tellaeche Lglesias et al.(2021)은 산업용 직물(industrial textures)의 이상 탐지를 위해, Convolutional AutoEncoder와 SVM을 결합한 모델을 제안하였다[6]. 또한, Jungsuk Kim et al.(2021)은 Printed Circuit Board(PCB)의 결함 검출을 위해 Skip-Connected Convolutional Autoencoder 기반의 PCB 검사 시스템을 제안하였다[7].
이처럼 모델 자체에 관한 연구들은 많으나 이상치 판별기준에 따른 모델 성능 차이에 관한 연구는 부족한 것으로 확인되었다. 이에 본 연구는 제조 공정에서의 양/불량 판정에 다양한 이상치 판별 기준을 적용한 오토인코더 기반의 이상 탐지를 수행한 후 해당 결과를 비교 분석하여 이상치 판별 기준이 이상 탐지 모델의 성능에 미치는 영향을 확인하였다.
본고의 구성은 먼저 II 장에서는 오토인코더 기반의 이상 탐지 방법과 이상 탐지에 사용된 3가지 모델 Convolutional AE, VAE, Dilated VAE에 관한 기존 연구를 다룬다. III 장에서는 학습된 각 모델의 잔차 이미지에 대한 통계치, MSE, 정보 엔트로피를 이상치를 판별 기준으로 설정하였을 때의 모델별 성능을 비교 분석한다. IV 장에서는 본 연구의 결론으로, 양/불량 판정 시 이상치 판별 기준이 성능에 미치는 영향과 가장 좋은 성능을 보이는 모델과 최적의 이상치 판별 기준에 관해 설명한다.
II. Preliminaries
1. Related works
1.1 Anomaly Detection Using AE
오토인코더 기반의 이상 탐지는 편차 기반의 이상 탐지 방법으로, 재구성 오류(복원 오차)를 기준으로 양/불량 여부를 판단하게 된다[8]. 즉 정상 데이터로만 학습된 오토인코더에 대해서 비정상 데이터가 테스트 과정에서 주어질 경우, 효과적으로 재구성하지 못하는 점을 이용한다. 이때, 재구성한 결과와 원본과의 차이를 의미하는 재구성 오류 값을 설정한 임계값과 비교하여 입력된 데이터가 정상 데이터인지 이상 데이터인지 판단한다. 이때, 이상치 판별기준으로는 재구성 오류인 MSE(Mean Squared Error)라는 지표를 사용한다[8].
1.2 Convolutional AE
오토인코더는 데이터를 압축해 중요한 특징만 추출하는 인코딩과 원래값과 유사하게 복원하는 디코딩으로 이루어져 있다. 그러나 이미지 데이터에 대해서 이미지의 공간적 정보를 무시한다[9]. 이는 데이터에 대한 정보 손실이며, 고차원의 데이터를 저차원으로 표현하는 과정에서 문제가 발생할 수 있다.
합성곱 오토인코더는 합성곱 계층을 이용한 방식으로, 공간적 인접성(정보)을 보존하기 때문에 이미지 처리에 효과적이다[9].
Fig. 1은 합성곱 오토인코더의 구조로 오토인코더와 합성 곱 신경망을 결합한 형태다[10]. 합성곱의 Maxpooling 을 사용해 정보를 축소하는 인코딩 부분과 전치 합성곱인디코딩 부분으로 구성되어있다.
Fig. 1. Convolutional Autoencoder architecture[10]
1.3 VAE
VAE는 변분 추론과 딥러닝을 결합한 형태의 생성모델이다. 실제 데이터의 분포와 사전에 알고 있는 어떤 분포(가우시안 정규분포)를 사상(mapping)하여 표현함으로써, 이 분포에서 샘플링을 통해 새로운 데이터를 추정한다[8][11].
Fig. 2는 VAE의 구조이다. 인코더는 z가 정규분포를 따른다는 가정하에 이 분포를 표현하기 위해 z의 평균과 분산을 추정한다. 디코더는 z 분포로부터 새로운 데이터를 생성한다. 이때, z 분포는 샘플링 과정을 거치며, 역 전파과정을 수행하기 위해서 reparametrization trick을 도입하여 임의의 정규분포로부터 상수 Epsilon을 샘플링한다.
Fig. 2. Variational Autoencoder architecture[12]
1.4 Dilated VAE
Dilated VAE 구조는 Dilation box 모듈이 추가된다는 점에서 VAE 구조와 차이가 있다. 인코딩 과정에서 디코딩 과정으로 넘어가는 bottleneck 구간에 존재하는 dilation box는 dilated convolution을 병렬로 적용한 구조이다[13][14].
Fig. 3은 기존 VAE에 dilation box를 추가한 모델을 도식화한 그림이다. 확장 비율이 [1, 2, 4, 8]로 구성된 dilated convolution 연산 결과를 결합한 형태로, 이 과정을 통해 서로 다른 수준의 특징 맵(Feature Map)을 합쳐 더 나은 특징 추출을 만들어 낼 수 있다.
Fig. 3. Dilated Box in VAE encoder structure
III. The Proposed Scheme
1. Dataset
본 연구에서는 Kaggle에서 제공하는 품질 검사를 위한 주조제품 데이터 세트를 사용하여 모델 학습과 테스트를 수행한다[15]. 주조는 원하는 모양의 중공 공동을 포함하는 금형에 액체 재료를 부은 다음 응고시키는 제조 공정으로, 해당 데이터 세트는 여러 주조제품 중 수중 펌프 임펠러의 평면도에 대한 이미지이다. 모델 학습에 사용된 데이터 세트는 정상 데이터로만 구성되어있으며, 300x300 크기의 1채널 이미지를 사용하였다. 학습에 사용된 양품(정상 데이터)은 2, 500개이며, 테스트에 사용된 양/불량 데이터는 262개씩 총 524개를 사용했다.
Fig. 4는 양/불량 주조제품 이미지들이다. 첫 행은 양품 (정상) 이미지들이며, 두 번째 행은 불량품(비정상) 이미지들을 나타낸다.
Fig. 4. Casting Product Datasets
2. Anomaly Scores
이상 탐지는 정상과 비정상 데이터를 구분하는 것을 목적으로 한다. 이때, 정상과 비정상 데이터를 구분하는 기준선(임계 값)이 필요하다. 하지만, AE 기반의 모델 학습 결과는 이미지 데이터이기 때문에 데이터 자체만으로는 명확히 구분하기 어렵다. 따라서, 각 이미지 데이터에 대해서 이상 징후 수준을 의미하는 이상치(Anomaly Score) 를 부여하여, 해당 이상치를 기준으로 “높음/낮음”에 대한 판단을 통해서 정상과 비정상 데이터를 구분한다[5].
본 연구에서는 크게 2가지를 기준으로 이상치를 설정한다. 첫 번째로, 잔차 이미지에 대해서 통계치를 이상치로설정하는 방법과 두 번째로는, 원본과 생성된 이미지에 대해서 복원 오차(MSE), 정보 엔트로피를 이상치로 설정하는 방법이다.
첫 번째 이상치 설정 방법은, 각 데이터에 대한 원본 이미지와 생성된 이미지의 픽셀 간의 차를 의미하는 잔차 이미지에 대해서 데이터값 자체의 속성을 파악할 수 있는 통계적 대푯값을 이용하는 방법이다.
두 번째 이상치 설정 방법은, 평균 제곱 오차인 MSE와얻는 정보가 의미 있는 정보인지 판단하는 척도인 정보 엔트로피를 이용하는 방법이다. 주조 데이터에 대해서 정상 데이터로만 학습되었기 때문에 입력 데이터가 정상 데이터라면 놀라운 일이 아니기에 엔트로피가 작을 것이며, 비정상 데이터의 경우 놀라운 일(정보)이기에 비정상 정도가 클수록 엔트로피도 더 커질 것이다.
Table 1은 이상치 판별 기준으로 설정된 값들이다. 다양한 이상치 판별 기준을 토대로 양/불량 판정을 한다.
Table 1. Anomaly Discrimination Criteria
3. Training The Models
본 연구는 NVIDIA Tesla V100 환경에서 수행되었다. 연구에 사용한 학습 모델은 Convolutional AE, VAE, Dilated VAE 모델로 Keras 2.3 버전 기반으로 구성하였다.
Fig. 5는 학습에 사용된 Convolutional AE의 모델 구성과 이상 탐지 프로세스이다. 인코더와 디코더는 kernel size 5x5, filters 32-64-128-128-64-32, filters 1개인 3 개의 conv layer로 구성되어있다[20]. 프로세스는 복원한 이미지와 원본 이미지의 잔차 이미지에 대해 이상치 판별기준을 적용하여 양/불량 판정을 수행한다.
Fig. 5. Convolutional AE Model and Process
Fig. 6는 학습에 사용된 VAE의 모델 구성도이다. 인코더는 conv layer 4개로 filters는 64-128-128-128로 구성되어있다. z를 구하기 위한 Dense layer는 64-2-2로 구성되어있다. 디코더는 2개의 conv layer로 filters 64-1로 구성되어있다.
Fig. 6. VAE Model
Fig. 7은 학습에 사용된 Dilated VAE의 Encoder의 모델 구성도이다. 실선에 해당하는 Dilated Box 부분을 제외한 나머지는 Fig. 6의 구조와 같다.
Fig. 7. Dilated VAE Encoder Model
Fig. 8은 Dilated convolution의 확장 비율을 [1, 2, 4, 8]로 설정하고, kernel size를 3x3으로 설정했을 때의 필터의 모습이다. Dilated Box에서는 Filters 128의 Kernel size가 3x3, Kernel initializer가 he_normal인 conv layer 4개를 사용했다.
Fig. 8. Filter according to dilation rate of Dilated Convolution
Dilation rate 비율이 증가할수록, filter가 추출하는 input의 간격이 멀어진다. Receptive Field가 커짐에도 불구하고 연산량의 증가가 없는 장점이 있다.
최적화 함수로는 Adamax, Batch size 64, Learing rate 0.0001, Epochs 100으로 학습을 진행하였다.
이상치는 잔차(원본 - 생성) 이미지에 대한 통계치와 정보 엔트로피, MSE를 사용하였다. 사용된 이상치는 Table 1과 같다.
모델의 성능 평가의 척도로는 정확도(Accuracy), AUC ROC, 조화평균(F1 Score), AUC PRC를 기준으로 평가하였다. 성능 평가에 사용된 지표들은 다음 Table 2와 같다.
Table 2. Performance Assessment Indicator
3.1 Convolutional AE
Table 3은 학습된 Convolutional AE 모델의 잔차 이미지에 대해서 통계치를 이상치로 설정했을 때의 성능지표 결과이다.
Table 3. Statistics Performance Indicator Results for Residual Images
Table 4는 학습된 Convolutional AE 모델에 테스트데이터를 적용한 결과, MSE와 정보 엔트로피를 이상치로설정했을 때의 성능지표 결과이다.
Table 4. Results of Performance indicators of MSE and Information entropy
성능지표 결과, 해당 모델에서 잔차(원본 – 생성) 이미지에 대한 통계치 중 범위를 이상치 판별 기준으로 사용하였을 때, AUC PRC 0.9570, F1 Score 0.8812, AUC ROC 0.9548, 정확도 87.60%의 가장 좋은 성능을 도출했다. 이는 단편적으로는 높은 수치는 아니지만, 기존 판별 기준으로 사용되는 MSE에 비해 약 20%P의 성능 향상을 보인다.
3.2 VAE
Table 5는 학습된 VAE 모델의 잔차 이미지에 대해서 통계치를 이상치로 설정했을 때의 성능지표 결과이다.
Table 6은 학습된 VAE 모델에 테스트 데이터를 적용한 결과, MSE와 정보 엔트로피를 이상치로 설정했을 때의 성능지표 결과이다.
Table 5. Statistics Performance Indicator Results for Residual Images
Table 6. Results of Performance indicators of MSE and Information entropy
성능지표 결과, 해당 모델에서 잔차(원본 – 생성) 이미지에 대한 통계치 중 평균과 누적 합을 이상치 판별 기준으로 사용하였을 때, AUC PRC 0.8923, F1 Score 0.8390, AUC ROC 0.8965, 정확도 82.25%의 가장 좋은 성능을 도출했다. 이는 단편적으로는 높은 수치는 아니지만, 기존 판별 기준으로 사용되는 MSE에 비해 약 18%P의 성능 향상을 보인다.
3.3 Dilated VAE
Table 7은 학습된 Dilated VAE 모델의 잔차 이미지에 대해서 통계치를 이상치로 설정했을 때의 성능지표 결과이다.
Table 8은 학습된 Dilated VAE 모델에 테스트 데이터를 적용한 결과, MSE와 정보 엔트로피를 이상치로 설정했을 때의 성능지표 결과이다.
Table 7. Statistics Performance Indicator Results for Residual Images
Table 8. Results of Performance indicators of MSE and Information entropy
성능지표 결과, 해당 모델에서 잔차(원본 – 생성) 이미지에 대한 통계치 중 평균과 누적 합을 이상치 판별 기준으로 사용하였을 때, AUC PRC 0.8892, F1 Score 0.8354, AUC ROC 0.8901, 정확도 82.06%의 가장 좋은 성능을 도출했다. 이는 단편적으로는 높은 수치는 아니지만, 기존 판별 기준으로 사용되는 MSE에 비해 약 17%P의 성능 향상을 보인다.
4. Performance Assessments of The Models
잔차 이미지에 대해 이상치를 통계치 설정하거나 원본과 생성된 이미지에 대해 이상치를 MSE, 정보 엔트로피로 설정하여 정확도, 조화평균, AUC ROC, AUC PRC라는 성능지표를 통해 각 모델의 성능을 평가하였다.
Table 9는 모델별 가장 우수한 성능을 보인 성능 평가 결과를 나타낸 것이다. 각 모델 성능 비교 결과, Convolutional AE 모델에서 잔차(원본 – 생성) 이미지에 대한 통계치 중 범위 값을 이상치 판별 기준으로 사용하였을 때에 주조 제품 이미지의 양/불량 판정을 가장 우수하게 수행하였다. VAE는 특징들의 분포인 latent Code Z를 통해 정상 이미지의 주요 특징 추출에 유리할 것으로 생각되었으나, 실험 결과 Convolutional AE보다 성능이 낮은 결과를 보였다. 또한, 거리가 먼 주변 데이터를 반영할 수 있는 Dilation Box를 VAE에 추가한 Dilated VAE 모델로 성능 테스트하였으나, 성능상의 이점을 얻을 수 없었다. 이는 이미지의 경우 공간적인 특성 반영이 더욱 주효한 것으로 보인다.
Table 9. Performance assessments result for each model
IV. Conclusions
본 연구는 Kaggle의 정상 주조 제품 이미지를 사용하여 Convolutional AE, VAE, Dilated VAE 모델 학습을 수행하였다. 이후 학습된 각 모델에 대해서 통계치, MSE, 정보엔 트로피를 이상치 판별 기준으로 적용하여 양/불량 이상 탐지를 시도해 모델 성능을 비교 분석하였다. 그 결과, 범위 값을 이상치 기준으로 적용하였을 때, 각 모델에 대해서 우수한 성능을 보였다. 특히 학습된 Convolutional AE 모델에 대해서 범위 값을 이상치 기준으로 적용했을 때, AUC PRC 0.9570, F1 Score 0.8812, AUC ROC 0.9548, 정확도 87.60%의 가장 좋은 성능을 보였다. 이는 기존 판별 기준으로 사용하는 MSE에 비해 약 20%P의 성능 향상을 보인다.
이를 통해 본 연구에서 범위 값을 이상치 판별 기준을 적용하였을 때 모델의 성능 향상이 가능함을 확인하였다.
본 연구에서의 테스트는 Kaggle 주조제품 이미지에 대한 것으로 결과가 한정적일 수 있다. 따라서, 추후 다른 제조 데이터 세트를 적용했을 때도 제시한 이상치 판별 기준이 적용될 수 있는지 연구할 예정이다.
References
- Yeong-Tae Baek, Jae-Gyu Sim, Chan-Young Pak, Se-Hoon Lee, PCB Defect Inspection using Deep Learning. KSCI, pp. 325-326, 2018.
- Chul-jin, Park. A study on the quality information management for preventing human errors at quality of ship.. Ulsan University Graduate School of Automotive Vessel Technology, 2016, UCI:I084:48009-000002213977.
- Ho Young, Lee. Changes in labour demand and acceptability due to the Fourth Industrial Revoluation. Korea Information Society Development, 2019.
- E.S. Lee, H.C. Bae, H.J. Kim, H.N. Han, Y.K. Lee, J.Y. Son, Trends in AI Technology for Smart Manufacturing in the Future. Electronics and telecommunications trends, Vol.35, No.1, pp. 60-70, 2020, DOI:10.22648/ETRI.2020.J.350106.
- Raghavendra Chalapathy and Sanjay Chawla, Deep Learning for Anomaly Detection: A Survey. CoRR, (abs/1901.03407), 2019.
- Alberto Tellaeche Iglesias, Miguel Angel Campos Anaya, Gonzalo Pajares Martinsanz and Iker Pastor-Lopez, On Combining Convolutional Autoencoders and Support Vector Machines for Fault Detection in Industrial Textures, Sensors, 21(10), 3339, 2021, DOI:10.3390/s21103339.
- Jungsuk Kim,Jungbeom Ko,Hojong Choi and Hyunchul Kim, Printed Circuit Board Defect Detection Using Deep Learning via A Skip-Connected Convolutional Autoencoder, Sensors, 21(15), 4968, 2021, DOI:10.3390/s21154968.
- Jinwon An and Sungzoon Cho, Variational Autoencoder based AnomalyDetection using Reconstruction Probability. Technical Report, SNU Data MiningCenter, pp. 1-18, 2015.
- Jonathan Masci, Ueli Meier, Dan Ciresan, and Jurgen Schmidhuber, Stacked convolutional auto-encoders for hierarchical feature extraction. In International Conference on Artificial Neural Networks, ICANN, pp. 52-59, 2011, DOI:10.1007/978-3-642-21735-7_7.
- Omid E. David, Nathan S.Netanyahu, DeepPainter: Painter Classification Using Deep Convolutional Autoencoders. ICANN, Vol.9887, pp. 20-28, 2016, DOI:10/1007/978-3-319-44781-0_3.
- Diederik P Kingma and Max Welling, Auto-encoding variational bayes. ICLR. arXiv preprintarXiv:1312.6114, 2013.
- Taeu Kim, https://taeu.github.io/paper/deeplearning-paper-vae/.
- Shengyuan Piao and Jiaming Liu, Accuracy improvement of unet based on dilated convolution. Journal of Physics: Conference Series. Vol. 1345. No. 5. IOP Publishing, 2019, DOI:10.1088/1742-6596/1345/5/052066.
- VESAL.Sulaiman, RAVIKUMAR.Nishant, MAIER.Andreas. A 2D dilated residual U-Net for multi-organ segmentation in thoracic CT. arXiv preprint arXiv:1905.07710, 2019.
- Ravirajsinh Dabhi, Casting product image data for quality inspection, Kaggle, https://www.kaggle.com/ravirajsinh45/real-life-industrial-dataset-of-casting-product.
- The Nature of Statistics Bigpicture, Statistics Basics Lecture 1. Mean, Deviation, Variance, Standard Deviations, https://hsm-edu.tistory.com/1182
- Garlic, https://m.blog.naver.com/yk60park/222100758577
- CityWizard, https://m.blog.naver.com/PostView.naver?blogId=y4769&logNo=220505513170&proxyReferer=https:%2F%2Fwww.google.com%2F
- Wikipedia, Entropy(Information Theory), https://en.wikipedia.org/wiki/Entropy_(information_theory)
- Robert Muller, Fabian Ritz, Steffen lllium, Claudia Linnhoff-Popien, Acoustic Anomaly Detection for Machine Sounds based on ImageTransfer Learning, CVPR, 2021, DOI:10.5220/0010185800490056.
- Kim, Chungyun, Evaluation Method of Classification Model, https://velog.io/@skyepodium/%EB%B6%84%EB%A5%98-%EB%AA%A8%EB%8D%B8-%ED%8F%89%EA%B0%80-%EB%B0%A9%EB%B2%95.
- Sunil Park, Taeho Oh, Application of Receiver Operating Characteristic(ROC) Curve for Evaluation of Diagnostic Test Performance. Journal of Veterinary Clinics, pp. 97-101, 2016, DOI:10.17555/jvc.2016.04.33.2.97.
- Jakub Czakon, https://neptune.ai/blog/f1-score-accuracy-roc-aucpr-auc