SamGeo3 / SAM 3.1 텍스트 세그 실험 — compact → gap → gap2 단계로 빈 영역을 메운 과정과 결과 요약.
# 전체 흐름 multi_prompt_segment.py --tier compact # 기본 객체 multi_prompt_segment.py --tier gap # 1차 누락 multi_prompt_segment.py --tier gap2 # 합본 빈 영역 merge_multi_results.py # overlay + legend + HTML
설정: prompts/dji_20260306_0016.json · 사용법 일반: docs/usage.html
| 항목 | 값 |
|---|---|
| 파일 | data/DJI_20260306100802_0016.JPG |
| 해상도 | 8192 × 5460 (드론 정사에 가까운 수직뷰) |
| 장면 | 복선 철로 · 창고/주차장 · 태양광 지붕 · 수목 · 야적장 |
| 모델 | facebook/sam3.1 · backend=meta |
| confidence | compact 0.3 · gap 0.25 · gap2 0.22 |
1차 merge(combined_with_legend.png) 기준으로
마스크 색이 없고 원본 톤이 남는 구간을 재검토했습니다.
| 구역 | 추정 내용 | 1차에서 부족한 이유 |
|---|---|---|
| 선로 상·하 갈색 띠 | 성토·제방·마른 초지 | railway track 밴드만, 바깥 지면 미채움 |
| 검은 타프 주변 | 흙더미·절토 | black tarp만, 주변 토사 약함 |
| 시설 사이 공터 | 콘크리트·야적 바닥 | parking lot / road와 다른 표면 |
| 하측 야적 | 녹생 덮개·시트 | 색 지붕 프롬프트와 다른 tarp/cover |
| 소형 구조 | shed · 부스 · 차양 | building에 안 묶임 |
| 지붕 잔여 | 금속 / 골판 / 회색 | white·green·blue roof만으로는 부족 |
| 선형 세부 | 도상 · 전선 | 정사 + 텍스트 그라운딩 한계 |
| tier | 설명 | 권장 conf |
|---|---|---|
compact |
1차 실험 19개 (철로·건물·차량·타프…) | 0.30 |
gap |
Gemini 누락 보강 (road, dense forest, covered truck…) | 0.25 |
gap2 |
합본 빈 영역 전체 44개 | 0.22 |
gap2_core |
gap2 중 실측 성공만 (~18개, 재실행용) | 0.22 |
improved |
compact + gap 병합 | 0.28 |
all |
A~E 전체 (중복 제거) | 0.25~0.30 |
Gemini 재검토 + 실측 성공 동의어
light pole @ 0.2 가 유효.
배수로·전선은 정사에서 거의 실패.
rubbish / scrap pile 은 노이즈 과다 가능.
"dirt embankment", "dirt pile", "dry grass", "bushes", "vegetation", "brown field", "open ground", "concrete", "industrial yard", "green tarp", "plastic cover", "shed", "metal roof", "corrugated roof", "gray roof", "building wall", "barrier", "awning"
| 단계 | merge 클래스 | 비고 |
|---|---|---|
| compact + gap | ~28 | road / dense forest / covered truck 등 추가 |
| + gap2 | 56 | 성토·초지·콘크리트·shed·금속지붕 등 |
industrial yard, open ground, dirt embankment
픽셀 면적이 커서 다른 클래스를 덮을 수 있습니다.
필요 시 해당 *_mask.png 를 제외하고 다시 merge 하세요.
cd D:\MYCLAUDE_PROJECT\samgeo3-lab .\.venv\Scripts\Activate.ps1 # 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 누락 보강 (같은 폴더에 마스크 추가) python scripts\multi_prompt_segment.py ` --tier gap --confidence 0.25 ` --output-dir "output\dji_0016_compact" # 합본 빈 영역 보강 python scripts\multi_prompt_segment.py ` --tier gap2 --confidence 0.22 ` --output-dir "output\dji_0016_compact" # 또는 성공 프롬프트만 python scripts\multi_prompt_segment.py ` --tier gap2_core --confidence 0.22 ` --output-dir "output\dji_0016_compact" # 한 장으로 합치기 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/*_mask.png | 프롬프트별 인스턴스 마스크 |
| output/dji_0016_compact/*_ann.png | 개별 오버레이 (대용량 가능) |
| output/dji_0016_compact/merged/combined_with_legend.png | 전 클래스 합본 + 범례 |
| output/dji_0016_compact/merged/per_class_grid.png | 클래스별 썸네일 격자 |
| output/dji_0016_compact/merged/index.html | 브라우저 뷰 (결과 이미지) |
| output/dji_0016_compact/merged/merge_summary.json | 클래스·픽셀 통계 |
| prompts/dji_20260306_0016.json | tier · gap · gap2 · gap2_core 정의 |
결과 미리보기 HTML: merged/index.html (상대 경로; 로컬에서 파일 열기)
enable_inst_interactivity)가 유리.generate_masks_tiled 로 VRAM·경계 품질 개선 가능.