• 검색 결과가 없습니다.

Improvement of Plane Tracking Accuracy in AR Game Using Magnetic Field Sensor

N/A
N/A
Protected

Academic year: 2021

Share "Improvement of Plane Tracking Accuracy in AR Game Using Magnetic Field Sensor"

Copied!
12
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

VR/AR 게임

Received: Jul. 10. 2019 Revised: Oct. 18. 2019 Accepted: Oct. 20. 2019

Corresponding Author: Jong-Seung Park(Incheon National University) E-mail: [email protected]

ISSN: 1598-4540 / eISSN: 2287-8211

Ⓒ The Korea Game Society. All rights reserved. This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0), which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

자기장 센서를 사용한 AR 게임에서의 평면 추적 정확도 개선

이원준, 박종승 인천대학교 컴퓨터공학부 {broksigar, jong}@inu.ac.kr

Improvement of Plane Tracking Accuracy in AR Game Using Magnetic Field Sensor

Won-Jun Lee, Jong-Seung Park

Dept. of Computer Science and Engineering, Incheon National University

요 약

본 논문에서는 ARCore를 사용한 비전 기반 스마트폰용 AR 게임 개발을 하는데 있어 평면 추적의 정확도 개선 방법을 제안한다. ARCore에서는 SLAM과 스마트폰의 IMU를 혼합하여 사 용하는 VIO 방식이다. IMU를 사용하는데 있어 가속도계와 자이로스코프의 단점으로 인해 한번 인식된 평면을 계속하여 추적하는데 있어 오차가 발생한다. 이를 위해 기존 센서뿐만 아니라 자기장계 센서를 추가하여 자세 측정의 오차를 최소화하고 이를 평면 추적에도 활용될 수 있도 록 하는 방법을 제안한다. 제안 방법을 통해 평면 추적에 있어서 ARCore의 경우보다 스마트폰 자세 추정의 오차를 줄일 수 있는 것을 확인하였다.

ABSTRACT

In this paper, we propose an improved method of plane tracking in developing AR games for smartphones using magnetic field sensor. The previous method based on ARCore is a VIO method using a mixture of SLAM and IMU of smartphones. The disadvantages of accelerometers and gyroscopes in IMUs cause errors in tracking the plane. We propose an improved method of planar tracking by adding the magnetic field sensor as well as the existing IMU sensors. Experimental results shows that our method reduces the error of the smartphone posture estimation.

Keywords : AR Game(AR 게임), Plane Tracking(평면 추적), Mobile Game(모바일 게임)

(2)

1. 서 론

증강현실(augmented reality; AR)은 가상현실 (virtual reality; VR)과 함께 차세대 게임 환경으 로 주목받고 있다. AR은 사용자가 있는 현실과는 다른 공간을 보여주는 가상현실과는 달리 사용자가 현재 바라보는 현실에 이미지, 텍스트 등의 정보를 추가하여 제공하는 기술이다[1].

AR을 구현하기 위해서는 여러 기술이 필요한데, Billinghurst 등은 크게 세 가지로 나누어 특정 사 물을 추적하는 트래킹 기술, 현실과 가상 객체를 덧씌워 출력하는 디스플레이 기술, 사용자의 입력 혹은 가상 객체와의 상호작용 기술 등으로 구별하 였다[2].

이러한 AR 구현에 있어서 Koller 등은 세 가지 핵심 구성 요소들을 제시하였다. 첫 번째로 현실 세계와 가상 객체 간의 정확한 상호작용을 위해 현실 세계에 존재하는 객체들의 형태와 위치에 대 한 정확하고 빠른 인식이 필요하며 인식된 객체를 실시간으로 추적할 수 있어야 한다고 제안하였다 [3]. 두 번째로는 정확한 광원의 인식을 통해 가상 객체에도 현실 객체와 동일한 그림자를 만들어 낼 수 있어야 한다는 점이다. 세 번째로 제스쳐나 컨 트롤러를 등의 상호작용과 효과적인 정보 전달을 위한 데이터 시각화 기술도 필요하다고 제안하였다 [4].

비전 기반 AR은 크게 마커 기반 AR과 비마커 기반 AR 두 가지로 분류된다. 마커 기반 AR은 인 공적인 마커를 배치하여 대상을 추적하는 기술이 다. 해당 AR 기술은 QR코드나 특정 이미지와 같 은 인공적인 마커를 배치하여 해당 마커의 특징점 을 추적하여 현실 공간을 이해하여 가상공간을 증 강한다. 대표적으로 Vuforia SDK 의 경우 직접 현실의 3D 마커를 스캔하여 이를 다른 어플리케이 션에서도 사용할 수 있는 특징이 있다[5]. 비마커 기반 AR은 자연적으로 존재하는 특징점을 통해 구현하는 기술이다. 이 기술은 영상 처리를 통해 현실에 실존하는 특징점의 집합 특성을 분석하여

평면을 인식하여 증강할 영상의 기준으로 삼는다 [6].

비마커 기반의 경우 카메라를 통해 입력된 영상 을 분석하여 특징점, 에지 등을 추출하고[7] 추출 된 객체들의 특성을 분석하여 영상을 증강하거나 추출한 특징점의 패턴을 통해 벽이나 바닥과 같은 평면을 인식하여 이를 통해 가상의 공간을 형성한 다[8]. 특히 ARCore, ARKit 등에서는 영상정보의 보조를 위해 스마트폰에 내장된 센서 데이터 또한 활용한다[9]. 또한 마커 기반에 비해 구현이 어렵 다는 단점이 있으나, 인식할 수 있는 평면만 있다 면 실외, 실내를 가리지 않고 게임을 플레이 할 수 있다. 이로 인해 게임 장르에 구애받지 않는다는 장점이 있다. 대표적인 SDK로는 ARCore, ARKit 가 있다[10].

AR 게임에 있어 스마트폰은 매우 매력적인 플 랫폼이다. 이전에는 AR을 위해 깊이 기반 카메라 와 같은 특정 하드웨어를 요구하거나 성능에 대한 요구치가 높아 전용기기를 사용해야만 했다. 하지 만 스마트폰의 성능 향상과 소프트웨어의 발전으로 스마트폰으로도 충분히 AR을 경험할 수 있게 되 었다. 특히 ARCore는 안드로이드, iOS 두 환경 모두에서 사용 가능하며 앞서 말한 AR 구현에 있 어 필요한 세 가지 기능을 모두 제공하고 있다.

ARCore에서는 사용자의 자세를 추정하기 위해 VIO(Visual Inertial Odometry)를 사용한다. 이 방법은 기존에 영상에만 의존하던 VO(Visual Odometry)가 단일카메라 환경에서 가지는 단점을 보안하기 위해 개발되었다. ARCore는 이 VIO를 통해 평면을 인식하고 사용자의 자세 변화에 따라 배치된 사물이나 평면이 어떻게 그려질지 결정할 수 있다. 하지만 VIO를 위해 사용되는 IMU 센서 는 고유한 한계점을 가진다. 순간적으로 빠른 움직 임이나 사용시간이 길어진다면 IMU에서 측정하는 자세 값이 오차가 발생한다.

본 연구에서는 ARCore를 사용하여 비전 기반의

스마트폰용 AR 게임 개발 기법을 제시한다. 2장에

서는 연구 배경과 ARCore의 소개 그리고 UE4와

(3)

의 연동을 위한 ARCore Plugin에 대해 설명하고 ARCore를 사용해 개발된 기존의 게임들에 대해 알아본다. 다음으로 3장에서는 기존의 ARCore를 사용한 스마트폰의 자세 측정의 문제점과 그에 대 한 해결 방안을 제시한다. 4장에서는 제시한 방법 을 구현하여 실험한 결과를 제시하고 기존 방법과 의 비교 결과를 서술한다. 마지막으로 5장에서 결 론을 맺는다.

2. ARCore 기반의 AR 게임 개발

2.1 ARCore에서의 평면 추적

ARCore는 구글의 AR SDK로써 사용자의 스마 트폰이 현실 세계를 이해하고 AR 객체들과 상호 작용할 수 있도록 해주는 SDK이다. ARCore는 트 래킹, 환경 이해, 광원 추정 세 가지 핵심 기능으 로 이루어져 있다.

첫째로 트래킹은 현재 영상에서 특징점을 추출 하고 평면 추적 및 현재 스마트폰의 자세나 3D 좌 표상에서의 위치 등을 추적하는 기능이다.

둘째로는 환경 이해 기능은 카메라의 영상에서 벽이나 바닥, 혹은 책상 위 같은 평면을 인식하는 기능이다. 이를 통해 AR 객체를 배치하거나, 플레 이할 영역을 지정할 수 있다. 하지만 평면 인식 시 에 특징점을 기반으로 탐색을 하므로 패턴이나 특 징이 없는 매끈한 흰색 벽과 같은 환경에서는 평 면을 인식하지 못한다는 단점이 있다. 또한 [Fig.

1]과 같이 특징점 탐색에 오류가 생긴다면 추적 중 인 평면의 위치 정보가 변형될 수도 있다.

마지막으로 광원 추적 기능은 AR 객체의 명암 구현을 위해 현재 공간의 조명의 세기를 측정한다.

이를 사용해 AR 객체들의 명암을 조절하여 배치 된 AR 객체들이 주변 환경과 이질감을 최소화하 여 배치된 AR 객체가 환경에 최대한 녹아들도록 할 수 있다.

[Fig. 1] Distortion of plane recognition.

[Fig. 2] The flowchart to create ARCore session.

스마트폰 환경에서 ARCore를 사용하기 위해서 실행해야하는 준비과정의 절차가 [Fig. 2]에 있다.

먼저 사용하고자 하는 스마트폰의 카메라 중

ARCore를 사용할 수 있는 카메라의 정보를 얻는

다. 사용 가능한 카메라가 있다면 해당 스마트폰에

ARCore가 설치되었는지 확인한다. 여기서 만약

ARCore가 설치되지 않았다면 ARCore의 설치를

진행한다. ARCore의 실행에 문제가 없다면

ARCore에 사용할 카메라를 설정한다. 다음으로

ARCore의 사용 환경을 설정한다. 사용 환경으로

는 안면인식 기능인 AugmentedFace 기능과 마커

(4)

기반인 AugmentedImage 기능 그리고 일반 기능 인 비마커 기반이 있다. 다음으로 선택한 카메라와 ARCore의 사용 환경을 인자로 ARSession을 생성 한다. 이 세션에서 카메라 영상 처리, 합성, 영상 추적 등을 수행하게 되는데 한 번에 한 개만의 세 션을 활성화할 수 있다.

2.2 UE4에서의 AR 게임

ARCore만으로도 AR을 구현할 수 있지만 게임 엔진을 같이 사용하여 게임 사운드 삽입, 특수효과, 다양한 게임 로직 등 게임 구현에 필요한 저작 기 능을 사용할 수 있다. 이를 위해 ARCore에서 인 식한 공간 좌표 정보를 게임엔진에 전달하여 처리 한다면 개발자가 3D 객체를 그리기 위한 별도의 작업이 필요하지 않다[11].

스마트폰에서 카메라를 통해 얻은 프레임 정보 와 현재 센서 정보를 ARCore로 전달한다.

ARCore에서는 프레임 정보를 통해 SLAM을 수행 하고 이를 통해 평면 추적과 기기의 자세 정보를 획득한다. 또한 센서 정보를 통해 dead reckoning 을 계산하여 기기의 자세를 측정한다. 여기서 자세 (pose)는 기기의 현재 x, y, z 좌표에 대한 위치정 보과 roll, pitch, yaw와 같은 회전 정보를 말한다.

스마트폰에서의 각 축에 대한 방향은 [Fig. 3]과 같다. 각각 SLAM과 dead reckoning을 통해 얻은 자세 정보에 VIO를 사용하여 기기의 자세를 결정 한다. 또한 ARCore의 SLAM 수행을 통해 얻은 탐색된 평면들의 정보는 Unreal Engine으로 전달 되어 가상공간을 형성하고 이 공간에 AR 객체를 배치한다. 마지막으로 ARCore를 통해 얻은 pose 정보를 사용하여 가상공간에 배치된 AR 객체들이 현재 자세에서 어떻게 보일지 렌더링한다. 이를 스 마트폰에 디스플레이하는 것으로 한 프레임에 대한 처리를 마친다. 위의 과정을 도식화하면 [Fig. 4]와 같다.

[Fig. 3] Coordinate axes of smartphone pose.

[Fig. 4] Overall system diagram.

2.3 AR 게임 개발 사례

ARCore에서 비마커 기반 AR을 사용할 경우 영 상이 차단되었거나, 혹은 급격한 움직임으로 인해 인식한 평면 정보를 잃고 배치된 AR 객체의 연속성 또한 상실할 수 있다. 급격한 화면의 흔들림이나 손 가락으로 카메라를 가리는 등의 상황에서 발생한다.

특히 화면이 흔들리는 경우 IMU 센서와 영상 데이 터를 사용한 각도 추정 모두 오차율이 높아진다.

이러한 문제를 해결하기 위해 기존 센서 외에

GPS, RFID, Wifi, Bluetooth 등 외부 정보를 사

용해 위치를 추정하고자 하는 연구들이 진행되었

다. 특히 게임에 있어 GPS 정보를 사용한 포켓몬

(5)

GO가 대표적이다. 하지만 실외에서의 사용에는 적 합하지만 GPS의 오차 때문에 실내에서는 사용이 부적합하다[12, 13].

[Fig. 5] Beer pong game.

그 외에도 ARCore를 사용한 다양한 AR 게임 들이 개발되었다. 이 중 하나인 Beer Pong 게임 플레이 스크린샷이 [Fig. 5]에 있다. [Fig. 5]의 좌 측은 플레이 시작시의 종이컵의 배치이고 우측은 스마트폰의 회전 및 수직이동 후의 결과이다. 자세 측정에 있어 오차가 발생하기 때문에 추적중인 평 면의 위치에 대한 일관성이 유지되지 않아 배치된 객체 또한 위치가 변경된 것을 알 수 있다.

3. 개선된 평면 자세 추적 기법

3.1 ARCore 평면 자세 추적의 문제점

ARCore는 카메라의 시각적 정보와 디바이스의 관성을 사용하여 실시간으로 현재의 카메라의 위치 와 각도를 측정한다[15]. 이 기술은 시각적 관성 거리 측정(Visual Inertial Odometry; VIO)라 하 는데 기존 VO(Visual Odometry)에 스마트폰에 내장된 IMU(Inertial Measurement Unit)를 추가 로 사용한 것이다.

기존에 사용되던 VO로는 스마트폰과 같은 단일 카메라 환경에서는 각 방향 (x, y, z)에 대해 움직

인 정도나, 특정 사물의 크기를 측정하더라도 수치 는 알 수 있지만, 단위는 알 수 없다. 하지만 Nutzi 등[14]이 연구한 바와 같이 기존에 영상정보 에만 의존하던 방식에 IMU의 정보를 활용하도록 하여 단위에 대한 정보를 획득하는 방법을 제안하 였다. 그 결과로 단일 카메라를 사용하는 경우에도 IMU를 사용한다면 해당 수치가 미터 단위인지 킬 로미터인지 알 수 있게 되었다.

IMU는 가속도계와 자이로스코프로 구성되어 있 다. 가속도계의 경우 각 축에 가해지는 중력 가속 도를 측정하여 스마트폰의 각도를 계산한다. 자이 로스코프의 경우 각 세 방향에 대한 회전 속도를 얻을 수 있는데, 이 회전 속도를 적분하여 현재 스 마트폰의 각도에 대한 정보를 얻을 수 있다.

위와 같이 IMU를 구성하는 두 가지 센서 모두 회전각을 구할 수 있다. 하지만 센서의 특성에 따 라 발생하는 오차를 보정할 필요성이 있다. 가속도 계의 경우 움직임이 발생한 직후에는 중력 가속도 외의 힘 때문에 노이즈가 발생한다. 하지만 발생 시간으로부터 시간이 지나면 중력 가속도만이 남기 때문에 측정값이 안정된다. 반면 자이로스코프의 경우 움직임이 발생할 때마다 적분 오차가 누적되 기 때문에 사용시간이 오래될수록 측정값의 오차가 심해진다[15]. 관련된 연구로 가속도계의 노이즈와 자이로스코프의 적분 오차를 해결하기 위해 상보필 터를 사용하여 해결하기 위한 연구가 진행 되었다 [16]. 또한 센서 정보를 사용해 위치, 방위각, VIO 를 사용하여 사용자의 현재 위치를 특정하는 연구 도 진행되었다[17].

일반적으로 상보필터는 식 (1)과 같이 표현된다.

여기서 rot는 회전각이며 f는 현재의 프레임 번호이 다. 다음으로 G는 자이로스코프의 센서 값, A는 가 속도계의 센서 값을 말한다. W

A

와 W

G

는 가중치로 써 각각 가속도계, 자이로스코프에 대한 가중치를 뜻한다. 또한 W

G

와 W

A

의 합은 1이여만 한다.



  

×  

 

   ×    

×   (1)

 

(6)

VIO의 작동 방식은 가속도계와 자이로스코프를 통해 dead reckoning을 계산하여 측정한 자세 측 정값과 시각 기반으로 획득한 측정값을 비교하여 두 데이터 중 어떤 데이터가 실제 값에 더 맞을지 계산한다. 이 과정에서 칼만 필터(Kalman filter)를 사용해 어떤 데이터를 더 신뢰성 있는지 판단하고 더 높은 신뢰성을 보이는 데이터를 스마트폰의 자 세로 선택한다. 이와 같이 스마트폰의 자세를 추정 하는 데 있어 여러 가지 방법들이 제안되고 개발 되었다. 하지만 기존 방법으로는 두 센서의 한계 때문에 자세의 추적에 오차가 발생한다.

3.2 평면 자세 추적의 개선

제안 방법은 평면 자세 추적의 오차 문제의 해 결을 위해 자기장계를 사용할 것이다. 가속도계와 달리 급격한 변화에도 노이즈가 발생하지 않으며 자이로스코프와 같이 적분을 하지 않아도 회전 값 을 구할 수 있기 때문에 적분오차로 인한 드리프 트 현상도 적게 발생한다.

[Fig. 6] Spherical coordinate system

자기장의 총 세기를 M

t

라고 하고 각 축에 대 한 세기를 M

x

, M

y

, M

z

라고 했을 때 M

t

는 식 (2) 로 표현된다.



 

  

  

(2)

위의 식은 구면에서의 직교좌표의 표현식과 동 일하다. 따라서 자기장의 세기 M

x

, M

y

, M

z

를 구 면에서의 직교 좌표 (M

x

, M

y

, M

z

)로 본다면 이를 사용해 [Fig. 6]와 같은 환경에서 각 θ Φ 를 구 할 수 있다.

기존의 θ Φ 를 구하는 식은 식 (3)과 같다. 하 지만 스마트폰을 사용할 때의 방향에 따라 축을 변환해야 하기 때문에 식 (4)와 같이 바꾸어 사용 한다.

  atan  

,

  atan 

 

 

(3)

  atan  

,

  atan 

 

 

(4)

다음으로 위의 단계에서 획득한 회전각을 [Fig.

6]과 같이 ARCore에서 VIO를 통해 획득한 회전 각에 적용하여 보정한다. 여기서 보정을 위해서는 각 센서에 대한 가중치 W

G

, W

A

, W

M

을 구해야 한다. 센서의 가중치를 구하는 식은 식 (4~6)과 같 다. 여기서 W

G

, W

A

, W

M

은 각각 자이로, 가속도 계, 자기장계의 오차율을 말한다. 식은 가장 오차 율이 높은 항목을 가장 적게 반영하고, 오차율이 가장 낮은 항목의 가중치가 높게 되도록 설계하였 다. 회전각은 식 (7)과 같이 계산된다.

 



 

 

 

(4)

 

 



 

 

 

 

 

(5)

 



 

 

 

(6)

 



 

×  

  

  × 

 

×   

× 

(7)

제안한 자세 추정 방식의 알고리즘은 [Fig. 7]과

같다. 입력으로는 현재 영상 I

f

과 이전 프레임 영

상 I

f-1

, 현재 가속도계의 센서 값 A, 자이로센서

(7)

값 G를 입력으로 가진다. 출력으로는 현재의 위치 정보 P

f

를 출력한다. 여기서 P

f

는 프레임 f 에서 의 자세를 뜻한다. 먼저 이전 프레임까지의 정보를 입력으로 PredictKalmanFilter 함수를 통해 현재 프레임의 위치정보를 추정하여 칼만 필터의 자세 예상값 P

k

를 얻는다. 다음으로 현재 입력 영상 I

f

를 인자로 SLAM을 계산하여 영상에 기반을 둔 위치정보 P

fv

를 획득하고 이를 P

k

와 비교하여 P

fv

의 오차율 E

fv

를 얻는다. 다음으로 가속도계 데 이터 A와 자이로스코프 데이터 G를 사용해 IMU 에 기반을 둔 위치 데이터 P

fi

를 얻는다. 이 데이터 또한 P

k

와 비교하여 오차율 E

fi

를 계산한다. 다음 으로 영상 데이터의 오차율과 센서 데이터의 오차 율을 비교하여 오차율이 적은 데이터를 현재의 위 치정보 P

c

로 결정한다. 다음으로 자기장계 센서 정 보 M과 가중치 W

M

을 이용하여 P

c

값을 보정한 결과가 계산되어 P

f

로 주어진다.

Algorithm 1. Pose compensation Input I

f

, A, G

Begin

P

k

← PredictKalmanFilter() P

fv

← ComputeSLAM(I

f

) E

fv

← GetErrorRate(P

fv

, P

k

) P

fi

← EstimatePose(A, G) E

fi

← GetErrorRate(P

fi

, P

k

) if ( P

fi

> P

fv

)

P

c

← P

fi

else P

c

← P

fv

P

f

← (W

G

+ W

A

) * P

c

+ W

M

* M End

[Fig. 7] Proposed algorithm of pose compensation

4. 실험 결과

실험 환경으로 스마트폰 기반의 AR 플랫폼을 사용하였다. 다른 HMD형 AR 플랫폼의 경우 일반 사용자가 부담하기에는 고가이며 대중적인 보급이 이루어지지 않았다. 스마트폰의 경우 높은 보급률

과 성능의 향상으로 인해 특정 하드웨어 사양에 종속적이지 않으면서 높은 접근성을 가지고 있다.

본 논문에서 개발할 AR 게임은 책상 혹은 바닥 에서 즐길 수 있는 탑 뷰 슈팅 게임이며 캐릭터를 조작하여 적으로 등장하는 몬스터의 공격을 피하고 반격하며 대전하는 게임플레이로 진행된다. 게임 플레이 환경은 [Fig. 8]과 같이 바닥이나 책상 위 와 같은 수평 평면을 대상으로 한다.

[Fig. 8] Plane recognition in video frames from a live camera feed.

실험을 위해서 먼저 -90~90도의 범위에서 무작

위로 23개의 숫자를 선정하고 이를 안드로이드 스

튜디오에서 제공하는 에뮬레이터에 입력하여 스마

트폰의 pitch 값을 앞서 선택한 23개의 각도로 회

전하도록 했다. 자기장 수치 또한 운동장과 같이

주변에 자기장을 교란하는 요소가 없다고 가정하였

다. [Fig. 9]는 센서값 측정을 위해 사용된 참값을

보여주는 그래프이다. x축은 시간 흐름에 따른 프

레임 번호에 해당하며 y축은 스마트폰 기기의

pitch값을 의미한다. [Fig. 10]은 시뮬레이션 환경

에서 측정된 센서값을 보여준다. 초록색은 자이로

센서, 파란색은 가속도계 센서, 빨간색은 자기장계

센서이다. 가속도계의 경우 자이로스코프에 비해

정확도는 높지만 반응속도가 비교적 느리다. 반면

자이로스코프의 경우 가속도계에 비해 반응 속도는

(8)

비교적 빠르지만 드리프트 현상으로 인해 정확도가 비교적 떨어진다.

[Fig. 9] Ground truth of roll and pitch angles

[Fig. 10] Measurements of three sensors

제안 방법을 통한 자세 측정이 얼마나 향상되었 는지 측정하였다. 이전에서 설명한 실험 환경에서 회전을 주었을 때 제안 방법으로 추정한 roll, pitch 값과 ARCore를 통해 얻은 roll, pitch 값을 비교하여 roll, pitch의 정확도를 비교하였다.

ARCore에서는 회전각을 쿼터니온으로 반환하는데 이를 오일러 각으로 변환하기 위해 roll 값은 식 (8)을 사용하였고 pitch 값은 식 (9)를 사용하여 계산하였다. 여기서 Q

x

, Q

y

, Q

z

, Q

w

는 각각 쿼터니 온의 x, y, z, w 이다.

   atan × 

× 

  × 

× 

   × 

× 

  × 

× 

 (8)

   atan × 

× 

  × 

× 

   × 

× 

  × 

× 

 (9)

위의 과정을 통해서 ARCore를 통해 얻은 회전 각과 본 논문에서 제안하는 방법을 통해 얻은 회

전각을 비교하였다. 각각 Pitch와 Roll에 대해서만 수행하였다. 스마트폰에서 Yaw값은 화면의 회전이 기 때문에 측정에서 제외하였다. 또한 스마트폰을 회전시킬 때 실제 값은 선형적으로 변화한다고 가 정하였다.

[Fig. 11] Comparison of pitch measurement

[Fig. 12] Error rate of the estimated pitch value

Pitch에 대한 측정 결과가 [Fig. 11]에 있다. 가

로축은 시간에 따른 프레임 번호이고 세로축은 회

전 각도이다. 제안 방법의 측정값이 ARCore에서

의 측정값보다 Ground Truth에 더 근접함을 알

수 있다. 오차의 정도가 [Fig. 12]에 있다. 가로축

은 동일하지만 세로축은 Ground Truth와의 오차

에 해당한다. Roll에 대한 측정 결과가 [Fig. 13]와

[Fig. 14]에 있다. Roll에 대해서도 Pitch에서와 유

사한 정확도 향상을 보여주고 있다.

(9)

[Fig. 13] Comparison of roll measurement

[Fig. 14] Error rate of the estimated roll value

일정 시간 동안의 평균 오차를 계산한 결과가 [Table 1]에 있다. [Table 1]에서는 모든 오차를 더해 측정 시간 값으로 나누었을 때의 평균을 보 여준다. Pitch의 경우, ARCore의 각도의 평균 오 차는 약 18도지만 제안 방법의 평균 오차는 약 6.25도로 ARCore에 비해 34.9%로 낮은 수치를 보 여준다. Roll의 경우도 Pitch 값과 유사한 오차 수 준을 보여준다. ARCore의 오차는 평균 약 15.13도 이며 제안방법의 오차는 평균 약 5.892도로 ARCore에 비해 38.9% 정도의 오차를 보인다.

Method Pitch Roll

ARCore-based 17.97992 15.12979

Proposed 6.249027 5.89299

[Table 1] Comparison of accuracy

실제로 AR 게임을 구현하고 실제 환경에서도 실험을 수행하였다. 구현을 위해서 사용된 게임 엔 진은 UE4 버전 4.21이고, ARCore는 버전 1.5이

사용되었다. 타깃 SDK와 최소 SDK의 버전은 27 로 설정하였고 OpenGL은 3.1 이상을 지원하도록 하였다. 테스트 환경은 갤럭시 S8 스마트폰에서 진 행되었다. [Fig. 15]는 인식된 평면상에 가상 객체 들이 배치된 게임 스크린샷을 보여주고 있다. [Fig.

16]는 카메라 움직임에 따라 평면 인식이 안정적으 로 유지되는 모습을 보여주고 있다.

[Fig. 15] Screen shots of object placement

[Fig. 16] Screen shots of AR game play with plane tracking for moving camera

Beer Pong 게임과 같은 이전 방법에서는 플레

이어가 자세를 변경할 때 자세 추적의 오차 때문

에 인식한 평면과 배치된 객체들이 초기와 달라지

는 문제가 있었다. 하지만 본 논문에서의 제안 방

법을 통해 측정의 오차를 최소화 하여 떨림의 정

도나 초기와 위치가 달라지는 정도를 줄일 수 있

음을 확인했다.

(10)

5. 결 론

본 논문에서는 IMU와 SLAM을 사용한 스마트 폰의 자세 추정을 개선한 방법을 제안하였다. 기존 에 사용하는 센서에 추가로 자기장계를 사용하여 스마트폰의 회전각 pitch과 roll을 연산하여 평면 추적에 활용할 수 있는 방법을 제안하였다. 결과적 으로 ARCore만을 사용하는 것에 비해 pitch와 roll의 측정에 있어 각각 34.9%, 38.9%의 성능 향 상을 보였다. 이를 통해 사용 환경에 있어 자기장 에 영향을 미치는 요소가 없다는 제약이 있지만 정확성을 향상시켜 평면 추적이 끊기거나 추적중인 평면의 위치정보가 초기화되는 문제를 완화시킬 수 있음을 확인하였다.

또한 제안 방법을 적용해 ARCore와 UE4를 사 용하여 비마커 기반의 AR 게임을 구현하였다.

ARCore에서 추적한 평면의 정보를 통해 UE4에서 가상공간을 생성하고 획득한 평면 정보에 대해 객 체를 배치하고 이 배치된 객체들을 Anchor를 이 용하여 스마트폰이 움직이거나 회전하더라도 원근 감과 입체감을 체감할 수 있도록 하였다.

하지만 자기장이 안정되어야 한다는 조건 때문 에 사용 환경에 있어 장소의 제약이 있다는 문제 점과 여전히 6도 정도의 오차가 존재한다. 향후 연 구로 자이로스코프의 적분 드리프트 현상 완화와 가속도계의 동작 발생 시 노이즈를 최소화하는 방 법에 대한 추가 연구가 필요하다.

ACKNOWLEDGMENTS

This work was supported by the National Research Foundation of Korea(NRF) grant funded by the Korea government(MSIT) (No.

NRF-2019R1F1A1060828).

REFERENCES

[1] M. Billinghurst, A. Clark, and G. Lee. “A survey of augmented reality." Foundations and Trends in Human–Computer Interaction, vol. 8, no. 2-3, pp. 73-272, 2015.

[2] F. Zhou, H. B.-L. Duh, M. Billinghurst,

“Trends in augmented reality tracking, interaction and display: A review of ten years of ISMAR", Proceedings of the 7th IEEE/ACM international symposium on mixed and augmented reality, pp. 193-202, 2008.

[3] E. Gülch, "Investigations on Google Tango development kit for personal indoor mapping", AGILE 2016, 2016.

[4] D. Koller, G. Klinker, E. Rose, D. Breen, R.

Whitaker, M. Tuceryan, “Real-time vision-based camera tracking for augmented reality applications”, VRST, vol. 97. 1997.

[5] J. Kim, H. Lee, “Development Trends of Mobile Augmented Reality Game Platform and User Interface”, Journal of Korea Game Society, vol. 17, no. 6, pp.7-17, 2017.

[6] R. S. Patkar, P. Singh, S. V. Birje. “Marker based augmented reality using Android OS", International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 3, pp. 64-69, 2013.

[7] I. Moon, J. Yoon. "The Study on Marker-less Tracking Algorithm Performance based on Mobile Augmented Reality", The Journal of Korea Navigation Institute, vol. 16, no. 6, pp. 1032-1037, 2012.

[8] D. Wagner, G. Reitmayr, A. Mulloni, T.

Drummond and D. Schmalstieg, “Real-Time Detection and Tracking for Augmented Reality on Mobile Phones", IEEE Transactions on Visualization and Computer Graphics, vol. 16, no. 3, pp. 355-368, 2010.

[9] J. Kim, S. Lee, “Sensor Information Filter for Enhancing the Indoor Pedestrian Localization Accuracy”, The Journal of Korea Robotics Society, vol. 7, no. 4, pp. 276–283, 2012.

[10] Y. Chang, J. Lim, J. Kim, “VR/AR Industry

Trends”, The Journal of The Korean

Institute of Communication Sciences, vol. 36,

(11)

no. 1, pp.35-41, 2018.

[11] H. Kim, T. Park, “Technology trends of VR and AR and Implementation cases on game engine”, The Journal of The Korean Institute of Communication Sciences, vol. 33, no. 12, pp. 56-62, 2016.

[12] S. Kim, Y. Kim, J. Yoon, E. Kim, “Indoor positioning system using geomagnetic anomalies for smartphones”, 2012 International Conference on Indoor Positioning and Indoor Navigation (IPIN), pp. 1-5, 2012.

[13] C. Barthold, K. P. Subbu, R. Dantu,

“Evaluation of gyroscope-embedded mobile phones", 2011 IEEE International Conference on Systems, Man, and Cybernetics, Anchorage, pp. 1632-1638, 2011.

[14] G. Nutzi, S. Weiss, D. Scaramuzza, R.

Siegwart, “Fusion of IMU and Vision for Absolute Scale Estimation in Monocular SLAM”, Journal of Intelligent & Robotic Systems, pp.287-299, 2011.

[15] J. Kim, S. Lee, “Estimation of the User’s Location/Posture for Mobile Augmented Reality”, Journal of Institute of Control Robotics and Systems, vol. 18, no. 11, pp.1011-1017, 2012.

[16] H. Min, J. Yoon, “Design of Complementary Filter using Least Suare Method”, Journal of Institute of Control Robotics and Systems, pp.125-130, 2011.

[17] H. Kim, J. Chung, J. Cheon, I. Lee, “Positioning of a Mobile Device for Development of Cadastral Information Services Based on Augmented Reality”, Proc. Korean Society for Geospatial Information Science, pp. 53-54, 2019.

이 원 준 (Lee, Won-Jun)

약 력 : 2013-2017 연세대학교 컴퓨터공학과(공학사) 2017-현재 인천대학교 컴퓨터공학과(석사과정) 관심분야 : 게임개발, 게임엔진, AR/VR, 게임인공지능

박 종 승 (Park, Jong-Seung)

약 력 : 1988-1992년 경북대학교 전자계산학과(이학사)

1992-1994년 POSTECH 컴퓨터공학과(공학석사)

1994-1999년 POSTECH 컴퓨터공학과(공학박사)

2004년-현재 인천대학교 컴퓨터공학부 교수

관심분야 : 게임제작, 게임프로그래밍, 증강현실

(12)

참조

관련 문서

"The Principle of Separating Economics from Politics, and Prospects for Improvement in North-South Relations." East Asian Review.. The Korean Journal

Messerschmitt, "Simulation of Multipath Impulse Response for Indoor Wireless Optical Channels, IEEE Journal on Selected Areas in Communications, Vol. Kahn, "Angle

"Brazilian test: stress field and tensile strength of anisotropic rocks using an analytical solution." International Journal of Rock Mechanics and Mining

"Optimal Acoustic Search Path Planning Based on Genetic Algorithm in Continuous Path System," OCEANS'2006 IEEE Asia Pacific-Singapore, pp..

This study, therefore, suggests that cooperative art activity based on collage can be used in the child education field for the improvement of

“Evaluation of R&D investments in wind power in Korea using real option.” Renewable and Sustainable Energy Reviews. "Real Option Valuation of a Wind Power Project Based

Owens, "The structural coloration of textile materials using self-assembled silica nanoparticles," Journal of Nanoparticles Research, vol.. Yang,

Kikuchi, "Solutions to shape and topology eigenvalue optimization problems using a homogenization method", International Journal for Numerical Methods in