DOI QR코드

DOI QR Code

High Resolution 360 degree Video Generation System using Multiple Cameras

다수의 카메라를 이용한 고해상도 360도 동영상 생성 시스템

  • Jeong, Jinwook (Dept. of Embedded Systems Engineering., Incheon National University) ;
  • Jun, Kyungkoo (Dept. of Embedded Systems Engineering., Incheon National University)
  • Received : 2016.07.28
  • Accepted : 2016.08.06
  • Published : 2016.08.30

Abstract

This paper develops a 360 degree video system using multiple off-the-shelf webcams and a set of embedded boards. Existing 360 degree cameras have shortcomings that they do not support real-time video generation since recorded videos should be copied to computers or smartphones which then provide stitching. Another shortcoming is that wide FoV(Field of View) cameras are not able to provide sufficiently high resolution. Moreover, resulting images are visually distorted bending straight lines. By employing an array of 65 degree FoV webcams, we were able to generate videos on the spot and achieve over 6K resolution with much less distortion. We describe the configuration and algorithms of the proposed system. The performance evaluation results of our early stage prototype system are presented.

Keywords

1. 서 론

최근 CP+[1], CES[2] 등의 전시회에서 다양한 IT업체들이 VR(Virtual Reality) 관련 기술들을 선보이면서 VR에 대한 관심이 급증하고 있다. 넓은 화각을 제공하는 실감영상 기술로서 CCTV, 액션캠 등의 분야에서 사용되던 파노라마 기술들[3-5]은, VR 기기에서 디스플레이 할 수 있는 360°의 현실감 있는 동영상을 제작하기 위해서도 연구되기 시작하였다.

이미 360° 동영상 촬영을 위한 전용기기[6-8]들이 상용화되기 시작했지만, 광각렌즈를 장착한 소수의 카메라로 영상을 촬영하여 정합하기 때문에 광각 렌즈 사용 시 발생하는 왜곡 현상을 피할 수 없다. 또한, 최근 모바일기기에 장착되어 출시되는 FHD(Full High-Definition), UHD(Ultra HD) 디스플레이에서 현실감 있는 VR영상 재생을 위해서는 최소 4K의 해상도가 필요한 반면, [6-8]은 적은 수의 카메라를 이용하기 때문에 고성능 카메라를 사용하더라도 고해상도 영상 제작에 한계가 있다. 고해상도 영상을 위한 별도의 전문가용 VR 제작 장비[9-10]이 존재하지만, 전용 카메라 모듈과 부품을 사용하기 때문에 고가이다. 또한, 이러한 장비들은 대부분 촬영이 끝난 후 후처리 소프트웨어를 이용하여 영상을 정합하기 때문에 촬영과 동시에 영상 확인 및 정합이 불가능하다는 한계를 갖는다.

실시간 파노라마 영상 제작을 위해서는 많은 개선점이 필요하지만 그 중 먼저 선행되어야 하는 것은 정합 방법의 최적화이다. 기존의 영상 정합 방법들[11-16]은 실시간으로 촬영되는 영상이 아닌 정지 영상 위주였고, 수행 시간보다는 영상의 품질 위주의 연구였기 때문에 실시간 영상 정합에 어려움이 있었다. [17-19]와 같이 실시간 파노라마 동영상 생성을 위한 소프트웨어 구조를 제안하거나 GPU(Graphics Processing Unit), pipeline 구조 변경 등을 이용해 기존의 영상 합성 단계의 방법들의 속도를 개선시킨 사례[20]도 있지만 열 대 이상의 카메라 영상을 실시간 정합하는 데는 어려움이 있다.

본 논문에서는 고화질 파노라마 영상을 정합할 수 있는 시스템을 제안한다. 이를 위해 14대 HD급 일반 화각 카메라를 이용하여 정합 영상의 해상도를 증가시킨다. 하지만, 사용하는 카메라 수가 늘어날수록 정합 시간이 길어지는 문제가 발생한다. 제안시스템에서는 임베디드 보드에서 일차적으로 촬영 영상을 정합하는 과정을 거쳐 정합 PC의 연산량을 반감시키고, 고정된 카메라를 사용함으로써 호모그래피 매트리스 계산에 요구되는 특징점 검출, 매칭등의 불필요한 단계를 생략한다. 또한, 촬영 영상을 바로 정합 PC로 전송하는 대신 보드 상에서 인코딩하여 동영상 파일로 우선 저장 후 전송하는 방식을 이용하는 구조를 통해 정합 PC에서의 병목 현상을 제거하였다.

본 논문은 다음과 같이 구성된다. 2장에서는 제안하는 시스템의 기본 이론이 되는 알고리즘들을 설명한다. 3장에서는 제안 시스템을 구현한 방법을 개요, 임베디드 보드에서의 처리, 정합 PC에서의 처리, 정합 알고리즘으로 나누어 설명한다. 4장에서는 구현한 시스템의 성능을 측정한다. 마지막으로 5장에서는 논문을 결론짓는다.

 

2. 이 론

2.1 호모그래피(Homography)의 계산

호모그래피 행렬 HAB은 식 (1)과 같이 투영관계에 있는 두 평면 사이의 변환관계를 나타내는 3 * 3 행렬이다[21]. 3차원 공간상에 존재하는 평면형 물체를 서로 다른 두 위치 A, B에서 촬영하였을 때, 물체 위에 존재하는 한 점 P을 A위치에서 바라본 좌표 X1와, B에서 바라본 좌표 X2사이의 관계는 식(2)을 만족한다. 호모그래피 행렬은 특징점 매칭 쌍을 이용하여 계산 가능하며, 이 때 매칭 쌍은 4개 이상이 필요하다. 제안 시스템에서는 특징점 추출을 위해 SURF(Speeded-Up Robust Features)[22] 방법을 사용하였다.

2.2 영상 워핑(Warping)

다수의 카메라로부터 획득한 입력 영상은 동일한 크기를 갖지만, 서로 다른 좌표계를 갖는다. 따라서 파노라마 영상을 생성하기 위해서는 입력 영상들을 하나의 픽셀좌표계로 나타내야 한다. 입력 영상들중 하나의 기준 영상을 정하게 되면, 나머지 영상들은 각각에 해당되는 H가 각각 적용되어 나타난 영상으로 볼 수 있다. H을 성공적으로 구했다는 가정하에, H의 역행렬을 나머지 영상들에 적용한다면 기준 영상의 좌표계로 통일된 영상을 획득할 수 있다. 이 때, 모든 영상은 하나의 기준 영상의 좌표계로 표현되어야 하므로 식 (3)과 같이 나타낸다.

2.3 영상 블렌딩(Blending)

영상 블렌딩은 정합 영상을 시각적으로 자연스럽게 보이도록 해주는 후처리과정을 말한다. 워핑 과정을 통해 하나의 영상으로 정렬 된 영상은 오버랩 영역에 대한 적절한 처리가 되어있지 않기 때문에 블렌딩 과정을 통해 보정이 필요하다. 제안 시스템에서는 이를 위해 멀티 밴드 블렌딩[23] 방법을 사용하였다. 멀티 밴드 블렌딩 방법은 가우시안 및 라플라시안 피라미드를 이용한다.

Fig. 1은 블렌딩에 3개의 밴드를 이용할 때의 피라미드 구조를 나타낸다. G(3)은 원 영상을 의미하며, G(2)와 G(1) 그리고 G(0)은 각각 G(3), G(2), G(1)을 1/2크기로 다운샘플링 한 영상이다. G(0)은 2배 크기로 업샘플링 과정을 거쳐 D(1), D(2), D(3)을 구할 수 있고, 같은 단계의 다운샘플링 영상과의 차를 계산하여 라플라시안 영상 L(1), L(2), L(3)을 얻을 수 있다. 좌, 우 입력 영상으로부터 획득한 라플라시안 피라미드와 가중치 윈도우를 이용하여 오버랩 영역의 경계면에서 자연스러운 영상을 얻을 수 있다.

Fig. 1.Pyramid structure of multi-band blending.

 

3. 360°파노라마 동영상 생성 시스템

3.1 제안 시스템의 개요

본 논문에서는 고해상도의 360° 파노라마 영상을 촬영하기 위한 시스템을 제안한다. 제안 시스템에서는 고해상도의 결과물을 얻기 위해 열 대 이상의 카메라 모듈을 사용한다. Fig. 2와 같이 카메라 성능이 FHD로 동일할 경우, 360도 장면을 FoV가 큰 광각 렌즈로 촬영하는 것보다 FoV가 65도 정도인 일반 렌즈로 여러 장 촬영하여 정합하는 것이 같은 범위를 촬영하였을 때 해상도가 더 높다는 것을 알 수 있다.

Fig. 2.Relationship of FoV with image resolution. (a) Wide FoV lens, (b) Normal FoV lens.

하지만, 입력 영상의 수가 증가하게 되면 호모그래피 행렬 계산, 영상 워핑 및 블렌딩 과정을 모두 거치는 일반적인 파노라마 영상 정합 방식은 연산량이 많아 실시간 영상 정합이 불가능하고, 촬영 영상 스트리밍에 비해 느린 정합 속도 때문에 정합 PC에 병목 현상을 유발하게 되어 제안 시스템에 부적합하다.

제안 시스템에서는 임베디드 보드에서 일차적으로 영상을 정합하여 전송하는 방식으로 정합 PC에서의 연산량을 최소화하여 정합 시간을 감소시키고, 각 프레임을 바로 정합 PC로 전송하는 대신 일정 시간 압축 동영상 형태로 저장한 후 전송하는 소프트웨어 구조를 통해 정합 PC의 병목 현상을 제거하는 방법으로 앞선 문제들을 개선하였다.

Fig. 3은 임베디드 보드와 정합 PC로 구성된 시스템 구성을 보여준다. 제안 시스템에서는 14개 카메라모듈과 7개 임베디드 보드를 사용한다. 65도 화각 HD급 카메라 모듈 14개들은 360도 촬영 가능하도록 원형으로 배치된다. 각 임베디드 보드는 2개의 카메라를 제어한다. 임베디드 보드들은 네트워크를 통해 영상 정합을 담당하는 PC로 영상을 전송한다.

Fig. 3.Proposed 360 degree video generation system.

3.2 임베디드 보드에서의 처리

Fig. 4는 임베디드 보드에서의 동작 순서도를 보여준다. 정합 PC로부터 시작 신호가 수신되면 임베디드 보드는 장착된 두 대의 카메라 모듈로부터 영상을 읽어온다. 읽어온 두 장의 영상은 미리 계산된 호모그래피 매트리스를 이용해 보드 상에서 일차적으로 정합되어 PC로 전송된다. 한 번의 정합 작업을 임베디드 보드에서 수행함으로써 정합 PC에서 정합해야 하는 영상의 수를 반감시킬 수 있다. 영상을 정합 PC까지 전송하는 데에 걸리는 시간은 전송할 데이터의 크기에 영향을 받게 된다. 또한, 정합 속도에 비해 전송 데이터량이 많게 되면 정합 PC에 병목 현상과 메모리 문제가 발생하게 된다. 따라서 제안 시스템에서는 이전 프레임과 비교해 변화된 부분만을 압축하여 저장하는 H.264[24] 비디오 압축방식을 이용해 k초 동안 영상을 촬영하여 비디오 파일로 저장한 뒤 정합 PC로 전송한다. 여기에서 k은 상수로, 정합 PC에서의 영상 정합 시간에 비례하여 설정하였다.

Fig. 4.Flow chart of board processing.

3.3 정합 PC에서의 처리

Fig. 5는 정합 PC에서의 동작 순서도를 보여준다. 임베디드 보드들의 연결이 완료되면 PC에서는 촬영 동기를 맞추기 위해 시작 신호를 전송한다. 정합 PC는 임베디드 보드들로부터 매번 1프레임의 영상을 전송받는 대신 인코딩 된 동영상 파일을 전송받는다. 이러한 방식은 카메라 수가 증가할수록 영상 정합 속도보다 영상 수신 속도가 빨라져 버퍼링에 한계가 생기는 문제에 대응하기 위함이다. 임베디드 보드들로부터 첫 번째 동영상 파일이 전송되면 각 동영상 파일에서 프레임을 읽어와 영상 정합 및 디스플레이를 시작한다.

Fig. 5.Flow chart of PC processing.

3.4 영상 정합

Fig. 6은 제안 시스템의 영상 정합 단계들을 보여준다. 제안 시스템에서는 각 기능이 독립성을 가질 수 있도록 개별적인 네 종류의 스레드로 구현하였다. 스레드와 스레드 사이에는 버퍼 역할을 하는 큐(Queue)를 두어 데이터 교환에 이용한다.

Fig. 6.Image stitching phases.

첫 번째 스레드는 영상 수신 스레드로, 임베디드 보드 수만큼 생성되어, 각 보드로부터 동영상을 수신한다. 두 번째 스레드는 제어 스레드로, 수신 된 동영상들로부터 순차적으로 프레임을 받아와 하나로 정합해야 할 프레임들을 모아 세 번째 스레드로 넘겨준다. 세 번째 스레드는 정합 스레드로, 속도 향상을 위해 n개만큼 생성되어 작업을 병렬 처리한다. 여기에서 n은 상수로, 일반적으로 정합PC의 프로세서에 맞추어 설정한다. 정합 스레드는 넘겨받은 프레임들에 워핑 및 블렌딩을 적용하여 하나의 프레임으로 정합한다. 정합 된 프레임은 각 정합 스레드마다 가지고 있는 디스플레이 큐에 전달한다. 마지막 스레드는 디스플레이 스레드로, 정합 영상을 디스플레이 큐로부터 순서대로 가져와 화면에 표시한다.

 

4. 성능 평가

본 장에서는 구현한 시스템의 성능 평가를 위해 세 가지 실험을 진행하였다. 첫 번째로 영상 정합에 소요되는 시간을 평가하기 위해 초당 프레임 생성수 (Frame per Sec. FPS)를 측정하였다. 두 번째로, 입력 영상 크기에 따른 정합 시간과 해상도 차이를 비교하였다. 마지막으로, 기존의 파노라마 정합 방법들과 제안 시스템의 차이를 비교하였다. 실험에 사용한 하드웨어 사양은 Table 1, 구현한 시스템은 Fig. 7에 나타내었다.

Table 1.Hardware specification of proposed system

Fig. 7.The implemented system.

Fig. 8은 제안 시스템의 FPS를 보여준다. 본 실험에서는 640 * 480 해상도의 입력 영상을 8개 정합 스레드로 처리할 때 FPS를 측정하였다. Fig. 7(a)은 임베디드 보드 상에서 촬영 영상을 정합하지 않는 경우이고, Fig. 7(b)은 정합하는 경우이다. 보드 정합을 사용하지 않을 때 최소 1 FPS, 최대 8 FPS, 평균 5.92 FPS 성능을 보였다. 보드 정합하는 경우 최소 4 FPS부터 최대 9 FPS, 평균 7.08프레임으로 성능이 20% 향상되었다.

Fig. 8.FPS measurement. (a) Without on-board registration, (b) With on-board registration.

Table 2는 두 번째 실험결과로 입력 영상 해상도에 따른 정합 시간과 결과 영상의 해상도를 보여준다. 본 실험에서의 평균 정합 시간은 단일 스레드만을 이용해 측정한 시간이다. 640 * 480 입력을 사용했을 때가 1280 * 720 경우보다 약 3.2배 빠르게 정합이 가능하지만, 37% 해상도가 떨어진다. Fig. 9는 이러한 해상도 차이를 보여준다.

Table 2.Stitching time and output resolution according to resolution

Fig. 9.Result image comparison. (a) Result image from 640 * 480 input, (b) Result image from 1280 * 720 input.

Table 3은 세 번째 실험결과로 제안 시스템과 기존 파노라마 정합 방법들의 성능을 비교하였다. 기존에 휴대용 VR촬영기기로 사용되고 있는 [6-8]의 경우, 실시간 정합이 불가능하다. 가장 우수한 정합 속도를 가진 [10]의 경우 6대의 카메라로 4K 해상도의 영상을 초당 30프레임으로 정합 가능하다. 하지만, 고가의 카메라와 DSP(Digital Signal Processor)와 FPGA(Field-Programmable Gate Array)와 같은 전문 장비를 사용한다는 단점이 있다. [17]은 3K 해상도의 영상을 초당 1-2프레임으로 정합 가능하지만 다른 방법들에 비해 촬영 가능한 각도가 좁고 느린 정합 속도를 갖는다. [18]은 [10]과 마찬가지로 초당 30프레임으로 영상 정합이 가능하지만, 고해상도의 영상 제작이 불가능하다는 단점을 가진다. 제안 시스템의 경우, 14대의 카메라로 6K의 고해상도 영상 정합이 가능하다. 하지만, 다수의 카메라를 이용하기 때문에 연산량이 많아 정합 속도 측면에서는 [10]과 [18]에 비해 다소 부족한 결과를 확인하였다.

Table 3.Comparison of proposed system with other systems

 

5. 결 론

본 논문에서는 고화질 360도 영상 생성 시스템을 제안하였다. 각각 두 대의 일반 화각 카메라 모듈을 장착한 다수의 임베디드 보드들을 네트워크로 연결하고, 각 보드들이 전송하는 영상들을 정합 PC에서 정합하여 파노라마 동영상을 생성하였다. 제안 시스템의 실시간성을 확보하기 위해 정합 과정의 불필요한 작업 제거, 임베디드 보드에서 촬영 영상을 미리 정합하여 전송, 촬영 영상을 인코딩 된 동영상 파일 형태로 일정 시간 저장했다 정합 PC로 전송하는 방식들을 사용하였다. 현재 제안 시스템은 14개의 640 * 480 해상도의 입력 영상으로부터 초당 약 7프레임으로 360도 파노라마 동영상을 생성할 수 있다. 향후 연구에서는 파노라마 생성속도 향상 및 현재 영상 정합 알고리즘이 가지고 있는 문제점들의 개선에 목적을 둘 것이다.

References

  1. Camera & Photo Imaging Show, http://www.cpplus.jp/en/, (Accessed Apr., 5, 2016).
  2. Consumer Electronics Show, https://www.ces.tech/, (Accessed Apr., 5, 2016).
  3. Panono, https://www.panono.com/, (accessed Mar., 20, 2016).
  4. Rotopan, http://rotopan.com/, (accessed Mar., 20, 2016).
  5. Pelco, https://www.pelco.com/video-surveillance-camera-security-systems/panoramic-ip/, (accessed Mar., 20, 2016).
  6. Samsung Gear 360, http://www.samsung.com/sec/consumer/mobile-tablet/gear/gearseries/SM-C200NZWAKOO/, (accessed Jun., 3, 2016).
  7. LG 360 Cam, http://www.lgmobile.co.kr/mobile-phone/LG-R105/LG-R105/, (accessed Jun., 3, 2016).
  8. SEESAW, http://www.seesawvision.com/, (accessed Jul., 27, 2016).
  9. GoPro Omni, https://ko.gopro.com/omni/, (accessed Jun., 3, 2016).
  10. Argon360, http://www.argondesign.com/products/argon360/, (accessed Jul., 27, 2016).
  11. J. Luo, S. Shin, H.J. Park and O. Gwun, "Stitching for Panorama based on SURF and Multi-band Blending," Journal of Korea Multimedia Society, Vol. 14, No. 2, pp. 201-209, 2011. https://doi.org/10.9717/kmms.2011.14.2.201
  12. Hugin, Panorama Photo Stitcher, http://hugin.sourceforge.net/, (accessed Jul., 1, 2016).
  13. M. Brown and D.G. Lowe, "Automatic Panoramic Image Stitching using Invariant Features," International Journal of Computer Vision, Vol. 74, No. 1, pp. 59-73, 2007. https://doi.org/10.1007/s11263-006-0002-3
  14. R. Szeliski, "Image Alignment and Stitching: A Tutorial," Journal of Foundations and Trends in Computer Graphics and Vision, Vol. 2, No. 1, pp. 1-104, 2006. https://doi.org/10.1561/0600000009
  15. J. Jiaya and T. Chi-Keung, "Image Stitching using Structure Deformation," IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 30, No. 4, pp. 617-631, 2008. https://doi.org/10.1109/TPAMI.2007.70729
  16. A. Mills and G. Dudek, "Image Stitching with Dynamic Elements," Journal of Image and Vision Computing, Vol. 27, No. 10, pp. 1593-1602, 2009. https://doi.org/10.1016/j.imavis.2009.03.004
  17. Y. Li and L. Ma, "A Fast and Robust Image Stitching Algorithm," Proceeding of Intelligent Control and Automation, pp. 9604-9608, 2006.
  18. K.Y. Choi and K.K. Jun, "Real-time Panorama Video Generation System using Multiple Networked Cameras," Journal of Korea Information Science Society, Vol. 8, No. 42, pp. 990-997, 2015.
  19. K.C. Huang, P.Y. Chien, C.A. Chien, H.C. Chang, and J.I. Guo, "A 360 Degree Panoramic Video System Design," Proceeding of VLSL Design, Automation and Test, pp. 1-4, 2014.
  20. M.Tennøe, E. Helgedagsrud, M. Næss, H.K. Alstad, H.K. Stensland, V.R. Gaddam, et al., Efficient Implementation and Processing of a Real-time Panorama Video Pipeline, Master's Thesis of Oslo University, 2013.
  21. D. Elan, Homography Estimation, Master's Thesis of University of British Columbia, 2007.
  22. H. Bay, A. Ess, T. Tuytelaars, and L. Gool, "SURF: Speeded-Up Robust Features," Proceeding of Lecture Notes in Computer Science, pp. 404- 417, 2006.
  23. P.J. Burt and E.H. Adelson, "A Multiresolution Spline with Application to Image Mosaics," ACM Transactions on Graphics, Vol. 2, No. 4, pp. 217-236, 1983. https://doi.org/10.1145/245.247
  24. H.264, http://www.divx.com/en/software/technologies/h264/, (accessed Jun., 5, 2016).

Cited by

  1. 360-Degree Video Traffic Reduction Using Cloud Streaming in Mobile pp.1572-834X, 2019, https://doi.org/10.1007/s11277-018-5984-y
  2. 다중 가상 카메라의 실시간 파노라마 비디오 스트리밍 기법 vol.24, pp.4, 2016, https://doi.org/10.9717/kmms.2020.24.4.538
  3. Reducing System Load of Effective Video Using a Network Model vol.11, pp.20, 2016, https://doi.org/10.3390/app11209665