KR101986433B1 - 시점 변환을 이용하는 영상 스티칭 방법 및 시스템 - Google Patents

시점 변환을 이용하는 영상 스티칭 방법 및 시스템 Download PDF

Info

Publication number
KR101986433B1
KR101986433B1 KR1020170160021A KR20170160021A KR101986433B1 KR 101986433 B1 KR101986433 B1 KR 101986433B1 KR 1020170160021 A KR1020170160021 A KR 1020170160021A KR 20170160021 A KR20170160021 A KR 20170160021A KR 101986433 B1 KR101986433 B1 KR 101986433B1
Authority
KR
South Korea
Prior art keywords
image
viewpoint
images
camera system
viewpoint transformation
Prior art date
Application number
KR1020170160021A
Other languages
English (en)
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 KR1020170160021A priority Critical patent/KR101986433B1/ko
Priority to US16/201,385 priority patent/US10778950B2/en
Application granted granted Critical
Publication of KR101986433B1 publication Critical patent/KR101986433B1/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/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • 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/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/14Transformations for image registration, e.g. adjusting or mapping for alignment of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • 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/128Adjusting depth or disparity
    • 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/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/271Image signal generators wherein the generated image signals comprise depth maps or disparity maps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

시점 변환을 이용하는 영상 스티칭 방법 및 시스템이 개시된다. 일 실시예에 따른 영상 스티칭 방법은, 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 단계; 상기 영상들에 대한 깊이 맵(Depth map)을 이용하여 상기 영상들 각각에 대한 시점 변환을 수행하는 단계; 및 상기 시점 변환이 수행된 영상들을 스티칭(Stitching)하는 단계를 포함할 수 있다.

Description

시점 변환을 이용하는 영상 스티칭 방법 및 시스템{IMAGE STITCHING METHOD AND SYSTEM USING VIEWPOINT TRANSFORMATION}
아래의 설명은 영상 스티칭 시스템 및 그 방법에 관한 것으로, 보다 상세하게는 시점 변환(Viewpoint transformation)을 이용하여 영상을 스티칭하는 기술에 대한 것이며, 더 나아가 영상의 시점을 변환하는 기술 자체에 대한 것이다.
여러 장의 영상들을 하나의 영상으로 이어 붙여 파노라마 영상을 만드는 것은, 동일한 피사체를 포함하는 영상들(겹치는 일부분을 갖는 영상들)을 정렬(alignment)하여 영상들 간의 상대적인 움직임을 결정한 후에 원통 또는 구에 투영(project)하고 영상이 중첩되는 부분들을 혼합하는 절차를 통해 수행되며, 컴퓨터 비전 분야에서 오랫동안 연구되어 왔다(이하, 복수의 영상들을 이어 붙이는 것을 "스티칭(Stitching)한다"라고 표현함).
구체적으로, 영상들을 정렬하는 방식으로는 영상들을 패치 단위로 비교하여 광학흐름(optical flow)을 구하는 방식과 영상에서 특징점들을 뽑아서 비교하는 방식이 있다. 특히, 특징 기반의 방식은 장면의 움직임에 대해서 좀 더 견고한(robust) 결과를 보여줄 뿐만 아니라 처리속도도 더 빠르다. 또한 섞여 있는 영상들로부터 인접 관계를 자동으로 파악하여 파노라마를 만드는 것도 가능하다. 이러한 방식은 논문 Brown, M. and Lowe, D., "Recognizing panoramas", ICCV 2003, pp. 1218-1225, Nice Prance에 개시되어 있다.
또한, 영상들을 정합(register)하고 정렬(align)하여 움직임을 결정할 때는 2D 변환(2D transform), 평면 원근 모델(planar perspective model) 또는 3D 카메라 회전(3D camera rotation)과 같은 모델들이 사용되며, 영상들을 스티칭할 때에는 접합 부분에서 양안시차(parallax) 또는 피사체의 움직임에 의해 중첩되어(ghost) 보이거나 영상들 간의 밝기 차이가 있을 수 있으므로, 텍스처가 적은 접합 부분을 찾아 이어 붙이거나 접합되는 두 이미지를 잘 혼합(blending)하는 방식이 사용된다.
이처럼 영상들을 스티칭하는 것은 영상들 간에 시차(parallax)가 존재하게 되는 경우, 영상 접합 부분이 번져 보이거나(blurry) 겹쳐 보이는(ghost) 현상이 발생되는 문제를 갖는다. 예컨대, 현재 출시되어 널리 사용되고 있는 복수의 카메라들로 구성되는 360 카메라 시스템의 경우 복수의 카메라들 각각에서 촬영된 영상 사이에 시차가 존재하며, 해당 영상들을 스티칭하는 경우 영상들의 접합 부분에서 이음매가 어긋남이 발생될 수 있다. 그러나 영상들 간에 시차가 생기지 않도록 촬영하려면 카메라를 카메라의 광학 중심(optical center)을 축으로 물리적으로 회전시키면서 촬영해야 하는데, 광학 중심은 카메라 렌즈 시스템 내부 또는 앞쪽에 위치하므로 2대 이상의 카메라들을 포함하는 카메라 시스템에서 영상들을 촬영하는 경우에는 카메라들의 광학 중심을 일치시킬 수 없어 시차가 항시 발생하게 된다.
이에, 여러 카메라로 촬영된 영상들 사이의 광학 중심을 일치시키기 위해 거울 등의 별도 광학 장치를 사용하는 방식이 제안되었지만, 해당 방식은 시야각이 제한된다는 단점 이외에도 카메라의 부피가 커진다는 단점을 갖는다. 이러한 방식은 논문 Kar-Han Tan, Hong Hua, and Narendra Ahuja, "Multiview Panoramic Cameras Using Mirror Pyramids", IEEE Trans. Pattern Analysis and Machine Intelligence 26:7 (2004), 941-945에 개시되어 있다.
또한, 여러 카메라로 촬영된 영상들 각각을 부분적으로 변형하는 방식이 제안되었지만, 해당 방식은 시차를 제거하는 것이 아니라 이음매의 어긋남을 최소화하기 위한 것이며, 영상들에서 부분적인 왜곡이 발생되는 문제를 갖는다.
따라서, 아래의 실시예들은 별도의 장치를 구비하지 않고, 카메라를 물리적으로 회전 또는 이동시키지 않은 채, 영상들 간에 존재하는 시차를 제거하기 위해 영상들의 시점(Viewpoint)을 일치시키는 기술 및 해당 기술을 바탕으로 시차가 존재하는 영상들을 합성(View synthesis)하여 스티칭하는 기술을 제안한다.
일 실시예들은 별도의 장치를 구비하지 않고, 카메라를 물리적으로 회전 또는 이동시키지 않은 채, 영상들이 동일한 위치에서 촬영된 것처럼 영상들 각각의 시점을 변환하여 스티칭하는 영상 스티칭 방법, 시스템 및 컴퓨터와 결합되어 영상 스티칭 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램을 제안한다.
구체적으로, 일 실시예들은 영상들에 대한 깊이 맵(Depth map)에 기초한 시점 변환 수식을 이용하여 영상들 각각에 대한 시점 변환(Viewpoint transformation)을 수행함으로써 영상들 각각의 시점인 광학 중심을 일치시켜 영상들 사이의 시차를 제거한 뒤 스티칭하는 영상 스티칭 방법, 시스템 및 컴퓨터 프로그램을 제안한다.
이 때, 일 실시예들은 시점 변환이 수행된 영상들, 그리고 스티칭된 영상에서의 홀을 채움으로써, 스티칭된 영상의 완성도를 향상시키는 영상 스티칭 방법, 시스템 및 컴퓨터 프로그램을 제안한다.
또한, 일 실시예들은 영상에 대한 깊이 맵에 기초한 시점 변환 수식을 이용하여 영상의 시점을 변환하는 영상 시점 변환 방법, 시스템 및 컴퓨터와 결합되어 영상 시점 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램을 제안한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 시점 변환(Viewpoint transformation)을 이용하는 영상 스티칭 방법은, 상기 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 단계; 상기 영상들에 대한 깊이 맵(Depth map)을 이용하여 상기 영상들 각각에 대한 시점 변환을 수행하는 단계; 및 상기 시점 변환이 수행된 영상들을 스티칭(Stitching)하는 단계를 포함한다.
일 측면에 따르면, 상기 영상들 각각에 대한 시점 변환을 수행하는 단계는, 상기 깊이 맵에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 복수의 카메라들 간의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하는 단계; 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및 상기 시점 변환 수식을 이용하여 상기 영상들 각각의 시점을 일치하도록 변환하는 단계를 포함할 수 있다.
다른 측면에 따르면, 상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는, 상기 복수의 카메라들 각각의 광학 중심이 상기 카메라 시스템의 가상의 기준 위치로 이동될 때의 이동할 거리에 기초하여 상기 이동 파라미터를 결정하는 단계일 수 있다.
또 다른 측면에 따르면, 상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는, 상기 복수의 카메라들 간의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하는 단계를 포함할 수 있다.
또 다른 측면에 따르면, 상기 영상들 각각의 시점을 일치하도록 변환하는 단계는, 상기 영상들 각각의 시점을 상기 카메라 시스템의 기준 위치에서 촬영된 영상의 시점으로 변환하는 단계일 수 있다.
또 다른 측면에 따르면, 상기 영상들 각각에 대한 시점 변환을 수행하는 단계는, 상기 영상들 각각에 대한 시점 변환을 수행하기 이전에, 상기 깊이 맵의 홀을 채우는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 영상들 각각에 대한 시점 변환을 수행하는 단계는, 상기 시점 변환이 수행된 영상들 각각의 홀을 채우는 단계를 더 포함할 수 있다.
또 다른 측면에 따르면, 상기 시점 변환이 수행된 영상들을 스티칭하는 단계는, 상기 스티칭된 영상의 홀이 채워지도록 상기 스티칭된 영상의 시점을 변환하는 단계를 더 포함할 수 있다.
일 실시예에 따르면, 컴퓨터와 결합되어 시점 변환을 이용하는 영상 스티칭 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서, 상기 영상 스티칭 방법은, 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 단계; 상기 영상들에 대한 깊이 맵을 이용하여 상기 영상들 각각에 대한 시점 변환을 수행하는 단계; 및 상기 시점 변환이 수행된 영상들을 스티칭하는 단계를 포함한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터로 구현되는 시점 변환을 이용하는 영상 스티칭 시스템은, 컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 영상 획득부; 상기 영상들에 대한 깊이 맵을 이용하여 상기 영상들 각각에 대한 시점 변환을 수행하는 시점 변환 수행부; 및 상기 시점 변환이 수행된 영상들을 스티칭하는 스티칭부를 포함한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 영상 시점 변환 방법은, 상기 카메라 시스템에서 촬영된 영상을 획득하는 단계; 상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 단계; 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및 상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 단계를 포함한다.
일 측면에 따르면, 상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는, 상기 카메라 시스템의 광학 중심이 상기 가상의 특정 위치로 이동될 때의 이동할 거리에 기초하여 상기 이동 파라미터를 결정하는 단계일 수 있다.
일 실시예에 따르면, 컴퓨터와 결합되어 영상 시점 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서, 상기 영상 시점 변환 방법은, 카메라 시스템에서 촬영된 영상을 획득하는 단계; 상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 단계; 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및 상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 단계를 포함한다.
일 실시예에 따르면, 카메라 시스템에 구비되는 컴퓨터로 구현되는 영상 시점 변환 시스템은, 컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 카메라 시스템에서 촬영된 영상을 획득하는 영상 획득부; 상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 수식 설정부; 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 이동 파라미터 결정부; 및 상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 시점 변환부를 포함한다.
일 실시예들은 별도의 장치를 구비하지 않고, 카메라를 물리적으로 회전 또는 이동시키지 않은 채, 영상들이 동일한 위치에서 촬영된 것처럼 영상들 각각의 시점을 변환하여 스티칭하는 영상 스티칭 방법, 시스템 및 컴퓨터와 결합되어 영상 스티칭 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램을 제안할 수 있다.
구체적으로, 일 실시예들은 영상들에 대한 깊이 맵(Depth map)에 기초한 시점 변환 수식을 이용하여 영상들 각각에 대한 시점 변환(Viewpoint transformation)을 수행함으로써 영상들 각각의 시점인 광학 중심을 일치시켜 영상들 사이의 시차를 제거한 뒤 스티칭하는 영상 스티칭 방법, 시스템 및 컴퓨터 프로그램을 제안할 수 있다.
이 때, 일 실시예들은 시점 변환이 수행된 영상들, 그리고 스티칭된 영상에서의 홀을 채움으로써, 스티칭된 영상의 완성도를 향상시키는 영상 스티칭 방법, 시스템 및 컴퓨터 프로그램을 제안할 수 있다.
따라서, 일 실시예들은 영상들 사이에 시차가 존재하는 경우에도 이음매가 어긋남 없이 자연스럽게 스티칭하는 기술을 제안할 수 있다.
또한, 일 실시예들은 영상에 대한 깊이 맵에 기초한 시점 변환 수식을 이용하여 영상의 시점을 변환하는 영상 시점 변환 방법, 시스템 및 컴퓨터와 결합되어 영상 시점 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램을 제안할 수 있다.
이에, 일 실시예들은 카메라의 물리적인 위치 변경 없이 영상이 가상의 특정 위치에서 촬영된 것처럼 시점을 변환하는 기술을 제안함으로써, 시점 변환된 영상의 활용 폭을 넓힐 수 있다.
도 1은 일 실시예에 따른 카메라 시스템을 나타낸 블록도이다.
도 2는 일 실시예에 따른 카메라 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 나타낸 블록도이다.
도 3 내지 7은 일 실시예에 따른 영상 스티칭 방법을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 영상 스티칭 방법을 나타낸 플로우 차트이다.
도 9는 일 실시예에 따른 영상 시점 변환 시스템을 나타낸 블록도이다.
도 10은 일 실시예에 따른 영상 시점 변환 방법을 나타낸 플로우 차트이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 카메라 시스템을 나타낸 블록도이다.
도 1을 참조하면, 일 실시예에 따른 카메라 시스템(100)은 복수의 카메라들(110), 메모리(120), 프로세서(130) 및 입출력 인터페이스(140)를 포함할 수 있다. 이하, 카메라 시스템(100)이 복수의 카메라들(110)(예컨대, 6대의 카메라들)을 포함하는 360 카메라인 것으로 설명하나 이제 제한되거나 한정되지 않고, 복수의 카메라들(110)이 겹치는 일부분을 갖는 영상을 촬영하도록 배치된 다양한 카메라 시스템(예컨대, 스테레오 카메라 시스템)일 수 있다.
메모리(120)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(non-volatile mass storage device)를 포함할 수 있다. 또한, 메모리(120)에는 운영체제, 복수의 카메라들(110) 각각에서 촬영된 영상, 적어도 하나의 프로그램 코드(일례로 후술되는 영상 스티칭 방법을 수행하는 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(120)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(도면에는 도시되지 않음)을 통해 메모리(120)에 로딩될 수도 있다.
프로세서(130)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(120) 또는 통신 모듈에 의해 프로세서(130)로 제공될 수 있다. 예를 들어, 프로세서(130)는 메모리(120)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
입출력 인터페이스(140)는 입출력 장치(도면에는 도시되지 않음)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 카메라 시스템(100)에 구비되는 터치 스크린, 버튼 등의 장치를, 그리고 출력 장치는 촬영된 영상들을 표시하는 디스플레이와 같은 장치를 포함할 수 있다. 다른 예를 들면, 입출력 인터페이스(140)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다.
다른 실시예들에서 카메라 시스템(100)은 도 1의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 카메라 시스템(100)는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
이하에서는 상술한 카메라 시스템에 구비되는 프로세서(130)에 의해 실행되는 영상 스티칭 방법과 프로세서(130)를 포함하는 영상 스티칭 시스템의 구체적인 실시예를 설명하기로 한다.
도 2는 일 실시예에 따른 카메라 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 나타낸 블록도이다.
도 2를 참조하면, 일 실시예에 따른 영상 스티칭 시스템은 도 1을 참조하여 상술된 카메라 시스템(100)의 프로세서(130)를 포함하도록 구성될 수 있다. 보다 상세하게, 영상 스티칭 시스템은 도면에 도시된 바와 같이 프로세서(130)의 구성요소들인 영상 획득부(210), 시점 변환 수행부(220) 및 스티칭부(230)를 포함할 수 있다. 실시예에 따라 프로세서(130)의 구성요소들은 선택적으로 프로세서(130)에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서(130)의 구성요소들은 프로세서(130)의 기능의 표현을 위해 분리 또는 병합될 수도 있다. 예컨대, 프로세서(130)의 구성요소들 중 적어도 일부는 카메라 시스템(100)과 통신으로 연결되는 별도의 서버에 포함되는 프로세서에 구현될 수 있다.
이러한 프로세서(130)의 구성요소들은 도 8의 영상 스티칭 방법이 포함하는 단계들(S810 내지 S860)을 수행하도록 메모리(120)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램(예컨대, 영상 스티칭 방법을 실행하는 코드로 구성된 프로그램)의 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서(130)의 구성요소들은 메모리(120)에 저장된 프로그램 코드가 제공하는 명령에 따른 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 카메라 시스템(100)에 포함되는 복수의 카메라들(110) 각각에서 촬영된 영상을 획득하는 동작에 대한 기능적 표현으로서 영상 획득부(210)가 이용될 수 있다.
이에, 프로세서(130)의 각 구성요소들은 다음과 같이 동작함으로써, 영상 스티칭 방법을 수행할 수 있다. 구체적으로, 영상 획득부(210)가 카메라 시스템(100)에 포함되는 복수의 카메라들(110) 각각에서 촬영된 영상을 획득하고, 시점 변환 수행부(220)가 영상들에 대한 깊이 맵을 이용하여 영상들 각각에 대한 시점 변환을 수행하며, 스티칭부(230)가 시점 변환이 수행된 영상들을 스티칭함으로써, 영상 스티칭 시스템은 별도의 장치를 구비하지 않고, 카메라를 물리적으로 회전 또는 이동시키지 않은 채, 영상들이 동일한 위치에서 촬영된 것처럼 영상들 각각의 시점을 변환하여 스티칭할 수 있다. 각 구성요소들의 동작에 대한 상세한 설명은 도 8을 참조하여 기재하기로 하며, 시점 변환 수행부(220)의 동작 원리에 대한 상세한 설명은 도 3 내지 7을 참조하여 기재하기로 한다.
도 3 내지 7은 일 실시예에 따른 영상 스티칭 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 일 실시예에 따른 영상 스티칭 시스템은 카메라 시스템(100)을 구성하는 복수의 카메라들(110) 각각의 광학 중심을 가상의 특정 위치(310)로 일치시킴으로써 복수의 카메라들(110) 각각에서 촬영된 영상이 동일한 위치(310)에서 촬영된 것처럼 변환할 수 있다.
이 때, 복수의 카메라들(110) 각각의 광학 중심을 일치시키게 되면, 복수의 카메라들(110)에서 촬영된 영상들의 시점 역시 일치하게 된다.
즉, 영상 스티칭 시스템은 복수의 카메라들(110) 각각을 실제로 이동시키는 것이 아닌, 복수의 카메라들(110)에서 촬영된 영상들의 시점을 가상의 특정 위치(310)에서 촬영된 영상의 시점인 것처럼 변환함으로써, 영상 스티칭 방법을 수행한다.
이를 위한 원리로서, 도 4를 참조하면, 특정 위치(410)에 있는 카메라로부터 df 거리에 있는 w라는 점은 db 거리에 있는 배경에서 광축(Optical axis)(420)에서 X 만큼 떨어진 위치에 나타난다. 이 위치는 카메라가 특정 위치(410)에서 후방으로 r 만큼 후퇴한 위치(430)에 배치될 때 X' 위치로 변경되고, 카메라가 특정 위치(410)에서 s 만큼 옆으로 이동된 위치(440)에 배치될 때 광축(450)에서 X" 만큼 떨어진 위치로 변경된다. 이러한 X, X', X"들이 영상에서 영상 중심으로부터 x, x', x" 만큼 떨어진 위치에 나타난다고 하면, 이 위치들은 도 5 내지 7과 같은 핀홀(pinhole) 카메라 모델을 사용해 계산될 수 있다.
예를 들어, 카메라가 특정 위치(410)에서 r 만큼 후퇴한 위치(430)로 이동하는 경우는 도 4로부터 아래 식 1과 같이 X'이 계산될 수 있다.
<식 1>
Figure 112017118277592-pat00001
또한, 식 1과 같이 계산되는 X'은 도 5 내지 6의 핀홀 카메라 모델을 이용하면 영상에서는 아래 식 2와 같이 표현될 수 있다.
<식 2>
Figure 112017118277592-pat00002
한편, 깊이 맵에서 깊이 d와 시차 D는
Figure 112017118277592-pat00003
의 관계를 가지므로(여기서, f는 초점 거리를 의미하고, B는 카메라 시스템(100)에서 복수의 카메라들(110) 간의 베이스라인의 길이, D는 시차를 의미함), 식 2는 아래 식 3과 같이 표현될 수 있다.
<식 3>
Figure 112017118277592-pat00004
다른 예를 들면, 카메라가 특정 위치(410)에서 측방으로 s 만큼 떨어진 위치(440)에 이동하는 경우는 도 4로부터 아래 식 4와 같이 X"이 계산될 수 있다.
<식 4>
Figure 112017118277592-pat00005
또한, 식 4와 같이 계산되는 X"은 도 5 내지 7의 핀홀 카메라 모델을 이용하면 영상에서는 아래 식 5와 같이 표현될 수 있으며, 깊이 d와 시차 D의 관계에 따라 아래 식 6과 같이 표현될 수 있다.
<식 5>
Figure 112017118277592-pat00006
<식 6>
Figure 112017118277592-pat00007
따라서, 카메라가 특정 위치(410)에서 후방으로 r 만큼 후퇴하고 측방으로 s 만큼 떨어진 위치로 이동하는 경우
Figure 112017118277592-pat00008
는 도 5 내지 7의 핀홀 카메라 모델을 이용하여 영상에서 아래 식 7과 같이 계산될 수 있다.
<식 7>
Figure 112017118277592-pat00009
또한, 식 7은 깊이 d와 시차 D의 관계에 따라 아래 식 8과 같이 표현될 수 있다.
<식 8>
Figure 112017118277592-pat00010
식 8로부터 카메라가 특정 위치(410)에서 촬영한 영상을 카메라가 특정 위치(410)로부터 x, y, z 방향으로 각각 mx, my, mz 만큼 이동했을 때 촬영한 영상으로 변환하는 시점 변환 수식이 획득될 수 있다. 카메라가 특정 위치(410)에서 촬영한 원래의 영상 I(x, y)와 카메라가 특정 위치(410)로부터 mx, my, mz 만큼 이동했을 때 촬영한 영상인 변환된 영상 I'(x', y')에 대해 x, y, x', y'는 각각의 영상에서의 픽셀 위치라 하면 포워드 와핑(forward warping)은 아래 식 9와 같이 표현될 수 있고, 백워드 와핑(backward warping)은 식 10과 같이 표현될 수 있다.
<식 9>
Figure 112017118277592-pat00011
<식 10>
Figure 112017118277592-pat00012
식 9 및 10에서
Figure 112017118277592-pat00013
Figure 112017118277592-pat00014
는 광축(420, 450)이 지나는 영상 중심의 좌표를 의미한다.
일 실시예에 따른 영상 스티칭 시스템은 이와 같이 유도되는 식 9 및 10을 이용하여 영상에 대한 시점 변환을 수행함으로써 영상들을 스티칭할 수 있다. 이에 대한 상세한 설명은 도 8을 참조하여 기재하기로 하며, 영상에 대한 시점 변환을 수행하는 시스템 및 방법에 대한 상세한 설명은 도 9 내지 10을 참조하여 기재하기로 한다.
도 8은 일 실시예에 따른 영상 스티칭 방법을 나타낸 플로우 차트이다.
도 8을 참조하면, 단계(S810)에서 일 실시예에 따른 영상 스티칭 시스템에 포함되는 영상 획득부(210)는, 카메라 시스템(100)에 포함되는 복수의 카메라들(110) 각각에서 촬영된 영상을 획득한다. 이 때, 복수의 카메라들(110)은 각각이 촬영하는 영상이 서로 겹치는 일부분을 갖도록 물리적으로 구분되어(이격되어) 배치되기 때문에, 영상들(복수의 카메라들 각각에서 촬영된 영상) 사이에는 시차가 발생될 수 있다.
또한, 단계(S810)에서 영상 획득부(210)는 영상들을 획득하는 동시에, 영상들에 대한 깊이 맵을 더 획득할 수 있다. 이하, 영상들에 대한 깊이 맵은 영상들이 촬영되는 동시에, 종래 깊이 맵을 획득하는 알고리즘을 통해 영상 전체 픽셀에 걸쳐 시차와 깊이와의 관계를 정의하는 영상으로 획득될 수 있다.
이 때, 복수의 카메라들(110)이 두 대의 카메라들로서, 좌측 카메라에서 촬영된 영상과 우측 카메라에서 촬영된 영상으로 좌대우 깊이 맵과 우대좌 깊이 맵이 획득되는 경우, 좌측 카메라로부터 촬영된 영상과 우측 카메라로부터 촬영된 영상이 정합되지 않는 영역에서 홀(Hole)이 발생될 수 있다.
따라서, 단계(S820)에서 영상 스티칭 시스템은 단계(S830) 이전에, 깊이 맵의 홀을 채울 수 있다. 예컨대, 영상 스티칭 시스템은 깊이 맵에서의 홀이 발생되는 영역과 인접한 영역의 픽셀 값으로 홀에 해당하는 픽셀의 값을 채울 수 있다. 이러한 단계(S820)는 영상 스티칭 시스템에 의해 수행되는 것으로 설명하였으나, 보다 정확하게는 영상 스티칭 시스템에 포함되는 영상 획득부(210), 시점 변환 수행부(220) 또는 스티칭부(230) 중 어느 하나에 의해 수행될 수 있다. 그러나 이에 제한되거나 한정되지 않고, 영상 스티칭 시스템에 포함되는 구성요소들 중 영상 획득부(210), 시점 변환 수행부(220) 및 스티칭부(230)와 구별되는 별도의 구성요소(도면에는 도시되지 않음)에 의해 수행될 수도 있다.
단계(S830)에서 영상 스티칭 시스템에 포함되는 시점 변환 수행부(220)는, 영상들에 대한 깊이 맵을 이용하여 영상들 각각에 대한 시점 변환을 수행한다. 구체적으로, 시점 변환 수행부(220)는 깊이 맵에 기초하여 복수의 카메라들(110) 각각의 초점 거리, 카메라 시스템(100)의 베이스라인의 길이 및 복수의 카메라들(110) 사이의 시차에 기초한 시점 변환 수식(전술된 식 9 또는 10)을 설정하고, 시점 변환 수식에서 이동 파라미터를 결정함으로써, 시점 변환 수식을 이용하여 영상들 각각의 시점을 일치하도록 변환할 수 있다.
여기서, 이동 파라미터는 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값으로서, 식 9 및 10에서 mx, my, mz에 해당된다. 따라서, 시점 변환 수행부(220)가 이동 파라미터를 결정한다는 것은, 복수의 카메라들(110) 각각의 광학 중심이 카메라 시스템(100)의 가상의 기준 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정한다는 것을 의미한다. 이 때, 가상의 기준 위치는 카메라 시스템(100)이 도 3에 도시된 바와 같이 360 카메라 시스템인 경우 복수의 카메라들(110)이 배치되는 원의 중심점(310)을 의미할 수 있으며, 카메라 시스템(100)이 두 대의 카메라들이 수평으로 배치되는 스테레오 카메라 시스템인 경우 두 대의 카메라들의 가운데 지점으로부터 일정 거리 이상 후퇴된 지점을 의미할 수 있다. 예를 들어, 카메라 시스템(100)이 도 3에 도시된 바와 같이 360 카메라 시스템인 경우 시점 변환 수행부(220)는 식 9 또는 10에서 mz의 값만을 결정하면 되며, 카메라 시스템(100)이 두 대의 카메라들이 수평으로 배치되는 스테레오 카메라 시스템인 경우 시점 변환 수행부(220)는 스테레오 카메라 시스템의 베이스라인 크기의 절반으로 mx 또는 my를 결정할 수 있다.
이처럼 복수의 카메라들(110) 각각의 광학 중심이 카메라 시스템(100)의 가상의 기준 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정하기 위해서는, 복수의 카메라들(110) 각각의 광학 중심을 확인하는 단계가 필수적이다. 이러한 단계는 도면에는 도시되지 않았지만 단계(S830) 이전 임의의 시점에 적응적으로 수행될 수 있으며, 복수의 카메라들(110) 각각의 회전축을 앞뒤로 이동시키며 좌우로 회전시켰을 때 시차가 발생하지 않는 회전축의 위치를 실험적으로 탐색함으로써 수행될 수 있다.
즉, 단계(S830)에서 시점 변환 수행부(220)는, 영상들 각각의 시점을 카메라 시스템(100)의 기준 위치에서 촬영된 영상의 시점으로 변환함으로써, 일치시킬 수 있다. 이에, 카메라 시스템(100)이 도 3에 도시된 바와 같이 360 카메라 시스템인 경우 시점 변환 수행부(220)는 복수의 카메라들(110) 각각의 위치가 후방으로 후퇴된 지점(310)으로 이동되는 가상의 변환을 수행하고, 카메라 시스템(100)이 두 대의 카메라들이 수평으로 배치되는 스테레오 카메라 시스템인 경우 시점 변환 수행부(220)는 복수의 카메라들(110) 각각의 위치가 카메라들(110)의 가운데 지점으로부터 일정 거리 이상 후퇴된 지점으로 이동되는 가상의 변환을 수행할 수 있다.
영상들에 대한 시점 변환이 수행되고 나면, 단계(S840)에서 영상 스티칭 시스템은 시점 변환이 수행된 영상들 각각의 홀을 채울 수 있다. 예컨대, 영상 스티칭 시스템은 시점 변환이 수행된 영상들 각각에서 홀이 발생되는 영역과 인접한 영역의 픽셀 값으로 홀에 해당하는 픽셀의 값을 채울 수 있다. 다른 예로, 시점 변환이 수행된 영상들 각각에서 홀이 발생되는 영역이 서로 다른 경우, 영상 스티칭 시스템은 시점 변환이 수행된 제1 영상에서 홀에 해당하는 픽셀의 값을 시점 변환이 수행된 제2 영상에서 제1 영상의 홀에 대응하는 영역의 픽셀 값으로 채울 수 있다. 마찬가지로, 영상 스티칭 시스템은 시점 변환이 수행된 제2 영상에서 홀에 해당하는 픽셀의 값을 시점 변환이 수행된 제1 영상에서 제2 영상의 홀에 대응하는 영역의 픽셀 값으로 채울 수 있다. 이러한 단계(S840)는 영상 스티칭 시스템에 의해 수행되는 것으로 설명하였으나, 보다 정확하게는 영상 스티칭 시스템에 포함되는 영상 획득부(210), 시점 변환 수행부(220) 또는 스티칭부(230) 중 어느 하나에 의해 수행될 수 있다. 그러나 이에 제한되거나 한정되지 않고, 영상 스티칭 시스템에 포함되는 구성요소들 중 영상 획득부(210), 시점 변환 수행부(220) 및 스티칭부(230)와 구별되는 별도의 구성요소(도면에는 도시되지 않음)에 의해 수행될 수도 있다.
단계(S850)에서 영상 스티칭 시스템에 포함되는 스티칭부(230)는, 시점 변환이 수행된 영상들을 스티칭한다. 예를 들어, 스티칭부(230)는 시점 변환이 수행된 영상들을 원통이나 구에 투영하여 파노라마로 합성할 수 있다. 스티칭 방식으로는 종래의 영상 합성 방식이 활용될 수 있으므로, 이에 대한 상세한 설명은 본 발명의 기술적 사상을 벗어나기 때문에 생략하기로 한다.
단계(S860)에서 시점 변환 수행부(220)는, 스티칭된 영상의 홀이 채워지도록 스티칭된 영상의 시점을 변환할 수 있다. 스티칭된 영상의 시점을 변환하는 것은 단계(S830)와 동일한 원리로 역 방향으로 수행될 수 있다. 예를 들어, 단계(S830)에서 영상들 각각의 시점이 후방으로 후퇴된 지점(310)에서 촬영된 영상의 시점으로 이동되는 변환이 수행된 경우, 단계(S860)에서 시점 변화 수행부(220)는 후퇴된 지점(310)으로부터 전진된 지점으로 이동되는 변환을 수행할 수 있다. 따라서, 영상들 각각의 시점이 후퇴되며 발생되었던 홀의 대부분이 채워질 수 있다.
이와 같이 상술된 실시예들에 따르면, 깊이 맵(Depth map)에 기초한 시점 변환 수식을 이용하여 영상들 각각에 대한 시점 변환(Viewpoint transformation)을 수행하여 영상들 각각의 시점을 일치시켜(복수의 카메라들(110) 각각의 광학 중심을 일치시켜) 영상들 사이의 시차를 제거한 뒤 스티칭하는 영상 스티칭 방법, 시스템 및 컴퓨터 프로그램이 제안됨으로써, 별도의 장치가 구비되지 않고 카메라가 물리적으로 회전 또는 이동되지 않은 채, 영상들이 동일한 위치에서 촬영된 것처럼 영상들 각각의 시점이 변환되어 스티칭될 수 있다. 이에, 스티칭된 영상의 완성도가 향상될 수 있으며, 영상들 사이에 시차가 존재하는 경우에도 이음매가 어긋남 없이 자연스럽게 스티칭될 수 있다.
또한, 상술한 단계(S830)의 영상 시점 변환 단계는 별도의 방법 및 시스템으로 구현되어 활용될 수 있다. 이에 대한 상세한 설명은 도 9 내지 10을 참조하여 기재하기로 한다.
도 9는 일 실시예에 따른 영상 시점 변환 시스템을 나타낸 블록도이고, 도 10은 일 실시예에 따른 영상 시점 변환 방법을 나타낸 플로우 차트이다.
도 9 내지 10을 참조하면, 일 실시예에 따른 영상 시점 변환 시스템(900)은 적어도 하나의 카메라를 포함하는 카메라 시스템에 포함되는 프로세서로 구성될 수 있다. 이에, 영상 시점 변환 시스템(900)는 도면에 도시된 바와 같이 프로세서의 구성요소들인 영상 획득부(910), 수식 설정부(920), 이동 파라미터 결정부(930) 및 시점 변환부(940)를 포함할 수 있다. 실시예에 따라 프로세서의 구성요소들은 선택적으로 프로세서에 포함되거나 제외될 수도 있다. 또한, 실시예에 따라 프로세서의 구성요소들은 프로세서의 기능의 표현을 위해 분리 또는 병합될 수도 있다. 예컨대, 프로세서의 구성요소들 중 적어도 일부는 카메라 시스템과 통신으로 연결되는 별도의 서버에 포함되는 프로세서에 구현될 수 있다.
이러한 프로세서의 구성요소들은 영상 시점 변환 방법이 포함하는 단계들(S1010 내지 S1040)을 수행하도록 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램(예컨대, 영상 시점 변환 방법을 실행하는 코드로 구성된 프로그램)의 명령(instruction)을 실행하도록 구현될 수 있다.
여기서, 프로세서의 구성요소들은 메모리에 저장된 프로그램 코드가 제공하는 명령에 따른 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 카메라 시스템에서 촬영된 영상을 획득하는 동작에 대한 기능적 표현으로서 영상 획득부(910)가 이용될 수 있다.
이에, 프로세서의 각 구성요소들은 다음과 같이 동작함으로써, 영상 시점 변환 방법을 수행할 수 있다.
단계(S1010)에서 영상 획득부(910)는 카메라 시스템(적어도 하나의 카메라를 포함함)에서 촬영된 영상을 획득한다.
또한, 단계(S1010)에서 영상 획득부(910)는 영상을 획득하는 동시에 영상에 대한 깊이 맵을 더 획득할 수 있다. 이하, 영상에 대한 깊이 맵은 영상이 촬영되는 동시에, 종래 깊이 맵을 획득하는 알고리즘을 통해 영상 전체 픽셀에 걸쳐 시차와 깊이와의 관계를 정의하는 영상으로 획득될 수 있다. 또한, 깊이 맵은 카메라 시스템이 복수의 카메라들로 복수의 영상들을 동시에 촬영하거나, 하나의 카메라로 복수의 영상들을 순차적으로 촬영함에 따라 획득될 수 있다.
단계(S1020)에서 수식 설정부(920)는 영상에 대한 깊이 맵에 기초하여 카메라 시스템의 초점 거리, 카메라 시스템의 베이스라인의 길이 및 카메라 시스템의 시차에 기초한 시점 변환 수식(전술된 식 9 또는 10)을 설정할 수 있다.
단계(S1030)에서 이동 파라미터 결정부(930)는 시점 변환 수식에서 이동 파라미터를 결정할 수 있다.
여기서, 이동 파라미터는 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값으로서, 식 9 및 10에서 mx, my, mz에 해당된다. 따라서, 이동 파라미터 결정부(930)가 이동 파라미터를 결정한다는 것은, 카메라 시스템의 광학 중심(카메라 시스템에 포함되는 적어도 하나의 카메라의 광학 중심)이 가상의 특정 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정한다는 것을 의미한다.
이처럼 카메라 시스템의 광학 중심이 가상의 특정 위치로 이동될 때의 이동할 거리를 이동 파라미터로 결정하기 위해서는, 카메라 시스템의 광학 중심을 확인하는 단계가 필수적이다. 이러한 단계는 도면에는 도시되지 않았지만 단계(S1030) 이전 임의의 시점에(일례로 단계(S1020)에서) 적응적으로 수행될 수 있으며, 카메라 시스템의 회전축을 앞뒤로 이동시키며 좌우로 회전시켰을 때 시차가 발생하지 않는 회전축의 위치를 실험적으로 탐색함으로써 수행될 수 있다.
단계(S1040)에서 시점 변환부(940)는 시점 변환 수식을 이용하여 영상의 시점을 변환할 수 있다. 즉, 단계(S1040)에서 시점 변환부(940)는, 영상의 시점을 가상의 특정 위치에서 촬영된 영상의 시점으로 변환함으로써, 일치시킬 수 있다.
이상 설명된 영상 시점 변환 방법은, 상술된 단계들(S1010 내지 S1040) 이외에도 도 8을 참조하여 상술된 단계들(S820 및/또는 S840)를 더 포함할 수 있다. 이러한 경우, 영상 시점 변환 시스템은 단계(S1020) 이전에 깊이 맵의 홀을 채우는 단계를 수행할 수 있으며. 단계(S1040) 이후에 시점 변환이 수행된 영상의 홀을 채우는 단계를 수행할 수 있다.
이와 같이 상술된 실시예들에 따르면, 영상에 대한 깊이 맵에 기초한 시점 변환 수식을 이용하여 영상의 시점을 변환하는 영상 시점 변환 방법, 시스템 및 컴퓨터 프로그램이 제안됨으로써, 카메라의 물리적인 위치 변경 없이 영상이 가상의 특정 위치에서 촬영된 것처럼 시점을 변환하는 기술이 제공될 수 있으며, 시점 변환된 영상의 활용 폭이 넓어질 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, 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 (14)

  1. 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 시점 변환(Viewpoint transformation)을 이용하는 영상 스티칭 방법에 있어서,
    상기 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 단계;
    상기 영상들에 대한 깊이 맵(Depth map)에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하는 단계;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계;
    상기 시점 변환 수식을 이용하여, 상기 영상들 각각의 시점을 일치하도록 변환하는 상기 영상들 각각에 대한 시점 변환을 수행하는 단계; 및
    상기 시점 변환이 수행된 영상들을 스티칭(Stitching)하는 단계
    를 포함하고,
    상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는,
    상기 복수의 카메라들 각각의 광학 중심이 상기 카메라 시스템의 가상의 기준 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하는 단계이며,
    상기 영상들 각각에 대한 시점 변환을 수행하는 단계는,
    상기 영상들 각각에 대한 시점 변환을 수행하기 이전에, 상기 깊이 맵의 홀을 채우는 단계
    를 더 포함하는 영상 스티칭 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 영상들 각각에 대한 시점 변환을 수행하는 단계는,
    상기 영상들 각각의 시점을 상기 카메라 시스템의 기준 위치에서 촬영된 영상의 시점으로 변환하는 단계인, 영상 스티칭 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 영상들 각각에 대한 시점 변환을 수행하는 단계는,
    상기 시점 변환이 수행된 영상들 각각의 홀을 채우는 단계
    를 더 포함하는 영상 스티칭 방법.
  8. 제1항에 있어서,
    상기 시점 변환이 수행된 영상들을 스티칭하는 단계는,
    상기 스티칭된 영상의 홀이 채워지도록 상기 스티칭된 영상의 시점을 변환하는 단계
    를 더 포함하는 영상 스티칭 방법.
  9. 컴퓨터와 결합되어 시점 변환을 이용하는 영상 스티칭 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서,
    상기 영상 스티칭 방법은,
    카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 단계;
    상기 영상들에 대한 깊이 맵에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하는 단계;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계;
    상기 시점 변환 수식을 이용하여, 상기 영상들 각각의 시점을 일치하도록 변환하는 상기 영상들 각각에 대한 시점 변환을 수행하는 단계; 및
    상기 시점 변환이 수행된 영상들을 스티칭하는 단계
    를 포함하고,
    상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는,
    상기 복수의 카메라들 각각의 광학 중심이 상기 카메라 시스템의 가상의 기준 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하는 단계이며,
    상기 영상들 각각에 대한 시점 변환을 수행하는 단계는,
    상기 영상들 각각에 대한 시점 변환을 수행하기 이전에, 상기 깊이 맵의 홀을 채우는 단계
    를 더 포함하는 기록 매체에 기록된 컴퓨터 프로그램.
  10. 카메라 시스템에 구비되는 컴퓨터로 구현되는 시점 변환을 이용하는 영상 스티칭 시스템에 있어서,
    컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 카메라 시스템에 포함되는 복수의 카메라들 각각에서 촬영된 영상을 획득하는 영상 획득부;
    상기 영상들에 대한 깊이 맵에 기초하여 상기 복수의 카메라들 각각의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 복수의 카메라들 사이의 시차에 기초한 시점 변환 수식을 설정하고, 상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상들 각각이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하며, 상기 시점 변환 수식을 이용하여, 상기 영상들 각각의 시점을 일치하도록 변환하는 상기 영상들 각각에 대한 시점 변환을 수행하는 시점 변환 수행부; 및
    상기 시점 변환이 수행된 영상들을 스티칭하는 스티칭부
    를 포함하고,
    상기 시점 변환 수행부는,
    복수의 카메라들 각각의 광학 중심이 상기 카메라 시스템의 가상의 기준 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하며,
    상기 영상들 각각에 대한 시점 변환을 수행하기 이전에, 상기 깊이 맵의 홀을 채우는 영상 스티칭 시스템.
  11. 카메라 시스템에 구비되는 컴퓨터에 의해 실행되는 영상 시점 변환 방법에 있어서,
    상기 카메라 시스템에서 촬영된 영상을 획득하는 단계;
    상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 단계;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및
    상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 단계
    를 포함하고,
    상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는,
    상기 카메라 시스템의 광학 중심이 상기 가상의 특정 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하는 단계이며,
    상기 영상의 시점을 변환하는 단계는,
    상기 영상의 시점을 변환하기 이전에, 상기 깊이 맵의 홀을 채우는 단계
    를 더 포함하는 영상 시점 변환 방법.
  12. 삭제
  13. 컴퓨터와 결합되어 영상 시점 변환 방법을 실행시키기 위해 컴퓨터 판독 가능한 기록 매체에 기록된 컴퓨터 프로그램에 있어서,
    상기 영상 시점 변환 방법은,
    카메라 시스템에서 촬영된 영상을 획득하는 단계;
    상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 단계;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 단계; 및
    상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 단계
    를 포함하고,
    상기 시점 변환 수식에서 이동 파라미터를 결정하는 단계는,
    상기 카메라 시스템의 광학 중심이 상기 가상의 특정 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하는 단계이며,
    상기 영상의 시점을 변환하는 단계는,
    상기 영상의 시점을 변환하기 이전에, 상기 깊이 맵의 홀을 채우는 단계
    를 더 포함하는 기록 매체에 기록된 컴퓨터 프로그램.
  14. 카메라 시스템에 구비되는 컴퓨터로 구현되는 영상 시점 변환 시스템에 있어서,
    컴퓨터가 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    카메라 시스템에서 촬영된 영상을 획득하는 영상 획득부;
    상기 영상에 대한 깊이 맵에 기초하여 상기 카메라 시스템의 초점 거리, 상기 카메라 시스템의 베이스라인의 길이 및 상기 카메라 시스템의 시차에 기초한 시점 변환 수식을 설정하는 수식 설정부;
    상기 시점 변환 수식에서 이동 파라미터-상기 이동 파라미터는 상기 영상이 촬영된 위치가 가상의 특정 위치로 이동될 때의 이동할 거리와 관련된 값임-를 결정하는 이동 파라미터 결정부; 및
    상기 시점 변환 수식을 이용하여 상기 영상의 시점을 변환하는 시점 변환부
    를 포함하고,
    상기 이동 파라미터 결정부는,
    상기 카메라 시스템의 광학 중심이 상기 가상의 특정 위치로 이동될 때의 이동할 거리 및 상기 카메라 시스템의 베이스라인의 길이에 기초하여 상기 이동 파라미터를 결정하며,
    상기 시점 변환부는,
    상기 영상의 시점을 변환하기 이전에, 상기 깊이 맵의 홀을 채우는 영상 시점 변환 시스템.
KR1020170160021A 2017-11-28 2017-11-28 시점 변환을 이용하는 영상 스티칭 방법 및 시스템 KR101986433B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170160021A KR101986433B1 (ko) 2017-11-28 2017-11-28 시점 변환을 이용하는 영상 스티칭 방법 및 시스템
US16/201,385 US10778950B2 (en) 2017-11-28 2018-11-27 Image stitching method using viewpoint transformation and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170160021A KR101986433B1 (ko) 2017-11-28 2017-11-28 시점 변환을 이용하는 영상 스티칭 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101986433B1 true KR101986433B1 (ko) 2019-06-05

Family

ID=66633765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170160021A KR101986433B1 (ko) 2017-11-28 2017-11-28 시점 변환을 이용하는 영상 스티칭 방법 및 시스템

Country Status (2)

Country Link
US (1) US10778950B2 (ko)
KR (1) KR101986433B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7442029B2 (ja) * 2019-10-17 2024-03-04 株式会社東海理化電機製作所 画像処理装置、画像処理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287517A (ja) * 2003-03-19 2004-10-14 Nippon Telegr & Teleph Corp <Ntt> 仮想視点画像生成方法及び仮想視点画像生成装置、ならびに仮想視点画像生成プログラム及び記録媒体
KR100490885B1 (ko) * 2002-04-17 2005-05-19 중앙대학교 산학협력단 직각 교차 실린더를 이용한 영상기반 렌더링 방법
KR20120093751A (ko) * 2011-02-15 2012-08-23 한국전자통신연구원 정면시점 영상합성을 통한 시선 맞춤 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102325259A (zh) * 2011-09-09 2012-01-18 青岛海信数字多媒体技术国家重点实验室有限公司 多视点视频中虚拟视点合成方法及装置
EP2614490B1 (en) * 2011-11-11 2013-12-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Concept for determining a measure for a distortion change in a synthesized view due to depth map modifications
JP5715735B2 (ja) * 2012-06-29 2015-05-13 富士フイルム株式会社 3次元測定方法、装置、及びシステム、並びに画像処理装置
WO2014006832A1 (ja) * 2012-07-02 2014-01-09 パナソニック株式会社 サイズ測定装置及びサイズ測定方法
TWI538508B (zh) * 2014-08-15 2016-06-11 光寶科技股份有限公司 一種可獲得深度資訊的影像擷取系統與對焦方法
CN104754359B (zh) * 2015-01-26 2017-07-21 清华大学深圳研究生院 一种二维自由视点视频的深度图编码失真预测方法
US10567739B2 (en) * 2016-04-22 2020-02-18 Intel Corporation Synthesis of transformed image views
CN109417635B (zh) * 2016-06-17 2021-03-30 华为技术有限公司 3d视频编码设备和方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100490885B1 (ko) * 2002-04-17 2005-05-19 중앙대학교 산학협력단 직각 교차 실린더를 이용한 영상기반 렌더링 방법
JP2004287517A (ja) * 2003-03-19 2004-10-14 Nippon Telegr & Teleph Corp <Ntt> 仮想視点画像生成方法及び仮想視点画像生成装置、ならびに仮想視点画像生成プログラム及び記録媒体
KR20120093751A (ko) * 2011-02-15 2012-08-23 한국전자통신연구원 정면시점 영상합성을 통한 시선 맞춤 장치 및 방법

Also Published As

Publication number Publication date
US10778950B2 (en) 2020-09-15
US20190166349A1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
US11869205B1 (en) Techniques for determining a three-dimensional representation of a surface of an object from a set of images
US11170561B1 (en) Techniques for determining a three-dimensional textured representation of a surface of an object from a set of images with varying formats
US10818029B2 (en) Multi-directional structured image array capture on a 2D graph
KR102013978B1 (ko) 이미지들의 융합을 위한 방법 및 장치
WO2021120407A1 (zh) 一种基于多对双目相机的视差图像拼接与可视化方法
US8345961B2 (en) Image stitching method and apparatus
US20160295108A1 (en) System and method for panoramic imaging
JP6201476B2 (ja) 自由視点画像撮像装置およびその方法
WO2015180659A1 (zh) 图像处理方法和图像处理装置
CN104025151B (zh) 用于创建组合图像的方法和电子装置
KR101997991B1 (ko) 시점 변환을 이용하는 영상 결합 방법 및 시스템
KR20180003535A (ko) 라이더 스테레오 융합 실사 3d 모델 가상 현실 비디오
JP6615545B2 (ja) 画像処理装置、画像処理方法および画像処理用プログラム
US11694349B2 (en) Apparatus and a method for obtaining a registration error map representing a level of sharpness of an image
KR20150091064A (ko) 단일의 카메라를 이용하여 3d 이미지를 캡쳐하는 방법 및 시스템
Peer et al. Panoramic depth imaging: Single standard camera approach
KR101986433B1 (ko) 시점 변환을 이용하는 영상 스티칭 방법 및 시스템
KR102209907B1 (ko) 시점 변환을 이용하는 360도 영상 저장 방법 및 렌더링 방법
Oliveira et al. Lenslet light field panorama creation: A sub-aperture image stitching approach
Amjadi et al. Comparison of radial and tangential geometries for cylindrical panorama
Guan Spherical image processing for immersive visualisation and view generation
Zhou et al. Light Field Stitching Based On Concentric Spherical Modeling
Peer et al. Towards a real time panoramic depth sensor
JP2023540647A (ja) 映画産業向けプリビジュアライゼーション・デバイス及びシステム
Audu et al. Computation of virtual environment from stereo-panoramic view

Legal Events

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