3-Dimensional Location and Posture Measurement Using Images for Drones

Jinhyuk Kwon , Sungmin Kim and Sungoh Kwon

Abstract

Abstract: This study proposes a method for 3D measurement using images. Accurate 3D relative positioning is essential for drone landing at a designated location. The method of estimating location through comparison with video from a database is difficult to accurately estimate distance and angle because it only recognizes reference points. The approach of estimating distance and angle using a nonlinear estimator can lead to cumulative errors due to the increase in computational complexity and time delays during calculation. Existing study using multiple cameras has improved the accuracy of distance and location, but this is more complex than single camera system, and cumulative errors can arise from camera distortion and twisting. To address these issues, this paper proposes a method for 3D positioning and posture estimation using a single camera. The camera's intrinsic parameters were calibrated, and the relationship between the actual space and the image plane for known images was calculated to estimate the drone's position and orientation. Considering the estimated intrinsic parameters of the camera and the drone's estimated posture, a method for measuring the 3D position relative to the landing reference point was proposed. Specifically, a method for correcting the average angle, considering significant deviations, was proposed. Through experiments, the accuracy of this method was verified, with a maximum error of 47.4mm.

Keywords: Image Processing , 3D location estimation

Ⅰ. 서 론

5G/B5G(Beyond 5th Generation) 이동통신 기술로 활성화되는 다양한 융복합 산업에서 핵심 서비스 자원인 위치정보 활용이 증대되고 있다. 특히, 드론을 활용한 다양한 서비스가 개발됨에 따라 이에 맞는 고신뢰 초정밀 실시간 측위 기술이 필요하다[1]. 드론은 GPS(Global Positioning System) 신호와 IMU(Inertial Measurement Unit)를 주로 사용하여 실외 환경에서 위치를 파악할 수 있으나 정밀한 위치 측정에 한계가 있어 다양한 환경에서 활용하기 위해 전파 혹은 영상 등의 Non-GPS를 활용한 새로운 위치 측정 방법이 필요하다[2]. 드론의 측위는 다양한 방법을 통해 제안 되어왔다. 초기의 드론 착륙 시스템으로는 GPS를 활용하였는데, 이는 미터 수준의 높은 오차와 느린 프레임 속도의 단점이 존재한다[3]. 특히 거리 측정치는 LoS(Line of Sight)에 영향을 받아 복잡한 도심에서는 측위 성능이 저하되므로, 이를 보완할 수 있는 정밀 측위 기술이 요구된다.

드론 자율주행을 위해 관성 센서, 라이다(LiDAR: Light Detection And Ranging) 및 카메라를 포함한 무선통신 기능이 탑재되고 있다[4]. 관성 센서를 기반으로한 측위 기술은 IMU 데이터와 GPS 데이터를 정합하여 실내에서의 정밀 데이터를 측정한다[5,6]. 하지만 IMU는 탐지로 계산된 위치 결과를 이전 위치에 계속 추가하기 때문에 작은 측정 오류가 발생하더라도 누적이 되어 실제 위치 간의 차이가 발생한다.

실제 위치 간의 오차를 줄이기 위해 라이다를 통한 방법이 제안되었다. 라이다는 적외선 등과 같은 직진성이 강한 고출력 레이저 펄스를 이용해 반사 지점과의 거리를 측정한다. 측정된 거리를 계산하여 이를 기반으로 한 3차원 공간 정보를 생성한다. 또한 측정한 주변 물체와의 거리를 지도와 비교하여 유사한 위치를 찾는다[4]. 그러나 일반적으로 이는 지도와 비교한 측위이기 때문에 방대한 양의 포인트를 분석하고 처리해야 하므로 비교적 긴 지연 시간이 발생한다. 따라서 실시간 측위에 있어 어려울 것으로 판단된다.

실시간 측위를 지원하기 위해 제안된 Wi-Fi 통신을 기반으로 동작하는 측위 기술이 제안되었다. 기기에 설치된 Wi-Fi 모듈 및 무선 랜 장비를 이용하여 AP(Access Point)로부터 수신되는 RF 신호의 세기나 전달 시간 등의 정보를 이용하여 단말과의 거리를 파악할 수 있다. 대표적인 측위 기법으로는 기기와 AP의 거리를 이용하는 삼각 측량(Triangluation) 기법과 단위 공간별 전파 특성을 미리 측정한 라디오 맵을 활용하는 핑거프린팅(Fingerprinting) 기법이 있다. 이 기술은 신호의 감쇄, 반사, 회절 등의 왜곡 현상이 일어나기 때문에 실외 환경에서는 큰 오차가 발생할 수 있다[7].

UWB(Ultra Wide Band) 기술은 신호의 왜곡 현상을 줄이기 위해 제안되었다. UWB 기술은 시간 영역에서 좁은 폭의 펄스를 이용하는 기술을 의미한다. UWB 기반의 측위 기술은 여러 개의 UWB 기기를 이용하여 거리를 계산하여 위치를 계산하는 측위 방법과 거리 측정에 안테나를 이용한 방향 탐지 기술을 결합하여 상대적인 위치를 측정하는 두 가지 방법으로 나눌 수 있다. 이러한 기술은 UWB 장비를 위해 필요한 비용이 많이 들며, 주변 환경의 영향을 받는 동적 환경에서 순간적인 측위 불가능 현상이 나타난다[8].

초음파와 RF로 구성된 측위 시스템으로 복수의 초음파 수신기들과 하나의 RF 수신기로 구성된 시스템과 하나의 초음파 송신기와 하나의 RF 송신기로 구성된 송신시스템이 제안되었다[9]. 고정된 수신기의 사전 위치정보 획득 과정에서 발생할 수 있는 측정 오차를 줄이기 위해 수신기 배치 방안을 제안하였다. 그러나 이 시스템은 복수의 송신기들이 동시에 신호를 전송할 경우, 신호 충돌에 의한 측위 시스템의 성능 저하가 발생할 수 있다는 단점이 있다.

영상 기반의 측위 기술은 전파 신호의 감쇄 등과 같은 왜곡 현상을 줄이기 위해 제안되었다[10]. 이는 영상 전처리 및 데이터베이스 비교를 통해 특정 위치를 측정하는 기술이다. 사용자의 카메라에서 획득한 영상과 기존 데이터와 비교하여 위치를 추정하는 기술과 획득한 영상에서 특정 대상을 추적하는 객체 인식 기술이 활용된다. 기준 마커를 특정 대상으로 지정하여 인식하는 기술이 제안되었다. 그러나 해당 기술은 기준 지점만을 인식하는 기술로서 거리와 각도를 정확하게 추정하는 알고리즘은 부족하다[11,12]. 따라서 기준 지점과의 정확한 상대적 위치를 계산하는 방법이 필요하다.

기준 지점과의 위치를 계산하기 위해 움직이는 카메라를 이용한 거리 및 속도 추정 기술이 제안되었으며, 이 기술은 카메라와 물체 간의 상대적인 위치 변화와 동역학적 관계를 활용하여 물체의 거리와 속도를 실시간으로 추정한다[13]. 비선형 추정기를 이용하여 카메라의 속도와 회전 속도 정보로 물체의 3차원 위치와 거리, 속도를 추정할 수 있다. 그러나 이 방법은 카메라와 물체 간의 정확한 동역학적 설계가 필요하고, 비선형 추정기를 사용하기 때문에 계산 복잡도가 증가함에 따라 카메라의 속도와 각속도 정보가 정확하게 제공되지 않는다면 추정 결과에 큰 오차가 발생할 수 있다.

카메라와 기준 지점 간의 거리를 정확하게 추적하기 위해 다중 카메라를 통해 각기 다른 각도와 위치에서 영상을 촬영함으로써 정확한 위치 추적이 가능하다[14]. 하지만 이는 각 카메라의 왜곡과 비틀림을 정확하게 고려하지 않아 왜곡률과 비틀림에 취약하여 누적된 오차가 발생할 수 있다. 정확한 측위를 위해서는 왜곡 보정 기술이 필요하다.

본 논문에서는 드론의 카메라에서 발생하는 왜곡과 비틀림의 문제를 해결하고 카메라와 착륙 지점 간의 거리와 각도를 효과적으로 측정하는 방법을 제안한다. 이 기법은 단일 카메라를 활용하는 방법으로 마커의 절대적 위치와 카메라로 투영되는 이미지의 관계를 해석하고 거리, 회전각을 추정하는 방법을 제안한다. 또한 각도를 추정하는 과정에서 실제 각도와 크게 벌어질 상황에서 각도를 바로잡아 오차를 줄였다.

본 논문은 다음과 같이 구성된다. 제 Ⅱ장에서는 기존 카메라 측위를 위한 3차원 모델 및 기존의 선행 연구와 그의 문제점을 파악하고 연구 방향을 설정한다. 제 Ⅲ장에서는 제 Ⅱ장에서 설명한 문제점을 해결하기 위한 영상 측위 방법을 제안하고 제안하는 방법의 성능을 평가하기 위한 실험 및 결과에 대하여 Ⅳ장에서 설명한다. 제 Ⅴ장에서는 결론과 향후 연구 방향에 관해 서술한다.

Ⅱ. 시스템 모델

2.1 시스템 모델 개요

본 논문에서는 카메라가 3차원 공간에서 특정 마커를 촬영하고, 마커로부터 상대적인 3차원 위치를 알기 위한 연구로서 Fig. 1과 같이 마커의 실제 위치를 나타내는 월드 좌표계(World coordinate system, [TeX:] $$\left(X_w, Y_w, Z_w\right)$$)와 마커의 중심[TeX:] $$\left(x_w, y_w, z_w\right)$$을 원점으로하는 카메라 좌표계(Camera coordinate system, [TeX:] $$\left(X_c, Y_c, Z_c\right)$$)로 구성되어 있다. 카메라는 드론과 같은 이동체에 부착되어 있어 이동에 따라 위치와 각도가 변할 수 있으며, 마커의 크기와 모양은 안다고 가정한다[15].

그림(Fig.) 1.
3차원 공간상의 월드 좌표계와 카메라 좌표계 (World and camera coordinate system in 3D space)

카메라를 통해 바라보는 화면은 2차원 이미지로 나타나며, 화면 안에서의 좌표 (x,y)를 이미지 좌표계(pixel coordinate system)라고 한다. 본 논문에서는 이미지 좌표계로 나타나는 화면에서 카메라와 마커 사이의 3차원 거리와 각도를 추정한다.

2.2 카메라 투영 모델

3차원 거리를 추정하기 위해 먼저 핀홀 카메라와 같은 투영 모델을 사용한다[16]. 이는 핀홀 카메라의 렌즈를 통해 들어오는 빛이 이미지 평면의 이미지 좌표계에 하나의 점(또는 좌표)으로 투영되는 것을 나타낸다. 이 모델에서는 초점 거리 f, 중심점 [TeX:] $$\left(c_x, c_y\right),$$ 비대칭 계수를 내부 파라미터로 사용하여 카메라의 특성을 설명한다. 단, 비대칭 계수는 이미지 센서의 셀의 y축이 기울어진 정도를 나타내는데, 최근 카메라들은 이러한 비대칭 오류가 없기에 고려하지 않으므로 0으로 가정한다

핀홀 카메라로 들어오는 빛은 카메라 내부(Fig. 2의 우측상단)의 한점에 맺힌다. 이때 초점 거리 f는 렌즈 중심과 이미지 센서 사이의 거리인 [TeX:] $$f_x \text { 와 } f_y$$를 뜻하는데, 각 축으로 나눈 이유는 이미지 센서 물리적인 셀 간격이 가로, 세로 방향으로 다를 수 있기 때문이다. Fig. 3에서 알 수 있듯이 초점 거리가 1인 내부 파라미터의 영향을 제거한 이미지 평면을 정규화 이미지 평면(Normalized image plane)이라 부르며 이는 실제로 존재하지 않는 가상의 이미지 평면이다.

그림(Fig.) 2.
3차원으로 보는 카메라 투영 모델 (Camera projection model in 3D)
그림(Fig.) 3.
2차원으로 보는 카메라 투영 모델 (Camera projection model in 2D)

카메라 좌표계의 한 점 [TeX:] $$p_c=\left(x_c, y_c, z_c\right)$$를 이미지 좌표계로 변환할 때, 초점 거리 f를 곱하면 우리가 원하는 이미지 평면에서의 픽셀 좌표(x,y)가 반환된다. 이때 이미지에서 픽셀 좌표는 이미지의 좌측 상단 모서리를 원점으로 하므로, 실제 영상 좌표(x,y)는 여기에 이미지 센서에 내린 수선의 발의 영상 좌표인 중심점 [TeX:] $$\left(c_x, c_y\right)$$을 더한 값이 되므로 카메라 좌표의 영상 좌표 (x,y)는 다음과 같이 표현한다.

[TeX:] $$x=f_x \frac{x_c}{z_c}+c_x, \quad y=f_y \frac{y_c}{z_c}+c_y$$

이미지 좌표와 내부 파라미터를 고려한 식은 다음과 같다.

(1)
[TeX:] $$\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right]=\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 1 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x_c \\ y_c \\ z_c \end{array}\right]=\mathrm{K}\left[\begin{array}{l} x_c \\ y_c \\ z_c \end{array}\right]$$

이때, 내부 파라미터는 행렬 K로 정의한다.

[TeX:] $$\mathrm{K}=\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right]$$

2.3 카메라 왜곡 현상

핀홀 카메라 렌즈를 통해 영상을 획득할 때 내부 파라미터를 고려한다. 그러나 이상적인 핀홀 카메라 모델로 획득한 영상과 실제 획득한 영상 사이에는 차이가 발생하는데, 이를 카메라 왜곡 현상이라고 한다. 대표적인 왜곡으로는 방사 왜곡과 접선 왜곡이 있다[17].

방사 왜곡은 볼록렌즈의 굴절 현상으로 인해 발생하며, Fig. 4와 같이 렌즈 중심에서 멀어질수록 이미지가 왜곡되는 현상으로, 직선이 휘어 보이는 형태로 나타난다. 방사 왜곡은 배럴 왜곡(barrel distortion, Fig. 4(a))과 쿠션 왜곡(pincushion distortion, Fig. 4(b))으로 나눌 수 있다. 배럴 왜곡은 이미지의 가장자리가 바깥쪽으로 휘는 현상을 말하며, 쿠션 왜곡은 이미지 가장자리가 안쪽으로 휘는 현상이다.

그림(Fig.) 4.
방사 왜곡의 예 (Example of Radial distortion)

방사 왜곡은 다음과 같은 수식으로 표현된다[18]. 단 이는 카메라 내부 파라미터의 영향이 제거된 정규화 이미지 평면에서 정의된다.

(2)
[TeX:] $$x_d=\left(1+k_1 r^2+k_2 r^4+k_3 r^6\right) x_u$$

(3)
[TeX:] $$y_d=\left(1+k_1 r^2+k_2 r^4+k_3 r^6\right) y_u$$

(4)
[TeX:] $$r^2=\left(x_d-c_x\right)^2+\left(y_d-c_y\right)^2$$

여기서 식 (2), (3)는 방사 왜곡을 나타내고, 식 (4)는 이미지 중심으로부터의 거리를 나타낸다. 이때 [TeX:] $$x_d, y_d$$는 왜곡된 영상 좌표를, [TeX:] $$x_u, y_u$$는 왜곡이 없는 영상 좌표를 나타낸다. 방사 왜곡 계수인 [TeX:] $$k_1, k_2, k_3$$는 왜곡된 좌표와 실제 왜곡되지 않은 좌표 사이의 비선형 관계를 말한다. 중심에서 멀어질수록 왜곡이 커질 수 있게 테일러급수를 통해 다항식으로 근사한다[19].

접선 왜곡은 Fig. 5와 같이 카메라 렌즈가 이미지 센서에 완벽히 평행하지 않아 발생하는 왜곡으로, 이미지가 한쪽으로 기울어지거나 찌그러진다. 접선 왜곡 모델은 아래와 같이 비대칭적인 위치 이동을 반영하는 방식으로 표현된다[18].

[TeX:] $$\begin{aligned} x_d & =x_u+\left[2 p_1 x_u y_u+p_2\left(r_2+2 x_u^2\right)\right] \\ y_d & =y_u+\left[2 p_2 x_u y_u+p_1\left(r_2+2 y_u^2\right)\right] \end{aligned}$$

그림(Fig.) 5.
접선 왜곡의 예 (Example of tangential distortion)

위 모델에서 [TeX:] $$p_1$$은 렌즈와 센서 간의 기울기에 의해 x축 방향으로 왜곡을 반영한다. 즉 y축 방향에 비례하는 x축 방향의 왜곡을 보정한다. [TeX:] $$p_2$$는 y축 방향의 왜곡을 말하며, x축 방향에 비례하는 y축 방향의 왜곡을 보정한다.

2.4 카메라 위치와 방향에 따른 3차원 변환

3차원 공간상의 각 축을 중심으로 Fig. 6과 같이 만큼 회전시키는 행렬은 다음과 같다[16].

그림(Fig.) 6.
각 축에 대한 회전 (Rotation for each axis)

이때 회전 방향은 각 축에 대해 반 시계 방향이다. 이를 조합하면 외부 파라미터 중 회전 행렬을 다음과 같이 표현할 수 있다.

(5)
[TeX:] $$\mathrm{R}=R_z(\alpha) R_y(\beta) R_x(\gamma)=\left[\begin{array}{lll} r_{11} & r_{12} & r_{13} \\ r_{21} & r_{22} & r_{23} \\ r_{31} & r_{32} & r_{33} \end{array}\right]$$

식 (5)에서 는 x-, y-, z-축에 대한 오일러 회전각으로 각각 roll, pitch, yaw로 부른다[16]. 이동 변환은 3차원 공간에서 다른 위치로 이동하는 변환으로 회전을 고려하지 않고 단순히 위치만 변경하는 것을 말한다. Fig. 1에서는 월드 좌표계를 원점으로 한 카메라의 위치를 나타내며, 다음과 같이 표현한다.

(6)
[TeX:] $$\mathrm{t}=\left[\begin{array}{lll} t_x & t_y & t_z \end{array}\right]^{\mathrm{T}}$$

따라서 3D 변환인 외부 파라미터는 식 (5)와 식 (6)을 조합하여 다음과 같이 나타난다.

(7)
[TeX:] $$\left[\begin{array}{c} X_c \\ Y_c \\ Z_c \end{array}\right]=\mathrm{R}\left[\begin{array}{c} X_w \\ Y_w \\ Z_w \end{array}\right]+\left[\begin{array}{c} t_x \\ t_y \\ t_z \end{array}\right]$$

카메라 투영 모델인 내부 파라미터와 외부 파라미터를 고려한 식 (1)과 (7)을 결합함으로써 한 점에서 나타나는 2차원에서 3차원으로의 변환은 아래와 같다.

(8)
[TeX:] $$\begin{aligned} {\left[\begin{array}{l} x \\ y \\ 1 \end{array}\right] } & =\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{llll} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{array}\right]\left[\begin{array}{c} x_w \\ y_w \\ z_w \\ 1 \end{array}\right] \\ & =\mathrm{K}[\mathrm{R} \mid \mathrm{t}]\left[\begin{array}{c} x_w \\ y_w \\ x_w \\ 1 \end{array}\right] \end{aligned}$$

2.5 문제점

카메라의 착륙 지점인 정해진 마커로부터의 3차원 위치를 정확하게 측정하는 데 있어 카메라의 내부 파라미터는 사용하고 있는 카메라의 제원을 통해 알 수 있지만 공정상으로 표기된 제원 값이므로 정확한 값을 파악할 수 없어 카메라와 착륙 지점 간의 거리를 측정하는데 있어 큰 오차가 발생할 수 있다.

영상을 활용하여 카메라로부터의 거리와 각도를 추정하기 위해 마커의 크기와 패턴을 고려하여 네 개의 꼭짓점을 이미지 평면에 대응함으로써 추정할 수 있다.

또한 추정된 외부 파라미터에서 회전 행렬을 통해 계산된 오일러 각도 [TeX:] $$\alpha, \beta, \gamma$$는 Z-Y-X 순으로 회전한 두 축의 영향으로 세 번째 축이 다른 축과 정렬되며 하나의 축처럼 되는 짐벌 록(Gimbal lock) 현상이 발생할 수 있다[20]. 따라서 각도가 완전히 벗어나는 현상이 발생하기 때문에 각도를 보정할 수 있는 알고리즘을 활용할 수 있어야 한다.

Ⅲ. 제안 방안

본 논문에서는 마커를 활용하여 카메라 위치와 자세를 효과적으로 추정하는 방법을 제안한다. 제안하는 방법은 카메라로부터 획득한 영상에서의 마커 인식 및 좌표 추적 단계(Step 1), 마커의 중심에 대한 회전 행렬과 이동 벡터를 계산하는 카메라의 위치와 자세 추정(Step 2) 및 급격하게 변하는 각도를 보정(Step 3)의 단계로 Fig. 7과 같이 구성되어 있다. 아래 절에서 각 단계의 알고리즘을 자세히 설명한다.

그림(Fig.) 7.
제안 방안의 흐름도 (Flowchart of proposal)
3.1 카메라 초기 설정

카메라 초기 설정인 캘리브레이션(Calibration)을 한다. 카메라 캘리브레이션은 카메라의 보정된 초점 거리, 주점 및 왜곡 계수를 추정하는 과정으로 카메라의 내부 파라미터와 왜곡 계수를 정확하게 설정하여 이미지를 보정할 수 있다[21]. Fig. 8과 같은 체커보드 패턴을 사용하여 내부 파라미터와 왜곡 계수를 구하는 카메라 캘리브레이션을 수행한다. 즉 2D 이미지를 3D 공간에 대응시키는 선형 방법인 DLT(Direct Linear Transform)의 방법으로 주어진 2차원 체커보드의 패턴과 길이를 알고있으므로 내부 파라미터 [TeX:] $$f_x, f_y, c_x, c_y$$를 추정할 수 있다. 자세한 수식은 부록을 참고한다.

그림(Fig.) 8.
캘리브레이션에 사용되는 체커보드 (Checkerboard used for calibration)
그림(Fig.) 9.
마커 인식 흐름도 (Marker Detection Flowchart)
3.2 마커 인식 및 좌표 추적

착륙 지점을 인식하기 위해 기준 마커를 착륙지로 사용하여 영상에서 Fig 10과 같은 기준 마커를 인식하는 과정을 아래 흐름도와 그림을 통해 설명한다.

그림(Fig.) 10.
기준 마커의 모습 (Fiducial Marker)

이미지 정보를 전처리(Image Pre-processing)하기 위해 그레이 스케일과 이진 계열로 변환 후 외곽선을 만들어낸다(Fig. 11 (b), Fig. 12 (a), (b)). 외곽선을 만들어낸 이미지에서 다각형 근사(Polygon Approximation)를 한 후 특정 크기 이상의 사각형을 가진 4개의 코너 픽셀 좌표 집합을 가져온다(Filter Large Rectangel, Get coordinates). 각 사각형을 정사각형으로 원근 변환(Perspective Warp)을 수행한다(Fig 14). 원근 변환된 정사각형들을 격자로 분할(Divide Grid)하고 흑백에 따라 Fig. 15와 같이 0 또는 1의 행렬로 저장한다. 행렬로 저장된 값과 기준 마커의 행렬을 비교한다(Match with Marker). 두 행렬이 일치한다면 기준 마커가 감지되었다고 판단하고 해당하는 사각형의 4개 코너 픽셀 좌표 [TeX:] $$\left(x_i, y_i\right), i=\{1,2,3,4\}$$를 저장한다(Fig. 13).

그림(Fig.) 11.
입력 이미지(a)와 그레이 스케일(b)의 이미지 (Gray scale image and binary image)
그림(Fig.) 12.
이진 계열 이미지와 외곽선을 받은 이미지 (Binary Image and Canny Image)
그림(Fig.) 13.
특정 크기 이상의 이미지 (Images larger than a certain size)
그림(Fig.) 14.
원근 변환한 이미지 (Perspective transformed image)
그림(Fig.) 15.
격자 분할 이미지와 임곗값에 따른 0과 1구분 (0 and 1 classification based on grid segmentation image and threshold)
3.3 마커 인식 및 좌표 추적

마커의 영상 좌표를 추적하는 과정인 마커 인식 및 좌표 추적 단계에서 얻은 마커의 네 개의 코너 픽셀 좌표점(Fig. 13)에 대응하는 월드 좌표점에 대한 식 (8)은

(9)
[TeX:] $$\left[\begin{array}{c} x_i \\ y_i \\ 1 \end{array}\right]=\mathrm{K}[\mathrm{R} \mid \mathrm{t}]\left[\begin{array}{c} x_{w_i} \\ y_{w_i} \\ z_{w_i} \\ 1 \end{array}\right], i=1,2,3,4$$

와 같이 표현한다. 위 관계식에서 회전 행렬 R과 이동 벡터 t를 계산하기 위해 3D 포인트와 2D 포인트 간의 관계를 방정식으로 나타내고 이를 풀어낼 방법을 아래와 같이 설명한다.

기준 마커는 3.1절의 초기 설정에서 사용한 체커보드와 동일한 [TeX:] $$z_w=0$$인 3차원 좌표를 가지고 있다. 따라서 2D-3D 대응을 표현하는 Homography 행렬을 표현하면, 부록의 수식 (10)인 Homography 행렬 H는 아래와 같이 내부 파라미터 K와 외부 파라미터 [TeX:] $$[\mathrm{R} \mid \mathrm{t}]$$를 포함하는 형태로 나타낼 수 있다.

[TeX:] $$\mathrm{H}=\mathrm{K}[\mathrm{R} \mid \mathrm{t}]$$

Homography 행렬에서 내부 파라미터 K는 3.1절의 카메라 초기 설정 단계에서 알 수 있다. Homography 행렬을 분해하는 과정에서 찾고자 하는 값은 회전 행렬 R과 이동 벡터 t를 계산하는 것이다. 회전 행렬과 이동 벡터를 계산하기 위해 4개의 좌표점에 대응하는 식 (9)와 부록의 식 (10)으로부터 Homography 행렬 H을 계산한 다음, Homography 행렬을 내부 파라미터 K와 외부 파라미터 [TeX:] $$[\mathrm{R} \mid \mathrm{t}]$$로 분해하여 회전 행렬 R과 이동 벡터 t를 계산한다[22].

계산된 회전 행렬과 이동 벡터를 포함한 외부 파라미터 [TeX:] $$[\mathrm{R} \mid \mathrm{t}]$$의 해는 두 가지 해가 나올 수 있다. 이때, 카메라가 기준 마커의 전방에 위치해야 한다는 제약을 부여하여 두 가지 해 중 하나를 선택할 수 있다. 두 가지 해 중 최적의 해를 선택하기 위해 IPPE(Infinitesimal Plane-Based Pose Estimation) 알고리즘을 통해 두 가지 해 중 재투영 오차(Reprojection Error)를 아래와 같이 정의하여 더 작은 값을 가진 해를 최종 해로 결정한다[22].

[TeX:] $$E_{\text {reprojection }}=\sum_i\left\|p_i-\hat{p_i}\right\|^2$$

계산된 회전 행렬 R과 이동 벡터 t는 월드 좌표계에서 바라본 카메라 좌표, 즉 기준 마커에서 바라본 카메라의 위치이므로, 드론에서 바라본 기준 마커의 위치인 역행렬을 계산한다. 또한 회전 행렬 R은 식 (5)에서도 알 수 있듯이 각 축에 대한 회전을 곱한 것이기에 각 축에 대한 회전 각도를 계산하여야 한다. 따라서 카메라에서 바라본 기준 마커의 이동 벡터는 다음과 같다.

[TeX:] $$\mathrm{t}_{\neq w}=-\mathrm{R}^{\mathrm{T}} \cdot \mathrm{t}=\left[\begin{array}{c} t_{x_{\neq w}} \\ t_{y_{\neq w}} \\ t_{z_{\neq w}} \end{array}\right]$$

이때, 기준 마커는 월드 좌표계의 원점에 위치한다고 한다면 이동 벡터는 다음과 같이 월드 좌표계에서 카메라 좌표계로 이동하였을 때의 카메라 좌표 [TeX:] $$\left(x_c, y_c, z_c\right)$$가 된다.

[TeX:] $$\left(x_c, y_c, z_c\right)=\left(t_{x_{\neq w}}, t_{y_{\neq w}}, t_{z_{\neq w}}\right)$$

회전 행렬은 각 축에 대한 회전을 곱한 결과로 나타나는데, 각 축에 대한 회전 각도로 변환하기 위해 오일러 각을 사용하여 회전 행렬을 각도 값으로 변환한다. 회전 행렬을 곱하는 순서는 Z-Y-X로 곱한 경우이므로 z축에 대한 각도(yaw) γ, y축에 대한 각도(pitch) β, x축에 대한 각도(roll) α는 식 (5)의 회전 행렬 R의 정의로부터 다음과 계산할 수 있다.

[TeX:] $$\begin{aligned} & \gamma=\arctan 2\left(r_{21}, r_{11}\right) \\ & \beta=\arcsin \left(-r_{31}\right) \\ & \alpha=\arctan 2\left(r_{32}, r_{33}\right) \end{aligned}$$

3.4 각도 보정

계산된 각도 [TeX:] $$\alpha, \beta, \gamma$$는 Z-Y-X 순으로 회전한 두 축의 영향으로 세 번째 축이 다른 축과 정렬되며 하나의 축처럼 되는 짐벌 록(Gimbal lock) 현상이 발생하여 각도가 완전히 벗어나는 현상이 발생할 수 있다[18]. 각도가 벗어나는 짐벌 록 현상을 보완하기 위해 각도 보정을 하는 방법을 아래와 같이 설명한다.

그림(Fig.) 16.
각도 보정 흐름도 (Angle correction flowchart)

각도 보정을 위해, 최근N개의 각도 값을 저장하는 버퍼를 사용한다. 각 프레임에서 새로운 각도 값이 들어오면 이를 버퍼에 추가한다. 이때, 버퍼의 크기가 설정된 윈도우 크기보다 커지면, 가장 오래된 각도 값을 삭제하여 항상 최신의 N개의 값만을 유지하도록 한다. 버퍼에 저장된 각도 값들은 일정 시간 동안의 각도 변화를 반영한다.

버퍼에 저장된 각도 값들이 일정 수의 값으로 제한되면, 이 값들의 평균을 계산한다. 평균값은 급격한 변화나 이상치를 보정한다. 현재 각도 값과 평균값 사이의 차이를 비교하여, 만약 차이가 설정된 임곗값을 초과하면 급격한 변화가 발생한 것으로 판단한다.

급격한 변화가 감지되면, 현재 각도 값은 평균값으로 보정된다. 이를 통해 갑작스러운 회전 변화나 오차를 최소화할 수 있다. 보정된 값은 시스템에 전달되어 최종적으로 반환되며, 각도 값의 안정성을 유지할 수 있다. 따라서 이 방식은 급격한 각도 변화로 인한 오차를 최소화하고, 시스템의 동작을 보다 부드럽고 안정적으로 할 수 있다. Fig. 16은 각도 보정 과정에 대한 흐름도이다.

Ⅳ. 실 험

4.1 실험 환경

본 절에서는 시뮬레이션 환경, 결과 및 오차 등을 설명한다. 실험에 사용된 카메라 장비는 Logitech 사의 c930e 웹캠 카메라를 사용하였다. 카메라 캘리브레이션을 하기 위해 8x6 패턴을 가지며, 각 칸의 길이가 30mm인 체커보드 이미지를 사용한다. 제안 방안을 적용하기 위해 Windows 10의 운영체제, 프로그래밍 언어로는 Python, 그리고 OpenCV 라이브러리를 사용하였다. 기준 마커로는 검은 테두리를 가지는 10x10 패턴의 175mm의 정사각형의 기준 마커를 사용하였다.

4.2 카메라 초기 설정

카메라의 내부 파라미터 K를 얻기 위한 카메라 초기 설정 단계를 진행하기 위해 바닥에 체커보드 이미지를 두고 Fig. 17과 같이 다양한 각도에서 8장의 1920x1080 해상도의 사진을 캡처 후 각 이미지의 체커보드 패턴의 코너를 Fig. 18과 같이 찾아냈다. 다음으로 체커보드 이미지의 월드 좌표와 각 이미지에서의 체커보드 코너 픽셀 좌표점들을 부록의 수식 (17)에 대입함으로써 제원의 값보다 더 정확한 카메라의 내부 파라미터와 렌즈 왜곡 계수를 계산할 수 있었다.

그림(Fig.) 17.
다양한 각도에서 촬영한 모습 (Images from various angles)
그림(Fig.) 18.
체커보드 패턴의 코너를 검출한 모습 (Distortion correction before and after)

실험에 사용한 카메라는 자동 초점 기능을 사용하고 있어 이론적인 초점 거리를 알 수 없다. 따라서 실험 환경(거리)에 따라 초점 거리가 1200 pixels임을 파악하였다. 1920x1080의 해상도일 때 일반적으로 주점[TeX:] $$\left(c_x, c_y\right)$$은 (960, 540)이지만, Table. 1에서 알 수 있듯이 다른 값을 나타내고 있다. 이러한 현상이 발생한 이유는 카메라 조립 과정에서 렌즈와 이미지 센서의 수평이 어긋날 수 있기 때문이다.

표(Table) 1.
카메라 내부 파라미터 및 왜곡 계수 (Camera intrinsic parameters and distortion coefficients)

또한 렌즈 왜곡 계수를 활용하여 이미지 좌표계로 나타내는 이미지의 왜곡을 Fig. 19과 같이 보정할 수 있었다. Fig. 19에서 왜곡이 크게 발생하지 않았던 점을 알 수 있는데, 이는 실험에서 사용한 카메라의 렌즈가 광각 렌즈가 아니기 때문이다.

그림(Fig.) 19.
왜곡 보정 전(왼쪽)과 보정 후(오른쪽) (Distortion correction before and after)
4.3 마커 인식 및 거리 측정

실험을 간소화하기 위해 Fig. 20의 구상도와 같이 실내 천장(2730mm)에 기준 마커 (175mm×175mm)를 부착하고 바닥에 카메라를 두고 하나의 축 방향으로 100mm 간격을 두어 거리와 각도를 같이 측정하였다. 이때, 실험에 사용되는 거릿값과 오차는 다음과 같이 정의한다.

[TeX:] $$\begin{aligned} & \text { dist }=\sqrt{t_{x_{\text {new }}}^2+t_{y_{\text {new }}}^2+t_{z_{\text {new }}}^2} \\ & \text { error }_{\text {dist }}=\text { dist }-\widehat{\text { dist }} \end{aligned}$$

그림(Fig.) 20.
실험 구상도 (Experiment Schematic)

실험에서 내부 파라미터를 보정한 경우가 더 정확한 것을 검증하기 위해 제원 값과 보정된 값을 비교하여 측정하였다. 정면(X=0, Y=0, Z=2730mm)에서 비교 측정했을 때, 기존의 제원값을 사용하여 측정하였을 경우 Fig. 21과 같이 최대 107mm의 측정 오차가 발생하였으나 보정된 값을 사용하여 측정하였을 경우 최대 47.4mm의 측정 오차가 발생하였음을 확인하였다. 평균 오차가 100mm보다 더 크게 발생하게 된다면 선박과 같은 해상 환경에서 정밀한 착륙을 수행하기 어렵다. 따라서 보정된 값을 사용하여 거리를 측정한 값이 더 정확한 값임을 확인할 수 있었다.

그림(Fig.) 21.
캘리브레이션에 따른 거리 측정 오차 비교(X=0, Y=0, Z=2730mm) (Distance measurement error comparison through calibration)

각도가 크게 벗어날 수 있는 상황인 짐벌 록의 현상을 보정하기 위한 경우도 함께 측정하였다. Fig 22 (a)와 같이 yaw 각도가 크게 벗어나는 짐벌 록 현상이 발생하였다. 이러한 현상을 보정하기 위해 제안된 방법을 사용하여 급격한 각도를 보정함으로써 Fig. 22 (b)와 같이 최대 10도의 오차가 발생한 것을 확인함으로써 각도를 보정할 수 있었다.

그림(Fig.) 22.
각도 보정에 따른 각도 측정 오차 비교(α=0, β=0, γ=0) (Angle measurement error comparison from the front)

카메라의 위치가 이동함에 따른 오차를 비교하기 위해 Y축과 Z축으로 이동함에 따른 내부 파라미터를 보정한 경우와 제원의 값을 사용한 경우의 거리 측정 오차를 비교하였다. Figs. 23, 24와 같이 보정을 하지 않았을 경우 이동 거리가 증가함에 따라 평균 오차가 보정을 했던 경우보다 더 큰 것을 확인할 수 있었다.

그림(Fig.) 23.
Y축에서 거리에 따른 평균 오차 비교 (Average error comparison from Y axis)
그림(Fig.) 24.
Z축에서 거리에 따른 평균 오차 비교 (Average error comparison from Z axis)

거리및 각도 오차원인 중 가장큰 요인은 해상도에 문제가 있다. 사용된 카메라의 해상도는 1920x1080의 해상도로 측정하였는데, Z축에 대한 거리가 멀어질수록 마커의 중심점과 마커 테두리를 결정하는 픽셀값이 줄어들기 때문에 오차가 발생한 것이다. 따라서 고해상도의 카메라를 사용한다면 더 정밀한 계산이 가능하다.

Ⅴ. 결 론

본 연구에서는 드론에서 영상을 활용한 3차원 위치 측정 방안을 제안하였다. 카메라의 특성과 외부의 영향을 보정하기 위해 카메라 내부 파라미터와 외부 파라미터를 추정하여 드론의 자세에 따라 변하는 카메라의 위치와 방향을 정밀하게 계산하여 측정할 방법을 제안하였다. 실험 결과에서는 내부 파라미터를 보정함으로써 최대 측정 오차가 107mm에서 47.4mm로 줄일 수 있었으며, 평균 오차는 10.1mm로 뛰어난 오차 범위를 가짐을 확인할 수 있었다. 또한 각도를 추정하는 과정에서 크게 벗어나는 현상에 대해 보정할 수 있음을 확인하였다. 카메라 캘리브레이션을 통해 왜곡을 보정하여 착륙 위치를 추정함으로써 실시간 환경에서도 신뢰성 있는 결과를 얻을 수 있음을 실험을 통해 입증하였다.

향후 계획으로 내부 파라미터를 계산하는 방안과 마커의 거리 측정 시의 정확도를 향상하기 위해 AI 기법을 도입하여 내부 파라미터의 정확도를 향상하는 방안에 관해서는 추후 연구로 진행할 예정이다. 또한, 제안된 방안을 다중 카메라에 적용하여 측위 성능을 향상시키고자 한다.

부 록

체커보드의 각 코너를 월드 좌표계로 정하는데, 체커 보드의 좌표는 2차원이기 때문에 월드 좌표계에서 [TeX:] $$z_w=0$$으로 설정하면 각 점에 대한 식 (8)는 다음과 같이 다시 표현할 수 있다.

(10)
[TeX:] $$\begin{aligned} {\left[\begin{array}{c} x \\ y \\ 1 \end{array}\right] } & =\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{llll} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{array}\right]\left[\begin{array}{c} x_w \\ y_w \\ 0 \\ 1 \end{array}\right] \\ & =\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{lll} r_{11} & r_{12} & t_1 \\ r_{21} & r_{22} & t_2 \\ r_{31} & r_{32} & t_3 \end{array}\right]\left[\begin{array}{c} x_w \\ y_w \\ 1 \end{array}\right] \\ & =\mathrm{H}\left[\begin{array}{c} x_w \\ y_w \\ 1 \end{array}\right] \end{aligned}$$

여기서 행렬 H는 Homography 행렬이라고 하며, 3차원 공간에서의 두 평면 사이 투영 관계를 의미한다. 내부 파라미터 K를 활용하여 Homography 행렬을 다음과 같이 표현한다.

(11)
[TeX:] $$\begin{aligned} \mathrm{H}=\left[\mathrm{h}_1, \mathrm{~h}_2, \mathrm{~h}_3\right] & =\left[\begin{array}{ccc} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{lll} r_{11} & r_{12} & t_x \\ r_{21} & r_{22} & t_y \\ r_{31} & r_{32} & t_z \end{array}\right] \\ & =\mathrm{K}\left[r_1, r_2, t\right] \end{aligned}$$

여기서 [TeX:] $$\mathrm{h}_1, \mathrm{~h}_2, \mathrm{~h}_3$$는 Homography 행렬의 열 벡터를 나타낸다. 체커보드의 각 점에 대한 식을 포함하면 다음과 같은 방정식이 될 수 있다.

[TeX:] $$\left[\begin{array}{c} x_i \\ y_i \\ 1 \end{array}\right]=\mathrm{H}\left[\begin{array}{c} x_{i w} \\ y_{i w} \\ z_{i w} \end{array}\right], i=1, \ldots, I$$

[TeX:] $$\mathrm{h}=\left(\mathrm{h}_{\mathrm{k}}\right)=\operatorname{vec}\left(\mathrm{H}^{\mathrm{T}}\right)$$에서 Homography 행렬 [TeX:] $$\left[\mathrm{h}_1, \mathrm{~h}_2, \mathrm{~h}_3\right]=\mathrm{K}\left[r_1, r_2, t\right]$$에서 [TeX:] $$\left[r_1, r_2, t\right]=\mathrm{K}^{-1}\left[\mathrm{~h}_1, \mathrm{~h}_2, \mathrm{~h}_3\right]$$이고, [TeX:] $$r_1=\mathrm{K}^{-1} \mathrm{~h}_1, r_2=\mathrm{K}^{-1} \mathrm{~h}_2$$이다. [TeX:] $$r_{1,} r_2$$는 회전 행렬 요소로서 정규직교기저(orthonormal basis)이므로 다음의 성질을 가진다.

(12)
[TeX:] $$r_1^{\mathrm{T}} r_2=0$$

(13)
[TeX:] $$\left\|r_1\right\|=\left\|r_2\right\|$$

식 (12)과 (13)으로부터 다음과 같은 두 개의 제약 조건을 가진다.

(14)
[TeX:] $$h_1^{\mathrm{T}} \mathrm{~K}^{-\mathrm{T}} \mathrm{~K}^{-1} h_2=0$$

(15)
[TeX:] $$h_1^{\mathrm{T}} \mathrm{~K}^{-\mathrm{T}} \mathrm{~K}^{-1} h_1-h_2^{\mathrm{T}} \mathrm{~K}^{-\mathrm{T}} \mathrm{~K}^{-1} h_2=0$$

이때 내부 파라미터 K는 초점 거리, 중심점, 비대칭 계수인 5개의 변수를 가지고 있으므로 최소 세 개 이상의 Homography 행렬 [TeX:] $$\mathrm{H}_i, i=1,2,3$$가 주어졌을 때 내부 파라미터를 결정할 수 있다. 즉 내부 파라미터 K를 추정하기 위해 최소 세 개 이상의 체커보드 이미지를 획득해야 한다. 이를 통해 각각의 이미지마다 Homography 행렬을 얻을 수 있다. 다음으로 대칭이면서 양의 정부호 행렬인 [TeX:] $$\mathrm{B}=\mathrm{K}^{-\mathrm{T}} \mathrm{~K}^{-1}=\left(\begin{array}{l} b_{11} b_{12} b_{13} \\ b_{21} b_{22} b_{23} \\ b_{31} b_{32} b_{33} \end{array}\right)$$을 정의한다. 여기서 B는 대칭 행렬이고 6차원 벡터 b와 같이 표현할 수 있다.

[TeX:] $$b=\left(b_{11}, b_{12}, b_{22}, b_{13}, b_{23}, b_{33}\right)$$

는 대칭 행렬이고 6차원 벡터 b와 같이 표현할 수 있다.

H의 i번째 열 벡터를 [TeX:] $$h_i=\left[h_{i 1} h_{i 2} h_{i 3}\right]^{\mathrm{T}}$$라고 하면 다음을 얻을 수 있다.

(16)
[TeX:] $$\mathrm{h}_i^T \mathrm{Bh}_j=\mathrm{v}_{i j}^T b$$

[TeX:] $$\mathrm{v}_{i j}$$는 다음과 같다.

[TeX:] $$\mathrm{v}_{i j}=\left[\begin{array}{c} h_{i 1} h_{j 1} \\ h_{i 1} h_{j 2}+h_{i 2} h_{j 1} \\ h_{i 2} h_{j 2} \\ h_{i 3} h_{j 1}+h_{i 1} h_{j 3} \\ h_{i 2} h_{j 2}+h_{i 2} h_{j 3} \\ h_{i 3} h_{j 3} \end{array}\right]$$

따라서 주어진 Homography에서 두 가지 제약 조건 (14)과 (15)는 (16)를 통해 에 대한 두 개의 방정식으로 다시 쓸 수 있다.

(17)
[TeX:] $$\binom{\mathrm{v}_{12}^{\mathrm{T}}}{\mathrm{v}_{11}^{\mathrm{T}}-\mathrm{v}_{22}^{\mathrm{T}}} b=0$$

만약 n개의 이미지를 가져온다면 (17)과 같은 n개의 방정식을 쌓으면 2n × 6의 행렬 V를 포함하여 다음과 같이 표현할 수 있다.

(18)
[TeX:] $$\mathrm{V} b=0$$

따라서 벡터 b는 특잇값 분해(SVD, Singular Value Decomposition)를 통해 찾을 수 있다.

[TeX:] $$b^*=\arg \min _b\|V b\|,\|b\|=1$$

추정된 벡터 b를 B로 변환한 후, 다음 식을 통해 내부 파라미터 K를 구할 수 있다.

[TeX:] $$\begin{aligned} & f_x=\sqrt{B_{11}}, f_y=\sqrt{B_{11} /\left(B_{11} B_{22}-B_{12}^2\right)} \\ & c_x=\left(B_{12} B_{13}-B_{11} B_{23}\right) /\left(B_{11} B_{22}-B_{12}^2\right) \\ & c_y=\sqrt{B_{11} /\left(B_{11} B_{22}-B_{12}^2\right)} \end{aligned}$$

Biography

권 진 혁 (Jinhyuk Kwon)

2024년 2월: 울산대학교 전기공학부 졸업

2024년 3월~현재: 울산대학교 전기전자컴퓨터공학과 석사과정

<관심분야> 영상처리, 위치측정

[ORCID:0009-0009-8754-2729]

Biography

김 성 민 (Sungmin Kim)

2003년 2월: 한양대학교 기계공학과 학사

2005년 2월: 한양대학교 의용생체공학과 석사

2010년 2월: 한양대학교 의용생체공학과 박사

2011년 10월~2013년 9월: 현대중공업, 선임연구원

2013년 10월~2017년 6월: Johns Hopkins University, Research Scientist

2017년 6월~2019년 8월: 한국기계연구원 선임연구원

2019년 9월~현재:울 산대학교 기계공학부 부교수

<관심분야> 인공지능, 로봇 공학, 스마트 팩토리, 디지털 트윈, Extended Reality(XR)

[ORCID:0000-0003-2859-4210]

Biography

권 성 오 (Sungoh Kwon)

1994년 2월:KAIST 전기 및 전 자공학과 학사

1996년 2월:KAIST 전기 및 전 자공학과 석사

1996년 3월~2001년 1월: 신세 기통신 기술연구소

2007년 8월:Purdue University ECE 박사

2007년 8월~2010년 2월:삼성전자 DMC 연구소 수석 연구원

2010년 3월~현재:울산대학교 전기공학부 교수

<관심분야> 6G, 신호처리, 최적화, 인공지능, Energy ICT, Smart Factory

[ORCID:0000-0001-5265-862X]

References

  • 1 S. H. Kim and C. Chu, "Trends in mobile communication location-based services and precise positioning technologies," TTA J., vol. 198, pp. 66-75, 2021, http://weekly.tta.or.kr/we ekly/files/20224621074612_weekly.pdfcustom:[[[-]]]
  • 2 A. Famili, A. Stavrou, H. Wang, and J.-M. Park, "PILOT: High-precision indoor localization for autonomous drones," IEEE Trans. Veh. Technol., vol. 72, no. 5, pp. 6445-6459, May 2023.custom:[[[-]]]
  • 3 J. Wang, D. McKiver, S. Pandit, A. F. Abdelzaher, J. Washington, and W. Chen, "Precision UAV landing control based on visual detection," 2020 IEEE Conf. MIPR, pp. 205-208, Shenzhen, China, 2020.custom:[[[-]]]
  • 4 J. H. Lee, J. Jeon, K. Han, Y. Cho, and C. D. Lim, "A trend survey on precision positioning technology for drones," ETRI Electr. and Telecommun. Trends, vol. 38, no. 3, pp. 1119, 2023.custom:[[[-]]]
  • 5 Y. H. Park, M. G. Kang, J. H. Jeong, and S. G. Choi, "The data alignment method between GPS and IMU based on ICP for indoor positioning," 2024 26th ICACT, pp. 369-372, Pyeong Chang, Korea, 2024.custom:[[[-]]]
  • 6 W. Song, "A study on position estimation using GPS, base station and rover station," RISS ICCAS 2001, pp. 1904-1907, Jeju Island, Oct. 2001.custom:[[[-]]]
  • 7 N. Pritt, "Indoor location with Wi-Fi fingerprinting," 2013 IEEE Applied Imagery Pattern Recognition Wkshp. (AIPR), pp. 1-8, Washington, DC, USA, Oct. 2013.custom:[[[-]]]
  • 8 B.-J. Jang, "Principles and trends of UWB positioning technology," J. KIEES, vol. 33, no. 1, pp. 1-11, 2022.custom:[[[-]]]
  • 9 B. Zho, S. Kwon, and S. Cheon, "Indoor positioning system using ultrasonic and RF," J. KICS, vol. 42, no. 2, pp. 413-423, 2017.custom:[[[-]]]
  • 10 F. A. Moreno, J. L. Blanco, and J. Gonzalez, "Stereo vision specific models for particle filter-based SLAM," Robotics and Autonomous Syst., vol. 57, no. 9, pp. 955-970, 2009.custom:[[[-]]]
  • 11 D. Choi, S. H. Paik, Y.-K. Kim, J.-H. Yoo, S.-W Jung, T.-H. Kim, and D.-N. Kim, "A study on estimating the 3D coordinates of the drone landing using the diamond ArUco marker," J. Korean Inst. Inf. Technol., vol. 20, no. 12, pp. 75-81, 2022.custom:[[[-]]]
  • 12 K.-H. Choi, H.-B. Lee, S.-E. Cheon, and S. Kwon, "3 dimensional location estimation using image process," in Proc. Symp. KICS, pp. 588-589, Jeju, 2019.custom:[[[-]]]
  • 13 S.-H. Byun and D. Chwa, "Range and velocity estimation of the object using a moving camera," Trans. KIEE, vol. 62, no. 12, pp. 1737-1743, 2013.custom:[[[-]]]
  • 14 Y.-J. Go, S. Kwon, and S.-E. Cheon, "Real-time indoor positioning with multiple cameras," J. KICS, vol. 45, no. 9, pp. 16121622, 2020.custom:[[[-]]]
  • 15 C. S. Sharp, O. Shakernia, and S. S. Sastry, "A vision system for landing an unmanned aerial vehicle," in Proc. 2001 ICRA IEEE Int. Conf. Robotics and Automat., vol. 2, pp. 1720-1727, 2001.custom:[[[-]]]
  • 16 R. Szeliski, "Computer Vision: Algorithms and Applications," pp. 58-60, Springer, Sep. 2010.custom:[[[-]]]
  • 17 C. C. Slama "Manual of Photogrammetry," American Soc. Photogrammetry, Falls Church, Virginia, 1980.custom:[[[-]]]
  • 18 D. C. Brown "Decentering distortion of lenses," Photogramm. Eng., vol. 32, no. 3, pp. 444-462, May 1966.custom:[[[-]]]
  • 19 J. Heikkila and O. Silven, "A four-step camera calibration procedure with implicit image correction," in Proc. IEEE Computer Soc. Conf. CVPR, pp. 1106-1112, San Juan, PR, USA, 1997.custom:[[[-]]]
  • 20 A. Popa, "What is meant by the term gimbal lock?," 1988, http:// www.madsci.org/posts/arc hives/aug98/896993617.Eg.r.htmlcustom:[[[http://www.madsci.org/posts/archives/aug98/896993617.Eg.r.html]]]
  • 21 Z. Zhang, "A flexible new technique for camera calibration," IEEE Trans. Pattern Analysis and Machine Intell., vol. 22, no. 11, pp. 1330-1334, Nov. 2000.custom:[[[-]]]
  • 22 T. Collins and A. Bartoli. "Infinitesimal plane-based pose estimation," Int. J. Computer Vision, vol. 109, no. 3, pp. 252-286, 2014.custom:[[[-]]]

표(Table) 1.

카메라 내부 파라미터 및 왜곡 계수 (Camera intrinsic parameters and distortion coefficients)
Parameter Specification Calibrated Value
[TeX:] $$f_x$$ 1200(pixel) 1165.917(pixel)
[TeX:] $$f_y$$ 1200(pixel) 1168.884(pixel)
[TeX:] $$c_x$$ 960(pixel) 986.613(pixel)
[TeX:] $$c_y$$ 540(pixel) 525.680(pixel)
[TeX:] $$k_1$$ 0 0.0825
[TeX:] $$k_2$$ 0 -0.0666
[TeX:] $$k_3$$ 0 -0.00322
[TeX:] $$p_1$$ 0 0.00415
[TeX:] $$p_2$$ 0 -0.213
3차원 공간상의 월드 좌표계와 카메라 좌표계 (World and camera coordinate system in 3D space)
3차원으로 보는 카메라 투영 모델 (Camera projection model in 3D)
2차원으로 보는 카메라 투영 모델 (Camera projection model in 2D)
방사 왜곡의 예 (Example of Radial distortion)
접선 왜곡의 예 (Example of tangential distortion)
각 축에 대한 회전 (Rotation for each axis)
제안 방안의 흐름도 (Flowchart of proposal)
캘리브레이션에 사용되는 체커보드 (Checkerboard used for calibration)
마커 인식 흐름도 (Marker Detection Flowchart)
기준 마커의 모습 (Fiducial Marker)
입력 이미지(a)와 그레이 스케일(b)의 이미지 (Gray scale image and binary image)
이진 계열 이미지와 외곽선을 받은 이미지 (Binary Image and Canny Image)
특정 크기 이상의 이미지 (Images larger than a certain size)
원근 변환한 이미지 (Perspective transformed image)
격자 분할 이미지와 임곗값에 따른 0과 1구분 (0 and 1 classification based on grid segmentation image and threshold)
각도 보정 흐름도 (Angle correction flowchart)
다양한 각도에서 촬영한 모습 (Images from various angles)
체커보드 패턴의 코너를 검출한 모습 (Distortion correction before and after)
왜곡 보정 전(왼쪽)과 보정 후(오른쪽) (Distortion correction before and after)
실험 구상도 (Experiment Schematic)
캘리브레이션에 따른 거리 측정 오차 비교(X=0, Y=0, Z=2730mm) (Distance measurement error comparison through calibration)
각도 보정에 따른 각도 측정 오차 비교(α=0, β=0, γ=0) (Angle measurement error comparison from the front)
Y축에서 거리에 따른 평균 오차 비교 (Average error comparison from Y axis)
Z축에서 거리에 따른 평균 오차 비교 (Average error comparison from Z axis)