DOI QR코드

DOI QR Code

Acceleration of Viewport Extraction for Multi-Object Tracking Results in 360-degree Video

360도 영상에서 다중 객체 추적 결과에 대한 뷰포트 추출 가속화

  • Heesu Park (School of Electronics and Information Engineering, Korea Aerospace University) ;
  • Seok Ho Baek (School of Electronics and Information Engineering, Korea Aerospace University) ;
  • Seokwon Lee (Department of Smart Air Mobility, Korea Aerospace University) ;
  • Myeong-jin Lee (School of Electronics and Information Engineering, Korea Aerospace University)
  • 박희수 (한국항공대학교 항공전자정보공학부) ;
  • 백석호 (한국항공대학교 항공전자정보공학부) ;
  • 이석원 (한국항공대학교 스마트항공모빌리티학과) ;
  • 이명진 (한국항공대학교 항공전자정보공학부)
  • Received : 2023.05.26
  • Accepted : 2023.06.28
  • Published : 2023.06.30

Abstract

Realistic and graphics-based virtual reality content is based on 360-degree videos, and viewport extraction through the viewer's intention or automatic recommendation function is essential. This paper designs a viewport extraction system based on multiple object tracking in 360-degree videos and proposes a parallel computing structure necessary for multiple viewport extraction. The viewport extraction process in 360-degree videos is parallelized by composing pixel-wise threads, through 3D spherical surface coordinate transformation from ERP coordinates and 2D coordinate transformation of 3D spherical surface coordinates within the viewport. The proposed structure evaluated the computation time for up to 30 viewport extraction processes in aerial 360-degree video sequences and confirmed up to 5240 times acceleration compared to the CPU-based computation time proportional to the number of viewports. When using high-speed I/O or memory buffers that can reduce ERP frame I/O time, viewport extraction time can be further accelerated by 7.82 times. The proposed parallelized viewport extraction structure can be applied to simultaneous multi-access services for 360-degree videos or virtual reality contents and video summarization services for individual users.

실사 및 그래픽 기반 가상현실 콘텐츠는 360도 영상을 기반으로 하며, 시청자의 의도나 자동 추천 기능을 통한 뷰포트 추출이 필수적이다. 본 논문은 360도 영상에서 다중 객체 추적 기반의 뷰포트 추출 시스템을 설계하고, 다중 뷰포트 추출에 필요한 병렬화된 연산 구조를 제안한다. 360도 영상에서 뷰포트 추출 과정을 ERP 좌표의 3D 구 표면 좌표 변환과 3D 구 표면 좌표의 뷰포트 내 2D 좌표 변환 과정을 순서대로 픽셀 단위의 스레드로 구성하여 연산을 병렬화하였다. 제안 구조는 항공 360도 영상 시퀀스들에 대하여 최대 30개의 뷰포트 추출 과정에 대한 연산 시간이 평가되었으며, 뷰포트 수에 정비례하는 CPU 기반 연산 시간에 비해 최대 5240배 가속화됨을 확인하였다. ERP 프레임 I/O 시간을 줄일 수 있는 고속의 I/O나 메모리 버퍼를 사용 시 뷰포트 추출 시간을 7.82배 추가 가속화가 가능하다. 제안하는 뷰포트 추출 병렬화 구조는 360도 비디오나 가상현실 콘텐츠들에 대한 동시 다중 접속 서비스나 사용자별 영상 요약 서비스 등에 활용될 수 있다.

Keywords

Ⅰ. 서론

최근에는 가상 현실, 증강 현실 및 360도 비디오 등과 같은 실감 미디어 서비스가 5G 시대의 최첨단 서비스로 주목받고 있다. 실감 미디어는 실감과 몰입을 극대화하는 미디어를 의미한다. 이는 엔터테인먼트, 교육, 훈련, 상업 및 보건 등 다양한 산업에서 새로운 서비스를 만드는 데 사용되고 있다. 실감 미디어의 핵심인 360도 비디오는 광각 다중 카메라를 사용하여 동시에 모든 방향에서 촬영된 비디오를 스티칭하는 것이다. 이러한 360도 비디오는 콘텐츠 제작, 비디오 렌더링 플랫폼 및 비디오 이미징 장비 등 다양한 분야에서 급속도로 적용되고 있다.

360도 비디오는 모든 방향으로 시청할 수 있기 때문에 시청 방법도 HMD(Head-Mounted Display) 또는 모바일 핸드셋으로 변화하고 있다. 일반 시야각(FoV; Field-of-View)을 갖는 기존 비디오를 시청하는 사용자들은 영상 감독이나 프로듀서의 의도에 따라 고정된 화면에서 이야기가 전개되므로 시점을 선택하는 부담이 없다. 그러나, 360도 비디오는 실감과 몰입성이 뛰어나지만 사용자 중심의 비디오 공간 탐색을 통해 이야기를 전개해야 한다[1].

360도 비디오의 시야각은 인간의 눈의 화각을 넘어서기 때문에, 시청자의 360도 영상 공간에 대한 탐색 부담을 증가시킨다. 충분한 탐색 시간을 가질 수 있는 360도 이미지의 경우, 시청자의 360도 이미지 공간 탐색은 부담스럽지 않을 수 있다. 그러나, 360도 비디오에서는 사건의 수, 사건의 속도 또는 시간에 따른 환경 변화와 같은 콘텐츠의 변화 속도에 비례하여 시청자의 영상 공간 탐색 부담이 증가한다.

Fremerey 등의 실험 [2]에서는 사람들이 360도 비디오를 시청할 때 거의 절반 이상이 초기 위치 주변에서만 시청하고 더이상 비디오를 탐색하지 않는 것으로 나타났다. 그러나, 현실 세계에서는 사람들이 볼 것이 많은 축제나 이벤트 현장에 갈 때, 그들은 자신이 보고 있는 것과는 다른 것을 보고 있는 동행자로부터 주변 상황에 대한 정보를 얻기도 한다. 때로는 동행자의 추천이 자신이 본 것보다 더 흥미로울 수 있기 때문에, 시각적 대상을 바꿀 수도 있다. 360도 비디오의 시야각은 시청자가 어디를 볼지 판단하기에 너무 넓다. 시청자가 관심을 가질만한 360도 영상 공간 내 객체나 관심 영역에 대한 정보를 제공한다면 360도 영상 공간을 보다 효율적으로 탐색할 수 있을 것이다.

전경 객체나 이들 객체와 관련된 사건은 시각적 대상으로 선택될 수 있으며, 이들을 중심으로 뷰포트 구성이 가능하다. 360도 영상에서의 객체 중심의 뷰포트 구성을 위해서는 360도 영상 내에서 객체 검출 및 추적이 먼저 이루어져야 한다. 다중 객체 추적 분야에서 가장 좋은 성능을 보이고 가장 많이 사용되는 구조인 Tracking-by-Detection 구조의 객체 추적기[2], [3], [4]는 매 프레임 검출된 객체들과 기존 트랙별 Kalman Filter[5]를 사용한 프레임 내 객체들의 예측 위치 사이의 IoU (Intersection over Union) 계산, Hungarian 알고리즘[6] 기반 데이터 연관성 매칭 기법을 통해 트랙을 갱신한다. 이때 사용되는 객체 검출기는 Convolutional Neural Network(CNN)을 기반으로 분류와 위치추정을 수행하여 검출된 객체들의 바운딩박스(bounding box) 정보를 객체 추적기 입력으로 사용한다.

360도 영상에서 뷰포트 추출 과정은 많은 연산량이 요구된다. 360도 영상은 전방위에 대한 정보를 UHD급의 고해상도로 표현하며 ERP(Equi-rectangular Projection) 형식의 비디오 프레임에 담는다. 이는 360도 구면 영상을 직사각형 영상 프레임에 매핑한 신호이며 매핑된 영상 내 위치에 따라 왜곡이 존재한다. 따라서, 시청할 트랙별 뷰포트 평면으로의 영상 추출은 ERP 프레임 내에서 시점을 선택한 후 이를 중심으로 왜곡이 제거된 일반 화각의 영상 평면으로 변환하는 과정이다. 이 과정에서 픽셀 단위의 좌표계 변환 연산은 다중 객체 존재 시 또는 다중 뷰포트 영역 존재 시 뷰포트 수에 연산량이 비례하여 증가할 수 있기 때문에, 콘텐츠 생성에 따른 연산 부담이 크고 가변적이다.

뷰포트 추출은 픽셀 단위의 행렬 곱 연산이 반복적으로 수행되어야 하며, 프로세서 코어의 개수가 적은 CPU보다는 코어의 개수가 많아 여러 픽셀에 대한 연산을 동시에 병렬적으로 수행 가능한 GPU를 사용하여 가속화할 수 있다. 360도 영상에서 뷰포트 추출 과정을 ERP 좌표의 3D 구 표면 좌표 변환(ERP-to-3D) 연산과 3D 구 표면 좌표의 뷰포트 내 2D 좌표 변환(3D-to-VP) 연산 과정을 순서대로 매 픽셀마다의 스레드(thread)로 구성하여 연산을 병렬화할 수 있다.

본 논문에서는 360도 영상 공간의 탐색 보조를 위해 360도 영상에서 다중 객체 추적 결과에 대한 뷰포트 추출 가속화 방법을 제안한다. 제2장에서는 360도 영상 입력에 대한 다중 객체 추적 시스템 구성에 관해 설명한다. 제3장에서는 객체 중심의 뷰포트 추출 연산의 병렬화 및 가속화 구조를 제안한다. 제4장에서는 제안한 다중 객체 추적 시스템의 출력 결과인 객체별 트랙 정보를 제시하고, 각 객체별 뷰포트 구성 결과와 병렬화 구조에 따른 가속화 결과를 제시한다. 마지막으로 제5장에서 결론을 맺는다.

Ⅱ. 360도 영상에서의 다중 객체 추적 시스템

2-1 360도 영상에서의 다중 객체 추적 시스템 설계

본 논문에서 360도 카메라를 장착한 드론을 이용한 광역감시 또는 지상 행사 중계를 위해 360도 영상 내 다중 객체를 검출하고 추적하기 위한 시스템을 그림 1과 같이 구성하였다.

HHHHBI_2023_v27n3_306_f0001.png 이미지

그림 1. 다중 객체 추적 시스템

Fig. 1. Multi object tracking system.

객체 추적은 비디오 시퀀스에서 프레임 진행에 따라 영상 내 객체를 검출하고 이들의 시간에 따른 이동을 기록하는 과정이다. 입력으로 들어온 360도 영상의 ERP 프레임에 객체 검출기[7]를 사용하여 객체의 바운딩 박스 정보를 획득한다. 획득한 바운딩 박스 정보를 객체 추적기에 입력으로 넣으면 객체 추적기 내부에서 Kalman Filter[5]를 이용한 객체 위치를 토대로 데이터 연관성 매칭을 수행하며 트랙 정보를 출력한다. 이때 가려 짐이나 조도 변화 등의 영상 촬영 환경 변화나 360도 영상 공간의 왜곡 특성에 따른 객체 검출률 저하와 이에 따른 동일 객체 트랙의 파편화가 발생할 수 있다. 이렇게 파편화된 트랙(tracklet)들은 버퍼에 저장한 후 파편화된 트랙 내 객체 정보를 이용한 재식별(Re-identification)[8] 과정을 거쳐 최종 트랙을 완성한다. 완성된 트랙들은 객체별 뷰포트를 추출하기 위한 프레임별 뷰포트 중심 위치 정보를 포함하며, 이 정보와 뷰포트 화각 정보를 이용하여 각 객체별 뷰포트를 추출한다.

2-2 객체 중심의 뷰포트 추출

뷰포트를 추출하는 모듈에 ERP 형식의 비디오 프레임과 검출된 객체들의 바운딩박스 정보가 입력된다. ERP 영상에서 검출된 객체 중심의 뷰포트 추출을 위해서 뷰포트 렌더링 알고리즘을 사용한다[9]. 입력받은 바운딩 박스의 좌표를 3D 좌표계로 변환시킨 뒤, 해당 픽셀 데이터를 다시 2D 평면으로 옮겨준다.

뷰포트는 그림 2와 같이 ERP 형식의 영상이 매핑된 구 표면에 뷰포트 중심 방향인 시청자의 시선 방향이 만나는 지점의 접 평면을 뷰포트 해상도에 맞게 출력한 결과이다. 추출할 뷰포트 내 특정 위치의 픽셀에 대응되는 ERP 영상의 픽셀 좌표를 계산하는 과정은 다음과 같다. ERP 영상에서 추출할 뷰포트의 중심 좌표(m, n)과 ERP 영상의 가로와 세로의 픽셀 해상도 Werp, Herp를 사용하여 시청자의 시선 방향을 구 좌표계의 yaw, pitch 회전각 (φ, θ)로 다음과 같이 변환한다.

그림 2. 360도 영상의 ERP 프레임 내 객체 중심의 뷰포트 추출 과정 (a) ERP 프레임 및 추적 객체 (b) 객체 중심의 뷰포트 (c) 구표면 영상의 뷰포트 시선 방향의 접평면 투영

HHHHBI_2023_v27n3_306_f0002.png 이미지

Fig. 2. Object-centered viewport extraction process in an ERP frame of a 360-degree image (a) ERP frames and tracking objects (b) object-centered viewport © surface projection in the viewport visual direction of a spherical surface image.

\(\begin{aligned}\varphi=2 \pi\left(\frac{m+0.5}{W_{\text {erp }}}-0.5\right)\end{aligned}\)       (1)

\(\begin{aligned}\theta=\pi\left(0.5-\frac{n+0.5}{H_{e r p}}\right)\end{aligned}\)       (2)

구 좌표계에서 시청자 시선 방향에 수직인 접평면을 uv 평면이라고 할 때, 뷰포트의 가로 방향 화각 Fh와 세로 방향 화각 Fv에 대한 uv 평면의 폭(Wuv)과 높이(Huv)는 다음과 같다.

\(\begin{aligned}W_{u v}=2 \tan \frac{F_{h}}{2}\end{aligned}\)       (3)

\(\begin{aligned}H_{u v}=2 \tan \frac{F_{v}}{2}\end{aligned}\)       (4)

뷰포트 평면에서의 한 픽셀(p)의 좌표 (vx, vy)와 추출할 뷰포트의 픽셀 해상도 Wvp와 Hvp가 주어질 때, 구 표면에 매핑된 지점(p′)의 좌표 (X, Y, Z)는 다음과 같이 계산한다.

\(\begin{aligned}\left[\begin{array}{l}x \\ y \\ z\end{array}\right]=\left[\begin{array}{c}2\left(v_{x}+0.5\right) W_{u v} / W_{v p}-W_{u v} / 2 \\ -2\left(v_{y}+0.5\right) H_{u v} / H_{v p}+H_{u v} / 2 \\ 1.0\end{array}\right]\end{aligned}\)       (5)

\(\begin{aligned}\left[\begin{array}{l}x \\ y^{\prime} \\ z\end{array}\right]=\left[\begin{array}{l}x \\ y \\ z\end{array}\right] / \sqrt{x^{2}+y^{2}+z^{2}}\end{aligned}\)       (6)

\(\begin{aligned}R=\left[\begin{array}{ccc}\cos \left(\phi+\frac{\pi}{2}\right) & -\sin \left(\phi+\frac{\pi}{2}\right) \sin \theta & \sin \left(\phi+\frac{\pi}{2}\right) \cos \theta \\ 0 & \cos \theta & \sin \theta \\ -\sin \left(\phi+\frac{\pi}{2}\right) & -\cos \left(\phi+\frac{\pi}{2}\right) \sin \theta & \cos \left(\phi+\frac{\pi}{2}\right) \cos \theta\end{array}\right]\end{aligned}\)       (7)

\(\begin{aligned}\left[\begin{array}{l}X \\ Y \\ Z\end{array}\right]=\left[\begin{array}{l}x^{\prime} \\ y^{\prime} \\ z^{\prime}\end{array}\right] R\end{aligned}\)       (8)

마지막으로 구 표면에 매핑된 지점(p′)의 좌표를 이용하여 ERP 프레임 상의 픽셀 좌표를 다음과 같이 계산할 수 있다.

\(\begin{aligned}E_{x}=\left(\frac{1}{2}-\frac{1}{2 \pi} \tan ^{-1} \frac{Z}{X}\right) W_{e r p}\end{aligned}\)       (9)

\(\begin{aligned}E_{y}=\frac{1}{\pi} \cos ^{-1}\left(\frac{Y}{\sqrt{X^{2}+Y^{2}+Z^{2}}}\right) H_{e r p}\end{aligned}\)       (10)

Ⅲ. 다중 뷰포트 추출 가속화 커널 설계

3-1 뷰포트 연산 과정의 프로파일링

설계한 다중 객체 추적 시스템의 추출할 뷰포트 수에 따른 처리 속도를 측정하였고, 그 결과는 그림 3과 같다. 추출할 뷰포트 수가 증가할수록 전체 시스템의 처리 시간은 선형적으로 증가하며, 전체 시스템 처리 시간 대비 뷰포트 추출 시간 비율은 지속적으로 증가함을 확인할 수 있다. 또한, 전체 시스템의 처리 시간 중 뷰포트 추출에 소요되는 시간 비율이 높아서, 다중 뷰포트 추출이 필요한 응용 서비스에서는 뷰포트 추출 프로세스의 가속화가 필요함을 확인하였다.

HHHHBI_2023_v27n3_306_f0003.png 이미지

그림 3. 뷰포트 수 증가에 따른 다중 객체 추적 시스템의 연산 성능(뷰포트 해상도 480x480)

Fig. 3. Computational performance of multi-object tracking systems with number of viewports (480x480 viewport resolution).

3-2 뷰포트 추출 연산을 위한 GPU 커널 설계

CPU를 이용하여 N×N 크기의 뷰포트 추출 시 앞 절에서 설명한 좌표계 변환 및 3D-to-VP 투영 연산을 순차적으로 N2회 반속 수행해야 한다. GPU 커널로 뷰포트 추출 연산의 병렬화시 동시에 M개의 스레드를 실행하여 N2/M회로 반복 연산 횟수를 줄일 수 있다.

GPU 커널 기반 뷰포트 추출 연산은 그림 4와 같이 설계되었다. 객체 검출 및 추적 결과로부터 ERP 프레임 상의 객체의 중심 좌표를 입력받아 식 (7)의 회전 변환 행렬 계산과 픽셀 좌표를 구면의 3D 좌표로 변환해 주는 식 (5)와 (6)을 이용한 ERP-to-3D 행렬을 계산한다. 추출할 뷰포트에서 픽셀 좌표와 ERP-to-3D 행렬을 통해 각 픽셀의 3D 좌표 (x,y,z) 를 계산한다. (x,y,z)와 회전 변환 행렬을 이용하여 최종적인 구면에서의 좌표 (X, Y, Z)를 계산한다. 최종 좌표를 이용하여 다시 ERP 상에서의 좌표로 변환한 후, 뷰포트에 해당 되는 ERP상에서의 픽셀 데이터를 매핑해준다. 회전 변환 행렬과 ERP-to-3D 행렬을 계산하는 과정을 제외한 연산은 뷰포트 픽셀만큼 반복적으로 수행된다. 회전 변환 행렬과 ERP-to-3D 행렬은 뷰포트 당 한 번만 계산하면 되기 때문에 커널 전처리 과정에 포함되었다.

HHHHBI_2023_v27n3_306_t0001.png 이미지

그림 4. GPU 커널 기반 뷰포트 추출 연산 구조

Fig. 4. GPU kernel-based viewport extraction operation structure.

CUDA 코어를 이용한 연산의 병렬화 시 그리드와 블록 크기를 설정해야 한다. 블록 크기는 Bx × By으로 설정하고 N × N 크기의 뷰포트를 추출할 경우 (N/M)2개의 블록이 생성된다. 이때 블록 크기는 낭비하는 CUDA 코어와 설정한 블록 크기에 벗어나는 픽셀이 없도록 뷰포트 크기와 블록 당 최대 스레드 수를 고려하여 Bx x By < 1024 와 N/Bx, N/By의 결과 모두 나누어 떨어져야 하는 조건을 만족해야 한다. 본 논문에서 사용한 GPU는 하나의 블록 당 최대 사용 가능 스레드 수는 1,024이다. 따라서, 블록 크기는 32x32로 설정하였으며, 그리드는 15x15로 설정된다.

Ⅳ. 실험 및 결과

4-1 실험 환경

실험에 사용한 영상은 그림 5와 같이 3-5m 고도에서 정지한 드론으로 촬영한 360도 ERP 형식의 영상이고 해상도는 3840x1920, 화면율은 30이다. 추적 객체 중심의 뷰포트 추출 가속화 실험을 위해 영상 내 객체 5명이 자유롭게 이동하는 시퀀스를 사용하였다.

HHHHBI_2023_v27n3_306_f0004.png 이미지

그림 5. 360도 항공 영상 ERP frame

Fig. 5. ERP frame of 360-degree aerial video

객체 추적 및 뷰포트 추출 시스템을 수행하는 CPU는 AMD Ryzen 2700x로 8개의 코어를 가지고 GPU는 Geforce RTX 2080ti로 4352개의 CUDA 코어를 가지며 616.0 GB/s의 메모리 대역폭을 갖는다. GPU 가속화 커널에 사용한 CUDA 라이브러리 버전은 11.7이고 cudnn 버전은 8.4이다. GPU 커널의 가속화 효율을 프로파일링 하기 위해 NVIDIA Nsight Systems를 사용하였다.

4-2 항공 360도 비디오에서 다중 객체 추적 결과

그림 1의 다중 객체 추적 시스템에 360도 영상 시퀀스를 입력하여 얻은 뷰포트 결과는 그림 6과 같다. 다중 객체 추적이 완료된 후 추적 결과에 대해 사용자는 원하는 추적 객체에 대한 뷰포트를 선택적으로 추출할 수 있으며, 추출할 뷰포트의 크기도 사용자가 지정할 수 있다. 촬영한 360도 영상 내 객체의 바운딩 박스 크기와 뷰포트 내 객체의 크기를 고려하여 실험에 적용한 뷰포트 추출 크기는 480x480이다.

HHHHBI_2023_v27n3_306_f0005.png 이미지

그림 6. 추출된 뷰포트 결과 이미지

Fig. 6. Extracted viewport images.

4-3 뷰포트 추출 가속화 성능

뷰포트 개수에 따른 뷰포트 추출 가속화 성능을 측정하기 위해 프레임당 뷰포트의 개수를 1~30개로 증가시키며 수행시간을 측정하였다. 그림 7은 ERP 프레임을 디스크로부터 읽는 시간을 포함한 프레임 당 추출하는 뷰포트 개수에 따른 CPU와 GPU의 뷰포트 추출 수행시간을 나타낸 그래프이다.

HHHHBI_2023_v27n3_306_f0006.png 이미지

그림 7. 뷰포트 수 증가에 따른 GPU 수행시간과 CPU 수행시간

Fig. 7. Viewport extraction time comparison for CPU and GPU with the number of viewports.

그림 7에서 초기 ERP 프레임의 디스크 I/O 시간에 뷰포트 개수에 따른 CPU와 GPU 연산 시간이 선형적으로 부가됨을 확인할 수 있고, 프레임당 30개의 뷰포트 추출 시 CPU 대비 GPU 연산시 최대 5240.5배까지 가속화되었다. 그림 8은 ERP 프레임 디스크 I/O를 포함한 뷰포트 해상도별 뷰포트 추출 수행 시간을 측정한 그래프이다. 모든 뷰포트 해상도에서 뷰포트 수 증가에 따라 선형적인 뷰포트 추출 시간 증가 경향이 확인되었다. 이 경우 뷰포트의 개수가 20개 이상인 경우 뷰포트 수 증가에 따른 뷰포트 추출 시간 증가율이 커졌는데, 이는 GPU 커널에서 증가된 뷰포트 수를 병렬화할 CUDA 코어의 수가 충분하지 못해서 발생하는 현상으로 해석된다.

HHHHBI_2023_v27n3_306_f0007.png 이미지

그림 8. 뷰포트 해상도와 뷰포트 개수에 따른 뷰포트 추출 시간

Fig. 8. Viewport extraction time for GPU with the resolution and the number of viewports.

ERP 비디오 시퀀스 전체에 대해 뷰포트 추출을 위해서는 반복적인 ERP 프레임의 디스크 I/O와 뷰포트 추출이 필요하다. 그림 7과 그림 8에서 뷰포트 수가 작을수록 ERP 프레임의 디스크 I/O 시간이 전체 뷰포트 추출 시간에서 차지하는 비율이 높기 때문에, 비디오 시퀀스 전체에 대해 반복되는 ERP 프레임 I/O와 GPU 커널 수행 과정의 최적화가 필요하다. 이를 위해 비디오 시퀀스 전체에 대한 뷰포트를 5개씩 반복해서 추출하는 과정에 대해 GPU 커널 프로파일링을 진행하였고, 그 결과는 그림 9와 같다. CPU가 디스크로부터 ERP 프레임을 읽는 과정에서 GPU 커널은 IDLE 상태가 되고, 이 구간의 시간(14.9 ms)이 GPU 커널 실행 시간(3.2 ms)보다 커서 GPU 자원이 비효율적으로 사용됨을 확인하였다.

HHHHBI_2023_v27n3_306_f0008.png 이미지

그림 9. ERP 프레임 디스크 I/O를 포함한 GPU 커널의 프로파일링

Fig. 9. Profiling of the GPU kernel with ERP frame disk I/O.

360도 비디오 스트리밍 환경에서는 네트워크를 통해 수신되는 압축 비디오 비트열을 실시간으로 복호하고, 복호된 ERP 프레임은 메모리상에 위치하게 된다. 또한, 360도 카메라를 시스템에 연결하여 영상을 획득하는 경우 고속의 인터페이스를 통해 ERP 프레임이 메모리상에 위치하게 된다. 따라서, ERP 프레임이 그림 9의 디스크가 아닌 고속의 I/O 인터페이스를 통해 입력되거나 메모리상의 버퍼에 존재하는 경우 GPU 커널의 실행시간을 측정하였다. 메모리상에 ERP 비디오 시퀀스를 위치시키고, ERP 프레임 I/O와 프레임별 GPU 커널 실행을 별도의 CPU 스레드로 병렬화하여 뷰포트를 추출한 결과는 그림 10과 같다. GPU 커널은 ERP 프레임 I/O에 의한 IDLE 구간이 크게 감소하였으며, ERP 프레임당 추출하는 뷰포트 수를 가변시키면서 성능을 측정한 결과는 그림 11과 같다. 프레임당 뷰포트 수가 5에서 50으로 증가 시 뷰포트 추출률은 1611.5 VP/sec에서 6860.9 VP/sec로 증가하였다. 이는 그림 4의 H2D memory transfer에 의해 CPU 메모리로부터 GPU 메모리로 ERP 프레임 하나 이동시 GPU 병렬화 커널에 복수 개의 뷰포트를 추출하기 때문에, 뷰포트 당 H2D memory transfer 오버헤드가 감소하기 때문이다.

HHHHBI_2023_v27n3_306_f0009.png 이미지

그림 10. ERP 프레임 디스크 I/O를 배제한 GPU 커널의 프로파일링

Fig 10. Profiling of the GPU kernel without ERP frame disk I/O.

HHHHBI_2023_v27n3_306_f0010.png 이미지

그림 11. ERP 프레임 디스크 I/O를 배제한 프레임 처리 및 뷰포트 추출 속도

Fig. 11. Frame rate and viewport extraction rate excluding ERP frame disk I/O.

360도 영상 입력에 대한 다중 객체 추적 시스템에서 추출할 수 있는 뷰포트의 수는 응용 서비스 설계에 달라질 수 있으나, 프레임 디스크 I/O를 배제하고 5-50개의 뷰포트 추출 시 제안한 병렬화된 연산 구조는 137.2-322.3 frame/sec의 처리율로 서비스를 제공할 수 있다. 일반적인 비디오 시퀀스의 화면율은 25-30 frame/sec이므로 제안 구조는 360도 비디오 스트리밍 환경에서 다중 객체 검출 및 뷰포트 추출을 실시간으로 수행 가능하다. 이는 고속의 ERP 프레임 I/O가 가능한 시스템 구성 시 제안 시스템은 4.6-12.9 채널의 비디오 스트림의 처리가 가능하며, 보다 많은 CUDA 코어를 포함한 GPU 사용이나 multi-GPU 시스템 구성 시 서비스 가능한 채널 수의 추가 증가가 가능할 것으로 판단된다.

Ⅴ. 결론

360도 영상에서 다중 객체 추적 기반의 뷰포트 추출 시스템을 설계하고, 다중 뷰포트 추출에 필요한 병렬화된 연산 구조를 제안하였다. 실험을 통해 영상 내 객체가 여러 명일수록 GPU 커널을 통한 뷰포트 추출 가속화 효율이 올라가는 경향을 확인하였고 CPU만 사용하였을 때 대비 최대 뷰포트 추출 시간을 5240.5배 가속화 하였다. 뷰포트 추출 과정의 GPU 자원 사용률 분석을 통해 ERP 프레임 I/O 시간이 전체 뷰포트 추출 시간을 결정하는 주 요인임을 파악하였고, ERP 프레임 I/O 시간을 줄일 수 있는 고속의 I/O나 메모리 버퍼를 사용 시 뷰포트 추출 시간을 7.82배 추가 가속화가 가능하다. 제안한 뷰포트 추출 시스템은 온라인 스트리밍되어 수신하는 360도 비디오 시퀀스에 대해 실시간 뷰포트 추출이 가능하며, 360도 영상에 대한 서비스 어플리케이션 중 영상 내 객체가 많이 등장하는 행사, 스포츠 중계, 영상보안시스템에서 선호 객체 추적 결과에 대한 뷰포트 제공 서비스에 활용될 수 있다.

Acknowledgments

본 연구는 경기도의 경기도 지역협력연구센터(GRRC) 사업(GRRC-항공-2022-B01, 360도 영상 및 공간 융합 서비스 기술 연구)의 일환으로 수행하였고, 정부의 재원으로 한국연구재단의 지원을 받아 수행된 기초연구임(2018R1D1A1B07050603).

References

  1. M. J. Lee, D. S. Kang, K. W. Park, "Visual interest research trends in 360-degree panorama video," The Journal of Korean Institute of Communications and Information Sciences(information and communication), Volume 35, No. 9, pp. 25-31, September, 2018. 
  2. Bewley, Alex, et al, "Simple online and realtime tracking," 2016 IEEE International Conference on Image Processing (ICIP), pp. 3464-3468, February, 2016. 
  3. Wojke, Nicolai, A. Bewley, and D. Paulus, "Simple online and realtime tracking with a deep association metric," 2017 IEEE International Conference on Image Processing (ICIP), pp. 3645-3649, March, 2017. 
  4. Zhang, Y., Sun, P., Jiang, Y., Yu, D., Weng, F., Yuan, Z., and Wang, X, "Bytetrack: Multi-object tracking by associating every detection box," In Computer Vision-ECCV 2022: 17th European Conference, Part XXII, pp. 1-21, October 23-27, April, 2022. 
  5. R. Kalman, "A new approach to linear filtering and prediction problems," Journal of Basic Engineering, vol. 82, no. Series D, pp. 35-45, March, 1960.  https://doi.org/10.1115/1.3662552
  6. H. W. Kuhn, "The hungarian method for the assignment problem," Naval Research Logistics Quarterly, vol. 2, pp. 83-97, March, 1955.  https://doi.org/10.1002/nav.3800020109
  7. Ge, Zheng, et al. "Yolox: Exceeding yolo series in 2021," arXiv preprint arXiv:2107.08430, August, 2021. 
  8. Lin, Y., Zheng, L., Zheng, Z., Wu, Y., Hu, Z., Yan, C., and Yang, Y, "Improving person re-identification by attribute and identity learning," Pattern Recognition, 95, pp.151-161, June, 2019.  https://doi.org/10.1016/j.patcog.2019.06.006
  9. G. W. Lee, and J. K. Han, "Viewport rendering algorithm with a curved surface for a wide FOV in 360° images," Applied Sciences 11.3, 1133, January, 2021.