docs: 발표·특허·AI영상요약 자료 및 작업기록 추가

- 발표자료(좌표투영·측점기반재생) 갱신 + 그림/PDF
- 특허 출원 초안 및 도면
- AI 영상요약 서비스 작업기록(docs/history)
- 관련 scripts 추가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 11:20:03 +09:00
co-authored by Claude Opus 4.8
parent 5c8b499979
commit fe25ce00f1
78 changed files with 6186 additions and 15 deletions
@@ -114,7 +114,6 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
<circle cx="300" cy="51" r="10" fill="#374151"/>
<text x="45" y="82" font-size="11" fill="#374151">0:00</text><text x="330" y="82" font-size="11" fill="#374151">03:12</text><text x="632" y="82" font-size="11" fill="#374151">09:28</text>
<text x="350" y="104" text-anchor="middle" font-size="11" fill="#6b7280">"3분 12초 지점" — 여기가 어디 선로인지 모름 😵</text>
<text x="350" y="150" text-anchor="middle" font-size="13" font-weight="bold" fill="#166534">GhiVideo (측점 축)</text>
<rect x="40" y="164" width="620" height="26" rx="6" fill="#fde9c8" stroke="#e0a94f"/>
<rect x="40" y="164" width="300" height="26" rx="6" fill="#f59e0b"/>
@@ -131,7 +130,7 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
철도에서 **출발점부터 몇 미터 왔는지**를 나타내는 '거리 이정표'예요.
`160k130` = 출발점에서 **160km + 130m** 지점. (도로의 'km 표지판'과 똑같아요!)
## 2-3. 어떻게 만들었나 — "시간↔측점 지도" 🗺️
## 2-3. 어떻게 만들었나 — "시간↔측점 대응표" 🗺️
비밀은 **드론 GPS**예요. 영상의 **매 프레임(사진 한 장)** 마다 두 가지를 계산해 **짝지어** 둬요:
@@ -152,10 +151,10 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
<line x1="200" y1="134" x2="330" y2="170" stroke="#7c3aed" stroke-width="2" marker-end="url(#ad)"/>
<line x1="505" y1="134" x2="370" y2="170" stroke="#7c3aed" stroke-width="2" marker-end="url(#ad)"/>
<rect x="210" y="172" width="280" height="46" rx="8" fill="#fef3c7" stroke="#ca8a04"/>
<text x="350" y="193" text-anchor="middle" font-size="12" font-weight="bold" fill="#854d0e">시간 ↔ 측점 지도 완성!</text>
<text x="350" y="193" text-anchor="middle" font-size="12" font-weight="bold" fill="#854d0e">시간 ↔ 측점 대응표 완성!</text>
<text x="350" y="210" text-anchor="middle" font-size="10" fill="#a16207">"192초 = 160k130" 처럼 서로 변환 가능</text>
</svg>
<figcaption>프레임마다 (시간)과 (측점)을 계산해 짝지으면, 시간↔측점을 자유롭게 오갈 수 있다.</figcaption>
<figcaption>프레임마다 (시간)과 (측점)을 계산해 짝지으면, 시간↔측점을 자유롭게 오갈 수 있다 — 재생 기준을 '시간'에서 '스테이션(측점)'으로 전환하기 위한 색인 구조.</figcaption>
</figure>
**GPS를 측점으로 바꾸는 법(②):** 드론 GPS 점을 **선로(측점들을 이은 선)에 수직으로 툭 떨어뜨려**, 그 발자국이 몇 측점인지 읽어요. (코드: `projectToChain` / `projectChainage`)
@@ -200,7 +199,7 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
## 2-5. 측점으로 '찾아가기'(Seek)
측점값을 입력하거나 막대를 누르면 → **그 측점이 나오는 시간을 지도에서 찾아 → 그 시간으로 이동**해요.
(시간↔측점 지도가 있으니 가능한 일!)
(시간↔측점 대응표가 있으니 가능한 일!)
<figure class="fig">
<svg viewBox="0 0 700 90" role="img" aria-label="측점 입력으로 이동">
@@ -219,7 +218,7 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
|---|---|---|
| GPS → 측점값 | 선분에 수직 투영 | [chainage.ts](../client/src/utils/chainage.ts) `projectToChain` |
| 프레임 → 시간 | fps 자동 산출 | VideoPlayer.tsx `effectiveFps` |
| 시간↔측점 지도 | 프레임별 precompute | [StationBar.tsx](../client/src/stationbar/StationBar.tsx) |
| 시간↔측점 대응표 | 프레임별 precompute | [StationBar.tsx](../client/src/stationbar/StationBar.tsx) |
| 이동거리 축 | 측점 변화량 누적(정규화) | StationBar.tsx `frac` |
| 방향 색·구조물 배치 | 측점값 기준 렌더 | stationbar/components/* |
@@ -228,7 +227,7 @@ h2{border-top:3px solid #e7e0d2;padding-top:14px;margin-top:34px;}
## 마무리 — 한 문장씩 🎁
- **Part 1 (좌표 투영):** "드론이 **어디서·어느 쪽**을 보는지 알기 때문에, 지도 속 터널이 **영상 화면 어디**에 보일지 계산해 이름표를 딱 붙인다."
- **Part 2 (측점 기반):** "드론 **GPS로 매 프레임의 측점**을 계산해 **시간↔측점 지도**를 만들어, **시간이 아니라 측점으로** 영상을 탐색한다."
- **Part 2 (측점 기반):** "드론 **GPS로 매 프레임의 측점**을 계산해 **시간↔측점 대응표**를 만들어, **시간이 아니라 측점으로** 영상을 탐색한다."
> 두 기술 모두 **드론의 GPS·자세 데이터**를 똑똑하게 활용한 결과예요.
> 그래서 GhiVideo는 단순 영상이 아니라 **"선로 위 어디를 보고 있는지 아는" 주행영상 플레이어**가 됩니다. 🚁📏