KR102472767B1 - 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 - Google Patents
신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 Download PDFInfo
- Publication number
- KR102472767B1 KR102472767B1 KR1020170117962A KR20170117962A KR102472767B1 KR 102472767 B1 KR102472767 B1 KR 102472767B1 KR 1020170117962 A KR1020170117962 A KR 1020170117962A KR 20170117962 A KR20170117962 A KR 20170117962A KR 102472767 B1 KR102472767 B1 KR 102472767B1
- Authority
- KR
- South Korea
- Prior art keywords
- reliability
- segments
- input image
- calculating
- camera
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/271—Image signal generators wherein the generated image signals comprise depth maps or disparity maps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/174—Segmentation; Edge detection involving the use of two or more images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/579—Depth or shape recovery from multiple images from motion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/261—Image signal generators with monoscopic-to-stereoscopic image conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
Abstract
일 실시예에 따른 깊이 맵을 산출하는 방법 및 장치는 입력 영상을 세그먼트들로 분할하고, 세그먼트들에 대하여 산출된 신뢰도에 기초하여 세그먼트들 중 하나 이상의 세그먼트를 선택하고, 선택된 세그먼트를 이용하여 입력 영상에 대한 카메라의 포즈 정보를 추정하며, 카메라의 포즈 정보를 이용하여 입력 영상의 깊이 맵을 산출한다.
Description
아래 실시예들은 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치에 관한 것이다.
2차원 입력 영상은 카메라의 위치 추정 및 깊이 추정(depth estimation)을 통해 3차원 영상으로 재구성(reconstruction)될 수 있다. 카메라의 위치 추정 및 깊이 추정에는 예를 들어, 대상의 움직임에 의한 운동으로부터 발생하는 정보를 통해 대상의 구조를 파악하는 SFM(Structure From Motion) 기법, 이동 중인 카메라의 위치를 측정하면서 동시에 주변 환경의 지도를 작성하는 SLAM(Simultaneous Localization and Mapping) 기법, 카메라 영상을 분석하여 위치 및 자세를 결정하는 시각적 주행 거리(Visual Odometry; VO) 측정 기법 등이 이용될 수 있다.
전술한 기법들에 따르면 영상 내에서 추적하고자 하는 대상 객체(target object)가 아닌 대상의 영역에 대한 반복적인 선택을 통한 오류 발생, 및/또는 이동 객체의 추적 등에 의해 연산 자원(computational resource)의 불필요한 손실이 발생할 수 있다.
일 실시예에 따르면, 깊이 맵을 산출하는 방법은 입력 영상을 세그먼트들(segments)로 분할하는 단계; 상기 세그먼트들의 신뢰도를 산출하는 단계; 상기 신뢰도에 기초하여 상기 세그먼트들 중 하나 이상의 세그먼트를 선택하는 단계; 상기 선택된 세그먼트를 이용하여 상기 입력 영상에 대한 카메라의 포즈 정보를 추정하는 단계; 및 상기 카메라의 포즈 정보를 이용하여 상기 입력 영상의 깊이 맵을 산출하는 단계를 포함한다.
상기 분할하는 단계는 상기 입력 영상에 포함된 객체를 의미(semantic) 단위로 구분하여 상기 입력 영상을 의미 세그먼트들로 분할하는 단계; 및 상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 깊이 세그먼트들로 분할하는 단계 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
상기 신뢰도를 산출하는 단계는 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출하는 단계; 및 상기 깊이 세그먼트들에 대한 제2 신뢰도를 산출하는 단계 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
상기 제1 신뢰도를 산출하는 단계는 상기 입력 영상에 포함된 객체가 이동 객체(moving object)인지 여부에 기초하여 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출하는 단계를 포함할 수 있다.
상기 제1 신뢰도를 산출하는 단계는 상기 객체가 이동 객체인 경우, 상기 이동 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제1 값으로 결정하는 단계; 및 상기 객체가 고정 객체인 경우, 상기 고정 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제2 값으로 결정하는 단계를 포함할 수 있다.
상기 신뢰도를 산출하는 단계는 상기 제1 신뢰도 및 상기 제2 신뢰도를 융합(fusion)하는 단계; 및 상기 융합한 신뢰도를 상기 세그먼트들에 대한 신뢰도로 결정하는 단계를 포함할 수 있다.
상기 깊이 맵을 산출하는 방법은 상기 융합된 신뢰도에 기초하여 상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계를 더 포함하고, 상기 카메라의 포즈 정보를 추정하는 단계는 상기 선택된 픽셀들로부터의 상기 카메라의 포즈 정보를 추정하는 단계를 포함할 수 있다.
상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계는 상기 융합된 신뢰도에 비례하도록 상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계를 포함할 수 있다.
상기 입력 영상은 프레임들을 포함하고, 상기 신뢰도를 산출하는 단계는 상기 프레임들 중 키 프레임(key frame)마다에 대하여 상기 세그먼트들의 신뢰도를 산출하는 단계를 포함할 수 있다.
상기 카메라의 포즈 정보를 추정하는 단계는 상기 선택된 세그먼트에 대하여 비용 함수(cost function)를 적용하여 상기 카메라의 포즈 정보를 추정하는 단계를 포함할 수 있다.
일 실시예에 따르면, 깊이 맵을 산출하는 장치는 입력 영상을 획득하는 카메라; 및 상기 입력 영상을 세그먼트들로 분할하고, 상기 세그먼트들에 대하여 산출된 신뢰도에 기초하여 상기 세그먼트들 중 하나 이상의 세그먼트를 선택하고, 상기 선택된 세그먼트를 이용하여 상기 입력 영상에 대한 카메라의 포즈 정보를 추정하며, 상기 카메라의 포즈 정보를 이용하여 상기 입력 영상의 깊이 맵을 산출하는 프로세서를 포함한다.
상기 프로세서는 상기 입력 영상에 포함된 객체를 의미 단위로 구분하여 상기 입력 영상을 의미 세그먼트들로 분할하거나, 또는 상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 깊이 세그먼트들로 분할하거나, 또는 상기 입력 영상을 상기 의미 세그먼트들 및 상기 깊이 세그먼트들로 분할할 수 있다.
상기 프로세서는 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출하거나, 또는 상기 깊이 세그먼트들에 대한 제2 신뢰도를 산출하거나, 또는 상기 제1 신뢰도 및 상기 제2 신뢰도를 산출할 수 있다.
상기 프로세서는 상기 입력 영상에 포함된 객체가 이동 객체인지 여부에 기초하여 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출할 수 있다.
상기 프로세서는 상기 제1 신뢰도 및 상기 제2 신뢰도를 융합하고, 상기 융합한 신뢰도를 상기 세그먼트들에 대한 신뢰도로 결정할 수 있다.
상기 프로세서는 상기 융합된 신뢰도에 기초하여 상기 선택된 세그먼트로부터 픽셀들을 선택하고, 상기 선택된 픽셀들로부터의 상기 카메라의 포즈 정보를 추정할 수 있다.
상기 프로세서는 상기 융합된 신뢰도에 비례하도록 상기 선택된 세그먼트로부터 픽셀들을 선택할 수 있다.
상기 입력 영상은 프레임들을 포함하고, 상기 프로세서는 상기 프레임들 중 키 프레임마다에 대하여 상기 세그먼트들의 신뢰도를 산출할 수 있다.
상기 프로세서는 상기 선택된 세그먼트에 대하여 비용 함수를 적용하여 상기 카메라의 포즈 정보를 추정할 수 있다.
도 1은 일 실시예에 따른 깊이 맵을 산출하는 방법을 나타낸 흐름도.
도 2는 일 실시예에 따라 신뢰도를 산출하는 방법을 나타낸 흐름도.
도 3은 일 실시예에 따라 하나 이상의 세그먼트를 선택하는 방법을 설명하기 위한 도면.
도 4는 일 실시예에 따라 카메라의 포즈 정보를 추정하는 방법을 나타낸 흐름도.
도 5는 일 실시예에 따른 깊이 맵을 산출하는 장치의 동작을 설명하기 위한 도면이다.
도 6는 일 실시예에 따른 깊이 맵을 산출하는 장치의 블록도.
도 2는 일 실시예에 따라 신뢰도를 산출하는 방법을 나타낸 흐름도.
도 3은 일 실시예에 따라 하나 이상의 세그먼트를 선택하는 방법을 설명하기 위한 도면.
도 4는 일 실시예에 따라 카메라의 포즈 정보를 추정하는 방법을 나타낸 흐름도.
도 5는 일 실시예에 따른 깊이 맵을 산출하는 장치의 동작을 설명하기 위한 도면이다.
도 6는 일 실시예에 따른 깊이 맵을 산출하는 장치의 블록도.
본 명세서에 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것이다. 개시된 실시예들은 다양한 다른 형태로 변경되어 실시될 수 있으며 본 명세서의 범위는 개시된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
하기에서 설명될 실시예들은 다양한 증강 현실(Augmented Reality; AR) 응용 분야들에서 입력 영상의 3차원 장면을 재구성하기 위한 깊이 값을 추정하는 데에 이용될 수 있다. 실시예들은 깊이 카메라 등의 부가적인 하드웨어 구성이 없이도 하나의 카메라에서 획득되는 영상들에 의해 빠른 시간 내에 조밀한 깊이 맵을 생성할 수 있다. 실시예들은 예를 들어, 증강 현실 헤드-업 디스플레이(Head Up Display; HUD), 증강 현실/가상 현실 글래스(Virtual Reality(VR) Glass), 자율 주행 자동차, 지능형 자동차, 스마트 폰, 및 모바일 기기 등에 실시간으로 증강 현실 어플리케이션들을 구현하는 데에 적용될 수 있다. 실시예들은 예를 들어, 헤드-업 디스플레이에서의 주행 영상과 가상 객체 간의 정확한 정합을 위한 카메라 포즈 트래킹(camera pose tracking) 및 깊이 재구성(depth reconstruction)에 적용될 수 있다. 실시예들은 모바일 플랫폼(mobile platform)에서의 스마트 폰, 증강 현실/가상 현실 기기의 정합 및 3차원 영상 재구성에 적용될 수 있다. 또는 실시예들은 드론(drone), 로봇(robot), 자율 주행 자동차에서 비전(vision) 기술을 이용한 자세 제어에 적용될 수 있다. 실시예들은 칩(chip) 형태로 구현되어 자동차의 차량용 인포테인먼트(In-Vehicle Infotainment; IVI), 첨단 운전자 지원 시스템(Advanced Driver Assistance Systems; ADAS), 스마트 폰, 증강 현실/가상 현실 기기 등에 탑재될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 깊이 맵을 산출하는 방법을 나타낸 흐름도이다. 도 1을 참조하면, 일 실시예에 따른 깊이 맵을 산출하는 장치(이하, '산출 장치')는 입력 영상을 세그먼트들(segments)로 분할한다(110). 입력 영상은 산출 장치에 입력되는 영상으로, 예를 들어, 실시간 영상(live image) 또는 동영상(moving picture)일 수 있다. 또는 입력 영상은 모노 영상일 수도 있고, 스테레오 영상일 수도 있다. 입력 영상은 복수의 프레임들을 포함할 수 있다. 입력 영상은 산출 장치에 포함된 카메라(예를 들어, 도 6에 도시된 카메라(610))를 통해 캡쳐된 것일 수도 있고, 산출 장치의 외부로부터 획득된 것일 수도 있다.
세그먼트들은 입력 영상을 일정 기준에 따라 구분 또는 분할한 일부 영역들(areas)에 해당할 수 있다.
산출 장치는 입력 영상에 포함된 객체를 예를 들어, 도로, 차량, 인도, 사람, 동물, 하늘, 건물 등과 같이 20개 클래스들(classes)의 의미(semantic) 단위로 구분하여 의미 세그먼트들로 분할할 수 있다. 의미 단위의 클래스들은 예를 들어, 도로, 하늘, 건물 등과 같은 고정 객체 이외에 움직이는 사람, 움직이는 동물, 이동 중인 차량 등과 같은 이동 객체 또한 포함할 수 있다. 산출 장치는 입력 영상으로부터 의미 단위로 물체를 분할하고, 분할된 영역이 어떤 의미를 갖는지를 픽셀(Pixel) 단위로 파악하여 각 클래스(class)마다 레이블링(labeling) 함으로써 의미 세그먼트들을 포함하는 세그먼테이션 영상을 생성할 수 있다.
산출 장치는 예를 들어, 복수 개의 클래스들을 인식하도록 미리 학습된 컨볼루션 신경망(Convolution Neural Network; CNN), 심층 신경망(Deep Neural Network; DNN), 서포트 벡터 머신(Support Vector Machine) 등을 이용하여 입력 영상을 의미 세그먼트들을 분할할 수 있다. 컨볼루션 신경망은 다양한 객체들이 미리 학습된 것으로서, 영역 기반(Region-based) 컨볼루션 신경망일 수 있다. 산출 장치는 이 밖에도 다양한 기계 학습(Machine Learning) 방법들을 이용하여 입력 영상에 포함된 객체들을 의미 세그먼트들로 분할할 수 있다.
또한, 산출 장치는 입력 영상으로부터 유추한 깊이 맵(depth map) 또는 노말 맵(normal map) 등에 의해 획득한 깊이 값에 기초하여 입력 영상을 깊이 세그먼트들로 분할할 수 있다. 의미 세그먼트들과 깊이 세그먼트들의 영역은 서로 일치할 수도 있고, 서로 상이할 수도 있다.
산출 장치는 단계(110)에서 분할한 세그먼트들의 신뢰도를 산출한다(120). 여기서의 신뢰도는 예를 들어, 세그먼트들의 깊이 정보(예를 들어, 깊이 값) 및 위치 정보(예를 들어, 위치 좌표)에 대한 신뢰도에 해당할 수 있다. 산출 장치는 예를 들어, 의미 세그먼트들에 대한 제1 신뢰도를 산출할 수 있다. 또한, 산출 장치는 깊이 세그먼트들에 대한 제2 신뢰도를 산출할 수 있다.
산출 장치는 프레임들 중 키 프레임(key frame)마다에 대하여 세그먼트들의 신뢰도를 산출할 수 있다. 키 프레임은 타임 라인(time line)에서 진행되는 영상의 모든 정보를 가지고 있는 프레임으로서, 예를 들어, 단일 동작의 시각 프레임과 끝 프레임 등과 같이 가장 중심이 되는 프레임에 해당할 수 있다.
산출 장치는 예를 들어, 이동 객체를 포함하는 세그먼트의 신뢰도를 낮게 설정함으로써 해당 세그먼트가 이후의 카메라의 포즈 정보를 추정하는 과정 및 깊이 맵을 산출하는 과정에서 배제되도록 할 수 있다. 산출 장치가 세그먼트들에 대한 신뢰도를 산출하는 방법은 아래의 도 2를 참조하여 구체적으로 설명한다.
산출 장치는 단계(120)에서 산출한 신뢰도에 기초하여 세그먼트들 중 하나 이상의 세그먼트를 선택한다(130). 산출 장치는 신뢰도에 기초하여 선택된 세그먼트로부터 후술하는 카메라의 포즈 정보를 추정하는 과정 및 깊이 맵을 산출하는 과정에서 이용되는 특징점(feature point)이 될 픽셀을 선택할 수 있다. 특징점은 프레임 내 특징이 되는 점으로, 해당하는 프레임 내 2차원 위치에 대응하는 정보(u,v)를 포함할 수 있다. 각각의 프레임은 복수의 특징점들을 포함할 수 있으며, 프레임으로부터 특징점들을 선택하는 동작에는 일반적인 특징점 검출 알고리즘이 적용될 수 있으므로 보다 상세한 설명은 생략한다. 실시예에 따르면, 특징점들 중 적어도 일부는 추가적으로 깊이 값에 대응하는 정보를 더 포함할 수 있다. 예를 들어, 입력 영상을 촬영한 카메라의 포즈 정보를 추정하는 과정에서 특징점들 중 적어도 일부의 3차원 위치에 대응하는 정보가 획득될 수 있다. 3차원 위치는 깊이 값을 포함한다.
예를 들어, 물체 사이의 경계 부분이 모호하거나 변화가 없어 잘 구분이 되지 않는 건물의 옆면 등과 같은 로우 그래디언트(low gradient) 영역 등에서는 오류를 정상으로 잘못 판단하여 선택하는 부정 오류 선택(False Negative Selection), 영상 내에 이동 객체(moving object), 또는 도로 노면에 있는 유리 조각 등에 의해 해당 부분의 그래디언트(gradient)가 일부 높게 나타나는 부분에 의한 고주파 노이즈(high frequency noise) 등에 의해 트래킹 손실(tracking)이 발생할 수 있다.
일 실시예에서는 신뢰도에 의해 이와 같은 트래킹 손실을 유발할 수 있는 세그먼트들, 다시 말해 신뢰도가 낮은 세그먼트(들)를 배제하고, 신뢰도가 높은 세그먼트(들)를 선택할 수 있다. 산출 장치는 신뢰도가 높은 세그먼트(들)로부터 추출된 정보를 이용하여 카메라의 포즈 정보를 추정하고, 입력 영상의 깊이 맵을 산출함으로써 산출 속도 및 정확도를 향상시킬 수 있다. 산출 장치가 하나 이상의 세그먼트를 선택하는 방법은 아래의 도 3을 참조하며 구체적으로 설명한다.
산출 장치는 선택된 세그먼트를 이용하여 입력 영상에 대한 카메라의 포즈 정보를 추정한다(140). 카메라의 포즈 정보는 예를 들어, 카메라의 회전(rotation) 정보(R) 및 이동(translation) 정보(T)를 포함할 수 있다. 또는 카메라의 포즈 정보는 예를 들어, 카메라의 위치에 해당하는 X(수평), Y(수직), Z(깊이) 및/또는 카메라의 자세(orientation)에 해당하는 피치(pitch), 요(yaw), 및 롤(roll)을 포함하는 6 자유도(6 DoF) 카메라 포즈일 수 있다.
산출 장치는 예를 들어, 연속적인 일련의 영상들(프레임들)에서의 픽셀들 간의 상관 관계를 나타내는 호모그래피(Homography)를 이용하여 입력 영상을 촬영한 카메라의 위치 및 촬영한 객체의 위치(깊이)를 포함하는 포즈 정보를 추정할 수 있다. 산출 장치는 예를 들어, 특징 기반(Feature based)의 SLAM(Simultaneous Localization and Mapping) 기법, 다이렉트(Direct) SLAM 기법, EKF(Extended Kalman Filter) SLAM 기법, 패스트(Fast) SLAM 기법, 및 LSD(Large-Scale Direct Monocular) SLAM 기법 등 다양한 SLAM 기법들을 이용하여 카메라의 포즈 정보를 획득할 수 있다. 산출 장치가 카메라의 포즈 정보를 추정하는 방법은 아래의 도 4를 참조하여 구체적으로 설명한다.
산출 장치는 카메라의 포즈 정보를 이용하여 입력 영상의 깊이 맵을 산출한다(150). 산출 장치는 카메라의 포즈 정보를 추정하는 과정에서 ??득된 카메라의 위치 좌표(u.v), 카메라의 회전(rotation) 정보(R) 및 이동(translation) 정보(T) 등을 이용하여 깊이 값을 계산함으로써 깊이 맵을 산출할 수 있다.
도 2는 일 실시예에 따라 신뢰도를 산출하는 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 산출 장치는 입력 영상에 포함된 객체가 이동 객체인지 여부에 기초하여 의미 세그먼트들에 대한 제1 신뢰도를 산출할 수 있다.
산출 장치는 입력 영상에 포함된 객체가 이동 객체인지를 판단할 수 있다(210). 단계(210)에서 객체가 이동 객체가 아니라고 판단되면(다시 말해, 객체가 고정 객체라고 판단되면), 산출 장치는 고정 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제2 값으로 결정할 수 있다(220). 제2 값을 예를 들어, '1' 일 수 있다.
단계(210)에서 객체가 이동 객체라고 판단되면, 산출 장치는 이동 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제1 값으로 결정할 수 있다(230). 제1 값을 예를 들어, '0'일 수 있다. 일 실시예에 따르면, 산출 장치는 이동 객체와 같이 트래킹 손실을 유발하거나, 노이즈가 있는 신뢰도가 낮은 세그먼트(들)에 대한 신뢰도 값을 낮게 설정함으로써 카메라의 포즈 정보를 추정하거나, 또는 깊이 맵을 산출하는 데에 해당 세그먼트의 사용을 배제시킬 수 있다.
산출 장치는 깊이 세그먼트들에 대한 제2 신뢰도를 산출할 수 있다(240). 산출 장치는 예를 들어, 아래의 수학식 1을 이용하여 깊이 세그먼트들에 대한 제2 신뢰도(RSi)를 산출할 수 있다.
수학식 1에서, 는 현재(current)의 키 프레임 i를 나타내고, 는 키 프레임 i에 가장 인접한 다음(next) 키 프레임 j를 나타낸다. 는 깊이 맵을 나타내고, 는 에서 로의 변환 행렬(transformation matrix)을 나타낸다. 는 세그먼트 i에 속한 이미지 영역을 나타내고, 는 현재의 키 프레임에서의 이미지 영역을 나타낸다.
로 나타낼 수 있다. 는 고유 행렬(intrinsic matrix)를 나타내고,는 픽셀 좌표(pixel coordinate)를 나타내고, 는 의 동종 표현(homogeneous representation)을 나타낸다. 는 현재의 키 프레임 i에서의 픽셀 좌표 u의 깊이 맵을 나타낸다. 이다.
산출 장치는 제1 신뢰도 및 제2 신뢰도를 융합(fusion)할 수 있다(250). 산출 장치는 예를 들어, 아래의 수학식 2를 이용하여 의미 세그먼트에 대한 제1 신뢰도 및 깊이 세그먼트에 대한 제2 신뢰도를 융합할 수 있다.
산출 장치는 융합한 신뢰도를 세그먼트들에 대한 신뢰도로 결정할 수 있다(260).
도 3은 일 실시예에 따라 하나 이상의 세그먼트를 선택하는 방법을 설명하기 위한 도면이다. 도 3의 (a)를 참조하면, 의미 세그먼트들(310, 320, 330, 340)로 분할된 입력 영상이 도시된다. 전술한 바와 같이, 산출 장치는 입력 영상에 포함된 객체를 의미 단위로 구분하여 입력 영상을 의미 세그먼트들로 분할할 수 있다. 이하에서는 설명의 편의를 위해 의미 세그먼트들에서 하나 이상의 세그먼트를 선택하는 방법에 대하여 설명하지만, 깊이 세그먼트들에 대하여도 마찬가지의 방법이 적용될 수 있다.
예를 들어, 입력 영상에 포함된 객체들의 의미 별로, 도로는 세그먼트(310)로, 건물은 세그먼트(320)로, 하늘은 세그먼트(330)로, 자동차는 세그먼트(340)로 분할될 수 있다. 분할된 세그먼트들(310, 320, 330, 340) 중 예를 들어, 도 3의 (b)에 도시된 것과 같이 하늘에 해당하는 세그먼트(330)에서 비행 중인 비행체에 의해 햇빛이 반사되어 갑자기 번쩍거리는 고주파 노이즈(high frequency noise)가 발생하고, 자동차로 구분된 세그먼트(340)의 자동차가 이동 객체라고 하자. 산출 장치는 고주파 노이즈가 발생한 세그먼트(330)의 신뢰도를 노이즈가 없는 세그먼트들에 비해 낮게 설정될 수 있다. 또한, 이동 객체에 해당하는 세그먼트(340)의 신뢰도는 예를 들어, '0'으로 설정될 수 있다.
산출 장치는 트래킹 손실을 유발할 수 있는 세그먼트 또는 신뢰도가 낮은 세그먼트를 배제하고, 신뢰도가 높은 세그먼트(들)를 선택할 수 있다. 산출 장치는 예를 들어, 도 3의 (c)에 도시된 것과 같이 도로로 구분된 세그먼트(310) 및 빌딩으로 구분된 세그먼트(320)를 선택하고, 선택된 세그먼트들(310, 320)로부터 추출된 정보(예를 들어, 픽셀(들)(350)에 대한 정보)를 이용하여 카메라의 포즈 정보 추정 및 깊이 맵 산출을 수행할 수 있다.
도 4는 일 실시예에 따라 카메라의 포즈 정보를 추정하는 방법을 나타낸 흐름도이다. 도 4를 참조하면, 일 실시예에 따른 산출 장치는 신뢰도에 기초하여 선택된 세그먼트로부터 픽셀들을 선택할 수 있다(410). 이때, 신뢰도는 예를 들어, 도 2의 단계(250)에서 융합된 신뢰도일 수도 있고, 제1 신뢰도 또는 제2 신뢰도일 수도 있다. 산출 장치는 신뢰도에 비례하도록, 선택된 세그먼트로부터 픽셀들을 선택할 수 있다. 산출 장치는 예를 들어, 신뢰도가 높은 가장 세그먼트로부터 픽셀들을 선택할 수도 있다. 또는 산출 장치는 신뢰도가 높은 순서대로 세그먼트들로부터 골고루 픽셀들을 선택할 수도 있다. 산출 장치는 예를 들어, 신뢰도가 가장 높은 세그먼트들로부터는 많은 개수의 픽셀들을 선택하고, 점차 신뢰도가 낮아질수록 작은 개수의 픽셀들을 선택할 수도 있다.
산출 장치는 선택된 픽셀들로부터의 카메라의 포즈 정보를 추정할 수 있다(420). 산출 장치는 깊이 값을 포함하는 픽셀들에 해당하는 3차원 점으로부터의 카메라의 포즈 정보를 추정할 수 있다. 또는 산출 장치는 예를 들어, 선택된 세그먼트에 대하여 아래의 수학식 3과 같은 비용 함수(cost function)()를 적용하여 카메라의 포즈 정보를 추정할 수 있다.
수학식 3에서, 는 기준 프레임(reference frame)을 나타내고, 는 타겟 프레임(target frame)을 나타낸다. 는 기준 프레임 에서의 포인트(point), 다시 말해 픽셀을 나타내고, 와 같이 나타낼 수 있다. 는 SSD(sum of squared differences)에 포함된 픽셀들의 집합을 나타낸다. 는 기준 프레임 의 노출 시간(exposure time)을 나타내고, 는 타겟 프레임 의 노출 시간을 나타낸다. 는 손실 함수(loss function)인 후버 놈(Huber norm)을 나타낸다. 는 융합된 신뢰도에 기초한 가중치(weight)를 나타내고, 는 아핀 밝기 전달 함수(affine brightness transfer function)를 나타낸다. 는 기준 프레임의 밝기(brightness)를 나타내고, 는 타겟 프레임의 밝기를 나타낸다. 는 기준 프레임에 대한 밝기 전달 함수(brightness transfer function)의 파라미터(parameter)를 나타내고, 는 타겟 프레임에 대한 밝기 전달 함수의 파라미터를 나타낸다.
전체 측광 오차(full photometric error)는 아래의 수학식 5와 같이 나타낼 수 있다.
전술한 수학식 3 내지 수학식 5는 프레임들 간의 밝기를 맞춰주기 위한 것으로서, 프레임들 간의 밝기(brightness)가 깊이 값에 영향을 줄 수 있으므로 일 실시예에서는 전술한 수학식들을 이용하여 밝기 차이를 맞춰 줌으로써 보다 정확한 깊이 맵이 산출되도록 할 수 있다.
도 5는 일 실시예에 따른 깊이 맵을 산출하는 장치의 동작에 따른 구성을 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따른 산출 장치(500)는 카메라(510), 분할(Segmentation)부(520), 선택부(Selector)(530), 트래킹(Tracking)부(540), 및 맵핑(Mapping)부(550)를 포함할 수 있다. 분할(Segmentation)부(520), 선택부(Selector)(530), 트래킹(Tracking)부(540), 및 맵핑(Mapping)부(550)는 예를 들어, 도 6에 도시된 프로세서(620)에 의해 구현될 수 있다.
카메라(510)는 일련의 입력 영상을 촬영 또는 캡쳐할 수 있다.
분할부(520)는 입력 영상을 세그먼트들로 분할할 수 있다. 분할부(520)는 입력 영상을 깊이 값에 의해 깊이 세그먼트들로 분할하는 깊이 분할부(523) 및 입력 영상을 의미 단위의 의미 세그먼트들로 분할하는 의미 분할부(526)를 포함할 수 있다.
선택부(530)는 분할부(520)에 의해 분할된 세그먼트들의 신뢰도에 기초하여 세그먼트들 중 카메라 포즈를 트래킹하고, 깊이 맵을 산출하는 데에 이용될 하나 이상의 세그먼트를 선택할 수 있다. 선택부(530)는 예를 들어, 세그먼트들의 신뢰도에 비례하여 세그먼트를 선택할 수 있다.
선택부(530)는 깊이 신뢰도 평가부(532), 의미 신뢰도 평가부(534), 신뢰도 융합부(536), 및 픽셀 선택부(538)를 포함할 수 있다.
깊이 신뢰도 평가부(532)는 깊이 세그먼트들의 신뢰도를 평가(또는 산출)할 수 있다. 의미 신뢰도 평가부(534)는 의미 세그먼트들의 신뢰도를 평가(또는 산출)할 수 있다.
신뢰도 융합부(536)는 깊이 세그먼트들의 신뢰도 및 의미 세그먼트들의 신뢰도를 융합할 수 있다.
픽셀 선택부(538)는 신뢰도 융합부(536)에서 융합된 신뢰도를 이용하여 세그먼트를 선택하고, 선택된 세그먼트로부터 픽셀들을 선택할 수 있다.
트래킹부(540)는 카메라의 위치 및 자세를 포함하는 카메라의 6 자유도 포즈 정보를 산출할 수 있다. 트래킹부(540)는 예를 들어, 새로운 입력 영상들을 지속적으로 트래킹하고, 이전 프레임에서의 카메라의 포즈 정보를 기초로 현재 프레임에서의 카메라의 포즈 정보를 산출할 수 있다. 이때, 트래킹부(540)는 픽셀 선택부(538)에서 이전 프레임의 선택된 세그먼트의 픽셀들로부터의 카메라의 포즈 정보를 추정할 수 있다. 트래킹부(540)는 선택된 세그먼트를 대상으로 전술한 비용 함수를 풀어 카메라의 포즈 정보(예를 들어, 카메라의 회전(rotation) 정보 및 이동(translation) 정보)를 추정할 수 있다.
맵핑부(550)는 촬영한 객체의 깊이를 계산하여 깊이 맵을 산출할 수 있다. 맵핑부(550)는 픽셀 선택부(538)에서 선택된 세그먼트의 픽셀들로부터 추정된 카메라의 포즈 정보를 이용하여 입력 영상의 깊이 맵을 산출할 수 있다. 맵핑부(550)는 예를 들어, 카메라의 위치 좌표(u.v) 및 카메라의 회전(rotation) 정보(R) 및 이동(translation) 정보(T)를 이용하여 계산된 깊이 값에 의해 깊이 맵을 산출할 수 있다.
맵핑부(550)는 트래킹된 프레임들을 이용하여 새로운 키 프레임을 생성하거나 또는 현재의 키 프레임을 재정의(refine)할 수 있다. 예를 들어, 입력 영상을 촬영한 카메라가 너무 멀리 이동하여 이전 프레임들에서 촬영된 객체들을 포함하지 못하는 경우, 산출 장치(500)는 가장 최근에 트래킹된 프레임들로부터 새로운 키 프레임을 생성할 수 있다. 만약, 새로운 키 프레임이 생성된 경우, 해당 키 프레임의 깊이 맵은 포인트를 이전 키 프레임에서 새로운 키 프레임으로 투영(projecting)함으로써 초기화될 수 있다. 또한, 트래킹된 프레임들 중 새로운 키 프레임이 되지 못한 프레임은 현재의 키 프레임을 재정의하는 데에 이용될 수 있다.
새로이 생성된 키 프레임 또는 재정의된 키 프레임에는 맵핑부(550)에 의해 새로이 산출된 깊이 맵이 추가될 수 있다.
도 6는 일 실시예에 따른 깊이 맵을 산출하는 장치의 블록도이다. 도 6을 참조하면, 일 실시예에 따른 깊이 맵을 산출하는 장치(이하, '산출 장치')(600)는 카메라(610), 프로세서(620), 및 메모리(630)를 포함한다. 산출 장치(600)는 통신 인터페이스(640) 및/또는 디스플레이 장치(650)를 더 포함할 수 있다. 카메라(610), 프로세서(620), 메모리(630), 통신 인터페이스(640) 및 디스플레이 장치(650)는 통신 버스(605)를 통해 서로 통신할 수 있다.
산출 장치(600)는 예를 들어, 증강 현실 헤드-업 디스플레이, 증강 현실/가상 현실 글래스, 자율 주행 자동차, 지능형 자동차, 스마트 폰, 및 모바일 기기 등과 같이 실시간으로 다양한 증강 현실 어플리케이션들을 구현하는 전자 장치일 수 있다.
카메라(610)는 입력 영상을 획득한다. 카메라(610)는 예를 들어, RGB 카메라 또는 RGB-D(Depth) 카메라일 수 있다. 입력 영상은 산출 장치(600)에 입력되는 영상으로, 예를 들어, 실시간 영상 또는 동영상일 수 있다. 또는 입력 영상은 모노 영상일 수도 있고, 스테레오 영상일 수도 있다. 입력 영상은 복수의 프레임들을 포함할 수 있다. 입력 영상은 카메라(610)를 통해 촬영 또는 캡쳐된 것일 수도 있고, 산출 장치(600)의 외부로부터 획득된 것일 수도 있다.
프로세서(620)는 입력 영상을 세그먼트들로 분할하고, 세그먼트들에 대하여 산출된 신뢰도에 기초하여 세그먼트들 중 하나 이상의 세그먼트를 선택한다. 프로세서(620)는 선택된 세그먼트를 이용하여 입력 영상에 대한 카메라의 포즈 정보를 추정한다. 프로세서(620)는 카메라의 포즈 정보를 이용하여 입력 영상의 깊이 맵을 산출한다.
프로세서(620)는 입력 영상에 포함된 객체를 의미 단위로 구분하여 의미 세그먼트들로 분할할 수 있다. 프로세서(620)는 입력 영상의 깊이 값에 기초하여 입력 영상을 깊이 세그먼트들로 분할할 수 있다. 또는 프로세서(620)는 입력 영상을 의미 세그먼트들 및 깊이 세그먼트들로 분할할 수 있다.
프로세서(620)는 의미 세그먼트들에 대한 제1 신뢰도를 산출하거나, 또는 깊이 세그먼트들에 대한 제2 신뢰도를 산출할 수 있다. 또는 프로세서(620)는 의미 세그먼트들에 대한 제1 신뢰도 및 깊이 세그먼트들에 대한 제2 신뢰도를 산출할 수 있다. 프로세서(620)는 예를 들어, 입력 영상에 포함된 객체가 이동 객체인지 여부에 기초하여 의미 세그먼트들에 대한 제1 신뢰도를 산출할 수 있다.
프로세서(620)는 제1 신뢰도 및 제2 신뢰도를 융합하고, 융합한 신뢰도를 세그먼트들에 대한 신뢰도로 결정할 수 있다. 프로세서(620)는 프레임들 중 키 프레임마다에 대하여 세그먼트들의 신뢰도를 산출할 수 있다.
프로세서(620)는 융합된 신뢰도에 기초하여 선택된 세그먼트로부터 픽셀들을 선택하고, 선택된 픽셀들로부터의 카메라의 포즈 정보를 추정할 수 있다. 프로세서(620)는 융합된 신뢰도에 비례하도록 선택된 세그먼트로부터 픽셀들을 선택할 수 있다.
프로세서(620)는 예를 들어, 선택된 세그먼트에 대하여 비용 함수를 적용하여 카메라의 포즈 정보를 추정할 수 있다.
이 밖에도, 프로세서(620)는 도 1 내지 도 5를 통해 전술한 방법 또는 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(620)는 프로그램을 실행하고, 산출 장치(600)를 제어할 수 있다. 프로세서(620)에 의하여 실행되는 프로그램 코드는 메모리(630)에 저장될 수 있다.
메모리(630)는 입력 영상 및/또는 복수의 프레임들을 저장할 수 있다. 메모리(630)는 프로세서(620)가 추정한 입력 영상에 대한 카메라의 포즈 정보, 프로세서(620)가 산출한 입력 영상의 깊이 맵, 및/또는 프로세서(620)가 깊이 맵을 이용하여 재구성한 3차원 영상을 저장할 수 있다.
또한, 메모리(630)는 전술한 프로세서(620)에서의 처리 과정에서 생성되는 다양한 정보들을 저장할 수 있다. 이 밖에도, 메모리(630)는 각종 데이터와 프로그램 등을 저장할 수 있다. 메모리(630)는 휘발성 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(630)는 하드 디스크 등과 같은 대용량 저장 매체를 구비하여 각종 데이터를 저장할 수 있다.
실시예에 따라서, 산출 장치(600)는 통신 인터페이스(640)를 통해 산출 장치(600)의 외부에서 촬영된 입력 영상을 수신할 수 있다. 이 경우, 통신 인터페이스(640)는 입력 영상 이외에도 입력 영상을 촬영한 촬영 장치의 회전 정보 및 이동 정보 등과 같은 포즈 정보, 촬영 장치의 위치 정보 및/또는 촬영 장치의 캘리브레이션 정보 등을 함께 수신할 수 있다.
디스플레이 장치(650)는 프로세서(620)가 산출한 깊이 맵에 의해 재구성한 3차원 영상을 디스플레이할 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
Claims (20)
- 입력 영상을 세그먼트들(segments)로 분할하는 단계;
상기 세그먼트들의 신뢰도를 산출하는 단계;
상기 신뢰도에 기초하여 상기 세그먼트들 중 하나 이상의 세그먼트를 선택하는 단계;
상기 선택된 세그먼트를 이용하여 상기 입력 영상에 대한 카메라의 포즈 정보를 추정하는 단계; 및
상기 카메라의 포즈 정보를 이용하여 상기 입력 영상의 깊이 맵을 산출하는 단계
를 포함하고,
상기 세그먼트들의 신뢰도를 산출하는 단계는
상기 입력 영상에 포함된 객체를 의미(semantic) 단위로 구분하여 분할한 의미 세그먼트들에 대한 제1 신뢰도를 산출하는 단계;
상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 분할한 깊이 세그먼트들에 대한 제2 신뢰도를 산출하는 단계; 및
상기 제1 신뢰도 및 상기 제2 신뢰도를 융합(fusion)한 신뢰도를 상기 세그먼트들에 대한 신뢰도로 결정하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 제1항에 있어서,
상기 분할하는 단계는
상기 입력 영상에 포함된 객체를 의미(semantic) 단위로 구분하여 상기 입력 영상을 의미 세그먼트들로 분할하는 단계; 및
상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 깊이 세그먼트들로 분할하는 단계
중 어느 하나 또는 이들의 조합을 포함하는, 깊이 맵을 산출하는 방법. - 삭제
- 제1항에 있어서,
상기 제1 신뢰도를 산출하는 단계는
상기 입력 영상에 포함된 객체가 이동 객체(moving object)인지 여부에 기초하여 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 제4항에 있어서,
상기 제1 신뢰도를 산출하는 단계는
상기 객체가 이동 객체인 경우, 상기 이동 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제1 값으로 결정하는 단계; 및
상기 객체가 고정 객체인 경우, 상기 고정 객체에 대응하는 의미 세그먼트에 대한 제1 신뢰도를 제2 값으로 결정하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 삭제
- 제1항에 있어서,
상기 융합된 신뢰도에 기초하여 상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계
를 더 포함하고,
상기 카메라의 포즈 정보를 추정하는 단계는
상기 선택된 픽셀들로부터의 상기 카메라의 포즈 정보를 추정하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 제7항에 있어서,
상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계는
상기 융합된 신뢰도에 비례하도록 상기 선택된 세그먼트로부터 픽셀들을 선택하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 제1항에 있어서,
상기 입력 영상은 프레임들을 포함하고,
상기 신뢰도를 산출하는 단계는
상기 프레임들 중 키 프레임(key frame)마다에 대하여 상기 세그먼트들의 신뢰도를 산출하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 제1항에 있어서,
상기 카메라의 포즈 정보를 추정하는 단계는
상기 선택된 세그먼트에 대하여 비용 함수(cost function)를 적용하여 상기 카메라의 포즈 정보를 추정하는 단계
를 포함하는, 깊이 맵을 산출하는 방법. - 하드웨어와 결합되어 제1항, 제2항, 제4항, 제5항, 제7항 내지 제10항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터로 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
- 입력 영상을 획득하는 카메라; 및
상기 입력 영상을 세그먼트들로 분할하고, 상기 세그먼트들에 대하여 산출된 신뢰도에 기초하여 상기 세그먼트들 중 하나 이상의 세그먼트를 선택하고, 상기 선택된 세그먼트를 이용하여 상기 입력 영상에 대한 카메라의 포즈 정보를 추정하며, 상기 카메라의 포즈 정보를 이용하여 상기 입력 영상의 깊이 맵을 산출하는 프로세서
를 포함하고,
상기 프로세서는
상기 입력 영상에 포함된 객체를 의미(semantic) 단위로 구분하여 분할한 의미 세그먼트들에 대한 제1 신뢰도를 산출하고,
상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 분할한 깊이 세그먼트들에 대한 제2 신뢰도를 산출하며,
상기 제1 신뢰도 및 상기 제2 신뢰도를 융합한 신뢰도를 상기 세그먼트들에 대한 신뢰도로 결정하는, 깊이 맵을 산출하는 장치. - 제12항에 있어서,
상기 프로세서는
상기 입력 영상에 포함된 객체를 의미 단위로 구분하여 상기 입력 영상을 의미 세그먼트들로 분할하거나, 또는 상기 입력 영상의 깊이 값에 기초하여 상기 입력 영상을 깊이 세그먼트들로 분할하거나, 또는 상기 입력 영상을 상기 의미 세그먼트들 및 상기 깊이 세그먼트들로 분할하는, 깊이 맵을 산출하는 장치. - 삭제
- 제12항에 있어서,
상기 프로세서는
상기 입력 영상에 포함된 객체가 이동 객체인지 여부에 기초하여 상기 의미 세그먼트들에 대한 제1 신뢰도를 산출하는, 깊이 맵을 산출하는 장치. - 삭제
- 제12항에 있어서,
상기 프로세서는
상기 융합된 신뢰도에 기초하여 상기 선택된 세그먼트로부터 픽셀들을 선택하고, 상기 선택된 픽셀들로부터의 상기 카메라의 포즈 정보를 추정하는, 깊이 맵을 산출하는 장치. - 제17항에 있어서,
상기 프로세서는
상기 융합된 신뢰도에 비례하도록 상기 선택된 세그먼트로부터 픽셀들을 선택하는, 깊이 맵을 산출하는 장치. - 제12항에 있어서,
상기 입력 영상은 프레임들을 포함하고,
상기 프로세서는
상기 프레임들 중 키 프레임마다에 대하여 상기 세그먼트들의 신뢰도를 산출하는, 깊이 맵을 산출하는 장치. - 제12항에 있어서,
상기 프로세서는
상기 선택된 세그먼트에 대하여 비용 함수를 적용하여 상기 카메라의 포즈 정보를 추정하는, 깊이 맵을 산출하는 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170117962A KR102472767B1 (ko) | 2017-09-14 | 2017-09-14 | 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 |
US15/877,483 US11049270B2 (en) | 2017-09-14 | 2018-01-23 | Method and apparatus for calculating depth map based on reliability |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170117962A KR102472767B1 (ko) | 2017-09-14 | 2017-09-14 | 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190030474A KR20190030474A (ko) | 2019-03-22 |
KR102472767B1 true KR102472767B1 (ko) | 2022-12-01 |
Family
ID=65632077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170117962A KR102472767B1 (ko) | 2017-09-14 | 2017-09-14 | 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11049270B2 (ko) |
KR (1) | KR102472767B1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10726264B2 (en) * | 2018-06-25 | 2020-07-28 | Microsoft Technology Licensing, Llc | Object-based localization |
KR102174658B1 (ko) * | 2019-03-27 | 2020-11-05 | 연세대학교 산학협력단 | 비디오 행동 인식 및 행동 구간 탐지 장치 및 방법 |
CN112085842B (zh) * | 2019-06-14 | 2024-04-09 | 北京京东乾石科技有限公司 | 深度值确定方法及装置、电子设备和存储介质 |
CN110275968A (zh) * | 2019-06-26 | 2019-09-24 | 北京百度网讯科技有限公司 | 图像数据处理方法和装置 |
WO2020258286A1 (zh) * | 2019-06-28 | 2020-12-30 | 深圳市大疆创新科技有限公司 | 图像处理方法、装置、拍摄装置和可移动平台 |
US11363461B2 (en) | 2019-08-23 | 2022-06-14 | Electronics And Telecommunications Research Institute | Method for managing security key of mobile communication system, and apparatus therefor |
WO2021048985A1 (ja) * | 2019-09-12 | 2021-03-18 | 株式会社ソニー・インタラクティブエンタテインメント | 画像処理装置、画像処理方法、及び、プログラム |
JP7249919B2 (ja) * | 2019-09-17 | 2023-03-31 | 株式会社東芝 | 推定装置、推定方法及びプログラム |
US11514588B1 (en) * | 2020-07-21 | 2022-11-29 | Amazon Technologies, Inc. | Object localization for mapping applications using geometric computer vision techniques |
CN116420134A (zh) * | 2020-09-14 | 2023-07-11 | 柯尼亚塔有限公司 | 利用多个密集深度图标记多个图像中的物体 |
KR102555667B1 (ko) * | 2020-12-14 | 2023-07-17 | 네이버랩스 주식회사 | 학습 데이터 수집 시스템 및 방법 |
WO2023219189A1 (ko) * | 2022-05-12 | 2023-11-16 | 주식회사 엔씨소프트 | 깊이 맵에 기반하여 이미지를 합성하기 위한 전자 장치 및 그 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014095553A (ja) | 2012-11-07 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | カメラポーズ推定装置、及びカメラポーズ推定プログラム |
JP2016126662A (ja) * | 2015-01-07 | 2016-07-11 | 株式会社リコー | 地図生成装置、地図生成方法およびプログラム |
WO2017037423A1 (en) * | 2015-08-28 | 2017-03-09 | Imperial College Of Science, Technology And Medicine | Mapping a space using a multi-directional camera |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3630569B2 (ja) | 1998-10-23 | 2005-03-16 | 株式会社東芝 | 映像領域追跡方法および装置 |
WO2004107266A1 (en) | 2003-05-29 | 2004-12-09 | Honda Motor Co., Ltd. | Visual tracking using depth data |
AU2003903448A0 (en) | 2003-06-26 | 2003-07-17 | Canon Kabushiki Kaisha | A method for tracking depths in a scanline based raster image processor |
US7831094B2 (en) | 2004-04-27 | 2010-11-09 | Honda Motor Co., Ltd. | Simultaneous localization and mapping using multiple view feature descriptors |
CN102356637B (zh) | 2009-01-30 | 2017-02-22 | 汤姆森特许公司 | 深度图的编码 |
WO2013054499A1 (ja) * | 2011-10-11 | 2013-04-18 | パナソニック株式会社 | 画像処理装置、撮像装置および画像処理方法 |
KR101885088B1 (ko) | 2012-11-22 | 2018-08-06 | 삼성전자주식회사 | 깊이 영상을 이용한 컬러 영상 처리 장치 및 방법 |
JP6197388B2 (ja) * | 2013-06-11 | 2017-09-20 | 富士通株式会社 | 距離測定装置、距離測定方法、およびプログラム |
KR102137264B1 (ko) * | 2013-07-09 | 2020-07-24 | 삼성전자주식회사 | 카메라 포즈 추정 장치 및 방법 |
CN110120072B (zh) * | 2013-12-19 | 2023-05-09 | 苹果公司 | 用于跟踪移动设备的方法和*** |
CN104915926B (zh) | 2014-03-10 | 2017-12-29 | 佳能株式会社 | 图像处理设备和图像处理方法 |
TWI549477B (zh) | 2014-04-17 | 2016-09-11 | 聚晶半導體股份有限公司 | 產生深度資訊的方法與裝置 |
US10719939B2 (en) | 2014-10-31 | 2020-07-21 | Fyusion, Inc. | Real-time mobile device capture and generation of AR/VR content |
US10019657B2 (en) | 2015-05-28 | 2018-07-10 | Adobe Systems Incorporated | Joint depth estimation and semantic segmentation from a single image |
WO2016197303A1 (en) | 2015-06-08 | 2016-12-15 | Microsoft Technology Licensing, Llc. | Image semantic segmentation |
US9892496B2 (en) | 2015-11-05 | 2018-02-13 | Google Llc | Edge-aware bilateral image processing |
US10553026B2 (en) * | 2017-07-20 | 2020-02-04 | Robert Bosch Gmbh | Dense visual SLAM with probabilistic surfel map |
DE102017214666A1 (de) * | 2017-08-22 | 2019-02-28 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Schätzen einer Eigenbewegung eines Fahrzeugs |
-
2017
- 2017-09-14 KR KR1020170117962A patent/KR102472767B1/ko active IP Right Grant
-
2018
- 2018-01-23 US US15/877,483 patent/US11049270B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014095553A (ja) | 2012-11-07 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | カメラポーズ推定装置、及びカメラポーズ推定プログラム |
JP2016126662A (ja) * | 2015-01-07 | 2016-07-11 | 株式会社リコー | 地図生成装置、地図生成方法およびプログラム |
WO2017037423A1 (en) * | 2015-08-28 | 2017-03-09 | Imperial College Of Science, Technology And Medicine | Mapping a space using a multi-directional camera |
Also Published As
Publication number | Publication date |
---|---|
KR20190030474A (ko) | 2019-03-22 |
US11049270B2 (en) | 2021-06-29 |
US20190080462A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102472767B1 (ko) | 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치 | |
KR102468897B1 (ko) | 깊이 값을 추정하는 방법 및 장치 | |
KR102647351B1 (ko) | 3차원의 포인트 클라우드를 이용한 모델링 방법 및 모델링 장치 | |
CN109211241B (zh) | 基于视觉slam的无人机自主定位方法 | |
US11064178B2 (en) | Deep virtual stereo odometry | |
US9846043B2 (en) | Map creation apparatus, map creation method, and computer-readable recording medium | |
KR101776622B1 (ko) | 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
KR102462799B1 (ko) | 자세 추정 방법 및 자세 추정 장치 | |
Krombach et al. | Combining feature-based and direct methods for semi-dense real-time stereo visual odometry | |
KR102677513B1 (ko) | 소실점 검출을 위한 학습 방법, 소실점 검출 방법 및 장치 | |
JP2021089724A (ja) | 構造的制約及び物理的制約を伴う3d自動ラベル付け | |
US20230080133A1 (en) | 6d pose and shape estimation method | |
WO2023016271A1 (zh) | 位姿确定方法、电子设备及可读存储介质 | |
JP2018530825A (ja) | 非障害物エリア検出のためのシステムおよび方法 | |
KR102455632B1 (ko) | 스테레오 매칭 방법 및 장치 | |
KR20150144729A (ko) | 그래디언트 기반 특징점을 이용한 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
KR20200075727A (ko) | 깊이 맵 산출 방법 및 장치 | |
KR20150144727A (ko) | 에지 기반 재조정을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법 | |
Yang et al. | Reactive obstacle avoidance of monocular quadrotors with online adapted depth prediction network | |
KR20220043847A (ko) | 객체 포즈 추정 방법, 장치, 전자 장치 및 저장 매체 | |
JP7138361B2 (ja) | 3次元仮想空間モデルを利用したユーザポーズ推定方法および装置 | |
CN112258574A (zh) | 标注位姿信息的方法、装置及计算机可读存储介质 | |
CN112330589A (zh) | 估计位姿的方法、装置及计算机可读存储介质 | |
CN113378605B (zh) | 多源信息融合方法及装置、电子设备和存储介质 | |
KR20230049969A (ko) | 글로벌 측위 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |