KR20190030565A - 전자 장치 및 그 동작방법 - Google Patents
전자 장치 및 그 동작방법 Download PDFInfo
- Publication number
- KR20190030565A KR20190030565A KR1020180053924A KR20180053924A KR20190030565A KR 20190030565 A KR20190030565 A KR 20190030565A KR 1020180053924 A KR1020180053924 A KR 1020180053924A KR 20180053924 A KR20180053924 A KR 20180053924A KR 20190030565 A KR20190030565 A KR 20190030565A
- Authority
- KR
- South Korea
- Prior art keywords
- degree video
- pixel
- electronic device
- degree
- user
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title claims description 9
- 230000000087 stabilizing effect Effects 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 57
- 238000010801 machine learning Methods 0.000 claims description 20
- 239000013598 vector Substances 0.000 claims description 13
- 230000000007 visual effect Effects 0.000 claims description 6
- 238000009877 rendering Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 19
- 238000012545 processing Methods 0.000 description 9
- 230000006641 stabilisation Effects 0.000 description 6
- 238000011105 stabilization Methods 0.000 description 6
- 239000000470 constituent Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 206010028813 Nausea Diseases 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000004886 head movement Effects 0.000 description 2
- 230000008693 nausea Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 206010025482 malaise Diseases 0.000 description 1
- 201000003152 motion sickness Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000008929 regeneration Effects 0.000 description 1
- 238000011069 regeneration method Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 208000024891 symptom Diseases 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/122—Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/64—Imaging systems using optical elements for stabilisation of the lateral and angular position of the image
- G02B27/646—Imaging systems using optical elements for stabilisation of the lateral and angular position of the image compensating for small deviations, e.g. due to vibration or shake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N99/00—Subject matter not provided for in other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/111—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
- H04N13/117—Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/30—Image reproducers
- H04N13/366—Image reproducers using viewer tracking
- H04N13/383—Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6811—Motion detection based on the image signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/681—Motion detection
- H04N23/6815—Motion detection by distinguishing pan or tilt from motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/68—Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
- H04N23/682—Vibration or motion blur correction
- H04N23/683—Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0085—Motion estimation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Optics & Photonics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Processing Or Creating Images (AREA)
Abstract
하나 이상의 인스트럭션들을 저장하는 메모리, 및 메모리에 저장된 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 360도 비디오가 재생될 때, 360도 비디오의 프레임에 포함되는 복수의 픽셀들 각각이 사용자의 시야(FOV)에 포함될 가능성에 기초하여, 복수의 픽셀들 각각에 확률 값을 할당하고, 할당된 확률 값들에 기초하여, 360도 비디오에 대한 3차원 회전을 결정하고, 3차원 회전을 360도 비디오에 적용하여, 안정화된 360도 비디오를 생성하는, 360도 비디오를 안정화시키는 전자 장치가 개시된다.
Description
다양한 실시예들은 전자 장치 및 그 동작방법에 관한 것으로서, 더욱 상세하게는 360도 비디오를 안정화시키는 전자 장치 및 그 동작방법에 관한 것이다.
360도 비디오가 재생될 때, 사용자들은 소위 가상 현실(VR) 병(sickness)을 겪는다. 가상 현실 병은 증상의 측면에서 멀미와 몇 가지 유사한 점을 나타낸다. 가상 현실 병은 사용자가 VR을 경험하는 동안 모순된 감각 입력을 받는 결과로 볼 수 있다. 가상 현실 병은 바람직하지 않은 카메라 움직임(예를 들어, 흔들림 또는 손떨림)을 보정하기 위한 비디오 안정화를 사용하여 완화할 수 있다. 카메라 흔들림은 휴대용 카메라 체제에서 캡쳐되는 비디오에서 특히 중요할 수 있다.
비디오 안정화는 사후 처리 단계이며, 대부분의 비디오 안정화 기술은 두 가지 별도의 작업을 수행해야 한다. 첫 번째로, 원하지 않는 움직임은 추정된 카메라 궤적으로부터 검출되고 억제되며, 두 번째로 카메라의 안정된 궤적과 원래의 영상 시퀀스를 사용하여 새로운 영상 시퀀스를 생성한다. 그러나 장면의 다른 부분이 다른 속도 또는 다른 방향으로 움직이는 경우, 장면의 모든 부분과 관련하여 비디오를 안정화할 수 없다. 따라서 비디오 안정화가 적용된 후에도 여전히 사용자는 불편함을 경험할 수 있다. 따라서, 360도 비디오를 안정화시키는 개선된 방법이 필요하다.
다양한 실시예들은, 360도 비디오의 하나 이상의 프레임들에 포함되는 픽셀들 각각에 할당된 확률 값들에 기초하여, 360도 영상을 안정화시킬 수 있는 전자 장치 및 그 동작방법을 제공할 수 있다.
일 실시예에 따른 360도 비디오를 안정화시키는 전자 장치는, 하나 이상의 인스트럭션들을 저장하는 메모리, 및 상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고, 상기 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써, 상기 360도 비디오가 재생될 때, 상기 360도 비디오의 프레임에 포함되는 복수의 픽셀들 각각이 사용자의 시야(FOV)에 포함될 가능성에 기초하여, 상기 복수의 픽셀들 각각에 확률 값을 할당하고, 상기 할당된 확률 값들에 기초하여, 상기 360도 비디오에 대한 3차원 회전을 결정하고, 상기 3차원 회전을 상기 360도 비디오에 적용하여, 안정화된 360도 비디오를 생성할 수 있다.
일 실시예에 따른 프로세서는, 상기 360도 비디오를 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제1 이력 데이터에 기초하여, 상기 복수의 픽셀들 각각에 상기 확률 값을 할당할 수 있다.
일 실시예에 따른 프로세서는, 상기 복수의 픽셀들 중 하나의 픽셀에 할당되는 확률 값은, 상기 픽셀이 가지는 하나 이상의 특성들에 기초하여 결정되고, 상기 하나 이상의 특성들은, 상기 픽셀이 포함된 객체의 타입, 카메라와 상기 360도 비디오의 프레임에서 상기 픽셀이 포함되는 영역 사이의 거리에 관련된 깊이 속성, 상기 360도 비디오 프레임 내에서, 하나 이상의 다른 영역들에 비해, 상기 픽셀이 위치하는 영역의 시각적 중요성, 상기 픽셀과 연관된 모션 벡터, 상기 픽셀이 포함된 360도 영상의 돌출 맵(saliency map)의 경계, 및 상기 360도 비디오 프레임 내의 하나 이상의 사운드 소스에 대응하는 픽셀의 위치 중 적어도 하나를 포함할 수 있다.
일 실시예에 따른 프로세서는, 상기 픽셀의 상기 하나 이상의 특성들을 입력으로 수신하는 기계 학습 알고리즘을 이용하여, 상기 픽셀에 할당되는 확률 값을 결정할 수 있다.
일 실시예에 따른 프로세서는, 하나 이상의 다른 360도 비디오들을 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제2 이력 데이터 및 상기 하나 이상의 다른 360도 비디오들에 포함된 픽셀들의 알려진 특성들을 이용하여, 상기 기계 학습 알고리즘을 학습시킬 수 있다.
일 실시예에 따른 프로세서는, 상기 결정된 회전에 따라 상기 360도 비디오의 데이터를 회전하고, 상기 회전된 데이터를 렌더링함으로써, 상기 안정화된 360도 비디오를 생성할 수 있다.
일 실시예에 따른 프로세서는, 상기 결정된 회전에 따라 상기 360도 비디오에 대한 3차원 회전 파라미터의 값을 설정할 수 있다.
일 실시예에 따른 프로세서는, 상기 360도 비디오에 포함되는 하나 이상의 픽셀들을 적어도 하나의 클러스터에 할당하고, 상기 클러스터에 포함되는 픽셀들에 할당된 확률 값들에 기초하여, 상기 클러스터에 대한 상기 3차원 회전을 결정할 수 있다.
일 실시예에 따른 프로세서는, 상기 사용자의 현재 시점에 대응하는 클러스터를 선택하고, 상기 선택된 클러스터에 대한 3차원 회전을 상기 360도 비디오에 적용하여, 상기 안정화된 360도 비디오를 생성할 수 있다.
일 실시예에 따른 프로세서는, 상기 사용자의 현재 시야의 중심을 상기 사용자의 현재 시점으로 결정할 수 있다.
일 실시예에 따른 프로세서는, 시선 추적을 이용하여, 상기 사용자의 현재 시점을 결정할 수 있다.
일 실시예에 따른 360도 비디오를 안정화시키는 전자 장치는, 상기 안정화된 360도 비디오를 표시하는 디스플레이를 더 포함할 수 있다.
일 실시예에 따른 360도 비디오를 안정화시키는 전자 장치의 동작 방법은, 상기 360도 비디오가 재생될 때, 상기 360도 비디오의 프레임에 포함되는 복수의 픽셀들 각각이 사용자의 시야에 포함될 가능성에 기초하여, 상기 복수의 픽셀들 각각에 확률 값을 할당하는 단계, 상기 할당된 확률 값들에 기초하여, 상기 360도 비디오에 대한 3차원 회전을 결정하는 단계, 및 상기 3차원 회전을 상기 360도 비디오에 적용하여, 안정화된 360도 비디오를 생성하는 단계를 포함 포함할 수 있다.
일 실시예에 따른 전자 장치는, 360도 비디오를 안정화할 수 있어, 360도 비디오를 시청하는 사용자의 멀미 문제나 어지러움을 감소시킬 수 있다.
도 1은 360도 비디오용 비디오 데이터의 형식들을 나타내는 도면이다.
도 2는 일 실시예에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 3은 일 실시예에 따른 전자 장치가 360도 비디오를 안정화시키는 방법을 나타내는 흐름도이다.
도 4는 일 실시예에 따른 전자 장치가 안정화된 360도 비디오를 생성하는 방법을 나타내는 흐름도이다.
도 5 및 도 6은, 일 실시예에 따른 전자 장치가 360도 비디오에 대한 확률 값들을 결정하는 방법을 설명하기 위해 참조되는 도면들이다.
도 7은 도 5의 360도 비디오의 프레임에 대한 예시적인 픽셀 확률 맵을 나타내는 도면이다.
도 8은 일 실시예에 따른 전자 장치가 다양한 픽셀 특성들에 기초하여, 확률 값들을 결정하는 방법을 나타내는 흐름도이다.
도 9는 일 실시예에 따른 전자 장치가 복수의 클러스터들 각각에 대한 안정화하는 회전을 결정하는 방법을 나타내는 흐름도이고, 도 10 내지 도 11d는, 도 9의 방법을 설명하기 위해 참조되는 도면들이다.
도 12는 일 실시예에 따른 전자 장치의 동작방법을 나타내는 흐름도이다.
도 13은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 14는 다른 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 3은 일 실시예에 따른 전자 장치가 360도 비디오를 안정화시키는 방법을 나타내는 흐름도이다.
도 4는 일 실시예에 따른 전자 장치가 안정화된 360도 비디오를 생성하는 방법을 나타내는 흐름도이다.
도 5 및 도 6은, 일 실시예에 따른 전자 장치가 360도 비디오에 대한 확률 값들을 결정하는 방법을 설명하기 위해 참조되는 도면들이다.
도 7은 도 5의 360도 비디오의 프레임에 대한 예시적인 픽셀 확률 맵을 나타내는 도면이다.
도 8은 일 실시예에 따른 전자 장치가 다양한 픽셀 특성들에 기초하여, 확률 값들을 결정하는 방법을 나타내는 흐름도이다.
도 9는 일 실시예에 따른 전자 장치가 복수의 클러스터들 각각에 대한 안정화하는 회전을 결정하는 방법을 나타내는 흐름도이고, 도 10 내지 도 11d는, 도 9의 방법을 설명하기 위해 참조되는 도면들이다.
도 12는 일 실시예에 따른 전자 장치의 동작방법을 나타내는 흐름도이다.
도 13은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 14는 다른 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 실시예들에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서의 실시예에서 “사용자”라는 용어는 전자 장치의 기능 또는 동작을 제어하는 사람을 의미하며, 관리자 또는 설치 기사를 포함할 수 있다.
도 1은 360도 비디오용 비디오 데이터의 형식들을 나타내는 도면이다.
일 실시예에 따른 360도 비디오용 비디오 데이터는 다양한 형식으로 표현될 수 있다. 도 1을 참조하면, 360도 비디오의 프레임에 대한 비디오 데이터는 단위 구(unit sphere) 형식, 큐브 맵 프로젝션(cube map projection) 형식, 등장방형 도법(equirectangular projection) 형식으로 표현될 수 있다. 단위 구 형식에서는, 가상 구(10)의 표면 상의 각 픽셀의 위치를 3차원 좌표계에서의 좌표 값으로 정의할 수 있다. 큐브 맵 프로젝션(20) 또는 등장방형 도법(30)에서는, 등가의 2차원 표현이 사용될 수 있다. 큐브 맵 프로젝션(20)에서, 가상 큐브의 각 면에 대한 영상 데이터는 90 ° × 90 ° 시야에 걸친 2 차원 이미지로서 저장될 수 있다. 등장방형 도법(30)에서, 비디오 데이터는 360 ° × 180 ° 시야에 걸친 하나의 2 차원 이미지로서 저장될 수 있다. 또한, 도 1에서 '상부(top)', '하부(bottom)', '전면(front)', '후면(back)', '좌측(left)' 및 '우측(right)'이라는 라벨들은 등가 프로젝션들(예를 들어, 단위 구 형식, 큐브 맵 프로젝션 형식, 등장방형 도법 형식) 각각에서의 비디오 데이터의 대응 영역들을 나타낸다. 도 1에 도시된 형식들은 단지 예시로서 설명되는 것이며, 다른 실시 예들에서, 360도 비디오에 대한 비디오 데이터는 도 1에 도시된 형식과 상이한 형식으로 저장될 수 있다.
도 2는 일 실시예에 따른 전자 장치의 동작 방법을 나타내는 흐름도이다.
도 2를 참조하면, 일 실시예에 따른 전자 장치는, 360도 비디오 프레임의 픽셀들 각각에 확률 값들을 할당할 수 있다(S210).
예를 들어, 전자 장치(100)는 360도 비디오가 재생될 때, 360도 비디오의 프레임에 포함되는 픽셀들 각각이 사용자의 시야(FOV: Field of View)에 포함될 가능성에 기초하여, 픽셀들 각각에 확률 값을 할당할 수 있다. 전자 장치(100)는 360도 비디오를 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 시청 이력 데이터에 기초하여, 픽셀들 각각에 확률 값을 할당할 수 있다. 이에 대해서는, 후술하는 도 3에서 자세히 설명하기로 한다. 또는, 전자 장치(100)는 픽셀이 가지는 하나 이상의 특성들에 기초하여, 픽셀에 확률 값을 할당할 수 있다. 전자 장치(100)는 픽셀의 하나 이상의 특성들을 입력으로 수신하는 기계 학습 알고리즘을 이용하여, 픽셀에 할당되는 확률 값을 결정할 수 있다. 이에 대해서는, 후술하는 도 5 내지 8에서 자세히 설명하기로 한다.
전자 장치(100)는, 할당된 확률 값들에 기초하여, 3차원 회전을 결정할 수 있다(S220) 예를 들어, 전자 장치(100)는 시야에 포함될 확률이 높은 픽셀에 대해 360도 비디오를 안정화하는 회전을 결정할 수 있다. 예를 들어, 전자 장치(100)는 현재 프레임에 대한 모션 벡터를 감소시키도록 회전을 결정할 수 있다. 전자 장치(100)는 360도 비디오의 현재 프레임에 걸쳐있는 모션 벡터들을, 픽셀 확률 값들을 이용하여, 가중하고, 평균한 가중 평균 모션 벡터를 3차원 회전으로 변환할 수 있다. 전자 장치(100)는 변환된 3차원 회전과 크기는 동일하고 방향은 반대되는 회전을 안정화하는 회전으로 결정할 수 있다. 다만, 이에 한정되지 않는다.
또한, 전자 장치(100)는 결정된 3차원 회전에 따라, 360도 비디오와 연관된 메타 데이터에서 3D 회전 파라미터 값을 설정할 수 있다.
전자 장치(100)는, 3차원 회전을 360도 비디오 데이터에 적용하여, 안정화된 360도 비디오를 생성할 수 있다(S230).
예를 들어, 전자 장치(100)는 사용자가 360도 비디오를 시청하고자 할 때, 360도 비디오와 연관된 메타 데이터로부터 3D 회전 파라미터의 값을 독출할 수 있다. 또한, 전자 장치(100)는 3D 회전 파라미터의 값에 기초하여, 현재 비디오 프레임에 적용할 3차원 회전을 결정할 수 있다. 전자 장치(100)는 360도 비디오의 현재 프레임의 비디오 데이터를 결정된 3차원 회전에 따라 회전하고, 회전된 비디오 데이터를 렌더링함으로써 안정화된 360도 비디오를 생성할 수 있다. 다만, 이에 한정되지 않는다.
도 3은 일 실시예에 따른 전자 장치가 360도 비디오를 안정화시키는 방법을 나타내는 흐름도이다. 실시 예에 따라, 도 3의 방법에 포함되는 모든 단계들이 동일한 장치에서 수행될 수 있으며, 또는 일부 단계들은 다른 장치들에서 수행될 수 있다. 도 3에 도시된 임의의 단계들은 특정 실시 예에 따라 소프트웨어 또는 하드웨어로 수행될 수 있다. 하나 이상의 단계들이 소프트웨어로 수행될 때, 상기 방법을 수행하기 위한 장치는 하나 이상의 프로세서들을 포함하는 프로세싱 유닛과, 상기 프로세싱 유닛에 의해 실행될 때 방법의 각 단계들을 수행하는 컴퓨터 프로그램 명령들이 저장되는 컴퓨터 판독 가능 메모리를 포함할 수 있다.
도 3을 참조하면, 전자 장치(100)는 360도 비디오에 대한 시청 이력 데이터를 획득할 수 있다(S310). 시청 이력 데이터(historical viewing data)는 360도 비디오를 시청할 때 이전 사용자의 시야에 대한 정보를 포함한다. 시청 이력 데이터는, 예를 들어, 310 단계(S310)에서 전자 장치(100)는 현재의 360도 비디오 파일의 식별자를 외부 서버로 전송할 수 있다. 외부 서버는 저장된 시청 이력 데이터들 중 식별된 360도 비디오 파일에 대응하는 시청 이력 데이터를 검색할 수 있다. 외부 서버는 검색된 시청 이력 데이터를 전자 장치(100)로 전송하고, 전자 장치(100)는 외부 서버로부터 360도 비디오 파일에 대응하는 시청 이력 데이터를 수신할 수 있다.
또는, 시청 이력 데이터는 로컬 메모리에 저장될 수 있다. 예를 들어, 일부 실시 예에서 시청 이력 데이터는 360도 비디오 파일의 메타 데이터로써, 360도 비디오 파일에 내장될 수 있다. 다만, 이에 한정되지 않는다.
다양한 방법들이 360도 비디오를 재생하는 동안 임의의 주어진 시점에서 이전 사용자의 시야를 결정하는데 사용될 수 있다. 예를 들어, 사용자는, 자이로스코프 또는 가속도계와 같은 센서를 사용하여 사용자의 머리 움직임을 추적하고 그에 따라 비디오의 시야를 회전시키는 장치를 통해, 360도 비디오를 시청할 수 있다. 이러한 경우, 360도 비디오가 재생되는 동안 임의의 시점에 표시되는 시야는, 사용자가 그 시점에서 현재 향하고 있는 방향에 대응할 수 있다. 이러한 경우, 시야의 중심은 사용자의 주의가 집중되는 지점으로 가정될 수 있고, 360도 비디오가 재생되는 동안, 해당 지점이 사용자의 시야를 나타내는 것으로 간주 될 수 있다. 대안적으로, 시선 추적 기능이라 일컫는 사용자의 눈 움직임을 추적할 수 있는 기능을 가진 시선 추적 장치를 통해 사용자가 360도 비디오를 시청하고 있다면, 시선 추적 장치는 시선 추적 기능을 사용하여, 사용자가 현재 보고 있는 픽셀 좌표와 같은 360도 비디오의 부분을 식별할 수 있다. 또 다른 대안으로서, 일부 실시 예들에서, 360도 비디오가 컴퓨터 모니터와 같은 종래의 디스플레이 상에 보여질 때, 마우스 또는 터치 스크린과 같은 적절한 입력 장치가 360도 비디오를 재생하는 동안 카메라의 방향을 변경하는데 이용될 수 있다.
일 실시 예에서, 전자 장치(100)는 현재 360도 비디오를 시청하고 있는 동일한 사용자에 대한 시청 이력 데이터를 획득할 수 있다. 현재 사용자에 대한 시청 이력 데이터가 이용 가능한 경우, 픽셀에 대한 확률 값을 계산할 때 다른 사용자에 대한 시야 통계에 비해 현재 사용자의 시야 통계에 더 많은 가중치가 주어질 수 있다. 또한, 현재의 360도 비디오가 아닌 다른 360도 비디오들에 대한 현재의 사용자에 대한 시청 이력 데이터가 이용 가능한 경우, 현재의 360도 비디오에 대한 픽셀 확률 값들은 다른 360 비디오들에 대한 시청 이력 데이터를 기초로 예측될 수 있으며, 다른 360 비디오들에 대한 시청 이력 데이터는 360도 비디오들을 시청할 때 현재 사용자의 이전 행동에 대한 정보를 포함할 수 있다.
전자 장치(100)는 360도 비디오의 프레임들의 복수의 픽셀들 각각에 확률 값들을 할당할 수 있다(S320). 픽셀에 할당된 확률 값은 360도 비디오가 재생될 때 픽셀이 시야에 포함될 가능성과 관련이 있다. 확률 값들은 집합적으로 픽셀 확률 맵으로 표현될 수 있다. 일 실시 예에서, 310 단계(S310)에서 획득된 시청 이력 데이터는 360도 비디오의 프레임 내의 어느 영역이 사용자에게 가장 관심이 있는지를 결정하는데 사용될 수 있다. 전자 장치(100)는 획득된 시청 이력 데이터에 기초하여, 이전 사용자들의 시야에 더 자주 포함되는 픽셀에 높은 확률 값을 할당할 수 있다. 예를 들어, 픽셀에 대한 확률 값은, 픽셀이 이전 사용자들의 시야 중심에 있거나 그 부근에 있었던 횟수를 카운팅함으로써 결정될 수 있다.
일 실시 예에서, 현재의 360도 비디오에 대해 시청 이력 데이터가 이용 가능하지 않은 경우, 확률 값을 결정하는 다른 방법이 사용될 수 있다. 그러한 실시 예에서, 310 단계(S310)는 생략될 수 있다. 확률 값을 결정하기 위한 다른 방법들의 예는 도 4 내지 도 7을 참조하여 후술하기로 한다.
다시, 도 3을 참조하면, 전자 장치(100)는 할당된 확률 값들에 기초하여, 360도 비디오를 안정화시키기 위한 3차원 회전을 결정할 수 있다(S330).
따라서, 결정된 회전은 안정화하는 회전으로 지칭될 수 있다. 안정화하는 회전은 시야에 포함될 확률이 높은 픽셀에 대해 360도 비디오를 안정화하도록 선택되는 회전일 수 있다. 이러한 방식으로, 안정화하는 회전은 360도 비디오의 각 프레임의 비디오 데이터에 적용될 수 있다. 그 결과, 비디오가 디스플레이 될 때, 사용자에 의해 보여지는 이미지는, 사용자의 주의 집중될 가능성이 가장 큰 것으로 보여지는 픽셀에 대해 안정화될 수 있다. 이렇게 하면 사용자가 볼 가능성이 있는 이미지 부분을 안정적으로 유지함으로써, 일반적으로 360도 비디오와 관련된 멀미 문제를 완화하는 데 도움이 된다.
전자 장치(100)는 임의의 적합한 방법을 사용하여, 안정화하는 회전을 결정할 수 있다. 예를 들어, 전자 장치(100)는 360도 비디오의 이전 프레임에 대한 모션 벡터를 고려하여 안정화하는 회전을 결정할 수 있다. 안정화하는 회전은, 현재 프레임에 대한 모션 벡터를 감소시키도록 결정될 수 있다. 예를 들어, 전자 장치(100)는 현재 프레임에 걸쳐있는 모션 벡터들을 가중하여, 전체 프레임에 대한 가중 평균 모션 벡터를 계산하는데 픽셀 확률 값들을 이용할 수 있다. 또한, 전자 장치(100)는 가중 평균 모션 벡터를 3 차원 회전으로 변환할 수 있으며, 변환된 3차원 회전과 크기는 동일하고 방향은 반대되는 회전을, 안정화하는 회전으로 설정할 수 있다. 이러한 방식으로, 안정화하는 회전을 결정하면, 360도 비디오의 재생 중에 사용자의 주의가 집중될 것으로 여겨지는 픽셀들과 연관된 모션 벡터들에 더 많은 가중치가 부여되므로, 비디오는 사용자의 주의가 집중될 확률이 높은 픽셀들에 대해 더 안정화된 것처럼 보일 수 있다.
다른 실시 예에서, 전자 장치(100)는 특징들을 추출하기 위해, 현재 프레임(i)에 적용되는 시각(vision) 기반 처리 방법을 이용하여, 안정화하는 회전을 결정할 수 있다. 시각 기반 처리에서, 특징들은, '키 포인트들'또는 '관심 지점들'로 지칭될 수 있으며, 특징들은 하나의 프레임에서 다음 프레임으로 쉽게 추적될 수 있는 요소들이다. 전자 장치(100)는 이러한 특징들을 다음 프레임 (i + 1)에서 쉽게 추적할 수 있다. 전자 장치(100)는 회전 추정치에 각 특징의 기여도를 가중하는 픽셀 확률 값들을 이용함으로써, i 번째 프레임과 (i + 1) 번째 프레임 사이의 특징들의 움직임에 기초하여, 다음 프레임(i + 1)에 대한 안정화하는 회전을 계산할 수 있다.
전자 장치(100)는 결정된 안정화하는 회전을 출력할 수 있다(S340). 예를 들어, 전자 장치(100)는 결정된 3차원 회전에 따라, 360도 비디오와 연관된 메타 데이터에서 3D 회전 파라미터의 값을 설정함으로써 안정화하는 회전을 출력할 수 있다. 360도 비디오의 메타 데이터 및 비디오 데이터는, 예를 들어, 방송 스트림에서 메타 데이터 및 비디오 데이터를 전송하거나, 나중에 배포하기 위해 컴퓨터 판독 가능 메모리에 메타 데이터 및 비디오 데이터를 저장함으로써, 함께 출력될 수 있다.
다른 실시 예에서, 전자 장치(100)는 안정화하는 회전을 360도 비디오의 메타 데이터의 형태로 제공하는 대신에, 360도 비디오의 프레임을 처리하는 비디오 처리부에 직접 제공할 수 있다. 예를 들어, 비디오 처리부는 현재 프레임의 비디오 데이터에 안정화하는 회전을 적용하고, 회전된 비디오를 렌더링함으로써, 안정화하는 회전을 360도 비디오에 적용할 수 있다. 이러한 방식은, 사용자가 360도 비디오를 시청하는 동안 전자 장치(100)가 실시간으로 안정화하는 회전을 계산하는 경우에 이용할 수 있다. 다만, 이에 한정되지 않는다.
도 4는 일 실시예에 따른 전자 장치가 안정화된 360도 비디오를 생성하는 방법을 나타내는 흐름도이다.
도 4를 참조하면, 전자 장치(100)는 사용자가 360도 비디오를 시청하고자 할 때, 360도 비디오와 연관된 메타 데이터로부터 3D 회전 파라미터의 값을 독출할 수 있다(S410). 전자 장치(100)는 3D 회전 파라미터의 값에 기초하여, 현재 비디오 프레임에 적용될 안정화하는 회전을 결정할 수 있다. 일부 실시 예들에서, 별도의 안정화하는 회전이 360도 비디오의 각각의 개별 프레임에 대해 정의될 수 있다. 다른 실시 예에서는, 단일의 안정화하는 회전이 360도 비디오의 복수의 프레임들(예를 들어, 10개의 프레임들)에 대해 정의될 수 있다.
전자 장치(100)는 360도 비디오의 현재 프레임의 비디오 데이터를 안정화하는 회전에 따라 회전하고(S420), 회전된 비디오 데이터를 렌더링함으로써 안정화된 360도 비디오를 생성할 수 있다(S430). 실시 예에 따라, 전자 장치(100)는 렌더링된 비디오 데이터를 디스플레이할 수 있다. 또는, 전자 장치(100)는 렌더링된 비디오 데이터를 전자 장치(100)와 물리적으로 분리된 외부 디스플레이 장치로 출력할 수 있다.
일부 실시 예에서, 사용자는, 전자 장치(100)에 카메라 제어 입력을 제공함으로써 360도 비디오의 재생 동안 시야를 변경할 수 있다. 카메라 제어 입력은 카메라 회전 및 이동(translation) 중 적어도 하나를 정의하는 입력일 수 있다. 예를 들어, 카메라 제어 입력은, 사용자가 가상 현실 헤드셋을 통해 360도 비디오를 볼 때 카메라 제어 입력은 적절한 센서를 사용하여 사용자의 머리 움직임을 추적함으로써 자동으로 획득될 수 있다. 전자 장치(100)는 카메라 제어 입력을 수신하면(S440), 안정화하는 회전에 추가하여, 카메라 회전 및 이동 중 적어도 하나를 360도 비디오에 적용할 수 있다. 이에 따라, 도 4의 단계들은 사용자가 360도 비디오의 재생 동안 시야를 자유롭게 변경할 수 있는 360도 비디오들에 적용될 수 있다.
실시 예에 따라, 안정화된 360도 비디오는, 픽셀 확률 맵 및 안정화하는 회전을 계산하는데 사용된 장치와 다른 장치에 표시되거나 또는 동일한 장치에 표시될 수 있다. 따라서, 도 4의 단계들 (S410 내지 S440)은 도 3의 단계들 (S310 내지 S340)을 수행한 장치와 물리적으로 동일한 장치 또는 다른 장치에 의해 수행될 수 있다. 다만, 이에 한정되지 않는다.
도 5 및 도 6은, 일 실시예에 따른 전자 장치가 360도 비디오에 대한 확률 값들을 결정하는 방법을 설명하기 위해 참조되는 도면들이다.
일 실시예에 따라, 전자 장치(100)는 과거의 시청 이력 데이터가 이용 가능하지 않은 경우, 픽셀들의 하나 이상의 특성들에 기초하여, 픽셀들 각각의 확률 값을 결정할 수 있다.
예를 들어, 도 5는 등장방형 도법(equirectangular projection) 형식의 360도 비디오 프레임(500)을 도시하고 있다. 일 실시예에 따른 전자 장치(100)는 객체 검출 알고리즘을 이용하여, 360도 비디오 프레임(500)을 분석함으로써, 360도 비디오 프레임(500)에 포함된 하나 이상의 객체들을 검출할 수 있다. 객체 검출 알고리즘은 360도 비디오 프레임에 포함된 각 객체를 객체의 특정 종류 또는 유형에 자동으로 할당할 수 있다. 또한, 전자 장치(100)는, 결정된 객체의 종류 또는 유형을 360도 비디오 프레임(500)과 연관된 메타 데이터 태그로서 저장할 수 있다. 또는, 다른 실시 예에서, 객체 검출 및 객체 유형 결정 중 적어도 하나는 수동으로 수행될 수 있다.
도 6은 360도 비디오 프레임(500) 내의 상이한 유형의 객체들과 관련된 4 개의 상이한 메타 데이터 태그의 예들을 도시한다. 예를 들어, 메타 데이터 태그는 '조명' 객체 (610), '문' 객체 (620), ‘얼굴' 객체(630), 및 '사람' 객체 (640)를 포함할 수 있다. 픽셀에 할당된 확률 값은 해당 픽셀과 관련된 객체의 유형에 따라 결정될 수 있다. 예를 들어, 사용자가 전형적으로 특정 유형의 물체에 더 관심을 가지게 되고, 360도 비디오를 시청할 때 이러한 유형의 객체를 볼 가능성이 더 높다는 것이 통계적으로 결정될 수 있다. 따라서, 전자 장치(100)는 사용자가 더 관심을 가지는 객체들에 포함되는 픽셀들에 대해 더 높은 확률 값들을 설정할 수 있다. 반대로, 전자 장치(100)는 사용자가 덜 관심 있는 객체들에 포함되는 픽셀들에 대해서는 더 낮은 확률 값들을 설정할 수 있다.
도 7은 도 5의 360도 비디오의 프레임에 대한 예시적인 픽셀 확률 맵을 나타내는 도면이다.
일 실시예에 따른 픽셀 확률 맵(700)에서, 각 픽셀은 픽셀이 객체에 포함되는지의 여부를 나타내고, 픽셀이 객체에 포함되는 경우 객체 유형을 식별할 수 있는 객체 유형 특성과 연관될 수 있다. 또한, 전자 장치(100)는 도 6에 도시된 객체 유형 특성 이외에 다른 픽셀 특성들을 고려하여, 픽셀 확률 값들을 결정할 수 있다. 예를 들어, 픽셀들의 특성들은 다음을 포함할 수 있다. 다만, 이에 한정되지 않는다.
- 픽셀이 포함된 객체의 유형.
- 픽셀이 포함된 장면의 카메라와 해당 부분 사이의 거리와 관련된 깊이 특성.
- 360도 비디오 프레임의 하나 이상의 다른 영역들과 관련하여 픽셀이 위치한 360도 비디오 프레임 영역의 시각적 중요성.
- 픽셀과 연관된 모션 벡터.
- 픽셀이 포함된 360도 비디오 프레임의 돌출(saliency) 맵에서 경계.
- 360도 비디오 내의 하나 이상의 사운드 소스들의 위치에 대한 픽셀의 위치.
일부 실시 예에서, '시각적 중요성' 특성은 큐브 맵과 같은 특정 투영에 대하여 정의될 수 있다. 예를 들어, 전자 장치(100)는 픽셀들이 위치하는 큐브 맵 투영의 면에 따라, 픽셀들에 상이한 확률 값을 할당할 수 있다. 예를 들어, 사용자들은 360도 비디오의 큐브 맵 투영의 상부 또는 하부 면들을 볼 가능성이 적다. 전자 장치(100)는 이에 기초하여, 큐브 맵 투영의 상부 또는 하부 면들에 위치한 픽셀들에 낮은 확률 값들을 할당할 수 있다. 반대로, 전자 장치(100)는 큐브 맵 투영의 정면, 후면, 좌측 또는 우측 면에 위치한 픽셀들에 높은 확률 값들을 할당할 수 있다.
일부 실시 예에서, 전자 장치(100)는, 사용자가 360도 비디오를 볼 때, 사운드 소스를 향할 가능성이 큰 것을 고려하여, 픽셀 확률 값들을 결정할 수 있다. 이에 따라, 전자 장치(100)는 360도 비디오 내에서 하나 이상의 사운드 소스들에 대응하는 픽셀들의 위치에 기초하여, 픽셀 확률 값들을 결정할 수 있다. 예를 들어, 콘서트와 관련된 360도 비디오에서 사운드 소스들은, 무대에서의 뮤지션들 또는 콘서트 장에 배치된 라우드 스피커들을 포함할 수 있다. 따라서, 전자 장치(100)는 사운드 소스들 또는 근처에 위치한 픽셀들에 높은 확률 값들은 할당할 수 있다.
도 8은 일 실시예에 따른 전자 장치가 다양한 픽셀 특성들에 기초하여, 확률 값들을 결정하는 방법을 나타내는 흐름도이다. 일 실시예에 따른 전자 장치(100)는 기계 학습 알고리즘을 이용하여, 픽셀들의 확률 값을 결정할 수 있다. 기계 학습 알고리즘은 픽셀의 하나 이상의 특성들을 입력으로 수신할 수 있다.
도 8을 참조하면, 전자 장치(100)는 기계 학습 알고리즘을 학습시킬 수 있다(S810). 기계 학습 알고리즘은, 하나 이상의 360도 비디오들을 시청할 때, 이전 사용자의 시야에 관한 시청 이력 데이터 및 360도 비디오의 픽셀들의 알려진 특성들을 이용하여, 학습될 수 있다. 기계 학습 알고리즘은, 이전 사용자의 시야에 대한 정보에 기초하여, 일반적으로 사용자의 주의가 집중되는 360도 비디오의 부분을 나타내는 픽셀 특성들을 특정 조합들로 인식하도록 학습될 수 있다.
전자 장치(100)는 새로운 360도 비디오의 비디오 데이터를 수신할 수 있다(S820). 이때, ‘새로운 360도 비디오’는 기계 학습 알고리즘을 학습시키는 데 이용된 하나 이상의 비디오들과 다른 360도 비디오를 의미한다.
전자 장치(100)는 새로운 360도 비디오에 대한 픽셀 특성들을 획득할 수 있다(S830). 예를 들어, 전자 장치(100)는 새로운 360도 비디오를 자동으로 분석하여, 픽셀 특성들은 획득할 수 있다. 또는, 전자 장치(100)는 특성들(예를 들어, 객체 유형 특성)에 대한 정보를 수동으로 입력 받을 수 있다. 또는, 전자 장치(100)는 새로운 360도 비디오에 대한 메타 데이터로부터 픽셀 특성들을 획득할 수 있다.
전자 장치(100)는 학습된 기계 학습 알고리즘에 픽셀 특성들을 입력함으로써, 새로운 360도 비디오의 픽셀들에 대한 확률 값들을 결정할 수 있다(S840). 예를 들어, 전자 장치(100)는 새로운 360도 비디오에 대한 시청 이력 데이터를 이용할 수 없는 상황에서, 기계 학습 알고리즘을 이용하여, 새로운 360도 비디오에 대한 픽셀 확률 맵을 생성할 수 있다. 다만, 이에 한정되지 않는다.
기계 학습 알고리즘은 동일한 장치에 의해 학습되고 구현되거나, 다른 장치들에 의해 학습되고 구현될 수 있다. 예를 들어, 360도 비디오를 처리하고 표시하는 장치는, 새로운 360도 비디오를 처리한 후, 360도 비디오의 재생 중에 사용자의 시야를 모니터링한 정보를 이용하여, 기계 학습 알고리즘을 재 학습(업데이트)시킬 수 있다. 다만, 이에 한정되지 않는다.
도 8에서 설명한 실시예에 따르면, 전자 장치(100)는 360도 비디오가 재생될 때, 개별 픽셀들의 다양한 특성들을, 픽셀이 시야에 포함될 가능성과 관련된 확률 값으로 변환하기 위해 기계 학습 알고리즘을 이용한다. 다른 실시 예에 따르면, 전자 장치(100)는 기계 학습 알고리즘을 이용하는 대신, 확률 값과 하나 이상의 특성들 사이의 소정의 관계(예를 들어, 픽셀 특성들을 변수들로 취급하는 소정의 방정식)에 기초하여, 복수의 픽셀들 각각에 할당되는 확률 값들을 결정할 수 있다. 다만, 이에 한정되지 않는다.
도 9는 일 실시예에 따른 전자 장치가 복수의 클러스터들 각각에 대한 안정화하는 회전을 결정하는 방법을 나타내는 흐름도이고, 도 10 내지 도 11d는, 도 9의 방법을 설명하기 위해 참조되는 도면들이다.
도 9를 참조하면, 전자 장치(100)는 360도 비디오 프레임의 픽셀들에 확률 값들을 할당할 수 있다(S910). 예를 들어, 전자 장치(100)는 도 2 내지 도 8에서 설명한 방법들 중 어느 하나의 방법을 이용하여, 픽셀들에 확률 값들을 할당할 수 있다.
전자 장치(100)는 할당된 확률 값들에 기초하여, 픽셀들을 클러스터링할 수 있다(S920). 예를 들어, 전자 장치(100)는 클러스터링 알고리즘을 이용하여, 픽셀 확률 맵을 분석하고, 분석된 결과에 따라, 픽셀들을 하나 이상의 클러스터에 할당할 수 있다. 이때, 클러스터들의 수(N)는 기 설정된 값이거나, 현재 이용 가능한 처리 자원들에 따라 설정될 수 있다. 또한, 클러스터의 수는 1개(N=1)일 수 있다. 클러스터링은, 유사한 객체들을 하나의 클러스터에 포함시킴으로써, 객체들을 그룹핑하는 것을 말한다. 예를 들어, 전자 장치(100)는, 유사한 픽셀들을 하나의 클러스터에 포함시킴으로써, 픽셀들을 클러스터링할 수 있다. 다양한 클러스터링 알고리즘들이 당업계에 공지되어 있으므로, 클러스터링 알고리즘에 대한 설명은 생략하기로 한다. 또한, 전자 장치(100)는 하나의 픽셀을 여러 클러스터들에 할당하거나, 또는 특정 픽셀을 하나의 클러스터에만 할당할 수 있다(독점 클러스터링).
도 10은 보트의 양측에서 볼 수 있는 바다와 하늘을 배경으로 한, 보트 상의 사람들의 장면을 나타내는 360도 비디오 프레임(1000)을 도시한다. 또한, 도 11a는 360도 비디오 프레임(1000)에 대한 픽셀 확률 맵(1001)을 도시한다. 또한, 도 11b 내지 도 11d는 360도 비디오 프레임(1000)에 대한 3개의 클러스터들(1010, 1020, 1030)의 예를 도시한다.
도 11a에 도시된 픽셀 확률 맵(1001)을 참조하면, 보트의 구조를 나타내는 픽셀들에는 낮은 확률 값이 할당되고, 보트 외부를 나타내는 픽셀들에는 중간 확률 값들이 할당되며, 사람 얼굴을 나타내는 픽셀들에는 높은 확률 값이 할당된다.
일 실시예에 따른 전자 장치(100)는 픽셀 확률 맵에서 할당된 확률 값들에 기초하여, 픽셀들을 클러스터링할 수 있다. 예를 들어, 도 11b내지 도 11d를 참조하면, 보트의 구조를 나타내는 픽셀들(낮은 확률 값들이 할당됨)을 제1 클러스터(1010)에, 바다 및 하늘과 같은 보트 외부를 나타내는 픽셀들(중간 확률 값들이 할당됨)을 제2 클러스터(1020)에, 또한, 보트 내부에 서 있는 사람들을 나타내는 픽셀들(높은 확률 값들이 할당됨)을 제3 클러스터(1030)에 할당할 수 있다.
다시 도 9를 참조하면, 전자 장치(100)는 각 클러스터에 대한 안정화하는 회전을 결정할 수 있다(S930). 예를 들어, 전자 장치(100)는 클러스터에 포함된 픽셀들에 할당된 확률 값들에 기초하여, 360도 비디오를 안정화하기 위한 3차원 회전을 결정할 수 있다. 이때, 전자 장치(100)는, 현재 처리중인 클러스터 외부의 픽셀 확률 값들은 고려하지 않고, 현재 처리중인 클러스터에 포함되는 픽셀 확률 값들만 고려하여, 안정화하는 회전을 결정할 수 있다. 또한, 전자 장치(100)는 도 2 의 220 단계(S220) 및 도 3의 330단계(S330)에서 설명한 방법들 중 어느 하나를 이용하여, 클러스터에 대한 안정화하는 회전을 결정할 수 있다. 다만, 이에 한정되지 않는다.
또한, 단일 클러스터(N=1)가 사용되는 실시예에서, 전자 장치(100)는 단일 클러스터에 포함된 픽셀들의 확률 값들에만 기초하여, 하나의 안정화하는 회전을 결정할 수 있다.
도 12는 일 실시예에 따른 전자 장치의 동작방법을 나타내는 흐름도이다.
도 12를 참조하면, 전자 장치(100)는 복수의 클러스터들 중 사용자의 현재 시점에 대응하는 클러스터를 선택할 수 있다(S1210). 이때, 전자 장치(100)는 360도 비디오의 재생 중에 사용자의 현재 시점에 대응하는 클러스터를 선택할 수 있다. 현재 시점은 360도 비디오 내의 특정 지점으로 정의될 수 있으며, 좌표로 표현될 수 있다. 예를 들어, 사용자의 현재 시점은 사용자의 현재 시야의 중심으로 결정되거나, 시선 추적 기능을 이용하여, 시선에 대응하는 지점으로 결정될 수 있다.
전자 장치(100)는 다양한 방식으로 클러스터를 선택할 수 있다. 예를 들어, 복수의 클러스터들 각각에 포함되는 픽셀들이 현재 시점에 위치할 확률을 계산할 수 있으며, 가장 높은 확률을 가지는 픽셀이 포함되는 클러스터를 선택할 수 있다. 이러한 방식으로 클러스터가 선택되면, 360도 비디오는, 사용자가 현재 보고 있는 부분과 가장 유사한 클러스터에 대하여 안정화될 것이다.
임의의 클러스터에 포함되는 픽셀이 현재 시점에 위치할 확률은 클러스터의 중심에 대한 유클리드 거리를 고려하거나, 360도 비디오의 복수의 프레임들에 걸친 시간적 일관성을 고려하여 결정될 수 있다. ‘시간적 일관성’은 카메라의 움직임에 따라 다른 클러스터로 변경할지 여부를 결정할 때 시스템이 이전에 선택된 클러스터들에 대한 정보를 고려할 수 있음을 의미한다. 예를 들어, 사용자의 시점이 제1 클러스터에서 이웃하는 제2 클러스터로 이동한 것으로 판단되면, 시스템은 제2 클러스터를 선택하기 전에 일정 시간 대기하고, 시간이 경과하기 전에 사용자의 시점이 다시 제1 클러스터로 이동하면, 제1 클러스터에 대응하는 안정화하는 회전을 계속 적용할 수 있다. 이러한 히스테리시스-유형 접근법은 사용자의 시점이 두 클러스터들 사이의 경계에 가까운 지점에 집중될 때, 시스템이, 카메라 위치에서의 작은 움직임으로 인해, 두 인접 클러스터들 사이에서 빠르게 전환되는 것을 방지함으로써 '급격한' 재생 경험을 피하는 데 도움이 될 수 있다.
다시, 도 12를 참조하면, 전자 장치(100)는 선택된 클러스터에 대응하는 안정화하는 회전을 360도 비디오에 적용할 수 있다(S1220). 예를 들어, 전자 장치(100)는 360도 비디오를 디스플레이하기 전에, 360도 비디오의 비디오 데이터에 안정화하는 회전을 적용할 수 있다. 미리 녹화된 비디오의 경우, 도 9의 910단계(S910) 내지 930단계(S930)의 분석은 오프라인으로 수행될 수 있고, 360도 비디오를 재생하는 장치와 다른 장치에 의해 수행될 수 있다. 또는, 도 9의 910단계(S910) 내지 930단계(S930)의 분석은 360도 비디오를 재생하는 장치에 의해 실시간으로 수행될 수 있다.
도 9 내지 도 12에서 설명한 방법들을 이용함으로써, 전자 장치(100)는 사용자가 360도 비디오를 시청하는 동안 장면의 다른 부분으로 시선을 전환할 때, 사용자의 전환되는 시점에 대응하는 클러스터에 따라 적응적으로 비디오 안정화를 수행할 수 있다. 이에 따라, 360도 비디오를 시청하는 사용자가 현재 집중하고 있는 물체 또는 영역과 관련된 비디오가 안정화되므로, 사용자의 멀미 문제를 완화시킬 수 있다.
도 13은 일 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
일 실시예에 따른 전자 장치(100)는, 다양한 형태로 구현될 수 있다. 예를 들어, 전자 장치는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 데스크 탑, 태블릿 PC, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 캠코더, IPTV(Internet Protocol Television), DTV(Digital Television), 착용형 기기(wearable device) 등과 같은 다양한 전자 장치로 구현될 수 있다. 다만, 이에 한정되는 것은 아니다.
도 13을 참조하면, 일 실시예에 따른 전자 장치(100)는 메모리(110), 프로세서(120), 및 디스플레이(130)를 포함할 수 있다.
일 실시예에 따른 프로세서(120)는 메모리(130)에 저장되는 하나 이상의 프로그램들을 실행할 수 있다. 프로세서(120)는 싱글 코어, 듀얼 코어, 트리플 코어, 쿼드 코어 및 그 배수의 코어를 포함할 수 있다. 또한, 프로세서(120)는 복수의 프로세서를 포함할 수 있다. 예를 들어, 프로세서(120)는 메인 프로세서(main processor, 도시되지 아니함) 및 슬립 모드(sleep mode)에서 동작하는 서브 프로세서(sub processor, 도시되지 아니함)로 구현될 수 있다.
일 실시예에 따른 메모리(110)는 전자 장치(100)를 구동하고 제어하기 위한 다양한 데이터, 프로그램 또는 어플리케이션을 저장할 수 있다.
또한, 메모리(110)에 저장되는 프로그램은 하나 이상의 인스트럭션들을 포함할 수 있다. 메모리(110)에 저장된 프로그램(하나 이상의 인스트럭션들) 또는 어플리케이션은 프로세서(120)에 의해 실행될 수 있다.
프로세서(120)는 메모리(110)에 저장되는 하나 이상의 인스트럭션들을 실행함으로써, 360도 비디오 프레임에 포함된 복수의 픽셀들 각각에 확률 값들을 할당할 수 있다. 예를 들어, 프로세서(120)는 이전 사용자들의 시야에 대한 시청 이력 데이터를 획득하고, 시청 이력 데이터에 기초하여, 픽셀들의 확률 값들을 결정할 수 있다. 또는, 프로세서(120)는 픽셀들의 특성들에 기초하여, 픽셀들의 확률 값들을 결정할 수 있다.
프로세서(120)는 결정된 확률 값들에 기초하여, 안정화화는 회전을 결정할 수 있으며, 안정화하는 회전을 360도 비디오 데이터에 적용하여, 안정화된 360도 비디오를 생성할 수 있다.
일 실시예에 따른 디스플레이(130)는 프로세서(120)에서 처리된 영상 신호, 데이터 신호, OSD 신호, 제어 신호 등을 변환하여 구동 신호를 생성한다. 디스플레이(130)는 PDP, LCD, OLED, 플렉시블 디스플레이(flexible display)등으로 구현될 수 있으며, 또한, 3차원 디스플레이(3D display)로 구현될 수 있다. 또한, 디스플레이(130)는, 터치 스크린으로 구성되어 출력 장치 이외에 입력 장치로 사용되는 것도 가능하다.
일 실시예에 따른 디스플레이(130)는 안정화된 360도 비디오를 디스플레이할 수 있다.
도 14는 다른 실시예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 14를 참조하면, 전자 장치(2000)는 360도 비디오를 분석하여, 360도 비디오를 안정화하는 회전을 결정하는 제1 장치(1100), 및 제1 장치(1100)에 의해 제공되는 안정화하는 회전에 기초하여, 안정화된 360도 비디오를 생성하는 제2 장치(1200)를 포함할 수 있다. 제1 및 제2 장치들(1100, 1200)의 일부 또는 모든 구성 요소들은 하나의 물리적 장치로 구현될 수 있다.
제1 장치(1100)는 360도 비디오 프레임에 포함되는 복수의 픽셀들 각각에 확률 값들을 할당하는 확률 할당부(1110), 360도 비디오 프레임에 포함되는 복수의 픽셀들을 클러스터에 할당하는 클러스터링 부(1120), 및 360도 비디오를 안정화시키기 위한 3차원 회전을 결정하는 회전 결정부(1130)를 포함할 수 있다. 클러스터링이 사용되지 않는 실시 예에서, 제1 장치(1100)는 클러스터링 부(1120)를 포함하지 않을 수 있다.
일 실시예에 따른, 회전 결정부(1130)는 N 개의 클러스터들 각각에 대한 안정화하는 회전을 결정할 수 있다. 또한, 회전 결정부(1130)는 결정된 회전에 따라 360도 비디오에 대한 메타 데이터에서 3차원 회전 파라미터의 값을 설정하고, 메타 데이터를 제2 장치(1200)에 제공할 수 있다. 일 실시예에 따른 제1 장치(1100) 및 제2 장치(1200)는 서로 통신을 수행할 수 있다.
또는, 다른 실시 예에서, 제1 장치(1100)는 메타 데이터를 비디오 서버에 업로드할 수 있다. 비디오 서버는, 제2 장치(1200)의 요청에 따라 360도 비디오 및 360도 비디오에 대한 메타 데이터 중 적어도 하나를 제2 장치(1200)에 제공할 수 있다.
일 실시예에 따른 제2 장치(1200)는 비디오 처리부(1210) 및 비디오 처리부(1210)에 의해 렌더링된 안정화된 360도 비디오를 디스플레이하기위한 디스플레이(1250)를 포함할 수 있다. 또한, 제2 장치(1200)는 카메라의 회전 및/또는 이동을 정의하는 카메라 제어 입력을 수신하는 입력부(1230)를 더 포함할 수 있다. 비디오 처리부(1210)는 3차원 회전 파라미터에 의해 정의된 회전에 더하여, 카메라 제어 입력에 의해 정의된 카메라의 회전 및 이동 중 적어도 하나를 360도 비디오 프레임의 비디오 데이터에 적용하고, 회전된 비디오 데이터를 렌더링함으로써 안정화된 360도 비디오를 생성할 수 있다.
또한, 일 실시예에 따른 제2 장치(1200)는 복수의 클러스터들 중 사용자의 현재 시점에 대응하는 클러스터를 선택하는 클러스터 선택부(1220)를 포함할 수 있다. 클러스터링이 사용되지 않는 실시 예들에서, 제2 장치(1200)는 클러스터 선택부(1220)를 포함하지 않을 수 있다.
또한, 일 실시예에 따른, 제2 장치(1200)는 시선 추적에 기초하여 사용자의 현재 시점을 결정하는 시선 추적부(1240)를 더 포함할 수 있다. 시선 추적부(1240)는 현재 시점에 대한 정보를 클러스터 선택부(1220)로 전송하고, 클러스터 선택부(1220)는 수신한 정보에 기초하여, 현재 시점에 대응하는 클러스터를 선택할 수 있다. 이에 따라, 현재 시점에 대응하는 3차원 회전이 선택될 수 있다. 클러스터링이 사용되지 않는 실시 예들에서, 제2 장치(1200)는 클러스터 선택부(1220)와 마찬가지로, 시선 추적부(1240)를 포함하지 않을 수 있다.
또는, 클러스터링이 사용되지 않는 실시 예들에서, 제2 장치(1200)는 시선 추적부(1240)를 여전히 포함할 수 있다. 예를 들어, 일 실시 예에서, 시선 추적부(1240)는 현재 재생 중인 360도 비디오에 대한 시청 이력 데이터를 얻기 위해 360도 비디오를 재생하면서 현재 사용자의 시점에 관한 정보(시청 이력 데이터)를 획득할 수 있다. 획득된 시청 이력 데이터는 360도 비디오 파일이 나중에 재생될 때, 360도 비디오 프레임에 포함되는 픽셀들의 확률 값들을 계산하는 데 이용될 수 있다. 또는, 시청 이력 데이터는, 확률 할당부(1100)에 포함된 기계 학습 알고리즘을 재학습하는데 사용될 수 있으며, 이 경우 제2 장치(1200)는 제1 장치(1100)로 이력 데이터를 전송할 수 있다.
한편, 도 13 및 14에 도시된 전자 장치(100, 2000)의 블록도는 일 실시예를 위한 블록도이다. 블록도의 각 구성요소는 실제 구현되는 전자 장치(100, 2000)의 사양에 따라 통합, 추가, 또는 생략될 수 있다. 즉, 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 또한, 각 블록에서 수행하는 기능은 실시예들을 설명하기 위한 것이며, 그 구체적인 동작이나 장치는 본 발명의 권리범위를 제한하지 아니한다.
일 실시예에 따른 전자 장치의 동작방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
Claims (25)
- 360도 비디오를 안정화시키는 전자 장치에 있어서,
하나 이상의 인스트럭션들을 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 인스트럭션들을 실행하는 프로세서를 포함하고,
상기 프로세서는 상기 하나 이상의 인스트럭션들을 실행함으로써,
상기 360도 비디오가 재생될 때, 상기 360도 비디오의 프레임에 포함되는 복수의 픽셀들 각각이 사용자의 시야(FOV)에 포함될 가능성에 기초하여, 상기 복수의 픽셀들 각각에 확률 값을 할당하고,
상기 할당된 확률 값들에 기초하여, 상기 360도 비디오에 대한 3차원 회전을 결정하고,
상기 3차원 회전을 상기 360도 비디오에 적용하여, 안정화된 360도 비디오를 생성하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 360도 비디오를 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제1 이력 데이터에 기초하여, 상기 복수의 픽셀들 각각에 상기 확률 값을 할당하는 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 복수의 픽셀들 중 하나의 픽셀에 할당되는 확률 값은, 상기 픽셀이 가지는 하나 이상의 특성들에 기초하여 결정되고,
상기 하나 이상의 특성들은,
상기 픽셀이 포함된 객체의 타입,
카메라와 상기 360도 비디오의 프레임에서 상기 픽셀이 포함되는 영역 사이의 거리에 관련된 깊이 속성,
상기 360도 비디오 프레임 내에서, 하나 이상의 다른 영역들에 비해, 상기 픽셀이 위치하는 영역의 시각적 중요성,
상기 픽셀과 연관된 모션 벡터,
상기 픽셀이 포함된 360도 영상의 돌출 맵(saliency map)의 경계, 및
상기 360도 비디오 프레임 내의 하나 이상의 사운드 소스에 대응하는 픽셀의 위치 중 적어도 하나를 포함하는, 전자 장치. - 제3항에 있어서,
상기 프로세서는,
상기 픽셀의 상기 하나 이상의 특성들을 입력으로 수신하는 기계 학습 알고리즘을 이용하여, 상기 픽셀에 할당되는 확률 값을 결정하는, 전자 장치. - 제4항에 있어서,
상기 프로세서는,
하나 이상의 다른 360도 비디오들을 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제2 이력 데이터 및 상기 하나 이상의 다른 360도 비디오들에 포함된 픽셀들의 알려진 특성들을 이용하여, 상기 기계 학습 알고리즘을 학습시키는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 결정된 회전에 따라 상기 360도 비디오의 데이터를 회전하고, 상기 회전된 데이터를 렌더링함으로써, 상기 안정화된 360도 비디오를 생성하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 결정된 회전에 따라 상기 360도 비디오에 대한 3차원 회전 파라미터의 값을 설정하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 360도 비디오에 포함되는 하나 이상의 픽셀들을 적어도 하나의 클러스터에 할당하고, 상기 클러스터에 포함되는 픽셀들에 할당된 확률 값들에 기초하여, 상기 클러스터에 대한 상기 3차원 회전을 결정하는, 전자 장치. - 제8항에 있어서,
상기 프로세서는,
상기 사용자의 현재 시점에 대응하는 클러스터를 선택하고, 상기 선택된 클러스터에 대한 3차원 회전을 상기 360도 비디오에 적용하여, 상기 안정화된 360도 비디오를 생성하는, 전자 장치. - 제9항에 있어서,
상기 프로세서는,
상기 사용자의 현재 시야의 중심을 상기 사용자의 현재 시점으로 결정하는, 전자 장치. - 제9항에 있어서,
상기 프로세서는,
시선 추적을 이용하여, 상기 사용자의 현재 시점을 결정하는, 전자 장치. - 제1항에 있어서,
상기 장치는,
상기 안정화된 360도 비디오를 표시하는 디스플레이를 더 포함하는, 전자 장치. - 360도 비디오를 안정화시키는 전자 장치의 동작방법에 있어서,
상기 360도 비디오가 재생될 때, 상기 360도 비디오의 프레임에 포함되는 복수의 픽셀들 각각이 사용자의 시야에 포함될 가능성에 기초하여, 상기 복수의 픽셀들 각각에 확률 값을 할당하는 단계;
상기 할당된 확률 값들에 기초하여, 상기 360도 비디오에 대한 3차원 회전을 결정하는 단계; 및
상기 3차원 회전을 상기 360도 비디오에 적용하여, 안정화된 360도 비디오를 생성하는 단계를 포함하는, 동작방법. - 제13항에 있어서,
상기 동작방법은,
상기 360도 비디오를 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제1 이력 데이터를 획득하는 단계를 더 포함하고,
상기 확률 값을 할당하는 단계는,
상기 제1 이력 데이터에 기초하여, 상기 복수의 픽셀들 각각에 상기 확률 값을 할당하는 단계를 포함하는, 동작방법. - 제13항에 있어서,
상기 확률 값을 할당하는 단계는,
상기 복수의 픽셀들 중 하나의 픽셀이 가지는 하나 이상의 특성들에 기초하여, 상기 픽셀에 확률 값을 할당하는 단계를 포함하고,
상기 하나 이상의 특성들은,
상기 픽셀이 포함된 객체의 타입,
카메라와 상기 360도 비디오의 프레임에서 상기 픽셀이 포함되는 영역 사이의 거리에 관련된 깊이 속성,
상기 360도 비디오 프레임 내에서, 하나 이상의 다른 영역들에 비해, 상기 픽셀이 위치하는 영역의 시각적 중요성,
상기 픽셀과 연관된 모션 벡터,
상기 픽셀이 포함된 360도 영상의 돌출 맵(saliency map)의 경계, 및
상기 360도 비디오 프레임 내의 하나 이상의 사운드 소스에 대응하는 픽셀의 위치 중 적어도 하나를 포함하는, 동작 방법. - 제15항에 있어서,
상기 확률 값을 할당하는 단계는,
상기 픽셀의 상기 하나 이상의 특성들을 입력으로 수신하는 기계 학습 알고리즘을 이용하여, 상기 픽셀에 확률 값을 할당하는 단계를 포함하는, 동작 방법. - 제16항에 있어서,
상기 동작 방법은,
하나 이상의 다른 360도 비디오들을 시청할 때, 이전 사용자들의 시야에 대한 정보를 포함하는 제2 이력 데이터 및 상기 하나 이상의 다른 360도 비디오들에 포함된 픽셀들의 알려진 특성들을 이용하여, 상기 기계 학습 알고리즘을 학습시키는 단계를 더 포함하는, 동작 방법. - 제13항에 있어서,
상기 안정화된 360도 비디오를 생성하는 단계는,
상기 결정된 회전에 따라 상기 360도 비디오의 데이터를 회전하고, 상기 회전된 데이터를 렌더링함으로써, 상기 안정화된 360도 비디오를 생성하는 단계를 포함하는, 동작 방법. - 제13항에 있어서,
상기 동작 방법은,
상기 결정된 회전에 따라 상기 360도 비디오에 대한 3차원 회전 파라미터의 값을 설정하는 단계를 더 포함하는, 동작 방법. - 제13항에 있어서,
상기 동작 방법은,
상기 360도 비디오에 포함되는 하나 이상의 픽셀들을 적어도 하나의 클러스터에 할당하는 단계를 더 포함하고,
상기 3차원 회전을 결정하는 단계는,
상기 클러스터에 포함되는 픽셀들에 할당된 확률 값들에 기초하여, 상기 클러스터에 대한 상기 3차원 회전을 결정하는 단계를 포함하는, 동작 방법. - 제20항에 있어서,
상기 안정화된 360도 비디오를 생성하는 단계는,
상기 사용자의 현재 시점에 대응하는 클러스터를 선택하는 단계; 및
상기 선택된 클러스터에 대한 3차원 회전을 상기 360도 비디오에 적용하여, 상기 안정화된 360도 비디오를 생성하는 단계를 포함하는, 동작 방법. - 제21항에 있어서,
상기 동작 방법은,
상기 사용자의 현재 시야의 중심을 상기 사용자의 현재 시점으로 결정하는 단계를 더 포함하는, 동작 방법. - 제21항에 있어서,
상기 동작 방법은,
시선 추적을 이용하여, 상기 사용자의 현재 시점을 결정하는 단계를 더 포함하는, 동작 방법. - 제13항에 있어서,
상기 동작 방법은,
상기 안정화된 360도 비디오를 표시하는 단계를 더 포함하는, 동작 방법. - 제13항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/637,539 US11245887B2 (en) | 2017-09-14 | 2018-07-06 | Electronic device and operation method therefor |
EP18855989.2A EP3654644A4 (en) | 2017-09-14 | 2018-07-06 | ELECTRONIC DEVICE AND METHOD OF OPERATING THE SAME |
CN201880059836.5A CN111095922B (zh) | 2017-09-14 | 2018-07-06 | 电子设备及其操作方法 |
PCT/KR2018/007679 WO2019054611A1 (ko) | 2017-09-14 | 2018-07-06 | 전자 장치 및 그 동작방법 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1714804.0 | 2017-09-14 | ||
GB1714804.0A GB2566478B (en) | 2017-09-14 | 2017-09-14 | Probability based 360 degree video stabilisation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190030565A true KR20190030565A (ko) | 2019-03-22 |
KR102487976B1 KR102487976B1 (ko) | 2023-01-13 |
Family
ID=60159394
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180053924A KR102487976B1 (ko) | 2017-09-14 | 2018-05-10 | 전자 장치 및 그 동작방법 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3654644A4 (ko) |
KR (1) | KR102487976B1 (ko) |
CN (1) | CN111095922B (ko) |
GB (1) | GB2566478B (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2608583B (en) * | 2021-05-25 | 2023-10-11 | Opteran Tech Limited | Unconstrained image stabilisation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160125708A (ko) * | 2015-04-22 | 2016-11-01 | 삼성전자주식회사 | 가상현실 스트리밍 서비스를 위한 영상 데이터를 송수신하는 방법 및 장치 |
WO2017142353A1 (ko) * | 2016-02-17 | 2017-08-24 | 엘지전자 주식회사 | 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348141B2 (en) * | 2010-10-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Low-latency fusing of virtual and real content |
JP2013013063A (ja) * | 2011-06-03 | 2013-01-17 | Panasonic Corp | 撮像装置及び撮像システム |
US9063330B2 (en) * | 2013-05-30 | 2015-06-23 | Oculus Vr, Llc | Perception based predictive tracking for head mounted displays |
CN106415442A (zh) * | 2014-05-08 | 2017-02-15 | 索尼公司 | 便携式电子设备和控制便携式电子设备的方法 |
US10204658B2 (en) * | 2014-07-14 | 2019-02-12 | Sony Interactive Entertainment Inc. | System and method for use in playing back panorama video content |
US9990774B2 (en) * | 2014-08-08 | 2018-06-05 | Sony Interactive Entertainment Inc. | Sensory stimulus management in head mounted display |
CN204465755U (zh) * | 2015-01-20 | 2015-07-08 | 刘宛平 | 可交互立体混合现实的装置及应用该装置的虚拟现实头盔 |
CN104735464A (zh) * | 2015-03-31 | 2015-06-24 | 华为技术有限公司 | 一种全景视频交互传输方法、服务器和客户端 |
US9240069B1 (en) * | 2015-06-30 | 2016-01-19 | Ariadne's Thread (Usa), Inc. | Low-latency virtual reality display system |
US10089790B2 (en) * | 2015-06-30 | 2018-10-02 | Ariadne's Thread (Usa), Inc. | Predictive virtual reality display system with post rendering correction |
CN105976424A (zh) * | 2015-12-04 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种图像渲染处理的方法及装置 |
-
2017
- 2017-09-14 GB GB1714804.0A patent/GB2566478B/en active Active
-
2018
- 2018-05-10 KR KR1020180053924A patent/KR102487976B1/ko active IP Right Grant
- 2018-07-06 CN CN201880059836.5A patent/CN111095922B/zh active Active
- 2018-07-06 EP EP18855989.2A patent/EP3654644A4/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160125708A (ko) * | 2015-04-22 | 2016-11-01 | 삼성전자주식회사 | 가상현실 스트리밍 서비스를 위한 영상 데이터를 송수신하는 방법 및 장치 |
WO2017142353A1 (ko) * | 2016-02-17 | 2017-08-24 | 엘지전자 주식회사 | 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP3654644A1 (en) | 2020-05-20 |
CN111095922A (zh) | 2020-05-01 |
GB2566478B (en) | 2019-10-30 |
EP3654644A4 (en) | 2020-08-26 |
CN111095922B (zh) | 2021-11-05 |
GB2566478A (en) | 2019-03-20 |
KR102487976B1 (ko) | 2023-01-13 |
GB201714804D0 (en) | 2017-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11245887B2 (en) | Electronic device and operation method therefor | |
CN109416931B (zh) | 用于视线跟踪的装置和方法 | |
US10664140B2 (en) | Object tracking in zoomed video | |
JP6558587B2 (ja) | 情報処理装置、表示装置、情報処理方法、プログラム、および情報処理システム | |
US20180115743A1 (en) | Predictive virtual reality content streaming techniques | |
US20180165879A1 (en) | Live augmented reality using tracking | |
KR20210149206A (ko) | 구면 비디오 편집 | |
US11776142B2 (en) | Structuring visual data | |
US10665024B2 (en) | Providing recording guidance in generating a multi-view interactive digital media representation | |
JP6787394B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
KR20160108158A (ko) | 3차원 배경 콘텐트를 합성하는 방법 및 디바이스 | |
KR20180074180A (ko) | 가상현실 영상에 대한 정보를 제공하는 장치 및 방법 | |
JP7392105B2 (ja) | 没入型ビデオコンテンツをフォービエイテッドメッシュを用いてレンダリングするための方法、システム、および媒体 | |
US11252398B2 (en) | Creating cinematic video from multi-view capture data | |
US11032535B2 (en) | Generating a three-dimensional preview of a three-dimensional video | |
KR102487976B1 (ko) | 전자 장치 및 그 동작방법 | |
JP7354186B2 (ja) | 表示制御装置、表示制御方法および表示制御プログラム | |
KR102343267B1 (ko) | 다중 위치에서 촬영된 비디오를 이용한 360도 비디오 서비스 제공 장치 및 방법 | |
US11956295B2 (en) | Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information | |
US11044464B2 (en) | Dynamic content modification of image and video based multi-view interactive digital media representations | |
CN113796067A (zh) | 沉浸式视频体验 | |
US12101529B1 (en) | Client side augmented reality overlay | |
WO2022249536A1 (ja) | 情報処理装置及び情報処理方法 | |
JP7123222B1 (ja) | 表示制御装置、表示制御方法および表示制御プログラム | |
KR102270852B1 (ko) | 뷰포트 탐색 가능한 디바이스를 이용한 360도 비디오 서비스 제공 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |