VAD Input and Artifacts
Updated 2024.06.11
데이터 준비
학습 데이터 준비
- png, .jpg 형태의 동일한 shape(1024x1024, 3채널와 같은 형태)을 가진 정상(혹은 동일한 유형) 이미지 데이터를 준비합니다.
- 이미지 경로와 정답 label(모두 정상이기 때문에 동일 유형으로 작성)로 이루어진 tabular 형태 의 Ground truth 파일을 준비합니다.
- 일부 비정상(혹은 소수의 다른 유형) 이미지 데이터가 있는 경우 학습 데이터에 포함시키면 더욱 더 정확한 AI 모델이 생성됩니다.
- Ground truth 파일은 하기와 같은 형태로 준비하시면 됩니다.
- Ground truth 파일을 준비할 때 여러 유형을 가진 이상 이미지에 대해 라벨을 통일할 필요는 없습니다.
- 만약 검증을 원하는 데이터가 있다면
train_validation_column
argument에 항목명을 입력하면 train에 해당하는 이미지는 학습에 사용되며 기타 이미지는 검증에 사용되어 성능을 확인할 수 있습니다. (만약 정상 이미지만 있어도 성능만 도출이 되지 않을 뿐 정상적으로 학습됩니다.) - Ground truth 파일과 이미지 파일을 같은 폴더에 넣어서 준비합니다.
- 추론 데이터의 경우 학습 데이터와 마찬가지로 Ground truth 파일을 준비하거나, 추론을 원하는 이미지를 하나의 폴더 내 준비합니다. (추론 데이터의 경우 Ground truth 파일이 없는 경우 이미지가 저장된 경로를 보고 내부적으로 파일을 생성합니다.)
- 학습 데이터 유형은 여러 유형으로 구성되도 정상 유형과 abnormal 유형으로 두 가지로만 분류를 수행합니다.
학습 데이터셋 예시
label | image_path | train_val_split |
---|---|---|
good | ./image0.png | train |
bad | ./image1.png | valid |
good | ./image2.png | train |
good | ./good/image0.png | train |
good | ./good/image1.png | train |
good | ./good/image0.jpg | train |
good | ./good/image1.jpg | train |
input data directory 구조 예시
/project_folder/vad/solution/sample_data
└ inference
└ 10479_0.png
└ 1080_7.png
└ 10735_7.png
└ train
└ train.csv
└ abnormal
└ 10019_0.png
└ 10024_0.png
└ 10097_0.png
└ good
└ 10395_7.png
└ 10034_7.png
└ 10852_7.png
데이터 요구사항
필수 요구사항
입력 데이터는 다음 조건을 반드시 만족하여야 합니다.
index | item | spec. |
---|---|---|
1 | 충분한 수의 정상 혹은 단일 유형 이미지 | 100~50000장 |
2 | Ground Truth 파일 항목명 양식 준수(label, image_path) | Yes |
3 | 채널 수 고정: 3채널 혹은 1채널(gray) | Yes |
4 | 해상도 | 32x32 ~ 1920x1920 픽셀 |
5 | 신규 이미지에 대한 inference 간격이 3초 이상인가 | Yes |
6 | 학습에 필요한 시간 간격이 6시간 이상인가 | Yes |
- Data Examples 참고
추가 요구사항
최소한의 성능을 보장하기 위한 조건입니다. 하기 조건이 만족되지 않아도 알고리즘은 돌아가지만 성능은 확인되지 않았습니다
index | item | spec. |
---|---|---|
1 | 이미지명이 유형에 무관하게 고유의 이름으로 저장 | Yes |
2 | AI 성능을 확인하기 위한 소수의 이상 이미지 확보 | 이상 유형 별 10장 |
3 | 해상도 | 224x224 ~ 1024x1024 픽셀 |
4 | ROI(Region Of Interests, 관심영역) 크기 | 15x15픽셀 이상(224x224 기준) |
5 | 제품 위치/방향/카메라와의 거리 고정 | 허용오차: rotation +/- 3도 이내, translation 1픽셀 이하(224x224 기준) |
6 | 이미지 초점이 뚜렷해야 함 | Yes |
7 | 이미지 측정 환경: 학습/검증/운용 시 최대한 동일하고 일정한 환경 유지(명도, 조도, 배경 등) | Yes |
산출물(artifacts)
학습/추론을 실행하면 아래와 같은 산출물이 생성됩니다.
Train pipeline
/project_folder/vad/train_artifacts
└ models
└ readiness
└ readiness_config.json
└ train
└ train_config.json
└ model.pickle
└ patchcore_model.ckpt
└ best_model_path.json
└ log
└ experimental_history.json
└ pipeline.log
└ process.log
└ extra_output
└ train
└ threshold_test_result.png
└ images
└ abnormal_OK_WIN_20240521_11_59_25_Pro.jpg
└ abnormal_OK_WIN_20240521_11_59_01_Pro.jpg
└ abnormal_OK_WIN_20240521_12_01_16_Pro.jpg
└ threshold_test_result.csv
└ score
└ output
└ validation_classification_report.json
└ output.csv
└ validation_confusion_matrix.csv
└ validation_score.csv
└ report
Inference pipeline
/project_folder/vad/inference_artifacts
└ log
└ experimental_history.json
└ pipeline.log
└ process.log
└ extra_output
└ inference
└ Patchcore
└ latest
└ images
└ NG2.jpg
└ OK4.jpg
└ OK3.jpg
└ score
└ inference_summary.yaml
└ output
└ output.csv
└ NG2.jpg
각 산출물에 대한 상세 설명은 다음과 같습니다.
{model_name}_model.ckpt
학습이 완료된 모델파일입니다.
output.csv
추론 결과와 확률이 기록된 표 형태의 파일입니다.
validation_confusion_matrix.csv
학습 파이프라인에서 검증 데이터에 대한 성능이 기록된 confusion matrix결과가 저장된 파일입니다. 검증 데이터에 abnormal 데이터가 있는 경우에만 저장됩니다.
validation_score.csv
학습 파이프라인에서 검증 데이터에 대한 성능이 기록된 파일입니다. 정확도, precision, recall, F1-score, AUROC가 기록되어 있습니다.
{imagefilename}.png
abnormal 영역이 표시된 이미지입니다. 학습 파이프라인의 경우 잘못 추론한 이미지와 모든 abnormal 이미지에 대해 저장합니다. 추론 파이프라인의 경우 output폴더에 재학습을 위한 원본 이미지가 저장됩니다.
inference_summary.yaml
추론 결과에 대한 요약 파일입니다. edge conductor에서 사용되며 score, result, probability 등으로 이루어져 있습니다.
threshold_test_result.csv
이상 탐지를 위한 기준 threshold를 변경했을 때 validation 데이터에 대한 성능 변화 표입니다.
threshold_test_result.png
이상 탐지를 위한 기준 threshold를 변경했을 때 성능 변화 그래프입니다.
VAD Version: 1.0.0