DOI QR코드

DOI QR Code

Distortion Calibration and FOV Adjustment in Video See-through AR using Mobile Phones

모바일 폰을 사용한 비디오 투과식 증강현실에서의 왜곡 보정과 시야각 조정

  • ;
  • 황재인 (과학기술연합대학원대학교 HCI 및 로보틱스)
  • Received : 2015.11.16
  • Accepted : 2016.01.21
  • Published : 2016.01.30

Abstract

In this paper, we present a distortion correction for wearable Augmented Reality (AR) on mobile phones. Head Mounted Display (HMD) using mobile phones, such as Samsung Gear VR or Google's cardboard, introduces lens distortion of the rendered image to user. Especially, in case of AR the distortion is more complicated due to the duplicated optical systems from mobile phone's camera and HMD's lens. Furthermore, such distortions generate mismatches of the visual cognition or perception of the user. In a natural way, we can assume that transparent wearable displays are the ultimate visual system which generates the least misperception. Therefore, the image from the mobile phone must be corrected to cancel this distortion to make transparent-like AR display with mobile phone based HMD. We developed a transparent-like display in the mobile wearable AR environment focusing on two issues: pincushion distortion and field-of view. We implemented our technique and evaluated their performance.

이 논문에서는 스마트폰을 사용한 비디오 투과식 증강현실에서 왜곡 보정과 시야각 조정을 다룬다. 삼성 기어 VR이나 구글의 카드보드와 같은 스마트폰을 사용한 HMD(Head Mounted Display)에서는 일반적으로 렌즈로 인해서 영상이 왜곡되어 렌더링이 된다. 특히나 스마트폰을 사용한 증강현실에서는 스마트폰의 카메라와 HMD의 렌즈로 인해서 발생하는 왜곡이 합해져서 보다 복잡한 형태의 왜곡이 발생하게 된다. 이러한 왜곡은 사용자에게 시각적인 인지나 인식 기능에 부조화를 야기하게 된다. 유리와 같은 투명 디스플레이를 궁극적인 형태의 HMD라고 생각하면 최대한 이런 왜곡을 없애서 투명한 것과 같은 효과를 주어야 한다. 이 논문에서는 스마트폰 기반 비디오 투과식 증강현실 방식에서 왜곡을 보정하고 시야각을 조정하여 투명에 가까운 효과를 주는 방법을 제시한다. 논문에서 왜곡 보정 및 시야각 조정 모듈을 개발하고 이에 대한 성능을 측정하였다.

Keywords

Ⅰ. 서 론

모바일폰 기반 웨어러블 AR 디스플레이는 사용자가 이동하는 상황에서 증강된 경험을 줄 수 있다[1][2]. 한 손 추적 기술을 함께 사용하면 사용자는 증강현실에서 가상 물체와 인터랙션을 해서 객체 조작을 할 수가 있다[3]. 그러나 카메라와 렌즈에서 오는 왜곡으로 인해서 사용자에게 시각적 인지와 인식의 부조화(mismatch)가 발생하게 된다. 이러한 부조화는 사용자에게 크기 판단에 대한 오류와 업무 성능(task performance)에 손실이 발생하게 된다.

최근에 가상현실 분야에서 사용하는 광각의 HMD에서는 영상을 미리 변형(warping)을 시켜줘서 사용자가 넓은 시야각을 느낄 수 있게 해준다. 최근 인기를 끌고 있는 저가의 모바일 폰 기반 HMD들은 모바일 폰의 디스플레이를 사용하고 눈에서 가까운 거리에 두면서 광각의 렌즈를 사용해서 초점이 맞는 영상을 보여주게 된다. 그런데 이런 상황에서는 렌즈가 공간적 색상적 왜곡을 불러일으키기 때문에 영상을 미리 보정을 하고 색상의 보정 또한 이루어 져야 한다[4].

렌즈 왜곡 제거의 다른 방법은 렌즈에서 발생하는 radial 왜곡을 보정하기 위해서 각 픽섹의 위치를 이동시키는 방법으로 이미지 중앙에서부터의 거리를 변형하는 방식이다[5]. 투명한 효과를 위해서는 왜곡뿐만 아니라 시야각도 고려해서 렌즈로 인한 확대로 인한 영상의 변화를 조정해 주어야 한다. 이러한 투명유사 디스플레이에 대한 연구들은 사용자 시점 렌더링(user perspective rendering)이라고 불리며 이루어져 왔다. 이 중에서는 gradient를 이용한 연구나[6] 카메라 영상의 호모그래피 변환[7]을 이용한 연구들이 있다.

모바일 폰 카메라와 HMD 렌즈로 인해서 중첩된 광학 시스템을 다루기 위해서 본 연구에서는 간단한 수학 모델을 이용하여 초점 거리와 왜곡 값을 구해서 처리한다. 여기에서 논의되는 두 가지 문제는 HMD 렌즈와 카메라 렌즈로 발생하는 pincushion 왜곡과 시야각 조정에 관한 것이다.

 

Ⅱ. 시스템 디자인

본 논문에서 안드로이드 운영체제를 가진 스마트폰을 사용한 웨어러블 디스플레이에 양안식 디스플레이를 장착하여 사용한다.

그림. 1.모바일 폰 기반 HMD (4D Vision 디스플레이와 넥서스 5의 사용례) Fig. 1. Structure of Our System: 4D Vision Display with Nexus 5 attached

양안식 디스플레이에서는 장착된 렌즈에 의해서 확대가 발생하는데 이 왜곡의 정도로 인해서 물체가 실제보다 작거나 크게 보이게 된다. 그래서 단순히 왜곡 보정뿐만 아니라 시야각의 조정도 필요하게 된다. 그림 2에서 보이듯이 왜곡과 시야각을 조정하는 시스템을 설계하였다. 이 논문에서는 양안식 디스플레이에서 필요한 barrel distortion 교정과 시야각 조정을 다루고 있다.

그림 2.HMD에서 이루어져야 하는 전체 보정 부분인 빨간 점선 부분에서 본 논문에서는 녹색 부분인 시야각 조정과 배럴 왜곡 보정이 논해짐 Fig. 2. Whole process of correcting system is shown in red stripe box. In this paper, our system covers the green line box only

 

III. 렌즈 캘리브레이션

카메라 캘리브레이션은 카메라의 내부적인 파라미터들인 이미지 중심(image center), 초점 거리(focal length), 휘어짐 요소(skew factor), 렌즈 왜곡(lens distortion) 등과 같은 요소의 값을 찾는 과정이다. 본 논문의 경우에는 스마트 폰의 카메라와 HMD의 렌즈로 인한 초점 거리와 왜곡 값을 구하는 것이 문제가 된다. 초점 거리를 계산하여 적합한 시야각을 제시하고 렌즈 왜곡 값을 측정하여 핀쿠션(pincushion) 효과를 없애는 방향으로 이용한다. 카메라의 내부 파라미터는 다음과 같이 표현이 된다.

(u0,v0) 가 principle point의 위치가 되고 α 와 β 가 크기 팩터가 된다. 그리고 s 는 휘어짐(skewness) 요소가 된다. 휘어짐 팩터는 작기 때문에 s = 0 로 하고β 는 다음 섹션에서 수직 시야각을 계산하기 위한 초점 거리가 된다. 그리고 렌즈의 왜곡 값을 나타내는 행렬은 아래와 같이 된다.

k1 과 k2 가 radial distortion 나타내는 값이 되고 (앞으로 k-value 라고 부른다) p1 과 p2 는 탄젠셜 (tangential) 왜곡 값을 표현하게 된다. k-value 가 양의 값이면 barrel distortion이 있는 것이고 음의 값이면 pincushion distortion을 표현하고 0 이면 왜곡이 없는 상태를 의미한다.

우리 시스템은 모바일 폰의 카메라와 HMD 렌즈가 왜곡이 동시에 존재하는 시스템이라고 할 수 있다. 모바일 폰의 카메라의 경우에는 바로 직접적으로 보정을 할 수 있으나 HMD의 렌즈의 경우에는 렌즈를 보정하기 위한 환경을 만들어야 한다. 일단 렌즈 자체의 정확한 초점 거리와 왜곡 값을 구해야 한다. 그래서 HMD 렌즈의 왜곡 보정을 위해서 오른쪽 렌즈 뒤에 카메라를 두고 반대쪽에 체커보드를 두고 사진을 찍어서 보정을 하였다. 왼쪽과 오른쪽 렌즈는 같은 렌즈를 사용하기 때문에 한쪽만 사용하였다. 그래서 다음의 행렬식으로 렌즈 왜곡을 표현하였다.

여기에서

이 보정 셋업에서 두 대의 모바일 폰과 한 대의 HMD가 사용된다. 하나의 모바일 폰은 HMD에 장착이 되고 다른 하나를 사용하여 HMD 우측 렌즈 뒤에서 사진을 촬영을 한다. 같은 기종을 양쪽에 사용하여 진행하였다. HMD에 장착된 모바일 폰의 카메라는 camera1 으로 표현하고 촬영에 사용한 모바일 폰의 카메라는 camera2로 지칭한다. 전체적인 보정 절차는 다음과 같다.

camera1을 기존의 보정 방법으로 보정한다. OpenCV에서 제공하는 방법을 통해서 보정하였다.

camera1을 HMD에 연결하고 camera2를 그림 3과 같이 HMD 오른쪽 렌즈 뒤에 배치한다.

그림 3.HMD 렌즈 보정 환경: camera1이 HMD 뒤에 붙어 있고 camera2가 오른쪽 렌즈 뒤에 있음. Fig. 3. Condition for HMD's lens calibration: camera1 is attached to an HMD with camera2 is stitched behind the right lens.

체커보드 패턴을 벽에 붙이고 camera1, HMD, camera2의 순서로 오게 배치한다.

camera1과 HMD, camera2가 함께 움직이며 여러 장의 사진을 camera2로 촬영을 한다.

4번째 단계에서 촬영된 사진을 이용해서 특징점을 추출한다

(3)의 식을 이용해서 왜곡을 계산한다.

 

IV. 왜곡 보정(Correction of Distortion)

1. 모바일 폰 HMD 핀쿠션(Pincushion) 왜곡 보정

카메라 렌즈에서 발생하는 일반적인 왜곡은 radial 왜곡이다. 이 왜곡은 배럴(barrel) 혹은 핀쿠션(pincushion) 왜곡으로 나누어지는데 배럴 왜곡에서 그림의 확대는 광축(optical axis)에서 거리가 멀어질수록 감소하게 된다. 이런 효과는 이미지가 구(sphere)나 배럴에 맵핑된 효과가 된다. 핀구션 왜곡은 광축에서 멀어질수록 이미지 확대가 증가하는 방향으로 나타나게 된다. 이러한 가시적인 효과는 마치 핀쿠션과 같이 가운데로 갈수록 중심으로 향하게 되는 형태로 나타나게 된다.

모바일 HMD의 경우에는 렌즈에 의한 왜곡이 심각한 경우에는 시야각(field of view)보정을 하기 전에 카메라 영상 왜곡이나 컴퓨터 생성 영상의 왜곡을 해야 한다[9][10]. 본 논문에서는 컴퓨터 생성 영상이 카메라 영상과 합쳐져서 그려지는 증강현실이기 때문에 카메라 생성 영상의 왜곡이 이루어져야 한다.

그림 4.핀쿠션 왜곡(좌) 배럴 왜곡(우) Fig. 4. Pincushion and barrel distorted image

Radial 왜곡은 비디오 투과형 HMD에서 발생하는 고정적인 에러(static error)이다. HMD의 렌즈 종류에 따라서 다른 radial 왜곡이 발생하게 된다.

아래의 식에서 r 은 왜곡이 되지 않은 이미지의 중앙에서 부터의 거리라고 했을 때 r’ 은 실제로 관측된 거리가 된다[5]. 렌즈의 왜곡을 없애기 위한 식을 구체적으로 보면 아래 수식 (4)와 같이 된다.

왜곡은 테일러 확장(Taylor expansion)으로 근사를 할 수 있다. 우리 구현에서는 두 개의 k 값만을 가지고 광각 렌즈를 모델링하기로 한다. 모바일 폰 카메라와 HMD 렌즈를 보정하는 k 값을 찾음으로 핀쿠션 왜곡을 해소할 수가 있었다. 이를 위한 방법은 위에서 이미 설명한 바와 같다. 여기에서는 camera1 및 HMD 렌즈에서 발생하는 핀쿠션 왜곡의 정확한 값을 알아서 사용자가 HMD를 착용하고 봤을 때 아무런 왜곡이 없는 것처럼 배럴 왜곡으로 이미지를 생성해야 한다. 카메라 보정에서 얻어지는 왜곡 행렬을 사용하여 배럴 왜곡을 얻는 수식은 아래와 같다.

그림 5.모바일 폰에서 배럴 왜곡 적용 화면 Fig. 5. Rendering result in mobile phone. A virtual dinosaur (middle) is embedded within real environment

여기에서

위의 식에서 우리가 알고 싶은 것은 모바일 폰 화면에서의 발생하는 왜곡(Db)의 정확한 k 값이다. 그런데 모바일 폰의 카메라 자체에서도 왜곡이 발생하기 때문에 이 왜곡을 우리는 또 Dc 라고 부르기로 한다. Db 를 구하기 위해서 렌즈에서 오는 왜곡(Dl)과 카메라에서 오는 왜곡(Dc)의 역을 취해서 곱해주었다.

양안식에서 배럴 왜곡을 재현하기 위해서 Unity3D에서 제공하는 어안렌즈 기능을 변형한 shader를 사용하여 모바일 폰에 적용하였고 그 결과는 아래 그림과 같다.

2. 시야각 (Field of View) 조정

카메라의 시야각은 카메라 렌즈의 사양에서 알 수가 있다. 위의 그림에서처럼 스크린의 폭이 s 초점 거리가 F라고 했을 때 초점 거리인 F를 카메라 보정에서 구해서 결과적으로 FOV를 구할 수가 있다. 수직 시야각의 경우에 참조 문헌 [12]의 수식을 사용하여 구하게 된다.

그림 6.시야각 계산의 단순한 렌즈 기하 모델 Fig. 6. Simple lens model for FOV calculation

카메라의 FOV를 바꾸는 것은 아래의 그림과 같이 물체의 보이는 크기에 영향을 미치게 되는데 FOV를 줄이면 물체를 줌인해서 보는 효과가 나게 된다.

그림 7.검은 점선은 원래의 FOV를 의미하고 붉은 점선은 축소된 FOV를 의미 Fig. 7. Black stripes show original FOV, red stripes show reduced FOV

다양한 HMD들은 다양한 FOV를 가질 수가 있는데 이러한 변화에 맞게 FOV를 적용시킬 수 있도록 구현하였다. 카메라 보정에서 HMD 렌즈의 초점거리를 구하고 카메라의 초점거리를 정확히 구한 다음에 그림 8에서처럼 카메라에서의 FOV와 HMD의 FOV가 같도록 한다. 그림 3의 조건에 맞게 아래의 식을 HMD의 초점 거리를 구하기 위해서 사용한다.

그림 8.카메라의 FOV(α‘)를 구하기 위해 렌즈의 FOV(녹색)를 구함. 일 때 투명하게 보임(α‘= α) Fig. 8. To find camera FOV (α') we need to calculate lens (green color) FOV. Transparent display means α'= α

HMD의 초점 거리를 구하게 되면 FOV를 (6) 식에서 구할 수가 있게 된다. 모바일 폰의 FOV를 조정해서 줌인이나 줌아웃을 맞출 수가 있는데 아래의 세 가지 경우에 다음과 같은 조치를 하면 FOV가 맞게 된다.

가) HMD FOV > Camera FOV

최근 HMD는 광각의 FOV를 제공하는 경우가 많아서 가장 흔한 경우이다. 이 경우에는 모바일 폰의 영상의 일부를 사용하여 맞추어지게 된다. 결과적으로 HMD에서 제공하는 FOV의 일부만을 사용하게 된다. 이를 피하려면 어안 렌즈를 모바일 폰 카메라에 사용하면 된다.

나) HMD FOV = Camera FOV

이런 경우는 잘 발생하지 않지만 배럴 왜곡만 적용하면 시야각이 맞게 된다.

다) HMD FOV < Camera FOV

카메라 영상의 일부분만 잘라서 FOV를 맞추어 주게 된다.

 

V. 실험 결과

제안된 방법을 검증하기 위해서 3가지 조건으로 실험을 진행하였다. 모바일 폰을 두 가지인 Nexus 5와 Samsung Galaxy Note 4를 사용하고 HMD는 4D Vision에서 제공하는 카드보드 형태의 HMD를 사용하고 컬러 크로스 HMD, 및 삼성 기어 VR을 사용하였다.

표 13가지 종류의 HMD 에서의 k 값과 FOV 값 Table 1. k-values and FOV value in three different types of HMD

세 가지 경우에 보정한 결과는 아래의 그림들과 같다.

위의 그림 9, 10, 11에서 보인 것처럼 제안한 왜곡 보정 및 시야각 보정을 적용했을 시에는 휘어짐 왜곡도 제거되고 시야각도 모두 같게 맞추어 지는 것을 볼 수가 있다. 이러한 보정을 적용했을 시에 계산량 또한 그리 많지 않아서 62 fps 오가는 정도의 속도가 나왔다.

그림 9.4D Vision의 카드 보드 형태 HMD와 넥서스 5의 경우, (좌) 미보정시, (우) 보정 후 Fig. 9. Result for 4D Vision Display with Nexus 5: Before correction (left) and after correction (right)

그림 10.Color Cross HMD와 넥서스 5의 경우 (좌) 미보정시, (우) 보정 후 Fig. 10. Result for Samsung Gear VR with Samsung Galaxy Note 4: Before correction (left) and after correction (right)

그림 11.기어 VR 과 삼성 갤럭시 노트 4 사용의 경우, (좌) 미보정시, (우) 보정 후 Fig. 11. Result for Color Cross HMD with Nexus 5: Before correction (left) and after correction (right)

 

V. 결론 및 향후 연구

본 논문에서 핀쿠션 왜곡과 시야각 보정을 통해서 모바일 폰 기반으로 비디오 투과형 증강현실을 사용할 때 투명한 것과 같은 효과를 주는 방법을 논하였다. 향후 연구를 통해서는 사용자 테스트 및 이전 연구들과의 비교가 이루어질 예정이다[13]. 또한 향후 모바일 폰 기반 비디오 투과형 AR 디스플레이에서 맨손 인터랙션을 하기 위해서는 3차원 카메라가 추가로 필요하게 되는데 이 때 문제가 좀더 복잡해진다. 즉 3차원 카메라와 모바일 폰 카메라의 보정이 추가로 이루어 져야 한다. 이를 통해 가상의 손과 실제 손의 정확한 정합을 이루게 된다. 또한 배경의 깊이를 고려한 양안식 렌더링을 통해서 보다 시각적 인식의 향상을 이루는 것도 향후 연구에서 다루어져야 할 주제이다.

References

  1. Samsung Gear VR (2014). http://www.samsung.com/global/microsite/gearvr/gearvr_ features.html (accessed Aug., 24, 2015).
  2. Google Cardboard (2014). http://google.com/get/cardboard/ (accessed Aug., 15, 2015)
  3. R.T. Azuma, Y. Baillot, R. Behringer, S. Feiner, S. Julier, B. MacIntyre, “Recent Advances in Augmented Reality,” IEEE Computer Graphics and Applications, Vol. 21, No. 6, pp. 34-47, 2001. https://doi.org/10.1109/38.963459
  4. P. Daniel, G. Johnson, and T. Bolkart, "Improved Pre-warping for Wide Angle, Head Mounted Display," Proceeding of the 19thACM Symposium on Virtual Reality Software Technology, pp. 259-262, 2013.
  5. G. Vast, T. Perlaki, Applying and Removing Lens Distortion in Post Production, Colorfront, Ltd, 2003.
  6. D. Baricevic, T. Hollerer, P. Sen, and M. Turk, "User-Perspective Augmented Reality Magic Lens from Gradients," Proceeding of the 20th ACM Symposium on Virtual Reality Software Technology, pp. 87-96, 2014.
  7. M. Tomioka, S. Ikeda, and K. Sato, "Approximated User-Perspective Rendering in Tablet-Based Augmented Reality (ISMAR)," Proceeding of International Symposium on Mixed and Augmented Reality, pp. 21-28, 2013.
  8. Z. Y. Zhang, “A Flexible New Technique for Camera Calibration,” IEEE Transactions of Pattern Analysis and Machine Intelligence, Vol. 22, No. 11, pp. 1330-1334, 2000. https://doi.org/10.1109/34.888718
  9. M. Bajura, Camera Calibration for Video See-Through Head Mounted Display, University of North Carolina, Chapel Hill, 1993.
  10. M. Bajura, Merging Real and Virtual Environments with Video See-Through Head-Mounted Displays, Ph.D’s Dissertation of University of North Carolina, Chapel Hill, 1997.
  11. Creating Fisheye Views with the Unity3D Engine (2011). http://paulbourke.net/dome/unity3d/ (accessed Aug., 12, 2015)
  12. J.E. Melzer and K. Moffit, Head Mounted Displays, Designing for Users, McGraw-Hill Companies, Inc., 1997.
  13. D. Baricevic, C. Lee, T. Hollerer, M. Turk, and D.A. Bowman, "A Hand-held AR Magic Lens with User-Perspective Rendering," Proceeding of the International Symposium on Mixed and Augmented Reality, pp. 197-206, 2012.