성격: 아래는 특허 출원을 위한 기술 정리 초안입니다. 실제 출원 전 변리사(특허사무소) 검토가 반드시 필요합니다. 청구항은 권리범위를 정하는 핵심이므로, 아래 청구항은 초안(방향 제시용) 이며 변리사와 함께 확정하십시오. 선행기술조사(공지기술 확인) 후 신규성·진보성 관점에서 청구항을 조정해야 합니다.
대상 발명
- 제1발명: 드론 항공영상에 지리정보를 실시간 정합·표시하는 방법 및 장치 (좌표투영)
- 제2발명: 측점(체이니지) 기반 주행영상 탐색·재생 방법 및 장치 (측점기반재생)
두 발명은 모두 드론으로 촬영한 선로 주행영상과 드론의 위치·자세 로그(GPS/IMU), 선로 측점·시설물 지리데이터를 입력으로 사용하나, 해결 과제와 수단이 서로 독립적이다.
드론 항공영상에 대한 지리정보 실시간 정합 및 오버레이 표시 방법, 장치 및 기록매체 (영문 예: Method and apparatus for real-time geo-registration and overlay of geographic information onto UAV aerial video)
본 발명은 무인비행체(드론)로 촬영한 항공영상 위에, 지도상의 지리정보 객체(측점, 교량, 터널, 역사 등)를 촬영 당시의 카메라 기하에 맞추어 영상 화면의 정확한 위치에 실시간으로 겹쳐 표시하는 영상처리 기술에 관한 것이다.
프레임별 드론 자세로부터 회전행렬을 구성하고, 지리정보 객체의 위경도를 평면직교좌표(TM)로 변환한 뒤 드론 기준 상대좌표(ENU)로 산출하고, 회전행렬로 카메라좌표계로 변환한 다음 핀홀 카메라 모델로 정규화 화면좌표에 투영하여 오버레이한다. 프레임 사이는 자세 보간으로 채우고, 화면좌표는 속도적응 평활(이동평균+지수이동평균) 로 안정화하며, 영상 fps 는 데이터로부터 자동 산출한다.
지구 곡률로 인해 각도(위경도)로는 거리 계산이 부정확하므로, 대상과 드론의 위경도를 평면직교좌표계(예: EPSG:5186 한국 TM, 횡축 메르카토르) 로 변환하여 미터 단위 좌표 (E, N) 를 얻는다. 드론을 기준으로 한 상대좌표(동-북-상, ENU)는
rel = (E_o − E_d − offX, N_o − N_d − offY, z_o − h_d − offZ)
로 산출한다(offX/offY/offZ 는 드론 위치 미세보정 파라미터). 대상 표고는 정표고(EL)에 지오이드고를 가산하여 드론 고도 기준(타원체고)과 datum 을 일치시킨다.
드론 자세(yaw, pitch, roll)로부터 회전행렬을 다음과 같이 구성한다.
R_b2w = Rz(−yaw) · Rx(pitch) · Ry(roll)
R_align = [[1,0,0],[0,0,−1],[0,1,0]] (기체좌표계 → 카메라좌표계 축 정렬)
R_w2c = R_align · R_b2wᵀ
카메라 좌표는
(Xc, Yc, Zc)ᵀ = R_w2c · rel
로 얻는다(Zc>0 이 카메라 전방).
u = 0.5 + cx0 + (Xc / Zc) · (f / sW) (0=좌, 1=우)
v = 0.5 + cy0 + (Yc / Zc) · (f / sH) (0=상, 1=하)
멀수록(Zc↑) 화면 중심에 가깝고 작게 투영되는 원근이 자연히 반영된다. (u, v) 가 [0,1] 범위(또는 표시허용 범위) 내이면 해당 정규화 좌표에 식별정보를 오버레이한다.
영상 프레임율보다 화면 갱신주기가 클 수 있으므로(예: 30fps 영상, 60Hz 화면), 재생 시각에 대응하는 연속 프레임 인덱스에서 인접 프레임의 위치·자세를 선형보간(방위는 최단각 보간)하여 중간 포즈를 산출하고, 상기 (2)~(4)를 재수행한다. 이로써 라벨이 매 화면 갱신마다 대상에 붙어 매끄럽게 이동한다.
GPS/자세 노이즈로 인한 라벨 떨림을 억제하기 위해,
프레임 번호↔︎시간 변환을 위한 fps 를, 드론 로그의 최대 프레임 번호 ÷ 영상 길이(초) 로 산출하고 표준 fps(23.976/24/25/29.97/30/50/60 등) 중 근접값에 스냅한다. 이로써 영상별 상이한 fps 에 자동 대응한다.
[청구항 1] (방법) 무인비행체로 촬영한 항공영상에 지리정보를 표시하는 방법으로서, (a) 상기 항공영상의 프레임에 대응하는 무인비행체의 위치정보(위도·경도·고도) 및 자세정보(방위각·틸트각·롤각)를 획득하는 단계; (b) 지리정보 객체의 위경도 좌표를 평면직교좌표계로 변환하고, 상기 무인비행체의 위치를 기준으로 한 상대좌표를 산출하는 단계; (c) 상기 자세정보로부터 회전행렬을 구성하여 상기 상대좌표를 카메라 좌표계의 좌표로 변환하는 단계; (d) 상기 카메라 좌표계의 좌표를, 초점거리 및 센서규격을 포함하는 카메라 파라미터에 기초한 핀홀 카메라 모델로 정규화 화면좌표에 투영하는 단계; 및 (e) 상기 정규화 화면좌표에 대응하는 상기 영상의 화면 위치에 상기 지리정보 객체의 식별정보를 오버레이하여 표시하는 단계; 를 포함하는, 항공영상 지리정보 표시 방법.
[청구항 2] 제1항에 있어서, 상기 (b) 단계는 대상의 정표고에 지오이드고를 가산하여 상기 무인비행체의 고도 기준과 datum 을 일치시켜 상대좌표의 상하 성분을 산출하는 것을 특징으로 하는 방법.
[청구항 3] 제1항에 있어서, 재생 시각에 대응하는 연속 프레임 인덱스에서 인접 프레임의 위치 및 자세를 보간하여 중간 포즈를 산출하고, 상기 중간 포즈를 이용해 화면 갱신주기마다 상기 (b)~(e)를 수행하여, 영상 프레임율보다 높은 빈도로 상기 식별정보의 표시 위치를 갱신하는 것을 특징으로 하는 방법.
[청구항 4] 제1항에 있어서, 상기 정규화 화면좌표를, 이동속도가 작을수록 강하게 평활하고 클수록 약하게 평활하는 속도적응 평활을 적용하여 안정화하는 단계를 더 포함하는 방법.
[청구항 5] 제1항에 있어서, 상기 무인비행체 로그의 최대 프레임 번호를 상기 영상의 길이로 나눈 값에 기초하여 프레임율을 산출하고, 산출된 값을 사전 정의된 표준 프레임율 중 근접값으로 결정하여 프레임 번호와 시간의 변환에 사용하는 것을 특징으로 하는 방법.
[청구항 6] (장치) 제1항 내지 제5항 중 어느 한 항의 방법을 수행하도록 구성된 하나 이상의 프로세서 및 메모리를 포함하는, 항공영상 지리정보 표시 장치.
[청구항 7] (기록매체) 제1항 내지 제5항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록된, 컴퓨터로 판독 가능한 기록매체.
무인비행체 항공영상의 각 프레임에 대응하는 위치·자세와 카메라 파라미터를 이용하여, 지리정보 객체의 위경도를 평면직교좌표 및 드론 기준 상대좌표로 변환하고 회전행렬과 핀홀 모델로 정규화 화면좌표에 투영하여 영상에 식별정보를 정합·오버레이한다. 프레임간 보간과 속도적응 평활, 프레임율 자동산출을 통해 별도 마커 없이 프레임율과 무관하게 안정적으로 라벨을 표시한다.
선로 측점 기반의 주행영상 탐색 및 재생 방법, 장치 및 기록매체 (영문 예: Chainage(station)-based navigation and playback method and apparatus for route inspection video)
본 발명은 선로 등 선형 구조물을 촬영한 주행영상을, 재생 시간이 아닌 선로상의 위치값(측점, 체이니지) 을 기준으로 탐색·표시·재생하는 영상 재생 인터페이스 기술에 관한 것이다.
영상 각 프레임의 드론 위치를, 측점들을 연결한 기준 폴리라인에 수직 투영하여 연속 측점값을 산출하고, 프레임번호↔︎시간↔︎측점 매핑을 생성한다. 탐색바의 가로축을 시간이 아닌 누적 이동거리(측점 변화량의 누적) 로 구성하여 비이동 구간에서 커서가 정지하게 한다. 측점 증감으로 진행방향을 색 구분하고, 시설물을 측점값 위치에 배치하며, 입력 측점값을 매핑으로 역산하여 해당 시점으로 이동(검색)한다.
측점 데이터(측점명 φ,λ)를 측점값 오름차순으로 정렬하여 평면좌표로 변환하고, 인접 측점을 연결한 폴리라인을 구성한다. 각 정점에 측점값(m) 을 부여한다.
프레임의 드론 위치 P 를 폴리라인의 각 선분 [A,B] 에 대해 수선의 발을 구하여 투영한다. 선분 매개변수
t = clamp( ((P−A)·(B−A)) / |B−A|² , 0, 1 )
투영점 C = A + t·(B−A)
로부터 최근접 선분을 선택하고, 그 선분의 측점값을
km = km_A + t · (km_B − km_A)
로 선형보간하여 연속 측점값(10m 이하 해상도) 을 산출한다. 동시에 선로 수직이격(offset)도 산출할 수 있다. (100m 양자화된 최근접 측점과 달리, 전진/후진 전환 시점이 실제 이동과 일치)
각 프레임에 대해 (프레임번호, 시간=프레임번호÷fps, 측점값)을 산출하여 배열로 저장(사전계산)한다. 이 매핑으로 시간↔︎측점을 상호 변환한다.
측점값을 이동평균으로 평활한 뒤, 프레임간 측점 변화량의 절대값을 누적하여 누적 이동거리 를 얻고, 전체값으로 정규화하여 [0,1] 진행도(frac)를 산출한다. 탐색바 가로축을 이 진행도로 하면,
평활 측점값의 증감 추세를 히스테리시스로 판정하여, 증가 구간(전진)과 감소 구간(후진)을 서로 다른 색으로 표시하고 방향 전환점을 표기한다.
교량/터널/역사 등 시설물을, 그 측점값에 대응하는 통과 시점(또는 좌표 근접 시점)의 탐색바 위치에 마커로 배치한다. 드론이 동일 시설물을 복수 회 통과하면 통과마다 마커를 배치한다.
입력된 측점값 q 에 대해, 매핑에서 |측점값−q| 가 허용오차 이내인 프레임 구간(연속 구간=1통과)을 찾아 각 통과의 시점을 산출하고, 현재 시점 이후의 다음 통과로 이동한다(반복 입력 시 순환). 허용오차 내 통과가 없으면 이동하지 않고 "해당 측점 없음"을 통지한다.
[청구항 1] (방법) 선형 구조물을 촬영한 주행영상을 탐색·재생하는 방법으로서, (a) 상기 주행영상의 프레임에 대응하는 이동체의 위치정보를 획득하는 단계; (b) 위치값(측점)이 부여된 복수의 기준점을 연결한 기준선에 상기 위치정보를 수직 투영하여, 해당 프레임의 연속 위치값을 산출하는 단계; (c) 상기 프레임의 시간정보와 상기 연속 위치값을 대응시킨 매핑을 생성하는 단계; 및 (d) 입력된 위치값에 대응하는 시간을 상기 매핑으로부터 산출하여, 상기 주행영상의 재생 위치를 해당 시간으로 이동시키는 단계; 를 포함하는, 주행영상 탐색·재생 방법.
[청구항 2] 제1항에 있어서, 상기 매핑에 기초하여 프레임간 위치값 변화량을 누적한 누적 이동거리를 가로축으로 하는 탐색바를 구성하여, 상기 이동체의 비이동 구간에서 상기 탐색바의 커서가 정지하도록 하는 단계를 더 포함하는 방법.
[청구항 3] 제1항에 있어서, 상기 위치값의 증가 구간과 감소 구간을 판별하여 상기 이동체의 진행 방향을 서로 다른 시각적 속성으로 표시하는 단계를 더 포함하는 방법.
[청구항 4] 제1항에 있어서, 시설물의 위치값에 대응하는 상기 주행영상 내 통과 시점을 상기 매핑으로부터 산출하여 상기 시설물을 상기 탐색바의 대응 위치에 표시하되, 동일 시설물의 복수 통과에 대해 각각 표시하는 단계를 더 포함하는 방법.
[청구항 5] 제4항에 있어서, 상기 시설물 중 역사(驛舍)는, 상기 이동체의 수직 투영 위치값이 상기 역사의 위치값과 허용오차 이내로 일치하는 통과에 대해서만 표시하는 것을 특징으로 하는 방법.
[청구항 6] 제1항에 있어서, 상기 (d) 단계는, 입력된 위치값과 허용오차 이내인 통과가 복수인 경우 현재 재생 시점 이후의 다음 통과로 순환 이동하고, 허용오차 이내의 통과가 존재하지 않는 경우 재생 위치를 이동하지 않고 부존재를 통지하는 것을 특징으로 하는 방법.
[청구항 7] 제1항에 있어서, 상기 이동체의 프레임 번호와 시간의 변환에 사용되는 프레임율을, 로그의 최대 프레임 번호를 영상 길이로 나눈 값에 기초하여 산출하는 것을 특징으로 하는 방법.
[청구항 8] (장치·기록매체) 제1항 내지 제7항 중 어느 한 항의 방법을 수행하도록 구성된 프로세서 및 메모리를 포함하는 주행영상 탐색·재생 장치, 및 상기 방법을 컴퓨터에 실행시키는 프로그램이 기록된 컴퓨터로 판독 가능한 기록매체.
주행영상 각 프레임의 이동체 위치를 측점 기준선에 수직 투영하여 연속 측점값을 산출하고, 프레임번호·시간·측점값의 매핑을 생성한다. 누적 이동거리를 가로축으로 하는 탐색바로 비이동 구간에서 커서가 정지하며, 진행방향과 시설물을 위치 기준으로 표시하고, 입력 측점값을 시간으로 역산하여 재생 위치를 이동한다. 이로써 시간이 아닌 선로 위치로 영상을 직관적으로 탐색·재생한다.
| 발명 구성요소 | 구현 파일·함수 |
|---|---|
| 위경도→TM, ENU 상대좌표 | geoProjection.ts latLonToTM, buildRelEnu |
| 회전행렬·카메라좌표 | geoProjection.ts buildRotation, applyRw2c, toCameraCoords |
| 핀홀 투영(u,v) | geoProjection.ts pixelFromCamera, projectPoint |
| 프레임 보간 | StationOverlay.tsx poseAt |
| 평활(이동평균/EMA) | StationOverlay.tsx smoothFrame, smoothStep |
| fps 자동산출 | VideoPlayer.tsx effectiveFps |
| GPS→측점 수직투영 | chainage.ts projectToChain, buildChainLine |
| 시간↔︎측점 매핑·이동거리축 | StationBar.tsx precompute, cumFracAtTime/timeAtFrac |
| 방향색·시설물 배치 | StationBar.tsx barSegments, structureMarks |
| 측점 검색 | StationBar.tsx handleJumpToMileage |