DOI QR코드

DOI QR Code

UKF와 연동된 입자필터를 이용한 실시간 단안시 카메라 추적 기법

Real-time Monocular Camera Pose Estimation using a Particle Filiter Intergrated with UKF

  • Seok-Han Lee (Department of Information and Communication Engineering, Jeonju University)
  • 투고 : 2023.10.06
  • 심사 : 2023.10.17
  • 발행 : 2023.10.31

초록

본 논문에서는 UKF(unscented Kalman filter)와 연동된 입자필터를 이용한 단안시 카메라의 실시간 자세추정 기법을 제안한다. 단안시 카메라 자세 추정 기법에는 주로 카메라 영상과 자이로스코프, 가속도센서 데이터 등을 연동하는 방법이 많이 이용되고 있으나 본 논문에서 제안하는 방법은 별도의 센서 없이 카메라 영상에서 취득되는 2차원 시각 정보만을 이용하는 것을 목표로 한다. 제안된 방법은 카메라 영상 이외의 부가적인 장비를 이용하지 않고 별도의 센싱 정보 없이 2차원 영상만으로 카메라 추적이 가능하며, 따라서 기존에 비해 하드웨어 구성이 단순해질수 있다는 장점을 갖고 있다. 제안된 방법은 UKF와 연동된 입자필터를 기반으로 한다. 입자필터의 각 입자마다 개별적으로 정의된 UKF로부터 카메라의 상태를 추정한 다음 입자필터의 전체 입자로부터 카메라 상태에 대한 통계데이터를 산출하고 이로부터 카메라의 실시간 자세정보를 계산한다. 기존의 방법과 달리 제안된 방법은 카메라의 급격한 흔들림이 발생하는 경우에도 카메라 추적이 가능함을 보여주며, 영상 내의 특징점 대다수가 가려지는 환경에서도 카메라 추적에 실패하지 않음을 실험을 통하여 확인하였다. 또한 입자의 개수가 35개인 경우 프레임 당 소요 시간이 약 25ms이며 이로부터 실시간 처리에 문제가 없음을 확인할 수 있었다.

In this paper, we propose a real-time pose estimation method for a monocular camera using a particle filter integrated with UKF (unscented Kalman filter). While conventional camera tracking techniques combine camera images with data from additional devices such as gyroscopes and accelerometers, the proposed method aims to use only two-dimensional visual information from the camera without additional sensors. This leads to a significant simplification in the hardware configuration. The proposed approach is based on a particle filter integrated with UKF. The pose of the camera is estimated using UKF, which is defined individually for each particle. Statistics regarding the camera state are derived from all particles of the particle filter, from which the real-time camera pose information is computed. The proposed method demonstrates robust tracking, even in the case of rapid camera shakes and severe scene occlusions. The experiments show that our method remains robust even when most of the feature points in the image are obscured. In addition, we verify that when the number of particles is 35, the processing time per frame is approximately 25ms, which confirms that there are no issues with real-time processing.

키워드

1. 서론

실시간으로 카메라 정보를 정확히 추정하고 이를 강건하게 추적하기 위한 실시간 카메라 추적 기술은 증강현실 (AR; augmented reality), 직관적 인터페이스(perceptual interface), 앰비언트 컴퓨팅(ambient computing), 사물인터넷(internet of things) 등에 대한 응용 가능성 때문에 중요성이 강조되어 왔다. 특히 증강현실 콘텐츠의 경우 사용자에게 제공되는 부가정보가 실사 영상과 완벽하게 실시간으로 정합된 형태로 제공되어야 하며, 사용자는 실사 영상과 가상의 정보가 정확히 통합된 형태의 인터페이스를 통하여 실제 세계와 연동된 상호작용을 수행할 수 있다. 특히 별도의 센서 및 부가장비 없이 영상 정보만을 이용하는 시각 기반의 증강현실은 실시간으로 카메라정보를 추정하고 이를 기반으로 가상의 정보를 기준 좌표계와 정합시키는 기술이며, 증강현실에 사용되는 기타 다른 요소들은 강건한 카메라 자세 추정 정보를 토대로 구현된다. 또한 사용자의 시선 방향과 위치는 고정되어 있지 않고 자유롭게 가변되기 때문에 사용자의 임의의 움직임까지 고려한 동적 환경에서의 실시간 추정 방법까지 반드시 고려되어야 한다. 본 논문에서는 UKF(unscented Kalman filter)와 연동된 입자필터를 이용한 단안시 카메라의 실시간 자세추정 기법에 대해 설명한다. 제안된 방법은 입자필터의 각 입자마다 개별적으로 정의된 UKF를 이용하여 카메라의 자세를 개별적으로 추정한 다음, 입자필터의 전체 입자로부터 카메라 자세정보에 대한 통계값을 실시간으로 산출하고 이를 카메라의 자세정보에 추정에 이용한다. 제안된 방법은 카메라 장면의 가려짐 및 카메라의 급격한 흔들림에도 강건한 추적 성능을 보이며, 특히 영상 내의 특징점의 일부가 가려져서 카메라 자세추정을 위해 필수적으로 요구되는 개수 이하의 특징점이 검출 되는 경우에도 카메라의 상태 추정에 실패하지 않는 특징을 갖고 있다. 본 논문 다음과 같이 구성되어 있다. 2장에서는 실시간 카메라 추적과 관련된 연구 동향에 대해 설명하고 3장에서는 카메라 움직임 모델 및 측정값 취득 과정, 그리고 제안된 카메라 자세 추정 기법에 대해 설명한다. 4장에서는 제안된 방법의 실험 결과 및 분석 결과를 제시하고 5장에서 최종 결론 및 향후 연구 계획에 대해 설명한다.

2. 관련 연구 동향

실시간 단안시 카메라 추적을 위한 기존의 방법들에서는 카메라 영상과 자이로스코프, 가속도센서 데이터 등을 연동하는 방법이 많이 이용되고 있다. 대표적인 방법으로는 Google 안드로이드 OS를 위한 ARCore, Apple iOS 기반의 ARKit 등이 있다[1, 2]. 이들 툴킷을 이용하면 카메라 영상 이외에도 모바일 디바이스에 장착된 높은 정확도의 센서로부터 얻어지는 고속의 센서 데이터를 함께 연동하여 카메라 자세정보를 추정하는 것이 가능하며 비교적 안정적인 실시간 카메라 추적이 가능하다는 장점이 있다. 하지만 이들 방법은 카메라 영상과 센서 정보를 연동해서 이용하기 때문에 모바일 기기에 장착된 센서들의 성능이 미흡하거나 카메라 추적에 필요한 센서가 장착되어 있지 않을 경우 안정된 카메라 자세 추정이 어려워질 가능성이 있다. 또한 카메라 영상 취득 뿐 아니라 다수의 센서를 동시에 구동해야 하기 때문에 카메라 및 다양한 센서 구동으로 인한 모바일 기기의 전력소모, 프로세서의 발열로 인한 성능 저하 등과 같은 문제점 또한 발생할 수 있다. 한편 별도의 센서가 아닌 카메라 정보만을 이용하여 카메라의 자세를 추정하기 위한 방법으로 RGB-D 카메라를 이용한 기법 있다[3, 4]. RGB-D 카메라에는 RGB 영상 카메라 이외에 별도의 깊이값(depth) 카메라가 장착되어 있다. 따라서 RGB-D 카메라를 이용하면 카메라의 컬러 영상 뿐 아니라 영상 내의 장면에 대한 깊이값을 직접 얻을 수 있으며 기존의 2차원 카메라 영상만을 이용하는 방법에 비해 상대적인 깊이값 취득 및 장면의 3차원 좌표 계산이 단순화 될 수 있다는 장점이 있다. 하지만 별도의 깊이값 카메라를 이용하기 때문에 기존의 RGB 카메라와 깊이값 카메라 사이의 기하학적 오차 및 변위값을 보정하기 위한 별도의 카메라 교정(calibration) 과정이 필요하며, 깊이값 정보를 취득하고 관리하기 위한 별도의 알고리즘 또한 필요할 수 있다. 또한 카메라 영상 내의 깊이값이 카메라의 검출 한계 보다 커지는 경우 깊이값의 취득 자체가 불가능해지는 문제 또한 발생할 가능성이 존재한다. 3차원 좌표 취득을 위해 기존의 시각 정보만을 이용하는 실시간 카메라 추적 기법이 갖는 문제 중 하나는 카메라 추적 중 발생할 수 있는 예외 상황에 대한 대처 기법이 필요하다는 것이다. 즉, 카메라 흔들림, 장면 가려짐, 특징점 유실 등과 같은 돌발 상황이 발생하게 됐을 경우 기존의 일반적인 방법들은 큰 값의 오차를 발생시키며 안정적인 카메라 추적에 실패하게 되는 문제를 발생시킬 수 있다. 이와 같은 상황은 증강현실 응용 시스템에서 빈번하게 발생되는 문제이며 이러한 돌발상황 발생 시 빠르게 안정된 상태로 복구하기 위한 별도의 최적화 기법이 필요하다. 이를 위하여 [5, 6, 7] 등의 같은 연구에서는 칼만필터, RANSAC, 입자필터 등을 이용한 카메라 추적 방법이 제안되었다. 특히 [7]에서 제안하는 방법에서는 [6]의 방법과는 달리 입자 정련(annealing)과 같은 추가 후처리 과정 없이 실제 확률분포 근사화되도록 재표본화(resampling)된 입자를 카메라 자세 추정에 이용하며, 가중치 계산 같은 별도의 과정이 필요 없기 때문에 수행시간 측면에서도 유리한 장점이 있다 하지만 안정적인 결과를 얻기 위해서 보다 많은 수의 표본입자가 이용되어야 하는 특징을 보이며 이는 계산량 및 수행시간의 증가로 이어질수 있다는 특성을 갖고 있다. 시각기반 카메라 자세 추정을 위한 가장 단순한 방법 중 하나는 사전에 정의된 특수한 형태의 패턴을 갖는 마커(marker)를 이용하는 방법이다. 마커 기반의 카메라 자세추정 기법을 활용한 예로는 ARToolkit, Vuforia 등이 있다[8, 9]. 이들 방법은 마커가 갖는 기하학적 특징과 마커 영상의 좌표 정보 사이의 변환관계를 추정하고 그 결과를 기반으로 카메라의 회전 및 위치변위를 계산한다. 이들을 이용할 경우 비교적 간단하고 단순한 방법으로 시각 기반 카메라 자세추정을 수행할 수 있으며 이를 증강 현실 콘텐츠 제작 및 활용에 쉽게 적용할 수 있다는 장점이 있다. 하지만 마커기반 카메라 자세추정 기법은 기본적으로 사전에 정해진 크기 및 패턴을 갖는 마커가 카메라 영상 내에 반드시 존재해야 하며 마커가 장면 내에서 가려지거나 마커의 영상 정보가 일부 유실되는 경우 카메라 자세 추정이 아예 불가능하다는 단점이 존재한다.

3. 제안된 카메라 추적 기법

3.1 시스템 개요

본 절에서는 강건한 카메라 자세 정보 계산을 위한 UKF와 연동된 입자 필터 기반 카메라 추적에 대해 설명한다. 입자 필터는 순차적 몬테카를로 추정법(sequential Monte-Carlo estimation)에 기반한 상태 추정 기법이며, 일반적인 최적화 알고리즘과 달리 확률 변수의 불확실도가 정규 분포를 가져야 한다는 전제조건이 필요 없고, 시스템 상태의 전이(transition)와 측정 과정에서 비선형 특성이 상당히 강한 조건 하에서도 강건한 상태추정이 가능하다고 알려져 있다[10]. 본 논문에서 제안하는 방법에서는 카메라 상태 추정을 위해 각 입자필터마다 독립적인 한 개의 UKF를 할당한다. UKF는 UT(unscented transformation)를 적용한 칼만필터의 일종으로, UT는 기본적으로 하나의 표본값에 대한 비선형 변환이 확률밀도함수 자체에 대한 비선형 변환을 수행하는 것보다 훨씬 용이하다는 직관적인 원리에 기반한 변환 과정이다. UKF는 선형칼만필터 및 EKF(extended Kalman filter)에 비해 비선형 조건이 매우 강한 환경 하에서도 추적 성능이 월등히 뛰어난 것으로 알려져 있다. 본 논문에서 제안하는 방법은 입자필터의 각 입자마다 개별적인 UKF를 할당한 다음 개별 UKF로부터 카메라의 자세를 추정한다. 그리고 각 입자필터의 UKF들로부터 카메라 자세정보에 대한 통계값을 실시간으로 산출하고 이를 카메라의 자세정보에 추정에 이용한다. 각각의 UKF에서 카메라 상태에 대한 확률값은 3차원 공간과 2차원 영상 사이의 사영관계를 통한 측정값을 기반으로 계산되고, 사전에 정의된 카메라 운동 모델에 기반하여 카메라 벡터를 추정하고 다음 주기에서의 카메라 상태를 계산한다.

3.2 카메라의 상태 벡터 및 움직임 모델

3차원 공간과 2차원 영상 사이의 사영 행렬(projective matrix)은 크기는 3×4의 크기를 갖는다. 따라서 사영 행렬 전체 원소의 수는 12개이며 3행 4열에 위치한 스케일 변수를 제외하고 11의 자유도(DOF, degree of freedom)를 갖게 된다. 이를 그대로 카메라 추적에 이용하면 많은 수의 파라미터로 인하여 계산량이 매우 막대해 질 수 있다. 따라서 제안된 방법에서는 다음과 같이 카메라의 상태 변수를 단순화 시킨다. 즉, 카메라 벡터를 다음과 같이 이동 변위를 나타내는 3×1 벡터 t = [tx ty tz]T와 회전 변위를 위한 쿼터니온 벡터 q = [q0 qx qy qz]T로 구성한다. 따라서 카메라 상태 벡터는 7×1의 1차원 벡터이며 다음과 같이 k번째 영상에 대한 상태 벡터(state vector)를 정의한다.

xk = [tk qk ]T.       (1)

기준 좌표계(world coordinate) 내의 한 점 Pw는 다음처럼 2차원 영상 좌표계 내의 한 점으로 변환된다.

\(\begin{aligned}\tilde{\mathbf{p}}_{k}=R\left(\mathbf{q}_{k}\right) \mathbf{p}^{w}-\mathbf{t}_{k}=\left[\mathbf{R}_{k} \mid \mathbf{t}_{k}\right] \tilde{\mathbf{p}}^{w}\end{aligned}\).       (2)

윗 식에서 R(q)T는 쿼터니온 벡터 q로부터 계산된 3×3 회전 행렬이며 첨자 ‘~’는 동차좌표계(homogeneous coordinate) 표현식을 의미한다. 그리고 첨자 w는 기준 좌표계 내의 좌표 나타낸다. 3차원 좌표 pw와 이에 대한 영상 내의 관측값(observation) \(\begin{aligned}\tilde{\mathbf{p}}_{k}\end{aligned}\)가 주어지면 (2)에 기반하여 k번째 영상에서의 카메라 상태 벡터인 xk을 추정할 수 있다. 처음 주기부터 N번째 프레임까지의 관측값 집합을 z1:N이라고 하면, 카메라 자세 추정 과정은 3차원 특징점의 집합 Θ = {θ12,⋯θk-1, θk}가 주어졌을 때 관측값 집합 z1:k와 카메라 제어정보 ut로부터 현재시간 t에서의 카메라 상태에 대한 조건부 사후 확률(posteriori)을 계산하는 과정이다.

p(xt, θ|zt, ut, it).       (3)

식 (1)에서 xt = x1, x2,...,xt는 시간 t까지의 카메라의 경로 집합을 나타내며 zt=z1,...,zt는 측정값 집합이고, ut=xu1,...,ut는 제어신호 입력 값을 나타낸다. 또한 it = i1,...,it는 각 특징점의 인덱스를 나타내는 변수이다. 식 (3)을 계산하기 위해서는 상태 벡터의 전이를 위한 확률모델이 필요하며 이를 다음과 같이 나타낼 수 있다.

p(xt|xt-1, ut).       (4)

여기서 현재 시간 t에서의 카메라 상태 xt는 이전의 상태 벡터 xt-1과 제어 변수 ut의 확률 함수이다. 일반적으로 로봇이나 자율주행 장치의 경우 현재 움직임에 대한 제어신호를 제어장치 또는 별도의 센서로부터 직접 전달받아 이용하는 것이 가능하나 카메라 영상 만을 이용하는 경우 카메라 움직임에 의한 정확한 자세 제어신호를 직접 취득하는 것이 불가능하다. 본 논문에서는 다음의 1차 확률 보행(first order random walk) 모델을 이용하여 카메라의 상태 벡터 xt-1에 대한 다음 주기의 카메라 상태 xt를 추정한다[10, 11]. 즉, 카메라 상태 벡터의 조건부 확률이 다음과 같이 균일 분포(uniform distribution)를 갖는다고 가정한다.

P(xk|xk-1) = U(xk-1 - v, xk-1, + v).       (5)

여기서 v는 카메라 운동의 불확실도 정도를 나타내며, 카메라의 운동 모델은 다음과 같이 정의된다.

\(\begin{aligned}\mathbf{x}_{k}=\left(\begin{array}{c}\mathbf{t}_{k} \\ \mathbf{q}_{k}\end{array}\right)=\left(\begin{array}{c}\mathbf{t}_{k-1}+\mathbf{V}_{c} \\ \mathbf{q}_{k-1} \otimes \mathbf{q}\left(\Omega_{c}\right)\end{array}\right)\end{aligned}\).       (6)

여기서 ‘⊗’ 연산자는 쿼터니온 곱셈을 나타낸다. 또한 VC와 Ωc는 각각 카메라의 위치 이동과 카메라의 회전 변위에 대한 확률변수이다. 본 논문에서는 카메라 운동의 확률분포를 균일 분포로 가정했으며 위 (6)의 카메라 위치와 회전에 대한 불확실도는 식 (7)과 같이 균일 분포를 갖는 확률변수로 정의된 벡터로 주어진다.

\(\begin{aligned}\mathbf{n}=\left(\begin{array}{l}\mathbf{V}_{c} \\ \boldsymbol{\Omega}_{c}\end{array}\right) \propto\left(\begin{array}{c}U^{3}\left(\mathbf{t}_{k-1}-\mathbf{v}_{t}, \mathbf{t}_{k-1}+\mathbf{v}_{t}\right) \\ U^{3}\left(\boldsymbol{\omega}_{k-1}-\mathbf{v}_{r}, \boldsymbol{\omega}_{k-1}+\mathbf{v}_{r}\right)\end{array}\right)\end{aligned}\).       (7)

3.3 카메라 자세추정 과정

본 논문에서 제안하는 카메라 자세 추정 방법은 UKF와 연계된 입자필터를 통해서 구현된다. UKF를 통한 카메라 자세 추정은 거시적으로 두 단계를 통해서 수행된다[12]. 먼저 식 (5)~식 (7)의 확률모델에 기반하여 시스템 상태 전이 및 이를 통한 현재상태의 예측(prediction)과정을 수행한 다음, 이를 기반으로 측정 갱신(measurment update)을 통해서 카메라의 상태 정보를 추정하는 과정을 거친다. 이를 위해 시스템의 상태벡터와 공분산행렬을 다음과 같이 정의한다.

\(\begin{aligned}x_{t-1}^{a[m]}=\left[\begin{array}{c}x_{t-1}^{[m]} \\ 0 \\ 0\end{array}\right], P_{t-1}^{a[m]}=\left[\begin{array}{ccc}P_{t-1}^{[m]} & 0 & 0 \\ 0 & Q_{t} & 0 \\ 0 & 0 & R_{t}\end{array}\right]\end{aligned}\).       (8)

여기서 x[m]t-1은 식 (1)에서 정의된 7×1 벡터의 이전 주기에서의 평균값이며 입자필터로부터 추정된다. Qt는 7×7 시스템 제어를 위한 잡음 공분산 행렬이고 Rt는 2×2 측정 잡음 공분산 행렬을 나타낸다. 식 (8)에 정의된 상태 벡터로부터 다음과 같이 UKF의 시그마포인트를 도출한다.

χa[0][m]t-1 = χa[m]t-1

\(\begin{aligned}\chi_{t-1}^{a[i[m]}=\chi_{t-1}^{a[m]}+\left(\sqrt{(L+\lambda) P_{t-1}^{a[m]}}\right)_{i}(i=1, \ldots, L)\end{aligned}\)

\(\begin{aligned} \chi_{t-1}^{a[i][m]}=\chi_{t-1}^{a[m]}-\left(\sqrt{(L+\lambda) P_{t-1}^{a[m]}}\right)_{i}(i=L+1, \ldots, 2 L)\end{aligned}\)

윗 식에서 L은 시스템의 차원(dimension)을 나타내며 제안된 시스템은 식 (1)과 같이 7차원의 상태벡터를 갖기 때문에 L=7 이다. χa[i][m]t-1은 식 (8)의 상태벡터에 대한 i번째 시그마포인트를 나타낸다. 그리고 λ는 λ=α2(L+k)-L의 관계로부터 계산되며 α는 0<α<1의 조건을 만족하는 임의의 작은 값을 갖는다. 그리고 k는 시그마포인트의 분산 정도를 나타내며 일반적으로 k=0 의 값으로 설정한다. 윗 식의 각각의 시그마포인트는 다음과 같이 상태벡터, 제어벡터, 측정벡터를 포함하며 아래와 같이 나타낼 수 있다.

\(\begin{aligned}\chi_{t-1}^{a[i][m]}=\left[\begin{array}{c}\chi_{t-1}^{[i][m]} \\ \chi_{t}^{u[i][m]} \\ \chi_{t}^{z[i][m]}\end{array}\right]\end{aligned}\). (9)

식 (9)의 시그마포인트들은 식 (5)~식(7)에서 설명된 카메라 움직임 모델에 의해 전이되며, 움직임 모델을 나타내는 비선형 함수 f는 xt = f(xt-1, ut)로 정의한다. 여기서 제어벡터 ut는 앞에서 설명된 바와 같이 식(7)의 균일분포를 갖는 잡음 벡터 nt와 같으며 식 (6)의 과정을 거쳐서 현재주기의 상태값을 다음 주기의 값으로 전이시킨다.

\(\begin{aligned} \bar{\chi}_{t}^{[i][m]} & =f\left(\chi_{t-1}^{[i][m]}, u_{t}^{[m]}+\chi_{t}^{u[i][m]}\right) \\ & =\left[\begin{array}{c}\bar{\chi}_{t-1}^{[i] m]} \\ \bar{\chi}_{t}^{u[i][m]} \\ \bar{\chi}_{t}^{z[i][m]}\end{array}\right]\end{aligned}\).       (9)

식 (9)에서 \(\begin{aligned}\bar{\chi}_{t}^{[i][m]}\end{aligned}\)은 상태전이 함수 f에 의해서 변환된 시그마포인트를 나타낸다. 식 (9)의 시그마 포인트로부터 다음과 같이 카메라상태에 예측값(prediction) 및 공분산 행렬을 계산할 수 있다.

\(\begin{aligned}x_{t \mid t-1}^{[m]}=\sum_{i=0}^{2 L} w_{g}^{[i]} \bar{\chi}_{t}^{[i][m]}\end{aligned}\),       (10)

\(\begin{aligned}P_{t \mid t-1}^{[m]}=\sum_{i=0}^{2 L} w_{c}^{[i]}\left(\bar{\chi}_{t}^{[i][m]}-x_{t \mid t-1}^{[m]}\right)\left(\bar{\chi}_{t}^{[i][m]}-x_{t \mid t-1}^{[m]}\right)^{\mathrm{T}}\end{aligned}\).        (11)

여기서 w[i]g는 평균값 계산을 위한 가중치(weight) 이며 w[i]c는 공분산 행렬 추정을 위해 사용되는 가중치로 각각 다음의 과정을 거쳐서 계산된다.

\(\begin{aligned}w_{g}^{[0]}=\frac{\lambda}{(L+\lambda)}, w_{c}^{[0]}=\frac{\lambda}{(L+\lambda)}+\left(1-\alpha^{2}+\beta\right)\end{aligned}\),       (12)

\(\begin{aligned}w_{g}^{[i]}=w_{c}^{[i]}=\frac{1}{2(L+\lambda)}, i=1, \ldots, 2 L\end{aligned}\).       (13)

윗 식에서 β는 시스템 상태의 사후확률에 대한 고차 모멘트 정보와 관계된 매개변수로, 가우스 분포를 갖는 조건부 확률의 경우 β=2이다[13, 14]. 영상 내에서 검출 되는 특징점 정보로부터 각 특징점들의 3차원 정보를 확인할 수 있으며 이로부터 카메라의 평균에 대한 추정값과 공분산값을 계산할수 있다. 이를 위해서 다음의 식 (14)~식 (18)의 과정이 수행된다.

\(\begin{aligned}\bar{N}_{t}^{[i][m]}=\mathbf{h}\left(\bar{\chi}_{t}^{[i][m]}, \mu_{\hat{k}, t-1}^{[m]}\right)+\chi_{t}^{z[i][m]}\end{aligned}\),       (14)

\(\begin{aligned}\hat{n}_{t}^{[m]}=\sum_{i=0}^{2 L} w_{g}^{[i]} \bar{N}_{t}^{[i][m]}\end{aligned}\),       (15)

\(\begin{aligned}S_{t}^{[m]}=\sum_{i=0}^{2 L} w_{c}^{[i]}\left(\bar{N}_{t}^{[i][m]}-\hat{n}_{t}^{[m]}\right)\left(\bar{N}_{t}^{[i][m]}-\hat{n}_{t}^{[m]}\right)^{\mathrm{T}}\end{aligned}\),       (16)

\(\begin{aligned}\Sigma_{t}^{x, n[m]}=\sum_{i=0}^{2 L} w_{c}^{[i]}\left(\bar{\chi}_{t}^{[i][m]}-x_{t \mid t-1}^{[m]}\right)\left(\bar{N}_{t}^{[i][m]}-\hat{n}_{t}^{[m]}\right)^{\mathrm{T}}\end{aligned}\),       (17)

k[m]t = Σx,n,[m]t(S[m]t)-1.       (18)

식 (14)에서 측정값 시그마포인트 \(\begin{aligned}\bar{N}_{t}^{[i][m]}\end{aligned}\)는 식 (2)의 관측모델(observation model)을 기반으로 정의된 함수 h로부터 계산된다. 그리고 \(\begin{aligned}\mu_{\hat{k}, t-1}^{[m]}\end{aligned}\)는 사전에 등록된 \(\begin{aligned}\hat k\end{aligned}\) 번째 특징점의 현재 주기에서의 평균값이다. \(\begin{aligned}\hat{n}_{t}^{[m]}\end{aligned}\)는 측정값에 대한 예측값이며 S[m]t는 혁신 공분산(innovation covariance) 행렬을 나타낸다. 위의 관계로부터 시간 t에서의 카메라 상태 및 공분산 값을 다음의 관계로부터 얻을 수 있다.

\(\begin{aligned}x_{t}^{[m]}=x_{t \mid t-1}^{[m]}+K_{t}^{[m]}\left(z_{t}-\hat{n}_{t}^{[m]}\right)\end{aligned}\),       (19)

P[m]t = P[m]t|t-1 - K[m]tS[m]t(K[m]t)T.        (20)

식 (19), 식 (20)의 평균값과 공분산 행렬에 의해 생성된 가우스 분포로부터 입자필터 각 입자의 상태값에 대한 표본을 다음과 같이 취할 수 있다.

x[m]t ~ N(x[m]t, P[m]t).        (20)

현재 주기에서 관측되는 특징점이 없을 경우 카메라의 상태는 식 (10), 식 (11)을 통하여 관측값 없이 추정된다. 관측되는 특징점의 개수가 다수일 경우 전체 특징점에 대해서 식 (14) ~ 식 (20)의 과정을 반복하여 매 특징점 마다 카메라의 상태 및 공분산을 갱신한다.

4. 실험 결과

실험에 사용된 카메라는 800 x 600 해상도의 RGB 영상을 초당 30프레임으로 출력할 수 있는 USB 웹 카메라를 이용한다. 카메라의 내부 파라미터 취득을 위한 카메라 교정은 Zhang의 방법을 이용하였다[17]. 그림 1은 카메라 추적 과정 및 결과의 예를 보여주고 있다. 카메라 추적의 초기에는 실제 카메라에 대한 자세(pose)정보가 주어져 있지 않기 때문에 카메라의 위치 및 방향에 대한 자세정보 초기화 과정이 필요하다. 카메라 자세값 초기화를 위해서 그림에서 보이는 바와 같은 같은 검은색 사각형 도형의 네 개의 모서리 좌표를 이용했으며 모서리 좌표 추적을 위해서 NCC(normalized cross correlation) 기반의 템플릿 매칭을 수행하였다. 카메라 자세정보 추정 및 각 입자의 UKF 초기화가 완료되면 매 프레임마다 입자 필터의 각 입자에 할당된 UKF를 이용한 카메라 추적이 순차적으로 수행된다. 추적 결과에 대한 직관적인 결과를 제공하기 위해서 OpenGL에서 생성한 가상의 모델을 카메라 행렬을 이용하여 2차원 실사 영상과 합성하였다. 그림 1에서 좌측 상단의 화면은 카메라 사영행렬을 이용하여 그래픽 모델을 합성한 영상을 보여주고 있으며 좌측 하단의 영상은 특징점 추적을 위해 영상 내에서 템플릿 매칭을 수행하는 과정을 보인다. 그리고 우측 상단의 영상은 기준좌표계 시점의 실제 환경 정보를 실시간으로 재구성한 것을 보이고 있으며 3차원 공간 상의 카메라의 궤적과 카메라 위치, 추적에 사용되는 특징점을 보이고 있다. 우측 하단의 영상은 실제로 템플릿 매칭에 사용되는 탬플릿들의 추적 결과를 보여주고 있다.

JBJTBH_2023_v16n5_315_f0001.png 이미지

그림 1. 카메라 추적 과정의 예제 영상

Fig. 1. An example of the camera tracking process

4.1 안정된 상태에서의 카메라 추적 성능

그림 2에 제안된 방법을 이용한 카메라 추적 결과를 보인다. 그림 2는 각각 카메라 추적 과정의 500번째, 593번째, 647번째, 965번째 프레임 영상을 보여준다. 그림 2로부터 비교적 큰 시점 변화가 발생함에도 불구하고 심각한 오차 없이 카메라 자세 추적을 수행하는 것을 확인할 수 있으며, 특히 순간적인 카메라의 급격한 움직임 및 화면 떨림으로 인한 흐려짐(motion blur) 등의 문제가 발생하는 상황에도 추적에 실패하지 않고 안정된 추적을 수행하는 것을 확인할 수 있다.

JBJTBH_2023_v16n5_315_f0002.png 이미지

그림 2. 안정된 상태에서의 카메라 추적 과정

Fig. 2. Camera tracking in the normal situation

4.2 급격한 카메라 흔들림에 대한 추적

그림 3에 카메라의 급격한 흔들림이 발생한 상황에서의 카메라 추적 결과를 보인다. 그림에서 상당히 불안정한 카메라 운동이 발생한 경우에도 안정적인 카메라 추적이 가능하다는 것을 볼 수 있으며, 흔들림이 제거되면 짧은 시간 안에 정상상태로 복귀하는 것을 확인할 수 있다. 하지만 그림 3과 같이 카메라의 급격한 흔들림 현상이 발생하면 영상의 흐려짐(blur) 현상 때문에 템플릿 매칭 및 카메라 자세 계산에 막대한 오차가 발생한다. 이러한 경우 UKF의 시그마포인트의 분포와 상태벡터의 공분산이 급격히 증가하며, UKF의 추적 상태 또한 불안정하게 된다. 그림 3의 오른쪽 영상에 기준좌표계 시점 영상을 보이며 카메라 자세 추정 오차로 인하여 카메라의 궤적을 나타내는 노란색 곡선이 매우 불규칙적으로 생성되는 것을 확인할수 있다. 한편, 안정된 상태로 복구된 경우에는 카메라 상태 추정이 정상적으로 수행되며, 따라서 카메라 추적 또한 정상적으로 이루어진다는 것을 확인할 수 있다.

JBJTBH_2023_v16n5_315_f0003.png 이미지

그림 3. 급격한 카메라 흔들림에 대한 추적 과정

Fig. 3. Tracking for the abrupt camera shaking

4.3 장면의 가려짐 및 특징점 검출오류에 대한 추적 성능

그림 4과 그림 5는 카메라가 가려지는 경우 일부 특징점 검출이 불가능하게 되는 상황에서의 카메라 추적 성능을 보인다. 영상의 가려짐이 발생하는 경우 영상으로부터의 기하학적 정보 취득이 불가능해지며 UKF의 상태벡터 계산시 막대한 오차가 발생한다. 장면이 가려짐으로 인해서 일부 특징점의 검출이 불가능한 상태에서도 카메라 추적에 실패하지 않으며 가려짐이 해소된 경우 시스템이 안정상태로 돌아오면 카메라 궤적 추정 과정이 정상적인 상태로 복구되는 것을 확인할 수 있다. 통상적인 카메라 추적 기법은 카메라의 움직임, 사용자의 동작 등에 의해서 일부 특징점이 유실되는 현상이 발생할 경우 추적 오차 때문에 추적에 실패하는 문제가 있다. 하지만 그림 4, 그림 5에서 보이는 바와 같이 제안된 방법에서는 비록 제한된 수준이기는 하지만 카메라 상태 추정이 수행되고 있음을 볼 수 있다. 카메라 행렬은 3x4의 크기를 가지며 따라서 스케일변수를 제외하면 총 11개의 원소를 갖는다. 따라서 카메라 추적을 위해서는 최소한 4개의 특징점이 필요하다. 하지만 제안된 시스템의 경우 그림 5에 보이는 바와 같이 특징점이 1개만 검출 되는 상황에서도 카메라 추적에 완전히 실패하지 않고 카메라 상태를 지속적으로 추정하고 있으며 특징점 검출이 정상적으로 가능하게 되면 빠르게 정상 상태로 복귀하는 것을 확인할수 있다. 그림 6은 일반적인 평면 호모그래피(planar homography)를 이용한 카메라 추적의 예를 보인다[16]. 평면 호모그래피만을 이용한 카메라 추적에서는 급격한 흔들림이 발생하는 경우 앞의 결과와는 달리 급격히 추적에 실패하게 되는 것을 알 수 있다.

JBJTBH_2023_v16n5_315_f0004.png 이미지

그림 4. 카메라 장면 가려짐에 대한 추적 과정

Fig. 4. Camera tracking for the scene oclusion

JBJTBH_2023_v16n5_315_f0005.png 이미지

그림 5. 특징점 손실에 대한 추적 과정

Fig. 5. Camera tracking for the feature loss

JBJTBH_2023_v16n5_315_f0006.png 이미지

그림 6. 평면 호모그래피를 이용한 카메라 추적

Fig. 6. Camera tracking using the planar homography

4.4 입자 수에 따른 카메라 추적 시간 및 카메라 추적 오차

그림 7은 입자필터의 입자 수에 대한 카메라 추적 속도에 대한 그래프이다. 그래프에서 알수 있듯이 입자의 수가 35개 이하일 경우 프레임 당 소요 시간이 약 25ms 이하이며 것을 알 수 있으며 이로부터 실시간 처리에 문제가 없음을 확인할 수 있다. 그림 8 및 표 1은 입자필터의 입자 수가 10개인 경우 4개의 특징점들의 재사영 오차 (reproduction error)를 보여준다[16]. 카메라 추적 과정에서 모든 특징점의 재사영 오차가 최대 5픽셀 내외인 것을 확인할 수 있으며 영상의 해상도가 800×600 픽셀인 점을 감안할 때 재사영 오차 값은 크지 않은 것으로 판단된다. 그림 9는 실시간으로 추정된 카메라의 x, y, z 좌표값을 보여준다. 그림에서 가로축은 프레임 번호이며 세로 축은 기준 좌표계 상에서 원점과의 기하학적 거리를 의미한다. 그래프에서 640~850번째 프레임 사이의 경우 그림 2에서의 급격한 카메라 흔들림으로 인한 결과를 보여주며 카메라의 흔들림 때문에 각 좌표 값이 불안정하게 진동하는 형태를 보임을 확인할 수 있다. 또한 950~1500번 프레임 사이의 그래프는 그림 3과 그림 4의 카메라 가려짐에 의한 추적 결과이며 특징점 가려짐 현상으로 인하여 다소 불안정한 추적 결과를 보여 준다는 것을 확인할 수 있다.

JBJTBH_2023_v16n5_315_f0007.png 이미지

그림 7. 입자 수에 따른 수행시간

Fig. 7. Time consumption according to the number of particles

표 1. 재사영 오차의 평균값

JBJTBH_2023_v16n5_315_t0001.png 이미지

Table 1. Averages of the reprojection errors

JBJTBH_2023_v16n5_315_f0008.png 이미지

그림 8. 특징점들의 재사영 오차

Fig. 8. Reprojection errors of the feature points

JBJTBH_2023_v16n5_315_f0009.png 이미지

그림 9. 카메라의 x, y, z축 좌표

Fig. 9. Camera corrdinates of x, y, and z

5. 결론

본 논문에서는 강건한 카메라 기하학 정보의 계산을 위한 UKF와 연동된 입자필터 기반 카메라 추적 기법을 제안했다. 제안된 방법은 기존의 방법과는 달리 부가적인 센서 없이 2차원 영상 정보만을 이용하여 카메라의 자세정보를 실시간으로 추정하는 것을 목표로 한다. 자이로스코프, 가속도센서 등의 부가적인 장비를 이용하는 경우, 막대한 배터리 소모, 프로세서의 발열로 인한 성능 저하, 복잡한 하드웨어 구성 등으로 인한 문제 등이 발생할 수 있으나, 제안된 시스템은 카메라 영상만을 이용하기 때문에 기존의 방법들이 갖는 문제점들을 갖지 않는다. 별도의 부가적인 장비가 없는 환경에서 영상기반 카메라 추적을 수행해야 하는 경우 제안된 방법을 이용하면 강건한 카메라 추적이 가능할 것으로 생각된다. 제안된 방법에서는 카메라 상태에 대한 표본 입자를 생성한 다음, 각 표본 입자와 연동된 개별적인 UKF를 이용하여 카메라 상태의 사전 확률값을 계산한다. 추정된 카메라 상태는 3D-2D 사영관계를 기반으로 계산되며, 이에 대한 카메라의 상태 정보는 UKF로 부터 추정된다. 입자필터를 통하여 각 입자의 UKF에 대한 통계를 산출한 다음 이를 이용하여 카메라 상태 벡터를 계산하고 다음 주기에서의 카메라 상태를 추정하였다. 제안된 카메라 추적 기법은 시스템의 상태 전이에서의 비선형 특성이 강한 환경 하에서도 안정적인 필터링 추적이 가능함을 실험을 통해서 보였다. 기존의 방법에 비해서 순간적인 카메라 떨림으로 인한 영상 흐려짐 현상에 의해 발생되는 불안정성 억제 측면에서 향상된 결과를 얻을 수 있었다. 또한 급격한 카메라 흔들림으로 인하여 선명한 영상을 취득하는 것이 불가능한 경우에도 카메라 추적에 실패하지 않으며 카메라가 안정된 상태로 복구된 경우에는 카메라 상태 추정이 안정적으로 수행되고 카메라 추적 또한 정상적으로 이루어진다는 것을 확인할 수 있었다. 이에 비해 기존의 평면 호모그래피만을 이용한 방법의 경우 카메라의 흔들림이 발생하면 즉시 카메라 추적에 실패하는 것을 확인하였다. 한편, 대부분의 특징점이 가려져서 영상 내에서 추적하지 못하게 되는 경우에도 카메라 추적에 실패하지 않고 카메라의 자세정보 추정을 지속할 수 있음을 보였으며 정상적으로 특징점의 추적이 가능해지면 정확한 카메라 자세 계산을 수행함을 확인할 수 있었다. 시스템 수행 시간의 경우, 35개의 입자에 대해서 영상 프레임 당 약 25ms 정도의 시간이 소요됨을 확인할 수 있었으며 이로부터 제안된 방법이 실시간 처리에 문제가 없다는 것을 확인할 수 있다.

참고문헌

  1. Google ARCore, https://developers.google.com/ar?hl=ko
  2. Apple ARKit, https://developer.apple.com/kr/augmented-reality/arkit/
  3. F. Endres, J. Hess, J. Sturm, D. Cremers and W. Burgard, "3-D Mapping With an RGB-D Camera," in IEEE Transactions on Robotics, vol. 30, no. 1, pp. 177-187, Feb. 2014. https://doi.org/10.1109/TRO.2013.2279412
  4. Q. Jin, Y. Liu, Y. Man and F. Li, "Visual SLA M with RGB-D Cameras," 2019 Chinese Control Conference(CCC), Guangzhou, China, 2019, pp. 4072-4077.
  5. D. Nister, "Preemptive RANSAC for live structure and motion estimation," Machine Vision and Applications, Vol.16, No.5, pp.321-329, 2005. https://doi.org/10.1007/s00138-005-0006-y
  6. M. Pupilli and A. Calway, "Real-time camera tracking using a particle filter," In Proceedings of the British Machine Vision Conference. (BMVC'05), pp. 43-57, Oxford, UK, Sep. 2005.
  7. 이석한, "증강현실 환경에서의 강건한 카메라 추적을 위한 실시간 입자 필터링 기법," 디지털콘텐츠학회논문지, 제11권 4호, pp.597~606, 12월, 2010년.
  8. ARToolkit, https://github.com/artoolkit/ARToolKit5
  9. Vuforia, https://developer.vuforia.com/
  10. S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, pp.96-104, MIT Press, 2008.
  11. A Chiuso, P Favaro, H Jin, and S Soatto, "Structure from motion causally integrated over time," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.24, No.4, pp.523-535, 2002. https://doi.org/10.1109/34.993559
  12. D.Simon, Optimal State Estimation, pp.433-455, John Wiley & Sons, 2006.
  13. C. Kim, R. Sakthivel and W. K. Chung, "Unscented FastSLAM: A Robust Algorithm for the Simultaneous Localization and Mapping Problem," Proceedings 2007 IEEE International Conference on Robotics and Automation, pp. 2439-2445, Rome, Italy, 2007.
  14. S. J. Julier, "The scaled unscented transformation," Proceedings of the 2002 American Control Conference, pp. 4555-4559, Vol.6, AK, USA, 2002,
  15. S. Thrun, W. Burgard, D. Fox, Probabilistic Robotics, pp.65-67, MIT Press, 2008.
  16. R .Hartely, A. Zisseman, Multiple View Geometry, Cambridge, 2003.
  17. Z. Zhang, "A Flexible New Technique for Camera Calibration and the Application," IEEE Transactions on Pattern Analysis and Machine Intelligence, pp. 1330-1334, Vol. 22, No. 11, Nov. 2000. https://doi.org/10.1109/34.888718