2. 이상탐지를 적용할 알고리즘 선정 및 구현
2.1. 이상탐지 알고리즘을 선정 과정
- 딥러닝으로 해결하기 위해
Paperwithcode
에 접속하여 Task에 관련된 키워드를 입력한다. -> Anomaly Detection 을 검색한다. - Task와 유사한 데이터셋을 찾아 클릭한다. -> MVTec AD
- 유사한 데이터셋을 평가했을때 순위를 나타낸 리더보드에서 SOTA 알고리즘을 선정한다. -> PaDim 알고리즘 선정
- 선정한 알고리즘에 대해 학습과 추론할 수 있게 구현한다.
- 해당 알고리즘에 대해 논문을 읽고 공부하고나서, github를 참고하여 해결하고자 하는 Task에 맞게 코드를 수정한다.
- 각자 환경에서 구동시켜 학습시킨다. -> 리눅스 서버로 가져와서 학습
2.2 이상탐지 알고리즘
1. PaDim을 선정한 이유
2021.08월 당시 MVTec 데이터셋으로 이상탐지를 하였을때, 4위(2021.11월 시점 6위)를 자치한 SOTA 모델이었고, 사전조사를 했을때 PaDim이라는 알고리즘이 One-Class Classification 방식으로 정상 데이터로 부터 학습 후 정상과 비정상을 판단한다는 점과 사전 학습된 CNN 모델을 가져와서 특성을 추출하고 뽑힌 특징을 가지고 평균과 공분산을 구하고, 정상 샘플에 대한 Gaussian distribution이 존재한다는 가정으로 비정상 샘플을 구별한다는 점에서 매력적으로 느껴졌고 주조 공정에서 발생한 임펠러 데이터에 적용해도 MVTec 데이터에서 보여주는 성능을 나타낼 것으로 기대되어 해당 알고리즘을 선정하였다.
2. PaDim 이란
- One-Class Classification 방식으로 학습되고, 사전 학습된 CNN 모델을 통해 정상 샘플에 대한 Embedding 정보를 뽑아내고, Random Dimensionality Reduction을 진행하여 정상 샘플에 대한 평균과 공분산 정보를 추출한다.
- 정상 샘플이 Gaussian distribution을 따른다는 가정하에, 테스트 데이터와 정상 샘플의 특징을 Mahalanobis distance를 사용해 정상과 비정상 샘플을 구별한다.
3. 주조 공정에 대해 평가한 성능 결과.
2.3 PaDim 코드 구현
1. custom_dataset.py
소스코드
'프로젝트' 카테고리의 다른 글
제조 공정의 AI 기반 이상 탐지를 위한 알고리즘 및 플랫폼 개발 (1) (0) | 2021.11.17 |
---|---|
제조 공정의 AI 기반 이상 탐지를 위한 알고리즘 및 플랫폼 개발 (2) (0) | 2021.11.16 |
SKT develope NUGU 교통편 < python (Flask) > (0) | 2019.04.06 |