Patch core 톺아보기

Positivvoo(긍정우)·2024년 10월 1일

회사에서 불량품 탐지 분야를 진행하게 되었습니다.

2022년 CVPR에 발표된 Towards Total Recall in Industrial Anomaly Detection 논문을 통해 Patch core를 공부해보려고 합니다.


Patch Core라는 별칭으로 불리는 개념은 Anomaly Detection의 한 분야입니다.
일전에 MES 프로젝트에서 예지 보전 분야를 공부했는데 겹치는 부분이 있는 것 같습니다.

패치코어란?

  • 사전 학습 모델을 활용하여 학습 과정 없이 정상 데이터의 feature을 추출하여 비정상 이미지를 탐지하는 모델
  • 정상 데이터의 특징을 효과적으로 저장하여 적은 양의 이미지 만으로도 높은 성능
  • 정상 데이터와 다른 해상도의 이미지에도 적용가능한 특징

방식

Train

  1. local patch features

기존의 사진에서 특징을 추출할 때 중간 단계의 과정을 뽑아서 패치코어 사전 학습을 진행합니다.
중간 단계를 사용하는 이유로는 High - level인 경우 공간적 정보의 손실이 크며, High - level은 bias 가 많이 반영되어 있기 때문에 중간에 있는 것을 사용하게 됩니다.

i단계에서 나온 값들에서 i + 1로 갈 수록 점점 축소되지만 interpolation을 통해 사이즈를 통일시키게 됩니다.

여기서 나온 것들로 Global Average Pooling을 통해서 coreset을 만들어내게 됩니다.

  1. Coreset subsampling

정상데이터의 모든 정보를 가질 필요가 없는 특징을 가집니다.
정상데이터의 경우에는 중복되거나 유사한 정보가 많기 때문입니다.

그렇기 때문에 위에서 구한 것들에서 중요하고 독특한 부분의 정보를 가져오는 것이 이것의 중점입니다.

논문 내에서는 Greedy Search 방식을 차용합니다.
이는 가장 기본적인 방식인 것 같은데 매 선택마다 현재만 생각하여 가장 좊은 것을 고른다고 이해했습니다.


현재 위치에서 가장 먼 위치를 계속 선택하게 됩니다. 그러면 대표성 있는 표본이 선택되게 됩니다.
조금 더 전체적인 그림을 보여드리겠습니다.


랜덤의 방식보다 더욱 균일하게 퍼져있는 분포를 확인할 수 있습니다.

Test

  1. Detection and localiztion

테스트 이미지에서 패치를 나누고 각 패치에 대해 미리 학습된 정상 샘플의 코어셋을 쿼리로 비교하게 됩니다.
'가까운 것들 중에서 가장 먼 것을 선택' 한다고 이해했습니다.

유사성이 낮은 패치일 수록 비정상일 가능성이 높아지게 됩니다.
일정 임계값 이하로 유사성이 떨어진다면 비정상으로 간주하고 이상영역을 표시하게 되는 방식입니다.

이를 통해 불량품 검사를 진행하게 됩니다.

최종적으로는

이런 식으로 확인할 수 있을 것입니다.
조금 더 잘 제작한 뒤에 찾아오겠습니다.

profile
경제학 전공생의 우당탕탕 개발 이야기

0개의 댓글