KR20160019110A - 깊이 카메라 데이터를 이용한 고성능 평면 검출 - Google Patents
깊이 카메라 데이터를 이용한 고성능 평면 검출 Download PDFInfo
- Publication number
- KR20160019110A KR20160019110A KR1020167000711A KR20167000711A KR20160019110A KR 20160019110 A KR20160019110 A KR 20160019110A KR 1020167000711 A KR1020167000711 A KR 1020167000711A KR 20167000711 A KR20167000711 A KR 20167000711A KR 20160019110 A KR20160019110 A KR 20160019110A
- Authority
- KR
- South Korea
- Prior art keywords
- values
- pixel
- plane
- pixels
- depth
- 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/10—Segmentation; Edge detection
- G06T7/12—Edge-based segmentation
-
- H04N13/0271—
-
- G06T7/0075—
-
- H04N13/0246—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- 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/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- 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/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- 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/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N2013/0074—Stereoscopic image analysis
- H04N2013/0081—Depth or disparity estimation from stereoscopic image signals
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
- Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
- Measurement Of Levels Of Liquids Or Fluent Solid Materials (AREA)
Abstract
본 발명개시는 픽셀 깊이들간의 관계, 행 높이 및 두 개의 상수들에 기초하여, 장면 이미지의 깊이 데이터를 이용하여 장면 내의 평면들을 검출하는 것에 관한 것이다. 어느 샘플들이 평면을 나타내는지를 결정하기 위해 상수들에 대한 값들을 평면 공식에 피팅시키도록 깊이 이미지의 샘플들은 처리된다. 기준 평면은 픽셀의 깊이, 위치 및 연관된 피팅된 값들, 예컨대, 평면 아래, 평면 상에 또는 평면 위에 기초하여 평면에 대한 각각의 픽셀의 관계를 결정하기 위해 깊이 이미지 내의 픽셀들이 처리되면서, 평면을 나타내는 이미지들의 샘플들로부터 결정될 수 있다.
Description
본 발명은 깊이 카메라 데이터를 이용한 고성능 평면 검출에 관한 것이다.
깊이 센서를 이용하여 평면들을 검출하는 것은 컴퓨터 비전(computer vision)에서는 흔한 업무이다. 평면 검출은 로봇공학(예컨대, 네비게이션 동안 장애물들로부터 바닥(floor)을 구별하는 것)에서부터 게임(예컨대, 플레이어의 방 내의 실세계 벽 상에 증강현실 이미지를 도시하는 것)에 이르는 많은 실용적인 이용예들을 갖는다.
평면 검출은 장면 상에서 (비제한적인 예시로서 평평한 표면을 비롯하여) 임의의 연속적인 표면이 검출되는, 보다 일반적인 표면 추출 알고리즘 계열의 특수한 경우로서 간주된다. 일반적인 표면 추출은 RANSAC(RANdom Sampling And Consensus) 알고리즘의 변형예들을 이용하여 성공적으로 수행되어 왔다. 이러한 접근법들에서는, 3차원(3D) 포인트 클라우드(point cloud)가 구축되며, 3D 장면 공간이 무작의적으로 샘플링된다. 그런 후, 샘플들은 동일한 기하학적 구축물(예컨대, 벽, 또는 꽃병)에 귀속되기 위해 평가된다. 평면 검출이 또한 마찬가지 방식으로 수행되어 왔다.
평면 검출을 위한 이러한 기존 방법들을 이용할 때의 주요 단점들 중 한가지는 불량한 성능이다. 3D 포인트 클라우드들은 매 프레임으로부터 구축될 필요가 있고, 그런 후에만 샘플링이 시작될 수 있다. 샘플링이 되면, 포인트들은 3D 장면 상의 평면에 귀속되기 위해 심화 분석될 필요가 있다. 더 나아가, 깊이 프레임 내의 임의의 픽셀을 평면에 귀속된 것으로서 분류하기 위해서, 픽셀은 3D 포인트 클라우드 장면 내에 배치되고, 그런 후에 분석될 필요가 있다. 이 공정은 연산 자원과 메모리 자원의 측면에서 비용이 많이 든다.
3D 포인트 클라우드를 구축할 필요성은 실제로 필요한 것이 단지 비교적 적은 수의 단순한 평면들(예컨대, 바닥, 선반 등)을 검출하는 것일 때에 솔루션들에 심각한 알고리즘적인 복잡성을 추가시킨다. 단순한 3D 평면 피팅(fitting) 방법을 이용하여 바닥, 벽, 또는 천장과 같은 단순한 평면들을 깊이 센서의 뷰(view) 내에서 검출하고 재구축하는 것은 카메라형 깊이 센서들의 특성들을 이용하지 못한다.
본 요약은 아래의 상세한 설명에서 보다 상세하게 설명되는 대표적인 개념들의 선택을 단순한 형태로 소개하기 위해 제공된 것이다. 본 요약은 청구된 발명내용의 중요한 특징들 또는 필수적인 특징들을 식별시키고자 하는 의도가 없으며, 또한 청구된 발명내용의 범위를 어떠한 방법으로든지 제한시키는 데에 이용되고자 하는 의도도 없다.
간략히 말하면, 여기서 설명된 본 발명내용의 하나 이상의 다양한 양태들은 평면을 결정하기 위해 이미지의 깊이 데이터를 처리하는 것에 관한 것이다. 하나 이상의 양태들은 스트립에 대응하는 깊이 데이터 내에서의 픽셀 깊이값들과 픽셀 위치들에 기초하여 해당 스트립의 픽셀들이 얼마나 잘 평면 공식에 피팅하는지를 나타내는 각각의 스트립에 대한 값들을 구하기 위해 픽셀들을 포함한 복수의 스트립들을 이용하는 것을 설명한다. 이러한 값들이 평면을 나타내는 오차 문턱값을 충족시키는지 여부에 기초하여, 평면을 나타내는 적어도 몇몇의 스트립들에 대한 값들이 유지된다. 유지된 값들의 세트들은 깊이 데이터 내의 픽셀들의 세트들과 연관된다.
하나 이상의 양태들은 장면에 대한 평면 데이터를 생성하도록 구성된 평면 추출 로직을 포함한다. 평면 추출 로직은 픽셀들을 포함한 깊이 데이터의 프레임들을 입력하고, 프레임 데이터를 처리하여 픽셀들과의 연관을 위한 값들의 쌍들을 계산하며, 여기서, 각각의 픽셀은 깊이 값, 열(column) 인덱스 및 행(row) 인덱스를 갖는다. 각각의 픽셀마다, 픽셀과 연관된 계산 값들의 쌍, 픽셀의 깊이 값 및 픽셀의 행 또는 열 인덱스는 해당 픽셀과 기준 평면간의 관계를 나타낸다.
하나 이상의 양태들은 각각의 스트립에 대해, 스트립의 픽셀들에 대한 행 높이 및 깊이 데이터에 기초하여 평면 공식에 피팅하는 피팅된 값들을 구하는 것을 비롯하여, 픽셀 깊이값들의 스트립들을 처리하는 것에 관한 것이다. 평면에 대응하지 않는 픽셀들을 갖는 임의의 스트립에 대한 피팅된 값들은 비평면 스트립들로부터 평면 스트립들을 구별시키는 문턱 평가에 기초하여 제거된다. 이러한 제거되지 않은 스트립들 중에서, 이 스트립들 중 어느 것이 기준 평면 상에 있을 가능성이 높은지가 결정된다. 기준 평면 상에 있을 가능성이 높은 스트립들의 피팅된 값들은 피팅된 값들의 세트를 픽셀들의 각각의 열과 연관시키는 데에 이용된다.
다른 장점들은 도면들을 함께 참조하여 아래의 상세한 설명으로부터 명백해질 수 있다.
본 발명은 예시를 통해 설명되고, 첨부된 도면들로 제한되지 않으며, 본 도면들에서 동일한 참조번호들은 유사한 엘리먼트들을 가리킨다.
도 1은 하나 이상의 예시적인 구현예들에 따른, 이차원(2D) 깊이 이미지로부터 평면 데이터를 계산하는 데에 이용될 수 있는 예시적인 컴포넌트들을 나타내는 블록도이다.
도 2는 하나 이상의 예시적인 구현예들에 따른, 평면 데이터를 계산하는 데에 이용될 수 있는, 깊이 카메라의 뷰 평면, 평면까지의 거리, 행 높이, 및 카메라 높이간의 관계의 예시의 표현도이다.
도 3은 하나 이상의 예시적인 구현예들에 따른, 캡처된 이미지에 대응하는 깊이 데이터의 샘플링 스트립(strip)들(패치(patch)들)이 어떻게 평면들을 검출하는 데에 이용될 수 있는지를 나타내는 표현도이다.
도 4는 하나 이상의 예시적인 구현예들에 따른, 행 높이들과 거리들이 어떻게 기준 평면(예컨대, 바닥)과 관련이 있는지를 나타내는 표현도이다.
도 5는 하나 이상의 예시적인 구현예들에 따른, 캡처된 이미지에 대응하는 깊이 데이터의 샘플링 스트립들(패치들)이 어떻게 평면들과 카메라 롤링(roll)을 검출하는 데에 이용될 수 있는지를 나타내는 표현도이다.
도 6은 하나 이상의 예시적인 구현예들에 따른, 2D 깊이 데이터를 처리함으로써 기준 평면을 결정하기 위해 취해질 수 있는 예시적인 단계들을 나타내는 흐름도이다.
도 7은 여기서 설명된 다양한 실시예들의 하나 이상의 양태들이 구현될 수 있는 게이밍 시스템의 형태로 있는 비제한적인 예시로서의 컴퓨팅 시스템 또는 운영 환경을 나타내는 블록도이다.
도 1은 하나 이상의 예시적인 구현예들에 따른, 이차원(2D) 깊이 이미지로부터 평면 데이터를 계산하는 데에 이용될 수 있는 예시적인 컴포넌트들을 나타내는 블록도이다.
도 2는 하나 이상의 예시적인 구현예들에 따른, 평면 데이터를 계산하는 데에 이용될 수 있는, 깊이 카메라의 뷰 평면, 평면까지의 거리, 행 높이, 및 카메라 높이간의 관계의 예시의 표현도이다.
도 3은 하나 이상의 예시적인 구현예들에 따른, 캡처된 이미지에 대응하는 깊이 데이터의 샘플링 스트립(strip)들(패치(patch)들)이 어떻게 평면들을 검출하는 데에 이용될 수 있는지를 나타내는 표현도이다.
도 4는 하나 이상의 예시적인 구현예들에 따른, 행 높이들과 거리들이 어떻게 기준 평면(예컨대, 바닥)과 관련이 있는지를 나타내는 표현도이다.
도 5는 하나 이상의 예시적인 구현예들에 따른, 캡처된 이미지에 대응하는 깊이 데이터의 샘플링 스트립들(패치들)이 어떻게 평면들과 카메라 롤링(roll)을 검출하는 데에 이용될 수 있는지를 나타내는 표현도이다.
도 6은 하나 이상의 예시적인 구현예들에 따른, 2D 깊이 데이터를 처리함으로써 기준 평면을 결정하기 위해 취해질 수 있는 예시적인 단계들을 나타내는 흐름도이다.
도 7은 여기서 설명된 다양한 실시예들의 하나 이상의 양태들이 구현될 수 있는 게이밍 시스템의 형태로 있는 비제한적인 예시로서의 컴퓨팅 시스템 또는 운영 환경을 나타내는 블록도이다.
일반적으로, 여기서 설명되는 기술의 다양한 양태들은 3D 포인트 클라우드를 구축할 필요가 없어서 통상적인 방법들에 비해 상당한 연산 절감을 얻는 평면 검출에 관한 것이다. 이와 동시에, 본 기술은 장면으로부터 고품질 평면 추출을 달성한다. 평평한 표면이 뷰 내에 있을 때 (마이크로소프트사의 키네틱™ 기술을 이용하는 것과 같이) 깊이 센서가 생성하는 특정 깊이 이미지 특성들을 이용함으로써 본 기술에 의해 고성능 평면 검출이 달성된다.
일반적으로, 본 기술은 장면 상의 물체들로부터 뷰 평면(즉, 직각으로 센서에 진입하는 중심 광선에 수직한 평면)까지의 거리들의 2D 픽셀 표현을 생성하는 깊이 센서에 의해 조망될 때 평평한 표면의 패치(patch)가 어떻게 보여져야 하는지를 기술하는 분석적 기능을 적용하는 것에 기초한다.
여기서 설명되는 바와 같이, 이러한 깊이 센서로부터 조망될 때 평평한 표면의 패치는,
(또는 D = B / (H-A), 여기서 H는 픽셀 행의 수치적 인덱스인데, 예컨대, 640×480 깊이 이미지 상에서, 이 인덱스는 1 내지 480에 이를 수 있다)의 형태에 피팅(fit)되어야 한다. 깊이(또는, D)는 픽셀 행(H)에서 측정된 감지된 장애물까지의 거리이며, A와 B는 관측된 장애물을 관통하는 가상적인 평면을 기술하는 상수들이다. 상수 A는 센서가 무한을 바라보는 제1 픽셀 행 인덱스(이것은 "수평 인덱스"라고도 알려져 있다)로서 해석될 수 있다. B는 "평면으로부터의 거리"로서 해석될 수 있다. A와 B를 해석하는 다른 방법은, A는 센서로부터 조망될 때의 평면의 램프(ramp)를 정의하며, B는 센서가 표면으로부터 얼마나 높은 곳에 있어 보이는지(바닥의 경우, B는 바닥 위로부터의 카메라 높이에 대응한다)를 정의한다고 말할 수 있다.
여기서는, 깊이 감지된 프레임의 소형 패치들로부터 A와 B 상수들을 구해서, 포인트 클라우드 연산들에 비해 낮은 연산 오버헤드로 나머지 깊이 프레임 픽셀들을 '평면 상에 있음', '평면 아래에 있음' 또는 '평면 위에 있음'으로서 분류하는 것을 제공하는 알고리즘을 설명한다. 상술한 분석적 표현은, A 및/또는 B 상수들을 조작함으로써, 이미 검출된 평면들(예컨대, 바닥)의 관점에서의 새로운 평면들(예컨대, 절벽 또는 천장)을 정의할 수 있는 추가적인 이점을 제공한다. 예를 들어, A와 B 상수들이 이동 로봇으로부터 보여지는 바닥에 대해서 계산된 경우, 단지 어떠한 높이 또는 보다 높은 곳에 있는 장애물들만을 분류하기 위해, B 및/또는 A 상수들의 값들은 희망하는 분류 정확도 및 정밀도를 달성하는 양들만큼 변경될 수 있다.
따라서, 여기서 설명된 기술은 깊이 센서 중심 좌표 시스템에서 평면들을 검출한다. 추가적인 평면들은 이미 검출된 표면의 A 및/또는 B의 수정에 기초할 수 있다. 더 나아가, 본 기술은 A 및/또는 B 상수들, 폭 및/또는 높이를 변화시킴으로써 틸트(tilted)되고 롤링된(rolled) 평면들을 검출하는 것을 제공한다.
여기서의 임의의 예시들은 비제한적인 것임을 이해해야 한다. 때문에, 본 발명은 여기서 설명된 임의의 특정한 실시예들, 양태들, 개념들, 구조물들, 기능들 또는 예시들로 한정되지 않는다. 이보다는, 여기서 설명된 임의의 실시예들, 양태들, 개념들, 구조물들, 기능들 또는 예시들은 비제한적인 것들이며, 일반적으로, 본 발명은 평면 검출, 깊이 감지 및 이미지 처리에서 이점들과 장점들을 제공하는 다양한 방식들로 이용될 수 있다.
도 1은 일반적인 개념 블록도를 예시하는데, 여기서는 장면(102)이 깊이 카메라(104)에 의해 깊이 데이터(106)의 하나 이상의 순차적 프레임들로 캡처된다. 카메라(104)는 단일 센서 또는 다중(예컨대, 스테레오) 센서들을 포함할 수 있으며, 이러한 센서들은 적외선 및/또는 가시광(예컨대, RGB) 센서들일 수 있다. 깊이 데이터(106)는 TOF(time-of-flight) 감지 및/또는 스테레오 이미지 정합 기술들에 의해 획득될 수 있다. 깊이 데이터의 캡처는 투사 광 패턴들이 장면(102) 상으로 투사되는 능동 감지에 의해 촉진될 수 있다.
깊이 데이터(106)는 (행 및 열 쌍에 의해 인덱싱된) 각각의 픽셀마다 깊이값을 갖는, 픽셀들의 어레이와 같은, 이미지 깊이 맵의 형태로 존재할 수 있다. 깊이 데이터(106)는 동일한 데이터 구조에서 RGB 데이터를 수반할 수 있거나 수반하지 않을 수 있지만, RGB 데이터가 존재하는 경우, 깊이 데이터(106)는 픽셀 상관도를 통해 RGB 데이터와 연관되어진다.
여기서 설명되는 바와 같이, 평면 추출 로직(108)은 깊이 데이터(106)를 평면 데이터(110)로 처리한다. 일반적으로, 평면 데이터(110)는 프레임 당 생성되며, 이것은 바닥과 같은, 이미지로부터 추출된 적어도 하나의 기준 평면을 나타낸다. 깊이 이미지/맵에서의 다른 깊이들 및/또는 다른 평면들은 이 기준 평면에 대한 것일 수 있다.
평면 데이터(110)는 애플리케이션 프로그램(112)에 입력될 수 있다(하지만, 운영 체제 컴포넌트, 서비스, 하드코딩된 로직 등과 같은 다른 소프트웨어가 마찬가지로 평면 데이터(110)를 액세스할 수 있다). 예를 들어, 애플리케이션 프로그램(112)은 깊이 데이터(106) 내의 임의의 주어진 픽셀에 대해, 해당 픽셀이 기준 평면 상에 있는지, 기준 평면 위에 있는지(예컨대, 장애물을 표시함), 또는 기준 평면 아래에 있는지(예컨대, 절벽을 표시함) 여부를 결정할 수 있다.
여기서는 설명을 위해, 달리 언급하지 않는 한 기준 평면을 마루로서 예시할 것이다. 손쉽게 이해할 수 있는 바와 같이, 벽, 천장, 플랫폼 등과 같은 다른 기준 평면이 검출되고 계산될 수 있다.
상기에서 언급하고 도 2(여기서 D는 깊이를 나타내고, H는 RowIndex를 나타낸다)에서 일반적으로 나타낸 바와 같이, 각각의 행 인덱스에 대한 수평적으로 위치한 깊이 센서의 뷰 평면으로부터 바닥까지의 거리는,
의 공식을 이용하여 설명된다.
평면인 경우, 감지된 깊이는 카메라에 대한 바닥의 경사를 고려한, 행 인덱스(H)와, 평면 위의 카메라의 높이(B)의 함수이며, 여기서 A 상수는 얼마나 바닥이 경사져 있는지를 정의하며, B 상수는 카메라가 Z방향으로 얼마나 많이 쉬프트되어 있는지를 정의한다(센서가 지상으로부터 일정한 높이 떨어져서 마운팅되어 있다고 가정한다). 깊이 데이터에서, D(및, 이에 따라 행 인덱스(H))는 카메라 센서의 거리가 아닌, 카메라의 이미지 평면으로부터 계산된다.
일반적으로, A와 B는 알려져 있지 않다. 하나의 구현예에서, 동적 바닥 추출 방법은 깊이 프레임의 폭(픽셀 열들)에 걸친 소형 패치들(스트립들이라고 부른다)을 분석하는데, 이 때 이러한 스트립들에 대한 위 공식에 피팅하려는 시도로 A와 B를 가변시킨다. 패치들의 개념이 일반적으로 도 3에 나타나는데, 도 3에서는 2차원 이미지(330)가 도시되며; 스트립들은 깊이 데이터의 다양한 2D 샘플들을 포함하고, 이미지(330)의 바닥부 근처에서 바닥부에 걸쳐 있는 점선 박스들로서 나타나며; 스트립들은 주어진 구현예에서 오버랩될 수 있거나 또는 오버랩되지 않을 수 있다. 실제적으로, 깊이 이미지 데이터는 이미지(330)에서와 같은 방 내의 가시적 물체들을 가지 않지만, 이보다는 각각의 픽셀에서 깊이 수치값들이 존재한다는 것을 유념한다. 따라서, 스트립들은 RGB 데이터가 아닌, 각자의 픽셀들의 깊이값들로 채워진다는 것이 이해될 것이다. 또한, 예컨대, 이동 로봇으로부터의 바닥 검출의 경우, 스트립들은 도 3에서와 같이 프레임의 바닥부에 배치되지만, 탁상(tabletop) 추출의 경우, 스트립들은 프레임 전체에 걸쳐 무작위적으로 분산되어 있다는 것을 유념한다. 또한, "이미지"(330)에 대한 도시된 스트립들의 형상, 개수, 분포, 크기들 등은 단지 가시적 예시를 위한 것일 뿐이며, 임의의 실제적인 값들을 전달하려는 의도가 없다는 것을 유념한다. 하지만, 일반적으로, 평면 검출은 이미지의 폭에 걸쳐 연장된 스트립들을 갖는 것으로부터 혜택을 가지며, 각각의 스트립 내의 픽셀들의 개수는 샘플이 평면의 일부분인지 아닌지의 여부에 상관없이 검출을 시도하는 데에 충분할 필요가 있다. 손쉽게 이해될 수 있는 바와 같이, 더 많은 샘플들을 취하면 더 많은 정보가 입수가능하겠지만, 취해진 샘플들의 개수와 이러한 샘플들을 처리하는 데에 필요한 연산량 사이에는 트레이드오프(tradeoff)가 존재한다.
일반적으로, 스트립은 임의의 폭과 높이를 가질 수 있다. 스트립의 폭과 높이를 증가시키는 것은 입력 깊이 데이터에서의 노이즈를 평활화(smoothing)하는 효과를 갖는다. 실제에 있어서, 비교적 작은 수의 대형 스트립들은 바닥 검출에 좋으며, 비교적 많은 수의 소형 스트립들은 클러터링된(cluttered) 장면 상에서의 탁상 검출에 많이 적용가능하다. 예를 들어, 16개의 10x48 스트립들은 바닥 검출에 이용될 수 있는 반면에, 100개의 2x24 스트립들은 탁상 검출에 이용될 수 있다.
예시로서, 로봇 장애물 회피 및 수평 깊이 프로파일 구성의 환경에서의 바닥 추출을 고려해본다. 이 시나리오에서, 추출 공정은 프레임에 걸친 각각의 스트립에 대한 A와 B 계수들을 학습하려고 시도하며, A와 B 값들을 이용하여, 투사된 바닥보다 약간 높은 곳에 있는 컷오프 평면을 계산한다. 이 평면을 알게되면, 본 공정은, 이어서, 예컨대 평면 데이터(110) 내에서, 투사된 바닥 밑에 있는 픽셀들을 "바닥"으로서 마킹할 수 있으며, 투사된 바닥 위에 있는 모든것들을 장애물로서 마킹할 수 있다. 일정한 문턱값 등을 넘어선 "바닥" 밑의 모든것들은 이와달리 절벽으로서 간주될 수 있다는 것을 유념한다.
임의의 주어진 스트립에 대해 최상으로 피팅된 A와 B 상수값들을 계산하기 위해, 본 공정은,
의 공식에 의해 정의된 최소 자승 근사법(least squared approximation)을 적용할 수 있다.
본 공정은 A와 B에 의해 미분할 필요가 있으며,
및
을 구한다.
A와 B에 의한 미분은,
를 가져다준다.
상수 A는 임의의 수의 반복 근사법에 의해 구해질 수 있으며, 예컨대 뉴튼 랩슨법(Newton-Raphson method)은,
을 명시하고 있다.
이것은 복잡한 알고리즘을 통해 풀어질 수 있다. 대안적으로, 본 공정은 자승 오차들을 계산하고 본 공정이 희망하는 정확도에 도달할 때 까지 연속된 보다 작은 단계들에서 각각 새로운 A를 선택함으로써 (덜 효율적일 가능성은 있지만) A의 보다 단순한 바이너리 검색을 이용할 수 있다. A에 대한 검색 정확도를 제어하는 것은 이러한 알고리즘의 학습 단계의 성능을 수정하기 위한 단순한 방법이다.
실행시, 각각의 깊이 프레임으로, 모든 스트립들에 대해 A와 B가 학습될 수 있다. A와 B를 계산하는 것과 함께, 스트립에 대한 최상의 잠재적인 A와 B에 해당 스트립을 피팅시킬 때의 자승 오차 결과를 포함하는 '적합도(goodness of fit)' 수치가 얻어진다. 이 예시에서 스트립이 바닥을 바라보지 않는 경우, 오차는 크며, 이에 따라 커다란 오차를 보여주는 스트립들은 폐기된다. 하지만, 양호한 스트립들은 보존된다. '적합도'의 수치는 알고리즘에 입력될 수 있고, 휴리스틱(heuristic)에 기초할 수 있고/있거나, 임의의 환경, 예컨대, 적합도 문턱값이 적절하게 제공되면 평면들로서 검출될 수 있는 상이한 평면들인, 카펫, 경목(hardwood), 아스팔트, 자갈, 잔디밭 등에서의 동작이 허용되도록 조정될 수 있다.
장면 상에서는 많은 수의 평평한 표면들이 있을 수 있기 때문에, 피팅된 A들과 B들로부터 이러한 표면들간을 구별하는 작업이 존재한다. 이것은, 동일 평면에 피팅하는 A와 B 상수들이 매우 가까우면, 단순해진다. 본 공정은 표준 통계 기술들을 이용하여, 예컨대 분산에 의해 다른 평면들을 잘라낼 수 있다. 본 공정은 또한 검색을 좁히는데 도움이 되도록 임의의 개수의 휴리스틱을 활용할 수 있다. 예를 들어, 평면 피팅을 위한 작업이 주어진 높이에서 고정된 깊이 센서를 갖는 로봇으로부터 바닥을 검출하는 것인 경우, 본 공정은 B 상수에 대해 손쉽게 상한과 하한을 부여할 수 있다.
깊이 프레임 폭에 걸친 스트립들이 분석되면, 본 공정은 (예컨대, 선형 보간을 통해) 깊이 프레임 상의 폭 픽셀(열) 마다 A와 B 상수들의 쌍을 생성한다. 카메라의 팬(pan)/틸트(tilt)/롤(roll)에 의존하여, 프레임 폭에 걸쳐 사실상 일정한 A와 B가 있을 수 있거나, 또는 A와 B 값들은 프레임 폭에 걸쳐 변경될 수 있다. 어떠한 경우든지, 픽셀들의 열 마다, 픽셀들을 분류할 때 나중에 이용될 수 있는 A와 B 상수들의 쌍이 존재한다.
A와 B 쌍들은 일반적으로 프레임별로 재계산되지만, 장면이 너무 클러터링되어서 본 공정이 충분한 개수의 스트립들을 평면들에 피팅시킬 수 없는 경우, 이전 프레임으로부터의 A와 B 상수들이 현재 프레임에 대해 재사용될 수 있다. 이것은 A와 B가 계산될 수 없을 때를 제외하고 작은 개수의 프레임들에 대해 들어맞는데, 그 이유는 장면이 너무 가로막혀서 가시적인 바닥이 불충분하기(및/또는 카메라가 프레임들에 대해서 너무 이동(예컨대, 롤링/틸트)되었기) 때문이다.
도 4는 카메라의 전방에 진짜 바닥 평면이 있을 때에 깊이 센서로부터 행별(per-row) 깊이 판독들이 어떻게 나타나는지를 중심 실선이 나타내고 있는 그래프(440)를 나타낸다(X축은 센서로부터의 거리를 나타내고, Y축은 픽셀 행을 나타낸다). 점선들(장애물들 및 절벽)은 A 상수를 가변시킴으로써 획득된다. 선들이 수학적으로 정의되면, 열 X에 대한 임의의 픽셀의 평면 친밀도(plane affinity)를 분류하기 위해 그래프로부터의 B와 A 상수값들(또는 룩업 테이블 등에서 구해진 적절한 A와 B값들)로 B / (X - A)를 계산하는 것은 쉽다. A를 가변시키는 것은 카메라를 상방 및 하방으로 틸트시키는 효과를 갖는데, 이것은 바닥을 동적으로 학습하고 추출하기 위해 실행시 이용되는 특성이라는 점을 유념한다.
도 5는 도 4의 이미지(440)에 대한 어느정도의 카메라 롤링(및 어느정도의 경미한 틸트)를 갖는 이미지 표현(550)을 도시한다. 살펴볼 수 있는 바와 같이, 바닥의 경사는 변하며, 이에 따라 이미지들의 열들에 걸쳐 A 상수들의 값들은 변한다. A 상수들의 값들의 차이는 예컨대, 롤링의 양을 결정하는 데에 이용될 수 있다.
본 공정은 바닥을 구하기 위해 프레임 내의 작은 샘플링 영역만을 이용할 수 있기 때문에, 본 공정은 전체 깊이 프레임 폭에 대한 A와 B 상수들을 학습하는 데에 많은 연산 비용을 발생시키지 않는다. 하지만, 픽셀을 바닥/바닥 아님으로서 분류하기 위해, 본 공정은 각각의 픽셀을 검사하여, 두 개의 정수 수학 계산(integer math calculation)들 및 테이블 검색을 연산해야 한다. 이것은 비교적 비용이 많이 소요되는 변환을 초래하지만, 상당히 고속이다.
바닥을 결정하는 것에 더하여, 절벽들을 구하기 위해(이것은 추가적인 연산이 필요없으며, 단지 A 및/또는 B의 조정만이 필요함) 동일한 추출 공정이 이용될 수 있다. 천장들도 마찬가지로 추가적인 연산이 필요하지 않으며, 단지 B의 증가만이 필요하다. 벽들과 같은 수직 평면들은, 행 대신에 열들에 적용되는 점을 제외하고, 동일한 알고리즘을 이용하여 검출될 수 있다.
예컨대, 바닥에 대해 평행하거나 또는 바닥에 대해 임의적으로 틸트된/쉬프트된 추가적인 공간 슬라이스들이 또한 처리될 수 있다. 이것은 어떠한 추가적인 학습을 행할 필요 없이 카메라의 전방의 3D 공간을 가상적으로 슬라이싱하는 데에 이용될 수 있다.
또한, 표면 품질은 픽셀들의 스트립들을 피팅하는 동안에 획득된 데이터로부터 결정가능하기 때문에 표면 품질은 추가적인 비용없이 이미 획득가능하다. 예를 들어, 오차가 작을수록, 표면은 보다 평활화된다. 이것은 (표면 결함들이 너무 커서 표면 결함들이 센서들의 노이즈보다 상당히 현저하지 않는 한) 예컨대, 상이한 노이즈 모델들로 인해, 센서들에 걸쳐 전이가능하지 않을 수 있다는 점을 유념한다.
도 6은 본 추출 공정의 몇가지 예시적인 단계들을 요약한 흐름도이며, 본 흐름도는 "적합도" 문턱값, 예컨대, 스트립이 평면의 일부인 것으로서 간주될 정도로 충분히 평면적인지 여부를 결정하는 데에 이용되는 값이 수신되는 단계(602)로 시작한다. 몇몇의 경우들에서는, 변수 파라미터 대신에 디폴트 값이 이용될 수 있다.
단계(604)는 다음 깊이 프레임이 카메라로부터 이용가능해질 때, 깊이 프레임을 수신하는 것을 나타낸다. 단계(606)는 예컨대, 깊이 이미지의 폭에 걸쳐 의사 무작의적으로(pseudo-randomly), 샘플링 스트립들을 생성한다.
그런 후, 여기서 설명된 평면 공식에 스트립 데이터를 피팅시키는 최상의 A와 B 값들을 구하기 위해 처리될 각각의 스트립이 선택된다(단계 608). 이러한 단계들 중 몇몇은 가능하게는 GPU 상에서/GPU 메모리 내에서 가능할 수 있는 정도까지 병렬로 수행될 수 있다는 것을 유념한다.
단계(610)는 선택된 스트립에 대한 피팅 공정을 나타낸다. 단계(612)는 (적합도 문턱값을 고려하여) 스트립 픽셀들이 평면을 나타내는지 여부를 결정하기 위해 적합도 문턱값 대비 오차를 평가하고(적합도 문턱값은 표면 품질을 고려하여 사용자에 의해 변경될 수 있음), 스트립 데이터는 보존된다(단계 614). 그렇지 않은 경우, 이 스트립의 데이터는 폐기된다(단계 616). 단계(618)는 각각의 스트립에 대해 완료할 때 까지 피팅 공정을 반복한다.
단계(620)는 어느 스트립들이 기준 평면을 나타내는지를 결정하는 것을 나타낸다. 보다 구체적으로, 상술한 바와 같이, 예컨대, 바닥을 검출하는 경우, 많은 스트립들이 바닥 상에 있지 않은 평면들을 나타낼 수 있으며, 이것들은, 바닥을 캡처했던 스트립들에 대응하는 A와 B 상수값들의 (아마도) 가장 일반적인 세트와는 상이한, 각자의 피팅된 A와 B 상수값들에 기초하여 (예컨대, 통계적으로) 구별될 수 있다.
각각의 남아있는 스트립에 대한 A와 B 값들을 이용하여, 단계들(622, 624, 626)은 예컨대, 보간 등을 통해, 픽셀들의 각 열에 대한 A와 B 값들을 결정한다. 수직 평면이 기준 평면인 경우, 단계들(622, 624, 626)은 열들을 대신하여 픽셀 행들을 취급하도록 수정된다는 것을 유념한다.
단계(628)는 평면 데이터를 출력하는 것을 나타낸다. 예를 들어, 데이터가 이용되는 방법에 의존하여, 이것은 각각의 열(또는 수직 기준 평면에 대한 행)에 대한 A, B 쌍들의 세트들의 형태로 존재할 수 있다. 대안적으로, 깊이 맵은 해당 픽셀과 연관된 A와 B 값들과 함께 각각의 픽셀의 깊이 및 픽셀 행을 이용함으로써, 각각의 픽셀이 기준 평면에 대해 어느 곳에 놓여 있는지를 표시하는 다른 데이터 구조로 처리될 수 있다. 예를 들어, 기준 평면이 바닥인 경우, 픽셀은 해당 픽셀의 열 및 픽셀 행에 대한 A와 B 값들 및 해당 픽셀의 계산된 깊이에 기초하여 대략적으로 바닥 상에 있거나, 바닥 위에 있거나 또는 바닥 아래에 있으며, 각각의 프레임에 대한 이러한 정보를 표시하는 맵이 생성될 수 있다.
상기에서 언급한 바와 같이, 이미지는 너무 클러터링되어 기준 평면에 대한 A, B 값들을 샘플링이 결정하지 못하는 표면을 가질 가능성이 있다. 도 6에서는 도시되지 않았지만, 이것은 예컨대, 단계(620)에 이 후에 남아있는 극소수의 스트립들이 결과물들에서 충분한 신뢰도를 갖게함으로써 결정될 수 있다. 상술한 바와 같이, 이것은 이전 프레임으로부터의 A, B 값들을 이용함으로서 처리될 수 있다. 또다른 대안책은 재샘플링된 스트립들을 다시 피팅하고 분석하는데 충분한 시간이 남아있는 경우, 가능하게는, 이미지의 상이한 영역에서(예컨대, 클러터가 하나의 일반 영역에 있을 수 있기때문에 약간 높게) 재샘플링하는 것이다.
살펴볼 수 있는 바와 같이, 여기서 설명된 기술은 어떠한 3D(예컨대, 포인트 클라우드) 처리를 필요하지 않고서 깊이 이미지로부터 평면 데이터를 획득하는 효율적인 방법을 제공한다. 본 기술은 바닥과 이 바닥 상에 잇는 장애물들(및/또는 이에 대한 절벽들)을 결정하는 것과 같은 다양한 응용예들에서 이용될 수 있다.
예시적인 동작 환경
상술한 구현예 및 그 대안예들은 게이밍 시스템, 개인 컴퓨터, 태블릿, DVR, 셋탑 박스, 스마트폰 등을 비롯한 임의의 적절한 컴퓨팅 디바이스 상에서 구현될 수 있다는 것을 손쉽게 알 수 있다. 이러한 다중 디바이스들이 함께 링크될 때 이러한 디바이스들의 조합들이 또한 실현가능하다. 설명을 위해, 이후에서는 하나의 예시적인 동작 환경으로서 게이밍(미디어를 포함) 시스템이 설명된다.
도 7은 예시적인 게이밍 및 미디어 시스템(700)의 기능 블록도이며, 도 7은 기능적 컴포넌트들을 보다 자세하게 도시한다. 콘솔(701)은 중앙 처리 유닛(CPU)(702), 및 플래시 판독 전용 메모리(ROM)(704), 랜덤 액세스 메모리(RAM)(706), 하드 디스크 드라이브(708), 및 휴대용 미디어 드라이브(709)를 비롯한, 다양한 유형들의 메모리에 대한 프로세서 액세스를 촉진시키는 메모리 제어기(703)를 갖는다. 하나의 구현예에서, CPU(702)는 데이터를 일시적으로 저장하여 하드 드라이브에 가해지는 메모리 액세스 사이클들의 횟수를 감소시킴으로써, 처리 속도와 쓰루풋을 개선시키기 위한 레벨 1 캐시(710)와 레벨 2 캐시(712)를 포함한다.
CPU(702), 메모리 제어기(703), 및 다양한 메모리 디바이스들은 하나 이상의 버스들(미도시됨)을 통해 상호연결된다. 이 구현예에서 이용되는 버스의 상세사항들은 여기서 논의되고 있는 관심대상의 발명내용을 이해하는 것과 특별한 관련이 있는 것은 아니다. 하지만, 이러한 버스는 임의의 다양한 버스 아키텍처들을 이용하여, 직렬 및 병렬 버스들, 메모리 버스, 주변 버스, 및 프로세서 또는 로컬 버스 중 하나 이상을 포함할 수 있다는 것을 이해할 것이다. 예를 들어, 이러한 아키텍처들은 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스로서도 알려진 PCI(Peripheral Component Interconnect) 버스를 포함할 수 있다.
하나의 구현예에서, CPU(702), 메모리 제어기(703), ROM(704), 및 RAM(706)은 공통 모듈(714) 상에 통합된다. 이 구현예에서, ROM(704)은 PCI(Peripheral Component Interconnect) 버스 등과 ROM 버스 등(이것들 모두는 미도시됨)을 통해 메모리 제어기(703)에 연결된 플래시 ROM으로서 구성된다. RAM(706)은 개별적인 버스들(미도시됨)을 통해 메모리 제어기(703)에 의해 독립적으로 제어되는 다중 DDR SDRAM(Double Data Rate Synchronous Dynamic RAM) 모듈들로서 구성될 수 있다. 하드 디스크 드라이브(708)와 휴대용 미디어 드라이브(709)는 PCI 버스와 ATA(AT Attachment) 버스(716)를 통해 메모리 제어기(703)에 연결된 것이 도시된다. 하지만, 다른 구현예들에서, 상이한 유형들의 전용 데이터 버스 구조들이 또한 대안예에서 적용될 수 있다.
3차원 그래픽 처리 유닛(720)과 비디오 인코더(722)는 고속 및 고해상도(예컨대, 고화질) 그래픽 처리를 위한 비디오 처리 파이프라인을 형성한다. 데이터는 그래픽 처리 유닛(720)으로부터 디지털 비디오 버스(미도시됨)를 거쳐 비디오 인코더(722)로 운송된다. 오디오 처리 유닛(724)과 오디오 코덱(코더/디코더)(726)는 다양한 디지털 오디오 포맷들의 멀티채널 오디오 처리를 위한 대응하는 오디오 처리 파이프라인을 형성한다. 오디오 데이터는 통신 링크(미도시됨)를 거쳐 오디오 처리 유닛(724)과 오디오 코덱(726) 간에 운송된다. 비디오 및 오디오 처리 파이프라인들은 데이터를, 텔레비젼 또는 다른 디스플레이/스피커들로의 전송을 위해 A/V(오디오/비디오) 포트(728)에 출력한다. 예시된 구현예에서, 비디오 및 오디오 처리 컴포넌트들(720, 722, 724, 726, 728)은 모듈(714) 상에 마운팅된다.
도 7은 유선 및/또는 무선 컴포넌트들을 포함할 수 있는 네트워크 인터페이스(NW I/F)(732) 및 USB 호스트 제어기(730)를 포함하는 모듈(714)을 도시한다. USB 호스트 제어기(730)는 버스(예컨대, PCI 버스)를 거쳐 CPU(702) 및 메모리 제어기(703)와 통신하고 주변 제어기들(734)을 위한 호스트로서 역할을 하는 것이 도시된다. 네트워크 인터페이스(732)는 네트워크(예컨대, 인터넷, 홈 네트워크 등)에 대한 액세스를 제공하며, 이것은 이더넷 카드 또는 인터페이스 모듈, 모뎀, 블루투스 모듈, 케이블 모뎀 등을 비롯한 광범위한 다양한 유선 또는 무선 인터페이스 컴포넌트들 중 임의의 것일 수 있다.
도 7에서 도시된 예시적인 구현예에서, 콘솔(701)은 네 개의 게임 제어기들(741(1)~741(4))을 지원하기 위해, 제어기 지원 서브어셈블리(740)를 포함한다. 제어기 지원 서브어셈블리(740)는 예컨대 미디어 및 게임 제어기와 같은, 외부 제어 디바이스와의 유선 및/또는 무선 동작을 지원하기 위해 필요한 임의의 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 전면 패널 I/O 서브어셈블리(742)는 전원 버튼(743), 방출 버튼(744) 뿐만이 아니라, 콘솔(701)의 외부 표면 상에 노출된 임의의 다른 버튼들 및 임의의 LED(light emitting diode)들 또는 다른 표시기들의 다중 기능들을 지원한다. 서브어셈블리들(740, 742)은 하나 이상의 케이블 어셈블리들(746) 등을 거쳐 모듈(714)과 통신한다. 다른 구현예들에서, 콘솔(701)은 추가적인 제어기 서브어셈블리들을 포함할 수 있다. 예시된 구현예는 또한 모듈(714)에 전달될 수 있는 신호들을 송신하고 (예컨대, 원격 제어부(749)로부터) 수신하도록 구성된 광학 I/O 인터페이스(748)를 도시한다.
메모리 유닛(Memory Unit; MU)들(750(1), 750(2))은 각각 MU 포트 “A”(752(1)) 및 MU 포트 “B”(752(2))에 연결될 수 있는 것으로서 예시된다. 각각의 MU(750)는 게임들, 게임 파라미터들, 및 다른 데이터가 저장될 수 있는 추가적인 저장장치를 제공한다. 몇몇의 구현예들에서, 상기 다른 데이터는 디지털 게임 컴포넌트, 실행가능한 게이밍 애플리케이션, 게이밍 애플리케이션을 확장하기 위한 명령어 세트, 및 미디어 화일 중 하나 이상을 포함할 수 있다. 각각의 MU(750)는, 콘솔(701) 내에 삽입되면, 메모리 제어기(703)에 의해 액세스될 수 있다.
시스템 전력 공급 모듈(754)은 게이밍 시스템(700)의 컴포넌트들에 전력을 제공한다. 팬(756)은 콘솔(701) 내의 회로들을 냉각시킨다.
머신 명령어들을 포함하는 애플리케이션(760)은 일반적으로 하드 디스크 드라이브(708) 상에 저장된다. 콘솔(701)이 구동되면, 애플리케이션(760)의 다양한 부분들이 CPU(702) 상에서의 실행을 위해, RAM(706), 및/또는 캐시들(710, 712) 내로 로딩된다. 일반적으로, 애플리케이션(760)은 디스플레이 상에서의 표시를 위한 다이얼로그 스크린들(예컨대, 고화질 모니터)의 제어, 사용자 입력들에 기초한 트랜잭션(transaction)들의 제어, 및 콘솔(701)과 외부적으로 연결된 디바이스들 간의 데이터 송신 및 수신의 제어와 같은, 다양한 디스플레이 기능들을 수행하기 위한 하나 이상의 프로그램 모듈들을 포함할 수 있다.
게이밍 시스템(700)은 본 시스템을 고화질 모니터, 텔레비젼, 비디오 프로젝터, 또는 다른 디스플레이 디바이스에 연결시킴으로써 독립형 시스템으로서 동작될 수 있다. 이러한 독립형 모드에서, 게이밍 시스템(700)은 하나 이상의 플레이어들이 게임을 하거나, 또는 예컨대, 영화를 보거나, 또는 음악을 들음으로써 디지털 미디어를 감상할 수 있게 해준다. 하지만, 네트워크 인터페이스(732)를 통해 이용가능해진 광대역 연결의 통합을 통해, 게이밍 시스템(700)은 또한 보다 큰 네트워크 게이밍 커뮤니티 또는 시스템에서의 참가자 컴포넌트로서 동작될 수 있다.
결론
본 발명은 다양한 수정들과 대안적인 구성들이 가능하지만, 본 발명의 어떠한 예시된 실시예들이 도면들에서 도시되며 위에서 상세하게 설명되었다. 하지만, 본 발명을 개시된 특정한 형태들로 한정시키고자 하는 의도는 없으며, 이와는 반대로, 본 의도는 본 발명의 사상과 범위 내에 속하는 모든 수정들, 대안적인 구성들, 및 등가물들을 커버하고자 하는 바임을 이해해야 한다.
Claims (10)
- 방법에 있어서,
픽셀들을 포함한 복수의 스트립(strip)들을 이용하는 것을 포함하여, 평면을 결정하기 위해 이미지의 깊이 데이터를 처리하는 단계로서, 상기 깊이 데이터는 픽셀들의 인덱싱된 행들 및 열들과 각각의 픽셀에 대한 깊이값을 포함한 것인, 상기 이미지의 깊이 데이터를 처리하는 단계,
상기 스트립에 대응하는 상기 깊이 데이터 내에서의 깊이값들과 픽셀 위치들에 기초하여 해당 스트립의 픽셀들이 얼마나 잘 평면 공식에 피팅(fit)하는지를 나타내는 각각의 스트립에 대한 값들을 구하는 단계,
상기 값들이 평면을 나타내는 오차 문턱값을 충족시키는지 여부에 기초하여 평면을 나타내는 적어도 몇몇의 스트립들에 대한 값들을 유지하는 단계, 및
상기 유지된 값들의 세트들을 상기 깊이 데이터 내의 픽셀들의 세트들과 연관시키는 단계
를 포함하는 방법. - 제1항에 있어서, 상기 픽셀들의 세트들은 픽셀들의 열(column)들에 대응하며, 상기 유지된 값들의 세트들을 상기 픽셀들의 세트들과 연관시키는 단계는 상기 값들의 열별(per-column) 세트들을 상기 픽셀들의 열과 연관시키는 단계를 포함한 것인 방법.
- 제2항에 있어서, 상기 깊이 데이터 내에 깊이값, 열 식별자 및 행 식별자를 갖는 주어진 픽셀에 대해,
a) 상기 깊이값, 상기 픽셀의 열과 연관된 값들, 및 상기 행 식별자를 이용하여, 해당 픽셀이, i) 상기 평면 아래에 있거나 또는 상기 평면 위에 있는지 여부, 또는 ii) 상기 평면 상에 있거나, 상기 평면 아래에 있거나 또는 상기 평면 위에 있는지 여부를 추정하는 단계, 또는
b) 카메라 롤(roll)의 양을 결정하기 위해 상기 열들에 걸친 상기 값들 중 하나에서의 변동을 이용하는 단계, 또는
c) 상기 a) 단계와 상기 b) 단계 둘 다를 이용하는 단계
를 더 포함하는 방법. - 제1항에 있어서, 상기 값들의 세트들은 프레임에 대해 결정되며, 후속 프레임에 대해 상기 상수값들을 재사용하는 단계를 더 포함하는 방법.
- 제1항에 있어서, 상기 각각의 스트립에 대한 값들을 구하는 단계는 반복적 근사법(iterative approximation)에 의해 상기 값들 중 적어도 하나를 결정하는 단계 또는 바이너리 검색에 의해 상기 상수들 중 하나를 결정함으로써 상기 값들 중 적어도 하나를 결정하는 단계를 포함한 것인 방법.
- 제1항에 있어서, 상기 평면을 결정하기 위해 이미지의 깊이 데이터를 처리하는 단계는 바닥(floor)을 결정하는 단계 또는 실질적으로 수직한 평면을 결정하는 단계를 포함한 것인 방법.
- 제1항에 있어서, 상기 스트립들을 이용하는 것은 상기 복수의 스트립들을 갖는 영역을 샘플링하는 것을 포함한 것인 방법.
- 시스템에 있어서,
장면에 대한 평면 데이터를 생성하도록 구성된 평면 추출 로직
을 포함하고, 상기 평면 추출 로직은, 픽셀들 - 각각의 픽셀은 깊이 값, 열 인덱스 및 행 인덱스를 가짐 - 을 포함한 깊이 데이터의 프레임들을 입력하고, 프레임 데이터를 처리하여 상기 픽셀들과의 연관을 위한 값들의 쌍들을 계산하도록 구성되고, 각각의 픽셀마다, 상기 픽셀과 연관된 값들의 쌍, 상기 픽셀의 깊이 값, 및 픽셀의 행 또는 열 인덱스는 해당 픽셀과 기준 평면간의 관계를 나타낸 것인 시스템. - 실행될 때, 단계들을 수행하는 실행가능한 명령어들을 갖는, 머신으로 판독가능한 하나 이상의 저장 매체 또는 로직에 있어서, 상기 방법들은,
각각의 스트립에 대해, 상기 스트립의 픽셀들에 대한 행 높이 및 깊이 데이터에 기초하여 평면 공식에 피팅하는 피팅된 값들을 구하는 것을 비롯하여, 픽셀 깊이값들의 스트립들을 처리하는 단계;
평면에 대응하지 않는 픽셀들을 갖는 임의의 스트립에 대한 상기 피팅된 값들을 비평면 스트립들로부터 평면 스트립들을 구별시키는 문턱 평가에 기초하여 제거하는 단계;
제거되지 않은 스트립들로부터, 상기 제거되지 않은 스트립들 중 어느 것이 기준 평면 상에 있을 가능성이 높은지를 결정하는 단계; 및
상기 기준 평면 상에 있을 가능성이 높은 상기 스트립들의 피팅된 값들을 이용하여 피팅된 값들의 세트를 픽셀들의 각각의 열과 연관시키는 단계
를 포함한 것인 머신으로 판독가능한 하나 이상의 저장 매체 또는 로직. - 제9항에 있어서, 적어도 하나의 픽셀에 대해, 상기 픽셀의 깊이값, 상기 픽셀의 행 높이 및 상기 픽셀의 열과 연관된 상기 피팅된 값들의 세트에 기초하여 상기 픽셀과 상기 기준 평면간의 관계를 결정하는 단계를 포함하는 실행가능한 명령어들을 더 갖는 머신으로 판독가능한 하나 이상의 저장 매체 또는 로직.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/915,618 | 2013-06-11 | ||
US13/915,618 US20140363073A1 (en) | 2013-06-11 | 2013-06-11 | High-performance plane detection with depth camera data |
PCT/US2014/041425 WO2014200869A1 (en) | 2013-06-11 | 2014-06-06 | High-performance plane detection with depth camera data |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20160019110A true KR20160019110A (ko) | 2016-02-18 |
Family
ID=51063843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167000711A KR20160019110A (ko) | 2013-06-11 | 2014-06-06 | 깊이 카메라 데이터를 이용한 고성능 평면 검출 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20140363073A1 (ko) |
EP (1) | EP3008692A1 (ko) |
JP (1) | JP2016529584A (ko) |
KR (1) | KR20160019110A (ko) |
CN (1) | CN105359187A (ko) |
AU (1) | AU2014278452A1 (ko) |
BR (1) | BR112015030440A2 (ko) |
CA (1) | CA2913787A1 (ko) |
MX (1) | MX2015017154A (ko) |
RU (1) | RU2015153051A (ko) |
WO (1) | WO2014200869A1 (ko) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9934611B2 (en) * | 2013-09-11 | 2018-04-03 | Qualcomm Incorporated | Structural modeling using depth sensors |
US9858720B2 (en) | 2014-07-25 | 2018-01-02 | Microsoft Technology Licensing, Llc | Three-dimensional mixed-reality viewport |
US10416760B2 (en) | 2014-07-25 | 2019-09-17 | Microsoft Technology Licensing, Llc | Gaze-based object placement within a virtual reality environment |
US9865089B2 (en) | 2014-07-25 | 2018-01-09 | Microsoft Technology Licensing, Llc | Virtual reality environment with real world objects |
US9766460B2 (en) | 2014-07-25 | 2017-09-19 | Microsoft Technology Licensing, Llc | Ground plane adjustment in a virtual reality environment |
US9904055B2 (en) | 2014-07-25 | 2018-02-27 | Microsoft Technology Licensing, Llc | Smart placement of virtual objects to stay in the field of view of a head mounted display |
US10311638B2 (en) | 2014-07-25 | 2019-06-04 | Microsoft Technology Licensing, Llc | Anti-trip when immersed in a virtual reality environment |
US10451875B2 (en) | 2014-07-25 | 2019-10-22 | Microsoft Technology Licensing, Llc | Smart transparency for virtual objects |
US9858683B2 (en) | 2015-08-05 | 2018-01-02 | Intel Corporation | Method and system of planar surface detection objects in 3d space generated from captured images for image processing |
US20170171525A1 (en) | 2015-12-14 | 2017-06-15 | Sony Corporation | Electronic system including image processing unit for reconstructing 3d surfaces and iterative triangulation method |
US10030968B2 (en) * | 2016-02-08 | 2018-07-24 | Youspace, Inc. | Floor estimation for human computer interfaces |
US10591988B2 (en) * | 2016-06-28 | 2020-03-17 | Hiscene Information Technology Co., Ltd | Method for displaying user interface of head-mounted display device |
US10303259B2 (en) * | 2017-04-03 | 2019-05-28 | Youspace, Inc. | Systems and methods for gesture-based interaction |
US10303417B2 (en) | 2017-04-03 | 2019-05-28 | Youspace, Inc. | Interactive systems for depth-based input |
US10089750B2 (en) | 2017-02-02 | 2018-10-02 | Intel Corporation | Method and system of automatic object dimension measurement by using image processing |
CN107610174B (zh) * | 2017-09-22 | 2021-02-05 | 深圳大学 | 一种鲁棒的基于深度信息的平面检测方法及系统 |
WO2019056306A1 (zh) * | 2017-09-22 | 2019-03-28 | 深圳大学 | 一种鲁棒的基于深度信息的平面检测方法及系统 |
TWI658431B (zh) * | 2017-10-02 | 2019-05-01 | 緯創資通股份有限公司 | 影像處理方法、影像處理裝置及電腦可讀取記錄媒體 |
JP6892603B2 (ja) | 2017-12-07 | 2021-06-23 | 富士通株式会社 | 距離計測装置、距離計測方法および距離計測プログラム |
US10902625B1 (en) * | 2018-01-23 | 2021-01-26 | Apple Inc. | Planar surface detection |
CN109214348A (zh) * | 2018-09-19 | 2019-01-15 | 北京极智嘉科技有限公司 | 一种障碍物检测方法、装置、设备及存储介质 |
WO2020073982A1 (en) * | 2018-10-11 | 2020-04-16 | Shanghaitech University | System and method for extracting planar surface from depth image |
CN111352106B (zh) * | 2018-12-24 | 2022-06-14 | 珠海一微半导体股份有限公司 | 扫地机器人坡度识别方法、装置、芯片及扫地机器人 |
CN110223336B (zh) * | 2019-05-27 | 2023-10-17 | 上海交通大学 | 一种基于tof相机数据的平面拟合方法 |
JP7444604B2 (ja) * | 2019-12-26 | 2024-03-06 | キヤノン株式会社 | 画像処理装置及び方法、及び撮像装置 |
US11741676B2 (en) | 2021-01-21 | 2023-08-29 | Samsung Electronics Co., Ltd. | System and method for target plane detection and space estimation |
WO2022158834A1 (ko) * | 2021-01-21 | 2022-07-28 | 삼성전자 주식회사 | 타겟 평면 검출 및 공간 추정을 위한 장치 및 방법 |
US11734850B2 (en) * | 2021-04-26 | 2023-08-22 | Ubtech North America Research And Development Center Corp | On-floor obstacle detection method and mobile machine using the same |
US12001216B2 (en) * | 2021-05-31 | 2024-06-04 | Ubkang (Qingdao) Technology Co., Ltd. | Carpet detection method, movement control method, and mobile machine using the same |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978504A (en) * | 1997-02-19 | 1999-11-02 | Carnegie Mellon University | Fast planar segmentation of range data for mobile robots |
US6503195B1 (en) * | 1999-05-24 | 2003-01-07 | University Of North Carolina At Chapel Hill | Methods and systems for real-time structured light depth extraction and endoscope using real-time structured light depth extraction |
US7006709B2 (en) * | 2002-06-15 | 2006-02-28 | Microsoft Corporation | System and method deghosting mosaics using multiperspective plane sweep |
US7775883B2 (en) * | 2002-11-05 | 2010-08-17 | Disney Enterprises, Inc. | Video actuated interactive environment |
US6847728B2 (en) * | 2002-12-09 | 2005-01-25 | Sarnoff Corporation | Dynamic depth recovery from multiple synchronized video streams |
US7068815B2 (en) * | 2003-06-13 | 2006-06-27 | Sarnoff Corporation | Method and apparatus for ground detection and removal in vision systems |
US9652032B2 (en) * | 2004-03-02 | 2017-05-16 | Brian T. Mitchell | Simulated training environments based upon fixated objects in specified regions |
US7111783B2 (en) * | 2004-06-25 | 2006-09-26 | Board Of Trustees Operating Michigan State University | Automated dimensional inspection |
US7957016B2 (en) * | 2004-09-20 | 2011-06-07 | Marvell International Technology Ltd. | Method and apparatus for image processing |
WO2006107727A2 (en) * | 2005-04-01 | 2006-10-12 | San Diego State University Foundation | Edge-on sar scintillator devices and systems for enhanced spect, pet, and compton gamma cameras |
US8472675B2 (en) * | 2008-05-05 | 2013-06-25 | Biotronics, Inc. | Systems, methods and devices for use in filter-based assessment of carcass grading |
US8411081B2 (en) * | 2008-06-09 | 2013-04-02 | The Board Of Trustees Of The Leland Stanford Jr. University | Systems and methods for enhancing symmetry in 2D and 3D objects |
EP2154650A1 (en) * | 2008-08-12 | 2010-02-17 | IEE INTERNATIONAL ELECTRONICS & ENGINEERING S.A. | 3D time-of-flight camera system and position/orientation calibration method therefor |
EP2327061A4 (en) * | 2008-08-15 | 2016-11-16 | Univ Brown | METHOD AND DEVICE FOR ESTIMATING BODY SHAPES |
US8385599B2 (en) * | 2008-10-10 | 2013-02-26 | Sri International | System and method of detecting objects |
WO2010078034A2 (en) * | 2008-12-17 | 2010-07-08 | Saint-Gobain Ceramics & Plastics, Inc. | Scintillation array method and apparatus |
CN101533529B (zh) * | 2009-01-23 | 2011-11-30 | 北京建筑工程学院 | 基于深度图像的三维空间数据处理方法与装置 |
US8340400B2 (en) * | 2009-05-06 | 2012-12-25 | Honeywell International Inc. | Systems and methods for extracting planar features, matching the planar features, and estimating motion from the planar features |
DE102009042327A1 (de) * | 2009-09-21 | 2011-04-07 | Siemens Aktiengesellschaft | Effiziente Visualisierung von Objekteigenschaften mittels Volume Rendering |
US8199977B2 (en) * | 2010-05-07 | 2012-06-12 | Honeywell International Inc. | System and method for extraction of features from a 3-D point cloud |
US9280711B2 (en) * | 2010-09-21 | 2016-03-08 | Mobileye Vision Technologies Ltd. | Barrier and guardrail detection using a single camera |
US10776635B2 (en) * | 2010-09-21 | 2020-09-15 | Mobileye Vision Technologies Ltd. | Monocular cued detection of three-dimensional structures from depth images |
EP2447912B1 (en) * | 2010-10-27 | 2017-03-08 | Vaelsys Formacion y Desarrollo, S.L. | Method and device for the detection of change in illumination for vision systems |
US8761990B2 (en) * | 2011-03-30 | 2014-06-24 | Microsoft Corporation | Semi-autonomous mobile device driving with obstacle avoidance |
US9072929B1 (en) * | 2011-12-01 | 2015-07-07 | Nebraska Global Investment Company, LLC | Image capture system |
KR101909544B1 (ko) * | 2012-01-19 | 2018-10-18 | 삼성전자주식회사 | 평면 검출 장치 및 방법 |
KR20130098042A (ko) * | 2012-02-27 | 2013-09-04 | 삼성전자주식회사 | 깊이 정보 생성 장치 및 이를 포함하는 촬영 장치 |
EP2877959B1 (en) * | 2012-07-24 | 2018-04-18 | Datalogic USA, Inc. | Systems and methods of object measurement in an automated data reader |
US9811880B2 (en) * | 2012-11-09 | 2017-11-07 | The Boeing Company | Backfilling points in a point cloud |
-
2013
- 2013-06-11 US US13/915,618 patent/US20140363073A1/en not_active Abandoned
-
2014
- 2014-06-06 KR KR1020167000711A patent/KR20160019110A/ko not_active Application Discontinuation
- 2014-06-06 JP JP2016519565A patent/JP2016529584A/ja active Pending
- 2014-06-06 CA CA2913787A patent/CA2913787A1/en not_active Abandoned
- 2014-06-06 CN CN201480033605.9A patent/CN105359187A/zh active Pending
- 2014-06-06 RU RU2015153051A patent/RU2015153051A/ru not_active Application Discontinuation
- 2014-06-06 MX MX2015017154A patent/MX2015017154A/es unknown
- 2014-06-06 WO PCT/US2014/041425 patent/WO2014200869A1/en active Application Filing
- 2014-06-06 BR BR112015030440A patent/BR112015030440A2/pt not_active IP Right Cessation
- 2014-06-06 AU AU2014278452A patent/AU2014278452A1/en not_active Abandoned
- 2014-06-06 EP EP14735779.2A patent/EP3008692A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CN105359187A (zh) | 2016-02-24 |
WO2014200869A1 (en) | 2014-12-18 |
US20140363073A1 (en) | 2014-12-11 |
CA2913787A1 (en) | 2014-12-18 |
AU2014278452A1 (en) | 2015-12-17 |
EP3008692A1 (en) | 2016-04-20 |
RU2015153051A (ru) | 2017-06-16 |
JP2016529584A (ja) | 2016-09-23 |
MX2015017154A (es) | 2016-03-16 |
BR112015030440A2 (pt) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20160019110A (ko) | 깊이 카메라 데이터를 이용한 고성능 평면 검출 | |
KR102207768B1 (ko) | 이동 패턴 프로젝터에 의한 초고해상도 깊이 맵 | |
JP6944441B2 (ja) | 3次元再構成において構造特徴を検出し、組み合わせるための方法およびシステム | |
CN104380338B (zh) | 信息处理器以及信息处理方法 | |
EP3016071B1 (en) | Estimating device and estimation method | |
US10175765B2 (en) | Information processing device, information processing method, and computer program | |
TWI696906B (zh) | 處理地板之方法 | |
US9323977B2 (en) | Apparatus and method for processing 3D information | |
US11816848B2 (en) | Resilient dynamic projection mapping system and methods | |
KR20170023110A (ko) | 다중뷰 스테레오 및 캘리브레이션된 프로젝터를 이용한 깊이 추정 | |
US10438405B2 (en) | Detection of planar surfaces for use in scene modeling of a captured scene | |
US9406135B2 (en) | Device and method for estimating head pose | |
TWI457857B (zh) | 影像處理裝置,影像處理方法,及其電腦程式產品 | |
US9715620B2 (en) | Method to position a parallelepiped bounded scanning volume around a person | |
KR101434072B1 (ko) | 안정화 방법 및 컴퓨터 시스템 | |
US20180108173A1 (en) | Method for improving occluded edge quality in augmented reality based on depth camera | |
US9077963B2 (en) | Systems and methods for generating a depth map and converting two-dimensional data to stereoscopic data | |
WO2022201786A1 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
US20150022441A1 (en) | Method and apparatus for detecting interfacing region in depth image | |
NZ739813B2 (en) | Methods and systems for detecting and combining structural features in 3d reconstruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |