Actions
기능 #887
진행중검토 #881: #868 고도화: 쇼케이스 사진 기반 케이크 슬롯 판정용 이미지 비교 Lambda 검토
[#881-3] 제품 crop 생성 및 라벨링 노트북 구축
기능 #887:
[#881-3] 제품 crop 생성 및 라벨링 노트북 구축
시작일:
2026/07/05
완료일:
진척도:
0%
추정시간:
설명
목표
- 실제 점포 사진에서 제품 후보 crop을 쉽게 만들고, 제품 마스터의 정확한 제품명 라벨을 붙일 수 있게 한다.
체크 항목
- 자동 crop 후보 생성
- crop 미리보기
- 수동 bbox 보정
- productName/productKey 선택
- labelStatus 관리(confirmed/uncertain/ignore/duplicate)
- 로컬 JSONL 저장
완료 조건
- 라벨링 결과가 재실행 가능한 로컬 dataset으로 남는다.
시진 노이(가) 약 12시간 전에 변경
라벨링 파이프라인 보완 메모
- full crop(T5-full 등)은 한 단 전체라 제품이 여러 개 들어갈 수 있으므로 confirmed 라벨 대상에서 제외하고, split/manual crop에 제품 1개씩 라벨링하는 정책을 노트북에 명시했습니다.
- 수동 crop은 제품 박스 주변 맥락을 포함하도록 contextMargin(권장 0.08~0.15)을 지원합니다.
- 수동 crop 좌표는 S3/DDB에 쓰지 않고 로컬 notebooks/output/product_training_881/labels/manual_crops.jsonl에 저장/복원합니다.
- 라벨은 기존대로 로컬 showcase_product_labels.jsonl에 누적 저장됩니다.
시진 노이(가) 약 12시간 전에 변경
작전 변경 반영
- 자동 crop 후보 생성 방식은 품질이 낮아 노트북 메인 흐름에서 제외했습니다.
- 5번 셀을 원본 이미지 직접 박싱 방식으로 교체했습니다.
- Jupyter에서 원본 door 이미지를 선택하고 제품 1개씩 드래그 박싱하면, 마우스를 놓는 순간 manual_crops.jsonl과 crop 이미지가 로컬에 자동 저장됩니다.
- 6번부터는 저장된 manual crop 미리보기, 7번부터는 기존 제품명 라벨링 흐름을 그대로 사용합니다.
- 수동 crop/라벨은 모두 로컬 notebooks/output/product_training_881 아래에만 저장하며 S3/DDB write는 없습니다.
시진 노이(가) 약 12시간 전에 변경
crop 해상도 기준 보완
- 현재 저장된 일부 manual crop이 13x157, 167x28px 수준으로 확인되어 학습에 부적합한 too_small 케이스로 판단했습니다.
- 노트북 5번 박싱 UI에 최소 crop short side 96px 제한을 추가해 너무 작은 박스는 저장하지 않도록 수정했습니다.
- 6번 미리보기에서 cropWidth/cropHeight/resolutionStatus(good/usable_low/too_small)를 표시하도록 보완했습니다.
- 기준: good=짧은 변 160px 이상, usable_low=96~159px, too_small=96px 미만.
시진 노이(가) 약 12시간 전에 변경
박싱 이벤트 좌표가 0x1px로 잡히는 환경 대응
- 원본 468x832px는 학습 crop을 만들 수 있는 크기이며, 문제는 원본 해상도보다 Matplotlib/ipympl 드래그 좌표 이벤트가 정상 전달되지 않는 쪽으로 판단했습니다.
- 노트북에 5B 슬라이더 방식 crop 저장 셀을 추가했습니다.
- 5B는 x/y/w/h 슬라이더로 crop을 조정하고 preview를 확인한 뒤 '슬라이더 crop 저장' 버튼으로 manual_crops.jsonl/crops에 저장합니다.
- 드래그 자동저장이 불안정하면 5B를 권장 경로로 사용합니다.
시진 노이(가) 약 11시간 전에 변경
다음 작업 메모
- 현재 버튼/슬라이더 crop UI는 동작하지만 작업량이 많습니다.
- 다음 세션 우선순위는 crop 고도화: 마우스로 박스를 직접 그리고/이동하고/크기 조절할 수 있는 안정적인 UI 개선입니다.
- 기존 Matplotlib RectangleSelector는 좌표가 0x1px로 읽히는 문제가 있었으므로 그대로 복원하지 말고, HTML/canvas 또는 다른 widget 방식으로 검토합니다.
- crop/label 저장은 계속 로컬 notebooks/output/product_training_881 아래에만 저장하고 S3/DDB write는 하지 않습니다.
Actions