Files
GhiVideo_v4/docs/history/2026-07-09_1754_카메라감지-라벨박스-영상콤보.md
T
b23042andClaude Fable 5 84f4921826 제주 드론 도로영상 지원: DJI 로그 어댑터·분할영상 연속재생·카메라 자동감지·오버레이 개선
- 제주 DJI 시간기반 비행로그(CSV) 파싱 어댑터: 세그먼트 창 정렬, 가상 fps 환산
- 분할 영상(이름 오름차순) 연속재생 + 좌상단 영상목록 콤보(선택 재생), 세그먼트별 드론 로그 재정렬
- KML 다중 파일 병합 파싱: STA 체이니지 측점(71개) + 지장물 신포맷(타입/이름/텍스트박스_색상)
- 시설물 라벨: 지정색 배경 박스 + 흰 글자, 팝업 중앙 정렬, 호버 구간 깜빡임 수정
- 카메라 자동감지(djmd: ZenmuseP1, focal 29.9mm) + <영상명>.camera.json PC 저장/폴더 자동 적용
- Yaw 자동추정(GPS 진행방위 기반) + 라벨 드래그 Yaw 역산 모드
- 스테이션바: GPS 이동거리 진행도(호버 시 정지), 노선밖 거리 표기, 원거리 구조물 마크 제외
- 서버: /api/camera 라우트, ecosystem 포트 54000·제주 데이터 경로
- docs/history: 작업 이력 21건

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 20:58:49 +09:00

2.9 KiB
Raw Blame History

2026-07-09 드론 카메라 자동 감지 + 라벨 박스 스타일 + 영상목록 콤보

소요 시간: 16분 Context 사용량: input 430k / output 12k tokens

작업 내용 (요청 4건)

1. 드론 카메라 정보 자동 감지 → 카메라 파라미터 적용 (POI 매핑 어긋남의 핵심 원인)

DJI MP4의 djmd 데이터 트랙(프레임별 protobuf 텔레메트리)을 분석해 필드 구조 해독:

필드 내용 제주 값
1.1.2 카메라 모델 DJI ZenmuseP1 (풀프레임 측량 카메라)
1.7 / 1.6 / 1.8 해상도 / fps 3840×2160 / 59.94
6.4 / 6.5 / 6.6 위경도(라디안) / 타원체고(mm) 33.40°/126.29°/174.4m
8.6 초점거리 (0.1mm, 35mm 환산) 299 → 29.9mm
  • 기존 기본값 24mm vs 실제 29.9mm(DL 24mm 렌즈 × 4K 비디오 크롭 ≈1.25) → FOV 과대 → POI 어긋남
  • client/src/utils/cameraMeta.ts 신규: 브라우저에서 영상 File 앞 8MB를 읽어 djmd 첫 샘플 파싱 (모델 문자열 탐색 → 샘플 경계 역추적 → protobuf 필드 수집). 실파일 검증 완료
  • loadFolderGeoData: 감지 정보를 FolderGeoData/geoStore(cameraInfo)에 적재, 드론 프레임 focalLen에도 반영
  • StationOverlay: 저장된 보정(localStorage calib)이 없는 데이터셋은 감지 focal 자동 적용, 카메라 파라미터 패널에 "📷 모델 · 초점 · fps" 표시 + [적용] 버튼(수동 적용 — 이미 튜닝한 데이터셋은 자동 적용을 건너뛰므로 이 버튼 사용)

2. '드론 높이와 POI 이격거리' 슬라이더 최대값 120 → 300

3. 영상목록 → 좌상단 타이틀 아래 콤보 드롭다운

  • 우하단 패널/하단 버튼 제거 → 노선 배너(타이틀) 아래 left:8, top:paramTop 콤보 버튼 (현재 파일명 + n/m + ▼). 클릭 시 목록이 아래로 펼쳐지고 선택 시 즉시 전환·접힘
  • RoutePanel이 paramTop+40부터 시작해 겹침 없음

4. POI 라벨: 십자/아이콘 제거, 지정색 배경 + 흰 글자

  • 캔버스 렌더를 "텍스트 박스"로 변경: 배경 = KML 텍스트박스_색상(라운드 사각형), 글자 = 흰색
  • POI 지점에 가로 중앙 정렬, 히트박스도 박스 영역으로 갱신

검증

  • tsc+vite 빌드 통과, 54000 포트 새 번들(index-Bn6Gs0g2.js) 서빙
  • 카메라 감지 알고리즘을 실파일 앞 8MB로 재현 검증: ZenmuseP1 / 29.9mm / 3840×2160@59.94 정확 추출

다음 단계 참고

  • 이미 캘리브레이션이 저장된 데이터셋(이번 세션에서 슬라이더 만진 경우)은 focal 자동 적용이 건너뛰어짐 → 카메라 파라미터 패널의 [적용] 버튼으로 29.9mm 반영 필요
  • djmd 6.x(위경도 라디안/타원체고)는 CSV보다 정밀한 포즈 소스 — 향후 CSV 대체 후보
  • 8.8(변화 필드)은 포커스 거리로 추정 — 미사용