Files
minsung 4e5173522d @
feat: SAM3.1 다중 프롬프트 배치 검출 및 라벨 병합 후처리

sam3_multi_prompt.py: 프롬프트 N개를 forward 1회에 배치 처리한다.
서버(프롬프트당 forward 1회) 대비 forward 횟수가 1/N로 줄고, 이미지
임베딩과 텍스트 인코딩을 타일 전체에서 재사용한다. RTX 3060 12GB
기준 배치 16이 최적(32 이상은 VRAM 압박으로 4배 이상 느려짐).

타일보다 큰 대상(숲, 도로, 주차장)은 타일 경계에서 잘려 사각형
마스크가 되므로 --wide-prompts 로 지정해 이미지 전체를 한 장으로
처리한다.

merge_labels.py: 검출 결과 후처리. 같은 병합 그룹에 속한 라벨끼리
외곽선이 gap px 이내로 인접하면 하나로 합치고 대표 라벨을 붙인다
(building + building rooftop + blue roof -> building). 병합 전
claim 규칙으로 소유권을 재배정해, 차량 위에 잡힌 *roof 폴리곤이
건물이 아니라 차량에 합쳐지도록 한다.

make_viewer.py: 라벨별 on/off 가능한 단독 HTML 뷰어 생성.
프롬프트 파일의 그룹 주석 기준으로 라벨을 묶어 나열하고, 줌/팬과
선택 상태 저장을 지원한다.

cut_tiles.py: R{행}C{열} 격자 오버레이 + 원본 배율 타일 저장.

전역 규칙 반영:
- CUDA 사용 불가 시 CPU로 폴백하지 않고 즉시 에러
- set_per_process_memory_fraction 으로 드라이버의 시스템 메모리
  폴백(10배 이상 느려짐) 전에 OOM 발생
- 체크포인트/BPE 경로 하드코딩 제거. CLI 인자 -> 환경변수 ->
  sam31server 설정파일 순으로 해결

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@
2026-08-20 10:05:23 +09:00

71 lines
941 B
Plaintext

# 가상환경 (용량 크므로 제외)
.venv/
.venv_client/
# 모델 파일 (용량 매우 큼)
*.pt
*.pth
*.onnx
*.gz
# 로그
X-AnyLabeling-Server/logs/
*.log
# Python
__pycache__/
*.pyc
*.pyo
# 캐시
.cache/
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
# 임시 파일
create_shortcuts.ps1
# 클로드 개인 설정/메모리
.claude/
# X-AnyLabeling-Server (별도 git repo, submodule 아님)
X-AnyLabeling-Server/
# 용량 큰 데이터/결과 폴더
drone_2cm/
output/
runs/
data/
# 용량 큰 원본 영상 파일
*.tif
경부선_2-2구간_미션33-34(5cm).png
# 논문/문서 파일
*.pdf
*.txt
# 단, 프롬프트·병합 설정은 코드의 일부라 포함
!prompts/*.txt
!configs/*.txt
# 미정리 툴 (작업 중)
tools/render_polygons_rainbow.py
tools/render_yolo_labels.py
tools/sam3_sleeper_detect.py
tools/tif_hollow_detect.py
# 기타
src/
PRPs/
nul
triton-*.whl
pyproject.toml
Project_Status.md
.usage/