# 데이터 라벨링 (0.18.0)

OSCODE의 `/ml` 또는 모델 검사 버튼 → **데이터 라벨링**에서 시작합니다. 서버는 로컬로 실행하며 라벨링 페이지는 모델 API를 호출하거나 이미지를 업로드하지 않습니다.

1. 작업(이미지 분류 / 사각형 탐지)과 쉼표로 구분한 라벨 이름을 설정합니다.
2. PNG·JPEG·WEBP 원본을 추가합니다. 최대 30개, 파일당 10 MiB·합계 60 MiB, 1,600만 픽셀·한 변 8,192px 이하입니다. 동일 파일 해시는 중복 추가하지 않습니다.
3. 이미지별 LOT·웨이퍼를 기록합니다. 분류는 라벨을 선택해 **분류 정답 지정**, 탐지는 드래그 또는 숫자 좌표로 박스를 추가합니다. 박스 변경은 기존 박스를 삭제하고 다시 추가합니다. 확대·다각형·마스크 편집은 아직 없습니다.
4. **검토 완료**를 눌러 정답을 확정합니다. 탐지에서 결함이 없는 이미지는 박스 없이 확정할 수 있습니다. 미검토 빈 이미지와 검토 완료된 정상 이미지는 상태로 구분됩니다. 정상 이미지에 normal 박스를 그릴 필요는 없습니다.
5. **전체 작업 저장**은 초안과 예측을 포함한 작업 파일, **검토 완료만 내보내기**는 확정된 이미지의 정답 파일을 내려받습니다. 검토 후 라벨·LOT·웨이퍼를 변경하면 미검토로 돌아갑니다.

## 모델 예측 재사용

모델 검사 화면의 비교 결과 JSON을 가져와 A/B 슬롯을 선택할 수 있습니다. 선택은 파일을 불러오기 전에 하세요. 단일 결과(schema:1, modelId, modelVersion, task, image, predictions)도 지원합니다. 현재 이미지의 SHA-256·원본 크기·작업과 결과의 라벨 및 좌표가 일치해야 합니다. 영역 분할 결과는 지원하지 않습니다.

예측은 주황 점선, 작성한 정답은 청록 실선으로 표시합니다. **예측을 초안으로 복사**해야 편집 가능한 정답 후보가 됩니다. 분류는 점수가 가장 높은 예측 하나를 복사합니다. 기존 정답이 있으면 덮어쓰지 않습니다. 합성 비교 보고서는 합성 결과로 표시합니다. 모델 ID·버전은 가져온 파일의 주장일 뿐 서버 신원 검증이 아닙니다.

## 저장·복원과 데이터 형식

데이터는 현재 탭 메모리에만 있습니다. 자동 영구 저장이 아니므로 닫기 전 전체 작업을 내려받으세요. 브라우저의 이탈 경고는 보조 수단이며 충돌·강제 종료를 막지 못합니다. JSON에 이미지 바이너리는 없으므로 원본을 별도로 보관해야 합니다.

새 페이지에서 같은 작업·라벨 설정으로 원본 이미지를 먼저 추가한 뒤 작업 JSON을 불러오세요. SHA-256과 크기가 같은 이미지에만 복원합니다. 외부 파일의 검토 완료 주장을 그대로 믿지 않고 복원한 이미지는 미검토 상태로 시작합니다. JSON 최대 32 MiB, 이미지당 박스 500개입니다.

출력 스키마는 `oscode-labels/1`, 좌표는 `original-pixels`의 `[x,y,width,height]`입니다. `annotations`가 사람의 정답, `prediction`이 모델의 예측이며 서로 독립적입니다. 이 JSON은 OSCODE 자체 작업 형식으로, COCO/YOLO 학습기 자동 변환이나 자동 학습·MLflow 전송은 아직 지원하지 않습니다. LOT·웨이퍼 단위 학습/검증 분리는 이후 데이터 준비 단계에서 수행해야 합니다. 검토 시각은 기록하지만 다중 사용자 인증·감사 서명은 제공하지 않습니다.

0.18.0에 포함된 기능입니다.
