VC Input and Artifacts
데이터 준비
학습 데이터 준비
- .png, .jpg 형태의 동일한 shape(1024x1024, 3채널와 같은 형태)을 가진 이미지 데이터와 정답 label 데이터를 준비합니다.
- 이미지 경로와 정답 label로 이루어진 dtabular 형태의 Ground truth 파일을 준비합니다.
- 각 label 유형마다 최 소 100장 이상 데이터가 있어야 안정적인 모델을 생성할 수 있습니다.
- 현재 multi-class는 지원하지만 multi-label(한 장의 사진이 여러 유형을 갖는 경우)은 지원하지 않습니다.
- Ground truth 파일은 하기와 같은 형태로 준비하시면 됩니다.
- Ground truth 파일과 이미지 파일을 같은 폴더에 넣어서 준비합니다.
- 추론 데이터의 경우 학습 데이터와 마찬가지로 Ground truth 파일을 준비하거나, 추론을 원하는 이미지를 하나의 폴더 내 준비합니다. (추론 데이터의 경우 Ground truth 파일이 없는 경우 이미지가 저장된 경로를 보고 내부적으로 파일을 생성합니다.)
GroundTruth.csv 학습 데이터셋 예시
label | image_path |
---|---|
label1 | ./image1.png |
label2 | ./image1.jpeg |
label1 | ./image2.jpeg |
... | ... |
input data directory 구조 예시
- Ground truth 파일은 여러 개의 파일로 이루어져도 지원하지만 모두 같은 항목명으로 이루어져 있어야 합니다.
./{train_folder}/
└ train_data1.csv
└ train_data2.csv
└ train_data3.csv
└ image1.png
└ image1.jpeg
└ image2.jpeg
./{inference_folder}/
└ data_a.csv
└ data_b.csv
└ image_test1.png
└ image_test1.jpeg
└ /{folder1}/
└ image_test2.jpeg
input data directory 구조 예시(추론 데이터에 대한 csv파일이 없는 경우)
./{inference_folder}/
└ image_test1.png
└ image_test1.jpeg
└ /{inference_folder}/
└ image_test2.jpeg
데이터 요구사항
필수 요구사항
입력 데이터는 다음 조건을 반드시 만족하여야 합니다.
index | item | spec. |
---|---|---|
1 | Single label: 이미지 1장 당 단일 클래스 | Yes |
2 | 클래스 명 폴더 내 해당 클래스의 이미지가 저장된 형식 준수* | Yes |
3 | 클래스 별 데이터 수: 중복 이미지 없이 구성 | 10~10000 장 |
4 | 전체 클래스 수 | 0~20 종류 |
5 | 채널 수 고정: 3채널 혹은 1채널(gray) | Yes |
6 | 해상도 | 32x32 ~ 1024x1024 픽셀 |
7 | 신규 이미지에 대한 inferance 간격이 10초 이상인가 | Yes |
8 | 학습이 필요한 시간 간격이 12시간 이상인가 | Yes |
- Data Examples 참고
추가 요구사항
최소한의 성능을 보장하기 위한 조건입니다. 하기 조건이 만족되지 않아도 알고리즘은 돌아가지만 성능은 확인되지 않았습니다
index | item | spec. |
---|---|---|
1 | 이미지명이 유형에 무관하게 고유의 이름으로 저장 | Yes |
2 | 클래스 별 데이터 수: 중복 이미지 없이 구성 | 100~800 장 |
3 | 전체 클래스 수 | 0~20 종류 |
4 | 해상도 | 224x224 ~ 1280x720 픽셀 |
5 | ROI 크기* | 10x10픽셀 이상(224x224 기준) |
6 | 제품 위치/방향/카메라와의 거리 고정 | 허용오차: rotation +/- 3도 이내, translation 1픽셀 이하(224x224 기준) |
7 | 이미지 초점이 뚜렷해야 함 | Yes |
8 | AI 운영 시 학습되지 않은 신규 유형이 발생하지 않는다 | Yes |
9 | 이미지 측정 환경: 학습/검증/운용 시 최대한 동일하고 일정한 환경 유지(명도, 조도, 배경 등) | Yes |
- ROI: Region Of Interest(관심영역)
산출물(artifacts)
학습/추론을 실행하면 아래와 같은 산출물이 생성됩니다.
Train pipeline
./cv/train_artifacts/
└ models/train/
└ model.h5
└ model.tflite
└ params.json
└ output/
└ prediction.csv
└ extra_output/train/
└ eval.json
└ confusion.csv
Inference pipeline
./cv/inference_artifacts/
└ output/inference/
└ prediction.csv
└ {imagefilename}.png OR {imagefilename}_xai_class{predicted_class}.png
└ extra_output/inference/
└ eval.json
└ confusion.csv
└ xai_result/
└ {imagefilename}_xai_class{predicted_class}.png
└ score/
└ inference_summary.yaml
각 산출물에 대한 상세 설명은 다음과 같습니다.
model.h5
학습이 완료된 keras 모델입니다.
model.tflite
학습이 완료된 embedded 환경에 적합한 tensorflow lite 모델입니다.
params.json
학습 시 사용한 parameter 정보가 저장된 json 파일입니다.
prediction.csv
학습 데이터에 대한 모델의 추론 결과가 담긴 파일입니다. 하기와 같은 항목으로 구성되어 있습니다.
- label: Ground Truth 라벨
- pred_label: 추론 라벨
- prob_{유형명}: 각 유형에 해당할 확률
confusion.csv
Ground Truth 라벨과 추론 라벨로 이루어진 confusion matrix(wikipedia)로 inference pipeline에서 라벨 정보가 있는 경우 저장됩니다.
eval.json
학습 성능을 나타내는 분류 리포트(scikit-learn)로 inference pipeline에서 라벨 정보가 있는 경우 저장됩니다.
{imagefilename}.png OR {imagefilename}_xai_class{predicted_class}.png
do_xai가 True인 경우 xai 영역이 표시된 이미지를, do_xai가 False인 경우 원본이미지를 저장합니다. edge viewer에서 확인할 수 있습니다.
inference_summary.yaml
추론 결과에 대한 요약 정보입니다. Melleriakt의 edge viewer에 출력되는 정보입니다. date, file_path, note, probability, result, score, version으로 이루어져 있으며 CV에서는 result가 추론 결과, score는 추론에 대한 확실성(0~1)을 나타냅니다.
CV Version: 1.5.1