# Multi-object prompts (Grok + Gemini) 비전 분석 결과를 합친 SAM 3.1 / SamGeo3 텍스트 프롬프트 세트입니다. | 파일 | 설명 | |------|------| | `dji_20260306_0016.json` | DJI 드론 정사 철도·산업 장면 (Grok+Gemini 병합) | | `dji_20260306_0044.json` | **0016 확장** (`extends`) + scene_delta (철로+도로+열차) | ## tier | tier | 내용 | |------|------| | `compact` | 1차 실험용 19개 (기본) | | `gap` | **누락 보강 12개** (Gemini 재검토: road, dense forest, covered truck 등) | | `gap2` | 합본 빈 영역 보강 (다수 프롬프트) | | `gap2_core` | gap2 중 실측 성공 프롬프트만 (재실행 권장) | | `improved` | compact + gap 병합 (~31개) | | `A_high` | 1차 고확률 | | `B_facility` | 시설·구조 | | `C_detail` | 야적·지면·지붕색 | | `D_rail_domain` | 철도 특화 (편차 큼) | | `E_missed` | gap 확장판 (동의어 포함) | | `all` | A→E 전부 (중복 제거) | ## 기대 난이도 (정사 드론 기준) | 프롬프트 | 기대 | 튜닝 팁 | |----------|------|---------| | `building`, `solar panel`, `tree`, `car`, `truck` | 높음 | 기본 객체. 낮은 confidence에서도 비교적 잘 잡힘 | | `railway track`, `fence`, `parking lot`, `blue tarp` | 중~높음 | 선형·구획. context에 따라 변동 | | `utility pole`, `container`, `material pile` | 중 | 작거나 밀집. `--min-size`로 노이즈 제거 | | `rail`, `ballast`, `railroad sleeper`, `catenary` | 낮~중 | 도메인 용어·가는 객체. confidence 튜닝 필수 | 권장: **confidence 0.25~0.35** 로 시작. ## 단일 프롬프트 (`text_segment.py`) ```powershell cd D:\MYCLAUDE_PROJECT\samgeo3-lab .\.venv\Scripts\Activate.ps1 $img = "data\DJI_20260306100802_0016.JPG" # 또는: $img = "D:\MYCLAUDE_PROJECT\segment-geospatial\sample\DJI_20260306100802_0016.JPG" $out = "output\dji_0016_analysis" python scripts\text_segment.py ` --image $img ` --prompt "solar panel" ` --confidence 0.3 ` --output-dir $out python scripts\text_segment.py ` --image $img ` --prompt "building" ` --confidence 0.3 ` --output-dir $out python scripts\text_segment.py ` --image $img ` --prompt "railway track" ` --confidence 0.3 ` --output-dir $out ``` 결과 예: `output\dji_0016_analysis\DJI_..._solar_panel_mask.png` ## 멀티 프롬프트 일괄 (`multi_prompt_segment.py`) — 이미 포함됨 모델·이미지를 **1회 로드** 후 프롬프트 루프. 결과는 `output\_\{stem}_{prompt}_mask.png` 등 + `summary.json`. ```powershell cd D:\MYCLAUDE_PROJECT\samgeo3-lab .\.venv\Scripts\Activate.ps1 # 프롬프트 목록만 python scripts\multi_prompt_segment.py --list-only --tier compact # compact 19개 일괄 (권장 1차) python scripts\multi_prompt_segment.py ` --image "data\DJI_20260306100802_0016.JPG" ` --tier compact ` --confidence 0.3 ` --output-dir "output\dji_0016_compact" # 누락 보강 (Gemini gap) — confidence 약간 낮게, 같은 폴더에 추가하면 merge에 포함 python scripts\multi_prompt_segment.py ` --image "data\DJI_20260306100802_0016.JPG" ` --tier gap ` --confidence 0.25 ` --output-dir "output\dji_0016_compact" # 1차+보강 한 번에 python scripts\multi_prompt_segment.py --tier improved --confidence 0.28 # 1차 고확률만 python scripts\multi_prompt_segment.py --tier A_high --confidence 0.3 # 전체 tier python scripts\multi_prompt_segment.py --tier all --confidence 0.25 # 직접 지정 python scripts\multi_prompt_segment.py ` --prompts "solar panel,building,railway track,tree,car,truck" ` --confidence 0.3 ` --output-dir "output\dji_0016_analysis" ``` ## DJI_0044 = 이미지 1번(0016) 확장 (별도 체계 아님) ```text 0016 base (compact/gap/gap2) + scene_delta(열차·도로·야적) → 0044 ``` ```powershell # 상속 확인 python scripts\multi_prompt_segment.py --prompts-json prompts\dji_20260306_0044.json --list-only --tier compact python scripts\multi_prompt_segment.py --prompts-json prompts\dji_20260306_0044.json --list-only --tier delta # 0016과 동일한 파이프라인 python scripts\multi_prompt_segment.py ` --prompts-json prompts\dji_20260306_0044.json ` --image data\DJI_20260306100928_0044.JPG ` --tier compact --confidence 0.3 ` --output-dir output\dji_0044_compact python scripts\multi_prompt_segment.py ` --prompts-json prompts\dji_20260306_0044.json ` --tier gap --confidence 0.25 ` --output-dir output\dji_0044_compact python scripts\merge_multi_results.py ` --result-dir output\dji_0044_compact ` --image data\DJI_20260306100928_0044.JPG ``` HTML: `docs/dji_0044_prompts.html` ## 예시: DJI_0100 전체 파이프라인 (compact → gap → gap2_core → merge) 0044 프롬프트 JSON(0016 상속 + 도로/열차 delta)을 **0100 이미지**에 적용하는 권장 end-to-end 예입니다. gap / gap2_core 단계는 선택입니다. ```powershell cd D:\MYCLAUDE_PROJECT\samgeo3-lab .\.venv\Scripts\Activate.ps1 $img = "data\DJI_20260306101434_0100.JPG" $out = "output\dji_0100_compact" $json = "prompts\dji_20260306_0044.json" # (선택) 프롬프트 목록 확인 python scripts\multi_prompt_segment.py --prompts-json $json --list-only --tier compact # 1) 세그 — compact (0016 상속 + 도로/열차 delta) python scripts\multi_prompt_segment.py ` --prompts-json $json ` --image $img ` --tier compact ` --confidence 0.3 ` --output-dir $out # 2) (선택) gap 보강 python scripts\multi_prompt_segment.py ` --prompts-json $json ` --image $img ` --tier gap ` --confidence 0.25 ` --output-dir $out # 3) (선택) gap2_core 보강 python scripts\multi_prompt_segment.py ` --prompts-json $json ` --image $img ` --tier gap2_core ` --confidence 0.22 ` --output-dir $out # 4) 합치기 + interactive index.html python scripts\merge_multi_results.py ` --result-dir $out ` --image $img ` --max-side 2048 # 5) 결과 열기 start "$out\merged\index.html" ``` 권장 confidence: compact `0.3` → gap `0.25` → gap2_core `0.22`. 같은 `$out` 폴더에 단계별로 마스크를 쌓은 뒤 merge하면 한 HTML에서 전부 볼 수 있습니다. ## 결과 합치기 (overlay + grid + HTML) `multi_prompt_segment` 실행 후: ```powershell python scripts\merge_multi_results.py ` --result-dir "output\dji_0016_compact" ` --image "data\DJI_20260306100802_0016.JPG" ` --max-side 2560 ``` 출력 (`output\dji_0016_compact\merged\`): | 파일 | 내용 | |------|------| | `combined_overlay.png` | 전 클래스 색상 오버레이 | | `combined_with_legend.png` | 오버레이 + 범례 | | `per_class_grid.png` | 클래스별 썸네일 격자 | | `index.html` | 브라우저로 한눈에 보기 | | `merge_summary.json` | 클래스·픽셀 통계 |