KR102320061B1 - 깊이 센서 교정 및 픽셀별 보정 - Google Patents

깊이 센서 교정 및 픽셀별 보정 Download PDF

Info

Publication number
KR102320061B1
KR102320061B1 KR1020167032123A KR20167032123A KR102320061B1 KR 102320061 B1 KR102320061 B1 KR 102320061B1 KR 1020167032123 A KR1020167032123 A KR 1020167032123A KR 20167032123 A KR20167032123 A KR 20167032123A KR 102320061 B1 KR102320061 B1 KR 102320061B1
Authority
KR
South Korea
Prior art keywords
depth
pixels
values
pixel
input
Prior art date
Application number
KR1020167032123A
Other languages
English (en)
Other versions
KR20160148596A (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20160148596A publication Critical patent/KR20160148596A/ko
Application granted granted Critical
Publication of KR102320061B1 publication Critical patent/KR102320061B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/497Means for monitoring or calibrating
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • G01S17/08Systems determining position data of a target for measuring distance only
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • G06T5/001
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • G06T7/596Depth or shape recovery from multiple images from stereo images from three or more stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Electromagnetism (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Measurement Of Optical Distance (AREA)

Abstract

본원에서 설명되는 다양한 기술은 깊이 센서에 의해 포착되는 입력 깊이 영상의 보정에 관한 것이다. 입력 깊이 영상은 픽셀들을 포함할 수 있고, 픽셀들은 입력 깊이 영상에서 각자의 깊이 값들을 가질 수 있다. 더욱이, 픽셀들에 대한 픽셀별 보정 값들은 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 이용하여 결정될 수 있다. 픽셀별 보정 값들은 픽셀들에 각각 대응하는 깊이 교정 데이터의 일부분들 및 깊이 값들에 기초하여 결정될 수 있다. 보정된 깊이 영상을 발생시키기 위해 픽셀별 보정 값들이 깊이 값들에 적용될 수 있다. 게다가, 보정된 깊이 영상이 출력될 수 있다.

Description

깊이 센서 교정 및 픽셀별 보정{DEPTH SENSOR CALIBRATION AND PER-PIXEL CORRECTION}
영상 센서의 사용이 최근에 보다 널리 확산되었다. 제조 후에 영상 센서의 내부 파라미터(intrinsic parameter)의 커스텀 교정(custom calibration)을 위한 다양한 기법이 흔히 이용된다. 영상 센서의 제조 후에 종래에 교정되는 내부 파라미터의 예는 초점 거리, 렌즈 왜곡, 광축 중심의 오프셋 등을 포함한다. 게다가, 내부 파라미터의 교정에 기초한 보정이 영상 센서가 판독치(reading)를 생성할 때 실시간으로 적용될 수 있다.
다양한 종래의 접근법이 영상 센서의 내부 파라미터를 교정하는 경향이 있는 반면, 종래의 접근법은 종종 깊이 판독치 바이어스(depth reading bias)를 적절히 해결하지 못한다. 이와 같이, 깊이 센서들 - 그 중 다수는 생산 현장을 떠날 때 제한된 정확도를 가짐 - 은 흔히 정밀 거리 측정 계기(예컨대, 레이저 거리 측정기)에 의해 측정되는 물체까지의 거리에 비해 이러한 물체까지의 부정확한 거리를 보고한다.
깊이 센서는 흔히 장면에서의 물체까지의 거리를 이용하는 다양한 응용분야에 사용되는 시각 시스템 내에 포함된다. 예를 들어, 깊이 센서는 실내 환경을 탐색(navigating)하는데 또는 탁상 위에서 물체를 조작하는데 이용될 수 있다. 깊이 센서는 전형적으로 생산 현장을 떠날 때 제한된 정확도를 가지며, 이는 깊이 센서의 하드웨어 성능 및 전통적인 교정 기법의 조합으로 인한 것일 수 있다. 예를 들어, 많은 깊이 센서가 흔히 제조 공정의 일부로서 센서별로 교정된다. 이러한 종래의 교정 기법으로 인해 흔히 야기되는 저수준의 정확도는, 그 중에서도 특히, 2차원(2D) 및 3차원(3D) 장면 재구성, 3D 스캐닝, 장면 세그먼트화(scene segmentation), 로봇 주행(robot navigation) 및 조작과 같은, 깊이 센서에 의해 검출되는 거리를 이용하는 응용분야에 대한 전체적인 시스템 성능에 해로울 수 있다.
깊이 센서에 의해 포착되는 입력 깊이 영상의 보정에 관한 다양한 기술이 본원에 기술된다. 입력 깊이 영상은 픽셀들을 포함할 수 있고, 픽셀들은 입력 깊이 영상에서 각자의 깊이 값들을 가질 수 있다. 더욱이, 픽셀들에 대한 픽셀별 보정 값들은 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 이용하여 결정될 수 있다. 픽셀별 보정 값들은 픽셀들에 각각 대응하는 깊이 교정 데이터의 일부분들 및 깊이 값들에 기초하여 결정될 수 있다. 보정된 깊이 영상을 발생시키기 위해 픽셀별 보정 값들이 깊이 값들에 적용될 수 있다. 게다가, 보정된 깊이 영상이 출력될 수 있다.
다양한 실시예에 따르면, 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터는 파라미터 행렬을 포함할 수 있고, 파라미터 행렬은 픽셀들에 대한 오차 적합화 파라미터(error fitting parameter)들을 포함할 수 있다. 이와 같이, 입력 깊이 영상의 각각의 픽셀에 대해, 픽셀에 대한 파라미터 행렬로부터의 오차 적합화 파라미터들은 비선형 오류 함수를 평가할 때 픽셀별 보정 값을 계산하는데 이용될 수 있다 다른 실시예에 따르면, 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터는 픽셀들에 대한 미리 설정된 깊이 값들에서의 미리 정의된 보정 값들을 포함하는 룩업 테이블(lookup table)을 포함할 수 있다.
다양한 실시예에 따르면, 각자의 패치(patch)들을 형성하는 입력 깊이 영상의 복수의 픽셀들이 식별될 수 있다. 패치들은 깊이 교정 데이터의 각자의 서브셋들을 할당받을 수 있다. 예를 들어, 주어진 패치에 포함된 복수의 픽셀들은 깊이 교정 데이터의 대응하는 서브셋을 공유할 수 있다. 이와 같이, 픽셀별 보정 값들은 픽셀들에 각각 대응하는 깊이 교정 데이터의 서브셋들 및 깊이 값들에 기초하여 결정될 수 있다.
게다가, 본원에 기재되는 다양한 실시예는 깊이 센서의 교정에 관한 것이다. 깊이 센서에 의해 포착되는 표면의 깊이 영상들이 수신될 수 있다. 표면의 깊이 영상들의 서브셋들이 표면으로부터 각자의 거리들에서 포착될 수 있다. 더욱이, 깊이 영상들 각각은 픽셀들을 포함하고, 여기서 픽셀들은 깊이 영상들 각각에서 각자의 깊이 값들을 가진다. 깊이 영상들의 서브셋들에 대응하는 표면에 대한 각자의 실제 측정치(ground truth measurements)가 또한 수신될 수 있다. 실제 측정치는 거리 측정 디바이스에 의해 측정될 수 있다. 픽셀들의 깊이 값들이 표면으로부터 각자의 거리들에서 포착되는 깊이 영상들의 서브셋들 각각에서 깊이 영상들에 걸쳐 평균될 수 있다. 게다가, 표면으로부터 각자의 거리들 각각에서 픽셀들에 대한 오차 값들을 계산하기 위해 픽셀들의 평균된 깊이 값들이 실제 측정치와 비교될 수 있다. 더욱이, 표면으로부터 각자의 거리들 각각에서의 픽셀들에 대한 오차 값들 및 실제 측정치에 기초하여 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터가 발생될 수 있다.
이상의 요약은 본원에서 논의되는 시스템 및/또는 방법의 일부 양태에 대한 기본적인 이해를 제공하기 위해 간략화된 요약을 제공한다. 이 요약은 본원에서 논의되는 시스템 및/또는 방법의 전반적인 개요가 아니다. 이 요약은 핵심적인/필수적인 요소를 식별하거나 이러한 시스템 및/또는 방법의 범주를 정하는 것으로 의도되어 있지 않다. 이 요약의 유일한 목적은 나중에 제시되는 보다 상세한 설명에 대한 서문으로서 몇몇 개념들을 간략화된 형태로 제공하는 데 있다.
도 1은 깊이 센서에 의해 생성되는 입력 깊이 영상들을 보정하는 예시적인 시스템의 기능 블록도.
도 2는 예시적인 깊이 영상을 나타낸 도면.
도 3은 깊이 센서에 의해 포착되는 깊이 영상들을 보정하는 다른 예시적인 시스템의 기능 블록도.
도 4는 깊이 센서가 입력 깊이 영상들을 보정할 수 있는, 깊이 센서를 포함하는 예시적인 시스템의 기능 블록도.
도 5는 깊이 센서를 교정하는 예시적인 시스템의 기능 블록도.
도 6은 깊이 센서를 교정하는 다른 예시적인 시스템의 기능 블록도.
도 7은 수직 띠를 포함하는 예시적인 깊이 영상을 나타낸 도면.
도 8은 입력 깊이 영상을 보정하는 예시적인 방법을 나타낸 흐름도.
도 9는 깊이 센서를 교정하는 예시적인 방법을 나타낸 흐름도.
도 10은 예시적인 컴퓨팅 디바이스를 나타낸 도면.
깊이 센서 교정 및 깊이 센서에 의해 포착되는 깊이 영상의 픽셀별 보정에 관한 다양한 기술이 이제 도면을 참조하여 설명되고, 도면에서 유사한 참조 번호는 그 전체에 걸쳐 유사한 요소를 지칭하는데 사용된다. 이하의 설명에서, 설명의 목적상, 하나 이상의 양태의 완전한 이해를 제공하기 위해 수많은 구체적인 상세가 기재된다. 그렇지만, 이러한 양태(들)가 이 구체적 상세 없이도 실시될 수 있다는 것이 명백할 수 있다. 다른 경우에, 하나 이상의 양태를 설명하는 것을 용이하게 하기 위해 널리 공지된 구조 및 디바이스는 블록도 형태로 도시되어 있다. 게다가, 특정의 시스템 컴포넌트들에 의해 수행되는 것으로 기술되는 기능이 다수의 컴포넌트들에 의해 수행될 수 있다는 것을 잘 알 것이다. 이와 유사하게, 예를 들어, 컴포넌트가 다수의 컴포넌트들에 의해 수행되는 것으로 기술되는 기능을 수행하도록 구성될 수 있다.
더욱이, "또는"이라는 용어는 배타적 "논리합"(exclusive "or")이 아니라 포괄적 "논리합"(inclusive "or")을 의미하는 것으로 의도되어 있다. 즉, 달리 명시되지 않는 한 또는 문맥으로부터 명확하지 않는 한, "X가 A 또는 B를 이용한다"라는 문구는 자연스러운 포괄적 치환(natural inclusive permutation)들 중 어느 하나를 의미하는 것으로 의도되어 있다. 즉, "X가 A 또는 B를 이용한다"라는 문구는 다음과 같은 경우들: X가 A를 이용한다; X가 B를 이용한다; 또는 X가 A와 B 둘 다를 이용한다 중 임의의 것에 의해 충족된다. 그에 부가하여, 본 출원 및 첨부된 청구범위에서 사용되는 단수 표현은, 달리 명시되지 않는 한 또는 단수 형태에 관한 것이라고 문맥으로부터 명확하지 않는 한, 일반적으로 "하나 이상의"를 의미하는 것으로 해석되어야 한다.
이제 도면을 참조하면, 도 1은 깊이 센서(102)에 의해 생성되는 입력 깊이 영상들을 보정하는 시스템(100)을 나타내고 있다. 시스템(100)은 깊이 센서(102) 및 깊이 보정 시스템(104)을 포함한다. 깊이 센서(102)는 입력 깊이 영상(106)을 포착할 수 있다. 입력 깊이 영상(106)은 픽셀들을 포함하고, 픽셀들은 입력 깊이 영상(106)에서 각자의 깊이 값들을 가진다. 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)은 깊이 보정 시스템(104)에 제공될 수 있다. 깊이 보정 시스템(104)은, 보정된 깊이 영상(108)을 발생시키기 위해, 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)에서의 깊이 값들을 보정할 수 있다. 이와 같이, 작동 시에 깊이 센서(102)가 입력 깊이 영상들(예컨대, 깊이 프레임들)을 생성할 때, 깊이 보정 시스템(104)은 깊이 센서(102)에 의해 보고되는 입력 깊이 영상들에서의 깊이 값들의 픽셀별 보정을 적용할 수 있다.
다양한 유형의 깊이 센서들이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다. 예를 들어, 깊이 센서(102)는 구조화된 광 3D 스캐너, TOF(time-of-flight) 스캐너, 변조된 광 3D 스캐너 등일 수 있다. 예를 들어, 구조화된 광 3D 스캐너는 장면에 광 패턴을 투사하고, 광의 스냅샷을 포착하며, 입력 깊이 영상(106)에서의 픽셀들의 깊이 값들을 결정하기 위해 패턴의 왜곡을 분석할 수 있다.
깊이 보정 시스템(104)은 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)을 수신하는 입력 컴포넌트(110)를 포함한다. 예를 들어, 입력 컴포넌트(110)는 입력 깊이 영상(106)이 깊이 센서(102)에 의해 포착되는 것에 응답하여 입력 깊이 영상(106)을 수신할 수 있다(예컨대, 깊이 센서(102)가 입력 깊이 영상들의 스트림을 깊이 보정 시스템(104)으로 송신할 수 있다). 다른 예에 따르면, 입력 컴포넌트(110)는 (입력 깊이 영상(106)을 포함하는) 일단의 입력 깊이 영상들을 수신할 수 있다(예컨대, 깊이 센서(102)는 일단의 입력 깊이 영상들을 수집하고 송신할 수 있다). 본원에 기재되는 예들 중 다수가 입력 깊이 영상(106)을 기술하고 있지만, 이러한 예가 깊이 센서(102)에 의해 포착되는 다른 입력 깊이 영상들로 확장될 수 있다는 것을 잘 알 것이다.
일 예에 따르면, 입력 컴포넌트(110)는 입력 깊이 영상(106)을 깊이 센서(102)로부터 직접 수신할 수 있다. 이 예의 예시에 따르면, 컴퓨팅 디바이스가 깊이 보정 시스템(104)을 포함할 수 있고, 이러한 컴퓨팅 디바이스는 깊이 센서(102)와 결합되거나 깊이 센서(102)를 포함할 수 있다. 다른 예에 따르면, 입력 컴포넌트(110)는 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)을 (도시되지 않은) 네트워크 내의 별개의 노드로부터 수신할 수 있다. 예시로서, 서버 컴퓨팅 디바이스(또는 서버 컴퓨팅 디바이스들)가 깊이 보정 시스템(104)을 포함할 수 있다.
깊이 보정 시스템(104)은 깊이 센서(102)에 대해 교정되는 비선형 오차 모델의 깊이 교정 데이터(114)를 이용하여 픽셀들에 대한 픽셀별 보정 값들을 결정하는 조절 결정 컴포넌트(112)를 추가로 포함한다. 픽셀별 보정 값들은 픽셀들에 각각 대응하는 깊이 교정 데이터(114)의 일부분들에 기초하여 조절 결정 컴포넌트(112)에 의해 결정된다. 조절 결정 컴포넌트(112)는 또한 입력 깊이 영상(106)에서의 깊이 값들에 기초하여 픽셀별 보정 값들을 결정한다.
더욱이, 깊이 보정 시스템(104)은 보정된 깊이 영상(108)을 발생시키기 위해 깊이 값들에 픽셀별 보정 값들을 적용하는 보상 컴포넌트(116)를 포함한다. 예를 들어, 보상 컴포넌트(116)는 보정된 깊이 영상(108)을 생성하기 위해 픽셀별 보정 값들을 대응하는 깊이 값들로부터 차감할 수 있다. 보정된 깊이 영상(108)은 또한 깊이 보정 시스템(104)의 출력 컴포넌트(118)에 의해 출력될 수 있다. 출력 컴포넌트(118)는, 예를 들어, 보정된 깊이 영상(108)이 디스플레이 화면 상에 디스플레이되게 하고, 데이터 저장소에 유지되게 하며, 별개의 컴퓨팅 디바이스(또는 컴퓨팅 디바이스들)로 전송되게 하고, 이들의 조합 및 기타를 할 수 있다.
이와 같이, 작동 시에, 입력 깊이 영상(106)이 깊이 센서(102)에 의해 생성되는 것에 응답하여, 조절 결정 컴포넌트(112)는 픽셀들의 보고된 깊이 값들에 기초하여 픽셀별 보정 값들(예컨대, 입력 깊이 영상(106)에서의 각각의 픽셀에 대한 오차들)을 계산할 수 있다. 더욱이, 보상 컴포넌트(116)는 픽셀별 보정 값들을 대응하는 깊이 값들로부터 차감할 수 있다(예컨대, 픽셀별 오차가 입력 깊이 영상(106)으로부터의 원래 판독치(raw reading)로부터 차감될 수 있다). 그에 따라, 깊이 보정 시스템(104)은 시스템 바이어스(음(negative)의 바이어스 및/또는 양(positive)의 바이어스)를 보상할 수 있다.
다양한 실시예에 따르면, 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)는 파라미터 행렬을 포함할 수 있고, 파라미터 행렬은 픽셀들에 대한 오차 적합화 파라미터들을 포함할 수 있다. 이와 같이, 조절 결정 컴포넌트(112)는 파라미터 행렬을 이용하여 픽셀별 보정 값들을 결정할 수 있다. 보다 상세하게는, 조절 결정 컴포넌트(112)는 파라미터 행렬로부터 픽셀에 대한 오차 적합화 파라미터들을 검색할 수 있고, 여기서 픽셀은 입력 깊이 영상(106)에서 깊이 값을 가진다. 더욱이, 조절 결정 컴포넌트(112)는 픽셀에 대한 오차 적합화 파라미터들을 사용하여 비선형 오차 함수를 평가함으로써 픽셀에 대한 픽셀별 보정 값을 계산할 수 있다. 깊이 값에 기초하여 입력 깊이 영상(106)에 대해 비선형 오차 함수가 조절 결정 컴포넌트(112)에 의해 평가될 수 있다. 이상은 입력 깊이 영상(106)의 픽셀들 각각에 대해 조절 결정 컴포넌트(112)에 의해 수행될 수 있다.
깊이 교정 데이터(114)가 파라미터 행렬을 포함하는 일 예에 따르면, 비선형 오차 함수는 오차 = Ax2 + Bx + C와 같은 2차 다항식일 수 있다. 이상에서, x는 입력 깊이 영상(106)에서의 주어진 픽셀에 대한 깊이 값이고, A, B, 및 C는 파라미터 행렬로부터의 주어진 픽셀에 대한 오차 적합화 파라미터들이다. 그렇지만, 파라미터 행렬로부터의 오차 적합화 파라미터들을 사용하여 조절 결정 컴포넌트(112)에 의해 평가될 수 있는 다른 비선형 오차 함수들(예컨대, 삼각 함수 등)이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다는 것을 잘 알 것이다.
다른 실시예에 따르면, 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)는 룩업 테이블을 포함할 수 있다. 룩업 테이블은 픽셀들에 대한 미리 설정된 깊이 값들에서의 미리 정의된 보정 값들을 포함할 수 있다. 조절 결정 컴포넌트(112)는 룩업 테이블을 이용하여 픽셀별 보정 값들을 결정할 수 있다. 보다 상세하게는, 조절 결정 컴포넌트(112)는 룩업 테이블로부터 픽셀에 대한 제1 미리 설정된 깊이 값에서의 제1 미리 정의된 보정 값을 검색할 수 있고, 여기서 픽셀은 입력 깊이 영상(106)에서 깊이 값을 가진다. 더욱이, 제1 미리 설정된 깊이 값은 룩업 테이블에서 픽셀에 대한 깊이 값과 같거나 그보다 바로 위의 것일 수 있다. 게다가, 조절 결정 컴포넌트(112)는 룩업 테이블에서 픽셀에 대한 제2 미리 설정된 깊이 값에서의 제2 미리 정의된 보정 값을 검색할 수 있다. 제2 미리 설정된 깊이 값은 룩업 테이블에서 픽셀에 대한 깊이 값보다 바로 아래의 것일 수 있다. 조절 결정 컴포넌트(112)는 제1 미리 설정된 깊이 값에서의 제1 미리 정의된 보정 값과 제2 미리 설정된 깊이 값에서의 제2 미리 정의된 보정 값 사이의 선형 보간에 기초한 깊이 값을 가지는 픽셀에 대한 픽셀별 보정 값을 결정할 수 있다. 다시 말하지만, 이상은 입력 깊이 영상(106)의 픽셀들 각각에 대해 조절 결정 컴포넌트(112)에 의해 수행될 수 있다.
깊이 교정 데이터(114)는 픽셀별로 또는 패치별로 교정된 데이터의 서브셋들을 포함할 수 있고, 여기서 패치는 복수의 픽셀들을 포함할 수 있다. 깊이 교정 데이터(114)가 픽셀별로 교정되는 예를 들면, 깊이 교정 데이터(114)는 제1 픽셀에 대해 교정된 제1 데이터 서브셋, 제2 픽셀에 대해 교정된 제2 데이터 서브셋 등을 포함할 수 있다. 깊이 교정 데이터(114)가 패치별로 교정되는 다른 예를 들면, 깊이 교정 데이터(114)는 제1 패치(예컨대, 제1 복수의 픽셀들)에 대해 교정된 제1 데이터 서브셋, 제2 패치(예컨대, 제2 복수의 픽셀들)에 대해 교정된 제2 데이터 서브셋 등을 포함할 수 있다.
다양한 실시예에 따르면, 깊이 교정 데이터(114)는 패치별로 교정되는 데이터 서브셋들을 포함할 수 있다. 그에 따라, 조절 결정 컴포넌트(112)는 각자의 패치들을 형성하는 입력 깊이 영상(106)의 복수의 픽셀들을 식별할 수 있다. 패치들은 깊이 교정 데이터(114)의 각자의 서브셋들을 할당받을 수 있다. 게다가, 패치에 포함된 복수의 픽셀들은 깊이 교정 데이터(114)의 서브셋을 공유할 수 있다. 더욱이, 조절 결정 컴포넌트(112)는 픽셀들에 각각 대응하는 깊이 교정 데이터(114)의 서브셋들 및 깊이 값들에 기초하여 픽셀별 보정 값들을 결정할 수 있다.
예시로서, 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)는 파라미터 행렬을 포함할 수 있고, 깊이 교정 데이터(114)는 패치별로 교정된 데이터 서브셋들을 포함할 수 있다. 이 예시에 따르면, 입력 깊이 영상(106)은 그 입력 깊이 영상(106)의 각자의 복수의 픽셀들을 포함하는 (예컨대, 조절 결정 컴포넌트(112)에 의해 식별되는) 복수의 패치들을 포함할 수 있다. 더욱이, 패치들은 파라미터 행렬의 각자의 오차 적합화 파라미터들을 할당받을 수 있다. 이와 같이, 주어진 패치에 포함된 복수의 픽셀들은 패치에 할당된 오차 적합화 파라미터들을 공유할 수 있다.
패치들이 실질적으로 임의의 형상 및 크기를 가질 수 있는 것이 생각되고 있다. 예를 들어, 패치들이 정사각형 또는 직사각형일 수 있지만, 다른 형상들이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다. 패치들이 정사각형 형상을 가지는 다양한 예에 따르면, 패치들은 8x8(예컨대, 8 픽셀 폭 x 8 픽셀 높이) 또는 20x20일 수 있지만, 다른 패치 크기들이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다.
추가의 예에 따르면, 패치들 각각은 입력 깊이 영상(106)의 미리 설정된 비율(fraction)일 수 있다. 이 예에 따르면, 입력 깊이 영상의 미리 설정된 비율은 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)의 해상도와 무관할 수 있다. 이와 같이, 깊이 교정 데이터(114)는 해상도와 무관할 수 있다. 그에 따라, 패치의 크기를 픽셀 단위로 측정하는 대신에, 패치가 지정된 적용가능 영역(예컨대, 패치가 입력 깊이 영상(106)의 주어진 영역 내의 픽셀들에 적용됨)을 갖는 프레임 해상도의 미리 설정된 비율(예컨대, 정사각형 패치의 폭은 입력 깊이 영상(106)의 폭의 1/40일 수 있고 정사각형 패치의 높이는 입력 깊이 영상(106)의 높이의 1/30일 수 있음)일 수 있다. 이 예에 따르면, 패치가 절대적인 용어(absolute term)가 아니라 상대적인 용어(relative term)로 정의될 수 있다.
컴퓨팅 디바이스(또는 복수의 컴퓨팅 디바이스들)가 깊이 보정 시스템(104)을 포함할 수 있는 것이 생각되고 있다. 예시로서, 깊이 보정 시스템(104)은 컴퓨팅 디바이스의 프로세서 또는 GPU(graphics processing unit)에 의해 실행될 수 있다. 다양한 예에 따르면, 깊이 교정 데이터(114)이 컴퓨팅 디바이스의 데이터 저장소, 컴퓨팅 디바이스의 펌웨어 등에 유지될 수 있다. 더욱이, 실질적으로 임의의 유형의 컴퓨팅 디바이스(예컨대, 개인용 컴퓨터, 모바일 컴퓨팅 디바이스, 서버 컴퓨팅 디바이스, 게임 콘솔, 로봇, 차량, 카메라, 텔레비전 등에 포함된 임베디드 컴퓨팅 디바이스 등)가 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다.
도 2를 참조하면, 예시적인 깊이 영상(200)(예컨대, 깊이 프레임)이 도시된다. 깊이 영상(200)은 도 1의 입력 깊이 영상(106)일 수 있다. 더욱이, 깊이 영상(200)에 대해 깊이 영상(200)의 각자의 복수의 픽셀들을 포함하는 복수의 패치들(패치(202)를 포함함)이 식별될 수 있다. 도 2의 도시된 예는 정사각형 형상의 패치들을 포함하는 깊이 영상(200)을 나타내지만, 다른 형상의 패치들이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다. 청구된 발명 요지가 또한 도 2의 예시된 예에 도시된 패치들의 수, 깊이 영상(200)의 해상도, 또는 깊이 영상(200)의 종횡비로 제한되지 않는다.
다양한 실시예에 따르면, 패치들은 깊이 영상(200)의 각자의 미리 결정된 복수의 픽셀들을 포함할 수 있다. 다른 실시예에서, 패치들은 깊이 영상(200)의 미리 설정된 비율일 수 있고, 각각이 깊이 영상(200) 내의 각자의 지정된 영역에 있을 수 있다. 이와 같이, 예를 들어, 패치(202)는 깊이 영상(200)의 폭의 1/20, 깊이 영상(200)의 높이의 1/15일 수 있고, 깊이 영상(200)의 상부 우측 코너에 위치될 수 있다.
도 2에 예시된 바와 같이, 깊이 영상(200)의 섹션(204)이 분해도로 도시되어 있다. 섹션(204)에, 4개의 패치 - 즉, 패치(206), 패치(208), 패치(210), 및 패치(212) - 가 도시되어 있다. 도 2에 예시된 바와 같이, 패치들(206 내지 212) 각각은 8 픽셀 폭 x 8 픽셀 높이이다. 그렇지만, 또다시 유의할 점은 패치들(206 내지 212)이 다른 수의 픽셀들을 포함할 수 있다는 것이다.
더욱이, 깊이 영상(200)의 패치들 각각은 도 1의 깊이 교정 데이터(114)의 대응하는 서브셋을 할당받을 수 있다. 예를 들어, 패치(206)에 포함된 픽셀들은 패치(206)에 할당된 깊이 교정 데이터(114)의 서브셋을 공유할 수 있다. 이와 같이, 패치(206)에 할당된 깊이 교정 데이터(114)의 서브셋은 패치(206) 내의 픽셀들의 픽셀별 보정 값들을 결정하는데 사용될 수 있다.
도 3을 참조하면, 깊이 센서(102)에 의해 포착되는 깊이 영상들을 보정하는 다른 시스템(300)이 예시되어 있다. 시스템(300)은 이 경우에도 깊이 센서(102) 및 깊이 보정 시스템(104)을 포함한다. 이상과 유사하게, 깊이 보정 시스템(104)은 입력 컴포넌트(110), 조절 결정 컴포넌트(112), 깊이 교정 데이터(114), 보상 컴포넌트(116), 및 출력 컴포넌트(118)를 포함할 수 있다.
보다 상세하게는, 입력 컴포넌트(110)는 깊이 센서(102)에 의해 포착되는 입력 깊이 영상(106)을 수신할 수 있다. 더욱이, 조절 결정 컴포넌트(112)는 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)를 이용하여 픽셀들에 대한 픽셀별 보정 값들을 결정할 수 있다. 조절 결정 컴포넌트(112)는 또한 각자의 패치들을 형성하는 입력 깊이 영상(106)의 복수의 픽셀들을 식별할 수 있다. 게다가, 패치들은 깊이 교정 데이터(114)의 각자의 서브셋들을 할당받는다. 이와 같이, 패치에 포함된 복수의 픽셀들은 깊이 교정 데이터(114)의 서브셋을 공유할 수 있다. 더욱이, 조절 결정 컴포넌트(112)는 픽셀들에 각각 대응하는 깊이 교정 데이터(114)의 서브셋들 및 깊이 값들에 기초하여 픽셀별 보정 값들을 결정할 수 있다. 그에 따라, 패치에 포함된 픽셀들에 의해 공유되는 깊이 교정 데이터(114)의 서브셋은 패치에 포함된 픽셀들에 대한 픽셀별 보정 값들을 결정하기 위해 조절 결정 컴포넌트(112)에 의해 사용될 수 있다. 게다가, 보상 컴포넌트(116)는 보정된 깊이 영상(108)을 발생시키기 위해 픽셀별 보정 값들을 깊이 값들에 적용할 수 있다.
깊이 보정 시스템(104)은 패치들 사이를 매끄럽게 하기 위해 보정된 깊이 영상(108)을 필터링하는 필터 컴포넌트(302)를 추가로 포함할 수 있다. 이와 같이, 보상 컴포넌트(116)가 픽셀별 보정 값들을 깊이 값들에 적용한 것에 응답하여, 필터 컴포넌트(302)는 보정된 깊이 영상(108)을 필터링할 수 있다. 더욱이, 출력 컴포넌트(118)는 필터링된 보정된 깊이 영상(108)을 출력할 수 있다. 필터 컴포넌트(302)는 패치들 사이에서 실질적으로 임의의 유형의 필터링을 이용할 수 있다. 예를 들어, 필터 컴포넌트(302)는 양방향 필터링(bilateral filtering), 유도 필터링(guided filtering) 등을 이용할 수 있다. 필터 컴포넌트(302)에 의해 구현되는 이러한 필터링은 패치들 사이를 매끄럽게 할 수 있고, 그로써 패치들 사이에서 아티팩트가 눈에 띄는 것을 완화시킬 수 있다.
이제 도 4를 참조하면, 깊이 센서(102)를 포함하는 시스템(400)이 예시되어 있고, 여기서 깊이 센서(102)는 입력 깊이 영상들을 보정할 수 있다. 도 4의 예에서, 깊이 센서(102)는 깊이 보정 시스템(104)을 포함하고, 깊이 보정 시스템(104)은 조절 결정 컴포넌트(112), 깊이 교정 데이터(114), 및 보상 컴포넌트(116)를 추가로 포함할 수 있다. 이와 같이, 깊이 센서(102)는 보정된 깊이 영상을 발생시키기 위해 깊이 센서(102)에 의해 포착되는 입력 깊이 영상의 픽셀별 보정을 구현하기 위해 깊이 보정 시스템(104)을 사용할 수 있다.
도 5를 참조하면, 깊이 센서(102)를 교정하는 시스템(500)이 예시되어 있다. 시스템(500)은 깊이 센서(102)에 의해 포착되는 표면(504)의 깊이 영상들 및 거리 측정 디바이스(506)에 의해 측정되는 표면(504)에 대응하는 실제 측정치로부터 깊이 센서(102)에 대한 깊이 교정 데이터(114)를 발생시키는 교정 시스템(502)을 포함한다. 일 예에 따르면, 표면(504)은 편평한 벽일 수 있지만, 깊이 센서(102)의 투사 평면으로부터 표면(504)까지의 거리(들)의 실제 측정치가 직접 결정될 수 있는 한(예컨대, 표면(504)이 바닥 등일 수 있는 한), 표면(504)이 임의의 알려진 기하학적 형태를 가질 수 있는 것이 생각되고 있다.
거리 측정 디바이스(506)는 표면(504)까지의 거리를 측정하고, 여기서 거리 측정 디바이스(506)에 의해 측정되는 이러한 거리는 실제 측정치로서 취급된다. 거리 측정 디바이스(506)는, 예를 들어, 레이저 거리 측정기일 수 있지만, 다른 유형의 거리 측정 디바이스들이 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다. 예를 들어, 거리 측정 디바이스(506)는 실제 측정치를 결정할 수 있는 (예컨대, 깊이 센서(102) 또는 이동가능 장치(514)의) 내부 측정 디바이스 및/또는 센서일 수 있다. 이 예에 따르면, 거리 측정 디바이스(506)는 관성 측정 유닛(inertial measurement unit)(IMU) 또는 주행 거리 측정(odometry)을 이용하는 컴포넌트일 수 있다. 더욱이, 거리 측정 디바이스(506)가, 예를 들어, 실제 측정치를 직접 측정할 필요가 없는 것이 생각되고 있다.
교정 시스템(502)은 깊이 센서(102)에 의해 포착되는 표면(504)의 깊이 영상들을 수신할 수 있다. 표면(504)의 깊이 영상들의 서브셋들이 표면(504)으로부터 각자의 거리들에서 포착될 수 있다(예컨대, 표면(504)의 깊이 영상들의 제1 서브셋이 표면(504)으로부터 제1 거리에서 포착될 수 있고, 표면(504)의 깊이 영상들의 제2 서브셋이 표면(504)으로부터 제2 거리에서 포착될 수 있으며, 이하 마찬가지이다). 게다가, 깊이 영상들 각각은 픽셀들을 포함할 수 있고, 여기서 픽셀들은 깊이 영상들 각각에서 각자의 깊이 값들을 가진다. 교정 시스템(502)은 또한 깊이 영상들의 서브셋들에 대응하는 표면에 대한 각자의 실제 측정치를 (예컨대, 거리 측정 디바이스(506)로부터) 수신할 수 있다.
교정 시스템(502)은 픽셀들의 깊이 값들을 표면(504)으로부터 각자의 거리들에서 포착되는 서브셋들 각각에서 깊이 영상들에 걸쳐 평균할 수 있는 샘플 결합 컴포넌트(508)를 포함한다. 예시로서, 50 cm의 거리에서 깊이 센서(102)에 의해 포착되는 표면(504)의 100개의 깊이 영상들이 교정 시스템(502)에 의해 수신되는 경우, 샘플 결합 컴포넌트(508)는 100개의 깊이 영상들에 걸쳐 픽셀들의 깊이 값들을 평균할 수 있다. 표면(504)으로부터 다른 거리들에서 포착되는 표면(504)의 깊이 영상들도 마찬가지로 샘플 결합 컴포넌트(508)에 의해 결합될 수 있다.
더욱이, 교정 시스템(502)은, 표면(504)으로부터 각자의 거리들 각각에서 픽셀들에 대한 오차 값들을 계산하기 위해, 픽셀들의 평균된 깊이 값들을 거리 측정 디바이스(506)로부터 획득되는 실제 측정치와 비교하는 오차 계산 컴포넌트(510)를 포함할 수 있다. 50 cm에서 포착되는 표면(504)의 100개의 깊이 영상들이 수신되고 100개의 깊이 영상들에 걸쳐 픽셀들의 깊이 값들이 평균되는 앞서 언급된 예시를 다시 참조하면, 오차 계산 컴포넌트(510)는, 50 cm의 거리에서 픽셀들에 대한 오차 값들을 계산하기 위해, 픽셀들의 평균된 깊이 값들을 실제 측정치(예컨대, 거리 측정 디바이스(506)는 이 예시에서 100개의 깊이 영상들에 대해 50 cm의 실제 측정치를 제공할 수 있음)와 비교할 수 있다.
교정 시스템(502)은 표면(504)으로부터 각자의 거리들 각각에서의 픽셀들에 대한 오차 값들 및 실제 측정치에 기초하여 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)를 발생시키는 교정 데이터 발생 컴포넌트(512)를 추가로 포함할 수 있다. 다양한 실시예에 따르면, 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)는 파라미터 행렬을 포함할 수 있고, 여기서 파라미터 행렬은 픽셀들에 대한 오차 적합화 파라미터들을 포함한다. 다른 실시예에 따르면, 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)는 룩업 테이블을 포함할 수 있고, 여기서 룩업 테이블은 픽셀들에 대한 미리 설정된 깊이 값들에서의 미리 정의된 보정 값들을 포함한다.
시스템(500)은 깊이 센서(102) 및 거리 측정 디바이스(506)를 표면(504)에 대해 움직일 수 있는 이동가능 장치(514)를 추가로 포함할 수 있다. 예를 들어, 이동가능 장치(514)는 깊이 센서(102) 및 거리 측정 디바이스(506)가 장착되어 있는 이동가능 플랫폼일 수 있다. 다른 예에 따르면, 이동가능 장치(514)는 깊이 센서(102) 및 거리 측정 디바이스(506)를 포함하는 로봇일 수 있다. 그렇지만, 청구된 발명 요지가 전술한 예들로 제한되지 않는다.
다양한 실시예에 따르면, 이동가능 장치(514)는, 깊이 센서(102)를 표면(504)에 수직인 축을 따라 이동시킬 수 있도록, 자율적으로 움직이도록 프로그램적으로 제어될 수 있다. 게다가, 이동가능 장치(514)는 깊이 센서(102)를 표면(504)에 대해 정렬시킬 수 있다(예컨대, 깊이 센서(102)를 패닝(panning) 및/또는 틸팅(tilting)함). 일 예에 따르면, 이동가능 장치(514)는 (예컨대, 자율 주행 로봇 시나리오에서) 교정을 실행할 표면의 자동 발견을 이용할 수 있지만, 청구된 발명 요지가 이러한 예로 제한되지 않는다.
더욱이, 표면(504)의 편평하지 않은 부분들이 검출되고 장면으로부터 제거될 수 있는 것(예컨대, 벽, 바닥 등에 있는 돌출부(bump)가 검출되고 제거될 수 있음)이 생각되고 있다. 예를 들어, 교정 시스템(502)은 표면(504)의 편평하지 않은 부분들을 검출하고 제거할 수 있지만, 청구된 발명 요지가 그렇게 제한되지 않는다.
한 세트의 거리들에서의 표면(504)으로부터 각각의 거리에 대해, 깊이 센서(102)는 이러한 거리로부터 표면(504)의 복수의 깊이 영상을 포착할 수 있고, 이 깊이 영상이 교정 시스템(502)에 제공될 수 있다. 예를 들어, 이동가능 장치(514)가 표면(504)으로부터 다음 거리로 이동하기 전에 T개의 샘플들이 깊이 센서(102)로부터 수집될 수 있고, 여기서 T는 실질적으로 임의의 정수일 수 있다(예컨대, T는 100, 기타일 수 있다). 각각의 측정 이전에, 깊이 센서(102)가 표면(504)에 대해 정렬될 수 있다. 이러한 정렬은, 예를 들어, 깊이 센서(102)를 패닝하는 것에 의해 기계적으로 달성될 수 있다. 다른 예에 따르면, 평면이 점 구름(point cloud)을 통해 적합화(fit)될 수 있고, 깊이 센서(102)를 표면(504)에 맞춰 정렬시키기 위해 평면으로부터의 각각의 픽셀의 편차가 계산될 수 있다.
표면(504)의 깊이 영상들의 서브셋들이 X개의 스텝에서 포착될 수 있고, 여기서 X는 실질적으로 임의의 정수일 수 있다(예컨대, X는 10, 기타일 수 있다). 이와 같이, 깊이 영상들이 표면(504)으로부터 X개의 상이한 거리들에서 깊이 센서(102)에 의해 포착될 수 있고, 여기서 이동가능 장치(514)는 깊이 센서(102) 및 거리 측정 디바이스(506)를 표면(504)으로부터 X개의 상이한 거리들에 위치시킬 수 있다. 예를 들어, 스텝들이 있을 수 있는 거리의 범위는 4 m부터 50 cm까지일 수 있지만, 실질적으로 임의의 다른 범위가 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있다.
일 예에 따르면, 이동가능 장치(514)는 깊이 센서(102) 및 거리 측정 디바이스(506)를 똑같은 크기의 스텝(예컨대, 1/2 미터 스텝)으로 이동시킬 수 있다. 다른 예에 따르면, 이동가능 장치(514)는 깊이 센서(102) 및 거리 측정 디바이스(506)를, 표면(504)까지의 거리가 감소함에 따라, 점진적으로 보다 작은 스텝으로 이동시킬 수 있다(예컨대, 각각의 스텝이 표면(504)까지의 총 거리의 10%일 수 있다). 점진적으로 보다 작은 스텝을 이용하는 것은 보다 높은 분해능의 샘플 데이터 코퍼스(sample data corpus)를 가져올 수 있고, 이 경우 깊이 센서(102)의 기본 분해능(native resolution) 및 정확도가 가장 높고, 그 결과 보다 먼 거리에서 취해진 샘플보다 근방의 범위에서의 샘플에 대한 가중치가 보다 높게 될 수 있다.
그에 따라, 교정 시스템(502)은 주어진 픽셀에 대한 (예컨대, 오차 계산 컴포넌트(510)에 의해 계산되는) 오차 값들의 배열(array)을, 그 오차들이 관측된 거리들의 실제 측정치와 함께, 획득할 수 있다. 앞서 살펴본 바와 같이, 교정 데이터 발생 컴포넌트(512)는 표면(504)으로부터 각자의 거리들 각각에서의 픽셀들에 대한 오차 값들 및 실제 측정치에 기초하여 깊이 센서(102)에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터(114)를 발생시킬 수 있다. 비선형 오차 모델의 다양한 예는 2차 다항식, 삼각 함수(예컨대, 사인 곡선, 기타의 중첩) 등을 포함한다.
일 예에 따르면, 비선형 오차 모델은 오차 = Ax2 + Bx + C와 같은 2차 다항식일 수 있다. 이상에서, x는 주어진 픽셀에 대한 깊이 값이고, A, B, 및 C는 주어진 픽셀에 대한 오차 적합화 파라미터들(예컨대, 깊이 교정 데이터(114)의 일부분)이다. 오차 적합화 파라미터들이 깊이 센서(102)에 대해 고유할 수 있지만, 비선형 오차 모델이 동일한 유형의 다른 깊이 센서들에 걸쳐 유사할 수 있다. 이 예에 따르면, 교정 데이터 발생 컴포넌트(512)는 깊이 교정 데이터(114)(예컨대, 파라미터 행렬의 오차 적합화 파라미터들)를 발생시키기 위해 2차 다항식을 (예컨대, 회귀(regression)를 사용하여) 오차 값들에 적합화시킬 수 있다. 그에 따라, 깊이 교정 데이터(114)는 작동 시에 픽셀에 의해 보고되는 깊이 영상에서의 픽셀의 좌표 및 거리가 주어지면 픽셀에 대한 예상된 오차 바이어스(error bias)(예컨대, 픽셀별 보정 값)를 계산하기 위해 사용될 수 있다.
비선형 오차 모델의 다양한 분석 형태 및 차수가 본원에 첨부된 청구항의 범주 내에 속하는 것으로 의도되어 있는 것이 생각되고 있다. 예를 들어, 깊이 센서(102)의 오차를 적합화하는 비선형 오차 함수의 분석 형태 및 차수가 명시적으로(예컨대, 깊이 센서(102)의 기본 특성 및 물리적 프로세스를 아는 것에 의해) 결정될 수 있다. 또 다른 예에 따르면, 비선형 오차 함수의 분석 형태 및 차수가 수동으로(예컨대, 모델을 분석하는 것 및/또는 모델을 발견하는 것에 의해) 검출될 수 있다. 또 다른 예에 따르면, 비선형 오차 함수의 분석 형태 및 차수가 회귀에 대한 일정 범위의 분석 함수 형태들을 분석하는 알고리즘을 이용하여 그리고/또는 신경망/SVM(support vector machine) 회귀를 사용하여 자동으로 결정될 수 있다.
도 6을 참조하면, 깊이 센서(102)를 교정하는 다른 예시적인 시스템(600)이 예시되어 있다. 이 경우에도, 시스템(600)은 교정 시스템(502)을 포함하고, 교정 시스템(502)은 샘플 결합 컴포넌트(508), 오차 계산 컴포넌트(510), 및 교정 데이터 발생 컴포넌트(512)를 추가로 포함할 수 있다. 교정 시스템(502)은 깊이 센서(102)에 의해 포착되는 표면(예컨대, 도 5의 표면(504) 등)의 깊이 영상들 및 거리 측정 디바이스(506)에 의해 측정되는 표면에 대응하는 실제 측정치로부터 깊이 센서(102)에 대한 깊이 교정 데이터(114)를 발생시킨다.
일부 깊이 센서들은 교정 시스템(502)에 제공되는 깊이 영상들에 아티팩트들을 발생시킨다. 예를 들어, 깊이 센서(102)는 깊이 영상에 있는 수직 열(vertical column)과 유사한 아티팩트인, 수직 띠를 발생시킬 수 있다. 수직 띠는 깊이 센서(102)에 의해 포착되는 깊이 영상들 내에서 시간의 경과에 따라 위치가 변할 수 있다. 게다가, 수직 띠는 제어될 수 없다.
교정 시스템(502)은 아티팩트 제거 컴포넌트(602)를 포함할 수 있다. 샘플 결합 컴포넌트(508)가 픽셀들의 깊이 값들을 표면으로부터 각자의 거리들에서 포착되는 서브셋들 각각에서 깊이 영상들에 걸쳐 평균하기 전에, 아티팩트 제거 컴포넌트(602)는, 깊이 센서(102)에 의해 포착되는 표면의 깊이 영상들 각각에 대해, 깊이 영상에서 수직 띠를 검출할 수 있다. 더욱이, 아티팩트 제거 컴포넌트(602)는 깊이 영상에서의 수직 띠들에 대한 깊이 값들의 각자의 천이 값(shift value)들을 결정할 수 있다. 게다가, 아티팩트 제거 컴포넌트(602)는 깊이 영상에서의 대응하는 깊이 값들로부터 천이 값들을 제거할 수 있다.
수직 띠의 위치 및 진폭(amplitude)이 시간 및 거리에 따라 변하기 때문에, 샘플들이 기록되기 전에 수직 띠가 아티팩트 제거 컴포넌트(602)에 의해 깊이 영상들로부터 제거될 수 있다. 수직 띠가 제거되지 않는 경우, 깊이 교정 데이터(114)는 몇 분 정도에 유효기간이 지날 수 있는 짧은 수명을 가질 것이고, 그로써 깊이 센서(102)의 빈번한 재교정을 가져올 것이다. 그렇지만, 수직 띠가 작동 시에 깊이 센서(102)에 의해 포착되는 깊이 영상들로부터 제거될 수 없을지도 모르지만(예컨대, 수직 띠가 도 1의 깊이 보정 시스템(104)의 입력 컴포넌트(110)에 의해 수신되는 입력 깊이 영상(106)으로부터 제거될 수 없을지도 모르지만), 이러한 시나리오 하에서 픽셀별 보정이 여전히 수행될 수 있다는 것을 잘 알 것이다.
도 7은 수직 띠(예컨대, 수직 띠(702), 수직 띠(704), 수직 띠(706), 및 수직 띠(708))를 포함하는 예시적인 깊이 영상(700)을 나타내고 있다. 깊이 영상(700)의 깊이 프로파일(710)에 나타낸 바와 같이, 수직 띠(702 내지 708) 각각은 (예컨대, 파선으로 표현되는) 축소된 값(collapsed value)으로부터 위로 또는 아래로 천이된다. 예를 들어, 수직 띠(702)에서의 픽셀들의 깊이 값들이 15 밀리미터만큼 위로 천이될 수 있고, 수직 띠(704)에서의 픽셀들의 깊이 값들이 5 밀리미터만큼 아래로 천이될 수 있으며, 기타일 수 있다. 그렇지만, 수직 띠들 중 하나 이상이 축소된 값으로부터 천이될 필요가 없는 것이 또한 생각되고 있다.
수직 띠에 포함되어 있는 픽셀 열들이 시간의 경과에 따라 변할 수 있고, 수직 띠의 개수가 시간의 경과에 따라 변할 수 있으며, 천이 값의 양이 시간의 경과에 따라 변할 수 있다. 아티팩트 제거 컴포넌트(602)는 깊이 영상(700)에서 수직 띠(702 내지 708)를 검출하고, 수직 띠에 대한 각자의 천이 값을 결정하며, 각자의 천이 값에 의해 깊이 영상(700)에서의 깊이 값을 보상할 수 있다.
이 경우에도, 도 6이 참조된다. 교정 시스템(502)은 이웃 연결 컴포넌트(neighbor join component)(604)를 추가로 포함할 수 있다. 이웃 연결 컴포넌트(604)는 깊이 센서(102)에 의해 포착되는 표면의 깊이 영상들에 대해 표면으로부터 각자의 거리들 각각에서 픽셀들의 패치들에 대한 평균된 오차 값들을 계산할 수 있고, 여기서 패치들은 각자의 복수의 픽셀들을 포함한다. 더욱이, 교정 데이터 발생 컴포넌트(512)는, 표면으로부터 각자의 거리들 각각에서 픽셀들의 패치들에 대한 평균된 오차 값들 및 실제 측정치에 기초하여, 패치들에 대한 깊이 교정 데이터(114)의 각자의 서브셋들을 발생시킬 수 있다.
샘플 결합 컴포넌트(508)가 다수의 깊이 영상들에 걸쳐 픽셀들의 깊이 값들을 평균한 후에도, 개개의 픽셀들로부터의 잡음 레벨(noise level)들이 높을 수 있고, 그 결과 깊이 교정 데이터(114)(예컨대, 픽셀별 파라미터 행렬 등)가 과도한 적합화 잡음(fitting noise)을 겪을 수 있으며, 측정치가 획득되는 거리들을 넘어 외삽할 때 특히 그렇다. 픽셀 레벨 잡음을 보상하기 위해서는 물론, 깊이 교정 데이터(114)의 크기를 감소(예컨대, 파라미터 행렬 등의 크기를 감소)시키기 위해, 이웃 연결 컴포넌트(604)는 이웃하는 픽셀들로부터의 오차 값들을 패치들의 일부로서 비닝(bin)(예컨대, 버킷화(bucketize))할 수 있다. 이와 같이, 교정 데이터 발생 컴포넌트(512)는 패치들에 대한 적합화 함수(fitting function)를 계산할 수 있다. 패치들은, 픽셀들의 바로 옆의 로컬 이웃(immediate local neighborhood)을 나타내는 한, 임의의 형상(예컨대, 정사각형, 직사각형, 다른 형상 등)을 가질 수 있다. 깊이 영상들에서 좌표들에 의해 정의되는 패치에서의 픽셀들은 깊이 교정 데이터(114)의 공통 서브셋(예컨대, 보정 파라미터들의 공통 세트, 적합화 다항식(fitting polynomial)의 공통 계수들, 기타)을 공유하도록 설정될 수 있다.
일 예에 따르면, 패치의 크기가 이웃 연결 컴포넌트(604)에 의해 자동으로 검출될 수 있다. 이 예에 따르면, 이웃 연결 컴포넌트(604)는 세분성 증가 접근법(coarse to fine approach)을 사용할 수 있고, 여기서 부가의 측정이 (예컨대, 도 5의 이동가능 장치(514)에 의해 자율적으로) 수행되고, 패치 크기와 잡음 레벨 및/또는 예측 품질 개선 사이의 상관이 테스트될 수 있다. 그렇지만, 청구된 발명 요지가 그렇게 제한되지 않는다는 것을 잘 알 것이다.
다양한 예에 따르면, 패치들은 전체 해상도(예컨대, 640 x 480) 프레임 상의 8 픽셀 x 8 픽셀, 20 픽셀 x 20 픽셀 등일 수 있다. 8 x 8 미만의 패치 크기가 잡음이 많을 수 있고 과적합 아티팩트(overfitting artifact)(예컨대, 높은 분산(high variance))를 나타낼 수 있고 20 x 20 초과의 패치 크기가 상당한 심도 왜곡(depth field distortion)(예컨대, 높은 바이어스(high bias))을 억압하기에 충분한 분해능을 갖지 않을 수 있다는 것을 잘 알 것이다.
깊이 교정 데이터(114)는, 예를 들어, 파라미터 행렬을 포함할 수 있다. 그에 따라, 파라미터 행렬은 패치별 오차 적합화 파라미터를 포함하는 2차원 배열(two-dimensional array)일 수 있다. 이러한 배열은 희소 배열(sparse array)일 수 있다. 더욱이, 파라미터 행렬은 해상도와 무관할 수 있다 - 예컨대, 각각의 패치의 크기가, 픽셀 수로 측정되는 크기가 아니라, 프레임 해상도의 비율로서 결정될 수 있다 -. 이와 같이, 정사각형 패치의 폭이 지정된 적용가능 영역에서 영상 프레임의 폭의 1/40이고 영상 프레임의 높이의 1/30일 수 있다(예컨대, 패치가 시야의 주어진 영역에 있는 픽셀들에 적용될 수 있다). 전술한 내용은 유연성을 제공할 수 있다(예컨대, 파라미터 행렬을 도출하는 것이 고품질 파라미터 행렬을 달성하기 위해 깊이 센서(102)에 의해 포착되는 전체 해상도 깊이 영상에 대해 수행될 수 있지만 기본 애플리케이션에 의해 결정되는 바와 같이 깊이 센서(102)에 의해 포착되는 저해상도 깊이 영상에 대한 실시간 시나리오에서 적용될 수 있다).
도 8 및 도 9는 깊이 센서를 교정하는 것 및 깊이 센서에 의해 포착되는 깊이 영상을 보정하는 것에 관한 예시적인 방법을 나타내고 있다. 방법이 순차적으로 수행되는 일련의 동작들로서 도시되고 기술되어 있지만, 방법이 시퀀스의 순서에 의해 제한되지 않는다는 것을 잘 알고 이해할 것이다. 예를 들어, 일부 동작들이 본원에 기술되는 것과 상이한 순서로 일어날 수 있다. 그에 부가하여, 어떤 동작이 다른 동작과 동시에 일어날 수 있다. 게다가, 일부 경우에, 본원에 기술되는 방법을 구현하기 위해 모든 동작들이 다 필요하지는 않을 수 있다.
더욱이, 본원에 기술되는 동작들이 하나 이상의 프로세서에 의해 구현될 수 있고 그리고/또는 컴퓨터 판독가능 매체 또는 매체들에 저장될 수 있는 컴퓨터 실행가능 명령어일 수 있다. 컴퓨터 실행가능 명령어는 루틴, 서브루틴, 프로그램, 실행 스레드, 및/또는 기타를 포함할 수 있다. 게다가, 방법의 동작들의 결과들이 컴퓨터 판독가능 매체에 저장되고, 디스플레이 디바이스 상에 디스플레이되며, 그리고/또는 기타일 수 있다.
도 8은 입력 깊이 영상을 보정하는 방법(800)을 나타내고 있다. 802에서, 깊이 센서에 의해 포착되는 입력 깊이 영상이 수신될 수 있다. 입력 깊이 영상은 픽셀들을 포함할 수 있다. 게다가, 픽셀들은 입력 깊이 영상에서 각자의 깊이 값들을 가질 수 있다. 804에서, 픽셀들에 대한 픽셀별 보정 값들은 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 이용하여 결정될 수 있다. 픽셀별 보정 값들은 픽셀들에 각각 대응하는 깊이 교정 데이터의 일부분들 및 깊이 값들에 기초하여 결정될 수 있다. 806에서, 보정된 깊이 영상을 발생시키기 위해 픽셀별 보정 값들이 깊이 값들에 적용될 수 있다. 808에서, 보정된 깊이 영상이 출력될 수 있다.
도 9를 참조하면, 깊이 센서를 교정하는 방법(900)이 예시되어 있다. 902에서, 깊이 센서에 의해 포착되는 표면의 깊이 영상들이 수신될 수 있다. 표면의 깊이 영상들의 서브셋들이 표면으로부터 각자의 거리들에서 포착될 수 있다. 깊이 영상들 각각은 픽셀들을 포함할 수 있고, 여기서 픽셀들은 깊이 영상들 각각에서 각자의 깊이 값들을 가질 수 있다. 904에서, 깊이 영상들의 서브셋들에 대응하는 표면에 대한 각자의 실제 측정치가 수신될 수 있다. 실제 측정치는 거리 측정 디바이스에 의해 측정될 수 있다. 906에서, 픽셀들의 깊이 값들이 표면으로부터 각자의 거리들에서 포착되는 서브셋들 각각에서 깊이 영상들에 걸쳐 평균될 수 있다. 908에서, 표면으로부터 각자의 거리들 각각에서 픽셀들에 대한 오차 값들을 계산하기 위해 픽셀들의 평균된 깊이 값들이 실제 측정치와 비교될 수 있다. 910에서, 표면으로부터 각자의 거리들 각각에서의 픽셀들에 대한 오차 값들 및 실제 측정치에 기초하여 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터가 발생될 수 있다.
이제 도 10을 참조하면, 본원에 개시되는 시스템 및 방법에 따라 사용될 수 있는 예시적인 컴퓨팅 디바이스(1000)의 상위 레벨 예시가 나타내어져 있다. 예를 들어, 컴퓨팅 디바이스(1000)는 보정된 깊이 영상을 발생시키기 위해 깊이 센서에 의해 포착되는 입력 깊이 영상의 픽셀별 보정을 수행하는 시스템에서 사용될 수 있다. 다른 예로서, 컴퓨팅 디바이스(1000)는 깊이 교정 데이터를 발생시키기 위해 깊이 센서를 교정하는 시스템에서 사용될 수 있다. 컴퓨팅 디바이스(1000)는 메모리(1004)에 저장되어 있는 명령어들을 실행하는 적어도 하나의 프로세서(1002)를 포함한다. 명령어들은, 예를 들어, 앞서 논의된 하나 이상의 컴포넌트들에 의해 수행되는 것으로 기술되는 기능을 구현하는 명령어들 또는 앞서 기술된 방법들 중 하나 이상을 구현하는 명령어들일 수 있다. 프로세서(1002)는 시스템 버스(1006)를 통해 메모리(1004)에 액세스할 수 있다. 실행가능 명령어들을 저장하는 것에 부가하여, 메모리(1004)는 또한 깊이 영상들, 깊이 교정 데이터, 실제 측정치, 표면으로부터 각자의 거리들에서의 픽셀들의 평균된 깊이 값들 등을 저장할 수 있다.
컴퓨팅 디바이스(1000)는 그에 부가하여 시스템 버스(1006)를 통해 프로세서(1002)에 의해 액세스가능한 데이터 저장소(1008)를 포함한다. 데이터 저장소(1008)는 실행가능 명령어들, 깊이 영상들, 깊이 교정 데이터, 실제 측정치, 표면으로부터 각자의 거리들에서의 픽셀들의 평균된 깊이 값들 등을 포함할 수 있다. 컴퓨팅 디바이스(1000)는 또한 외부 디바이스들이 컴퓨팅 디바이스(1000)와 통신할 수 있게 하는 입력 인터페이스(1010)를 포함한다. 예를 들어, 입력 인터페이스(1010)는 외부 컴퓨터 디바이스로부터, 사용자로부터, 기타로부터 명령어들을 수신하는데 사용될 수 있다. 컴퓨팅 디바이스(1000)는 또한 컴퓨팅 디바이스(1000)를 하나 이상의 외부 디바이스들과 인터페이싱시키는 출력 인터페이스(1012)를 포함한다. 예를 들어, 컴퓨팅 디바이스(1000)는 출력 인터페이스(1012)를 통해 텍스트, 영상 등을 디스플레이할 수 있다.
입력 인터페이스(1010) 및 출력 인터페이스(1012)를 통해 컴퓨팅 디바이스(1000)와 통신하는 외부 디바이스들이 사용자와 상호작용할 수 있는 실질적으로 임의의 유형의 사용자 인터페이스를 제공하는 환경에 포함될 수 있는 것이 생각되고 있다. 사용자 인터페이스 유형의 예는 그래픽 사용자 인터페이스, 내추럴 사용자 인터페이스(natural user interface) 등을 포함한다. 예를 들어, 그래픽 사용자 인터페이스는 키보드, 마우스, 리모콘 등과 같은 입력 디바이스(들)를 이용하는 사용자로부터 입력을 받고 출력을 디스플레이와 같은 출력 디바이스 상에 제공할 수 있다. 게다가, 내추럴 사용자 인터페이스는 사용자가, 키보드, 마우스, 리모콘 등과 같은 입력 디바이스에 의해 부과되는 제약조건이 없는 방식으로 컴퓨팅 디바이스(1000)와 상호작용할 수 있게 할 수 있다. 오히려, 내추럴 사용자 인터페이스는 음성 인식, 터치 및 스타일러스 인식, 화면 상에서는 물론 화면에 인접한 제스처 인식, 에어 제스처(air gesture), 머리 및 눈 추적, 음성 및 발화, 시각, 터치, 제스처, 기계 지능(machine intelligence) 등에 의존할 수 있다.
그에 부가하여, 단일의 시스템으로서 예시되어 있지만, 컴퓨팅 디바이스(1000)가 분산 시스템일 수 있다는 것을 잘 알 것이다. 이와 같이, 예를 들어, 몇 개의 디바이스들이 네트워크 연결을 통해 통신할 수 있고, 컴퓨팅 디바이스(1000)에 의해 수행되는 것으로 기술된 작업을 공동으로 수행할 수 있다.
본원에서 사용되는 바와 같이, "컴포넌트" 및 "시스템"이라는 용어들은 프로세서에 의해 실행될 때 특정의 기능이 수행되게 하는 컴퓨터 실행가능 명령어들로 구성되어 있는 컴퓨터 판독가능 데이터 저장소를 포괄하는 것으로 의도되어 있다. 컴퓨터 실행가능 명령어들은 루틴, 함수 등을 포함할 수 있다. 또한 컴포넌트 또는 시스템이 단일의 디바이스 상에 로컬화되어 있거나 몇 개의 디바이스들에 걸쳐 분산되어 있을 수 있다는 것을 잘 알 것이다.
게다가, 본원에서 사용되는 바와 같이, "예시적인"이라는 용어는 "~의 예시 또는 예로서 역할하는"을 의미하는 것으로 의도되어 있다.
본원에 기술되는 다양한 기능들이 하드웨어, 소프트웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 기능들이 하나 이상의 명령어들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 그 매체를 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨터 판독가능 저장 매체를 포함한다. 컴퓨터 판독가능 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 저장 매체일 수 있다. 제한이 아닌 예로서, 이러한 컴퓨터 판독가능 저장 매체는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 전달 또는 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 또는 임의의 다른 매체를 포함할 수 있다. 디스크(disk) 및 디스크(disc)는, 본원에서 사용되는 바와 같이, CD(compact disc), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 플로피 디스크, 및 BD(blu-ray disc)를 포함하고, 여기서 디스크(disk)는 보통 데이터를 자기적으로 재현하고 디스크(disc)는 보통 데이터를 레이저를 사용해 광학적으로 재현한다. 게다가, 전파 신호는 컴퓨터 판독가능 저장 매체의 범주 내에 포함되지 않는다. 컴퓨터 판독가능 매체는 또한 한 곳으로부터 다른 곳으로의 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 비롯한 통신 매체를 포함한다. 연결(connection)이, 예를 들어, 통신 매체일 수 있다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 연선(twisted pair), DSL(digital subscriber line), 또는 적외선, 무선(radio), 및 마이크로파와 같은 무선 기술을 사용하여 웹 사이트, 서버, 또는 다른 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 무선 및 마이크로파와 같은 무선 기술이 통신 매체의 정의에 포함된다. 상기한 것들의 조합들도 컴퓨터 판독가능 매체의 범주 내에 포함되어야 한다.
대안적으로 또는 그에 부가하여, 본원에 기술되는 기능이, 적어도 부분적으로, 하나 이상의 하드웨어 논리 컴포넌트들에 의해 수행될 수 있다. 제한이 아닌 예로서, 사용될 수 있는 예시적인 유형의 하드웨어 논리 컴포넌트들은 FPGA(Field-programmable Gate Array), ASIC(Program-specific Integrated Circuit), ASSP(Program-specific Standard Product), SOC(System-on-a-chip system), CPLD(Complex Programmable Logic Device) 등을 포함한다.
앞서 기술된 것은 하나 이상의 실시예들의 예를 포함한다. 물론, 전술한 양태들을 기술하기 위해 이상의 디바이스들 또는 방법들의 모든 생각가능한 수정 및 변경을 다 기술할 수는 없지만, 본 기술 분야의 통상의 기술자라면 다양한 양태들의 많은 추가의 수정 및 치환이 가능하다는 것을 인식할 수 있다. 그에 따라, 기술된 양태들이 첨부된 청구범위의 사상 및 범주 내에 속하는 모든 이러한 변경, 수정 및 변형을 포괄하는 것으로 의도되어 있다. 게다가, "포함한다(include)"라는 용어가 상세한 설명 또는 청구범위에서 사용되는 한, 이러한 용어는 "포함하는(comprising)"이라는 용어가 청구항에서 전이구(transitional word)로 이용될 때 해석되는 것과 유사한 방식으로 포괄적(inclusive)인 것으로 의도되어 있다.

Claims (20)

  1. 입력 깊이 영상을 보정하는 방법에 있어서,
    깊이 센서에 의해 포착되는 상기 입력 깊이 영상을 수신하는 단계 - 상기 입력 깊이 영상은 픽셀들을 포함하고, 상기 픽셀들은 상기 입력 깊이 영상에서 각자의 깊이 값들을 가짐 -;
    상기 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 사용하여 상기 픽셀들에 대한 픽셀별 보정 값(per-pixel correction value)들을 결정하는 단계로서, 상기 픽셀별 보정 값들은 상기 픽셀들에 각각 대응하는 상기 깊이 교정 데이터의 일부분들 및 상기 깊이 값들에 기초하여 결정되고, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 상기 픽셀들에 대한 깊이 오차 값들 및 실제 측정치(ground truth measurements)에 직접 기초하여 생성되는 것인, 상기 픽셀별 보정 값들을 결정하는 단계 - 상기 픽셀별 보정 값들을 결정하는 단계는, 각자의 패치들을 형성하는 상기 입력 깊이 영상의 복수의 픽셀들을 식별하는 단계를 더 포함하고, 상기 패치들은 상기 깊이 교정 데이터의 각자의 서브셋(subset)들을 할당받으며, 패치에 포함된 복수의 픽셀들은 상기 깊이 교정 데이터의 서브셋을 공유함 -;
    보정된 깊이 영상을 생성하기 위해 상기 픽셀별 보정 값들을 상기 깊이 값들에 적용하는 단계; 및
    상기 보정된 깊이 영상을 출력하는 단계
    를 포함하는, 입력 깊이 영상을 보정하는 방법.
  2. 제1항에 있어서, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 파라미터 행렬을 포함하고, 상기 파라미터 행렬은 상기 픽셀들에 대한 오차 적합화 파라미터(error fitting parameter)들을 포함하는, 입력 깊이 영상을 보정하는 방법.
  3. 제2항에 있어서, 상기 픽셀별 보정 값들을 상기 픽셀들에 각각 대응하는 상기 깊이 교정 데이터의 일부분들 및 상기 깊이 값들에 기초하여 결정하는 것은,
    상기 입력 깊이 영상의 상기 픽셀들 각각에 대해,
    상기 입력 깊이 영상에서 깊이 값을 갖는 픽셀에 대한 오차 적합화 파라미터들을 상기 파라미터 행렬로부터 검색(retrieving)하는 것; 및
    상기 픽셀에 대한 상기 오차 적합화 파라미터들을 사용하여 비선형 오차 함수를 평가함으로써 상기 픽셀에 대한 픽셀별 보정 값을 계산하는 것을 더 포함하고, 상기 비선형 오차 함수는 상기 깊이 값에 기초하여 상기 입력 깊이 영상에 대해 평가되는, 입력 깊이 영상을 보정하는 방법.
  4. 제2항에 있어서, 상기 입력 깊이 영상은 상기 입력 깊이 영상의 각자의 복수의 픽셀들을 포함하는 복수의 패치(patch)들을 포함하고, 상기 패치들은 상기 파라미터 행렬의 각자의 오차 적합화 파라미터들을 할당받으며, 패치에 포함된 복수의 픽셀들은 상기 패치에 할당된 오차 적합화 파라미터들을 공유하는, 입력 깊이 영상을 보정하는 방법.
  5. 제1항에 있어서, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 룩업 테이블(lookup table)을 포함하고, 상기 룩업 테이블은 상기 픽셀들에 대한 미리 설정된 깊이 값들에서의 미리 정의된 보정 값들을 포함하는, 입력 깊이 영상을 보정하는 방법.
  6. 제5항에 있어서, 상기 픽셀별 보정 값들을 상기 픽셀들에 각각 대응하는 상기 깊이 교정 데이터의 일부분들 및 상기 깊이 값들에 기초하여 결정하는 것은,
    상기 입력 깊이 영상의 상기 픽셀들 각각에 대해,
    상기 입력 깊이 영상에서 깊이 값을 갖는 픽셀에 대한 제1 미리 설정된 깊이 값 - 상기 제1 미리 설정된 깊이 값은 상기 룩업 테이블에서 상기 픽셀에 대한 상기 깊이 값과 같거나 그보다 바로 위의 것임 - 에서의 제1 미리 정의된 보정 값을 상기 룩업 테이블로부터 검색하는 것;
    상기 픽셀에 대한 제2 미리 설정된 깊이 값 - 상기 제2 미리 설정된 깊이 값은 상기 룩업 테이블에서 상기 픽셀에 대한 상기 깊이 값보다 바로 아래의 것임 - 에서의 제2 미리 정의된 보정 값을 상기 룩업 테이블로부터 검색하는 것; 및
    상기 제1 미리 설정된 깊이 값에서의 상기 제1 미리 정의된 보정 값과 상기 제2 미리 설정된 깊이 값에서의 상기 제2 미리 정의된 보정 값 사이의 선형 보간에 기초하여 상기 깊이 값을 가지는 상기 픽셀에 대한 픽셀별 보정 값을 결정하는 것을 더 포함하는, 입력 깊이 영상을 보정하는 방법.
  7. 삭제
  8. 제1항에 있어서, 상기 패치들 각각은 상기 입력 깊이 영상의 미리 설정된 비율(fraction)이며, 상기 입력 깊이 영상의 상기 미리 설정된 비율은 상기 깊이 센서에 의해 포착되는 상기 입력 깊이 영상의 해상도와 무관한 것인, 입력 깊이 영상을 보정하는 방법.
  9. 제1항에 있어서,
    상기 픽셀별 보정 값들을 상기 깊이 값들에 적용하는 것에 응답하여, 상기 패치들 사이를 매끄럽게 하기 위해 상기 보정된 깊이 영상을 필터링하는 단계를 더 포함하고, 필터링된 상기 보정된 깊이 영상이 출력되는, 입력 깊이 영상을 보정하는 방법.
  10. 제1항에 있어서, 상기 보정된 깊이 영상은 상기 깊이 센서에 의해 생성되는, 입력 깊이 영상을 보정하는 방법.
  11. 제1항에 있어서,
    상기 깊이 센서에 의해 포착되는 표면의 깊이 영상들로부터 상기 깊이 센서에 대한 상기 깊이 교정 데이터를 생성하고 거리 측정 디바이스에 의해 측정되는 상기 표면에 실제 측정치를 대응시키는 단계를 더 포함하는, 입력 깊이 영상을 보정하는 방법.
  12. 입력 깊이 영상을 보정하는 시스템에 있어서,
    적어도 하나의 프로세서; 및
    컴퓨터 실행가능 명령어들을 포함한 메모리
    를 포함하고, 상기 컴퓨터 실행가능 명령어들은 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금,
    깊이 센서에 의해 포착되는 상기 입력 깊이 영상을 수신하는 동작 - 상기 입력 깊이 영상은 픽셀들을 포함하고, 상기 픽셀들은 상기 입력 깊이 영상에서 각자의 깊이 값들을 가짐 -;
    상기 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 사용하여 상기 픽셀들에 대한 픽셀별 보정 값들을 결정하는 동작으로서, 상기 픽셀들에 대한 픽셀별 보정 값들을 결정하는 동작은,
    각자의 패치들을 형성하는 상기 입력 깊이 영상의 복수의 픽셀들을 식별하는 동작을 더 포함하고,
    상기 패치들은 상기 깊이 교정 데이터의 각자의 서브셋들을 할당받으며,
    패치에 포함된 복수의 픽셀들은 상기 깊이 교정 데이터의 서브셋을 공유하고,
    상기 픽셀별 보정 값들은 상기 픽셀들에 각각 대응하는 상기 깊이 교정 데이터의 서브셋들 및 상기 깊이 값들에 기초하여 결정되고,
    상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 상기 픽셀들에 대한 깊이 오차 값들 및 실제 측정치에 직접 기초하여 생성되는 것인, 상기 픽셀들에 대한 픽셀별 보정 값들을 결정하는 동작;
    보정된 깊이 영상을 생성하기 위해 상기 픽셀별 보정 값들을 상기 깊이 값들에 적용하는 동작; 및
    상기 보정된 깊이 영상을 출력하는 동작
    을 포함하는 동작들을 수행하게 하는, 입력 깊이 영상을 보정하는 시스템.
  13. 제12항에 있어서, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 파라미터 행렬을 포함하고, 상기 파라미터 행렬은 상기 픽셀들에 대한 오차 적합화 파라미터들을 포함하는, 입력 깊이 영상을 보정하는 시스템.
  14. 제12항에 있어서, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 룩업 테이블을 포함하고, 상기 룩업 테이블은 상기 픽셀들에 대한 미리 설정된 깊이 값들에서의 미리 정의된 보정 값들을 포함하는, 입력 깊이 영상을 보정하는 시스템.
  15. 제12항에 있어서, 상기 패치들 각각은 상기 입력 깊이 영상의 미리 설정된 비율이며, 상기 입력 깊이 영상의 상기 미리 설정된 비율은 상기 깊이 센서에 의해 포착되는 상기 입력 깊이 영상의 해상도와 무관한 것인, 입력 깊이 영상을 보정하는 시스템.
  16. 제12항에 있어서, 상기 메모리는, 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금,
    상기 패치들 사이를 매끄럽게 하기 위해 상기 보정된 깊이 영상을 필터링하는 동작을 포함하는 동작들을 수행하게 하는 컴퓨터 실행가능 명령어를 더 포함하는, 입력 깊이 영상을 보정하는 시스템.
  17. 깊이 센서를 교정하는 방법에 있어서,
    상기 깊이 센서에 의해 포착되는 표면의 깊이 영상들을 수신하는 단계로서, 상기 표면의 깊이 영상들의 서브셋들이 상기 표면으로부터의 각자의 거리들에서 포착되고, 상기 깊이 영상들 각각은 픽셀들을 포함하며, 상기 픽셀들은 상기 깊이 영상들 각각에서 각자의 깊이 값들을 갖는 것인, 상기 깊이 영상들을 수신하는 단계;
    상기 깊이 영상들의 상기 서브셋들에 대응하는 표면에 대한 각자의 실제 측정치를 수신하는 단계로서, 상기 실제 측정치는 거리 측정 디바이스에 의해 측정되는 것인, 상기 실제 측정치를 수신하는 단계;
    상기 픽셀들의 상기 깊이 값들을 상기 표면으로부터의 각자의 거리들에서 포착되는 상기 서브셋들 각각에서 상기 깊이 영상들에 걸쳐 평균화하는 단계;
    상기 표면으로부터의 각자의 거리들 각각에서 상기 픽셀들에 대한 오차 값들을 계산하기 위해 상기 픽셀들의 평균화된 깊이 값들을 상기 실제 측정치와 비교하는 단계; 및
    상기 표면으로부터의 각자의 거리들 각각에서의 상기 픽셀들에 대한 상기 오차 값들 및 상기 실제 측정치에 직접 기초하여 상기 깊이 센서에 대해 교정된 비선형 오차 모델의 깊이 교정 데이터를 생성하는 단계를 포함하는, 깊이 센서를 교정하는 방법.
  18. 제17항에 있어서,
    상기 깊이 센서에 의해 포착되는 상기 표면의 깊이 영상들 각각에 대해, 상기 픽셀들의 상기 깊이 값들을 상기 표면으로부터의 각자의 거리들에서 포착되는 상기 서브셋들 각각에서 상기 깊이 영상들에 걸쳐 평균화하기 전에,
    깊이 영상에서 수직 띠(vertical band)들을 검출하는 단계;
    상기 깊이 영상의 수직 띠들에 대해 상기 깊이 값들에서 각자의 시프트 값들을 결정하는 단계; 및
    상기 깊이 영상 내의 대응하는 깊이 값들로부터 상기 시프트 값들을 제거하는 단계
    를 더 포함하는, 깊이 센서를 교정하는 방법.
  19. 제17항에 있어서,
    상기 표면으로부터의 각자의 거리들 각각에서 상기 픽셀들의 패치들에 대한 평균화된 오차 값들을 계산하는 단계를 더 포함하고,
    상기 패치들은 각자의 복수의 픽셀들을 포함하며,
    상기 깊이 교정 데이터의 각자의 서브셋들은 상기 표면으로부터의 각자의 거리들 각각에서의 상기 픽셀들의 패치들에 대한 평균화된 오차 값들 및 상기 실제 측정치에 기초하여 상기 패치들에 대해 생성되는, 깊이 센서를 교정하는 방법.
  20. 제17항에 있어서, 상기 깊이 센서에 대해 교정된 상기 비선형 오차 모델의 깊이 교정 데이터는 파라미터 행렬을 포함하고, 상기 파라미터 행렬은 상기 픽셀들에 대한 오차 적합화 파라미터들을 포함하는, 깊이 센서를 교정하는 방법.
KR1020167032123A 2014-04-22 2015-04-07 깊이 센서 교정 및 픽셀별 보정 KR102320061B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/258,097 2014-04-22
US14/258,097 US10062180B2 (en) 2014-04-22 2014-04-22 Depth sensor calibration and per-pixel correction
PCT/US2015/024596 WO2015164065A1 (en) 2014-04-22 2015-04-07 Depth sensor calibration and per-pixel correction

Publications (2)

Publication Number Publication Date
KR20160148596A KR20160148596A (ko) 2016-12-26
KR102320061B1 true KR102320061B1 (ko) 2021-10-29

Family

ID=53015908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032123A KR102320061B1 (ko) 2014-04-22 2015-04-07 깊이 센서 교정 및 픽셀별 보정

Country Status (5)

Country Link
US (1) US10062180B2 (ko)
EP (1) EP3134866B1 (ko)
KR (1) KR102320061B1 (ko)
CN (1) CN106462949B (ko)
WO (1) WO2015164065A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9578311B2 (en) * 2014-10-22 2017-02-21 Microsoft Technology Licensing, Llc Time of flight depth camera
US9878447B2 (en) * 2015-04-10 2018-01-30 Microsoft Technology Licensing, Llc Automated collection and labeling of object data
KR102630740B1 (ko) * 2015-08-03 2024-01-29 톰톰 글로벌 콘텐트 비.브이. 위치파악 참조 데이터를 생성하고 사용하는 방법 및 시스템
DE102016204140B3 (de) 2016-03-14 2017-04-06 pmdtechnologies ag Vorrichtung und Verfahren zur Kalibrierung einer Lichtlaufzeitkamera
US10321114B2 (en) * 2016-08-04 2019-06-11 Google Llc Testing 3D imaging systems
US10762651B2 (en) * 2016-09-30 2020-09-01 Magic Leap, Inc. Real time calibration for time-of-flight depth measurement
US11146744B2 (en) * 2016-11-28 2021-10-12 Emergent Machines, Inc. Automated interactive system and method for dynamically modifying a live image of a subject
US10366674B1 (en) * 2016-12-27 2019-07-30 Facebook Technologies, Llc Display calibration in electronic displays
JP6907678B2 (ja) * 2017-04-25 2021-07-21 トヨタ自動車株式会社 移動ロボット
US11341615B2 (en) * 2017-09-01 2022-05-24 Sony Corporation Image processing apparatus, image processing method, and moving body to remove noise in a distance image
CN108665423B (zh) * 2017-12-26 2022-04-29 西安电子科技大学 基于引导滤波和高通滤波的红外图像非均匀性校正方法
US10705194B2 (en) * 2018-03-21 2020-07-07 Zoox, Inc. Automated detection of sensor miscalibration
TWI725522B (zh) * 2018-08-28 2021-04-21 鈺立微電子股份有限公司 具有校正功能的影像擷取系統
KR102562360B1 (ko) * 2018-10-05 2023-08-02 엘지이노텍 주식회사 깊이 정보를 획득하는 방법 및 카메라 모듈
CN113167899B (zh) * 2018-12-04 2022-08-16 Iee国际电子工程股份公司 用于利用使用调幅连续光的飞行时间相机进行校正的深度测量的方法
EP3702750A1 (en) * 2019-03-01 2020-09-02 Valeo Vision Method for correcting a light pattern, automotive lighting device and automotive lighting assembly
CN110113528B (zh) * 2019-04-26 2021-05-07 维沃移动通信有限公司 一种参数获取方法及终端设备
EP3798680A1 (en) * 2019-09-26 2021-03-31 Artilux Inc. Calibrated photo-detecting apparatus and calibration method thereof
TWI722703B (zh) * 2019-12-09 2021-03-21 財團法人工業技術研究院 投影設備與投影校正方法
CN111045030B (zh) * 2019-12-18 2022-09-13 奥比中光科技集团股份有限公司 一种深度测量装置和方法
CN113030821A (zh) * 2019-12-24 2021-06-25 中移物联网有限公司 一种电量校准方法及装置
KR20210083983A (ko) * 2019-12-27 2021-07-07 에스케이하이닉스 주식회사 이미지 센싱 장치
CN111667524A (zh) * 2020-05-28 2020-09-15 北京深测科技有限公司 一种飞行时间相机的深度误差校准方法
CA3125716C (en) 2020-07-21 2024-04-09 Leddartech Inc. Systems and methods for wide-angle lidar using non-uniform magnification optics
US11567179B2 (en) 2020-07-21 2023-01-31 Leddartech Inc. Beam-steering device particularly for LIDAR systems
EP4185892A1 (en) 2020-07-21 2023-05-31 Leddartech Inc. Beam-steering devices and methods for lidar applications
CN113960580B (zh) * 2021-10-14 2023-04-07 电子科技大学 一种真假目标一维距离像的变换域不变特征提取方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080051184A (ko) * 2005-09-22 2008-06-10 쓰리엠 이노베이티브 프로퍼티즈 컴파니 3차원 이미징에서의 아티팩트 완화
KR101626072B1 (ko) 2009-11-13 2016-06-13 삼성전자주식회사 영상 보정 장치 및 영상 보정 방법
WO2011058876A1 (ja) 2009-11-13 2011-05-19 富士フイルム株式会社 測距装置、測距方法、測距プログラムおよび測距システムならびに撮像装置
KR20110116325A (ko) 2010-04-19 2011-10-26 삼성전자주식회사 영상 처리 장치 및 그 방법
CN101975588B (zh) * 2010-08-20 2012-07-11 北京航空航天大学 一种多传感器视觉测量系统的刚性杆全局校准方法及装置
US8866889B2 (en) 2010-11-03 2014-10-21 Microsoft Corporation In-home depth camera calibration
KR101913321B1 (ko) * 2012-05-10 2018-10-30 삼성전자주식회사 깊이 센서 기반 반사 객체의 형상 취득 방법 및 장치
EP2779091B1 (en) * 2013-03-14 2015-08-19 ST-Ericsson SA Automatic stereoscopic camera calibration

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
111228_Time-of-flight sensor and color camera calibration for multi-view acquisition

Also Published As

Publication number Publication date
CN106462949A (zh) 2017-02-22
CN106462949B (zh) 2019-08-27
KR20160148596A (ko) 2016-12-26
EP3134866B1 (en) 2020-02-19
US20150302570A1 (en) 2015-10-22
EP3134866A1 (en) 2017-03-01
WO2015164065A1 (en) 2015-10-29
US10062180B2 (en) 2018-08-28

Similar Documents

Publication Publication Date Title
KR102320061B1 (ko) 깊이 센서 교정 및 픽셀별 보정
CN109477710B (zh) 基于点的结构化光系统的反射率图估计
EP3788403B1 (en) Field calibration of a structured light range-sensor
US9965870B2 (en) Camera calibration method using a calibration target
US9420276B2 (en) Calibration of light-field camera geometry via robust fitting
CN103782232B (zh) 投影仪及其控制方法
US10643347B2 (en) Device for measuring position and orientation of imaging apparatus and method therefor
US10228452B2 (en) Method of error correction for 3D imaging device
US8718326B2 (en) System and method for extracting three-dimensional coordinates
US20140210950A1 (en) Systems and methods for multiview metrology
US20120089364A1 (en) Three-dimensional measurement apparatus, three-dimensional measurement method, and computer-readable medium storing control program
US9509986B2 (en) Electronic device and method for calibrating spectral confocal sensors
WO2016147731A1 (ja) 投影システム、プロジェクター装置、撮像装置、および、プログラム
CN104169970A (zh) 用于确定图像的景深图的方法和光学系统
CN111508011A (zh) 一种飞行时间相机的深度数据校准方法
JP2016024052A (ja) 3次元計測システム、3次元計測方法及びプログラム
JP2015021862A (ja) 3次元計測装置及び3次元計測方法
Flesia et al. Sub-pixel straight lines detection for measuring through machine vision
JP2016200557A (ja) 校正装置、距離計測装置及び校正方法
CN108182666B (zh) 一种视差校正方法、装置和终端
US9030591B2 (en) Determining an in-focus position of a lens
US20120274763A1 (en) Device and method of focusing on points of objects
Hoegg et al. Real-time motion artifact compensation for PMD-ToF images
KR101682407B1 (ko) 측정 데이터를 스무딩하기 위한 최적 기준 데이터 수의 결정 방법 및 측정 데이터의 보정 방법
US9582887B2 (en) Methods and apparatus for determining field of view dependent depth map correction values

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