KR102146839B1 - System and method for building real-time virtual reality - Google Patents

System and method for building real-time virtual reality Download PDF

Info

Publication number
KR102146839B1
KR102146839B1 KR1020190020056A KR20190020056A KR102146839B1 KR 102146839 B1 KR102146839 B1 KR 102146839B1 KR 1020190020056 A KR1020190020056 A KR 1020190020056A KR 20190020056 A KR20190020056 A KR 20190020056A KR 102146839 B1 KR102146839 B1 KR 102146839B1
Authority
KR
South Korea
Prior art keywords
fisheye
image
feature points
images
feature
Prior art date
Application number
KR1020190020056A
Other languages
Korean (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 KR1020190020056A priority Critical patent/KR102146839B1/en
Application granted granted Critical
Publication of KR102146839B1 publication Critical patent/KR102146839B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0012Context preserving transformation, e.g. by using an importance map
    • G06T3/0018Fisheye, wide-angle transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0093Geometric image transformation in the plane of the image for image warping, i.e. transforming by individually repositioning each pixel
    • G06T3/047
    • G06T3/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2211/00Image generation
    • G06T2211/40Computed tomography
    • G06T2211/428Real-time

Abstract

According to an exemplary embodiment of the present invention, a method of modeling a three-dimensional space includes the steps of: acquiring a plurality of fisheye images photographed through a plurality of fisheye lenses; extracting a plurality of feature points from the plurality of fisheye images; estimating a plurality of three-dimensional coordinates of a plurality of feature points based on a curvature function of the plurality of fisheye lenses and a plurality of fisheye images; and generating output data defining a three-dimensional space based on the plurality of three-dimensional coordinates, thereby enabling an accurate modeling of the three-dimensional space with a reduced amount of computation.

Description

실시간 가상현실 구축을 위한 시스템 및 방법{SYSTEM AND METHOD FOR BUILDING REAL-TIME VIRTUAL REALITY}System and method for building real-time virtual reality {SYSTEM AND METHOD FOR BUILDING REAL-TIME VIRTUAL REALITY}

본 발명의 기술적 사상은 3차원 공간의 모델링에 관한 것으로서, 자세하게는 3차원 공간의 모델링을 통한 실시간 가상현실 구축을 위한 장치 및 방법에 관한 것이다.The technical idea of the present invention relates to modeling of a three-dimensional space, and in detail, to an apparatus and method for constructing a real-time virtual reality through modeling of a three-dimensional space.

가상현실(virtual reality; VR)은 컴퓨터 등으로 생성된 실제와 유사한 환경이나 상황을 지칭할 수 있다. 가상현실은 다양한 분야에서 활용될 수 있고, 특히 실제 환경을 모사한 가상현실은 원격지의 사용자에게 실제 환경의 경험을 제공하는 다양한 어플리케이션들에 활용될 수 있다. 이와 같은 실제 환경을 모사한 가상현실은 실제 환경을 데이터화하는 3차원 공간의 모델링을 통해서 구축될 수 있고, 3차원 공간의 모델링의 성능 및 효율에 좌우될 수 있다.Virtual reality (VR) may refer to an environment or situation similar to the real world created by a computer or the like. Virtual reality can be used in various fields, and in particular, virtual reality that simulates a real environment can be used in various applications that provide an experience of a real environment to remote users. Virtual reality that simulates such a real environment may be constructed through modeling of a 3D space that converts the real environment into data, and may depend on the performance and efficiency of modeling of the 3D space.

본 발명의 기술적 사상은, 실시간 가상현실의 구축을 위하여, 감소된 연산량으로 3차원 공간의 정확한 모델링이 가능한 시스템 및 방법을 제공한다.The technical idea of the present invention provides a system and method capable of accurately modeling a three-dimensional space with a reduced amount of computation in order to construct a real-time virtual reality.

상기와 같은 목적을 달성하기 위하여, 본 발명의 기술적 사상의 일측면에 따른 3차원 공간을 모델링하는 방법은, 복수의 어안 렌즈들을 통해서 촬영된 복수의 어안 이미지들을 획득하는 단계, 복수의 어안 이미지들로부터 복수의 특징점들을 추출하는 단계, 복수의 어안 렌즈들의 곡률 함수 및 복수의 어안 이미지들에 기초하여 복수의 특징점들의 복수의 3차원 좌표들을 추정하는 단계, 및 복수의 3차원 좌표들에 기초하여 3차원 공간을 정의하는 출력 데이터를 생성하는 단계를 포함할 수 있다.In order to achieve the above object, a method of modeling a three-dimensional space according to one aspect of the technical idea of the present invention includes obtaining a plurality of fisheye images photographed through a plurality of fisheye lenses, a plurality of fisheye images Extracting a plurality of feature points from, estimating a plurality of 3D coordinates of a plurality of feature points based on a curvature function of a plurality of fisheye lenses and a plurality of fisheye images, and 3 based on the plurality of 3D coordinates It may include generating output data that defines the dimensional space.

본 발명의 예시적 실시예에 따라, 복수의 특징점들을 추출하는 단계는, 복수의 어안 이미지들을, 표준 렌즈로 촬영된 이미지에 대응하는 복수의 파노라마 이미지들로 변환하는 단계, 및 복수의 파노라마 이미지들로부터 복수의 특징점들을 추출하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the extracting of a plurality of feature points includes converting a plurality of fisheye images into a plurality of panoramic images corresponding to an image photographed with a standard lens, and a plurality of panoramic images. It may include the step of extracting a plurality of feature points from.

본 발명의 예시적 실시예에 따라, 복수의 파노라마 이미지들로 변환하는 단계는, 어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계에서 어안 이미지에 포함된 특징점에 대한 천정각(θ) 및 방위각(φ)을 계산하는 단계, 및 천정각(θ) 및 방위각(φ)에 기초하여, 파노라마 이미지에서 특징점의 좌표를 추정하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the converting into a plurality of panoramic images includes a zenith angle (θ) and an azimuth angle (φ) for a feature point included in a fisheye image in a three-dimensional polar coordinate system using a center point of the fisheye lens as an origin. ), and estimating coordinates of the feature points in the panoramic image based on the zenith angle (θ) and the azimuth angle (φ).

본 발명의 예시적 실시예에 따라, 복수의 파노라마 이미지들로부터 복수의 특징점들을 추출하는 단계는, AKAZE 알고리즘에 기초하여 복수의 특징점들을 추출할 수 있다.According to an exemplary embodiment of the present invention, in the step of extracting a plurality of feature points from a plurality of panoramic images, a plurality of feature points may be extracted based on an AKAZE algorithm.

본 발명의 예시적 실시예에 따라, 복수의 특징점들을 추출하는 단계는,According to an exemplary embodiment of the present invention, the step of extracting a plurality of feature points,

복수의 어안 이미지들로부터 미리 정의된 문턱값을 초과하는 특징값을 가지는 제1 특징점들을 추출하는 단계, 복수의 어안 이미지들 각각에서, 제1 특징점들 및 제1 특징점들을 연결하는 에지들을 포함하는 메시를 생성하는 단계, 복수의 메시들에 기초하여 복수의 어안 이미지들 각각을 적어도 하나의 영역으로 분할하는 단계, 및 복수의 어안 이미지들의 상호 대응하는 영역들 내에서 적어도 하나의 제2 특징점을 추출하는 단계를 포함할 수 있다.Extracting first feature points having a feature value exceeding a predefined threshold value from a plurality of fisheye images, a mesh including first feature points and edges connecting the first feature points in each of the plurality of fisheye images Generating, dividing each of the plurality of fisheye images into at least one region based on the plurality of meshes, and extracting at least one second feature point within the regions corresponding to each other of the plurality of fisheye images It may include steps.

본 발명의 예시적 실시예에 따라, 메시를 생성하는 단계는, 제1 특징점들을 특징값에 기초하여 정렬하는 단계, 및 정렬된 제1 특징점들을 k-차원 트리(k-d tree)로 표현하는 단계를 포함할 수 있고, 복수의 어안 이미지들 각각을 적어도 하나의 영역으로 분할하는 단계는, 복수의 어안 이미지들에 대응하는 복수의 k-차원 트리들을 비교하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the step of generating the mesh includes aligning the first feature points based on the feature value, and representing the aligned first feature points as a k-dimensional tree (kd tree). It may include, and dividing each of the plurality of fisheye images into at least one region may include comparing a plurality of k-dimensional trees corresponding to the plurality of fisheye images.

본 발명의 예시적 실시예에 따라, 복수의 3차원 좌표들을 추정하는 단계는, 어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계에서 어안 이미지에 포함된 특징점에 대한 천정각(θ) 및 방위각(φ)을 계산하는 단계, 천정각(θ) 및 방위각(φ)에 기초하여, 어안 렌즈의 중심점 및 특징점을 통과하는 벡터를 정의하는 단계, 복수의 어안 렌즈들에 대응하는 복수의 벡터들을 제1 어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계로 변환하는 단계, 및 변환된 복수의 벡터들에 기초하여 특징점의 3차원 좌표를 추정하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the step of estimating a plurality of 3D coordinates includes a zenith angle (θ) and an azimuth angle (φ) for a feature point included in a fisheye image in a 3D polar coordinate system using a center point of the fisheye lens as an origin. ) Calculating, based on the zenith angle (θ) and azimuth angle (φ), defining a vector passing through the center point and the feature point of the fisheye lens, a plurality of vectors corresponding to the plurality of fisheye lenses It may include converting into a 3D polar coordinate system using a center point of as an origin, and estimating 3D coordinates of the feature point based on the converted vectors.

본 발명의 예시적 실시예에 따라, 특징점의 3차원 좌표를 추정하는 단계는, 복수의 벡터들로부터 동일한 거리로 이격된 점들 중 가장 짧은 거리로 이격된 점을 특징점의 3차원 좌표로서 계산하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the step of estimating the three-dimensional coordinates of a feature point includes calculating a point separated by the shortest distance among points separated by the same distance from a plurality of vectors as the three-dimensional coordinates of the feature point. It may include.

본 발명의 예시적 실시예에 따라, 출력 데이터를 생성하는 단계는, 복수의 어안 이미지들로부터 생성된 적어도 하나의 파노라마 이미지에 기초하여 복수의 3차원 좌표들에 의해서 정의되는 평면에 텍스쳐 맵핑을 적용하는 단계를 포함할 수 있다.According to an exemplary embodiment of the present invention, the generating of the output data includes applying texture mapping to a plane defined by a plurality of 3D coordinates based on at least one panoramic image generated from a plurality of fisheye images. It may include the step of.

같은 목적을 달성하기 위하여, 본 발명의 기술적 사상의 일측면에 따른 3차원 공간을 모델링하기 위한 시스템은, 제1 어안 렌즈 및 제2 어안 렌즈를 포함하고, 제1 어안 렌즈 및 제2 어안 렌즈를 통해서 촬영된 제1 어안 이미지 및 제2 어안 이미지를 생성하는 제1 카메라 모듈 및 제2 카메라 모듈, 및 제1 어안 이미지 및 제2 어안 이미지에 기초하여, 3차원 공간을 정의하는 출력 데이터를 생성하는 이미지 처리 모듈을 포함할 수 있고, 이미지 처리 모듈은, 제1 어안 이미지 및 제2 어안 이미지로부터 복수의 특징점들을 추출하는 특징점 추출부, 제1 어안 렌즈와 제2 어안 렌즈의 곡률 함수, 제1 어안 이미지 및 제2 어안 이미지에 기초하여, 복수의 특징점들의 복수의 3차원 좌표들을 추정하는 좌표 추정부, 및 복수의 3차원 좌표들에 기초하여 출력 데이터를 생성하는 출력 데이터 생성부를 포함할 수 있다.In order to achieve the same object, a system for modeling a three-dimensional space according to one aspect of the technical idea of the present invention includes a first fisheye lens and a second fisheye lens, and includes a first fisheye lens and a second fisheye lens. Generates output data defining a three-dimensional space based on a first camera module and a second camera module for generating a first fisheye image and a second fisheye image captured through, and the first fisheye image and the second fisheye image It may include an image processing module, wherein the image processing module includes a feature point extracting unit for extracting a plurality of feature points from the first fisheye image and the second fisheye image, a curvature function of the first fisheye lens and the second fisheye lens, and the first fisheye A coordinate estimating unit that estimates a plurality of 3D coordinates of a plurality of feature points based on the image and the second fisheye image, and an output data generation unit that generates output data based on the plurality of 3D coordinates.

본 발명의 예시적 실시예에 따라, 이미지 처리 모듈은, 교정 모드에서, 제1 어안 이미지 및 제2 어안 이미지에 기초하여 곡률 함수를 추정하고 저장하는 곡률 제공부를 더 포함할 수 있다.According to an exemplary embodiment of the present invention, the image processing module may further include a curvature providing unit for estimating and storing a curvature function based on the first fisheye image and the second fisheye image in the correction mode.

본 발명의 예시적 실시예에 따른 시스템 및 방법은, 감소된 연산량의 3차원 공간 모델링을 제공함으로써 실시간 가상현실의 구축을 가능하게 할 수 있다.The system and method according to an exemplary embodiment of the present invention can enable real-time virtual reality construction by providing 3D spatial modeling with a reduced amount of computation.

또한, 본 발명의 예시적 실시예에 따른 시스템 및 방법은, 실시간 가상현실을 가능하게 함으로써 원격지의 사용자가 실시간으로 실제 환경을 경험하게 할 수 있고, 다자간 회의나 관광지 방문 등에 대한 공간적 제약을 해소할 수 있다.In addition, the system and method according to an exemplary embodiment of the present invention enable real-time virtual reality so that a remote user can experience a real environment in real time, and solve spatial constraints on multi-party meetings or visiting tourist attractions. I can.

또한, 본 발명의 예시적 실시예에 따른 시스템 및 방법은, 3차원 공간의 모델링에 요구되는 카메라 모듈의 개수를 감소시킴으로써 3차원 공간의 모델링을 위한 비용 및 공간 요건을 현저하게 완화시킬 수 있다.In addition, the system and method according to an exemplary embodiment of the present invention can significantly alleviate cost and space requirements for modeling a 3D space by reducing the number of camera modules required for modeling a 3D space.

본 발명의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 발명의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 발명의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 발명의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.The effects obtained in the exemplary embodiments of the present invention are not limited to the above-mentioned effects, and other effects that are not mentioned are common knowledge in the technical field to which the exemplary embodiments of the present invention pertain from the following description. It can be clearly derived and understood by those who have. That is, unintended effects of implementing the exemplary embodiments of the present invention may also be derived from the exemplary embodiments of the present invention by a person having ordinary skill in the art.

도 1은 본 발명의 예시적 실시예에 따른 시스템을 개략적으로 나타내는 블록도이다.
도 2는 본 발명의 예시적 실시예에 따라 3차원 공간을 모델링하는 방법을 나타내는 순서도이다.
도 3은 본 발명의 예시적 실시예에 따라 도 2의 단계 S40의 예시를 나타내는 순서도이다.
도 4a 및 도 4b는 본 발명의 예시적 실시예들에 따라 어안 이미지 및 파노라마 이미지의 예시들을 나타내는 도면들이다.
도 5a 내지 도 5c는 본 발명의 예시적 실시예에 따라 복수의 어안 렌즈들을 사용하여 특징점을 촬영하는 동작을 설명하기 위한 도면들이다.
도 6은 본 발명의 예시적 실시예에 따라 어안 이미지로부터 파노라마 이미지를 생성하는 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 예시적 실시예에 따라 도 2의 단계 S40의 예시를 나타내는 순서도이다.
도 8은 본 발명의 예시적 실시예에 따라 복수의 어안 이미지들로부터 메시를 생성하는 동작의 예시를 나타내는 도면이다.
도 9는 본 발명의 예시적 실시예에 따라 특징점의 3차원 좌표를 추정하는 동작을 설명하기 위한 도면이다.
1 is a block diagram schematically showing a system according to an exemplary embodiment of the present invention.
Fig. 2 is a flow chart showing a method of modeling a 3D space according to an exemplary embodiment of the present invention.
3 is a flow chart showing an example of step S40 of FIG. 2 according to an exemplary embodiment of the present invention.
4A and 4B are diagrams illustrating examples of a fisheye image and a panoramic image according to exemplary embodiments of the present invention.
5A to 5C are diagrams for explaining an operation of capturing a feature point using a plurality of fisheye lenses according to an exemplary embodiment of the present invention.
6 is a diagram illustrating an operation of generating a panorama image from a fisheye image according to an exemplary embodiment of the present invention.
7 is a flowchart illustrating an example of step S40 of FIG. 2 according to an exemplary embodiment of the present invention.
8 is a diagram illustrating an example of an operation of generating a mesh from a plurality of fisheye images according to an exemplary embodiment of the present invention.
9 is a diagram illustrating an operation of estimating 3D coordinates of a feature point according to an exemplary embodiment of the present invention.

이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. The embodiments of the present invention are provided to more completely describe the present invention to those with average knowledge in the art. In the present invention, various modifications may be made and various forms may be applied, and specific embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the present invention to a specific form disclosed, it should be understood to include all changes, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, similar reference numerals are used for similar elements. In the accompanying drawings, the dimensions of the structures are shown to be enlarged or reduced than in actuality for clarity of the present invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수개의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the possibility of addition or presence of elements or numbers, steps, actions, components, parts, or combinations thereof is not preliminarily excluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms, including technical or scientific terms, used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. .

이하 도면 및 설명에서, 하나의 블록으로 표시 또는 설명되는 구성요소는 하드웨어 블록 또는 소프트웨어 블록일 수 있다. 예를 들면, 구성요소들 각각은 서로 신호를 주고 받는 독립적인 하드웨어 블록일 수도 있고, 또는 하나의 프로세서에서 실행되는 소프트웨어 블록일 수도 있다. 또한, 하나의 블록으로 표시 또는 설명되는 구성요소는 프로세서 및 소프트웨어를 포함하는 컴퓨팅 시스템일 수 있다.In the following drawings and description, a component indicated or described as a single block may be a hardware block or a software block. For example, each of the components may be an independent hardware block that transmits and receives signals from each other, or may be a software block executed in one processor. In addition, a component represented or described as one block may be a computing system including a processor and software.

도 1은 본 발명의 예시적 실시예에 따른 시스템(100)을 개략적으로 나타내는 블록도이다. 본 명세서에서, 시스템(100)은 3차원 공간을 모델링하기 위한 시스템, 실시간 가상현실 구축을 위한 시스템 등으로 지칭될 수 있다. 도 1에 도시된 바와 같이, 시스템(100)은 복수의 카메라 모듈들(CM1, CM2,..., CMn) 및 이미지 처리 모듈(10)을 포함할 수 있고, 3차원 공간을 정의하는 출력 데이터(D_OUT)를 생성할 수 있다(n은 1보다 큰 정수). 일부 실시예들에서, 도 1에 도시된 바와 상이하게, 시스템(100)은 이미지 처리 모듈(10)만을 포함할 수 있고, 외부에 존재하는 복수의 카메라 모듈들과 유선 혹은 무선 통신 채널을 통해서 통신할 수도 있다.1 is a block diagram schematically illustrating a system 100 according to an exemplary embodiment of the present invention. In this specification, the system 100 may be referred to as a system for modeling a three-dimensional space, a system for real-time virtual reality construction, and the like. As shown in FIG. 1, the system 100 may include a plurality of camera modules CM1, CM2,..., CMn and an image processing module 10, and output data defining a three-dimensional space. (D_OUT) can be generated (n is an integer greater than 1). In some embodiments, different from that shown in FIG. 1, the system 100 may include only the image processing module 10 and communicates with a plurality of external camera modules via wired or wireless communication channels. You may.

복수의 카메라 모듈들(CM1, CM2,..., CMn)은 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)을 이미지 처리 모듈(10)에 제공할 수 있다. 예를 들면, 제1 카메라 모듈(CM1)은 제1 어안 렌즈 (F1)를 포함할 수 있고, 어안 렌즈를 통과하는 빛을 감지하는 이미지 센서를 포함할 수 있다. 어안 렌즈(fisheye lens)는 통 모양의 왜곡(barrel distortion)을 발생시킴으로써, 예컨대 180도 이상의 화각 전면에 걸쳐 균일한 밝기와 선예도를 유지할 수 있도록 제조된 렌즈로서, 도 6a에서 예시되는 바와 같이, 어안 렌즈 중심부에 대응하는 피사체는 상대적으로 큰 상이 맺히는 한편, 어안 렌즈의 주변부에 대응하는 피사체는 상대적으로 작은 상이 맺힐 수 있다. 즉, 어안 렌즈는 넓은 화각을 제공하는 한편, 왜곡된 이미지를 제공할 수 있다. 이미지 센서는 감지된 빛을 전기적 신호로 변환할 수 있고, 제1 카메라 모듈(CM1)은 이미지 센서의 출력 신호에 기초하여 제1 어안 이미지(또는 제1 어안 이미지 데이터)(F_IMG1)를 생성할 수 있다.The plurality of camera modules CM1, CM2,..., CMn may provide a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn to the image processing module 10. For example, the first camera module CM1 may include a first fisheye lens F1, and may include an image sensor that detects light passing through the fisheye lens. A fisheye lens is a lens manufactured to maintain uniform brightness and sharpness over the entire field of view of 180 degrees or more by generating barrel distortion. As illustrated in FIG. 6A, a fisheye lens A subject corresponding to the center of the lens may have a relatively large image, while a subject corresponding to the peripheral part of the fisheye lens may have a relatively small image. In other words, the fisheye lens can provide a wide angle of view while providing a distorted image. The image sensor may convert the detected light into an electrical signal, and the first camera module CM1 may generate a first fisheye image (or first fisheye image data) F_IMG1 based on the output signal of the image sensor. have.

이미지 처리 모듈(10)은 복수의 카메라 모듈들(CM1, CM2,..., CMn)로부터 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)을 수신할 수 있고, 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에 기초하여 3차원 공간을 정의하는 출력 데이터(D_OUT)를 생성할 수 있다. 표준 렌즈, 즉 사람의 시각과 유사한 이미지를 포착하는 렌즈를 포함하는 카메라 모듈과 비교할 때, 2이상의 어안 렌즈들을 사용하여 3차원 공간이 촬영될 수 있고, 어안 렌즈의 넓은 화각에 기인하여 3차원 공간을 모델링하기 위해서 요구되는 카메라 모듈들의 개수가 감소할 수 있다. 또한, 이미지 처리 모듈(10)에 의해서 처리될 이미지 데이터의 양도 감소할 수 있다. 결과적으로 시스템(100)은 3차원 공간을 모델링하기 위하여 요구되는 공간 및 시간을 현저하게 감소시킬 수 있다. 이하에서 본 발명의 예시적 실시예들은, 2개의 카메라 모듈들, 즉 제1 카메라 모듈(CM1) 및 제2 카메라 모듈(CM2)을 포함하는 시스템을 주로 참조하여 설명될 것이나, 본 발명의 기술적 사상에 따라 3개 이상의 카메라 모듈들을 포함하는 시스템 역시 가능한 점은 이해될 것이다. 이미지 처리 모듈(10)은, 도 1에 도시된 바와 같이, 특징점 추출부(12), 좌표 추정부(14), 출력 데이터 생성부(16) 및 곡률 제공부(18)를 포함할 수 있다.The image processing module 10 may receive a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn from a plurality of camera modules CM1, CM2,..., CMn, and a plurality of fisheye images Output data D_OUT defining a 3D space may be generated based on the fields F_IMG1, F_IMG2,..., F_IMGn. Compared with a camera module that includes a standard lens, that is, a lens that captures an image similar to a person's vision, a three-dimensional space can be photographed using two or more fisheye lenses, and due to the wide angle of view of the fisheye lens The number of camera modules required for modeling may be reduced. Also, the amount of image data to be processed by the image processing module 10 may be reduced. As a result, the system 100 can significantly reduce the space and time required for modeling a 3D space. Hereinafter, exemplary embodiments of the present invention will be described with reference mainly to a system including two camera modules, that is, a first camera module CM1 and a second camera module CM2, but the technical idea of the present invention It will be appreciated that a system including three or more camera modules is also possible, depending on. The image processing module 10 may include a feature point extraction unit 12, a coordinate estimation unit 14, an output data generation unit 16, and a curvature providing unit 18, as illustrated in FIG. 1.

특징점 추출부(12)는, 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)로부터 복수의 특징점들을 추출할 수 있다. 특징점은 이미지에서 오브젝트를 식별하는데 사용되는 점을 지칭할 수 있고, 이미지로부터 다양한 방식으로 추출될 수 있다. 일부 실시예들에서, 특징점은 주변과 구별되는 특징값(예컨대, 밝기, 색상 등)을 가질 수 있다. 특징점 추출부(12)는 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에 공통되는 특징점들을 추출할 수 있고, 추출된 특징점들을 좌표 추정부(14)에 제공할 수 있다. 특징점 추출부(12)의 동작의 예시들이 도 3 내지 도 8을 참조하여 후술될 것이다.The feature point extracting unit 12 may extract a plurality of feature points from a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn. A feature point may refer to a point used to identify an object in an image, and may be extracted from the image in various ways. In some embodiments, the feature point may have a feature value (eg, brightness, color, etc.) that is distinguished from the surroundings. The feature point extracting unit 12 may extract feature points common to a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn, and provide the extracted feature points to the coordinate estimation unit 14. Examples of the operation of the feature point extraction unit 12 will be described later with reference to FIGS. 3 to 8.

좌표 추정부(14)는 특징점 추출부(12)로부터 제공된 복수의 특징점들의 복수의 3차원 좌표들을 추정할 수 있다. 예를 들면, 좌표 추정부(14)는 곡률 제공부(18)로부터 복수의 어안 렌즈들(F1, F2,..., Fn)의 곡률 함수를 수신할 수 있고, 곡률 함수 및 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에 기초하여 복수의 특징점들의 복수의 3차원 좌표들을 추정할 수 있다. 좌표 추정부(14)의 동작의 예시는 도 9를 참조하여 후술될 것이다.The coordinate estimating unit 14 may estimate a plurality of 3D coordinates of a plurality of feature points provided from the feature point extracting unit 12. For example, the coordinate estimation unit 14 may receive a curvature function of a plurality of fisheye lenses F1, F2,..., Fn from the curvature providing unit 18, and a curvature function and a plurality of fisheye images A plurality of 3D coordinates of a plurality of feature points may be estimated based on the F_IMG1, F_IMG2,..., F_IMGn. An example of the operation of the coordinate estimation unit 14 will be described later with reference to FIG. 9.

출력 데이터 생성부(16)는 좌표 추정부(14)로부터 제공된 복수의 3차원 좌표들에 기초하여 3차원 공간을 정의하는 출력 데이터(D_OUT)를 생성할 수 있다. 일부 실시예들에서, 출력 데이터 생성부(16)는 복수의 3차원 좌표들에 기초하여 프래그먼트를 정의할 수 있고, 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn) 중 적어도 하나에 기초하여 정의된 프래그먼트에 텍스쳐 맵핑(texture mapping)을 수행할 수 있다. 이에 따라, 출력 데이터(D_OUT)는 3차원 공간의 기하학적 정보뿐만 아니라 3차원 공간의 표면에 대한 정보(예컨대, 색상, 질감 등)를 포함할 수 있다.The output data generator 16 may generate output data D_OUT defining a 3D space based on a plurality of 3D coordinates provided from the coordinate estimating unit 14. In some embodiments, the output data generation unit 16 may define a fragment based on a plurality of 3D coordinates, and at least one of a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn Texture mapping may be performed on a fragment defined based on it. Accordingly, the output data D_OUT may include not only geometric information of the 3D space but also information about the surface of the 3D space (eg, color, texture, etc.).

곡률 제공부(18)는 복수의 카메라 모듈들(CM1, CM2,..., CMn)에 각각 포함된 복수의 어안 렌즈들(F1, F2,..., Fn)의 곡률에 대응하는 곡률 함수를 좌표 추정부(14)에 제공할 수 있다. 어안 렌즈의 곡률은 어안 렌즈를 통해서 촬영됨으로써 생성된 어안 이미지의 왜곡 정도를 정의할 수 있고, 이에 따라 도 6을 참조하여 후술되는 바와 같이, 어안 렌즈의 중심을 원점으로 하는 3차원 극좌표계에서 어안 이미지의 한 점에 대한 천정각(θ)을 결정할 수 있다. 본 명세서에서, 어안 렌즈의 곡률 함수는, 어안 이미지의 중심으로부터 이격된 거리에 대응하는 천정각(θ)을 정의할 수 있다. 일부 실시예들에서, 복수의 카메라 모듈들(CM1, CM2,..., CMn)에 각각 포함된 복수의 어안 렌즈들(F1, F2,..., Fn)은 동일할 수 있고, 이에 따라 곡률 제공부(18)는 단일 곡률 함수를 제공할 수 있다. 또한, 도 3 등을 참조하여 후술되는 바와 같이, 일부 실시예들에서, 곡률 제공부(18)는 특징점 추출부(12)에 곡률 함수를 제공할 수도 있다.The curvature providing unit 18 is a curvature function corresponding to the curvature of the plurality of fisheye lenses F1, F2,..., Fn included in the plurality of camera modules CM1, CM2,..., CMn, respectively. Can be provided to the coordinate estimation unit 14. The curvature of the fisheye lens can define the degree of distortion of the fisheye image generated by being photographed through the fisheye lens. Accordingly, as will be described later with reference to FIG. 6, the fisheye lens in a three-dimensional polar coordinate system with the center of the fisheye lens as the origin. It is possible to determine the zenith angle (θ) for a point in the image. In the present specification, the curvature function of the fisheye lens may define a zenith angle θ corresponding to a distance separated from the center of the fisheye image. In some embodiments, a plurality of fisheye lenses F1, F2,..., Fn included in each of the plurality of camera modules CM1, CM2,..., CMn may be the same, and accordingly The curvature providing unit 18 may provide a single curvature function. Further, as will be described later with reference to FIG. 3 and the like, in some embodiments, the curvature providing unit 18 may provide a curvature function to the feature point extracting unit 12.

일부 실시예들에서, 곡률 제공부(18)는 어안 렌즈의 곡률 함수를 미리 저장할 수 있다. 예를 들면, 제1 어안 렌즈(F1)의 제조사로부터 곡률 함수를 사전에 제공받을 수도 있고, 제1 어안 렌즈(F1)를 테스트함으로써 곡률 함수가 사전에 획득될 수도 있다. 이와 같이 획득된 곡률 함수가 이미지 처리 모듈(10)에 주입될 수 있고, 곡률 제공부(18)는 주입된 곡률 함수를 저장할 수 있고, 저장된 곡률 함수를 좌표 추정부(14) 등에 제공할 수 있다.In some embodiments, the curvature providing unit 18 may pre-store the curvature function of the fisheye lens. For example, a curvature function may be provided in advance from a manufacturer of the first fisheye lens F1, or a curvature function may be obtained in advance by testing the first fisheye lens F1. The curvature function obtained as described above may be injected into the image processing module 10, the curvature providing unit 18 may store the injected curvature function, and the stored curvature function may be provided to the coordinate estimation unit 14, etc. .

일부 실시예들에서, 이미지 처리 모듈(10)은 교정 모드를 지원할 수 있고, 곡률 제공부(18)는 교정 모드에서 곡률 함수를 생성할 수 있다. 예를 들면, 교정 모드에서 제1 카메라 모듈(CM1)은 제1 어안 렌즈(F1)의 중심을 원점으로 하는 3차원 극좌표계에서 일정한 천정각(θ)을 나타내는 동심원들이 내면에 그려진 보울(bowl)을 촬영할 수 있다. 곡률 제공부(18)는 보울의 내면을 촬영함으로써 생성된 제1 어안 이미지(F_IMG1)에 기초하여 천정각(θ)을 추정할 수 있고, 추정된 천정각(θ)에 기초하여 제1 어안 렌즈(F1)의 곡률 함수를 생성할 수 있다. 복수의 어안 렌즈들(F1, F2,..., Fn)이 상이한 구조를 가지는 경우, 곡률 제공부(18)는 복수의 어안 렌즈들(F1, F2,..., Fn)에 대응하는 복수의 곡률 함수들을 생성할 수 있는 한편, 복수의 어안 렌즈들(F1, F2,..., Fn)이 동일한 구조를 가지는 경우 하나의 카메라 모듈(예컨대, CM1)을 사용하여 촬영된 어안 이미지(예컨대, F_IMG1)를 사용하여 단일 곡률 함수를 생성할 수도 있다.In some embodiments, the image processing module 10 may support a correction mode, and the curvature providing unit 18 may generate a curvature function in the correction mode. For example, in the calibration mode, the first camera module CM1 displays a bowl drawn on the inner surface of concentric circles representing a constant zenith angle θ in a three-dimensional polar coordinate system with the center of the first fisheye lens F1 as the origin. You can shoot. The curvature providing unit 18 may estimate the zenith angle θ based on the first fisheye image F_IMG1 generated by photographing the inner surface of the bowl, and the first fisheye lens F1 based on the estimated zenith angle θ. ) Can be created. When the plurality of fisheye lenses F1, F2,..., Fn have different structures, the curvature providing unit 18 is a plurality of fisheye lenses F1, F2,..., Fn. While it is possible to generate curvature functions of, when a plurality of fisheye lenses (F1, F2,..., Fn) have the same structure, a fisheye image (e.g., a fisheye image) captured using one camera module (e.g., CM1) , F_IMG1) can also be used to create a single curvature function.

도 2는 본 발명의 예시적 실시예에 따라 3차원 공간을 모델링하는 방법을 나타내는 순서도이다. 본 명세서에서 도 2의 방법은 실시간 가상현실 구축을 위한 방법으로서 지칭될 수도 있다. 도 2에 도시된 바와 같이, 도 2의 방법은 복수의 단계들(S20, S40, S60, S80)을 포함할 수 있다. 일부 실시예들에서, 도 2의 방법은 도 1의 시스템(100)(또는 이미지 처리 모듈(10))에 의해서 수행될 수 있고, 이하에서 도 2는 도 1을 참조하여 설명될 것이다.Fig. 2 is a flow chart showing a method of modeling a 3D space according to an exemplary embodiment of the present invention. In the present specification, the method of FIG. 2 may be referred to as a method for building a real-time virtual reality. As shown in FIG. 2, the method of FIG. 2 may include a plurality of steps S20, S40, S60, and S80. In some embodiments, the method of FIG. 2 may be performed by the system 100 (or image processing module 10) of FIG. 1, and FIG. 2 will be described below with reference to FIG. 1.

도 2를 참조하면, 단계 S20에서, 복수의 어안 이미지들을 획득하는 동작이 수행될 수 있다. 예를 들면, 이미지 처리 모듈(10)은 복수의 어안 렌즈들(F1, F2,..., Fn)을 각각 포함하는 복수의 카메라 모듈들(CM1, CM2,..., CMn)로부터 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)을 수신할 수 있다.Referring to FIG. 2, in step S20, an operation of acquiring a plurality of fisheye images may be performed. For example, the image processing module 10 includes a plurality of camera modules CM1, CM2,..., CMn each including a plurality of fisheye lenses F1, F2,..., Fn. Fisheye images F_IMG1, F_IMG2,..., F_IMGn may be received.

단계 S40에서, 복수의 특징점들을 추출하는 동작이 수행될 수 있다. 예를 들면, 특징점 추출부(12)는 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에서 공통되는 복수의 특징점들을 추출할 수 있다. 단계 S40의 예시들은 도 3 및 도 7 등을 참조하여 후술될 것이다.In step S40, an operation of extracting a plurality of feature points may be performed. For example, the feature point extracting unit 12 may extract a plurality of common feature points from the plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn. Examples of step S40 will be described later with reference to FIGS. 3 and 7.

단계 S60에서, 복수의 특징점들의 복수의 3차원 좌표들을 추정하는 동작이 수행될 수 있다. 예를 들면, 좌표 추정부(14)는 단계 S40에서 추출된 복수의 특징점들의 복수의 3차원 좌표들을 계산할 수 있다. 단계 S60의 예시는 도 9를 참조하여 후술될 것이다.In step S60, an operation of estimating a plurality of 3D coordinates of a plurality of feature points may be performed. For example, the coordinate estimating unit 14 may calculate a plurality of 3D coordinates of a plurality of feature points extracted in step S40. An example of step S60 will be described later with reference to FIG. 9.

단계 S80에서, 출력 데이터를 생성하는 동작이 수행될 수 있다. 예를 들면, 출력 데이터 생성부(16)는 복수의 3차원 좌표들 및 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에 기초하여 3차원 공간을 정의하는 출력 데이터(D_OUT)를 생성할 수 있다.In step S80, an operation of generating output data may be performed. For example, the output data generation unit 16 may generate output data D_OUT defining a 3D space based on a plurality of 3D coordinates and a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn. Can be generated.

도 3은 본 발명의 예시적 실시예에 따라 도 2의 단계 S40의 예시를 나타내는 순서도이고, 도 4a 및 도 4b는 본 발명의 예시적 실시예들에 따라 어안 이미지 및 파노라마 이미지의 예시들을 나타내는 도면들이다. 도 2를 참조하여 전술된 바와 같이, 도 3의 단계 S40'에서, 복수의 특징점들을 추출하는 동작이 수행될 수 있다. 도 3에 도시된 바와 같이, 단계 S40'은 단계 S42 및 단계 S44를 포함할 수 있다.3 is a flow chart showing an example of step S40 of FIG. 2 according to an exemplary embodiment of the present invention, and FIGS. 4A and 4B are diagrams illustrating examples of a fisheye image and a panoramic image according to exemplary embodiments of the present invention. admit. As described above with reference to FIG. 2, in step S40' of FIG. 3, an operation of extracting a plurality of feature points may be performed. As shown in FIG. 3, step S40' may include steps S42 and S44.

일부 실시예들에서, 어안 렌즈를 각각 포함하는 복수의 카메라 모듈들로부터 획득된 복수의 어안 이미지들을 복수의 파노라마 이미지들로 변환하고, 복수의 파노라마 이미지들로부터 공통의 특징점을 추출하는 동작이 수행될 수 있다. 예를 들면, 도 4a에 도시된 바와 같이, 2개의 카메라 모듈들로부터 획득된 2개의 어안 이미지들에서 임의의 방식(예컨대, AKAZE 알고리즘)으로 공통의 특징점들이 추출될 수 있으나, 도 4a에서 원으로 표시된 바와 같이, 실제 대응하지 아니하는 특징점들이 공통의 특징점들로서 추출될 수 있다. 이는 어안 렌즈의 위치에 따라 어안 렌즈의 중심점에 대응하는 3차원 공간의 위치들이 상이하여 어안 이미지들 각각에서 3차원 공간이 왜곡되는 양상이 상이함에 따라, 특징점들 사이 거리 등을 활용하는 일반적인 특징점 추출 기법을 적용하는 것이 한계가 있기 때문이다. 다른 한편으로, 도 4b에 도시된 바와 같이, 2개의 어안 이미지들을 2개의 파노라마 이미지들, 즉 표준 렌즈로 각각 촬영된 이미지들로 변환하고, 파노라마 이미지들에서 임의의 방식으로 공통의 특징점들이 추출될 수 있다.In some embodiments, an operation of converting a plurality of fisheye images obtained from a plurality of camera modules each including a fisheye lens into a plurality of panoramic images, and extracting a common feature point from the plurality of panoramic images is performed. I can. For example, as shown in FIG. 4A, common feature points may be extracted from two fisheye images acquired from two camera modules in an arbitrary manner (eg, AKAZE algorithm), but in FIG. 4A As indicated, feature points that do not actually correspond may be extracted as common feature points. This is because the positions of the 3D space corresponding to the center point of the fisheye lens are different according to the position of the fisheye lens, so that the 3D space is distorted in each of the fisheye images, so the general feature point extraction using the distance between the feature points, etc. This is because there is a limit to applying the technique. On the other hand, as shown in FIG. 4B, two fisheye images are converted into two panoramic images, that is, images each photographed with a standard lens, and common feature points are extracted from the panoramic images in an arbitrary manner. I can.

도 3을 참조하면, 단계 S42에서, 복수의 파노라마 이미지들을 생성하는 동작이 수행될 수 있다. 파노라마 이미지는, 어안 렌즈로 촬영함으로써 생성된 어안 이미지와 상이하게, 표준 렌즈로 촬영된 이미지를 지칭할 수 있다. 예를 들면, 도 1의 이미지 처리 모듈(10)(또는, 특징점 추출부(12))은 복수의 어안 이미지들(F_IMG1, F_IMG2,..., F_IMGn)에 대응하는 복수의 파노라마 이미지들을 생성할 수 있다. 어안 이미지로부터 파노라마 이미지를 생성하는 동작의 예시는 도 5a 내지 도 5c 및 도 6 등을 참조하여 후술될 것이다.Referring to FIG. 3, in step S42, an operation of generating a plurality of panoramic images may be performed. The panoramic image may refer to an image photographed with a standard lens, different from a fisheye image generated by photographing with a fisheye lens. For example, the image processing module 10 (or feature point extraction unit 12) of FIG. 1 may generate a plurality of panoramic images corresponding to a plurality of fisheye images F_IMG1, F_IMG2,..., F_IMGn. I can. An example of an operation of generating a panoramic image from a fisheye image will be described later with reference to FIGS. 5A to 5C and FIG. 6.

단계 S44에서, 복수의 특징점들을 추출하는 동작이 수행될 수 있다. 예를 들면, 도 1의 특징점 추출부(12)는 복수의 파노라마 이미지들에서 임의의 방식으로 공통의 특징점들을 추출할 수 있다. 예를 들면, 특징점 추출부(12)는 복수의 파노라마 이미지들 각각에서 에지들을 검출할 수 있고, 검출된 에지들에 기초하여 공통의 특징점들을 추출할 수 있다. 도 1을 참조하여 전술된 바와 같이, 추출된 특징점들은 3차원 좌표를 계산하는 대상이 될 수 있고, 특징점들의 3차원 좌표들에 의해서 3차원 공간이 모델링될 수 있다.In step S44, an operation of extracting a plurality of feature points may be performed. For example, the feature point extracting unit 12 of FIG. 1 may extract common feature points from a plurality of panoramic images in an arbitrary manner. For example, the feature point extracting unit 12 may detect edges in each of a plurality of panoramic images, and may extract common feature points based on the detected edges. As described above with reference to FIG. 1, the extracted feature points may be a target for calculating 3D coordinates, and a 3D space may be modeled by 3D coordinates of the feature points.

도 5a 내지 도 5c는 본 발명의 예시적 실시예에 따라 복수의 어안 렌즈들을 사용하여 특징점을 촬영하는 동작을 설명하기 위한 도면들이다. 구체적으로, 도 5a 내지 도 5c는 제1 어안 렌즈(F1) 및 제2 어안 렌즈(F2)를 통해서 특징점(P)을 촬영하는 예시들을 나타낸다. 비록, 도 5a 내지 도 5c에서 2개의 어안 렌즈들을 통해 특징점을 촬영하는 예시들이 도시되나, 3개 이상의 어안 렌즈들을 사용하는 예시도 가능한 점은 이해될 것이다.5A to 5C are diagrams for explaining an operation of capturing a feature point using a plurality of fisheye lenses according to an exemplary embodiment of the present invention. Specifically, FIGS. 5A to 5C illustrate examples of photographing a feature point P through the first fisheye lens F1 and the second fisheye lens F2. Although, examples of photographing feature points through two fisheye lenses in FIGS. 5A to 5C are illustrated, it will be understood that an example using three or more fisheye lenses is possible.

도 5a 및 도 5b를 참조하면, 제1 어안 렌즈(F1) 및 제2 어안 렌즈(F2)는 X축 방향으로 상호 이격될 수 있고, Z축 방향으로 이격된 특징점(P)을 촬영할 수 있다. 이에 따라, 도 5c에 도시된 바와 같이, 제1 어안 렌즈(F1)를 통해서 촬영된 제1 어안 이미지(F_IMG1)에서 특징점(P)은 제1 어안 이미지(F_IMG1)의 중심(O1)으로부터 r1 이격된 위치에 표시되는 한편, 제2 어안 렌즈(F2)를 통해서 촬영된 제2 어안 이미지(F_IMG2)에서 특징점(P)은 제2 어안 이미지(F_IMG2)의 중심(O2)으로부터 r2 이격된 위치에 표시될 수 있다. 5A and 5B, the first fisheye lens F1 and the second fisheye lens F2 may be spaced apart from each other in the X-axis direction, and feature points P separated in the Z-axis direction may be photographed. Accordingly, as shown in FIG. 5C, the feature point P in the first fisheye image F_IMG1 photographed through the first fisheye lens F1 is r from the center O 1 of the first fisheye image F_IMG1. 1 While displayed at a spaced apart position, the feature point (P) in the second fisheye image (F_IMG2) taken through the second fisheye lens (F2) is r 2 apart from the center (O 2 ) of the second fisheye image (F_IMG2) Can be displayed in the designated location.

도 1을 참조하여 전술된 바와 같이, 제1 어안 렌즈(F1) 및 제2 어안 렌즈(F2)의 곡률 함수가 주어진 경우, 제1 어안 렌즈(F1)의 중심을 원점으로하는 극좌표계에서 특징점(P)의 제1 천정각(θ1) 및 제2 어안 렌즈(F2)의 중심을 원점으로 하는 극좌표계에서 특징점(P)의 제2 천정각(θ2)이 각각 계산될 수 있다. 예를 들면, 제1 어안 렌즈(F1)의 곡률 함수에 r1을 대입하는 경우 제1 천정각(θ1)이 도출될 수 있는 한편, 제2 어안 렌즈(F2)의 곡률 함수에 r2를 대입하는 경우 제2 천정각(θ2)이 도출될 수 있다. 또한, 제1 어안 렌즈(F1)의 중심(O1)과 특징점(P)을 잇는 선과 X축이 이루는 각도, 즉 제1 방위각(φ1) 및 제2 어안 렌즈(F2)의 중심(O2)과 특징점(P)을 잇는 선과 X축이 이루는 각도, 즉 제2 방위각(φ2)이, 제1 어안 이미지(F_IMG1) 및 제2 어안 이미지(F_IMG2)로부터 각각 도출될 수 있다. 이하에서, 후술되는 바와 같이, 어안 이미지에서 도출된 천정각 및 방위각은 파노라마 이미지를 생성하거나, 특징점(P)의 3차원 좌표를 추정하는데 사용될 수 있다.As described above with reference to FIG. 1, when the curvature functions of the first fisheye lens F1 and the second fisheye lens F2 are given, a feature point in a polar coordinate system with the center of the first fisheye lens F1 as an origin ( The second zenith angle θ 2 of the feature point P may be calculated in a polar coordinate system using the first zenith angle θ 1 of P) and the center of the second fisheye lens F2 as an origin. For example, if r 1 is substituted into the curvature function of the first fisheye lens F1, the first zenith angle θ 1 can be derived, while the curvature function of the second fisheye lens F2 is substituted with r 2 . If so, the second ceiling angle θ 2 may be derived. In addition, the angle formed by the X axis and the line connecting the center O 1 of the first fisheye lens F1 and the feature point P, that is, the first azimuth angle φ 1 and the center O2 of the second fisheye lens F2 An angle formed by the X-axis and the line connecting the and feature points P, that is, the second azimuth angle φ 2 , may be derived from the first fisheye image F_IMG1 and the second fisheye image F_IMG2, respectively. Hereinafter, as will be described later, the zenith angle and the azimuth angle derived from the fisheye image may be used to generate a panoramic image or to estimate the three-dimensional coordinates of the feature point P.

도 6은 본 발명의 예시적 실시예에 따라 어안 이미지로부터 파노라마 이미지를 생성하는 동작을 설명하기 위한 도면이다. 구체적으로, 도 6은 어안 렌즈의 중심을 원점으로 하는 극좌표계를 개략적으로 나타낸다. 도 6의 극좌표계는, 도 3을 참조하여 전술된 바와 같이, 공통의 특징점을 추출하기 위하여 어안 이미지로부터 파노라마 이미지를 생성하는데 사용될 수도 있고, 도 9를 참조하여 후술되는 바와 같이, 특징점의 3차원 좌표를 추정하는데 사용될 수도 있다.6 is a diagram illustrating an operation of generating a panorama image from a fisheye image according to an exemplary embodiment of the present invention. Specifically, FIG. 6 schematically shows a polar coordinate system with the center of the fisheye lens as the origin. The polar coordinate system of FIG. 6 may be used to generate a panoramic image from a fisheye image in order to extract a common feature point, as described above with reference to FIG. 3, and as will be described later with reference to FIG. 9, the three-dimensional feature point It can also be used to estimate coordinates.

특징점(P)은, 도 5a 내지 도 5c를 참조하여 전술된 바와 같이, 어안 렌즈의 중심에 대응하는 원점(O)로부터 +Z 방향으로 이격된 공간에 있을 수 있다. 또한, 도 5c를 참조하여 전술된 바와 같이, 어안 이미지로부터 천정각(θ) 및 방위각(φ)이 도출될 수 있다. The feature point P may be in a space spaced apart from the origin O corresponding to the center of the fisheye lens in the +Z direction, as described above with reference to FIGS. 5A to 5C. In addition, as described above with reference to FIG. 5C, the zenith angle θ and the azimuth angle φ may be derived from the fisheye image.

어안 이미지로부터 파노라마 이미지를 생성하기 위하여, 어안 이미지의 적어도 하나의 픽셀을 일정한 반경을 갖는 가상의 반구에 사상하고, 반구에 사상된 이미지를 펼침으로써 파노라마 이미지가 생성될 수 있다. 예를 들면, XY평면에 어안 이미지가 형성되고 어안 이미지에 포함된 하나의 점 Pf로부터 천정각(θ) 및 방위각(φ)이 도출될 수 있다. 원점(O)을 중심으로 하고 반경 R을 가지는 +Z 방향으로 볼록한, 가상의 반구가 있을 때, 천정각(θ) 및 방위각(φ)에 의해서 점 P가 결정될 수 있고, 점 P는 XY평면 상의 점 Pf의 값(예컨대 색상)을 가질 수 있다. 이와 같은 방식으로, 어안 이미지에 포함된 점들이 가상의 반구에 사상될 수 있고, 텍스쳐 맵핑과 같은 기법을 통해서 가상의 반구는 이미지로 채워질 수 있다. 그 다음에, 반구에 사상된 이미지를 평면의 이미지, 즉 파노라마 이미지로 펼치는 동작이 수행될 수 있다. 예를 들면, 다수의 그래픽스 API들(예컨대, OpenGL)은 반구에 사상된 이미지를 펼치는 기능을 제공할 수 있고, 이를 이용하여 파노라마 이미지가 생성될 수 있다.In order to generate a panoramic image from a fisheye image, a panoramic image may be generated by mapping at least one pixel of the fisheye image to a virtual hemisphere having a constant radius and spreading the mapped image on the hemisphere. For example, a fisheye image is formed on the XY plane, and a zenith angle (θ) and an azimuth angle (φ) may be derived from one point P f included in the fisheye image. When there is an imaginary hemisphere convex in the +Z direction with a radius R centered on the origin (O), the point P can be determined by the zenith angle (θ) and the azimuth angle (φ), and the point P is a point on the XY plane It can have a value of P f (eg, color). In this way, points included in the fisheye image can be mapped onto the virtual hemisphere, and the virtual hemisphere can be filled with the image through a technique such as texture mapping. Then, an operation of unfolding the image mapped on the hemisphere into a flat image, that is, a panoramic image may be performed. For example, a plurality of graphics APIs (eg, OpenGL) may provide a function of unfolding an image mapped to a hemisphere, and a panoramic image may be generated using this.

도 7은 본 발명의 예시적 실시예에 따라 도 2의 단계 S40의 예시를 나타내는 순서도이다. 도 2를 참조하여 전술된 바와 같이, 도 7의 단계 S40"에서, 복수의 특징점들을 추출하는 동작이 수행될 수 있다. 도 3의 단계 S40'과 비교할 때, 도 7의 단계 S40"에서는 복수의 어안 이미지들(예컨대, F_IMG1, F_IMG2)에서 공통의 특징점들이 추출될 수 있고, 이에 따라 특징점을 추출하기 위한 파노라마 이미지의 생성이 생략될 수 있다. 도 7에 도시된 바와 같이, 단계 S40"은 복수의 단계들(S41, S43, S45, S47)을 포함할 수 있고, 일부 실시예들에서 도 7의 단계 S40"은 도 1의 특징점 추출부(12)에 의해서 수행될 수 있다.7 is a flowchart illustrating an example of step S40 of FIG. 2 according to an exemplary embodiment of the present invention. As described above with reference to FIG. 2, an operation of extracting a plurality of feature points may be performed in step S40" of FIG. 7. Compared with step S40" of FIG. 3, step S40" of FIG. 7 Common feature points may be extracted from fisheye images (eg, F_IMG1, F_IMG2), and thus generation of a panoramic image for extracting the feature points may be omitted. As shown in FIG. 7, step S40" may include a plurality of steps S41, S43, S45, and S47, and in some embodiments, step S40" of FIG. 7 is a feature point extraction unit ( 12).

단계 S41에서, 제1 특징점들을 추출하는 동작이 수행될 수 있다. 제1 특징점들은, 복수의 어안 이미지들에서 미리 정의 문턱값을 초과하는 특징값들을 갖는 특징점들을 지칭할 수 있다. 즉, 제1 특징점들은 상대적으로 높은 특징값을 가지는 강한 특징점들일 수 있고, 이에 따라 비록 어안 이미지들에서 추출되었으나 상호 공통되는 특징점들이 추출될 수 있다.In step S41, an operation of extracting first feature points may be performed. The first feature points may refer to feature points having feature values exceeding a predefined threshold in a plurality of fisheye images. That is, the first feature points may be strong feature points having a relatively high feature value, and accordingly, feature points that are common to each other although extracted from fisheye images may be extracted.

단계 S43에서, 복수의 메시(mesh)들을 생성하는 동작이 수행될 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 제1 어안 이미지(F_IMG1) 및 제2 어안 이미지(F_IMG2) 각각에서, 제1 특징점들 및 제1 특징점들을 연결하는 에지들을 포함하는 메시가 생성될 수 있다. 단계 S43의 예시는 도 8을 참조하여 후술될 것이다.In step S43, an operation of generating a plurality of meshes may be performed. For example, as shown in FIG. 7, in each of the first fisheye image F_IMG1 and the second fisheye image F_IMG2, a mesh including first feature points and edges connecting the first feature points may be generated. have. An example of step S43 will be described later with reference to FIG. 8.

단계 S45에서, 복수의 어안 이미지들 각각을 적어도 하나의 영역으로 분할하는 동작이 수행될 수 있다. 예를 들면, 도 7에 도시된 바와 같이, 제1 어안 이미지(F_IMG1)로부터 생성된 메시 및 제2 어안 이미지(F_IMG2)로부터 생성된 메시를 상호 대응시키는 동작이 수행될 수 있다. 그 다음에, 상호 대응하는 제1 특징점에서 동일한 방식으로 제1 어안 이미지(F_IMG1) 및 제2 어안 이미지(F_IMG2)를 복수의 영역들이 분할될 수 있다. 도 7은 제1 어안 이미지(F_IMG1) 및 제2 어안 이미지(F_IMG2)가 상호 대응하는 제1 특징점에서 상하좌우로 분할되는 예시를 나타낸다.In step S45, an operation of dividing each of the plurality of fisheye images into at least one region may be performed. For example, as illustrated in FIG. 7, an operation of correlating a mesh generated from a first fisheye image F_IMG1 and a mesh generated from a second fisheye image F_IMG2 may be performed. Then, a plurality of regions may be divided into the first fisheye image F_IMG1 and the second fisheye image F_IMG2 in the same manner at the corresponding first feature points. 7 shows an example in which a first fisheye image F_IMG1 and a second fisheye image F_IMG2 are divided up, down, left and right at corresponding first feature points.

단계 S47에서, 제2 특징점을 추출하는 동작이 수행될 수 있다. 즉, 단계 S45에서 분할된 영역들 중 상호 대응하는 영역에서 공통되는 제2 특징점이 추출될 수 있다. 상호 대응하는 분할된 영역들에서 공통의 특징점이 추출됨으로써, 도 4a를 참조하여 전술된 문제가 발생하지 아니할 수 있다. 분할된 영역들에서 제2 특징점의 추출이 반복적으로 수행될 수 있고, 이에 따라 제1 어안 이미지(F_IMG1) 및 제2 어안 이미지(F_IMG2)에서 제1 특징점 및 제2 특징점을 포함하는 공통의 특징점들이 추출될 수 있다.In step S47, an operation of extracting the second feature point may be performed. That is, the second feature points that are common in the regions corresponding to each other among the regions divided in step S45 may be extracted. Since common feature points are extracted from the divided regions corresponding to each other, the problem described above with reference to FIG. 4A may not occur. The extraction of the second feature point from the divided regions may be repeatedly performed, and accordingly, common feature points including the first feature point and the second feature point in the first fisheye image (F_IMG1) and the second fisheye image (F_IMG2) are Can be extracted.

도 8은 본 발명의 예시적 실시예에 따라 복수의 어안 이미지들로부터 메시를 생성하는 동작의 예시를 나타내는 도면이다. 구체적으로, 도 8은 도 7의 단계 S43의 예시를 나타낸다. 도 7을 참조하여 전술된 바와 같이, 어안 이미지에서 추출된 제1 특징점들 및 제1 특징점들을 연결하는 에지들을 포함하는 메시가 생성될 수 있다.8 is a diagram illustrating an example of an operation of generating a mesh from a plurality of fisheye images according to an exemplary embodiment of the present invention. Specifically, FIG. 8 shows an example of step S43 of FIG. 7. As described above with reference to FIG. 7, a mesh including first feature points extracted from a fisheye image and edges connecting the first feature points may be generated.

도 8의 좌측을 참조하면, 하나의 어안 이미지에서 5개의 제1 특징점들(A, B, C, D, E)이 추출될 수 있다. 제1 특징점은 임의의 방식으로 추출될 수 있고, 예컨대 AKAZE 방식에 기초하여 추출될 수 있다. 도 8의 중간을 참조하면, 5개의 제1 특징점들(A, B, C, D, E)은 특징값들에 따라 정렬될 수 있다. 예를 들면, 도 8에 도시된 바와 같이, 5개의 제1 특징점들(A, B, C, D, E)은 가장 높은 특징값을 가지는 제1 특징점인 D로부터 가장 낮은 특징값을 가지는 제1 특징점인 C 순으로 정렬될 수 있다. 도 8의 우측을 참조하면, 5개의 특징점들(A, B, C, D, E)은 특징값 및 좌표에 기초하여 k-차원 트리(k-d tree)로 표현될 수 있다. k-차원 트리는 k-차원 공간에서 점들을 조직화하기 위한 공간-분할 데이터 구조로서, 해당 기술 분야에서 널리 사용되는 기법인 바 k-차원 트리에 대한 자세한 내용은 본 명세서에서 생략된다. 결과적으로 도 8의 우측에 도시된 바와 같은 트리 구조가 생성될 수 있고, 복수의 어안 이미지들에서 생성된 트리들이 동일한 모양을 가지는지 여부를 판단함으로써, 메시들을 대응시키는 동작이 수행될 수 있다. 트리 모양이 동일한 경우, 트리에서 대응하는 노드들, 즉 제1 특징점들이 상호 대응하는 것으로 판정될 수 있다.Referring to the left side of FIG. 8, five first feature points A, B, C, D, and E may be extracted from one fisheye image. The first feature point may be extracted in any manner, for example, based on the AKAZE method. Referring to the middle of FIG. 8, five first feature points A, B, C, D, and E may be aligned according to feature values. For example, as shown in FIG. 8, the five first feature points A, B, C, D, and E are the first feature points D having the lowest feature value from the first feature point D having the highest feature value. It can be sorted in the order of the feature point C. Referring to the right side of FIG. 8, five feature points A, B, C, D, and E may be expressed as a k-d tree based on feature values and coordinates. The k-dimensional tree is a space-division data structure for organizing points in a k-dimensional space, and since it is a technique widely used in the relevant technical field, details of the k-dimensional tree are omitted herein. As a result, a tree structure as shown on the right side of FIG. 8 may be generated, and an operation of matching meshes may be performed by determining whether the trees generated from a plurality of fisheye images have the same shape. When the tree shape is the same, it may be determined that corresponding nodes in the tree, that is, first feature points, correspond to each other.

도 9는 본 발명의 예시적 실시예에 따라 특징점의 3차원 좌표를 추정하는 동작을 설명하기 위한 도면이다. 예를 들면, 도 9는 도 2의 단계 S60의 예시를 나타낸다. 구체적으로, 도 9는 제1 어안 렌즈(F1) 및 제2 어안 렌즈(F2)가 제1 중심(O1) 및 제2 중심(O2)을 각각 가지고, X축 상에서 lx 이격된 예시를 나타낸다. 도 9에 도시된 바와 같이, 제1 중심(O1)이 X/Y/Z축의 중심, 즉 좌표 (0,0)에 있는 것으로 가정되고, 이에 따라 제2 중심(O2)은 좌표 (lx, 0)에 있을 수 있다.9 is a diagram illustrating an operation of estimating 3D coordinates of a feature point according to an exemplary embodiment of the present invention. For example, FIG. 9 shows an example of step S60 of FIG. 2. Specifically, FIG. 9 illustrates an example in which the first fisheye lens F1 and the second fisheye lens F2 have a first center O 1 and a second center O 2 , respectively, and are spaced l x apart on the X axis. Show. As shown in FIG. 9, it is assumed that the first center O 1 is at the center of the X/Y/Z axis, that is, at coordinates (0,0), and accordingly, the second center O 2 is at the coordinates (l x , 0).

도 6을 참조하면, 도 6의 점(P)가 3차원 공간 상의 특징점이고 θ'가 (90°-θ)일 때, 점(P)의 3차원 좌표는 아래 [수학식 1]과 같이 나타낼 수 있다.Referring to FIG. 6, when a point P in FIG. 6 is a feature point in a three-dimensional space and θ'is (90°-θ), the three-dimensional coordinates of the point P are expressed as [Equation 1] below. I can.

Figure 112019018169313-pat00001
Figure 112019018169313-pat00001

[수학식 1]에서, i, j, k는 X축, Y축, Z축을 나타낸다. In [Equation 1], i, j, and k represent the X-axis, Y-axis, and Z-axis.

다시, 도 9를 참조하면, 제1 중심(O1)으부터 특징점(P)로 향하는 제1 벡터(V1) 및 제2 중심(O2)으로부터 특징점(P)로 향하는 제2 벡터(V2)는 [수학식 1]에 기초하여 아래 [수학식 2]와 같이 도출될 수 있다.Again, referring to FIG. 9, the first vector V 1 from the first center O 1 to the feature point P and the second vector V 1 from the second center O 2 to the feature point P 2 ) can be derived as shown in [Equation 2] below based on [Equation 1].

Figure 112019018169313-pat00002
Figure 112019018169313-pat00002

Figure 112019018169313-pat00003
Figure 112019018169313-pat00003

[수학식 2]에서, θ'1은 제1 중심(O1)에 대한 특징점(P)의 제1 천정각(θ1)을 90도에서 뺀 값을 나타내고, θ'2는 제2 중심(O2)에 대한 특징점(P)의 제2 천정각(θ2)을 90도에서 뺀 값을 나타낸다. 이상적으로는, 제1 벡터(V1) 및 제2 벡터(V2)가 특징점(P)에서 교차하여야 하나, 다양한 원인들, 예컨대 제1 어안 렌즈(F1) 및 제2 어안 렌즈(F2)의 곡률 함수의 오차, 이미지 센서 및 어안 렌즈의 오정렬 등과 같은 이상적이지 아니한 특성들에 기인하여 제1 벡터(V1) 및 제2 벡터(V2)는 3차원 공간에서 교차하지 아니할 수 있다. 즉, 제1 벡터(V1) 및 제2 벡터(V2)는 꼬인 위치에 있을 수 있다.In the formula 2], θ '1 denotes a value obtained by subtracting a first zenith angle (θ 1) of the characteristic point (P) for a first center (O 1) at 90 °, θ' 2 is a second center (O It represents a value obtained by subtracting the second zenith angle θ 2 of the feature point P for 2 ) from 90 degrees. Ideally, the first vector (V 1 ) and the second vector (V 2 ) should intersect at the feature point (P), but various causes, for example, of the first fisheye lens (F1) and the second fisheye lens (F2) Due to non-ideal characteristics such as an error in the curvature function and misalignment of the image sensor and fisheye lens, the first vector V 1 and the second vector V 2 may not intersect in a 3D space. That is, the first vector V 1 and the second vector V 2 may be in a twisted position.

일부 실시예들에서, 특징점(P)은 제1 벡터(V1) 및 제2 벡터(V2)로부터 동일한 거리로 이격된 점들 중 가장 짧은 거리로 이격된 점의 좌표로서 계산될 수 있다. 즉, 제1 벡터(V1) 및 제2 벡터(V2) 사이 거리를 나타내는 선, 즉 제1 벡터(V1) 및 제2 벡터(V2) 사이에서 양 벡터들과 직교하는 선의 중점이 특징점(P)의 좌표로서 계산될 수 있다. [수학식 2]에 따라, 제1 벡터(V1) 상의 점 P1 및 제2 벡터(V2) 상의 점 P2는 아래 [수학식 3]과 같이 표현될 수 있다.In some embodiments, the feature point P may be calculated as a coordinate of a point separated by the shortest distance among points separated by the same distance from the first vector V 1 and the second vector V 2 . In other words, the weighted first vector (V 1) and second vector (V 2) the line between that is the distance, that is between a first vector (V 1) and second vector (V 2) of the line perpendicular to the amount of vector It can be calculated as the coordinates of the feature point P. According to [Equation 2], the point P 1 on the first vector V 1 and the point P 2 on the second vector V 2 may be expressed as [Equation 3] below.

Figure 112019018169313-pat00004
Figure 112019018169313-pat00004

Figure 112019018169313-pat00005
Figure 112019018169313-pat00005

[수학식 3]에 기초하여, 방향 벡터

Figure 112019018169313-pat00006
Figure 112019018169313-pat00007
를 아래 [수학식 4]와 같이 정의할 수 있다.Based on [Equation 3], the direction vector
Figure 112019018169313-pat00006
And
Figure 112019018169313-pat00007
Can be defined as shown in [Equation 4] below.

Figure 112019018169313-pat00008
Figure 112019018169313-pat00008

Figure 112019018169313-pat00009
Figure 112019018169313-pat00009

이에 따라, [수학식 3]의 점 P1 및 점 P2로 정의되는 벡터

Figure 112019018169313-pat00010
는 아래 [수학식 5]과 같이 표현될 수 있다.Accordingly, the vector defined by the point P 1 and the point P 2 of [Equation 3]
Figure 112019018169313-pat00010
Can be expressed as [Equation 5] below.

Figure 112019018169313-pat00011
Figure 112019018169313-pat00011

점 P1 및 점 P2가 제1 벡터(V1) 및 제2 벡터(V2)의 거리를 나타내는 선의 양단에 대응할 때, 벡터

Figure 112019018169313-pat00012
및 방향 벡터
Figure 112019018169313-pat00013
가 수직이고, 벡터
Figure 112019018169313-pat00014
및 방향 벡터
Figure 112019018169313-pat00015
가 수직이므로, 아래 [수학식 6]이 만족할 수 있다.When point P 1 and point P 2 correspond to both ends of the line representing the distance of the first vector (V 1 ) and the second vector (V 2 ), the vector
Figure 112019018169313-pat00012
And direction vector
Figure 112019018169313-pat00013
Is vertical, vector
Figure 112019018169313-pat00014
And direction vector
Figure 112019018169313-pat00015
Since is vertical, [Equation 6] below may be satisfied.

Figure 112019018169313-pat00016
Figure 112019018169313-pat00016

Figure 112019018169313-pat00017
Figure 112019018169313-pat00017

이에 따라, [수학식 6]을 만족하는 m 및 n이 계산될 수 있고, 그에 따라 점 P1 및 점 P2의 좌표가 도출될 수 있으며, 결과적으로 점 P1 및 점 P2의 중점이 특징점(P)의 좌표로서 계산될 수 있다.Accordingly, m and n satisfying [Equation 6] can be calculated, and the coordinates of the points P 1 and P 2 can be derived accordingly, and as a result, the midpoints of the points P 1 and P 2 are the feature points. It can be calculated as the coordinates of (P).

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 발명의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, exemplary embodiments have been disclosed in the drawings and specifications. In the present specification, the embodiments have been described using specific terms, but these are only used for the purpose of describing the technical idea of the present invention, and are not used to limit the meaning or the scope of the present invention described in the claims. . Therefore, those of ordinary skill in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Accordingly, the true technical scope of the present invention should be determined by the technical spirit of the appended claims.

Claims (12)

3차원 공간을 모델링하는 방법으로서,
복수의 어안 렌즈들을 통해서 촬영된 복수의 어안 이미지들을 획득하는 단계;
상기 복수의 어안 이미지들로부터 복수의 특징점들을 추출하는 단계;
상기 복수의 어안 렌즈들의 곡률 함수 및 상기 복수의 어안 이미지들에 기초하여 상기 복수의 특징점들의 복수의 3차원 좌표들을 추정하는 단계; 및
상기 복수의 3차원 좌표들에 기초하여 상기 3차원 공간을 정의하는 출력 데이터를 생성하는 단계를 포함하고,
상기 복수의 특징점들을 추출하는 단계는,
상기 복수의 어안 이미지들을, 표준 렌즈로 촬영된 이미지에 대응하는 복수의 파노라마 이미지들로 변환하는 단계; 및
상기 복수의 파노라마 이미지들로부터 상기 복수의 특징점들을 추출하는 단계를 포함하고,
상기 복수의 특징점들을 추출하는 단계는,
상기 복수의 어안 이미지들로부터 미리 정의된 문턱값을 초과하는 특징값을 가지는 제1 특징점들을 추출하는 단계;
상기 복수의 어안 이미지들 각각에서, 상기 제1 특징점들 및 상기 제1 특징점들을 연결하는 에지들을 포함하는 메시를 생성하는 단계;
복수의 메시들에 기초하여 상기 복수의 어안 이미지들 각각을 적어도 하나의 영역으로 분할하는 단계; 및
상기 복수의 어안 이미지들의 상호 대응하는 영역들 내에서 적어도 하나의 제2 특징점을 추출하는 단계를 포함하는 것을 특징으로 하는 방법.
As a method of modeling a three-dimensional space,
Acquiring a plurality of fisheye images photographed through the plurality of fisheye lenses;
Extracting a plurality of feature points from the plurality of fisheye images;
Estimating a plurality of 3D coordinates of the plurality of feature points based on a curvature function of the plurality of fisheye lenses and the plurality of fisheye images; And
Generating output data defining the three-dimensional space based on the plurality of three-dimensional coordinates,
The step of extracting the plurality of feature points,
Converting the plurality of fisheye images into a plurality of panoramic images corresponding to an image photographed with a standard lens; And
Including the step of extracting the plurality of feature points from the plurality of panoramic images,
The step of extracting the plurality of feature points,
Extracting first feature points having feature values exceeding a predefined threshold value from the plurality of fisheye images;
Generating a mesh including the first feature points and edges connecting the first feature points in each of the plurality of fisheye images;
Dividing each of the plurality of fisheye images into at least one region based on a plurality of meshes; And
And extracting at least one second feature point in regions corresponding to each other of the plurality of fisheye images.
삭제delete 청구항 1에 있어서,
상기 복수의 파노라마 이미지들로 변환하는 단계는,
어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계에서 어안 이미지에 포함된 특징점에 대한 천정각(θ) 및 방위각(φ)을 계산하는 단계; 및
상기 천정각(θ) 및 상기 방위각(φ)에 기초하여, 파노라마 이미지에서 상기 특징점의 좌표를 추정하는 단계를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
Converting the plurality of panoramic images,
Calculating a zenith angle (θ) and an azimuth angle (φ) for a feature point included in the fisheye image in a three-dimensional polar coordinate system using the center point of the fisheye lens as an origin; And
And estimating coordinates of the feature points in the panoramic image based on the zenith angle (θ) and the azimuth angle (φ).
청구항 1에 있어서,
상기 복수의 파노라마 이미지들로부터 상기 복수의 특징점들을 추출하는 단계는, AKAZE 알고리즘에 기초하여 상기 복수의 특징점들을 추출하는 것을 특징으로 하는 방법.
The method according to claim 1,
The extracting the plurality of feature points from the plurality of panoramic images comprises extracting the plurality of feature points based on an AKAZE algorithm.
삭제delete 청구항 1에 있어서,
상기 메시를 생성하는 단계는,
상기 제1 특징점들을 특징값에 기초하여 정렬하는 단계; 및
정렬된 상기 제1 특징점들을 k-차원 트리(k-d tree)로 표현하는 단계를 포함하고,
상기 복수의 어안 이미지들 각각을 적어도 하나의 영역으로 분할하는 단계는, 상기 복수의 어안 이미지들에 대응하는 복수의 k-차원 트리들을 비교하는 단계를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
The step of generating the mesh,
Aligning the first feature points based on feature values; And
Representing the aligned first feature points as a k-dimensional tree (kd tree),
The step of dividing each of the plurality of fisheye images into at least one region comprises comparing a plurality of k-dimensional trees corresponding to the plurality of fisheye images.
청구항 1에 있어서,
상기 복수의 3차원 좌표들을 추정하는 단계는,
어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계에서 어안 이미지에 포함된 특징점에 대한 천정각(θ) 및 방위각(φ)을 계산하는 단계;
상기 천정각(θ) 및 상기 방위각(φ)에 기초하여, 상기 어안 렌즈의 중심점 및 상기 특징점을 통과하는 벡터를 정의하는 단계;
상기 복수의 어안 렌즈들에 대응하는 복수의 벡터들을 제1 어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계로 변환하는 단계; 및
변환된 복수의 벡터들에 기초하여 상기 특징점의 3차원 좌표를 추정하는 단계를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
Estimating the plurality of 3D coordinates,
Calculating a zenith angle (θ) and an azimuth angle (φ) for a feature point included in the fisheye image in a three-dimensional polar coordinate system using the center point of the fisheye lens as an origin;
Defining a vector passing through the center point and the feature point of the fisheye lens based on the zenith angle (θ) and the azimuth angle (φ);
Converting a plurality of vectors corresponding to the plurality of fisheye lenses into a three-dimensional polar coordinate system having a center point of the first fisheye lens as an origin; And
And estimating the three-dimensional coordinates of the feature point based on the transformed plurality of vectors.
청구항 7에 있어서,
상기 특징점의 3차원 좌표를 추정하는 단계는, 상기 복수의 벡터들로부터 동일한 거리로 이격된 점들 중 가장 짧은 거리로 이격된 점을 상기 특징점의 3차원 좌표로서 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
The method of claim 7,
The step of estimating the three-dimensional coordinates of the feature point comprises calculating a point spaced apart by the shortest distance among points spaced apart from the plurality of vectors by the same distance as the three-dimensional coordinates of the feature point. Way.
청구항 1에 있어서,
상기 출력 데이터를 생성하는 단계는, 상기 복수의 어안 이미지들로부터 생성된 적어도 하나의 파노라마 이미지에 기초하여 상기 복수의 3차원 좌표들에 의해서 정의되는 평면에 텍스쳐 맵핑을 적용하는 단계를 포함하는 것을 특징으로 하는 방법.
The method according to claim 1,
The generating of the output data includes applying texture mapping to a plane defined by the plurality of 3D coordinates based on at least one panoramic image generated from the plurality of fisheye images. How to do it.
3차원 공간을 모델링하기 위한 시스템으로서,
제1 어안 렌즈 및 제2 어안 렌즈를 포함하고, 상기 제1 어안 렌즈 및 상기 제2 어안 렌즈를 통해서 촬영된 제1 어안 이미지 및 제2 어안 이미지를 생성하는 제1 카메라 모듈 및 제2 카메라 모듈; 및
상기 제1 어안 이미지 및 상기 제2 어안 이미지에 기초하여, 상기 3차원 공간을 정의하는 출력 데이터를 생성하는 이미지 처리 모듈을 포함하고,
상기 이미지 처리 모듈은,
상기 제1 어안 이미지 및 상기 제2 어안 이미지로부터 복수의 특징점들을 추출하는 특징점 추출부;
상기 제1 어안 렌즈와 상기 제2 어안 렌즈의 곡률 함수, 상기 제1 어안 이미지 및 상기 제2 어안 이미지에 기초하여, 상기 복수의 특징점들의 복수의 3차원 좌표들을 추정하는 좌표 추정부; 및
상기 복수의 3차원 좌표들에 기초하여 상기 출력 데이터를 생성하는 출력 데이터 생성부를 포함하고,
상기 좌표 추정부는,
어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계에서 어안 이미지에 포함된 특징점에 대한 천정각(θ) 및 방위각(φ)을 계산하고,
상기 천정각(θ) 및 상기 방위각(φ)에 기초하여, 상기 어안 렌즈의 중심점 및 상기 특징점을 통과하는 벡터를 정의하고,
상기 제1 어안 렌즈 및 상기 제2 어안 렌즈에 대응하는 복수의 벡터들을 제1 어안 렌즈의 중심점을 원점으로 하는 3차원 극좌표계로 변환하고,
변환된 복수의 벡터들에 기초하여 상기 특징점의 3차원 좌표를 추정하되, 상기 복수의 벡터들로부터 동일한 거리로 이격된 점들 중 가장 짧은 거리로 이격된 점을 상기 특징점의 3차원 좌표로서 계산하도록 구성된 것을 특징으로 하는 시스템.
As a system for modeling a three-dimensional space,
A first camera module and a second camera module including a first fisheye lens and a second fisheye lens, and generating a first fisheye image and a second fisheye image captured through the first fisheye lens and the second fisheye lens; And
An image processing module configured to generate output data defining the three-dimensional space, based on the first fisheye image and the second fisheye image,
The image processing module,
A feature point extraction unit for extracting a plurality of feature points from the first fisheye image and the second fisheye image;
A coordinate estimation unit for estimating a plurality of 3D coordinates of the plurality of feature points based on a curvature function of the first fisheye lens and the second fisheye lens, the first fisheye image and the second fisheye image; And
And an output data generator that generates the output data based on the plurality of 3D coordinates,
The coordinate estimation unit,
Calculate the zenith angle (θ) and azimuth angle (φ) for the feature points included in the fisheye image in a three-dimensional polar coordinate system with the center point of the fisheye lens as the origin,
Based on the zenith angle θ and the azimuth angle φ, a vector passing through the center point and the feature point of the fisheye lens is defined,
Converting a plurality of vectors corresponding to the first fisheye lens and the second fisheye lens into a three-dimensional polar coordinate system having a center point of the first fisheye lens as an origin,
Estimating the three-dimensional coordinates of the feature point based on the transformed plurality of vectors, and calculating a point spaced apart by the shortest distance among points spaced at the same distance from the plurality of vectors as the three-dimensional coordinates of the feature point A system, characterized in that.
청구항 10에 있어서,
상기 이미지 처리 모듈은,
교정 모드에서, 상기 제1 어안 이미지 및 상기 제2 어안 이미지에 기초하여 상기 곡률 함수를 추정하고 저장하는 곡률 제공부를 더 포함하는 것을 특징으로 하는 시스템.
The method of claim 10,
The image processing module,
In the correction mode, the system further comprising a curvature providing unit for estimating and storing the curvature function based on the first fisheye image and the second fisheye image.
청구항 10에 있어서,
제3 어안 렌즈를 포함하고, 상기 제3 어안 렌즈를 통해서 촬영된 제3 어안 이미지를 생성하는 제3 카메라 모듈을 더 포함하고,
상기 이미지 처리 모듈은, 상기 제3 어안 이미지에 더 기초하여 상기 출력 데이터를 생성하고,
상기 특징점 추출부는, 상기 제1 어안 이미지, 상기 제2 어안 이미지 및 상기 제3 어안 이미지로부터 상기 복수의 특징점들을 추출하고,
상기 좌표 추정부는, 상기 제3 어안 렌즈의 곡률 함수 및 상기 제3 어안 이미지에 더 기초하여 상기 복수의 3차원 좌표들을 추정하는 것을 특징으로 하는 시스템.
The method of claim 10,
Including a third fisheye lens, further comprising a third camera module for generating a third fisheye image photographed through the third fisheye lens,
The image processing module generates the output data further based on the third fisheye image,
The feature point extracting unit extracts the plurality of feature points from the first fisheye image, the second fisheye image, and the third fisheye image,
And the coordinate estimating unit estimates the plurality of 3D coordinates further based on a curvature function of the third fisheye lens and the third fisheye image.
KR1020190020056A 2019-02-20 2019-02-20 System and method for building real-time virtual reality KR102146839B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190020056A KR102146839B1 (en) 2019-02-20 2019-02-20 System and method for building real-time virtual reality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190020056A KR102146839B1 (en) 2019-02-20 2019-02-20 System and method for building real-time virtual reality

Publications (1)

Publication Number Publication Date
KR102146839B1 true KR102146839B1 (en) 2020-08-21

Family

ID=72235512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190020056A KR102146839B1 (en) 2019-02-20 2019-02-20 System and method for building real-time virtual reality

Country Status (1)

Country Link
KR (1) KR102146839B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132708A (en) * 2021-04-22 2021-07-16 北京房江湖科技有限公司 Method and apparatus for acquiring three-dimensional scene image using fisheye camera, device and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002031528A (en) * 2000-07-14 2002-01-31 Asia Air Survey Co Ltd Space information generating device for mobile mapping
KR20140090775A (en) * 2013-01-10 2014-07-18 염철희 Correction method of distortion image obtained by using fisheye lens and image display system implementing thereof
JP2018010599A (en) * 2016-07-15 2018-01-18 富士通株式会社 Information processor, panoramic image display method, panoramic image display program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002031528A (en) * 2000-07-14 2002-01-31 Asia Air Survey Co Ltd Space information generating device for mobile mapping
KR20140090775A (en) * 2013-01-10 2014-07-18 염철희 Correction method of distortion image obtained by using fisheye lens and image display system implementing thereof
JP2018010599A (en) * 2016-07-15 2018-01-18 富士通株式会社 Information processor, panoramic image display method, panoramic image display program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132708A (en) * 2021-04-22 2021-07-16 北京房江湖科技有限公司 Method and apparatus for acquiring three-dimensional scene image using fisheye camera, device and medium
CN113132708B (en) * 2021-04-22 2022-02-22 贝壳找房(北京)科技有限公司 Method and apparatus for acquiring three-dimensional scene image using fisheye camera, device and medium

Similar Documents

Publication Publication Date Title
CN109658365B (en) Image processing method, device, system and storage medium
JP6425780B1 (en) Image processing system, image processing apparatus, image processing method and program
CN110568447B (en) Visual positioning method, device and computer readable medium
JP6687204B2 (en) Projection image generation method and apparatus, and mapping method between image pixels and depth values
CN109242961B (en) Face modeling method and device, electronic equipment and computer readable medium
CN107705333B (en) Space positioning method and device based on binocular camera
JP6201476B2 (en) Free viewpoint image capturing apparatus and method
KR101666959B1 (en) Image processing apparatus having a function for automatically correcting image acquired from the camera and method therefor
JP5093053B2 (en) Electronic camera
US20200334842A1 (en) Methods, devices and computer program products for global bundle adjustment of 3d images
JPWO2018235163A1 (en) Calibration apparatus, calibration chart, chart pattern generation apparatus, and calibration method
CN110728671B (en) Dense reconstruction method of texture-free scene based on vision
CN104835138A (en) Aligning ground based images and aerial imagery
JP6352208B2 (en) 3D model processing apparatus and camera calibration system
CN111598993A (en) Three-dimensional data reconstruction method and device based on multi-view imaging technology
KR102152436B1 (en) A skeleton processing system for dynamic 3D model based on 3D point cloud and the method thereof
JP5068732B2 (en) 3D shape generator
JP2020042772A (en) Depth data processing system capable of optimizing depth data by image positioning with respect to depth map
CN115035235A (en) Three-dimensional reconstruction method and device
JP2020149641A (en) Object tracking device and object tracking method
WO2021005977A1 (en) Three-dimensional model generation method and three-dimensional model generation device
WO2021035627A1 (en) Depth map acquisition method and device, and computer storage medium
KR102146839B1 (en) System and method for building real-time virtual reality
JP6086491B2 (en) Image processing apparatus and database construction apparatus thereof
JP2017215706A (en) Video synthesis method, video acquisition device, video synthesis system, and computer program

Legal Events

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