KR20200044647A - Vr 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치 - Google Patents

Vr 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치 Download PDF

Info

Publication number
KR20200044647A
KR20200044647A KR1020190015940A KR20190015940A KR20200044647A KR 20200044647 A KR20200044647 A KR 20200044647A KR 1020190015940 A KR1020190015940 A KR 1020190015940A KR 20190015940 A KR20190015940 A KR 20190015940A KR 20200044647 A KR20200044647 A KR 20200044647A
Authority
KR
South Korea
Prior art keywords
deep learning
image
neural network
content
correction
Prior art date
Application number
KR1020190015940A
Other languages
English (en)
Other versions
KR102150190B1 (ko
Inventor
장샤를바장
정래혁
이승준
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to US16/599,590 priority Critical patent/US11100617B2/en
Publication of KR20200044647A publication Critical patent/KR20200044647A/ko
Application granted granted Critical
Publication of KR102150190B1 publication Critical patent/KR102150190B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Architecture (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Image Analysis (AREA)

Abstract

VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치가 제시된다. 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법은, 딥러닝 신경망(Deep Learning Neural Network)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계; 및 미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 단계를 포함하여 이루어질 수 있다.

Description

VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치{METHOD AND APPARATUS OF DEEP LEARNING FOR AUTOMATIC UPRIGHT RECTIFICATION OF VR CONTENTS}
아래의 실시예들은 VR 이미지의 직립 조정에 관한 것으로, 더욱 상세하게는 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치에 관한 것이다.
페이스북(Facebook), 애플(apple), 구글(Google), 마이크로소프트(Microsoft) 및 삼성(Samsung) 등과 같은 거대 글로벌 기업들은 가상 현실(Virtual Reality, VR)에 수십억 달러를 투자하고 있다. 지난 수 년 동안, 많은 360도 VR 카메라들이 시장에 등장했고 실-세계(real-world) VR 콘텐츠(contents)에 대한 수집(acquisition)을 엄청나게 대중화시켰다. 이 중 페이스북(Facebook)의 Surround 360, 구글(Google)의 Jump, 고프로(GoPro)의 Omni, 노키아(Nokia)의 OZO+, 삼성(Samsung)의 Gear 360을 예로 들 수 있다.
그러나, 높은 품질의 실-세계 VR 콘텐츠를 캡처(capture)하는 것은 여전히 어렵다. 예를 들어 실제 VR 카메라가 수직으로 똑바로 있지 않은 경우(not vertically straight), 캡처된 VR 이미지는 기울어진다. 그러므로 VR 헤드셋에서 디스플레이되는 이미지가 기울어질 것이며, 이는 VR 경험의 질을 떨어트리며 시각적인 불편함을 유발한다.
한국등록특허 10-1697713호는 이러한 가상 컨텐츠 생성 방법에 관한 것으로, 지능화된 파노라마 VR 컨텐츠를 생성하는 기술을 기재하고 있다.
한국등록특허 10-1697713호
실시예들은 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치에 관하여 기술하며, 보다 구체적으로 VR 장면 콘텐츠에 대한 자동 직립 조정을 위한 딥러닝-기반 접근법을 제공한다.
실시예들은 딥러닝 신경망(Deep Learning Neural Network)을 이용하여 입력된 VR 이미지로부터 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측하는 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치를 제공하는데 있다.
일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법은, 딥러닝 신경망(Deep Learning Neural Network)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계; 및 미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 단계를 포함하여 이루어질 수 있다.
상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 단계를 더 포함할 수 있다.
여기서, 상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계는, 컨볼루션 신경망(Convolutional Neural Network, CNN)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계일 수 있다.
상기 방향 정보는, 단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 중 적어도 어느 하나 이상으로 매개 변수화될 수 있다.
상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 단계를 더 포함할 수 있다.
상기 VR 이미지의 데이터 셋을 자동 생성하는 단계는, 인터넷으로부터 다수 개의 상기 VR 이미지들을 자동으로 다운로드하는 단계; 상기 VR 이미지들을 직립 상태로 가정하는 단계; 및 각각의 상기 VR 이미지에 대해 서로 다른 방향을 갖는 버전들을 합성하여(synthetically) 새로운 VR 이미지를 생성하는 단계를 포함할 수 있다.
생성된 상기 VR 이미지의 데이터 셋으로 상기 딥러닝 신경망을 학습시키는 단계를 더 포함할 수 있다.
또한, 상기 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 상기 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 단계를 더 포함할 수 있다.
상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계는, 상기 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 상기 VR 이미지들을 상기 딥러닝 신경망에 입력하고, 상기 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 단계는, 직립 교정된 상기 VR 이미지들에 대해 딥러닝 신경망 기반의 평가부를 통해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다.
다른 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치는, 입력된 VR 이미지로부터 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측하는 딥러닝 신경망(Deep Learning Neural Network)으로 구성되는 신경망부를 포함하여 이루어질 수 있다.
상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 데이터 생성부를 더 포함할 수 있다.
여기서, 상기 신경망부는 VR 카메라가 캡처한 상기 VR 이미지를 입력 받아 미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 방향 정보를 출력할 수 있다.
상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 교정부를 더 포함할 수 있다.
상기 딥러닝 신경망은, 컨볼루션 신경망(Convolutional Neural Network, CNN)일 수 있다.
그리고 상기 방향 정보는, 단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 중 적어도 어느 하나 이상으로 매개 변수화될 수 있다.
상기 데이터 생성부는, 인터넷으로부터 다수 개의 상기 VR 이미지들을 자동으로 다운로드하며, 상기 VR 이미지들을 직립 상태로 가정하고, 각각의 상기 VR 이미지에 대해 서로 다른 방향을 갖는 버전들을 합성하여(synthetically) 새로운 VR 이미지를 생성할 수 있다.
상기 신경망부는, 생성된 상기 VR 이미지의 데이터 셋으로 상기 딥러닝 신경망을 학습시킬 수 있다.
또 다른 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치는, 딥러닝 신경망(Deep Learning Neural Network)으로 구성되는 신경망부; 상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 입력부; 및 미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 출력부를 포함하여 이루어질 수 있다.
상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 데이터 생성부를 더 포함할 수 있다.
상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 교정부를 더 포함할 수 있다.
또한, 상기 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 상기 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 평가부를 더 포함할 수 있다.
상기 입력부는, 상기 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 상기 VR 이미지들을 상기 신경망부에 입력하고, 상기 평가부는, 딥러닝 신경망 기반으로 이루어져, 직립 교정된 상기 VR 이미지들에 대해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다.
실시예들에 따르면 딥러닝 신경망(Deep Learning Neural Network)을 이용하여 입력된 VR 이미지로부터 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측하는 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치를 제공할 수 있다.
실시예들에 따르면 시골, 숲 및 산 풍경과 같은 도시 장면 및 비-도시 장면을 포함하는 다양한 환경을 자동으로 처리하도록 설계된 딥러닝-기반 접근법을 통해 VR 장면 콘텐츠에 대한 자동 직립 조정이 가능하다.
도 1a 및 도 1b는 일 실시예에 따른 VR 이미지의 직립 조정을 설명하기 위한 도면이다.
도 2a 및 도 2b는 일 실시예에 따른 VR 이미지의 자동적 직립 조정에 대한 작업 흐름을 나타내는 도면이다.
도 3은 일 실시예에 따른 VR에서 계산된 복원 3D 포인트 클라우드의 직립 조정에 대한 작업 흐름을 나타내는 도면이다.
도 4는 일 실시예에 따른 실측 방향을 갖는 회전된 VR 이미지 자동 생성을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법을 나타내는 흐름도이다.
도 6은 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치를 나타내는 블록도이다.
도 7은 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치의 컴퓨터 시스템의 내부 구성을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 평가부를 이용한 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치를 설명하기 위한 도면이다.
도 9a, 도 9b 및 도 9c는 일 실시예에 따른 평가부의 메트릭(metric)을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 실시예들을 설명한다. 그러나, 기술되는 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명되는 실시예들에 의하여 한정되는 것은 아니다. 또한, 여러 실시예들은 당해 기술분야에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해서 제공되는 것이다. 도면에서 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
도 1a 및 도 1b는 일 실시예에 따른 VR 이미지의 직립 조정을 설명하기 위한 도면이다.
도 1a는 기존의 수직으로 똑바로 있지 않은 VR 카메라가 캡처한 입력 VR 이미지(즉, VR 콘텐츠)를 나타내며, 도 1b는 실시예들에 따른 접근법에 의해 자동적으로 얻어진 VR 이미지 직립 조정의 출력을 나타낸다.
본 발명의 실시예들은 VR 이미지의 직립 조정(upright adjustment)(또는 직립 교정(upright rectification))이라고도 하는 이 문제를 해결하는 것으로, 도 1의 (b)에 도시된 바와 같이, 마치 VR 카메라가 수직으로 똑바로 있었던 것처럼 입력 VR 이미지의 교정된 버전을 만드는 것이다. 아래에서 VR 이미지는 이미지 및 비디오를 포함하는 의미로 사용될 수 있다.
VR 이미지의 직립 조정을 위해 다양한 기술들이 제안되었다. 그러나, 기존의 기술들은 중요한 제약이 있다.
일례로, 사용자가 대화식으로(interactively) 이미지 방향을 조정할 수 있는 전용 소프트웨어를 사용하여 이미지를 수동으로 교정할 수 있다. 그러나 모든 이미지에 대해 반복해야 하는 것은 불편하고 수동적이며(manual) 시간 소모적인 과정이다. 이와 대조적으로, 실시예들에 따른 접근법은 완전히 자동으로 동작한다.
다른 예로, 카메라의 피치(pitch)과 롤(roll)을 조정하기 위해 삼각대와 불스 아이 레벨(bull's eye level)를 사용하는 등, 캡처 시에 가능한 한 수직으로 카메라를 설정할 수 있다. 그러나 이는 휴대용(hand-held) 카메라와 같은 다양한 사용 사례(use cases) 또는 회전 플랫폼(rotating platforms)(예: 드론)에 설치된 경우에는 적용할 수 없다. 이와 대조적으로, 실시예들에 따른 접근법은 후처리에 적용될 수 있으므로 휴대용 카메라와 로봇/이동 플랫폼(자동차, 드론, 로봇 등)에 설치될 때에도 동작할 수 있다.
또 다른 예로, 자이로스코프 데이터를 사용할 수 있다. 그러나 자이로스코프가 내장된 VR 카메라는 극소수에 불과하고, 그 중 일부는 오직 1-축(예: Samsung Gear 360의 피치)으로 제한되어 있으며, 추가적인 하드웨어를 필요로 하기 때문에, 비용이 많이 들어서 "현실의(in the wild)" 이미지(즉, 인터넷 이미지 또는 메타 데이터 정보 없음)에는 적용할 수 없다. 이와 대조적으로, 실시예들에 따른 접근법은 이러한 모든 한계를 극복할 수 있다.
다른 기술들은 이미지의 선과 소실점을 분석하여 이미지를 자동으로 교정할 수 있다. 그러나 그 기술들은 선을 포함하는 즉, 일반적으로 도시 환경에서 얻어지는 이미지에만 적용 가능하다. 이와 대조적으로, 실시예들은 인공적인 환경뿐만 아니라 시골, 숲 및 산의 풍경과 같은 일반적인 장면에서 동작할 수 있는 기술을 제시한다.
이와 같이 기존의 기술들은 이미지를 수동으로 교정하는 것을 필요로 하는데, 이는 불편하고 시간 소모적이다. 기존의 다른 기술들은 이미지의 선과 소실점을 분석하여 이미지를 자동으로 조정할 수 있지만, 이는 오직 인공 도시 환경(man-made urban environments)에만 적용할 수 있다.
이와 대조적으로, 실시예들은 시골, 숲 및 산 풍경과 같은 도시 장면 및 비-도시 장면을 포함하는 다양한 환경을 자동으로 처리하도록 설계된 새로운 딥러닝-기반 접근법을 제시한다. 여기서 딥러닝-기반 접근법은 심층 신경망(Deep Neural Network, DNN)을 의미하며, 예컨대 컨볼루션 신경망(Convolutional Neural Network, CNN)이 될 수 있다.
이러한 본 실시예들은 일반적인 VR 장면 콘텐츠에 대한 자동 직립 조정을 위한 세계 최초 딥러닝-기반 접근법이다.
딥러닝 신경망에 대한 입력은, 도 1a에 도시된 바와 같이, 임의의 VR 카메라가 캡처한 VR 이미지(또는 비디오)이다.
그리고 신경망의 출력은 VR 이미지의 "방향(orientation)"이다. 방향은 단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 등 여러 방법으로 매개 변수화될 수 있다. 실시예들에 따른 접근법은 이러한 매개 변수화에 국한되지 않는다.
VR 이미지의 측정된 방향이 주어지면, 그 방향의 "역(inverse)"을 적용하여 VR 이미지를 교정할 수 있다. 예를 들어, 도 1b에 도시된 바와 같이, VR 이미지의 직립 버전을 자동적으로 얻을 수 있다.
이러한 실시예들에 따른 접근법은 다양한 어플리케이션에 적용될 수 있다.
도 2a 및 도 2b는 일 실시예에 따른 VR 이미지의 자동적 직립 조정에 대한 작업 흐름을 나타내는 도면이다.
일례로 VR 이미지 및 비디오에 대한 자동 직립 조정에 적용될 수 있다. 먼저, 도 2a에 도시된 바와 같이, 기울어진 VR 이미지(210)를 컨볼루션 신경망(CNN)(220)에 입력함으로써 기울어진 정도를 나타내는 방향 각 등의 방향 정보(Up Vector)(230)를 출력할 수 있다. 여기서, 방향 정보(230)는 단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 등 여러 방법으로 매개 변수화될 수 있다.
그리고, 도 2b에 도시된 바와 같이, 컨볼루션 신경망(CNN)(220)을 통해 출력된 방향 정보(230)를 이용하여 기울어진 VR 이미지(210)를 교정(Rectification)(240)함으로써 직립 교정된 VR 이미지(250)를 획득할 수 있다.
도 3은 일 실시예에 따른 VR에서 계산된 복원 3D 포인트 클라우드의 직립 조정에 대한 작업 흐름을 나타내는 도면이다.
도 3에 도시된 바와 같이, 다른 예로 VR 이미지에서 계산된 복원 3D 포인트 클라우드(reconstructed 3D point cloud)에 대한 자동 직립 조정에 적용될 수 있다.
VR 이미지(310)를 컨볼루션 신경망(CNN)(320)에 입력하여 기울어진 정도를 나타내는 방향 각 등의 방향 정보(Up Vector)(330)를 출력할 수 있다. 이후, 출력된 방향 정보(330)를 이용하여 VR 이미지(310)에서 기울어진 포인트 클라우드(Tilted Point Cloud)(340)를 교정(Rectification)하여 교정된 3D 포인트 클라우드(Rectified Point Cloud)(350)를 획득할 수 있다.
실시예들에 따른 접근법은 두 가지 주요 모듈로 구성될 수 있다.
제1 모듈은 심층 신경망(DNN)을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 수백만 개의 VR 이미지들로 구성된 대규모 VR 이미지 데이터 셋(dataset)을 자동 생성할 수 있다. 그리고, 제2 모듈은 생성된 데이터로 학습하고 입력 VR 이미지로부터 방향 각(orientation angles)을 예측하는 심층 신경망(DNN)으로 구성될 수 있다. 이 때, 입력은 (임의의 VR 카메라가 캡처한) VR 이미지이고, 출력은 방향 각이 될 수 있다. 아래에서 제1 모듈 및 제2 모듈에 대해 보다 상세히 설명한다.
제1 모듈은 데이터를 생성할 수 있다. 여기서 제1 모듈은 딥러닝 기술을 사용하여 데이터를 생성할 수 있다. 예를 들어 컨볼루션 신경망(CNN)을 학습시키기 위해 수많은 사례들이 필요하다. 그러나 수많은 사례들을 수동으로 (다양한 방향으로 실제 VR 이미지를 수동으로 캡처하여) 얻는 것은 번거롭고 실제로는 거의 불가능하다. 따라서, 실시예들은 연관된 실측 방향을 갖는 VR 이미지들의 대규모 VR 이미지 데이터 셋을 자동으로 생성하기 위한 알고리즘을 제공할 수 있다.
제2 모듈은 위에서 설명한 데이터 셋, 즉 제1 모듈에서 생성된 대규모 VR 이미지 데이터 셋을 사용하여 신경망을 학습시킬 수 있다. 실시예들에 따른 접근법은 다양한 컨볼루션 신경망(CNN) 아키텍처(architecture), 손실 함수 및 방향 매개 변수화를 기반으로 할 수 있다.
특히, 제1 모듈은 자동적인 VR 이미지 데이터 셋의 생성이 가능하다.
이러한 제1 모듈은 딥러닝 신경망을 학습시키기 위해 실측 방향을 갖는 수백만 개의 VR 이미지로 구성된 대규모 VR 이미지 데이터 셋을 자동 생성할 수 있다. 예를 들어, 구글 스트리트 뷰(Google Street View) 또는 MIT 360Sun 데이터 셋과 같이 인터넷에서 자유롭게 사용할 수 있는 VR(360도x360도) 파노라마 이미지들의 대규모 컬렉션(collection)을 사용할 수 있다. 일 실시예들은 인터넷에서 수만 개의 VR 이미지를 자동으로 다운로드 했다. 이 VR 이미지들은 똑바르다고(straight) 가정하며, 이는 검증한 VR 이미지들의 대부분에서 유효하다. 그런 다음 각각의 VR 이미지에 대해, 서로 다른 방향을 갖는 다양한 버전을 합성하여(synthetically) 생성할 수 있다. 이러한 제1 모듈을 도 4를 통해 보다 상세히 설명할 수 있다.
도 4는 일 실시예에 따른 실측 방향을 갖는 회전된 VR 이미지 자동 생성을 설명하기 위한 도면이다.
도 4에서 도시된 바와 같이, 실시예들은 (직선) 파노라마 이미지인 직립 상태의 이미지(410)를 구체(sphere)에 투영하여 구체에 투영된 구형 이미지(420)를 획득한 다음, 무작위 방향으로 인위적으로 회전시켜 회전된 구형 이미지(430)를 획득할 수 있다. 그 후, 이 회전된 구형 이미지(430)를 2D 평면으로 다시 투영시켜 회전된 이미지(440)를 획득할 수 있으며, 이 회전된 이미지(440)는 기울어진 VR 이미지뿐만 아니라 실측 방향을 제공할 수 있다. 따라서 직립 상태의 이미지(410)로부터 기울어진 VR 이미지뿐만 아니라 실측 방향을 갖는 회전된 이미지(440)를 자동 생성할 수 있다.
최종적으로, 실시예들은 다양한 방향을 갖는 파노라마 VR 이미지들의 대규모 컬렉션(1백만 개 이상)을 얻으며, 그것들의 방향은 (합성하여 변경되었기(modified) 때문에) 이미 알려져 있다. 그 후, 이 대규모의 데이터 컬렉션은 실시예들에 따른 딥러닝 신경망을 교육하는 데 사용될 수 있다.
제2 모듈은 딥러닝 신경망(Deep Learning Neural Network)으로 구성될 수 있다.
제2 모듈은, 도 2a, 도 2b 및 도 3에서 설명한 바와 같이, 딥러닝 기반 심화 신경망(DNN)으로 구성될 수 있으며, 예컨대 컨볼루션 신경망(Convolutional Neural Network)으로 구성될 수 있다. 여기서 제2 모듈의 심화 신경망의 입력은 (임의의 VR 카메라가 캡처한) VR 이미지이며, 출력은 방향 정보이다. 심화 신경망은 제1 모듈에서 생성된 대규모 데이터 셋으로 학습될 수 있다.
실시예들에 따른 일반적인 심화 신경망 접근법은 다양한 컨볼루션 신경망(CNN) 아키텍처, 손실 함수 및 방향 매개 변수화를 기반으로 할 수 있다.
일 실시예들에 따른 실험에서, InceptionV3 컨볼루션 신경망(CNN) 구조를 기반으로 구축된 컨볼루션 신경망(CNN)을 사용했다. 본 특허에서 사용하는 컨볼루션 신경망(CNN)의 특정 아키텍처(Architecture)들은 다른 아키텍처로 대체될 수 있다.
실시예들에 따른 접근법은 심화 신경망을 학습시키기 위해 다양한 유형의 손실 함수(Loss functions)를 사용할 수 있다. 즉, 비용 함수(cost function) 대한 특정 선택에 국한되지 않는다. 예를 들어, L1, L2, log-cosh, Huber loss 등이 될 수 있다.
심화 신경망의 출력은 입력 이미지의 "방향(orientation)"이다. 방향은 단위 벡터, 회전각, 방위각+고각 및 사원수 등 여러 가지 방법으로 매개 변수화(Parameterizations)될 수 있다. 실시예들에 따른 접근법은 특정 매개 변수화에 국한되지 않는다.
아래에서 각 모듈에 대해 하나의 예를 들어 보다 구체적으로 설명하기로 한다. 아래에서 데이터 생성부는 제1 모듈이거나 제1 모듈을 포함할 수 있으며, 신경망부는 제2 모듈이거나 제2 모듈을 포함할 수 있다.
도 5는 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법을 나타내는 흐름도이다.
도 5를 참조하면, 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법은, 딥러닝 신경망(Deep Learning Neural Network)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계(S130), 및 미리 학습된 딥러닝 신경망을 통해 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 단계(S140)를 포함하여 이루어질 수 있다. 그리고 VR 이미지의 측정된 방향 정보에 따라 방향 정보의 역(inverse)을 적용하여 VR 이미지를 직립 교정하는 단계(S150)를 더 포함할 수 있다. 또한, 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 단계(S160)를 더 포함할 수 있다.
또한, 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 단계(S110), 및 생성된 VR 이미지의 데이터 셋으로 딥러닝 신경망을 학습시키는 단계(S120)를 더 포함할 수 있다.
실시예들은 딥러닝 신경망(Deep Learning Neural Network)을 이용하여 입력된 VR 이미지로부터 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측할 수 있다.
아래에서 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법의 각 구성을 보다 구체적으로 설명하기로 한다.
일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법은 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치를 이용하여 보다 구체적으로 설명할 수 있다.
도 6은 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치를 나타내는 블록도이다.
도 6을 참조하면, 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)는 신경망부(620)를 포함하고, 데이터 생성부(610) 및 교정부(630)를 더 포함하여 이루어질 수 있다. 한편, 교정부(630)는 신경망부(620)에 포함될 수도 있다. 또한, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)는 평가부를 더 포함할 수도 있다. 더욱이, 실시예에 따라 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)는 입력부 및 출력부를 더 포함할 수 있으며, 이는 아래에서 설명하기로 한다.
단계(S110)에서, 데이터 생성부(610)는 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들(601)로 구성된 VR 이미지(601)의 데이터 셋을 자동 생성할 수 있다.
보다 구체적으로, 데이터 생성부(610)는 VR 이미지(601)의 데이터 셋을 자동 생성하기 위해 인터넷으로부터 다수 개의 VR 이미지들을 자동으로 다운로드 할 수 있다. 그리고 데이터 생성부(610)는 다운로드된 VR 이미지들(601)을 직립 상태로 가정하며, 각각의 VR 이미지(601)에 대해 서로 다른 방향을 갖는 버전들을 합성하여(synthetically) 새로운 VR 이미지를 생성할 수 있다.
단계(S120)에서, 신경망부(620)는 생성된 VR 이미지(601)의 데이터 셋으로 딥러닝 신경망을 학습시킬 수 있다.
단계(S130)에서, 신경망부(620)는 미리 학습된 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지(601)를 입력할 수 있다. 여기서, 딥러닝 신경망은 컨볼루션 신경망(CNN)일 수 있다. 이에 따라 컨볼루션 신경망(CNN)에 VR 카메라가 캡처한 VR 이미지(601)를 입력할 수 있다. 이러한 VR 이미지(601)를 입력을 위해 별도의 입력부를 구성할 수도 있다.
단계(S140)에서, 신경망부(620)는 미리 학습된 딥러닝 신경망을 통해 VR 이미지의 기울어진 정도를 나타내는 방향 정보(602)를 출력할 수 있다. 이러한 VR 이미지(601)의 방향 정보(602)의 출력을 위해 별도의 출력부를 구성할 수도 있다.
여기서, VR 이미지(601)의 방향 정보(602)는 방향 각을 의미할 수 있다. 또한, 방향 정보(602)는 단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 중 적어도 어느 하나 이상으로 매개 변수화될 수 있다.
단계(S150)에서, 교정부(630)는 VR 이미지(601)의 측정된 방향 정보(602)에 따라 방향 정보(602)의 역(inverse)을 적용하여 VR 이미지(601)를 직립 교정할 수 있다. 한편, 교정부(630)는 신경망부(620)에 포함될 수 있으며, 이 경우 신경망부(620)의 교정부(630)는 VR 이미지(601)의 측정된 방향 정보(602)에 따라 방향 정보(602)의 역(inverse)을 적용하여 VR 이미지(601)를 직립 교정할 수 있다.
또한, 단계(S160)에서, 평가부는 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환할 수 있다.
이 때, 신경망부(620)는 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 VR 이미지들을 딥러닝 신경망에 입력할 수 있다. 한편, 별도의 입력부를 통해 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 VR 이미지들을 딥러닝 신경망에 입력할 수도 있다.
그리고, 평가부는 직립 교정된 VR 이미지들에 대해 딥러닝 신경망 기반의 평가부를 통해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다. 한편, 평가부를 이용한 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치 및 방법은 도 8을 참조하여 보다 상세히 설명하기로 한다.
실시예들에 따르면 시골, 숲 및 산 풍경과 같은 도시 장면 및 비-도시 장면을 포함하는 다양한 환경을 자동으로 처리하도록 설계된 딥러닝-기반 접근법을 통해 VR 장면 콘텐츠에 대한 자동 직립 조정이 가능하다.
한편, 다른 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)는 딥러닝 신경망으로 구성되는 신경망부(620), 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지(601)를 입력하는 입력부, 및 미리 학습된 딥러닝 신경망을 통해 VR 이미지(601)의 기울어진 정도를 나타내는 방향 정보(602)를 출력하는 출력부를 포함하여 이루어질 수 있다. 한편, 입력부는 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 VR 이미지들을 신경망부에 입력할 수 있다.
딥러닝 신경망을 학습시키기 위해 실측 방향을 갖는 다수 개의 VR 이미지들(601)로 구성된 VR 이미지(601)의 데이터 셋을 자동 생성하는 데이터 생성부(610)를 더 포함할 수 있다. 또한, VR 이미지(601)의 측정된 방향 정보(602)에 따라 방향 정보(602)의 역을 적용하여 VR 이미지(601)를 직립 교정하는 교정부(630)를 더 포함할 수 있다.
또한, 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 평가부를 더 포함할 수 있다. 이러한 평가부는 딥러닝 신경망 기반으로 이루어져, 직립 교정된 VR 이미지들에 대해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다.
이러한 다른 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)는 앞에서 설명한 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)의 구성과 동일하거나 유사하여 중복되는 설명은 생략하기로 한다.
이상과 같이 실시예들은 일반적인 장면을 위한 VR 이미지를 자동적으로 직립 조정하는 세계 최초의 학습 기반 접근법이다. 또한 실시예들에 따른 접근법이 해결하는 문제는 실-세계 VR의 대중화를 위해 요구되는 필수 기술이므로 VR 시장에서 매우 중요하다. 이러한 접근법은 기존 방법의 모든 실질적인 한계 또는 요구 사항을 극복할 수 있다.
특히, 실시예들에 따른 접근법은 이미지에 선이 존재한다고 가정하지 않고, 추가적인 하드웨어를 필요로 하지 않으며 일반적인 장면에 적용할 수 있다. 이러한 접근법은 완전히 자동적인 방법으로 동작하며 계산이 효율적이다. 처리 시간은 데스크탑(desktop) 컴퓨터로 약 100ms이다.
일 실시예에 따르면 딥러닝 기술을 사용하여 자동적인 VR 이미지 데이터 셋의 생성하고, 생성된 데이터 셋을 통해 딥러닝 신경망을 학습시킬 수 있다. 그리고 학습된 딥러닝 신경망을 이용하여 입력된 VR 이미지로부터 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측함으로써, 딥러닝 신경망을 통해 VR 콘텐츠의 자동적인 직립 교정을 수행할 수 있다. 아래에서 실시예를 통해 더 구체적으로 설명하기로 한다.
도 7은 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치의 컴퓨터 시스템의 내부 구성을 설명하기 위한 도면이다.
도 7을 참조하면, 예를 들어 일 실시예에 따른 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치는 컴퓨터 시스템(700)을 통해 구현될 수 있으며, 프로세서(710), 메모리(720), 영구 저장 장치(730), 버스(740), 입출력 인터페이스(750) 및 네트워크 인터페이스(760)를 포함할 수 있다.
프로세서(710)는 명령어들의 임의의 시퀀스를 처리할 수 있는 임의의 장치를 포함하거나 그의 일부일 수 있다. 이러한 프로세서(710)는 도 6에서 설명한 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(600)를 포함할 수 있다.
프로세서(710)는 예를 들어 컴퓨터 프로세서, 이동 장치 또는 다른 전자 장치 내의 프로세서 및/또는 디지털 프로세서를 포함할 수 있다. 프로세서(710)는 예를 들어, 서버 컴퓨팅 디바이스, 서버 컴퓨터, 일련의 서버 컴퓨터들, 서버 팜, 클라우드 컴퓨터, 컨텐츠 플랫폼, 이동 컴퓨팅 장치, 스마트폰, 태블릿, 셋톱 박스, 미디어 플레이어 등에 포함될 수 있다. 프로세서(710)는 버스(740)를 통해 메모리(720)에 접속될 수 있다.
메모리(720)는 컴퓨터 시스템(700)에 의해 사용되거나 그에 의해 출력되는 정보를 저장하기 위한 휘발성 메모리, 영구, 가상 또는 기타 메모리를 포함할 수 있다. 메모리(720)는 예를 들어 랜덤 액세스 메모리(RAM: random access memory) 및/또는 동적 RAM(DRAM: dynamic RAM)을 포함할 수 있다. 메모리(720)는 컴퓨터 시스템(700)의 상태 정보와 같은 임의의 정보를 저장하는 데 사용될 수 있다. 메모리(720)는 예를 들어 VR 이미지의 자동 직립 교정을 위한 명령어들을 포함하는 컴퓨터 시스템(700)의 명령어들을 저장하는 데에도 사용될 수 있다. 컴퓨터 시스템(700)은 필요에 따라 또는 적절한 경우에 하나 이상의 프로세서(710)를 포함할 수 있다.
버스(740)는 컴퓨터 시스템(700)의 다양한 컴포넌트들 사이의 상호작용을 가능하게 하는 통신 기반 구조를 포함할 수 있다. 버스(740)는 예를 들어 컴퓨터 시스템(700)의 컴포넌트들 사이에, 예를 들어 프로세서(710)와 메모리(720) 사이에 데이터를 운반할 수 있다. 버스(740)는 컴퓨터 시스템(700)의 컴포넌트들 간의 무선 및/또는 유선 통신 매체를 포함할 수 있으며, 병렬, 직렬 또는 다른 토폴로지 배열들을 포함할 수 있다.
영구 저장 장치(730)는 (예를 들어, 메모리(720)에 비해) 소정의 연장된 기간 동안 데이터를 저장하기 위해 컴퓨터 시스템(700)에 의해 사용되는 바와 같은 메모리 또는 다른 영구 저장 장치와 같은 컴포넌트들을 포함할 수 있다. 영구 저장 장치(730)는 컴퓨터 시스템(700) 내의 프로세서(710)에 의해 사용되는 바와 같은 비휘발성 메인 메모리를 포함할 수 있다. 영구 저장 장치(730)는 예를 들어 플래시 메모리, 하드 디스크, 광 디스크 또는 다른 컴퓨터 판독 가능 매체를 포함할 수 있다.
입출력 인터페이스(750)는 키보드, 마우스, 음성 명령 입력, 디스플레이 또는 다른 입력 또는 출력 장치에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 자동 직립 교정을 위한 VR 이미지 데이터 정보가 입출력 인터페이스(750)를 통해 수신될 수 있다.
네트워크 인터페이스(760)는 근거리 네트워크 또는 인터넷과 같은 네트워크들에 대한 하나 이상의 인터페이스를 포함할 수 있다. 네트워크 인터페이스(760)는 유선 또는 무선 접속들에 대한 인터페이스들을 포함할 수 있다. 구성 명령들 및/또는 자동 직립 교정을 위한 VR 이미지 데이터 정보는 네트워크 인터페이스(760)를 통해 수신될 수 있다.
도 8은 일 실시예에 따른 평가부를 이용한 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치를 설명하기 위한 도면이다.
도 8을 참조하면, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(800)는 신경망부(830) 및 평가부(850)를 포함할 수 있으며, 실시예에 따라 데이터 생성부 및 교정부를 포함하여 이루어질 수 있다. 또한, 실시예에 따라 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(800)는 입력부 및 출력부를 더 포함할 수 있다. 이러한 VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치(800)는 도 6에서 상세히 설명하였으므로, 추가 구성된 평가부(850)를 중심으로 설명하기로 한다.
입력부는 VR 이미지(810)(a)를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 VR 이미지들(820)(b)을 신경망부(830)에 입력할 수 있다.
이러한 입력부는 입력되는 VR 이미지(810)(a)를 여러 방향으로 미리 회전시킬 수 있다. 예를 들어 6 개의 방향, 그리고 6 개의 방향 및 회전각은 이미 정해져 있다. 한편, 입력되는 VR 이미지(810)(a)를 랜덤하게 회전시킬 수도 있다. 그러나 일반적으로 실험한 결과 단위 구면에서 균질하게(uniform) 샘플된 점들이 좋은 성능을 보인다.
신경망부(830)는 여러 방향으로 회전시킨 모든 VR 이미지들(820)(b)에 대해서 방향 정보(Up Vector)를 예측할 수 있다.
신경망부(830)의 입력은 VR 이미지(820)(b)이며 출력은 입력으로부터 예측한 방향 정보(Up Vector)가 될 수 있다. 여기서, 신경망부(830)는 딥러닝 신경망(예컨대 컨볼루션 신경망(CNN))이 될 수 있다.
교정부는 예측된 방향 정보(Up Vector)를 이용하여 VR 이미지를 보정할 수 있다. 즉, 교정부는 역회전(Inverse rotation)을 수행할 수 있다. 이 때 교정부는 신경망부(830)에 포함될 수 있다. 신경망부(830) 또는 신경망부(830)의 교정부를 통해 직립 교정된 복수의 VR 이미지들(840)을 출력할 수 있다. 예를 들어, 직립 교정된 복수의 VR 이미지들(840)을 c1, c2, c3, c4, c5 및 c6으로 표현할 수 있다.
평가부(850)(Evaluator)는 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 VR 이미지(840)에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지(860)(여기에서는, c3)를 반환할 수 있다. 보다 구체적으로, 평가부(850)는 직립 교정된 VR 이미지들에 대해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다.
평가부(850)는 신경망부(830)와 동일하게 딥러닝 신경망으로 이루어질 수 있으며, 예컨대 컨볼루션 신경망(CNN)으로 이루어질 수 있다. 평가부(850)의 입력은 VR 이미지이고, 출력은 예컨대 스칼라(scalar) 형태가 될 수 있으나 특정한 포맷이 정해져 있지 않고 다양한 형태로 출력될 수 있다.
이러한 평가부(850)는 입력된 VR 이미지(840)가 얼마나 기울어져 있는지를 판단할 수 있다. 예를 들어 VR 이미지(840)가 심하게 기울어져 있는 경우 평가부(850)는 아주 높은 값을 출력할 수 있으며, 반면 입력된 VR 이미지(840)가 조금만 기울어져 있는 경우 평가부(850)는 작은 값을 출력할 수 있다.
우수한 평가부(850)가 있는 경우 현재의 시스템을 더 강력하게(robust) 만들 수 있다. 왜냐하면 동일한 VR 이미지(840)이지만 방향 정보(Up Vector)가 특정한 값을 가질 때 실패하는 경우가 있기 때문이다. 예를 들어 동일한 VR 이미지(840)이지만 방향 정보(Up Vector)가 (30,127)
Figure pat00001
(구면좌표계의 phi,theta)일 때 신경망부(830)가 방향 정보(Up Vector)의 값을 매우 유사하게 예측할 수 있지만 방향 정보(Up Vector)가 (100,28)이면 신경망부(830)가 오작동 할 수 있다. 이런 경우 평가부(850)를 이용하여 극복할 수 있다.
만약 VR 이미지가 처음부터 오류가 발생하기 쉬운(Error-prone) 방향 정보(Up Vector)를 갖고 있는 경우, VR 이미지를 특정한 값으로 회전시킬 수 있다. 이 각도는 여러 개가 될 수 있다. 회전된 여러 개의 VR 이미지 있을 때, 평가부(850)로 평가를 한 후 그 중에 제일 좋은 것을 고를 수 있다.
이러한 평가부(850)를 학습시키는 방법은 앞에서 설명한 신경망부(830)를 학습시키는 방법과 유사할 수 있다. 다만, 다른 점은 신경망부(830)는 VR 이미지와 그에 해당하는 방향 정보(Up Vector)가 실측 자료(ground truth)로 주어지는 반면, 평가부(850)는 VR 이미지의 기울기에 따른 메트릭(metric)이 주어져야 한다. 예컨대, 사용 가능한 메트릭(metric)으로는 Geodesic Distance, Manhattan Distance, Frobenius Norm 등이 있다. 이 외에도 다른 여러 종류의 메트릭(metric)이 사용될 수 있다. 메트릭(metric)의 핵심은 이미지의 기울어짐과 연동되어 값이 변할 수 있다는 것이다.
도 9a, 도 9b 및 도 9c는 일 실시예에 따른 평가부의 메트릭(metric)을 설명하기 위한 도면이다.
평가부는 직립 교정된 VR 이미지들에 대해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)할 수 있다.
이 때, 사용 가능한 메트릭(metric)으로는 Geodesic Distance, Manhattan Distance, Frobenius Norm 등이 있다. 이 외에도 다른 여러 종류의 메트릭(metric)이 사용될 수 있다. 메트릭(metric)의 핵심은 이미지의 기울어짐과 연동되어 값이 변할 수 있다는 것이다.
도 9a에 도시된 바와 같이, Geodesic Distance(d)는 다음 식과 같이 나타낼 수 있다. 여기서, v2 는 방향 정보(Up Vector)가 될 수 있다.
[수학식 1]
Figure pat00002
또한, 기울어진 이미지의 방향 정보(Up Vector)를 v라 할 때, v는 다음 식과 같이 나타낼 수 있다.
[수학식 2]
Figure pat00003
여기서, Rotation Matrix R에 대해서, (R-I3)의 Frobenius Norm를 구할 수 있다. 이 때, I3은 다음 식과 같이 나타낼 수 있다.
[수학식 3]
Figure pat00004
도 9b에 도시된 바와 같이, Manhattan Distance는 d1+d2로 구할 수 있다. 여기서, d1은 구면 좌표계의 φ 방향으로의 움직임이고, d2는 θ 방향으로의 움직임일 수 있으며 다음 식과 같이 표현될 수 있다.
[수학식 4]
Figure pat00005
Manhattan Distance는 다음 식과 같이 표현될 수 있다.
[수학식 5]
Figure pat00006
여기서, arcos z는 Φ 방향으로의 움직임을 나타내며,
Figure pat00007
는 θ 방향으로의 움직임을 나타낼 수 있고, 다음 식과 같이 r을 표현할 수 있다.
[수학식 6]
Figure pat00008
예를 들어, 도 9c를 참조하면, (0, 0)과 (1, 1)의 Manhattan Distance는 2 = (1 + 1)가 될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (21)

  1. 딥러닝 신경망(Deep Learning Neural Network)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계; 및
    미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 단계
    를 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  2. 제1항에 있어서,
    상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 단계
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  3. 제1항에 있어서,
    상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계는,
    컨볼루션 신경망(Convolutional Neural Network, CNN)에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계인 것
    을 특징을 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  4. 제1항에 있어서,
    상기 방향 정보는,
    단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 중 적어도 어느 하나 이상으로 매개 변수화된 것
    을 특징을 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  5. 제1항에 있어서,
    상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 단계
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  6. 제5항에 있어서,
    상기 VR 이미지의 데이터 셋을 자동 생성하는 단계는,
    인터넷으로부터 다수 개의 상기 VR 이미지들을 자동으로 다운로드하는 단계;
    상기 VR 이미지들을 직립 상태로 가정하는 단계; 및
    각각의 상기 VR 이미지에 대해 서로 다른 방향을 갖는 버전들을 합성하여(synthetically) 새로운 VR 이미지를 생성하는 단계
    를 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  7. 제5항에 있어서,
    생성된 상기 VR 이미지의 데이터 셋으로 상기 딥러닝 신경망을 학습시키는 단계
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  8. 제2항에 있어서,
    상기 딥러닝 신경망을 통해 출력된 방향 정보(Up Vector)에 따라 직립 교정된 상기 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 단계
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  9. 제8항에 있어서,
    상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 단계는,
    상기 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 상기 VR 이미지들을 상기 딥러닝 신경망에 입력하고,
    상기 VR 이미지에 대해 기울어진 정도를 평가하고, 기울어진 정도가 작은 VR 이미지를 반환하는 단계는,
    직립 교정된 상기 VR 이미지들에 대해 딥러닝 신경망 기반의 평가부를 통해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)하는 것
    을 특징으로 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법.
  10. 입력된 VR 이미지로부터 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 예측하는 딥러닝 신경망(Deep Learning Neural Network)으로 구성되는 신경망부
    를 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  11. 제10항에 있어서,
    상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 데이터 생성부
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  12. 제10항에 있어서,
    상기 신경망부는,
    VR 카메라가 캡처한 상기 VR 이미지를 입력 받아 미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 방향 정보를 출력하는 것
    을 특징으로 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  13. 제10항에 있어서,
    상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 교정부
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  14. 제10항에 있어서,
    상기 딥러닝 신경망은,
    컨볼루션 신경망(Convolutional Neural Network, CNN)인 것
    을 특징을 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  15. 제10항에 있어서,
    상기 방향 정보는,
    단위 벡터, 회전각(rotation angles), 방위각(azimuth)+고각(elevation) 및 사원수(quaternion) 중 적어도 어느 하나 이상으로 매개 변수화된 것
    을 특징을 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  16. 제11항에 있어서,
    상기 데이터 생성부는,
    인터넷으로부터 다수 개의 상기 VR 이미지들을 자동으로 다운로드하며, 상기 VR 이미지들을 직립 상태로 가정하고, 각각의 상기 VR 이미지에 대해 서로 다른 방향을 갖는 버전들을 합성하여(synthetically) 새로운 VR 이미지를 생성하는 것
    을 특징으로 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  17. 제11항에 있어서,
    상기 신경망부는,
    생성된 상기 VR 이미지의 데이터 셋으로 상기 딥러닝 신경망을 학습시키는 것
    을 특징으로 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  18. 딥러닝 신경망(Deep Learning Neural Network)으로 구성되는 신경망부;
    상기 딥러닝 신경망에 VR 카메라가 캡처한 VR 이미지를 입력하는 입력부; 및
    미리 학습된 상기 딥러닝 신경망을 통해 상기 VR 이미지의 기울어진 정도를 나타내는 방향 정보를 출력하는 출력부
    를 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  19. 제18항에 있어서,
    상기 딥러닝 신경망을 학습시키기 위해 실측 방향(ground truth orientations)을 갖는 다수 개의 VR 이미지들로 구성된 상기 VR 이미지의 데이터 셋(dataset)을 자동 생성하는 데이터 생성부
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  20. 제18항에 있어서,
    상기 VR 이미지의 측정된 상기 방향 정보에 따라 상기 방향 정보의 역(inverse)을 적용하여 상기 VR 이미지를 직립 교정하는 교정부
    를 더 포함하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
  21. 제20항에 있어서,
    상기 입력부는,
    상기 VR 이미지를 복수 개의 방향으로 회전시키고, 회전된 복수 개의 상기 VR 이미지들을 상기 신경망부에 입력하고,
    상기 평가부는,
    딥러닝 신경망 기반으로 이루어져, 직립 교정된 상기 VR 이미지들에 대해 평가 메트릭(Evaluation metric)을 구한 후, 가장 좋은 평가를 받은 VR 이미지를 반환(return)하는 것
    을 특징으로 하는, VR 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 장치.
KR1020190015940A 2018-10-12 2019-02-12 Vr 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치 KR102150190B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/599,590 US11100617B2 (en) 2018-10-12 2019-10-11 Deep learning method and apparatus for automatic upright rectification of virtual reality content

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180121714 2018-10-12
KR20180121714 2018-10-12

Publications (2)

Publication Number Publication Date
KR20200044647A true KR20200044647A (ko) 2020-04-29
KR102150190B1 KR102150190B1 (ko) 2020-09-01

Family

ID=70466736

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190015940A KR102150190B1 (ko) 2018-10-12 2019-02-12 Vr 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102150190B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101697713B1 (ko) 2016-06-28 2017-01-19 (주)인트라테크 지능화된 파노라마 vr 컨텐츠를 생성하는 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101697713B1 (ko) 2016-06-28 2017-01-19 (주)인트라테크 지능화된 파노라마 vr 컨텐츠를 생성하는 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jung et al. Robust upright adjustment of 360 spherical panoramas. The Visual Computer, 2017년 5월, pp. 737-747. 1부.* *
Su & Grauman. Learning spherical convolution for fast features from 360 imagery. NIPS, 2017년, pp. 1-11. 1부.* *
홍은빈 외 3명. 딥러닝을 이용한 영상 수평 보정. 컴퓨터그래픽스학회논문지, 2017년 7월, pp. 95-103. 1부.* *

Also Published As

Publication number Publication date
KR102150190B1 (ko) 2020-09-01

Similar Documents

Publication Publication Date Title
US10497099B2 (en) Automatic orientation adjustment of spherical panorama digital images
US10600150B2 (en) Utilizing an inertial measurement device to adjust orientation of panorama digital images
WO2021174939A1 (zh) 人脸图像的获取方法与系统
US8811674B2 (en) Incorporating video meta-data in 3D models
CN110062934A (zh) 使用神经网络确定图像中的结构和运动
CN109191554B (zh) 一种超分辨图像重建方法、装置、终端和存储介质
CN107646126A (zh) 用于移动设备的相机姿态估计
CN109887003A (zh) 一种用于进行三维跟踪初始化的方法与设备
US8803880B2 (en) Image-based lighting simulation for objects
CN115690382B (zh) 深度学习模型的训练方法、生成全景图的方法和装置
CN112927362A (zh) 地图重建方法及装置、计算机可读介质和电子设备
CN109241968B (zh) 图像内容倾斜角度预测网络训练方法及修正方法、系统
WO2022052782A1 (zh) 图像的处理方法及相关设备
CN116051747A (zh) 一种基于缺失点云数据的房屋三维模型重建方法及设备、介质
US11100617B2 (en) Deep learning method and apparatus for automatic upright rectification of virtual reality content
US11272164B1 (en) Data synthesis using three-dimensional modeling
CN116228962A (zh) 大场景神经视图合成
CN111402136A (zh) 全景图生成方法、装置、计算机可读存储介质及电子设备
CN109145688A (zh) 视频图像的处理方法及装置
WO2024060708A1 (zh) 目标检测方法和装置
KR102150190B1 (ko) Vr 콘텐츠의 자동적인 직립 교정을 위한 딥러닝 방법 및 장치
US20100156910A1 (en) System and method for mesh stabilization of facial motion capture data
CN107248138B (zh) 虚拟现实环境中的人类视觉显著性预测方法
US20230073366A1 (en) Methods and apparatuses for calculating building heights from mono imagery
CN116030221A (zh) 增强现实画面的处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant