Files
GhiVideo/docs/발명신고서_측점표고정합_역투영보정.html
b23042andClaude Opus 4.8 78fc090360 초기 커밋: 스테이션(측점) 기반 주행영상 플레이어
- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel
- 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API
- 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 16:37:57 +09:00

314 lines
24 KiB
HTML
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.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>발명신고서 — 측점표고 기반 영상정합(B) · 슬랜트거리 보존 위치보정(C)</title>
<style>
:root{
--bg:#ffffff; --ink:#1a1d23; --muted:#5b6472; --line:#d8dde6; --soft:#f4f6f9;
--accent:#1c5fd6; --accent2:#0a7d52; --warn:#b4690e; --bad:#c0362c;
--chip:#eef2f8;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#e9edf2;color:var(--ink);
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR",Roboto,"Malgun Gothic",sans-serif;
line-height:1.72;font-size:14.5px}
.page{max-width:900px;margin:24px auto;background:var(--bg);padding:54px 60px 80px;
box-shadow:0 2px 18px rgba(0,0,0,.12);border-radius:4px}
.doc-head{border-bottom:3px solid var(--ink);padding-bottom:16px;margin-bottom:8px}
.doc-head .t1{font-size:13px;letter-spacing:.3em;color:var(--muted);font-weight:700}
h1{font-size:25px;margin:8px 0 4px;line-height:1.35}
.doc-head .sub{color:var(--muted);font-size:13.5px}
.formrow{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:16px 0}
.formrow .cell{flex:1 1 50%;display:flex;border-bottom:1px solid var(--line)}
.formrow .cell .k{flex:0 0 120px;background:var(--soft);padding:7px 12px;font-weight:600;font-size:12.5px;color:var(--muted);border-right:1px solid var(--line)}
.formrow .cell .v{padding:7px 12px;font-size:13px;flex:1}
.fill{color:var(--bad);font-weight:600}
nav{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:10px 16px;margin:18px 0 26px;font-size:12.5px}
nav b{color:var(--muted);font-weight:700;margin-right:8px}
nav a{color:var(--accent);text-decoration:none;margin-right:14px;white-space:nowrap}
nav a:hover{text-decoration:underline}
section{margin:30px 0;scroll-margin-top:14px}
h2{font-size:19px;margin:0 0 6px;padding:7px 0 7px 12px;border-left:5px solid var(--accent);background:linear-gradient(90deg,var(--soft),transparent)}
h2.inv{border-left-color:var(--accent2)}
h3{font-size:15.5px;margin:20px 0 6px;color:#2a3340}
h4{font-size:13.5px;margin:14px 0 4px;color:var(--muted);letter-spacing:.02em}
p{margin:9px 0}
.lead{color:var(--muted)}
ul,ol{margin:8px 0;padding-left:22px}
li{margin:5px 0}
code{background:#f0f3f8;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:12.5px;
color:#0d47a1;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace}
pre{background:#0f1320;color:#dfe6f2;border-radius:8px;padding:14px 16px;overflow-x:auto;font-size:12.5px;
font-family:"SFMono-Regular",Consolas,Menlo,monospace;line-height:1.6;margin:10px 0}
pre .c{color:#7f8aa3}
table{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px}
th,td{border:1px solid var(--line);padding:8px 11px;text-align:left;vertical-align:top}
th{background:var(--soft);font-weight:600;color:#2a3340}
.callout{border-left:4px solid var(--warn);background:#fdf6ec;padding:11px 15px;border-radius:0 8px 8px 0;margin:14px 0;font-size:13.5px}
.callout.bad{border-color:var(--bad);background:#fcefee}
.callout.ok{border-color:var(--accent2);background:#ecf7f1}
.callout.key{border-color:var(--accent);background:#eef3fc}
.tag{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--chip);color:var(--accent);border:1px solid #cfe0f7}
.tag.g{background:#e6f5ee;color:var(--accent2);border-color:#bfe6d2}
.num{display:inline-block;min-width:26px;height:26px;line-height:26px;text-align:center;background:var(--accent);color:#fff;border-radius:50%;font-weight:800;font-size:12px;margin-right:8px}
.num.g{background:var(--accent2)}
.fig{border:1px dashed #b9c2d0;background:var(--soft);border-radius:8px;padding:12px 16px;margin:12px 0;font-size:12.8px;color:var(--muted)}
.fig b{color:var(--ink)}
footer{margin-top:50px;border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:12px}
.chk{color:var(--warn);font-weight:600}
@media print{body{background:#fff}.page{box-shadow:none;margin:0;max-width:100%;padding:0 8mm}nav{display:none}}
</style>
</head>
<body>
<div class="page">
<div class="doc-head">
<div class="t1">발 명 신 고 서 · INVENTION DISCLOSURE</div>
<h1>① 측량 측점 표고 기반 DEM-free 영상정합 방법<br>② 슬랜트거리 보존 역투영에 의한 단일 제스처 위치보정</h1>
<div class="sub">변리사(특허사무소) 제출용 발명 설명자료 — 명세서·청구범위 작성 기초자료 · 대상 시스템: GhiVideo</div>
</div>
<!-- 행정 정보 (출원인이 채울 것) -->
<div class="formrow">
<div class="cell"><div class="k">발명자</div><div class="v"><span class="fill">[성명/생년/주소 기재]</span></div></div>
<div class="cell"><div class="k">출원인</div><div class="v"><span class="fill">[개인/법인/공동출원 — 권리귀속 확정 후 기재]</span></div></div>
<div class="cell"><div class="k">작성일</div><div class="v">2026-06-23</div></div>
<div class="cell"><div class="k">발명 완성일</div><div class="v"><span class="fill">[코드 최초 동작 확인일 기재]</span></div></div>
<div class="cell" style="flex-basis:100%"><div class="k" style="flex-basis:120px">공개 여부</div><div class="v"><span class="fill">[미공개 / 공개일·공개처 기재]</span> &nbsp;<b>출원 전 외부공개·시연·납품·논문 발표 여부를 반드시 확인(신규성 직결)</b></div></div>
</div>
<div class="callout bad"><b>⚠️ 출원 전 필수 확인 2가지.</b>
<b>(1) 신규성</b> — 이 발명을 출원 전에 외부에 공개(시연·납품·논문·블로그·판매)했다면 신규성 상실 위험. 공개 사실이 있으면 변리사에게 즉시 고지.
<b>(2) 권리귀속</b> — 발주·용역 과제라면 발명자(개인)와 출원인(회사/발주처)의 권리 귀속, 직무발명·공동출원 여부를 출원 전에 정리.</div>
<nav>
<b>목차</b>
<a href="#field">기술분야</a>
<a href="#bg">배경·종래문제</a>
<a href="#prior">선행기술 조사</a>
<a href="#invB">발명 ① (B)</a>
<a href="#invC">발명 ② (C)</a>
<a href="#figs">도면 목록</a>
<a href="#claimpts">청구 포인트</a>
<a href="#todo">변리사 인계 체크리스트</a>
</nav>
<!-- 기술분야 -->
<section id="field">
<h2>1. 기술분야</h2>
<p>본 발명은 이동체(드론·차량)가 철도·도로 노선을 따라 촬영한 <b>주행영상</b> 위에 측량 측점·시설물(POI)·선로중심선 등
<b>지리객체를 실시간 정합(증강현실 오버레이)</b>하여 표시하는 영상 플레이어 기술에 관한 것이다. 구체적으로,
① 대상의 표고/수치표고모델(DEM)이 없는 상황에서 정합 정확도를 확보하는 <b>고도 정합 방법</b>(발명 B)과,
② 정합된 객체의 위치 오차를 사용자가 화면에서 <b>단일 드래그 제스처로 3차원 보정</b>하는 방법(발명 C)에 관한 것이다.</p>
</section>
<!-- 배경 -->
<section id="bg">
<h2>2. 배경기술 및 종래기술의 문제점</h2>
<p>프레임별 카메라 위치·자세(GPS/IMU)를 이용해 GIS 객체를 영상에 투영하는 정합 기술은 공지되어 있다(아래 §3 선행기술 참조).
그러나 철도·도로 시설점검용 주행영상 정합에서는 다음의 구체적 문제가 남는다.</p>
<h4>문제 1 — 대상 표고/DEM 부재로 인한 수직 정합 오차 (발명 B가 해결)</h4>
<ul>
<li>화면에 표시할 시설물(POI)은 주소 기반 데이터가 많아 <b>표고(높이) 값이 없는</b> 경우가 대부분이다.</li>
<li>표고가 없으면 카메라와 대상 간 수직각(부각)을 산출할 수 없어, 종래기술은 <b>지면을 평평한 면(flat plane)으로 가정</b>한다.</li>
<li>노선은 실제로 기복이 있어(예: 정표고 41.6m→57.5m로 상승), 평면 가정 시 라벨이 화면 밖/지면 아래로 이탈한다.
실측에서 잘못된 고도(≈0) 사용 시 <b>부각오차가 42.7°</b>에 달했다.</li>
<li>별도 DEM/LiDAR를 취득·정합하는 것은 비용·datum 정합 부담이 크다.</li>
</ul>
<h4>문제 2 — 정합 객체 위치오차의 3차원 수동보정 곤란 (발명 C가 해결)</h4>
<ul>
<li>주소 지오코딩 POI는 ±수십 m 오차가 있어, 정합 후에도 객체가 실제 위치와 어긋난다.</li>
<li>사용자가 화면에서 드래그로 고치려 해도, <b>2D 화면 이동만으로는 카메라로부터의 거리(깊이)를 결정할 수 없다</b>(깊이 모호성).
따라서 종래에는 수평위치와 높이를 따로 조정하거나, 별도의 깊이맵(LiDAR)을 요구한다.</li>
<li>종래 정합 연구는 사용자 수동보정을 "부담이 커서 비현실적"이라며 포기하기도 한다.</li>
</ul>
</section>
<!-- 선행기술 -->
<section id="prior">
<h2>3. 선행기술 조사 결과 (요약)</h2>
<p class="lead">글로벌(Google Patents·USPTO·Esri·논문) 및 한국(Google Patents KR) 조사 후 교차검증한 결과. 상세·출처는
별첨 <a href="특허_스테이션기반_주행영상_플레이어.html">특허 발굴 기술문서 §6</a> 참조. <b>KIPRIS 전문검색은 변리사 단계에서 보강 필요.</b></p>
<table>
<thead><tr><th style="width:24%">선행기술</th><th>개시 내용</th><th style="width:30%">본 발명과의 차이(신규 지점)</th></tr></thead>
<tbody>
<tr><td>Esri ArcGIS Pro FMV · US9996976B2 · Sensors 2018(PMC6263998)</td>
<td>프레임별 카메라자세로 GIS 객체를 영상에 정합(AR 오버레이)하는 일반 기술 — <b>공지</b></td>
<td>"정합 일반"은 공지. 본 발명은 그 위에서 <b>고도원(B)·보정수단(C)</b>이라는 구체적 개량.</td></tr>
<tr><td>Sensors 2018 (DEM-free 처리)</td>
<td>DEM 없을 때 <b>평면으로 대체</b>, 지오이드/정표고 변환 안 함</td>
<td><b>측점 정표고 수열을 지면모델로 전용 + 지오이드 datum 정합</b> 미개시 → 발명 B 신규.</td></tr>
<tr><td>Google US9188444B2 ("3D object positioning in street view")</td>
<td>스트리트뷰에서 객체 드래그→lat/lon, 단 <b>저장된 픽셀별 depth map(LiDAR) 조회</b>로 깊이 결정. <b>한국 패밀리 없음</b></td>
<td>본 발명은 <b>depth map 없이 슬랜트거리 보존</b>으로 깊이 해소 → 발명 C 신규.</td></tr>
<tr><td>KR102422292B1 (김동욱)</td>
<td>역투영 + 사용자보정이나 <b>두 영상 + 높이값 반복조정</b>으로 깊이 결정</td>
<td>본 발명은 <b>단안·단일 제스처·거리보존</b> → 메커니즘 상이.</td></tr>
<tr><td>KR102268318B1(트라웍스)·KR100411587B1(ETRI)·ENSCO VTW</td>
<td>위치 동기 비교재생 / 위치→영상 색인 / milepost 영상색인</td>
<td>발명 B·C와 직접 관련 낮음(이들은 후보 A 관련 — 본 신고서 범위 외).</td></tr>
</tbody>
</table>
</section>
<!-- 공통: 투영 파이프라인 -->
<section>
<h2>4. 공통 기반 — 영상정합 투영 파이프라인</h2>
<p>발명 B·C가 공통으로 사용하는 좌표 변환(검증 완료). 발명자 자체 구현이며, Python 원본과 1:1 일치 검증됨.</p>
<pre><span class="c"># 입력: 프레임별 드론 위치(lat/lon/alt)·자세(yaw/pitch/roll), 대상(lat/lon/z)</span>
1) WGS84(lat,lon) → EPSG:5186 TM(easting,northing[m]) <span class="c"># proj4</span>
2) rel = target_ENU drone_ENU <span class="c"># 상대벡터[m]</span>
3) R_b2w = Rz(-yaw)·Rx(pitch)·Ry(roll), R_w2c = R_align·R_b2wᵀ
4) (Xc,Yc,Zc) = R_w2c · rel <span class="c"># 카메라좌표</span>
5) px = 0.5 + (Xc/Zc)·(f/sensorW), py = 0.5 + (Yc/Zc)·(f/sensorH) <span class="c"># 핀홀 투영</span></pre>
<p class="lead">실시 카메라(검증 데이터): 3840×2160, 29.97fps(=30000/1001), focal 24mm, sensor 36×20.25mm, pitch 29.8°(고정).</p>
</section>
<!-- 발명 B -->
<section id="invB">
<h2 class="inv"><span class="tag g">발명 ①</span> 측량 측점 표고 기반 DEM-free 영상정합 방법 <span class="tag g">특허성: 상</span></h2>
<h3>4-1. 해결하고자 하는 과제</h3>
<p>대상(POI)의 표고/DEM이 없을 때, 별도 DEM 취득 없이 <b>노선 기복을 반영한 지면고도</b>를 부여하여 카메라 고도와
datum을 정합함으로써 수직 정합오차를 제거한다.</p>
<h3>4-2. 해결수단 (구성)</h3>
<ol>
<li><span class="num g">1</span><b>측점 표고 수열 보유:</b> 노선을 따라 실측된 복수의 측점에 대해 위치(lat/lon)와
<b>정표고(EL, 해수면 기준)</b>를 보유한다. (실데이터: 측점 47개, 정표고 41.6→57.5m로 노선 진행에 따라 가변)</li>
<li><span class="num g">2</span><b>최근접 측점 지면고도 선택:</b> 표고 미상 대상에 대해, 노선상 <b>가장 가까운 측점의 정표고</b>
그 대상의 지면고도로 채택한다. 프레임 진행에 따라 최근접 측점이 바뀌므로 <b>지면고도가 노선 기복을 따라 갱신</b>된다.</li>
<li><span class="num g">3</span><b>지오이드 datum 정합:</b> 정표고(EL)에 <b>지오이드고 N</b>을 가산하여 타원체고로 변환,
드론/차량 GPS의 타원체고와 동일 기준으로 맞춘다. <code>rel[2] = (targetZ + N) droneAlt</code></li>
<li><span class="num g">4</span><b>정합 투영:</b> datum 정합된 고도로 §4 파이프라인을 수행해 화면에 표지를 중첩한다.</li>
<li><span class="num g">5</span><b>(종속) 대상별 표고보정 핸들:</b> 건물높이·지반차 보정을 위한 대상 전용 오프셋(poiZOffset)을 별도 제공하되,
측점·중심선의 정확 표고에는 미적용한다.</li>
</ol>
<h4>핵심 수식·실시값</h4>
<pre><span class="c"># 지오이드 보정(전체 대상 공통)</span>
타원체고 = 정표고(EL) + 지오이드고(N) <span class="c"># 대전지역 N ≈ 25.8m (검증)</span>
rel_up = (targetZ + N) droneAlt_ellipsoidal
<span class="c"># 검증(측점 157K900, frame0, 수평거리 91.3m)</span>
정표고≈0 사용 → 수직차 −84.2m, 부각 42.7° ❌
정표고 41.5 사용 → 수직차 42.7m, 부각 25.1°
정표고+N≈67 사용 → 수직차 −17.7m, 부각 11.0° ✅ (드론 rel_alt 16.85m와 일치)</pre>
<h3>4-3. 효과 (정량·검증됨)</h3>
<table>
<thead><tr><th>지표</th><th>종래(평면/표고0)</th><th>본 발명</th><th>비고</th></tr></thead>
<tbody>
<tr><td>부각오차</td><td>42.7°</td><td><b>11.0°</b></td><td>드론 실측 고도와 일치</td></tr>
<tr><td>지면고도 정확도</td><td></td><td><b>구글어스 DEM 대비 0.2m</b></td><td>신대천교: 측점방식 41.26m vs 구글 41.4566m (≈0.13°, 2160p에서 ~6px)</td></tr>
<tr><td>DEM 취득비용</td><td>DEM 필요</td><td><b>불필요</b></td><td>측량 산출물(측점) 재활용</td></tr>
</tbody>
</table>
<h3>4-4. 실시예</h3>
<p>(하행)회덕–대전조차장 구간, 드론 SRT 텔레메트리(프레임별 lat/lon/alt/yaw/pitch/roll) + 측량 측점 CSV(<code>Z좌표_한국</code>=정표고)
+ POI CSV(표고 없음). 측점 정표고를 지면모델로, 지오이드 25.8m 가산하여 정합 → 부각 11° 달성, 구글 DEM과 0.2m 일치.
공개 DEM(SRTM 30m)보다 측량 측점이 더 정밀하여 회귀 위험도 없음.</p>
</section>
<!-- 발명 C -->
<section id="invC">
<h2><span class="tag">발명 ②</span> 슬랜트거리 보존 역투영에 의한 단일 제스처 위치보정 <span class="tag">특허성: 상</span></h2>
<h3>5-1. 해결하고자 하는 과제</h3>
<p>정합된 객체가 지오코딩 오차로 어긋났을 때, 사용자가 <b>단일 화면 드래그</b>로 객체의 수평·수직(3D) 위치를
동시에 보정하도록 한다. 단, 별도 깊이맵(LiDAR)에 의존하지 않는다.</p>
<h3>5-2. 해결수단 (구성)</h3>
<ol>
<li><span class="num">1</span><b>슬랜트거리 보존:</b> 객체 표지의 드래그 개시 시점에 카메라–객체 간 <b>슬랜트 거리(range)를 고정값으로 보존</b>한다.
이것이 2D→3D 깊이 모호성을 해소하는 핵심 구속이다.</li>
<li><span class="num">2</span><b>역투영:</b> 드롭한 화면 픽셀을 카메라 방향벡터로 환산하고 보존된 거리만큼 투사하여 카메라좌표를 정한다.</li>
<li><span class="num">3</span><b>월드좌표 복원:</b> 자세 회전·평행이동의 역변환으로 lat/lon/z를 복원한다(투영 시 가산한 지오이드를 역으로 환원).
<b>한 번의 드래그로 수평·수직이 동시 복원</b>된다.</li>
<li><span class="num">4</span><b>영속·재적용:</b> 복원 좌표를 객체 식별자에 연계해 외부 보정파일(override)로 저장, 차기 로드시 자동 적용한다.</li>
<li><span class="num">5</span><b>(종속) 가시영역 한정:</b> 화면에 보이는(카메라 전방, Zc&gt;0) 객체에만 보정을 허용한다.</li>
</ol>
<h4>핵심 수식 (역투영, 왕복오차 ≈0 검증)</h4>
<pre>dir_cam ∝ ((px0.5cx0)·sW/f, (py0.5cy0)·sH/f, 1) <span class="c"># 픽셀→카메라 방향</span>
cam = dir_cam/|dir_cam| · <b>range</b> <span class="c"># ★거리 보존(드래그 시작값)</span>
rel = R_w2cᵀ · cam <span class="c"># 회전 역변환</span>
E = droneE + offX + rel.x, N = droneN + offY + rel.y
z = droneAlt + offZ + rel.up N_geoid <span class="c"># 정표고로 복원</span>
(lat,lon) = TM⁻¹(E,N)</pre>
<h3>5-3. 효과</h3>
<ul>
<li>2D 드래그 한 번으로 <b>3D(수평+수직) 동시 보정</b> → 보정 단계 절반.</li>
<li>역투영 왕복오차 <b>≈0</b>(가시영역 Zc&gt;0 검증).</li>
<li>깊이맵(LiDAR) 불요 — 단안 영상 + 자세만으로 동작.</li>
<li>보정의 파일 영속·가져오기/내보내기로 <b>재현성</b> 확보.</li>
</ul>
<h3>5-4. 실시예</h3>
<p>지오코딩 오차로 선로 위에 잘못 표시된 POI(예: "88자원")를 편집모드에서 드래그 → 드롭 픽셀을 보존거리로 역투영하여
올바른 lat/lon/z 복원 → <code>&lt;base&gt;_poi_overrides.json</code> 저장 → 폴더 재로드 시 자동 반영.</p>
</section>
<!-- 도면 -->
<section id="figs">
<h2>6. 도면 목록 (변리사 제도용 — 발명자 확인)</h2>
<div class="fig"><b>도 1.</b> 시스템 구성도 — 영상소스, 텔레메트리, 측점/POI 카탈로그, 정합부, 표시부.</div>
<div class="fig"><b>도 2.</b> 투영 파이프라인 순서도 — WGS84→TM→ENU→카메라→핀홀(§4).</div>
<div class="fig"><b>도 3. (발명 B)</b> 측점 정표고→최근접 선택→지오이드 가산→타원체고 datum 정합 흐름도 + 부각오차 42.7°→11° 비교 기하도.</div>
<div class="fig"><b>도 4. (발명 B)</b> 노선 진행에 따른 최근접 측점 갱신 개념도(지면고도가 기복을 따라감).</div>
<div class="fig"><b>도 5. (발명 C)</b> 슬랜트거리 보존 역투영 기하도 — 드래그 개시점 거리 R 고정, 드롭픽셀 방향벡터 × R.</div>
<div class="fig"><b>도 6. (발명 C)</b> 드래그→역투영→override 저장→재적용 시퀀스도.</div>
<div class="fig"><b>도 7.</b> 정합 화면 예시(라벨 중첩 캡처) — <span class="chk">[실제 스크린샷 첨부 필요]</span></div>
</section>
<!-- 청구 포인트 -->
<section id="claimpts">
<h2>7. 청구범위 핵심 포인트 (변리사 작성 가이드)</h2>
<div class="callout key"><b>발명 B 독립항 필수요소:</b> ① 노선 측점의 <b>실측 정표고 수열 보유</b> → ② 표고미상 대상에 <b>최근접 측점 정표고를 지면고도로 채택</b>(노선기복 반영) → ③ <b>지오이드고 가산으로 타원체고 변환·카메라 datum 정합</b> → ④ 정합 투영. <b>※ ②+③ 결합을 반드시 한 청구항에</b>(개별요소는 공지).</div>
<div class="callout key"><b>발명 C 독립항 필수요소:</b> ① 드래그 개시 시 <b>슬랜트거리 보존</b> → ② 드롭픽셀 역투영(보존거리 투사) → ③ <b>단일 제스처로 수평·수직 동시 복원</b> → ④ 식별자 연계 영속. <b>※ "depth map 없이 거리보존"</b>을 명시하여 US9188444B2와 구별.</div>
<ul>
<li><b>카테고리:</b> B = 방법항 + 매체항, C = 시스템(장치)항 (필요시 방법항 병행).</li>
<li><b>종속항 후보(방어용):</b> 비등방 거리필터(앞/옆 분해, 60m/40m), 사전계산 labelMap+보간, title-키 보간·이상치거부, 대상별 표고오프셋, 가시영역(Zc&gt;0) 한정.</li>
<li><b>미국 병행 시(§101 대비):</b> 부각오차 42.7°→11°, DEM 대비 0.2m 등 <b>구체적 기술개선 효과</b>를 명세서에 명시.</li>
</ul>
</section>
<!-- 체크리스트 -->
<section id="todo">
<h2>8. 변리사 인계 전 체크리스트 (발명자 작업)</h2>
<table>
<thead><tr><th style="width:34px"></th><th>항목</th></tr></thead>
<tbody>
<tr><td></td><td><b>권리귀속 확정</b> — 발명자/출원인, 직무발명·공동출원 여부(발주처 계약서 확인)</td></tr>
<tr><td></td><td><b>공개이력 확인</b> — 출원 전 시연·납품·논문·전시 여부와 일자(신규성 직결)</td></tr>
<tr><td></td><td><b>발명 완성일</b> — 코드 최초 동작·검증 확인 일자(증빙: 커밋 로그·히스토리 문서)</td></tr>
<tr><td></td><td><b>실시예 스크린샷</b> — 정합 화면(도 7) 캡처 1~2장</td></tr>
<tr><td></td><td><b>검증 데이터</b> — 부각 42.7→11°, 0.2m 일치 산출 근거(이미 히스토리 문서에 있음)</td></tr>
<tr><td></td><td><b>변리사 선임</b> — 첫 출원은 변리사 강력 권장. 비용지원: 특허청 공익변리·지자체/TP 출원비 지원·중소기업 감면</td></tr>
<tr><td></td><td><b>KIPRIS 전문검색 의뢰</b> — 변리사에 정밀 선행기술조사(특히 KRRI·코레일·국가철도공단·도로공사·LX 명의) 요청</td></tr>
<tr><td></td><td><b>출원 우선순위</b> — B+C 1건 우선. A는 별건·좁은 청구로 후속 검토</td></tr>
</tbody>
</table>
<div class="callout ok"><b>일정 감각(참고):</b> 변리사 선임→자료전달→명세서 초안→검토·보정→출원까지 통상 <b>3~6주</b>.
출원 후 심사청구(출원일로부터 3년 내, 보통 동시), 심사·등록까지 <b>1~2년</b>. 해외출원 필요 시 <b>최초 출원일로부터 12개월 내</b> PCT/개별국(우선권).</div>
</section>
<footer>
발명신고서 (변리사 제출용) · 발명 B(측점표고 DEM-free 정합)·C(슬랜트거리 보존 역투영 보정) · 작성 2026-06-23 ·
기술근거: 구현 코드 및 개발 히스토리(POI 투영오차 개선 등) · 별첨: <a href="특허_스테이션기반_주행영상_플레이어.html">특허 발굴 기술문서(후보 A·D·E 및 선행기술 상세 포함)</a> ·
본 문서는 변리사 명세서 작성을 위한 기술 설명자료이며 법적 의견이 아님. <span class="fill">[ ]</span> 부분은 발명자/출원인이 기재.
</footer>
</div>
</body>
</html>