반도체 소자 이상 탐지 AI 경진대회

알고리즘 | 월간 데이콘 | 비전 | 비지도학습 | 이상 탐지 | F1 Score

  • moneyIcon 상금 : 인증서
  • 906명 마감

 

PatchCore tensorflow

2024.03.05 01:45 667 조회 language

이번 대회는 처음 접하는 분야이다 보니 학습을 목적으로, unsupervised anomaly detection 관련 공부 및 모델 구현을 목표로 본 대회를 진행했습니다.

SPADE, PaDiM, PatchCore의 세 가지 방법에 대해 공부하고, 논문을 참고해 모델을 구현했으며, 그 중 가장 점수가 높은 PatchCore로 결과물을 제출했습니다.

torch를 잘 몰라서 일단 tensorflow로 모델을 구현했습니다. PatchCore의 backbone 모델로 ImageNet Pre-trained WideResNet50을 사용했으며,

tensorflow에서는 pretrained WideResNet 모델을 제공하지 않으므로, 모델의 아키텍쳐만 구현한 뒤 모델 가중치는 torch에서 가져와 적용했습니다.

논문에 기재된 Image level anomaly detection 방식을 최대한 구현하고자 노력했으며, Faiss Nearest Neighbor 계산 부분은 원본 코드(https://github.com/amazon-science/patchcore-inspection) 를 참고했습니다.

Anomaly score의 threshold의 경우, 적절한 값을 찾고자 validation set을 나눠보거나 하는 방법들을 적용해보았지만, 결과적으로 training set의 anomaly score 최대값을 threshold로 설정했을 때 가장 좋은 점수를 받았습니다.

후... 아직 부족한 부분이 너무 많네요 ㅜㅠ... 감사합니다.

코드