Dataset Contract

작성일: 2026-05-13 · 최신 표시: 2026-06-13 · 범위: Google Drive / server landmark dataset snapshot

Current Contract

최신 학습 데이터셋은 23개 landmark class와 parent/sub-landmark metadata를 포함한다. 각 landmark 폴더는 catalog.json, labels.json, images/를 중심으로 구성하고, 전체 dataset root에는 통합 confusion_prior_v1.json을 둔다.

2026-05-13의 10~13개 class 가정은 초기 데이터 수령 시점 기록이다. 현재는 Dataset_0601 계열 보강과 S3/S4 실험을 거치며 class 수와 hierarchy가 확장되었다. 일부 오래된 파일은 임시 파일명과 숫자형 landmark_id를 포함하므로 학습 전 canonical manifest로 정규화해야 한다.

이 문서는 데이터 구조와 스키마 계약을 정의한다. 실제 라벨러가 어떤 기준으로 confirmed, hard case, out-of-scope, 자연어 검색용 텍스트를 기록할지는 Data and Text Labeling Guide를 따른다.

Required Layout

Dataset/
  confusion_prior_v1.json
  cheongwadae/
    catalog.json
    labels.json
    images/
      00020.jpg
      00021.jpg
  naksan_park/
    catalog.json
    labels.json
    images/
      00001_b01a7d2f1cc9.jpg
  mmca_seoul/
    labels.json
    images/
      00006_1881797b6bed.jpg

dataset root 폴더명은 현재 서버와 학습 스크립트 기준 Dataset으로 둔다. 각 landmark 폴더명은 canonical landmark_id와 같아야 한다. 각 폴더 내부의 labels.json은 해당 landmark의 이미지와만 대응한다. file_name은 폴더 내부 기준 images/... 상대 경로를 권장한다.

Required labels.json Fields

필드 필수 여부 설명
image_id 필수 데이터셋 전체에서 unique한 이미지 식별자.
file_name 필수 각 landmark 폴더 기준 상대 경로. 예: images/00001.jpg.
landmark_id 필수 학습 class id. train/val/test split은 이 필드로 stratified 처리한다.
parent_landmark_id 권장 덕수궁/경복궁/창경궁처럼 세부 class가 상위 장소에 속할 때 앱 표시와 group filtering에 사용한다.
label_status 필수 confirmed, uncertain, rejected 중 하나를 사용한다.
scope_status 필수 in_scope, similar_out_of_scope, out_of_scope_other, screen_or_document 중 하나.
training_role 필수 train_positive, low_weight_positive, calibration_only, eval_only, exclude 중 하나.
quality_status 권장 ok, blurry, dark, low_resolution, occluded, cropped_too_much 등. rejection 평가에 사용한다.
scene_group, view_type 권장 catalog의 allowed scene group과 view type 기준으로 이미지의 반복 장면을 묶는다.
source_group_id 선택 같은 촬영 세션, 같은 원본 URL, 같은 앨범, crop/resize 변형이 확실할 때만 쓰는 split leakage 방지용 그룹.
confusing_with 권장 Dataset/confusion_prior_v1.json과 catalog를 기준으로 주입되는 hard negative 후보 id 목록.
caption_set 권장 name_anchorvisual_feature 중심의 한/영 caption. rejected/exclude는 빈 배열.

Split Policy

Negative Evaluation Set

저신뢰 입력 처리는 별도 평가 세트로 다룬다. 최소 구성은 비랜드마크, 서울 외 장소, 유사하지만 정답이 아닌 랜드마크, AI 생성 이미지, 흐림/어두움/잘림 이미지다. negative 데이터가 부족하면 reject AUROC나 coverage@accuracy를 완전한 검증 결과로 주장하지 않는다.

현재 negative 데이터는 아직 준비되지 않았다. 우선 수집 대상은 한국 전통 건축물 중 외형이 비슷한 범위 외 장소와 지정 랜드마크와 혼동될 수 있는 hard negative다. 예: 궁궐, 성문, 전통 지붕, 석축, 광장 구조가 유사한 이미지. 이 데이터는 closed-set Top-3 학습의 필수 조건은 아니지만, 범위 외 입력을 모두 지원 범위 외로 안내하기 위한 confidence threshold 검증에는 필요하다.

Audit Metrics

검사 목적 실패 시 조치
missing file count labels.json과 실제 이미지 일치 확인 해당 record 제외 또는 파일 복구
class count / min count 학습 가능한 class balance 확인 소수 class augmentation 또는 split 조정
duplicate hash train/test leakage 방지 중복 그룹 단위 split
source group leakage 같은 촬영 출처가 train/test에 동시에 들어가는 문제 방지 source_group_id 기준 split 재생성
negative coverage confidence threshold와 "판독 불가" 평가 가능성 확인 negative_type별 추가 수집 또는 평가 범위 축소
image decode 깨진 파일과 특이 format 확인 RGB 변환 캐시 생성
caption coverage image-text retrieval 후보 생성 가능성 확인 landmark_name 기반 fallback candidate 생성