1. 서 론
최근 딥 러닝의 발전과 함께 컴퓨터 비전 분야의 주요 과제들에 대한 성능이 향상되고 있으며, 대규모 데이터를 학습한 딥러닝 모델의 경우 인간을 뛰어넘는 성능을 보이며 여러 분야에 걸쳐 활용되고 있다[16, 20]. 딥러닝 분야에서 모델의 성능은 수집한 데이터에 영향을 받기 때문에 주어진 문제에 대해 신뢰성이 높은 데이터를 수집하고 학습하는 것이 중요하다[7]. 이상 탐지 분야의 경우 극심한 데이터 불균형 문제를 다루기 때문에 컴퓨터 비전뿐만 아니라 여러 분야에 걸쳐 도전적인 과제이다. 그럼에도 이상 탐지는 실용적인 가능성이 높기 때문에 연구의 가치가 크며 여러 분야에 걸쳐 활용되고 있다[5, 8, 19]. MRI(Magnetic Resonance Imaging), CT(Computerized Tomography), X-ray 이미지를 활용한 의료 분야의 이상 탐지는 실용적으로 활용되고 있으며, 이상탐지의 가치를 보여준다[17, 26]. 제조 분야의 경우 여러 데이터 세트를 통해 이상탐지의 성능이 벤치마킹 되고 있으며 유명한 데이터 세트로는 <Figure 1>과 같은 MvTecAD(MvTec Anoamly Detection)[3]와 <Figure 2>와 같은 BTAD(Bean Tech Anomaly Detection)[18]가 있다. 제조 분야에서 딥러닝의 활용은 XAI(Explainable Artificial Intelligence) 모델을 통한 제조 공정 불량의 원인 파악이나 [24], 제조된 제품의 불량을 파악하는데 활용된다[14, 23]. MvTecAD와 BTAD 데이터 세트를 활용한 여러 이미지 기반의 여러 이상 탐지 알고리즘이 발전되어왔으며, 본 논문에서는 과거 활용된 여러 알고리즘을 비교하여 자체적으로 수집한 투명한 렌즈 데이터의 이상 탐지에 적용하였다.
제조 분야의 경우 불량품이 직접적으로 매출에 영향을 미치기 때문에 불량품을 검출하는 것은 주요 과제 중 하나 이다. 무엇보다 정상적으로 동작하는 공정의 경우 불량률이 높지 않아 정상 데이터 대비 비정상 데이터의 개수가 현저히 낮다[10, 11]. 또한, 몇몇 공정에서는 잘 정제된 데이터를 수집하여 관리하는 체계가 잘 구축되어 있지 않아 이상 탐지 모델을 훈련시키기 위한 데이터를 수집하기 힘들다.
국내에서는 컬러 콘택트렌즈의 불량 검출에 대한 연구를 진행하였으며, 다양한 CNN(Convolutional Neural Network)모델을 통해서 전처리 및 증강된 데이터를 활용 하여 수집된 컬러 콘택트렌즈의 불량을 검출하였다[13]. 해당 연구에서는 불량의 종류를 총 6개로 정의하였으며 전처리 과정에서 이미지 데이터를 증강하여 활용하였다. 해당 연구에서 불량 검출은 정상 데이터와 불량 데이터를 학습하는 지도 학습 기반으로 이뤄졌다. 불량 데이터에 비해 정상 데이터의 개수가 많았지만, 회전, 밝기 조절 등의 이미지 증강 기법을 활용하여 부족한 불량 데이터를 생성 하였다.
본 연구에서는 컬러 콘택트렌즈가 아닌 투명 콘택트렌 즈의 불량을 검출을 위해 제조 데이터 이상 탐지에 사용되는 딥러닝 기반의 알고리즘을 활용하였으며, 정상과 불량을 나누는 지도 학습 기반이 아닌 정상 데이터만으로 불량을 검출하는 비지도 학습 방법 기반의 알고리즘을 비교하였다. 지도 학습의 경우, 불량의 종류를 구분할 수 있다는 장점이 있지만, 불량을 정의하고 각 불량에 맞는 데이터를 수집하는데 어려움이 크다. 지도학습을 위한 데이터 수집 단계에서 각 데이터의 신뢰도 향상을 위해 추가적인 데이터 검수 작업 수반되어야 하며, 이로 인해 상당한 시간 비용이 소요될 수 있다. 따라서, 본 연구에서는 정상 데이터만으로 불량을 검출하는 비지도 학습 기반의 알고리즘의 성능을 비교 분석하였다.
투명한 콘택트렌즈의 제조 공정에서는 최종적으로 크게 세 가지 불량에 대한 검사를 진행한다. 콘택트렌즈 제품 내에 이물질이 있거나, 렌즈가 누락된 경우, 혹은 다중의 렌즈가 포함된 경우로 나눌 수 있다. 이에 따라 본 연구에서는 해당 세 가지 불량에 대한 테스트 이미지를 수집하여 다양한 이상 탐지 알고리즘에 성능을 비교하였다.
이미지 데이터를 활용한 딥러닝 기반 이상 탐지 알고리즘은 크게 두 가지로 분류할 수 있다. 대규모 이미지 데이터를 통해 사전에 학습된 모델을 활용하여 특징을 추출하는 특성 매칭(Feature Matching)기반의 알고리즘인 <Figure 3>과 이미지를 재구성하는 재구성(Reconstruction) 기반의 알고리즘인 <Figure 4>로 나눌 수 있다. 특징 매칭 알고리즘은 WideResNet과 같이 대규모로 학습된 모델을 활용하며 특징을 추출하여 특성 벡터를 생성한다[2, 6, 7, 21]. 이 때, 정상 데이터에서 추출된 특징과 비정상 데이터에서 추출된 특징의 분포의 차이를 통해 비정상을 분류하는 방식으로 이상 탐지를 진행한다. 재구성 기반의 알고리즘의 경우, 대표적으로 오토인코더가 있으며[15], 정상 데이터를 학습하여 모델은 최대한 정상 데이터와 비슷하게 재구성 하기 때문에 비정상 데이터가 입력되었을 때, 비정상 데이터와 재구성된 이미지의 차이는 정상 데이터를 재구성한 이미지와의 차이보다 크기 때문에 특정 임계값을 통해서 정상과 비정상을 구분할 수 있다.
인공지능 모델의 성능은 단순히 특정 문제를 해결하는 정확도에만 그치지 않고, 모델을 훈련하는 시간과 추론 시간, 필요한 데이터 개수를 고려하여 평가하는 것이 실제 산업에 적용할 수 있는지 판단할 수 있다. 본 연구에서는 동일한 하드웨어 환경에서 동일한 개수의 데이터를 통해 훈련과 검증을 진행하고 동일한 테스트 데이터 세트에 대해서 비정상을 구분하는 이상 탐지 알고리즘의 성능을 비교 분석하였다.
본 연구는 기존 국내에서 진행된 컬러 콘택트 렌즈 불량탐지 연구와 다르게 투명한 콘택트 렌즈 데이터를 수집하여 불량 검출의 가능 여부를 연구하였으며, 정상 데이터와 비정상 데이터를 사전에 정의하지 않고 비지도 학습에 기반하여 정상 데이터만을 활용하였다.
본 논문 2장에서는 각 절 마다 과거 컴퓨터 비전 분야에 비지도 학습 기반의 이상 탐지 알고리즘들의 주요 기여도를 살펴보았다. 이어서 3장에서는 실험에 사용된 하드웨어 및 데이터 수집 단계를 소개하고 실험 결과 및 그에 따른 한계점을 기술하였다. 마지막 4장에서는 본 연구를 통해 얻어진 최종 결론을 기술하였다.
2. 이상 탐지 알고리즘
2.1 이상 탐지 알고리즘 개요
본 논문에서 적용한 이상 탐지 알고리즘은 <Table 1>과 같으며 이후 본 논문에서는 각 알고리즘의 표기를 표에 표시된 이름(Name)으로 표기하였다. 본 논문에서 활용된 이상 탐지 알고리즘들은 사전에 학습된 모델을 활용한 특성 매칭 알고리즘이나 재구성 기반의 알고리즘이다. 그러나 Knowledge Distillation, Normalizing Flow 등 방법론의 차이가 존재한다. 2장에서는 각 알고리즘 별 기여도 및 이전 알고리즘과의 차이점을 소개한다.
2.2 PaDiM
컴퓨터 비전의 이상 탐지 분야에서 가장 활발하게 활용되는 방법은 대규모 데이터로 학습된 WideResNet 등의 사전에 학습된 모델을 통해 특징을 추출하고 추출된 특성으로부터 정상과 비정상을 구분하는 특성 매칭 알고리즘이 다[6, 21]. 특성 매칭 알고리즘의 경우 훈련 데이터 세트를 만들고 학습하는 과정이 따로 존재하지 않으며, 사전에 학습된 모델을 사용함으로 훈련 시간을 단축할 수 있다. SPADE로[4] 알려진 논문에서 저자들은 WideResNet-50을 활용하여 특성을 추출하고, 특성들로부터 최근접 이웃 (KNN, K-nearest Neighbor) 알고리즘을 활용하여 정상과 비정상을 나누는 방법을 활용하였고, MvTecAD 데이터세 트에서 좋은 성능을 확인하였지만, 해당 방법의 경우 KNN을 활용하면서 비교적 많은 시간이 소모되었다. 이후 PaDiM은 정상 이미지에서 특성을 추출하고 이를 하나의 벡터로 임베딩하여 활용하여 SPADE 논문보다 시간을 단축시키고 MvTecAD에서도 예측 성능을 향상시켰다.
2.3 FastFlow & CFlow
FastFlow[27]와 CFlow[9]는 Normalizing Flow 개념을 도입하여 이미지 기반의 이상 탐지를 진행한 논문이다. Normalizing Flow는 생성 모델의 일종으로 데이터를 통해 정규화된 확률의 분포를 생성하는 방식으로 최초로 DifferNet[22] 논문에서 이미지 기반으로 이상 탐지에 활용되었다. 그러나, DifferNet 논문에서는 Normalizing Flow 적용 과정에서 Fully connected layer를 활용하였다. 이후 FastFlow와 CFlow는 각각 이미지의 위치 정보 손실을 보완하기 위한 방안으로 FastFlow는 2D Convolution layer의 대체와 CFlow는 위치 기반 임베딩을 제안하였고 모두 MvTecAD 데이터 세트 기준으로 기존 DifferNet 보다 좋은 예측 성능을 보였다.
2.4 Reverse Distillation(R.D)
Knowledge Distillation[7, 25]은 대규모 데이터를 학습한 Teacher 모델과 비슷한 구조를 지녔지만 비교적 크기가 작은 Student 모델을 학습시키는 방식이다. 그러나 해당 논문에서는 Student 모델의 구조를 Teacher 모델의 반대로 사용하여 재구성 형식으로 Teacher 모델에서 추출된 정보를 복원하는 방식으로 진행된다. 또한 각각의 Teacher 모델 레이어에서 추출된 다양한 차원의 정보를 Multi-scale Feature Fusion block(MFF)에서 합치고 이를 One Class Embedding block(OCE)에서 정보를 압축하여 Student 모델에게 전달한다. Student 모델은 Teacher 모델의 고차원 정보와 압축된 정보를 바탕으로 이미지를 재구성하게 된다. Reverse Distillation의 경우 과거 알고리즘에 비해 예측 성능은 대폭 향상되었지만, Student 모델의 학습을 추가적으로 진행함으로 기존의 특성 매칭 알고리즘과는 다르게 학습 시간이 필요하다는 단점이 존재한다.
2.5 DRAEM
재구성 방식으로 이상 탐지를 진행하는 경우, 정상 이미지를 재구성한 이미지와 비정상 이미지를 재구성한 이미지 사이의 거리를 이상치 스코어로 활용하여 이상 탐지를 진행하였지만, 이론과 달리 몇몇 데이터에서는 거리가 크지 않아 이상 탐지의 성능이 떨어지는 부분이 존재하였다. 이에 DRAEM[28]에서는 정상 데이터를 재구성하는 모델이 아닌 비정상 데이터를 재구성하는 모델을 학습시키기 위해, 수집된 정상 데이터에 노이즈를 섞어 비정상 데이터를 합성하는 방식을 활용하였다.
2.6 EfficientAD
EfficientAD에서는 사전에 학습된 모델을 사용하여 예측 속도의 효율성을 높이지 못한다는 점을 지적하며 PatchCore에서 사용한 WideResNet-101 모델로부터 Knowledge Distillation을 통해 Patch Description Network(PDN)이라는 작은 Student 모델을 만들어서 예측 속도를 향상시켰다. Student 모델의 구조는 Small인 <Figure 5>와 Medium인 <Figure 6>, 두 가지 구조로 논문에서 제시하였으며 해당 구조는 위의 그림과 같다. 즉 기존의 Pretrained Model들은 여러 Convolutional layer를 통해 복잡한 구조를 가지고 있다. 그러나 Small과 Medium 모두 WideResNet-101 등의 대규모 모델에 비해서는 상대적으로 단순한 Convolutional layer로 구성되었다. 결과적으로 해당 논문에서는 Small 모델의 Latency가 Medium에 비해 약 2배가량 빨랐으며, AUROC로 측정된 성능에서도 Medium과 비슷한 성능을 보였다. 이를 통해 256×256 사이즈의 단순한 이미지에는 4개의 Convolutional layer통해 추출된 특징 벡터를 활용하여도 충분히 이상 탐지를 수행할 수 있음을 시사한다. 논문에서는 기존의 Teacher-Student 모델이 가지는 문제점을 되려 이상 탐지에 적극 반영하였다. Teacher-Student 모델의 경우, Teacher 모델에서 학습하지 못한 데이터에 대해서 Student 모델에서의 차이가 크게 발생하며 Out-of-Distribution 문제 에 취약하다. 이에 따라 EfficientAD는 되려 Student 모델이 Teacher 모델을 과도하게 따라하는 것을 방지하며 정상이 아닌 것을 비정상으로 만드는 이상 탐지에서의 예측 성능 향상을 가져올 것이라 제안하였다.
EfficientAD에서는 단순히 하나의 Pretrained Model을 통해서 Teacher-Student 방법을 사용하지 않고 <Figure 7> 과 같이 두 개의 Teacher를 기준으로 Student 모델에게 정보를 전달하였다. 이 때 사용되는 Teacher Model은 Pretrained Model과 오토인코더, 두 가지로 나뉠 수 있다. Pretrained Model의 경우, Feature Extraction 과정에서 전역적(global) 특성을 잃고 지역적(local) 특성에 초점을 맞추기 때문에 전역적인 이상을 감지하기에는 힘들다. 따라서, EfficientAD에서는 두 가지 특성을 모두 Student Model에게 전달하기 위해, Pretrained Model로부터 지역적 특성을 전달하고 오토인코더로부터 전역적 특성을 전달하는 방식을 택하였다.
EfficentAD의 오토인코더 구조는 <Figure 8>과 같은 구조를 가지고 있다. ENC는 Encoder 부분으로 마지막 레이어(Layer)를 제외하고는 Stride 2×2와 Padding 1을 사용하며, 마지막에서는 Stride 1×1과 Padding 0을 활용한다. Decoder 부분은 크게 DNC1, DNC2와 DNC3으로 분류하였다.
DNC1의 각각의 Convolutional 레이어에는 Bilinear을 통해 각각의 이전 특징을 변환(Resizing)하는 과정을 거치고, Convolutional 레이어 이후에는 Dropout을 0.2의 비율만큼 진행한다. DNC2에서는 앞선 DNC1과 같이 Bilinear을 통해 128×128 특징을 64×64로 변환하며 Convolutional 레이어 이후에 Dropout을 사용하지 않는다. 최종적으로 DNC3에서는 Kernel의 크기를 384로 늘리게 된다.
3. 실험 결과
3.1 실험 환경 하드웨어
딥 러닝을 활용한 이상탐지 모델을 적용을 위해서는 단순히 정확도만 높은 모델을 선정하는 방법이 아닌 학습과 예측에 소요되는 시간을 종합적으로 판단하여 모델의 성능을 나타낸다. 이에 본 연구에서는 동일한 하드웨어 구성을 통해 각 모델 별 예측에 소요되는 시간을 측정하였으며 활용한 CPU는 Intel i7-13700k, GPU는 NVIDIA GeForce RTX4080이다. 벤치마크를 위해 PyTorch기반의 anomalib을 활용하였다[1].
3.2 데이터 수집
본 연구에서 활용한 데이터는 시중에 판매되는 렌즈 케이스에 투명 렌즈와 식염수가 담긴 상태에서 촬영된 가로, 세로 길이가 256, 256 사이즈인 컬러 이미지 데이터이다. <Figure 9>는 정상 데이터의 샘플 이미지를 보여준다. 비정상 데이터는 총 세 가지 상황을 고려하였다. 첫째, 작은 이물질이 렌즈에 포함된 경우이며 이물질은 머리카락, 먼지, 실 등 공장에서 이물질로 분류될 가능성이 높은 것을 선정하였다. 이물질 관련 이미지는 <Figure 10>에서 육안으로도 식별이 가능한 샘플이 있음을 확인할 수 있다. 두 번째 는 렌즈가 누락된 경우이다. 투명렌즈가 누락되어 렌즈 케이스에는 식염수만 담겨있는 상태로 이미지가 수집되었다. 정상적인 이미지와 비교하였을 때 <Figure 11>과 같이 육안으로 구분하기 어려운 상황임을 확인할 수 있다. 세 번째는 2개의 투명 렌즈가 하나의 렌즈 케이스에 포함된 경우이다. <Figure 12>와 <Figure 11>을 비교해 보았을 때 세 번째 상황 역시 육안으로 구분하기 어려운 것을 확인할 수 있다.
비지도 학습에는 정상 데이터만이 활용됨으로 총 50개의 정상 이미지 데이터를 훈련에 활용하였고, 테스트에는 정상 데이터 10개, 비정상 데이터는 각 상황 별 10개를 활용하였다. 기존에 제조업에 활용되는 이상 탐지 데이터 세트인 MvTecAD의 경우, 이물질이나 스크래치, 특정 물체 의 누락 등의 이상 탐지로 구분되어 있다. 기존에 진행된 연구의 데이터 세트는 주로 고체로 이루어진 물체를 사용하여 이상치를 탐지하였다. 하지만 본 연구에서는 데이터 세트에서는 사용된 투명 렌즈 데이터는 고체로 이루어져 있지만 식염수에 담겨 있어 육안으로 구별하기 어려운 액체의 특성을 가지고 있다. 액체는 고체보다 불규칙적인 모양의 특성을 가지고 있으며 본 연구를 통해 고체뿐만 아니라 육안으로 구분이 어려운 액체에 대해 이상치를 탐지할 수 있는 모형을 제시할 수 있을 것이다.
3.3 테스트 평가 지표
이상탐지의 경우 정상과 비정상을 분류하는 이진 분류 문제로 <Figure 13>과 같이 Confusion Matrix를 통해 성능을 알고리즘의 파악할 수 있다. 이미지를 통한 이상 탐지에는 크게 이미지 단위와 픽셀 단위의 테스트가 사용된다. 이미지 단위의 테스트의 경우, 이미지 분류 형태로 정상과 비정상을 이진 분류하는 테스트이다. 픽셀 단위는 실제 비정상 부위가 마스킹(masking)된 Ground-Truth 데이터와 비 교하여 해당 위치를 판별하는 이미지 세그먼테이션 형태 이다. 수집된 비정상 케이스 중에서 이물질의 경우 비정상 부위를 판별하여 마스킹이 가능하지만, 렌즈의 누락이나 다중 렌즈가 포함된 경우는 비정상 부위를 판별하는데 어려움이 있어 픽셀 단위 테스트에서는 이물질을 포함한 비정상 데이터 세트에만 테스트가 진행되었다.
이미지 단위와 픽셀 단위의 테스트에서의 성능은 F1-score와 AUROC를 활용하여 측정하였다. F1-score의 경우 (1), (2)과 같이 <Figure 13>에서 구해진 Confusion Matrix을 통해 정밀도(Precision)와 재현율(Recall)을 구하고 (3)과 같이 두 값의 조화 평균 값으로 산출된다. 정밀도의 경우, 모델이 양성으로 예측한 샘플 중 실제 양성인 비율이며, 재현율은 실제 양성인 샘플 중에서 모델이 양성으로 예측한 샘플의 비율을 나타낸다. 실제 적용 단계에서는 상황에 맞게 정밀도 혹은 재현율의 중요도가 다를 수 있지만 본 연구에서는 조화 평균인 F1-score를 통해 모델의 정밀도와 재현율 사이의 균형을 통해 모델의 성능을 평가하였다. AUROC (Area Under the Receiver Operating Characteristic)의 경우, Y축을 (4)에서 계산된 TPR과 X축을 (5) 같이 계산된 FPR을 그래프로 나타낸 ROC(the Receiver Operating Characteristic) 곡선에서 구해진 면적으로 1에 가까울수록 모델의 전체적인 성능이 좋음을 나타 낸다. 또한, 모델 별 테스트를 진행할 때 각 이미지의 예측 속도를 측정하여 FPS(Frame Per Second)로 각 이미지 당 예측에 걸리는 시간을 측정하였으며, 이는 위에서 언급한 하드웨어 사양에 기반한 결과임으로 하드웨어 사양에 따라 측정 시간이 달라질 수 있다.
3.4 MvTec 데이터 벤치마크
본 연구에서는 비지도 학습 알고리즘 AUROC를 통해 계산하여 알고리즘의 이미지 단위에서 성능을 평가하였다. MvTecAD 데이터 세트는 15가지의 산업 현장에서 주로 사용되는 물체 구성되어 있으며, <Table 2>에서 각 물체 별 알고리즘 성능을 확인할 수 있다. 15 가지의 물체를 특성에 따라 크게 두 가지로 분류하였다. 카펫(Carpet), 그리드(Grid), 가죽(Leather), 타일(Tile), 나무(Wood)는 물체 의 표면의 질감(Texture)에 찢어지거나 구멍이 뚫리는 이 상이 발생한 경우이며, 병(Bottle), 케이블(Cable) 외 나머지는 객체(object) 자체가 부러지거나 깨지는 이상이 발생한 경우로 구분하였다. 이미지 단위의 AUROC 성능 테스트에서는 Reverse Distillation(R.D)이 전체 평균 0.9853으로 가장 높았다.
3.5 실험 결과
앞선 MvTecAD 데이터 세트는 15가지의 물체가 모두 고체 형태의 물체였지만, 본 연구에서 활용한 렌즈 데이터는 고체 상태의 렌즈가 액체에 담겨있기 때문에 성능에 차이가 있을 것으로 예상하였다.
<Table 3>과 <Figure 14>를 통해 정상과 비정상을 분류하는 Image-level 테스트에서는 AUROC와 F1-score 모두 EfficientAD의 성능이 가장 높았고 이어 PatchCore 알고리즘도 각각 0.90 이상을 보인 것을 확인할 수 있다. <Figure 15>를 통해 가장 좋은 성능을 보인 EfficentAD의 AUROC가 1에 근접함으로 상당히 높은 성능을 보여주었다.
Image-level 테스트와는 다르게 <Table 3>과 <Figure 16>에서는 Pixel-level 테스트에서는 전체적인 모델의 성능이 떨어진 것을 확인할 수 있었다. 그중 에서도 가장 좋은 성능을 보인 건 AUROC에서는 PaDiM, F1-score에서는 CFlow가 가장 좋은 성능을 보였다. 또한, Image-level 테스트와 다르게 Pixel-level 테스트에서는 AUROC과 F1-score 사이의 격차가 큰 것으로 보였다. PaDiM의 경우 <Figure 17>처럼 AUROC는 1에 근사한 0.98의 값을 보였지만, F1-score는 0.21로 상당히 떨어진 성능을 보였다. 모델 별 AUROC가 0.5보다 크고 1에 근접하기 때문에 모델의 분류를 무작위 수준보다는 높으며 학습이 진행된 것을 확인 할 수 있었다. 정밀도와 재현율의 조화 평균인 F1-score가 낮다는 것은 정밀도와 재현율 사이에 불균형이 큰 것으로 보였다.
<Table 3>과 <Figure 18>에서는 모델 별 예측 속도는 전체 이미지 개수 대비 예측에 걸린 시간을 나누어 초당 프레임 개수(FPS)로 측정하였으며, EfficientAD의 성능이 가장 높게 측정되었다. 이는 기존의 사전 학습된 모델들의 대부분은 메모리에 데이터를 정상 데이터의 특징을 저장하고 이와 비교하여 비정상을 판단하기 때문에, 훈련 시간이 필요 없지만 예측 과정에서는 비교적 높은 연산량을 요구하기 때문에 현재는 훈련 데이터의 개수가 작음으로 큰 차이를 보이지 않지만 훈련 데이터의 개수가 커질수록 격차가 커질 것으로 예상된다. 그러나, EfficentAD를 훈련 하는데 많은 비용이 소모됨으로 이는 훈련 시간과 예측 시간 사이에 Trade-off로 작용할 것으로 예상된다.
<Table 4>와 <Figure 19>에서는 모델 별 False Positive와 False Negative 케이스 개수를 비교한 결과 EfficientAD의 경우 False Negative라고 할 수 있는 이물질 케이스 (Impurities), 다량 렌즈 케이스(Multiple) 렌즈 누락 케이스 (Omission)은 모두 비정상으로 분류하였고, 정상을 비정상으로 분류한 False Positive가 한 개 발생하였다. Predicted Heat Map을 통해 비정상 발생 위치를 확인하여 오른쪽 아래 비정상이 발생했다는 것을 유추할 수 있다. 이 부분은 렌즈 촬영을 위해 상표를 제거하면서 정상 케이스이지만 상표의 일부분이 온전히 제거되지 못하면서 기존의 정상 데이터에서 벗어난 모습이 보였다. 이는 데이터 수집 과정에서 정상 데이터를 균일하게 수집하거나, 정상 데이터의 개수를 늘려 비교적 해당 케이스와 비슷한 샘플의 개수를 늘리는 방안 등을 고려하여 성능을 향상시킬 수 있을 것으로 보였다. 비교적 모든 알고리즘이 비정상 분류의 성능은 높았으나 정상을 비정상으로 잘못 분류하는 False Positive 케이스가 많았고 FastFlow와 CFlow 모델은 이물질 분류에서 정상 분류가 2번, PaDiM의 경우 렌즈 누락 비정상을 정상으로 분류하는 경우가 한번 발생하였다.
<Figure 20>~<Figure 24>는 EfficientAD로부터 정상과 비정상 테스트를 진행한 결과이다. 이상탐지에서 정상과 비정상을 구분하기 위해, 특정 임계 값을 지정하고 임계 값 보다 큰 값은 비정상으로 분류하는 방식으로 진행된다. 임계 값을 구하는 방법에는 평균이나, 최댓값과 같은 기술 통계량을 활용하는 방법과, 검증 데이터의 False Positive 비율을 통해서 해당 비율이 지정되는 구간의 임계 값을 설정하는 방법 등이 존재한다. 본 연구에서는 검증 데이터의 False Positive 비율이 30%되는 구간에서 임계 값을 지정하여 비정상을 분류하였으며, 정상과 비정상이 해당 임계 값에서 얼마나 떨어져 있는지를 통해 정상과 비정상 퍼센트를 계산하여 위에 그림에 왼편 상단에 표기하였다. 앞선 Image-level, Pixel-level, Inference Speed 테스트에서 EfficientAD가 가장 준수한 성능을 보였다고 판단된다. Image-level에서는 다른 모델에 비해 가장 성능이 좋았고, Pixel-level의 경우 F1-score가 비교적 낮지만 다른 모델들이 전체적으로 낮게 측정되었으며, 무엇보다 Inference Speed가 가장 빠르기 때문에 실시간으로 활용하기에도 가장 적합하다고 판단된다. <Figure 20>은 EfficientAD를 통해 정상 테스트 이미지를 정상으로 분류한 모습을 확인할 수 있다. <Table 4>에서 EfficientAD의 경우 정상을 비정상으로 분류한 False Positive 상황이 1건 발생하였고, <Figure 21>이 해당 상황에 해당한다. 비정상 테스트의 경우, EfficientAD는 모든 비정상을 비정상으로 구분하였다. 이물질 케이스의 경우 <Figure 22>에서 보이듯 가운데 이물질이 정확하게 히트맵(heatmap)에 표시되었다. 다량의 렌즈가 포함된 경우인 <Figure 23>과 렌즈의 누락이 생긴 <Figure 24>에서 비정상 케이스의 경우 특정 부위에 히트 맵이 표시되지는 않았지만 비정상으로 구분되었다. 실제 적용 단계에서, 정상과 비정상을 구분하는 것도 중요하지만, 정상을 비정상으로 분류하거나, 비정상을 정상으로 분류하는 상황을 최소화하는 것이 무엇보다 중요하다. 렌즈의 경우 개당 단가가 높지 않기 때문에 정상을 비정상으로 분류하는 것 보다 비정상을 정상으로 분류하는 것이 더 치명적이다.
3.6 한계점
실험 결과 FastFlow, PaDiM, CFlow를 제외한 모델들은 모든 비정상을 비정상으로 분류하였다. 특히 EfficientAD의 경우 모든 비정상을 비정상으로 분류함과 동시에 정상을 비정상으로 분류한 케이스도 가장 적었음으로 가장 좋은 성능을 보였다. <Figure 21>에서 보면 EfficientAD가 정상을 비정상으로 분류한 경우 왼쪽 아래 가장자리에 빛 번짐이 심하여 해당 부분의 히트맵 표시가 된 것을 확인할 수 있다. <Figure 9>에서 정상 데이터에서도 빛이 번지며 오른쪽 하단에 데이터가 손실된 것으로 보이며, 또한 렌즈를 촬영하기 위해 포장을 뜯는 과정에서 주변에 포장지가 붙어 균일한 데이터 수집이 이뤄지지 않은 부분을 확인할 수 있다.
4. 결 론
본 연구에서는 이미지 데이터를 활용하여 비지도 학습 기반의 이상 탐지 알고리즘을 투명한 콘택트 렌즈에 적용하여 정상 렌즈 이외에 정의된 3 가지의 비정상 상황을 탐지하는 연구를 진행하였다. 기존의 컬러 콘택트 렌즈를 정상과 비정상으로 나누어 지도 학습을 진행했던 연구와 달리 투명 콘택트 렌즈를 정상과 비정상 레이블을 만들지 않고 정상 데이터만을 활용하는 비지도 학습을 진행하였다. 또한, 기존의 비지도 학습 알고리즘에서는 고체 형태의 물체를 기반으로 연구가 진행되었지만, 본 연구에서는 고체 형태의 물체가 액체에 담겨있어 비교적 형태가 유기적으로 변화하는 환경에 대한 이상탐지를 시도하였다. 총 9 가지의 비지도 학습 기반의 이상 탐지 알고리즘을 적용하여 결과를 비교하였고, EfficentAD 알고리즘이 정상과 비정상을 분류하는 이미지 단위의 AUROC에서 0.96, F1-score에서 0.97로 가장 좋은 성능을 보였다. 다만 정상과 비정상 분류 외 비정상이 발생한 이미지 내 픽셀 위치를 탐지하는 픽셀 단위의 테스트에서 F1-score가 0.18로 감소 하였다. 그럼에도 EfficientAD 외 모든 알고리즘이 픽셀 단위 테스트에서 성능이 대폭 감소하였기에 EfficientAD 알고리즘의 성능 하락 보다 수집된 데이터 세트 자체에서 픽셀 단위로 테스트하기 힘든 것으로 예상된다. 실험을 위한 데이터 수집 과정에서 정상 데이터 수집이 균일하게 진행되지 못하였고, 실험 데이터 개수가 현저히 낮은 점이 있음에도 정상과 비정상을 분류하는 테스트에서는 좋은 성능을 보였음으로 실제 공정에서 균일하게 대량으로 정상 데이터를 수집할 수 있다면 더 좋은 성능을 보일 것으로 기대된다.