본문으로 건너뛰기
버전: docs v25.02

VC Input and Artifacts

Updated 2024.05.17

데이터 준비

학습 데이터 준비

  1. .png, .jpg 형태의 동일한 shape(1024x1024, 3채널와 같은 형태)을 가진 이미지 데이터와 정답 label 데이터를 준비합니다.
  2. 이미지 경로와 정답 label로 이루어진 dtabular 형태의 Ground truth 파일을 준비합니다.
  3. 각 label 유형마다 최소 100장 이상 데이터가 있어야 안정적인 모델을 생성할 수 있습니다.
  4. 현재 multi-class는 지원하지만 multi-label(한 장의 사진이 여러 유형을 갖는 경우)은 지원하지 않습니다.
  5. Ground truth 파일은 하기와 같은 형태로 준비하시면 됩니다.
  6. Ground truth 파일과 이미지 파일을 같은 폴더에 넣어서 준비합니다.
  7. 추론 데이터의 경우 학습 데이터와 마찬가지로 Ground truth 파일을 준비하거나, 추론을 원하는 이미지를 하나의 폴더 내 준비합니다. (추론 데이터의 경우 Ground truth 파일이 없는 경우 이미지가 저장된 경로를 보고 내부적으로 파일을 생성합니다.)

GroundTruth.csv 학습 데이터셋 예시

labelimage_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


데이터 요구사항

필수 요구사항

입력 데이터는 다음 조건을 반드시 만족하여야 합니다.

indexitemspec.
1Single 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 참고

추가 요구사항

최소한의 성능을 보장하기 위한 조건입니다. 하기 조건이 만족되지 않아도 알고리즘은 돌아가지만 성능은 확인되지 않았습니다

indexitemspec.
1이미지명이 유형에 무관하게 고유의 이름으로 저장Yes
2클래스 별 데이터 수: 중복 이미지 없이 구성100~800 장
3전체 클래스 수0~20 종류
4해상도224x224 ~ 1280x720 픽셀
5ROI 크기*10x10픽셀 이상(224x224 기준)
6제품 위치/방향/카메라와의 거리 고정허용오차: rotation +/- 3도 이내, translation 1픽셀 이하(224x224 기준)
7이미지 초점이 뚜렷해야 함Yes
8AI 운영 시 학습되지 않은 신규 유형이 발생하지 않는다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