2.1 좌표계와 변환
본 연구에서는 다섯 가지 주요 기준 좌표계를 사용하였다. (지구중심고정(ECEF), $Llh$, 항법, 동체, 카메라) 각 좌표계들과의 관계는 그림 2, 3에 정의되어 있다. 그림 2는 각 좌표계들의 프레임들을 보여준다. 카메라 좌표계는 드론 동체 좌표계와 구속되어 있는데, 여기서 카메라는 드론의 하방에 지면을 향하도록 부착되어
있다. 항법 좌표계는 NED(north-east-down) 좌표계를 사용하며, 항법 좌표계의 x축은 북쪽, y축은 동쪽, z축은 아래를 향한다. 그림 2, 3 에서 {$c$}, {$b$}, {$n$}, {$e$}는 각각 카메라, 동체, 항법, ECEF 좌표계를 의미한다.
그림 2. ECEF, $Llh$, 항법 좌표계
Fig. 2. ECEF, $Llh$, Navigation coordinate.
그림 3. 항법, 동체, 카메라 좌표계
Fig. 3. Navigation, Body, Camera coordinate
드론에 탑재되는 Pixhawk 비행컴퓨터(FC, flight computer)에서 위치정보는 $Llh$좌표계 기준으로 제공되기 때문에 $Llh$ 좌표계에서
항법 좌표계로 변환하기 위하여 두 단계가 필요하다. 먼저 $Llh$좌표계에서 ECEF좌표계로의 변환은 다음과 같다[11].
이때, $a$는 지구 장축 반지름이며, $e$는 이심률이다. ECEF 좌표계에서 항법좌표계로의 변환은 다음과 같다.
이것으로, FC의 위치정보 신호를 항법 좌표계에서의 신호로 변환할 수 있다.
드론의 자세는 세가지 오일러 각(roll, pitch, yaw)으로 정의할 수 있으며, 관성항법장치의 측정값에 의해 지속적으로 전파된다. 세 가지
오일러각을 결합하여 동체 좌표계와 항법 좌표계의 변환을 나타내는 방향 코사인 행렬을 구할 수 있다[2]. 아래의 식에서, $\phi$, $\theta$, $\psi$는 각각 roll, pitch, yaw 값이며, $s$와 $c$는 각각 $"\sin
"$, $"\cos "$ 이다.
마지막으로, 카메라 좌표계와 동체 좌표계 간의 변환행렬을 구할 수 있다. 카메라는 동체 좌표계로부터 yaw 방향으로 +90 회전되어 있기 때문에 이를
이용하여 아래의 식 (8)을 구할 수 있다. 따라서, 최종적으로 앞서 구한 변환들을 결합하여 항법 좌표계에 대한 카메라의 자세변환 행렬을 구할 수 있다.
2.2 지오레퍼런싱 알고리즘
지오레퍼런싱이란 실세계 좌표를 이미지의 각 화소에 할당하는 작업을 의미한다. 일반적으로 카메라로 사진을 촬영할 때 카메라의 자세, 고도, 지형 등에
의해 왜곡이 발생한다. 이러한 왜곡을 보정하여 실제 지형과 일치하도록 수정한 사진을 정사영상(Orthoimage) 이라 하며, 이렇게 보정된 이미지는
실제 지도처럼 사용 가능하며 측량, 지리 정보 시스템, 도시 계획 등에 활용될 수 있다. 지오레퍼런싱을 위해 카메라 내부/외부 변수가 필요한데, 앞서
구한 좌표계 변환식 및 방향코사인 행렬들을 활용하여 구할 수 있다. 먼저 핀홀 카메라 모델에 의해 주어지는 왜곡 없는 투영 변환식은 다음과 같다[12].
여기서 s는 스케일, $p_{v}$, $p_{u}$는 이미지의 수직 및 수평좌표, ${ K}$는 카메라 내부 변수, ${}{R}$,${ t}$는 각각
회전행렬 및 위치변환벡터를 의미한다. 또한, 카메라 내부 행렬식 ${ K}$는 다음과 같다.
$u_{0}$,$v_{0}$는 각각 카메라의 수평/수직 주점을 의미하고, $f$는 카메라 초점거리이며, $k_{v}$, $k_{u}$는 각각 이미지
픽셀 수직,수평 개수이다. 카메라 내부변수는 카메라 캘리브레이션을 통해 더욱 정확한 값을 얻을 수 있다. 식 (10)을 다르게 표현하면 식 (12)와 같다.
식 (12)에서, 카메라 외부 변수 ${ R}_{n}^{c}$, ${ t}_{n}^{c}$ 는 식 (7), (8), (9) 및 간단한 정리를 통해 구할 수 있다.
식 (13)에서, ${ t}_{c}^{n}$는 각각 사진이 촬영되었을 때의 드론의 위치변환벡터이다. 본 논문에서 정사영상을 제작할 때에는 항법좌표계의 Z축은
모두 0이라 가정하였다. 따라서 식 (12)는 식 (14)로 바꾸어 표현 할 수 있다[13].
식 (14) 에서 ${ r}_{1}$, ${ r}_{2}$는 ${ R}_{n}^{c}$ 의 첫 번째, 두 번째 열 벡터이다. 따라서 식 (14)로부터, 지상좌표를 카메라 이미지좌표로 매핑시켜 정사영상을 제작할 수 있다.
이미지를 저장할 때, 이미지의 정확도 즉 픽셀당 거리 GSD(Ground Sample Distance)는 동체의 절대 고도 $h_{g}$, 이미지
센서 픽셀 크기 $px$, 렌즈 초점 거리 $f$에 의해 결정되며 이는 위치 측정치의 정확도를 결정하기도 한다. 수식은 다음과 같다.
정밀한 정사영상의 제작을 위해서는 카메라 렌즈의 왜곡 또한 고려해야 한다. 식 (14)에서 카메라 왜곡을 고려한 식은 다음과 같다.
식 (16)에서 $\hat{x}^{c}$, $\hat{y}^{c}$는 각각 왜곡이 보정되기 전의 정규화 된 이미지좌표계의 좌표 이다. Zhang[14]이 제안한 카메라 렌즈 왜곡 모델은 다음과 같다.
식 (17), (18)에서 $k_{1}$, $k_{2}$, $k_{5}$은 방사 왜곡 계수(Radial Distortion)이며, $k_{3}$, $k_{4}$은 접선
왜곡 계수(Tangent Distortion)이다. 카메라 왜곡 계수 및 카메라 내부 변수는 카메라 캘리브레이션을 통해 얻을 수 있으며, 본 논문에서는
오픈소스 프로젝트인 OpenCV를 통해 체커보드를 다수 촬영한 뒤 얻을 수 있었다.
앞선 정보들을 활용하여 주행 중 정사영상을 제작할 수 있으며, 연속적인 항법 정보의 도출을 위해서는 이미지들과 정보들을 결합하여 데이터베이스화 해야
한다. 이를 통해, 복귀 시 모든 지형 이미지들과 현재 지형 이미지를 비교하지 않고도 현재 위치에서 가장 가까운 단일 이미지만 비교가 가능하기 때문에,
알고리즘의 계산 비용을 줄일 수 있다. 데이터베이스는 정사영상 이미지의 저장 주소, GSD, 정사영상의 지상 중앙 좌표로 구성되어 있으며, 아래 표와
같다.
표 1 데이터베이스 구성
Table 1 Construction of Database
Image Database
|
Index
|
Image
Address
|
GSD (m/px)
|
Center Coordinate
(North,East)
|
#1
|
.../.png
|
0.2
|
[0,4]
|
#2
|
.../.png
|
0.23
|
[101.23,53.32]
|
-
|
-
|
-
|
-
|
#N
|
.../.png
|
m/px
|
[$x^{n},\: y^{n}$]
|