Files
GhiVideo_v4/docs/history/2026-07-14_1236_자세-시간축-재정렬.md
b23042andClaude Fable 5 c64c57b58e djmd 프레임 동기·오버레이 지면고정·선형-측점 정합·UI 단축키
- djmd(영상 내장 텔레메트리) 프레임 동기 위치/고도: MP4 stbl 선별 파싱(djmdTrack.ts),
  CSV 시각정렬 오차(평균 3.2m) 제거 — 세그먼트별 백그라운드 정밀화(frameSynced 플래그)
- 자세 시간축 재정렬: djmd 위치 교차상관으로 CSV↔영상 오프셋 자동 추정(실측 -0.33s,
  잔차 0.24m) 후 yaw/pitch/roll 재샘플(yaw 최단각) — 옆 지물 미끄러짐 해소
- 포즈 평활 자동 제한: 프레임 동기 데이터는 ±5프레임 상한(기존 ±60=±1s) —
  회전 시 오버레이 전체가 드론에 딸려오는 지연 제거
- 선형-측점 정합: 측점 위치를 선형 정점으로 삽입(3D 이격≤0.012m) + 정점 z 를 측점
  체이니지 보간으로 재정렬, 측점 라벨 화면 EMA 제거(선과 동일한 즉시 투영) —
  선형이 측점 POI 를 픽셀 단위로 통과
- 드론높이 모드 높이 규칙 통일: 선형도 '드론고도-이격거리' 평면 적용(라벨과 동일)
- 카메라 offZ 잔재 교정: 표고 체계 정비 이전 드래그 보정값(-18.3m)이 이중 보정이 되어
  원거리 POI 가 접근할수록 밀리던 원인 — 경로 1-1 camera.json 0 으로 교정(.bak 백업)
- 로드 UX: 폴더 로드 시 정지 상태로 대기(처음부터), 데이터 교체 시 UI 초기 상태 복원
- 라벨: 측점 팝업 표고(타원체고) 행 추가, 구조물-POI 이중 라벨 제거(어음천교),
  시간동기 보정 슬라이더(timeOffsetSec)
- 측점 표기 0+000 형식 전환(생성 6곳·파서 4곳 신구 호환) + 스테이션바 양끝 100m 내
  시설물 없으면 시작/끝 스테이션 마크
- 단축키: F2 개발자 모드(dev_mode 1↔0, 세션 한정), A 선형 표시 토글
- 인프라: 54000 포트 재부팅 자동화(portproxy 직접 IP + 로그온 갱신, pm2 resurrect)
- docs/history: 작업 이력 23건

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 17:59:43 +09:00

38 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-14 옆 지물(상대리 마을회관) 밀림 — 자세 시간축 자동 재정렬
**소요 시간**: 25분
**Context 사용량**: input 3800k / output 6k tokens
## 문제 (스크린샷 제보)
전방 지물(중간산서로 등)은 잘 붙는데 '상대리 마을회관'처럼 옆으로 지나치는 POI 가
계속 뒤로 밀리면서 사라짐.
## 진단
- 마을회관 z 는 정상(파일 96.83 vs DEM 환산 97.9) → 표고 원인 배제
- 위치는 djmd(영상 내장 텔레메트리) 프레임 동기로 정확하지만,
**자세(yaw/pitch/roll)는 여전히 CSV 시각정렬** — 두 시간축 사이 잔차가 존재.
- 옆을 지나치는 지물은 상대 방위가 초당 수십 도씩 급변 → yaw 가 0.3초만 늦어도
화면에서 수백 px 뒤로 밀림. 전방 지물은 방위 변화가 느려 티가 안 났던 것.
## 수정 — djmdTrack.ts refineFramesWithDjmd
- djmd 위치 ↔ CSV 위치의 **교차상관으로 시간 오프셋(dt) 자동 추정**
(조사 1.5~+1.5s 0.05s 스텝 → 최적 근방 ±0.05s 를 0.01s 정밀 스윕, 프로브 ~50점)
- 최종 프레임: 위치 = djmd(프레임 동기), 자세 = CSV 를 `t + dt` 로 재샘플
(yaw 는 최단각 보간) → 위치·자세가 모두 영상 시간축으로 통일
## 검증 (실데이터 경로 1-1, DJI_...0002.MP4)
- 추정 dt = **0.33s** (기존 진단치 ≈0.33s 와 정확히 일치)
- 위치 잔차: dt=0 일 때 3.24m → dt 적용 시 **0.24m**
- tsc+vite 빌드 통과, 새 번들(index-DpAUafsi.js) 서빙 확인
## 사용법 / 안내
- 새로고침 후 폴더 재선택 → 콘솔에 `[djmd] CSV↔영상 시간 오프셋 ...s 추정` 로그 출력
- 세그먼트마다 각자 dt 를 추정하므로 분할영상 전체에 자동 적용
- 수정 후에도 모든 POI 가 원거리에서 균일하게 밀리면 짐벌 피치 바이어스 →
카메라 파라미터 Pitch± ±0.5° 미세 조정