KR102209907B1 - 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법 - Google Patents

시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법 Download PDF

Info

Publication number
KR102209907B1
KR102209907B1 KR1020190037679A KR20190037679A KR102209907B1 KR 102209907 B1 KR102209907 B1 KR 102209907B1 KR 1020190037679 A KR1020190037679 A KR 1020190037679A KR 20190037679 A KR20190037679 A KR 20190037679A KR 102209907 B1 KR102209907 B1 KR 102209907B1
Authority
KR
South Korea
Prior art keywords
images
retreat
viewpoint
converted
degree
Prior art date
Application number
KR1020190037679A
Other languages
English (en)
Other versions
KR20200116224A (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 KR1020190037679A priority Critical patent/KR102209907B1/ko
Publication of KR20200116224A publication Critical patent/KR20200116224A/ko
Application granted granted Critical
Publication of KR102209907B1 publication Critical patent/KR102209907B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/189Recording image signals; Reproducing recorded image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/282Image signal generators for generating image signals corresponding to three or more geometrical viewpoints, e.g. multi-view systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법이 개시된다. 일 실시예에 따른 360도 영상 저장 방법은 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들에 대해 후퇴 시점 변환을 수행한 뒤, 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채워 저장하는 것을 특징으로 한다. 일 실시예에 따른 360도 영상 렌더링 방법은 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들을 로드한 뒤, 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 것을 특징으로 한다.

Description

시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법{360 DEGREE IMAGE STORING METHOD AND RENDERING METHOD USING VIEWPOINT TRANSFORMATION}
아래의 설명은 360도 영상 저장 방법 및 렌더링 방법에 관한 것으로, 보다 상세하게는 360도 카메라 시스템에서 시점 변환(Viewpoint transformation)을 이용하여 360도 영상을 저장하고 렌더링하는 기술에 대한 것이다.
360도 카메라 시스템은 가상현실을 체험할 수 있는 가로 360도 및 세로 180도 화각의 전방위 영상을 촬영 및 제공한다. 이를 위해, 360도 카메라 시스템은 원형 또는 구형으로 배치되는 복수의 카메라들로 구성되며, 복수의 카메라들 각각이 촬영한 영상들을 광학흐름(optical flow)을 이용하는 방식 또는 특징점들을 검출하여 정렬(alignment)하는 방식을 통해 스티칭(Stitching)함으로써 단안 또는 양안 전방위 영상을 형성한다.
이러한 360도 카메라 시스템에 의해 제공되는 전방위 영상은, 주로 스테레오 디스플레이 장치인 HMD(Head-mounted display)를 사용하여 감상할 수 있다. HMD는 사용자의 머리의 움직임을 3방향의 이동 및 3축의 회전으로 측정하여 사용자의 시선 방향을 결정하고, 전방위 영상 중 사용자의 시선 방향에 해당하는 부분 영상을 사용자에게 디스플레이한다.
그러나 전방위 영상은 촬영이 이루어졌던 카메라의 시점(viewpoint)에서의 영상만 제공하므로 사용자의 머리 움직임 중 3축의 회전에 대한 경험만을 제공할 수 있고 3방향의 움직임에 대한 경험을 제공하지 못하는 문제점이 있다.
이에, 6자유도(3방향의 이동 및 3축의 회전)의 움직임에 대한 경험을 제공하는 Volumetric VR 기술이 제안되었다. Volumetric VR 기술은 좌우 영상을 포함하는 전방위 영상을 미리 생성하여 저장해두는 대신에, 360도 카메라 시스템에 의해 촬영된 컬러 영상과 함께 이에 대응되는 깊이 맵(Depth map)을 저장해두고, DIBR(Depth image-based rendering) 기법을 이용하여 실시간으로 좌우 영상을 렌더링하여 제공하는 기술이다.
다만, DIBR 기법으로 새로운 시점의 영상을 렌더링하는 방법은 시점 변화에 따라 전경에 의해 가려졌던 오클루전(Occlusion) 영역에서 홀이 발생하는 문제를 가지며, 이를 해결하기 위해서 홀이 발생된 영역의 주변 영역의 정보를 이용하여 홀을 채우는 방식이 제안되었다. 그러나 해당 방식만이 이용되어 홀이 채워지는 경우, 영상에서 눈에 띄는 결함(artifacts)으로 나타날 수 있는 바, 오클루전 영역에서 홀이 발생되는 문제(Disocclusion problem)를 해결하기 위한 새로운 방식이 제안될 필요가 있다.
따라서, 아래의 실시예들은 렌더링 과정에서 오클루전 영역에서 발생되는 홀을 제거할 수 있는 기술을 제안하고자 한다.
일 실시예들은 종래의 Volumetric VR 기술의 렌더링 과정에서 오클루전 영역에서 발생되는 홀을 제거할 수 있는 기술을 제안한다.
보다 상세하게, 일 실시예들은 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들을 원래 시점보다 후퇴된 시점으로 변환하는 후퇴 시점 변환을 수행한 뒤, 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채워 저장하는 360도 영상 저장 방법과 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들을 로드한 뒤, 영상들의 깊이 맵을 이용하여 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 360도 영상 렌더링 방법을 통해, 오클루전 영역에서 발생되는 홀을 최소화하고 제거하는 기술을 제안하고자 한다.
일 실시예에 따르면, 360도 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 360도 영상 저장 방법은, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 단계; 상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계; 상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 단계; 및 상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 단계를 포함한다.
일 측면에 따르면, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계는, 상기 후퇴 시점 변환된 영상들 각각을 촬영한 카메라와 인접한 카메라에서 촬영된 영상을 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계를 포함할 수 있다.
다른 측면에 따르면, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계는, 상기 후퇴 시점 변환된 영상들 각각에서 상기 후퇴 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계는, 상기 깊이 맵에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 복수의 카메라들 사이의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하는 단계; 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및 상기 시점 변환 수식을 이용하여, 상기 영상들 각각의 시점을 상기 영상들 각각이 촬영된 위치로부터 후퇴된 위치에서 촬영된 영상의 시점으로 일치하도록 변환하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는, 상기 복수의 카메라들 각각의 광학 중심이 상기 360도 카메라 시스템 상 상기 복수의 카메라들이 배치되는 원 또는 구의 중심 위치로 이동될 때의 이동할 거리에 기초하여 상기 이동 파라미터를 결정하는 단계일 수 있다.
또 다른 측면에 따르면, 상기 영상들 각각의 시점을 상기 영상들 각각이 촬영된 위치로부터 후퇴된 위치에서 촬영된 영상의 시점으로 일치하도록 변환하는 단계는, 상기 영상들 각각의 시점을 상기 360도 카메라 시스템 상 상기 복수의 카메라들이 배치되는 원 또는 구의 중심 위치에서 촬영된 영상의 시점으로 변환하는 단계일 수 있다.
또 다른 측면에 따르면, 상기 360도 영상 저장 방법은, 상기 깊이 맵에 대한 후퇴 시점 변환을 수행하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 360도 영상 저장 방법은, 상기 홀이 채워진 영상들에 기초하여 상기 깊이 맵의 홀을 채우는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 깊이 맵은, 상기 복수의 카메라들에서 각각 촬영된 영상들에 대응하여 복수 개로 획득되고, 상기 깊이 맵의 홀을 채우는 단계는, 상기 복수의 깊이 맵들 각각의 홀을 채우는 단계이며, 상기 360도 영상 저장 방법은, 상기 홀이 채워진 깊이 맵들을 스티칭하여 360도 전방위 깊이 맵을 생성하는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 360도 영상 저장 방법은, 상기 홀이 채워진 영상들을 스티칭하여 360도 전방위 영상을 생성하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 컴퓨터와 결합되어 360도 영상 저장 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서, 상기 360도 영상 저장 방법은, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 단계; 상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계; 상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 단계; 및 상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 단계를 포함한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터로 구현되는 360도 영상 저장 시스템은, 컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 획득부; 상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하고, 상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 시점 변환 수행부; 및 상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 저장부를 포함한다.
일 실시예에 따르면, 360도 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 360도 영상 렌더링 방법은, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 단계; 및 상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계를 포함한다.
일 측면에 따르면, 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는, 상기 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환되는 과정에서 발생된 홀을 제거하는 단계일 수 있다.
다른 측면에 따르면, 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는, 렌더링 과정에서 오클루전(Occlusion) 영역에서 발생되는 홀을 상기 전진 시점 변환에 의해 생성되는 오클루전 영역으로 감추는 단계일 수 있다.
또 다른 측면에 따르면, 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는, 상기 전진 시점 변환된 영상들 각각에서 상기 전진 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 상기 전진 시점 변환된 영상들 각각의 홀을 채우는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 컴퓨터와 결합되어 360도 영상 렌더링 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서, 상기 360도 영상 렌더링 방법은, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 단계; 및 상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계를 포함한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터로 구현되는 360도 영상 렌더링 시스템은, 컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 로드부; 및 상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 시점 변환 수행부를 포함한다.
일 일 실시예들은 종래의 Volumetric VR 기술의 렌더링 과정에서 오클루전 영역에서 발생되는 홀을 제거할 수 있는 기술을 제안할 수 있다.
보다 상세하게, 일 실시예들은 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들에 대해 후퇴 시점 변환을 수행한 뒤, 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채워 저장하는 360도 영상 저장 방법과 360도 영상 저장 방법에 의해 미리 저장된 후퇴 시점 변환된 영상들을 로드한 뒤, 영상들의 깊이 맵을 이용하여 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 360도 영상 렌더링 방법을 통해, 오클루전 영역에서 발생되는 홀을 최소화하고 제거하는 기술을 제안할 수 있다.
도 1은 일 실시예에 따른 360도 카메라 시스템을 나타낸 블록도이다.
도 2 내지 3은 일 실시예에 따른 360도 카메라 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 나타낸 블록도이다.
도 4 내지 9는 일 실시예에 따른 360도 영상 저장 방법 및 360도 영상 렌더링 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 360도 영상 저장 방법을 나타낸 플로우 차트이다.
도 11은 일 실시예에 따른 360도 영상 렌더링 방법을 나타낸 플로우 차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 360도 카메라 시스템을 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 360도 카메라 시스템(100)은 복수의 카메라들(110), 메모리(120), 프로세서(130) 및 입출력 인터페이스(140)를 포함할 수 있다. 이하, 360도 카메라 시스템(100)이 원을 따라 배치되는 복수의 카메라들(110)(예컨대, 6대 이상의 카메라들)을 포함하는 것으로 설명되나, 이제 제한되거나 한정되지 않고, Volumetric VR을 구현하기 위해 동일한 피사체를 동시에 촬영하도록 배치되는 복수의 카메라들(110)을 포함하는 다양한 카메라 시스템일 수 있다.
메모리(120)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치non-volatile mass storage device)를 포함할 수 있다. 또한, 메모리(120)에는 운영체제, 복수의 카메라들(110) 각각에서 촬영된 영상, 적어도 하나의 프로그램 코드(일례로 후술되는 360도 영상 저장 방법 및/또는 360도 영상 렌더링 방법을 수행하는 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(120)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(도면에는 도시되지 않음)을 통해 메모리(120)에 로딩될 수도 있다.
프로세서(130)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(120) 또는 통신 모듈에 의해 프로세서(130)로 제공될 수 있다. 예를 들어, 프로세서(130)는 메모리(120)와 같은 기록 장치에 저장된 프로그램 코드(일례로 후술되는 360도 영상 저장 방법 및/또는 360도 영상 렌더링 방법을 수행하는 코드)에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
입출력 인터페이스(140)는 입출력 장치(도면에는 도시되지 않음)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 360도 카메라 시스템(100)에 구비되는 터치 스크린, 버튼 등의 장치를, 그리고 출력 장치는 촬영된 영상들을 표시하는 디스플레이와 같은 장치를 포함할 수 있다. 다른 예를 들면, 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다.
다른 실시예들에서 360도 카메라 시스템(100)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 360도 카메라 시스템(100)는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이하에서는 상술한 360도 카메라 시스템(100)에 구비되는 프로세서(130)에 의해 실행되는 360도 영상 저장 방법 및 360도 영상 렌더링 방법의 구체적인 실시예를 설명하기로 한다.
이하 설명되는 360도 영상 저장 방법은 Volumetric VR 기술에서 360도 영상 렌더링 방법이 오클루전 영역에서 발생되는 홀을 제거하기 위해 사전에 수행하는 것이므로, 360도 영상 저장 방법과 360도 영상 렌더링 방법은 하나의 프로세서(130)에 의해 수행되는 것으로 설명한다. 또한, 이하 하나의 프로세서(130)가 360도 영상 저장 방법의 각 단계들을 수행하는 구성요소들 및 360도 영상 렌더링 방법의 각 단계들을 수행하는 구성요소들로 구성됨에 따라 상이한 구성요소들을 포함하는 것으로 설명되나, 각 구성요소들은 각 단계들을 수행하는 주체를 설명하기 위해 편의상 구분한 것에 지나지 않는다. 즉, 360도 영상 저장 방법과 360도 영상 렌더링 방법 모두 프로세서(130)에 의해 수행됨을 전제로 한다.
도 2 내지 3은 일 실시예에 따른 360도 카메라 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 나타낸 블록도이다. 보다 상세하게, 도 2는 프로세서가 360도 영상 저장 방법을 수행하는 경우의 구성요소들을 나타낸 블록도이며, 도 3은 프로세서가 360도 영상 렌더링 방법을 수행하는 경우의 구성요소들을 나타낸 블록도이다.
도 2를 참조하면, 일 실시예에 따른 360도 영상 저장 시스템은 도 1을 참조하여 상술된 360도 카메라 시스템(100)의 프로세서(130)를 포함하도록 구성될 수 있다. 구체적으로, 360도 영상 저장 시스템은 도면에 도시된 바와 같이 프로세서(130)의 구성요소들인 획득부(210), 시점 변환 수행부(220) 및 저장부(230)를 포함할 수 있다. 실시예에 따라 프로세서(130)의 구성요소들은 선택적으로 프로세서(130)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(130)의 구성요소들은 프로세서(130)의 기능의 표현을 위해 분리 또는 병합될 수도 있다. 예컨대, 프로세서(130)의 구성요소들 중 적어도 일부는 360도 카메라 시스템(100)과 통신으로 연결되는 별도의 서버에 포함되는 프로세서에 구현될 수 있다.
이러한 프로세서(130)의 구성요소들은 도 10의 360도 영상 저장 방법이 포함하는 단계들(S1010 내지 S1030)을 수행하도록 메모리(120)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램(예컨대, 360도 영상 저장 방법을 실행하는 코드로 구성된 프로그램)의 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서(130)의 구성요소들은 메모리(120)에 저장된 프로그램 코드가 제공하는 명령에 따른 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들을 획득하는 동작에 대한 기능적 표현으로서 획득부(210)가 이용될 수 있다.
이에, 프로세서(130)의 각 구성요소들은 다음과 같이 동작함으로써, 360도 영상 저장 방법을 수행할 수 있다. 예를 들어, 획득부(210)가 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들(이하, 복수의 카메라들(110)에서 각각 촬영된 영상들은 복수의 카메라들(110) 각각에서 동시에 촬영한 영상들을 의미함)과 깊이 맵(Depth map)을 획득하고, 시점 변환 수행부(220)가 깊이 맵을 이용하여 영상들 각각에 대한 후퇴 시점 변환을 수행하며, 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우고, 저장부(230)가 홀이 채워진 영상들을 스티칭하고 저장함으로써, 후술되는 360도 영상 렌더링 방법에서 사용될 영상(후퇴 시점 변환된 뒤 홀이 채워진 영상들 또는 후퇴 시점 변환된 뒤 홀이 채워진 영상들이 스티칭되어 저장된 영상)이 미리 생성 및 저장되어 유지될 수 있다. 각 구성요소들의 동작에 대한 상세한 설명은 도 10을 참조하여 기재하기로 하며, 시점 변환 수행부(220)의 동작 원리에 대한 상세한 설명은 도 4 내지 9를 참조하여 기재하기로 한다.
도 3을 참조하면, 일 실시예에 따른 360도 영상 렌더링 시스템은 도 1을 참조하여 상술된 360도 카메라 시스템(100)의 프로세서(130)를 포함하도록 구성될 수 있다. 구체적으로, 360도 영상 렌더링 시스템은 도면에 도시된 바와 같이 프로세서(130)의 구성요소들인 로드부(310) 및 시점 변환 수행부(320)를 포함할 수 있다. 실시예에 따라 프로세서(130)의 구성요소들은 선택적으로 프로세서(130)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(130)의 구성요소들은 프로세서(130)의 기능의 표현을 위해 분리 또는 병합될 수도 있다. 예컨대, 프로세서(130)의 구성요소들 중 적어도 일부는 360도 카메라 시스템(100)과 통신으로 연결되는 별도의 서버에 포함되는 프로세서에 구현될 수 있다.
이러한 프로세서(130)의 구성요소들은 도 11의 360도 영상 렌더링 방법이 포함하는 단계들(S1110 내지 S1120)을 수행하도록 메모리(120)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램(예컨대, 360도 영상 렌더링 방법을 실행하는 코드로 구성된 프로그램)의 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서(130)의 구성요소들은 메모리(120)에 저장된 프로그램 코드가 제공하는 명령에 따른 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들(도 2를 참조하여 전술된 360도 영상 저장 시스템에서 저장부(230)에 저장된 홀이 채워진 영상들) 또는 후퇴 시점 변환된 뒤 홀이 채워진 영상들이 스티칭되어 저장된 영상을 로드하는 동작에 대한 기능적 표현으로서 로드부(310)가 이용될 수 있다.
이에, 프로세서(130)의 각 구성요소들은 다음과 같이 동작함으로써, 360도 영상 렌더링 방법을 수행할 수 있다. 예를 들어, 로드부(310)가 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들(전술된 360도 영상 저장 방법에서 저장된, 후퇴 시점 변환되어 각각의 홀이 채워진 영상들)과 깊이 맵을 로드하고(또는 후퇴 시점 변환된 뒤 홀이 채워진 영상들이 스티칭되어 저장된 영상과 깊이 맵을 로드하고), 시점 변환 수행부(320)가 깊이 맵을 이용하여 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행함으로써(또는 후퇴 시점 변환된 뒤 홀이 채워진 영상들이 스티칭되어 저장된 영상을 깊이 맵을 이용하여 전진 시점 변환을 수행함으로써), 영상 렌더링이 수행될 수 있다. 각 구성요소들의 동작에 대한 상세한 설명은 도 11을 참조하여 기재하기로 하며, 시점 변환 수행부(320)의 동작 원리에 대한 상세한 설명은 도 4 내지 9를 참조하여 기재하기로 한다.
도 4 내지 9는 일 실시예에 따른 360도 영상 저장 방법 및 360도 영상 렌더링 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 일 실시예에 따른 360도 영상 저장 시스템은 360도 카메라 시스템(100)을 구성하는 복수의 카메라들(110) 각각의 광학 중심을 가상의 특정 위치(410)로 일치시킴으로써 복수의 카메라들(110) 각각에서 촬영된 영상이 동일한 위치(410)에서 촬영된 것처럼 변환할 수 있다. 가상의 특정 위치(410)는 복수의 카메라들(110)의 배치를 고려하여 복수의 카메라들(110)의 후방으로 일정 거리 이상 후퇴된 임의의 지점일 수 있으며, 360도 카메라 시스템(100) 상 복수의 카메라들(110)이 배치되는 원의 중심 위치를 의미할 수 있다.
이 때, 복수의 카메라들(110) 각각의 광학 중심을 일치시키게 되면, 복수의 카메라들(110)에서 촬영된 영상들의 시점 역시 일치하게 된다.
즉, 360도 영상 저장 시스템은 복수의 카메라들(110) 각각을 실제로 이동시키는 것이 아닌, 복수의 카메라들(110)에서 동시에 촬영된 영상들의 시점을 가상의 특정 위치(410)에서 촬영된 영상의 시점인 것처럼 변환(후퇴 시점 변환)함으로써, 360도 영상 저장 방법을 수행한다.
이러한 후퇴 시점 변환과 유사하게, 일 실시예에 따른 360도 영상 렌더링 시스템은 후퇴 시점 변환의 역변환인 전진 시점 변환을 수행할 수 있다. 이와 관련하여 도 5를 참조하면, 360도 영상 렌더링 시스템은 360도 영상 결합 시스템에 의해 저장된 후퇴 시점 변환된 영상들(또는 360도 영상 결합 시스템에 의해 후퇴 시점 변환된 영상들이 스티칭되어 저장된 360도 전방위 영상-이하 스티칭 영상으로 기재함-)을 가상의 특정 위치(410)로부터 전경에 좀 더 근접하도록 일정 거리 이상 전진된 임의의 지점(510)에서 촬영된 것처럼 변환할 수 있다.
이와 같이 360도 영상 렌더링 시스템은 360도 영상 결합 시스템에 의해 저장된 후퇴 시점 변환된 영상들(또는 스티칭 영상)의 시점을 전진된 임의의 지점(510)에서 촬영된 영상들의 시점인 것처럼 변환(전진 시점 변환)함으로써, 360도 영상 렌더링 방법을 수행한다.
전진 시점 변환 및 후퇴 시점 변환을 설명하는 원리로서, 도 6을 참조하면, 특정 위치(610)에 있는 카메라로부터 df 거리에 있는 w라는 점은 db 거리에 있는 배경에서 광축(Optical axis)(620)에서 X 만큼 떨어진 위치에 나타난다. 이 위치는 카메라가 특정 위치(610)에서 후방으로 r 만큼 후퇴한 위치(630)에 배치될 때 X' 위치로 변경되고, 카메라가 특정 위치(610)에서 s 만큼 옆으로 이동된 위치(640)에 배치될 때 광축(650)에서 X" 만큼 떨어진 위치로 변경된다. 이러한 X, X', X"들이 영상에서 영상 중심으로부터 x, x', x" 만큼 떨어진 위치에 나타난다고 하면, 이 위치들은 도 7 내지 9와 같은 핀홀(pinhole) 카메라 모델을 사용해 계산될 수 있다.
예를 들어, 카메라가 특정 위치(610)에서 r 만큼 후퇴한 위치(630)로 이동하는 경우는 도 6으로부터 아래 식 1과 같이 X'이 계산될 수 있다.
<식 1>
Figure 112019033023779-pat00001
또한, 식 1과 같이 계산되는 X'은 도 7 내지 8의 핀홀 카메라 모델을 이용하면 영상에서는 아래 식 2와 같이 표현될 수 있다.
<식 2>
Figure 112019033023779-pat00002
한편, 깊이 맵에서 깊이 d와 시차 D는
Figure 112019033023779-pat00003
의 관계를 가지므로(여기서, f는 초점 거리를 의미하고, B는 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110) 사이의 베이스라인의 길이, D는 시차를 의미함), 식 2는 아래 식 3과 같이 표현될 수 있다.
<식 3>
Figure 112019033023779-pat00004
다른 예를 들면, 카메라가 특정 위치(610)에서 측방으로 s 만큼 떨어진 위치(640)에 이동하는 경우는 도 6으로부터 아래 식 4와 같이 X"이 계산될 수 있다.
<식 4>
Figure 112019033023779-pat00005
또한, 식 4와 같이 계산되는 X"은 도 7 내지 9의 핀홀 카메라 모델을 이용하면 영상에서는 아래 식 5와 같이 표현될 수 있으며, 깊이 d와 시차 D의 관계에 따라 아래 식 6과 같이 표현될 수 있다.
<식 5>
Figure 112019033023779-pat00006
<식 6>
Figure 112019033023779-pat00007
따라서, 카메라가 특정 위치(610)에서 후방으로 r 만큼 후퇴하고 측방으로 s 만큼 떨어진 위치로 이동하는 경우
Figure 112019033023779-pat00008
는 도 7 내지 9의 핀홀 카메라 모델을 이용하여 영상에서 아래 식 7과 같이 계산될 수 있다.
<식 7>
Figure 112019033023779-pat00009
또한, 식 7은 깊이 d와 시차 D의 관계에 따라 아래 식 8과 같이 표현될 수 있다.
<식 8>
Figure 112019033023779-pat00010
식 8로부터 카메라가 특정 위치(610)에서 촬영한 영상을 카메라가 특정 위치(610)로부터 x, y, z 방향으로 각각 mx, my, mz 만큼 이동했을 때 촬영한 영상으로 변환하는 시점 변환 수식이 획득될 수 있다. 카메라가 특정 위치(610)에서 촬영한 원래의 영상 I(x, y)와 카메라가 특정 위치(410)로부터 mx, my, mz 만큼 이동했을 때 촬영한 영상인 변환된 영상 I'(x', y')에 대해 x, y, x', y'는 각각의 영상에서의 픽셀 위치라 하면 포워드 와핑(forward warping)은 아래 식 9와 같이 표현될 수 있고, 백워드 와핑(backward warping)은 식 10과 같이 표현될 수 있다.
<식 9>
Figure 112019033023779-pat00011
<식 10>
Figure 112019033023779-pat00012
식 9 및 10에서
Figure 112019033023779-pat00013
Figure 112019033023779-pat00014
는 광축(420, 450)이 지나는 영상 중심의 좌표를 의미한다.
일 실시예에 따른 360도 영상 저장 시스템 및 360도 영상 렌더링 시스템은 이와 같이 유도되는 식 9 및 10을 이용하여 영상에 대한 후퇴 시점 변환 또는 전진 시점 변환을 수행할 수 있다. 이에 대한 상세한 설명은 도 10 내지 11을 참조하여 기재하기로 한다.
도 10은 일 실시예에 따른 360도 영상 저장 방법을 나타낸 플로우 차트이다. 이하, 360도 영상 저장 방법은 360도 카메라 시스템(100)에 포함되는 프로세서(130)의 구성요소들에 의해 수행되는 것으로 설명되며, 프로세서(130)의 구성요소들은 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램의 형태로 구현될 수 있다.
도 10을 참조하면, 단계(S1010)에서 일 실시예에 따른 360도 영상 저장 시스템에 포함되는 획득부(210)는, 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들과 깊이 맵을 획득한다. 여기서, 복수의 카메라들(110)에서 각각 촬영된 영상은 복수의 카메라들(110)이 동시에 동작하여 동시에 촬영된 영상들일 수 있다. 이 때, 복수의 카메라들(110)은 원 또는 구를 따라 배치되며 360도 카메라 시스템(100)을 구성하기 때문에, 영상들(복수의 카메라들(110) 각각에서 촬영된 영상) 사이에는 시차가 발생될 수 있다.
이하, 영상들에 대한 깊이 맵은 영상들이 촬영되는 동시에, 종래 깊이 맵을 획득하는 알고리즘을 통해 영상 전체 픽셀에 걸쳐 시차와 깊이와의 관계를 정의하는 영상으로 획득될 수 있다.
단계(S1020)에서 360도 영상 저장 시스템에 포함되는 시점 변환 수행부(220)는, 깊이 맵을 이용하여 영상들 각각에 대한 후퇴 시점 변환을 수행한다. 구체적으로, 시점 변환 수행부(220)는 깊이 맵에 기초하여 복수의 카메라들(110) 각각의 초점 거리, 복수의 카메라들(110) 사이의 베이스라인의 길이 및 복수의 카메라들(110) 사이의 시차에 기초한 시점 변환 수식(전술된 식 9 또는 10)을 설정하고, 시점 변환 수식에서 이동 파라미터를 결정함으로써, 시점 변환 수식을 이용하여 영상들 각각의 시점을 일치하도록 변환할 수 있다. 이하, 영상들 각각의 시점을 일치하도록 변환한다는 것은 영상들을 정합한다는 것을 의미할 수 있다.
여기서, 이동 파라미터는 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값으로서, 식 9 및 10에서 mx, my, mz에 해당된다. 따라서, 시점 변환 수행부(220)가 이동 파라미터를 결정한다는 것은, 복수의 카메라들(110) 각각의 광학 중심이 360도 카메라 시스템(100) 상 복수의 카메라들(110)이 배치되는 원의 중심 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정한다는 것을 의미한다. 예를 들어, 시점 변환 수행부(220)는 식 9 또는 10에서 mz의 값만을 이동 파라미터로 결정할 수 있으며, 360도 카메라 시스템(100)이 두 대의 카메라들이 세트로 배치되는 스테레오 360도 카메라 시스템인 경우, 베이스라인 크기의 절반으로 mx 또는 my를 결정할 수 있다.
이처럼 복수의 카메라들(110) 각각의 광학 중심이 카메라 시스템(100)의 가상의 특정 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정하기 위해서는, 복수의 카메라들(110) 각각의 광학 중심을 확인하는 단계가 필수적이다. 이러한 단계는 도면에는 도시되지 않았지만 단계(S1020) 이전 임의의 시점에 적응적으로 수행될 수 있으며, 복수의 카메라들(110) 각각의 회전축을 앞뒤로 이동시키며 좌우로 회전시켰을 때 시차가 발생하지 않는 회전축의 위치를 실험적으로 탐색함으로써 수행될 수 있다.
이 때, 복수의 카메라들(110) 각각의 광학 중심을 일치시키게 되면, 복수의 카메라들(110)에서 촬영된 영상들의 시점 역시 일치하게 된다. 따라서, 단계(S1020)에서 시점 변환 수행부(220)는, 영상들 각각의 시점을 360도 카메라 시스템(100)의 중심 위치에서 촬영된 영상의 시점으로 후퇴 시점 변환하여 일치시킴으로써, 영상들을 정합할 수 있다.
즉, 시점 변환 수행부(220)는 복수의 카메라들(110) 각각의 위치가 후방으로 후퇴된 지점(복수의 카메라들(110)이 배치되는 원의 중심점)으로 이동되는 가상의 변환을 수행할 수 있다. 이러한 후퇴 시점 변환은, 오클루전(Occlusion)이 발생하는 것을 최소화하기 위함이다.
영상들에 대한 후퇴 시점 변환이 수행되고 나면, 단계(S1030)에서 시점 변환 수행부(220)는 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채운다. 예를 들어, 시점 변환 수행부(220)는 후퇴 시점 변환된 영상들 각각을 촬영한 카메라와 인접한 카메라에서 촬영된 영상을 이용하여, 후퇴 시점 변환된 영상들 각각의 홀을 채울 수 있다. 보다 구체적인 예를 들면, 제1 영상(제1 카메라에서 촬영된 영상이 단계(S1020)에서 후퇴 후퇴 시점 변환된 영상) 내 홀이 존재한다면, 시점 변환 수행부(220)는 제1 카메라에 인접한 제2 카메라에서 촬영된 영상(또는 제2 카메라에서 촬영된 영상이 후퇴 시점 변환된 영상)의 영역들 중 제1 영상의 홀에 대응하는 영역의 픽셀값으로 제1 영상의 홀을 채울 수 있다.
다른 예를 들면, 시점 변환 수행부(220)는 후퇴 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 후퇴 시점 변환된 영상들 각각의 홀을 채울 수 있다. 더 구체적인 예를 들면, 제1 영상(제1 카메라에서 촬영된 영상이 단계(S1020)에서 후퇴 후퇴 시점 변환된 영상) 내 홀이 존재한다면, 시점 변환 수행부(220)는 제1 영상의 영역들 중 홀에 인접한 배경 영역의 픽셀값으로 제1 영상의 홀을 채울 수 있다.
또한, 별도의 단계로 도시되지는 않았으나, 시점 변환 수행부(220)는 단계(S1030)를 수행한 뒤, 깊이 맵에 대한 후퇴 시점 변환을 수행할 수도 있다. 깊이 맵에 대한 후퇴 시점 변환 역시 단계(S1020)와 동일하게 수행되므로 이에 대한 상세한 설명은 생략하기로 한다.
또한, 시점 변환 수행부(220)는 홀이 채워진 영상들(후퇴 시점 변환된 뒤 홀이 채워진 영상들)을 참조하여 깊이 맵의 홀을 채울 수 있다. 이러한 과정은 단계(S1030)에서 홀을 채우는 방식과 유사하게 진행되므로 이에 대한 상세한 설명은 생략하기로 한다.
그 후, 단계(S1040)에서 저장부(230)는 홀이 채워진 영상들과 깊이 맵을 저장한다. 이처럼 저장부(230)에 의해 저장된 홀이 채워진 영상들(후퇴 시점 변환된 뒤 홀이 채워진 영상들)과 깊이 맵은 후술되는 360도 영상 렌더링 방법의 단계(S1110)에서 이용되게 된다.
또한, 단계(S1040)에서 저장부(230)는 홀이 채워진 영상들을 스티칭하여 360도 전방위 영상을 생성함으로써, 스티칭 영상과 깊이 맵을 저장하여 후술되는 360도 영상 렌더링 방법의 단계(S1110)에서 이용되도록 할 수 있다.
이 때, 저장되는 깊이 맵이 복수의 카메라들(110)에서 각각 촬영된 영상들에 대응하여 복수 개로 획득되는 경우, 시점 변환 수행부(220)는 복수의 깊이 맵들 각각의 홀을 채울 수 있으며, 저장부(230)는 홀이 채워진 깊이 맵들을 스티칭하여 360도 전방위 깊이 맵을 생성하여 저장할 수 있다.
도 11은 일 실시예에 따른 360도 영상 렌더링 방법을 나타낸 플로우 차트이다. 이하, 설명되는 360도 영상 렌더링 방법은 도 10을 참조하여 설명된 360도 영상 저장 방법이 사전에 수행된 이후에 수행됨을 전제로 한다. 그러나 이에 제한되거나 한정되지 않고, 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들이 저장되는 다양한 영상 저장 방법이 수행된 이후에 수행될 수 있다. 또한, 이하, 360도 영상 렌더링 방법은 360도 카메라 시스템(100)에 포함되는 프로세서(130)의 구성요소들에 의해 수행되는 것으로 설명되며, 프로세서(130)의 구성요소들은 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램의 형태로 구현될 수 있다.
도 11을 참조하면, 단계(S1110)에서 일 실시예에 따른 360도 영상 렌더링 시스템에 포함되는 로드부(310)는, 360도 카메라 시스템(100)에 포함되는 복수의 카메라들(110)에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드한다. 여기서, 후퇴 시점 변환된 영상들은 도 10을 참조하여 설명된 360도 영상 저장 방법 중 단계(S1040)에서 저장된 후퇴 시점 변환된 뒤 홀이 채워진 영상들일 수 있다.
영상들에 대한 깊이 맵 역시 마찬가지로 도 10을 참조하여 설명된 360도 영상 저장 방법에서 획득된 깊이 맵으로, 특히, 홀이 채워진 상태의 깊이 맵일 수 있다.
이 때, 단계(S1110)에서 로드부(310)는 스티칭 영상과 깊이 맵을 로드할 수 있다. 이러한 경우, 로드되는 깊이 맵 역시, 깊이 맵들이 스티칭된 360도 전방위 깊이 맵일 수 있으며, 후술되는 단계(S1120)에서 시점 변환 수행부(320)는 360도 전방위 영상인 스티칭 영상에 대한 전진 시점 변환을 수행할 수 있다.
그 후, 단계(S1120)에서 360도 영상 렌더링 시스템에 포함되는 시점 변환 수행부(320)는, 깊이 맵을 이용하여 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행한다. 구체적으로, 시점 변환 수행부(320)는 깊이 맵에 기초하여 복수의 카메라들(110) 각각의 초점 거리, 복수의 카메라들(110) 사이의 베이스라인의 길이 및 복수의 카메라들(110) 사이의 시차에 기초한 시점 변환 수식(전술된 식 9 또는 10)을 설정하고, 시점 변환 수식에서 이동 파라미터를 결정함으로써, 시점 변환 수식을 이용하여 영상들 각각의 시점이 전진 위치에서 촬영된 영상의 시점으로 일치하도록 변환할 수 있다. 예를 들어, 시점 변환 수행부(320)는 복수의 카메라들(110) 각각의 광학 중심이 360도 카메라 시스템(100) 상 복수의 카메라들(110)이 배치되는 원 또는 구의 중심 위치로부터 전진된 위치에 배치되도록 전진 시점 변환을 수행할 수 있다.
이러한 전진 시점 변환은 도 10을 참조하여 전술된 360도 영상 저장 방법 중 단계(S1020)에서 수행된 후퇴 시점 변환의 역변환일 수 있다.
이러한 전진 시점 변환을 통해, 복수의 카메라들(110)에서 각각 촬영된 영상들이 각각 후퇴 시점 변환되는 과정에서 발생된 홀(도 10을 참조하여 전술된 360도 영상 저장 방법 중 단계(S1020)에서 수행된 후퇴 시점 변환에서 발생될 수 있는 홀)이 제거될 수 있다.
또한, 렌더링 과정에서 오클루전 영역에서 발생되는 홀 역시 전진 시점 변환에 의해 생성되는 오클루전 영역으로 감춰질 수 있다.
단계(S1120)를 통해서도 제거되거나 감춰지지 않은 홀은, 전진 시점 변환된 영상들 각각에서 전진 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여 채워질 수 있다. 예를 들어, 단계(S1120) 이후, 시점 변환 수행부(320)는 전진 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 전진 시점 변환된 영상들 각각의 홀을 채울 수 있다. 더 구체적인 예를 들면, 전진 시점 변환된 영상 내 홀이 존재한다면, 시점 변환 수행부(320)는 영상의 영역들 중 홀에 인접한 배경 영역의 픽셀값으로 영상의 홀을 채울 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수 개의 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 어플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (18)

  1. 360도 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 360도 영상 저장 방법에 있어서,
    상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 단계;
    상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계;
    상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 단계; 및
    상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 단계
    를 포함하고,
    상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계는,
    상기 후퇴 시점 변환된 영상들 각각을 촬영한 카메라와 인접한 카메라에서 촬영된 영상을 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계
    를 포함하는 것을 특징으로 하는 360도 영상 저장 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계는,
    상기 후퇴 시점 변환된 영상들 각각에서 상기 후퇴 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계
    를 포함하는 360도 영상 저장 방법.
  4. 제1항에 있어서,
    상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계는,
    상기 깊이 맵에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 복수의 카메라들 사이의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하는 단계;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및
    상기 시점 변환 수식을 이용하여, 상기 영상들 각각의 시점을 상기 영상들 각각이 촬영된 위치로부터 후퇴된 위치에서 촬영된 영상의 시점으로 일치하도록 변환하는 단계
    를 포함하는 360도 영상 저장 방법.
  5. 제4항에 있어서,
    상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는,
    상기 복수의 카메라들 각각의 광학 중심이 상기 360도 카메라 시스템 상 상기 복수의 카메라들이 배치되는 원 또는 구의 중심 위치로 이동될 때의 이동할 거리에 기초하여 상기 이동 파라미터를 결정하는 단계인, 360도 영상 저장 방법.
  6. 제4항에 있어서,
    상기 영상들 각각의 시점을 상기 영상들 각각이 촬영된 위치로부터 후퇴된 위치에서 촬영된 영상의 시점으로 일치하도록 변환하는 단계는,
    상기 영상들 각각의 시점을 상기 360도 카메라 시스템 상 상기 복수의 카메라들이 배치되는 원 또는 구의 중심 위치에서 촬영된 영상의 시점으로 변환하는 단계인, 360도 영상 저장 방법.
  7. 제1항에 있어서,
    상기 깊이 맵에 대한 후퇴 시점 변환을 수행하는 단계
    를 더 포함하는 360도 영상 저장 방법.
  8. 제1항에 있어서,
    상기 홀이 채워진 영상들에 기초하여 상기 깊이 맵의 홀을 채우는 단계
    를 더 포함하는 360도 영상 저장 방법.
  9. 제8항에 있어서,
    상기 깊이 맵은,
    상기 복수의 카메라들에서 각각 촬영된 영상들에 대응하여 복수 개로 획득되고,
    상기 깊이 맵의 홀을 채우는 단계는,
    상기 복수의 깊이 맵들 각각의 홀을 채우는 단계이며,
    상기 360도 영상 저장 방법은,
    상기 홀이 채워진 깊이 맵들을 스티칭하여 360도 전방위 깊이 맵을 생성하는 단계
    를 더 포함하는 360도 영상 저장 방법.
  10. 제1항에 있어서,
    상기 홀이 채워진 영상들을 스티칭하여 360도 전방위 영상을 생성하는 단계
    를 더 포함하는 360도 영상 저장 방법.
  11. 컴퓨터와 결합되어 360도 영상 저장 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서,
    상기 360도 영상 저장 방법은,
    360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 단계;
    상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하는 단계;
    상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 단계; 및
    상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 단계
    를 포함하고,
    상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계는,
    상기 후퇴 시점 변환된 영상들 각각을 촬영한 카메라와 인접한 카메라에서 촬영된 영상을 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 단계
    를 포함하는 것을 특징으로 하는 기록 매체에 기록된 컴퓨터 프로그램.
  12. 카메라 시스템에 구비되는 컴퓨터로 구현되는 360도 영상 저장 시스템에 있어서,
    컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들과 깊이 맵(Depth map)을 획득하는 획득부;
    상기 깊이 맵을 이용하여 상기 영상들 각각에 대한 후퇴 시점 변환을 수행하고, 상기 후퇴 시점 변환된 영상들 각각의 홀(Hole)을 채우는 시점 변환 수행부; 및
    상기 홀이 채워진 영상들과 상기 깊이 맵을 저장하는 저장부
    를 포함하고,
    상기 시점 변환 수행부는,
    상기 후퇴 시점 변환된 영상들 각각을 촬영한 카메라와 인접한 카메라에서 촬영된 영상을 이용하여, 상기 후퇴 시점 변환된 영상들 각각의 홀을 채우는 것을 특징으로 하는 360도 영상 저장 시스템.
  13. 360도 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 360도 영상 렌더링 방법에 있어서,
    상기 360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 단계; 및
    상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계
    를 포함하고,
    상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는,
    상기 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환되는 과정에서 발생된 홀을 제거하는 단계인 것을 특징으로 하는 360도 영상 렌더링 방법.
  14. 삭제
  15. 제13항에 있어서,
    상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는,
    렌더링 과정에서 오클루전(Occlusion) 영역에서 발생되는 홀을 상기 전진 시점 변환에 의해 생성되는 오클루전 영역으로 감추는 단계인, 360도 영상 렌더링 방법.
  16. 제13항에 있어서,
    상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는,
    상기 전진 시점 변환된 영상들 각각에서 상기 전진 시점 변환된 영상들 각각의 홀과 인접한 배경 영역의 정보를 이용하여, 상기 전진 시점 변환된 영상들 각각의 홀을 채우는 단계
    를 더 포함하는 360도 영상 렌더링 방법.
  17. 컴퓨터와 결합되어 360도 영상 렌더링 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서,
    상기 360도 영상 렌더링 방법은,
    360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 단계; 및
    상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계
    를 포함하고,
    상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 단계는,
    상기 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환되는 과정에서 발생된 홀을 제거하는 단계인 것을 특징으로 하는 기록 매체에 기록된 컴퓨터 프로그램.
  18. 카메라 시스템에 구비되는 컴퓨터로 구현되는 360도 영상 렌더링 시스템에 있어서,
    컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    360도 카메라 시스템에 포함되는 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환된 영상들과 깊이 맵을 로드하는 로드부; 및
    상기 깊이 맵을 이용하여 상기 후퇴 시점 변환된 영상들 각각에 대한 전진 시점 변환을 수행하는 시점 변환 수행부
    를 포함하고,
    상기 시점 변환 수행부는,
    상기 복수의 카메라들에서 각각 촬영된 영상들이 각각 후퇴 시점 변환되는 과정에서 발생된 홀을 제거하는 단계인 것을 특징으로 하는 360도 영상 렌더링 시스템.
KR1020190037679A 2019-04-01 2019-04-01 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법 KR102209907B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190037679A KR102209907B1 (ko) 2019-04-01 2019-04-01 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190037679A KR102209907B1 (ko) 2019-04-01 2019-04-01 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법

Publications (2)

Publication Number Publication Date
KR20200116224A KR20200116224A (ko) 2020-10-12
KR102209907B1 true KR102209907B1 (ko) 2021-01-29

Family

ID=72886479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190037679A KR102209907B1 (ko) 2019-04-01 2019-04-01 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법

Country Status (1)

Country Link
KR (1) KR102209907B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022102795A1 (ko) * 2020-11-10 2022-05-19 주식회사 피제이팩토리 360도 영상 간 연결 방법
KR102373571B1 (ko) * 2020-11-16 2022-03-10 주식회사 펀진 서라운드 뷰 모니터링 시스템 및 그 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933037B1 (ko) * 2017-03-24 2018-12-27 주식회사 씨오티커넥티드 360도 동영상에서의 가상현실 재생 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101411568B1 (ko) * 2012-08-10 2014-06-27 광운대학교 산학협력단 컴퓨터 홀로그램 생성을 위한 가상시점 깊이영상 합성 방법
KR20170059902A (ko) * 2015-11-23 2017-05-31 한국전자통신연구원 다시점 비디오의 부호화/복호화 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933037B1 (ko) * 2017-03-24 2018-12-27 주식회사 씨오티커넥티드 360도 동영상에서의 가상현실 재생 장치

Also Published As

Publication number Publication date
KR20200116224A (ko) 2020-10-12

Similar Documents

Publication Publication Date Title
US11632533B2 (en) System and method for generating combined embedded multi-view interactive digital media representations
US10728527B2 (en) Tilts as a measure of user engagement for multiview interactive digital media representations
US10382739B1 (en) Visual annotation using tagging sessions
US10818029B2 (en) Multi-directional structured image array capture on a 2D graph
US10068316B1 (en) Tilts as a measure of user engagement for multiview digital media representations
CN106547092B (zh) 用于补偿头戴式显示器的移动的方法和设备
US9237330B2 (en) Forming a stereoscopic video
CN110622494A (zh) 使用具有多个相机的铰接式设备进行图像捕捉
JP2018523326A (ja) 全球状取込方法
US20130127988A1 (en) Modifying the viewpoint of a digital image
US8611642B2 (en) Forming a steroscopic image using range map
US11044398B2 (en) Panoramic light field capture, processing, and display
KR20160140452A (ko) 이미지 기반의 라이트 필드를 사용자의 디바이스 상에 표시하기 위한 방법 및 장치, 및 대응하는 컴퓨터 프로그램 제품
KR101997991B1 (ko) 시점 변환을 이용하는 영상 결합 방법 및 시스템
US20130127993A1 (en) Method for stabilizing a digital video
US20130129192A1 (en) Range map determination for a video frame
CN104618704A (zh) 用于图像处理的方法和设备
KR102374404B1 (ko) 콘텐트를 제공하기 위한 디바이스 및 방법
US11252398B2 (en) Creating cinematic video from multi-view capture data
KR102209907B1 (ko) 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법
TWI669683B (zh) 三維影像重建方法、裝置及其非暫態電腦可讀取儲存媒體
WO2019213392A1 (en) System and method for generating combined embedded multi-view interactive digital media representations
US11176678B2 (en) Method and apparatus for applying dynamic effect to image
JP2019144958A (ja) 画像処理装置、画像処理方法およびプログラム
KR101986433B1 (ko) 시점 변환을 이용하는 영상 스티칭 방법 및 시스템

Legal Events

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