KR102447461B1 - 다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정 - Google Patents

다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정 Download PDF

Info

Publication number
KR102447461B1
KR102447461B1 KR1020197005459A KR20197005459A KR102447461B1 KR 102447461 B1 KR102447461 B1 KR 102447461B1 KR 1020197005459 A KR1020197005459 A KR 1020197005459A KR 20197005459 A KR20197005459 A KR 20197005459A KR 102447461 B1 KR102447461 B1 KR 102447461B1
Authority
KR
South Korea
Prior art keywords
depth
image
dimensions
camera device
space
Prior art date
Application number
KR1020197005459A
Other languages
English (en)
Other versions
KR20190032532A (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 KR20190032532A publication Critical patent/KR20190032532A/ko
Application granted granted Critical
Publication of KR102447461B1 publication Critical patent/KR102447461B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0011Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement
    • G05D1/0044Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots associated with a remote control arrangement by providing the operator with a computer generated representation of the environment of the vehicle, e.g. virtual reality, maps
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0251Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting 3D information from a plurality of images taken from different locations, e.g. stereo vision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • 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
    • 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/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Electromagnetism (AREA)
  • Robotics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Multimedia (AREA)
  • Optics & Photonics (AREA)
  • Image Analysis (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

여기에 설명된 특정 예는 단안 다방향 카메라 장치를 사용하여 내부(room)와 같은 밀폐된 공간의 치수를 추정하는 것에 관한 것이다. 예를 들어, 로봇 장치와 같은 움직임 평면 내 한 지점을 중심으로 하는 상기 카메라 장치의 이동이 수행된다. 상기 단안 다방향 카메라 장치를 사용하여, 움직임 동안 복수의 다른 각도 위치에서 일련의 이미지가 획득된다(610). 자세 데이터는 상기 일련의 이미지로부터 결정된다(620). 자세 데이터는 상기 일련의 이미지 내에서 검출된 한 세트의 특징을 사용하여 결정된다. 이때, 깊이 값들은 상기 일련의 이미지 및 상기 자세 데이터의 체적 함수를 평가함으로써 추정된다(630). 3-차원 체적은 상기 카메라 장치의 기준 위치 주변에 한정되고(640), 3-차원 체적은 움직임 평면 내에 2-차원 다각형 단면을 지닌다. 이때, 3-차원 체적은 깊이 값에 맞추어(650) 다각형 단면의 치수를 결정힌다. 그런 다음 이러한 치수는 상기 밀폐된 공간의 형상에 대한 예상치를 제공한다.

Description

다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정
본 발명은 다방향 카메라를 이용한 공간 매핑에 관한 것이다. 본 발명은 단안(單眼)용 다방향 카메라를 이용해 공간 내에서 캡처된 이미지 데이터에 기초하여 밀폐된 공간에 대한 한 세트의 치수를 추정하는 것에 특히 관련이 있지만, 이에 국한되지 않는다.
바닥 청소 로봇과 같은 저-비용 로봇 장치는 일반적으로 실내 내부와 같은 3-차원 공간을 매핑하고 특정한 경우에는 내비게이트하기 위한 제한된 인식 및 간단한 알고리즘에 의존한다. 예를 들어, 한 경우에, 로봇 장치는 회피 가능하지 않은 사이트 라인 내 객체를 검출하는 적외선 또는 초음파 센서를 포함할 수 있다. 동시적 위치추정 및 맵핑(simultaneous localisation and mapping; SLAM)과 같은 기법을 중심으로 많은 발전이 이루어졌지만 많은 솔루션은 연구실에서 이용 가능한 실질적인 연산 자원에 의존한다. 이는 이러한 솔루션들을 실제 상업용 로봇 장치를 제어하는 임베디드 컴퓨팅 장치로 변환하기 어렵게 한다. 또한, 특정 솔루션에는 LAser Detection and Ranging - LADAR - 센서, 구조화된 광 센서 또는 비행 시간 깊이(time-of-flight depth) 카메라와 같은 특수 센서 장치들의 모음이 필요하다. 이러한 특수 센서 장치들은 비용과 복잡성을 가중시키므로 실제 로봇 애플리케이션에 적합하지 않다.
US2010/0040279A1은 자동 주행 장치를 제어하기 위한 3-차원 그리드 맵을 구축하는 방법 및 장치를 기술한다. 무인 차량 또는 모바일 로봇의 현재 위치 및 주변 환경을 식별하기 위해 3-차원 맵을 구축할 때, 3-차원 그리드 맵을 보다 신속하게 구축하기 위해 2-차원 위치추정 및 3-차원 이미지 복원이 사용된다. 그러나 이러한 솔루션은 적어도 2개의 개별 무지향성 카메라 장치 및 대응하는 입체 이미지 처리를 포함하는 입체 무방향성 카메라의 사용을 필요로 한다. 이는 많은 가정 또는 저가 로봇 장치에 대해 실용적이지 않거나 비용-효율적이지 않을 수 있다.
US2014/0037136A1은 도로상의 장애물 검출을위한 차량 탑재 카메라의 자세를 결정하기위한 방법 및 시스템을 기술한다. 환경에 대한 이동가능 카메라의 자세는 한 세트의 초기 이미지로부터 지점 대응을 결정한 다음에 상기 지점 대응에 2-지점 움직임 추정을 적용하여 상기 카메라의 한 세트의 초기 자세를 결정함으로써 얻어진다. 지점 클라우드(point cloud)는 상기 한 세트의 초기 자세와 상기 지점 대응으로부터 생성된다. 그 다음에, 각각의 다음 이미지에 대해, 상기 지점 클라우드를 업데이트하면서 상기 지점 대응과 해당 자세가 결정된다. 상기 지점 클라우드는 자동차 환경에서 장애물을 감지하는 데 사용될 수 있다. 그러나 여기에 설명된 기법은 엔진 구동 전력 공급원에 액세스할 수 있고 크고 고 사양의 컴퓨팅 자원을 채용할 수 있는 자동차 및 기타 자동차와 같은 대형 장치에 더 적합하다. 이는 많은 가정 또는 저가 로봇 장치에 대해 실용적이지 않거나 비용-효율적이지 않을 수 있다.
US2013/0216098A1은 혼잡한 3-차원 공간의 맵, 예컨대 많은 사람이 있는 환경의 맵을 구축하기 위한 기법을 기술한다. 이는 로봇의 이동 중에 촬영된 이미지를 획득하는 연속 이미지 취득부, 상기 이미지로부터 각각의 특징 지점의 양을 추출하는 국소 특징량 추출부, 양이 상기 특징량 추출부에 의해 추출되는 경우 입력 이미지의 양 중에서 매칭(matching)을 수행하는 특징량 매칭부, 상기 매칭부에 의한 소정 개수의 이미지들 중 매칭된 량의 평균을 불변 특징량으로서 산출하는 불변의 특징량 산출부, 이미지들이 획득될 때의 로봇 위치에 기초하여 각각의 불면 특징량에 상응하는 거리 정보를 산출하는 거리 정보 취득부, 및 하이브리드 맵으로서 국소 메트릭 맵을 생성하는 맵 생성부를 포함한다. 이러한 기법은 혼잡한 공간에서 사용할 때 이점이 있지만 컴퓨팅 자원이 제한적인 임베디드 컴퓨팅 장치에 채용하기에 적합하지 않다.
EP2854104A1에는 반-고밀도(semi-dense) 동시적 위치추정 및 매핑 방법이 개시되어 있다. 이러한 방법에서는, 이미지 취득 수단의 자세와 깊이 정보가 추정된다. 깊이 정보를 결정함으로써 이미지 취득 수단의 위치 및/또는 배향 및 맵핑을 추적하는 단계는 인터리빙(interleaving)된다. 깊이 정보는 한 서브세트의 이미지 픽셀, 예를 들어 강도 변화가 충분히 높은 픽셀에 대해서만 결정된다.
전술한 기법은 특정 상황에 대해 특정 이점을 가지지만, 종종 복잡하고 집약적인 계산을 필요로 한다. 이는 예를 들어 소형이고 저가인 가정용 로봇 장치의 임베디드 제어기 상에서 이러한 기법을 구현하기 어렵게 한다. 이 때문에 이용 가능한 로봇 장치의 제한된 인식 및 간단한 알고리즘을 넘어서고 동시에 동일한 장치에 적용하기에 실용적이고 일반적인 제어 기법에 대한 요구가 있다.
본 발명의 일 측면에 따라, 밀폐된 공간의 치수를 추정하기 위한 이미지 처리 방법이 제공되며, 상기 방법은, 상기 밀폐된 공간 내에 위치된 단안 다방향 카메라 장치로부터 이미지 데이터를 획득하는 단계 - 상기 단안 다방향 카메라 장치는 복수의 각도 위치로부터 이미지 데이터를 캡처하도록 이루어지고, 상기 이미지 데이터는 상기 카메라 장치의 움직임 평면 내에 불일치를 갖는 일련의 이미지를 포함함 -; 상기 이미지 데이터에 상응하는 자세 데이터를 결정하는 단계 - 상기 자세 데이터는 상기 단안 다방향 카메라 장치의 위치 및 방위를 나타내고, 상기 자세 데이터는 상기 이미지 데이터 내에서 검출된 한 세트의 특징을 사용하여 결정됨 -; 상기 이미지 데이터 및 상기 자세 데이터의 체적 함수를 평가하여 깊이 값을 추정하는 단계 - 각각의 깊이 값은 상기 단안 다방향 카메라 장치의 기준 위치에서부터 상기 밀폐된 공간 내 표면에 이르기까지의 거리를 나타냄 -; 및 상기 단안 다방향 카메라 장치의 기준 위치 주변에 3-차원 체적을 정의하는 단계 - 상기 3-차원 체적은 상기 단안 다방향 카메라 장치의 움직임 평면 내에 2-차원 다각형 단면을 지님 -; 및 상기 다각형 단면에 대한 치수를 결정하기 위해 상기 깊이 값에 상기 3-차원 체적을 맞추는 단계 - 상기 결정된 치수는 상기 밀폐된 공간의 치수에 대한 추정치를 제공함 -;을 포함한다.
하나의 경우에, 상기 3-차원 체적을 상기 깊이 값에 맞추는 단계는, 상기 다각형 단면에 대한 치수와 관련하여, 상기 이미지 데이터 및 상기 자세 데이터의 체적 함수의 평가로부터의 제1 세트의 깊이 값 및 상기 기준 위치에서부터 상기 3-차원 체적의 벽에 이르기까지 추정된 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는 단계를 포함한다. 광선 추적은 상기 제2 세트의 깊이 값을 결정하는데 사용될 수 있다. 상기 오차의 함수는 상기 제1 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지를 제2 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지와 비교함으로써 평가될 수 있다. 상기 함수는 비대칭 함수를 포함할 수 있으며, 상기 비대칭 함수는 상기 제1 세트의 깊이 값이 상기 제2 세트의 깊이 값보다 작을 때에 비해 상기 제1 세트의 깊이 값이 상기 제2 세트의 깊이 값보다 클 때 큰 값을 복귀시킨다.
하나의 경우에, 상기 방법은 자코비안(Jacobians)을 계산하기 위해 전방 누적(forward accumulation)으로 자동 차등화를 적용하는 단계를 포함하며, 상기 자코비안은 상기 제1 세트 및 상기 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는데 사용된다.
특정 예에서, 상기 다각형 단면은 직사각형을 포함하고, 상기 치수는 기준 위치에서부터 직사각형의 대응하는 측면에 이르기까지의 거리를 포함한다. 이 경우에, 상기 3-차원 체적을 맞추는 단계는 기준 위치에 대한 직사각형의 회전 각을 결정하는 단계를 포함할 수 있다. 또한, 3-차원 체적은 기준 위치에 대한 직사각형의 회전 각 이전에 기준 위치에서부터 직사각형의 대응하는 측면에 이르기까지의 거리를 평가하는 좌표 하강 접근법을 사용하여 맞춰질 수 있다.
소정의 경우에, 상기 방법은 복수의 직사각형에 대한 치수를 결정하도록 단안 다방향 카메라 장치의 다중 공간 움직임에 대해 반복되고, 상기 직사각형은 밀폐된 공간의 범위를 나타낸다. 이 경우에, 상기 방법은 상기 직사각형들의 오버랩(overlap)을 결정하는 단계; 및 상기 오버랩을 사용하여 상기 밀폐된 공간 내에 내부 경계를 결정하는 단계 - 상기 오버랩이 사전에 정의된 문턱값보다 작을 경우, 상기 복수의 직사각형이 상기 공간 내의 대응하는 복수의 내부와 관련이 있도록 결정되고, 상기 오버랩이 사전에 정의된 문턱값보다 클 경우, 상기 복수의 직사각형은 밀폐된 공간의 복잡한 형상과 관련이 있도록 결정됨;을 포함할 수 있다. 후자의 단계는 밀폐된 공간의 형상에 대한 추정치를 제공하기 위해 상기 복수의 직사각형의 불린 유니온(Boolean union)을 계산하는 단계를 포함할 수 있다.
일 예에서, 상기 방법은 내부 분류기에 상기 다각형 단면에 대한 치수를 입력하는 단계; 및 상기 내부 분류기를 사용하여 내부 등급을 결정하는 단계;를 포함할 수 있다. 로봇 장치의 작동 패턴은 상기 내부 등급에 기초하여 결정될 수 있다.
본 발명의 제2 측면에 따라, 밀폐된 공간의 치수를 추정하기 위한 시스템이 제공되며, 상기 시스템은, 상기 밀폐된 공간 내 복수의 각도 위치로부터 일련의 이미지를 캡처하는 단안 다방향 카메라 장치; 상기 일련의 이미지로부터 자세 데이터를 결정하는 자세 추정기 - 상기 자세 데이터는 지시된 움직임 동안 복수의 위치에서 상기 단안 다방향 카메라 장치의 위치 및 배향을 나타내고, 상기 자세 데이터는 상기 일련의 이미지 내에서 검출된 한 세트의 특징을 사용하여 결정됨 -; 상기 자세 데이터 및 상기 일련의 이미지의 체적 함수를 평가하여 깊이 값을 추정하는 깊이 추정기 - 각각의 깊이 값은 상기 다방향 카메라 장치의 기준 위치에서부터 상기 밀폐된 공간 내 표면에 이르기까지의 거리를 나타냄 -; 및 3-차원 체적의 2-차원 다각형 단면의 치수를 최적화하여 상기 깊이 추정기로부터의 깊이 값에 3-차원 체적을 맞추고 상기 2-차원 다각형 단면의 최적화된 치수에 기초하여 상기 밀폐된 공간의 치수에 대한 추정치를 출력하는 치수 추정기;를 포함한다.
하나의 경우에, 상기 단안 다방향 카메라 장치, 상기 깊이 추정기, 자세 추정기 및 상기 치수 추정기 중 적어도 하나는 로봇 장치에 내장된다.
하나의 경우에, 상기 시스템은 또한 빌딩 내 복수의 밀폐된 공간에 대한 상기 치수 추정기로부터의 추정치를 포함하는 내부 데이터베이스를 포함한다. 상기 내부 데이터베이스로부터의 데이터는 네트워크를 통해 모바일 컴퓨팅 장치로부터 액세스 가능할 수 있다.
제2 측면의 시스템은 본 발명의 제1 측면의 임의의 특징을 구현하도록 구성될 수 있다.
본 발명의 제3 측면에 따라, 프로세서에 의해 실행될 때, 컴퓨팅 장치로 하여금 공간을 매핑하게 하는 컴퓨터 실행가능 명령어를 포함하는 비-일시적 컴퓨터 판독가능 저장 매체가 제공되며, 상기 명령어는 상기 컴퓨팅 장치로 하여금 단안 다방향 카메라로부터 일련의 프레임을 수신하는 동작 - 상기 다방향 카메라는 복수의 각도 위치로부터 상기 프레임들 각각에 대한 이미지 데이터를 캡처하도록 이루어지며, 상기 일련의 프레임은 상기 공간에 대한 움직임의 평면 내 상이한 각도 위치에서 캡처됨 -; 상기 일련의 프레임에 걸쳐 검출된 특징들을 매칭시켜 각각의 프레임에 대한 상기 카메라에 대한 위치 및 배향 추정치를 결정하는 동작; 상기 일련의 프레임에 걸쳐 검출된 특징들 및 상기 카메라에 대한 위치 및 배향 추정치를 번들 조정하여 최적화된 한 세트의 상기 카메라에 대한 위치 및 배향 추정치를 생성하는 동작; 상기 일련의 프레임으로부터 기준 프레임을 결정하는 동작 - 상기 기준 프레임은 관련된 기준 위치 및 배향을 지님 -; 상기 기준 프레임에 대한 픽셀 값과 기준 프레임과 오버랩되는 한 세트의 비교 이미지로부터의 투영된 픽셀 값 간의 광도 오차 함수를 평가하는 동작 - 상기 투영된 픽셀 값은 상기 카메라로부터의 표면 거리 및 상기 카메라에 대한 최적화된 한 세트의 위치 및 배향 추정치의 함수임 -; 상기 평가된 광도 오차 함수에 기초하여 상기 기준 프레임의 상이한 픽셀 열에 상응하는 상이한 각도 위치에 대한 제1 세트의 표면 거리를 결정하는 동작; 상기 제1 세트의 표면 거리 및 3-차원 체적에 기초하여 결정된 제2 세트의 표면 거리 간의 오차를 최적화하여 상기 기준 위치를 에워싸는 3-차원 체적의 평면 직사각형 단면에 대한 매개변수를 결정하는 동작; 및 상기 평면 직사각형 단면에 대한 상기 결정된 매개변수를 사용하여 상기 공간에 대한 평면을 결정하는 동작;을 수행하게 한다.
일 예에서, 상기 명령어는 복수의 평면 직사각형 단면에 대한 매개변수를 결정하도록 반복된다. 하나의 경우에, 바닥 평면을 결정하기 위한 명령어는 복수의 평면 직사각형 단면의 합집합에 기초하여 바닥 평면을 결정하기 위한 명령어를 포함한다. 또 다른 경우에, 명령어는, 상기 복수의 평면 직사각형 단면의 공간 오버랩을 결정하는 명령어; 및 상기 공간 오버랩에 기초하여 공간에 대한 내부 경계를 결정하는 명령어를 포함한다.
다른 예에서, 비-일시적 컴퓨터 판독가능 저장 매체는 프로세서에 의해 실행될 때 로봇 장치의 내장 컴퓨터 또는 분산 시스템의 원격 프로세서와 같은 컴퓨팅 장치로 하여금 위에서 설명한 방법들 중 어느 하나를 수행하게 하는 컴퓨터-실행가능 명령어를 포함할 수 있다.
본 발명의 다른 특징 및 이점은 첨부된 도면을 참조하여 이루어진 단지 예를 들어 제공된 본 발명의 바람직한 실시 예에 대한 이하의 설명으로부터 명백해질 것이다.
도 1a 및 도 1b는 로봇 장치의 2가지 예를 보여주는 개략도이다.
도 2a 및 도 2b는 예들에 따른 로봇 장치의 움직임을 보여주는 개략도이다.
도 3a는 대표적인 다각형 단면의 치수를 보여주는 개략도이다.
도 3b는 대표적인 다각형 단면에 대한 회전 각을 보여주는 개략도이다.
도 3c는 다각형 단면을 지니는 대표적인 3-차원 체적을 보여주는 개략도이다.
도 4a 및 도 4b는 2가지 예에 따른 밀폐된 공간의 치수를 추정하는데 사용하기 위한 특정 시스템 구성요소를 보여주는 개략도이다.
도 5는 일 예에 따른 밀폐된 공간의 치수를 추정하기 위한 시스템의 특정 구성요소를 나타내는 개략도이다.
도 6은 일 예에 따른 밀폐된 공간의 치수를 추정하기 위한 이미지 처리 방법을 보여주는 흐름도이다
도 7은 일 예에 따른 카메라 장치에 대한 자세 데이터를 추정하는 방법을 보여주는 흐름도이다.
도 8은 일 예에 따른 깊이 값을 추정하는 방법을 보여주는 흐름도이다.
도 9a는 상이한 이미지 특성을 지니는 2개의 영역을 나타내는 로봇 장치로부터의 대표적인 이미지를 보여주는 도면이다.
도 9b는 일 얘에 따른 도 9a의 2개의 영역에 대한 깊이 값을 나타내는 차트를 보여주는 도면이다.
도 10은 일 예에 따른 비-일시적 컴퓨터 판독가능 매체를 보여주는 개략도이다.
도 11은 일 예에 따른 비대칭 오차 함수를 나타내는 차트를 보여주는 도면이다.
도 12는 일 예에 따라 모바일 컴퓨팅 장치가 내부 데이터베이스에 액세스하는 경우 밀폐된 공간의 치수를 추정하기 위한 시스템의 특정 구성요소를 보여주는 개략도이다.
도 13a 및 도 13b는 다양한 밀폐된 공간에 맞춰진 대표적인 다각형 단면을 보여주는 개략도이다.
여기에 설명된 특정 예들은 단안 다방향 카메라 장치로부터의 이미지 데이터에 기초하여 빌딩 내 내부와 같은 밀폐된 공간의 형태를 추정한다. 밀폐된 공간의 형상을(예컨대, 상기 공간에 대한 네비게이션 평면 내 2-차원 다각형 단면을 정의하는 값의 형태로) 추정하는 것은 상기 공간을 내비게이트하는데 로봇 장치에 의해 사용될 수 있고 그리고/또는 인간 제어기에 디스플레이될 수 있다.
특정 예는 밀폐된 공간 내 복수의 상이한 각도 위치에서 일련의 이미지를 획득하기 위해 단안 다방향 카메라 장치를 사용한다. 근사적인 x-y 움직임 평면으로 움직이는 바닥 기반 로봇의 경우, 이러한 이미지는 모든 수평 방향으로 불일치가 있는 일련의 밀접하게 간격을 둔 이미지로 구성될 수 있다. 상기 이미지는 다수의 원 또는 원주 움직임을 수행하여 획득될 수 있다. 이는 밀폐된 공간의 크기와 관련하여 작은 움직임일 수 있다. 상기 카메라 장치는 단일 무-지향성 카메라를 포함할 수 있다.
여기에 설명된 특정 예는 이때 이러한 이미지에 대한 특정 처리 동작을 제공한다. 이러한 처리는 임베디드 컴퓨팅 자원 내에서, 예컨대 로봇 장치 또는 모바일 컴퓨팅 장치의 프로세서 내에서 적용 가능하다. 일 예에서, 자세 데이터는 특징-기반 접근법을 사용하여 일련의 이미지로부터 결정된다. 이러한 자세 데이터가 일련의 이미지에 대해 산출되면, 상기 이미지 및 상기 자세 데이터의 체적 함수가 깊이 값, 예컨대 상기 카메라 장치로부터 상기 공간 내 객체의 거리를 나타내는 깊이 값을 결정하도록 평가된다. 상기 체적 함수는 3-차원 내에서 예컨대 공간의 체적과 관련하여 평가되는 함수를 포함한다. 상기 체적 함수는 기준 이미지 주위에서 모델링되는 조밀한 무-지향성 비용 체적을 평가하는 것을 포함할 수 있다. 상기 체적 함수를 평가하는 것은 이러한 비용 체적을 최적화하는 것, 예컨대 비용 값을 최소화하는 매개변수 값을 찾는 것을 포함 수 있다. 상기 자세 데이터를 결정하고 체적 함수를 평가하는 2-단계 양자 모두의 접근법의 상대적 단점을 제한하도록 적절한 계산을 선택하면서 환경을 모델링하는 데 희소 및 조밀 접근법의 이점을 결합한다.
여기에 설명된 예에서, 카메라 장치의 움직임 평면 내 2-차원 다각형 단면에 대한 치수, 위에서 보인 바와 같은 내부 평면 또는 단면에 대한 치수는 상기 단면으로부터 생성된 3-차원 체적을 상기 추정된 깊이 값에 맞추어 결정된다. 상기 3-차원 체적은 상기 체적 함수에 대한 기준 이미지에 상응하는 기준 위치 주변에서 결정된다. 움직임 평면은 바닥에 평행한 평면(예컨대, 공통 Z-축 값을 지니는 평면)일 수 있다. 상기 치수는 x 및 y 방향으로의, 예컨대 기준 위치로부터 결정된 바와 같은) 다각형 단면의 범위에 상응할 수 있다. 상기 치수는 상기 카메라 장치의 기준 위치에서부터 상기 단면의 양 측면에 이르기까지의 거리로서 정의될 수 있으며, 이러한 양 측면은 내부 내 벽 또는 표면에 상응할 수 있다. 따라서 여기에 설명된 예는 가정과 사무실에서 내부 계획을 자율적으로 결정하는 데 사용될 수 있다. 상기 예는 실내 및 실외 양자 모두의 밀폐된 공간(예컨대, 경기장, 펜스, 원형 경기장 등)에 적용될 수 있다.
여기에 설명된 특정 예는 제한된 컴퓨터 자원 및/또는 실시간 동작에 대한 신속한 평가를 허용하는 방식으로 2-차원 및 3-차원 계산을 결합한다. 특정 예는 로봇 장치가 밀폐된 공간, 예컨대 실내 내와 같은 밀폐된 공간을 신속하고 정확하게 내비게이트하는 것을 허용하는데, 또는 예컨대 알려지지 않은 영역을 매핑하기 위해 인간의 개입 없이 상기 공간의 애스펙트(aspect)를 측정하는데 유용한 데이터를 출력한다.
여기에 설명된 특정 예는 내부 분류 및/또는 경계가 적용될 수 있게 한다. 예를 들어, 여기에 설명된 방법 또는 시스템에 의해 계산된 치수는 복잡한 내부 형상을 결정하거나 공통 공간 내 다수의 내부가 있는지를 결정하도록 평가될 수 있다. 상기 치수는 또한 내부 분류기에 대한 입력으로서 자체로 또는 다른 수집 된 데이터와 함께 사용될 수 있고 그럼으로써 밀폐된 공간에 대해 내부 등급, 예컨대 문자열 레이블 또는 선택된 데이터 정의를 결정할 수 있게 된다.
대표적인 로봇 장치
도 1a는 여기에 설명된 밀폐된 공간의 치수를 추정하는데 사용될 수 있는 테스트 로봇 장치(105)의 제1 예(100)를 보여준다. 이러한 테스트 로봇 장치는 다음의 예를 이해하기 쉽게 하기 위해 제공되며 제한적으로 보아서는 아니 되며, 상이한 구성의 다른 로봇 장치는 다음의 구절에서 설명된 동작을 마찬가지로 적용할 수 있다. 어떤 방법 및 시스템이 로봇 장치에 의해 탐색된 공간의 맥락에서 기술되어 있지만, 핸드헬드 또는 다른 모바일 장치, 예컨대 사람이나 다른 로봇 장치에 의해 움직여지는 내장형 단안 다방향 카메라 장치를 지니는 장치로부터 획득된 데이터를 사용하여 동일한 방법 및 시스템이 대안으로 적용될 수 있다.
도 1a의 테스트 로봇 장치(105)는 복수의 각도 위치로부터 이미지를 캡처하는 단안 다방향 카메라 장치(110)를 포함한다. 사용 중에, 여러 이미지가 하나씩 캡처될 수 있다. 특정한 경우에, 상기 복수의 각도 위치는 넓은 시야를 커버한다. 특정한 경우에, 상기 카메라 장치(110)는 무-지향성 카메라, 예컨대 실질적으로 360 도의 시야를 캡처하도록 이루어진 장치를 포함할 수 있다. 이 경우에, 무-지향성 카메라는 파노라마-환형-렌즈를 지니는 장치를 포함할 수 있고, 예컨대 상기 렌즈는 전하 결합 어레이와 관련하여 장착될 수 있다. 도 1a의 예에서, 상기 카메라 장치(110)는 상기 로봇 장치 위의 구성 가능한 아암에 장착되고, 다른 경우에, 상기 카메라 장치(110)는 상기 테스트 로봇 장치(105)의 몸체 부분 내에 고정적으로 장착될 수 있다. 하나의 경우에, 단안 다방향 카메라 장치는 일련의 이미지를 캡처하도록 구성된 스틸 이미지 장치를 포함할 수 있으며, 다른 경우에, 단안 다방향 카메라 장치는 비디오 프레임들의 형태로 일련의 이미지를 포함하는 비디오 데이터를 캡처하기 위한 비디오 장치를 포함할 수 있다. 특정한 경우에, 상기 비디오 장치는 대략 초당 25 프레임 또는 30 프레임, 또는 이보다 큰 프레임의 프레임 속도로 비디오 데이터를 캡처하도록 구성될 수 있다.
도 1a의 테스트 로봇 장치(105)는 이 경우에 테스트 로봇 장치(105)의 몸체 부분에 대해 배치된 한 세트의 구동 휠 세트를 포함하는 적어도 하나의 움직임 액추에이터(115)를 더 포함한다. 상기 적어도 하나의 움직임 액추에이터(115)는 하나 이상의 휠, 트랙 및/또는 롤러에 연결된 적어도 하나의 전기 모터를 포함할 수 있고, 로봇 장치를 공간 내에 움직이도록 이루어진다. 이러한 공간의 예는 도 2a 및 도 2b를 참조하여 나중에 설명된다. 상기 테스트 로봇 장치(105)는 또한 제어기(120)를 포함한다. 이는 도 1a에서 점선으로 나타낸 바와 같이 내장형 컴퓨팅 장치를 포함할 수 있다. 예를 들어, 상기 제어기(120)는 적어도 하나의 프로세서 및 메모리 및/또는 하나 이상의 시스템-온-칩 제어기를 사용하여 구현될 수 있다. 특정한 경우에, 상기 제어기(120)는 기계-판독가능 명령어에 의해, 예컨대 소거 가능하고 프로그램 가능한 판독 전용 메모리(EPROM)와 같은 판독 전용 또는 프로그램가능 메모리로부터 회수되는 바와 같은 펌웨어에 의해 구현될 수 있다. 상기 제어기(120)는 상기 공간 내에서 상기 테스트 로봇 장치(105)의 움직임을 제어한다. 예를 들어, 제어기(120)는 상기 테스트 로봇 장치(105)를 전방 또는 후방으로 추진시키거나 상기 장치를 방향전환시키거나 회전시키기 위해 상기 테스트 로봇 장치(105)의 휠을 차등 구동시킬 것을 상기 적어도 하나의 움직임 액추에이터에 지시할 수 있다. 도 1a에서, 상기 테스트 로봇 장치(105)는 또한 상기 테스트 로봇 장치(105)의 회전을 허용하는 회전 가능한 프리-휠(125)을 지닌다. 동작시, 상기 제어기(120)는 밀폐된 공간에 대한 치수를 결정하도록 구성될 수 있다. 예를 들어, 상기 제어기(120)는 치수를 정의하는 데이터가 저장되는 메모리 또는 다른 기계-판독가능 매체를 포함할 수 있다. 하나의 실험 구성에서, Pioneer 3DX 모바일 로봇 플랫폼이 상기 테스트 로봇 장치(105)를 구현하는데 사용되었다.
도 1b는 로봇 장치(155)의 다른 예(150)를 보여준다. 도 1b의 로봇 장치(155)는 가정용 청소 로봇을 포함한다. 상기 테스트 로봇 장치(105)와 마찬가지로, 상기 청소 로봇 장치(155)는 단안 다방향 카메라 장치(160)를 포함한다. 도 1b의 예에서, 상기 카메라 장치(160)는 상기 청소 로봇 장치(155)의 상부 상에 장착된다. 한 구현 예에서, 상기 청소 로봇 장치(155)는 약 10 내지 15 cm의 높이를 지닐 수 있으나, 다른 크기도 가능하다. 상기 청소 로봇 장치(155)는 또한, 적어도 하나의 움직임 액추에이터(165)를 포함할 수 있으며, 이 경우에 이는 상기 장치를 의 전방 및 후방으로 추진시키기 위해 상기 장치의 양측 상에 장착된 2 세트의 트랙을 구동시키도록 이루어진 적어도 하나의 전기 모터를 포함한다. 이러한 트랙은 상기 청소 로봇 장치(155)를 조정하기 위해 부가적으로 차등 구동될 수 있다. 다른 예에서, 상이한 구동 및/또는 조정 구성요소들 및 기술들이 제공될 수 있다. 도 1a에서와 같이, 상기 청소 로봇 장치(155)는 제어기(170)와 회전 가능한 프리 휠(175)을 포함한다.
도 1a에 도시된 테스트 로봇 장치(105)의 구성요소에 추가하여, 상기 청소 로봇 장치는 클리닝(cleaning) 요소(180)를 포함한다. 이러한 클리닝 요소(180)는 내부의 바닥을 클리닝하기 위한 요소를 포함할 수 있다. 그것은 롤러 또는 브러시(185) 및/또는 습식 또는 건식 요소를 포함할 수 있다. 하나의 경우에, 상기 클리닝 요소(180)는 진공 장치, 예컨대 먼지 및 가루 입자를 캡처하도록 이루어진 진공 장치를 포함할 수 있다. 이 경우에, 상기 제어기(170)는 (내부 분류 또는 경계 파이프라인의 일부로서) 밀폐된 공간의 치수를 직접 또는 간접적으로 사용하여 상기 공간에 대한 클리닝 패턴을 결정하고 상기 클리닝 패턴에 따라 상기 클리닝 요소(180)의 활성화를 지시하도록 구성될 수 있다. 예를 들어, 진공 장치는 상기 치수에 의해 정의된 공간의 영역을 클리닝하는데 작동될 수 있다. 상기 로봇 장치는 상기 공간의 치수를 사용하여, 무엇보다도 클리닝 유체의 요구 수준; 공간을 클리닝하는 데 필요한 배터리 전원(이러한 전원을 이용할 수 없다고 결정되는 경우 경보가 제공될 수 있음); 특정한 내부에 사용하기 위한 클리닝 장치 또는 시스템(예컨대, 부엌은 상이한 치수의 카펫이 깔린 내부에 적합하지 않은 습식 요소를 사용할 수 있음); 및 상기 공간을 위한 클리닝 패턴(예컨대, 상기 공간의 영역을 커버하기 위한 제안된 경로); 중의 하나 이상을 결정할 수 있다.
로봇 장치에 대한 대표적인 움직임
도 2a 및 도 2b는 2 가지 예에 따른 공간(210) 내 로봇 장치(205)의 움직임(200, 250)을 개략적으로 보여준다. 상기 로봇 장치(205)는 일부 예에서, 도 1a 및 도 1b에 도시된 바와 같은 장치를 포함할 수 있다. 도 2a 및 도 2b에서, 상기 공간(210)은 실내 내부의 형태로 3-차원 공간을 포함한다. 다른 예에서, 상기 공간은 임의의 실내 및/또는 실외의 밀폐된 물리적 공간, 예컨대 일반적인 내부가 (바닥 및 천정을 제외하고) 4개의 표면으로 에워싸이는 경우 하나 이상의 표면으로 에워싸인 내부 또는 지리적 위치의 적어도 일부일 수 있다. 특정한 경우에 공간이 2개의 측면 상에 표면으로 에워싸일 수도 있고 둘러싸여 있을 수도 있으며, 다른 측면들은 정사각형 또는 직사각형과 같은 일반 다각형 단면을 가정하여 추정된다. 여기에 설명된 예는 천장이 없는 실외 공간, 예컨대 로봇 장치 위에 표면이 없는 실외 공간에 적용될 수 있다. 마찬가지로, 상기 로봇 장치가 (다-회전기) 헬리콥터와 같은 공중 장치일 경우, 바닥, 예컨대 상기 로봇 장치 아래의 표면은 여기에 설명된 예를 적용할 필요가 없다.
도 2a 및 도 2b의 공간(210)은 상기 공간과 함께 위치된 다수의 물리적 객체(220)를 포함한다. 모든 밀폐된 공간에 참조 번호 220과 같은 물리적 객체가 포함될 필요가 없지만, 많은 실제 공간에 이러한 객체가 포함된다. 상기 객체(220)는 무엇보다도 가구, 빌딩 부분, 장비, 융기된 바닥 부분, 실내 벽 부분, 사람, 전자 장치, 동물 등 중 하나 이상을 포함할 수 있다. 도 2a 및 도 2b의 공간(210)이 하부 표면과 평면을 이루고 있는 것으로 위에 도시되어 있지만, 이는 모든 구현 예에서 그러할 필요가 없고, 예를 들어 환경은 공중일 수도 있고 외계 공간 내에 있을 수 있다. 상기 공간의 하부 표면은 또한 수평 바닥일 필요가 없고, 예컨대 이는 경사 표면 및/또는 다단계의 일련의 표면을 포함할 수 있다.
도 2a의 예에서, 상기 로봇 장치(205)는 상기 공간 내 지점(230) 주위를 움직이도록 이루어져 있다. 예를 들어, 도 1a 또는 도 1b에 도시된 바와 같은 제어기(120 또는 170)는 적어도 하나의 움직임 액추에이터를 사용하여 움직임(240)을 지시하도록 구성될 수 있다. 상기 움직임(240) 동안, 상기 로봇 장치(205)는 장착된 단안 다방향 카메라 장치, 예컨대 도 1a 또는 도 1b에 참조 번호 110 또는 160을 사용하여 복수의 상이한 각도 위치에서 일련의 이미지를 획득하도록 구성된다. 예를 들어, 상기 움직임(240)은 상기 공간의 일부 내에서 실질적으로 원으로 움직이는 것을 포함할 수 있다. 특정한 경우에, 상기 움직임(240)은 완전한 루프, 예컨대 지점(230) 주위로 360도 회전하는 완전한 루프를 포함할 수 있으며, 다른 경우에, 상기 움직임은 루프의 일부, 예컨대 지점(230) 주위로 360도 미만으로 회전하는 루프의 일부를 포함할 수 있다. 상기 움직임(240)은 원일 필요가 없으며, 이는 임의의 형상의 둘레, 예컨대 등변 및 비등변을 지니는 것을 포함하는 임의의 다각형의 둘레의 적어도 일부 주위로의 원주 방향 움직임일 수 있다. 대략 4 또는 5 제곱미터의 비교적 작은 크기의 내부(예컨대, 평균 가정집 내부)에서, 상기 움직임(240)은 직경 0.5 미터 정도를 포함할 수 있고, 예컨대 0.5 미터의 직경으로 대략 원으로 움직이는 것을 포함할 수 있다. 이는 10-20 초 소요될 수 있다. 특정한 테스트 예에서, 작은 크기의 내부일 경우, 일련의 이미지는 100 또는 200 프레임 정도를 포함할 수 있다.
일반적으로, 도 2a의 예에서, 상기 로봇 장치(205)는 적어도 하나의 움직임을 수행하여 상기 단안 다방향 카메라 장치가 복수의 방향으로 불일치를 지니는 적어도 일련의 근접 이격된 이미지(예컨대, 비디오 프레임)를 갭처할 수 있게 하도록 제어된다. 예를 들어, 대략 수평 바닥을 지니는 공간에서, 즉 로봇 장치(205)에 대한 움직임 평면을 형성하는 대략 수평 바닥을 지니는 공간에서, 일련의 근접 이격된 이미지는 복수의 수평 방향으로 불일치를 지닐 수 있다. 상대적으로, 움직임을 위한 각이 진(경사진) 평면을 지니는 공간에서, 또는 공중 또는 외계 공간에서, 상기 불일치는 움직임 평면과 평행한 복수의 방향으로 존재할 수 있다. 이러한 움직임(240)은 간략한 묘사(description)의 움직임, 예컨대 내부 내에서 자신들을 배향시키도록 내부 주위를 바라볼 수 있는 (준-의식적) 인간 또는 동물의 능력과 유사한 간략한 묘사의 움직임으로서 보일 수 있다. 상기 움직임(240)은 상기 로봇 장치(205)로 하여금 상기 공간의 형상에 대한 글로벌 아이디어를 신속하게 획득할 수 있게 한다. 이는 아래 섹션에 더 구체적으로 설명되어 있다. 그 다음에, 이는 로봇 장치(205)에 내부 내의 글로벌 공간을 신속하게 매핑하고 이 때문에 차후에는 "이해"할 수 있는 능력을 제공하며, 공간의 지능적인 고차원 계획 및 의미론적 이해를 용이하게 한다.
도 2b는 더 큰 공간, 예컨대 실외 공간 및/또는 다중 세그먼트 실내 공간에서 사용될 수 있는 대표적인 움직임(250)을 보여준다. 예를 들어, 도 2b의 공간(255)은 10-20 미터의 적어도 하나의 벽을 지니는 내부를 포함할 수 있다. 특정한 예에서, 도 2b에 도시된 바와 같이, 상기 공간은 시각 장애물에 의해 분리되는 복수의 공간 부분을 포함할 수 있고, 예컨대 파티션(260)은 무엇보다도 부분 벽 또는 전체 벽, 책상 유닛 또는 가구 품목을 포함할 수 있다. 도 2b에서, 움직임(250)은 복수의 움직임(270, 280, 290), 예컨대 도 2a와 관련하여 설명된 바와 같은 복수의 움직임을 포함한다. 도 2b에는 3가지의 움직임이 도시되어 있지만, 이는 제한하려는 것이 아니다. 이 경우, 상기 움직임은 한 세트의 유사한 또는 비-유사한 움직임, 예컨대 형상의 둘레의 한 지점 또는 적어도 일부 주변의 한 세트의 원 또는 원주 움직임으로부터 선택되는 한 세트의 유사한 또는 비-유사한 움직임을 포함할 수 있다. 더 큰 내부의 경우, 상기 움직임은 작은 내부의 경우에 설명된 것보다 더 클 수 있고, 예컨대 원 움직임은 직경이 약 1 미터일 수 있다. 상기 복수의 움직임은 파티션(260)과 같은 시각적 폐색(visual occlusions)이 적어도 부분적으로 주항(周航)될 수 있도록 제어될 수 있다. 예를 들어, 제1 움직임(270)으로부터 획득된 데이터는 파티션(260)을 검출하고, 예컨대, 상기 파티션을 넘어서 발생하는 제2 움직임(280)을 제어기를 통해 지시하는데 사용될 수 있다. 상기 움직임의 개수 및/또는 상이한 움직임들 간의 간격은 상기 공간의 크기 및/또는 상기 공간 내 객체의 위치에 의존할 수 있다. 10-20 미터의 벽이 있는 내부에서 상기 간격은 1-3 미터 정도일 수 있다. 특정한 경우에, 공간의 사전에 정의된 부분이 매핑될 때까지 추가의 움직임이 수행될 수 있다. 도 2b의 예에서, 상기 로봇 장치(205)는 중간에 새로운 뷰포인트로 움직이면서 순차적으로 몇 번의 작은 원 스캔을 하도록 구성되고, 그럼으로써 폐색되는 장애물이 라우드(round) 지게 되기 때문에 상기 공간의 추가 부분이 드러나게 된다. 이러한 스캔 모두로부터 획득된 정보는 다음 섹션에 더 구체적으로 설명되는 바와 같이, 내부 경계를 결정하고 그리고/또는 복잡한 밀폐된 공간의 치수를 결정하는 데 사용될 수 있다.
공간에 대한 대표적인 다각형 단면
도 3a는 예시적인 다각형 단면(300)을 보여준다. 이러한 다각형 단면은 여기에 설명된 방법에서 밀폐된 공간의 형태를 추정하는데 사용될 수 있다. 상기 다각형 단면은 임의의 다각형에 기초하여 이루어질 수 있다. 특정 예에서, 상기 다각형은 직사각형, 즉 박스이다. 테스트에서 직사각형, 즉 박스 형상은 견고한 치수 추정과 다기능성(versatility)을 제공했다. 구현 예에서, 상기 다각형 단면은 한 세트의 치수를 나타내는 데이터, 예컨대 주어진 다각형에 대해 , 측면 길이(및 특정한 경우에 측면 각도)에 의해 정의될 수 있다.
도 3a의 예에서, 상기 다각형 단면은 2-차원이다. 상기 다각형 단면은 밀폐된 공간의 x-y 평면(예컨대, 일정한 z-축 값을 지니는 평면)에서 정의될 수 있다. 이러한 평면은 바닥 평면을 나타낼 수 있다. 도 3a는 예컨대 바닥을 따라서와 같이 밀폐된 공간 내에서 움직임이 가능한 것으로 위에서 본 로봇 장치(305)를 보여준다. 상기 로봇 장치(305)는 단안 다방향 카메라 장치를 갖는 로봇 장치(105, 155) 중 하나일 수 있다. 설명을 쉽게 하기 위해 로봇 장치가 참조되고, 다른 실시 예에서, 단안 다방향 카메라 장치를 지니는 다른 개체가 사용될 수 있다.
도 3a에서, 상기 다각형 단면은 상기 로봇 장치(305)에 대한 치수에 의해 정의된다. 이들 치수는 4개의 거리, 다시 말하면 단면(300)의 제1 측면(302)에 이르기까지의 거리 x+, 단면(300)의 제2 측면(304)(다시 말하면, 상기 제1 측면(304)에 평행험)에 이르기까지의 거리; 단면(300)의 제3 측면(306)(다시 말하면, 제1 측면(302)에 대해 90도임)에 이르기까지의 거리 y+; 단면(300)의 제4 측면(308)에 이르기까지의 거리 y-를 포함한다. 따라서, 한 세트의 치수는 p = [x-, x+, y-, y+]를 포함할 수 있다. 이러한 치수 세트로부터, 폭은 x- + x+로서 결정될 수 있고 길이는 y- + y+로서 결정될 수 있다. 상기 다각형 단면의 치수를 정의하는 데이터는 벡터 또는 어레이 p 로서 그리고/또는 길이 및 폭 값의 형태로 저장될 수 있다.
도 3a에 도시된 거리(즉, p)를 결정하는데 사용되는 로봇 장치(305)의 위치는 아래의 예들에서 한 세트의 깊이 값을 결정하는데 사용되는 바와 같은 로봇 장치(305)의 기준 위치이다. 상기 기준 위치는 상기 한 세트의 깊이 값을 평가하는데 사용되는 기준 이미지에 대한 기준 자세(reference pose)로부터 결정될 수 있고, 예컨대 상기 기준 위치는 상기 로봇 장치(305)의 위치 및 배향에 의해 정의될 수 있다. 상기 기준 위치 및/또는 기준 자세는 도 2a 및 도 2b에서 설명된 움직임 동안 로봇 장치(305)에 의해 취해진 실제 위치 또는 자세와 관련될 필요는 없으며, 이는 예컨대 움직임의 보간으로 또는 자세 데이터로부터 계산된 바와 같이 "가상" 위치 또는 자세일 수 있다. 이는 아래에서 더 구체적으로 설명된다.
도 3b는 특정 예에서 공간의 치수를 정의하는데 사용될 수 있는 또 다른 변수를 보여준다. 도 3b는 상기 로봇 장치(305)의 기준 자세와 상기 다각형 단면(310) 사이에서 정의되는 각도 θ를 보여준다. 이러한 각도는 상기 단면의 2-차원 평면상에 투영되는 바와 같이 상기 기준 자세의 법선 방향에 대한 상기 다각형 단면(310)의 배향을 나타낼 수 있다. 대안으로, 상기 각도는 또한, 상기 로봇 장치(305)가 상기 다각형 단면의 측면과 이루는 각도로서 정의될 수 있다. 예를 들어, 상기 로봇 장치(305)의 기준 위치는 (예컨대, 도 3a에 도시된 바와 같이) 상기 단면의 측면과 평행하지 않을 수 있고, 다시 말하면 상기 로봇 장치(305)는 상기 기준 위치의 공간 내에서 경사져 있을 수 있다. 도 3b의 예에서, 상기 다각형 단면(310)은 매개변수화될 수 있고, 예컨대 매개변수 p = [x-, x+, y-, y+, θ]에 의해 정의될 수 있다. 이 때문에, 도 3b의 박스는 각도 θ로 상기 로봇 장치의 기준 자세를 중심으로 회전하고, 상기 4개의 다른 매개변수는 내부 내 표면 또는 벽에 이르기까지의 거리이다.
도 3c는 상기 로봇 장치(305) 주위에, 다시 말하면 위에서 논의된 기준 위치 주위에 정의된 3-차원 체적(330)을 보여준다. 상기 3-차원 체적(330)은 위에서 설명한 바와 같이 상기 단면(300 또는 310)일 수 있는 2-차원 단면(320)을 지닌다. 상기 3-차원 체적(330)은 공간에서 단면(320)을 연장(예컨대, 신장 또는 압출)함으로써 생성된 임의의 체적이다. 예를 들어, 상기 단면이 x-y 평면을 포함하는 경우, 상기 3-차원 체적(330)은 z-축을 따라 상기 단면을 연장시킴으로써 정의될 수 있다. 상기 3-차원 체적(330)의 높이는 상기 단면의 치수의 최적화에 사용되지 않으며, 이 때문에 상기 단안 다방향 카메라 장치의 시야각의 완전한 커버리지를 보장하는 임의의 큰 값으로 설정될 수 있다. 예를 들어, 전형적이고 대표적인 실내 내부의 경우, 상기 3-차원 체적의 높이는 5 미터로 설정될 수 있다.
구현 예에서, p 및 사전에 정의된 높이(예컨대, 5 m)에 의해 정의된 바와 같은 3-차원 체적은 삼각형 3-차원 모델을 사용하여 정의될 수 있으며, 박스 체적은 8개의 삼각형과 24개의 꼭지점으로 구성될 수 있다(예컨대, 상기 체적의 각각의 측면은 2개의 삼각형으로 정의됨). 예를 들어, 이러한 정의는 OpenGL(Open Graphics Library) 구현 예에 의해 사용될 수 있다. 상기 구현 예의 특성에 따라 다른 그래픽스 엔진 및/또는 체적 치수가 크기가 사용될 수 있다.
도 3a 내지 도 3c에 도시된 2-차원 단면(300, 310) 및 3-차원 체적(330)의 정의는 아래에서 더 구체적으로 설명되겠지만 공간의 치수를 결정하는데 사용될 수 있다.
처리 파이프라인의 예
도 2a 및 도 2b에 도시된 바와 같은 움직임의 예들에 이어,도 3a, 도 3b 및 도 3c에 도시된 바와 같은 대표적인 단면 및 체적을 따라, 처리 동작의 특정 예가 이제 설명될 것이다. 이러한 처리 동작은 움직임 중에 캡처된 일련의 이미지를 취하고 내부 플랜을 나타내는 박스의 길이 및 폭에 대한 계산된 값과 같은 밀폐된 공간의 치수에 대한 추정치를 정의하는 데이터를 생성하도록 구성된다.
도 4a는 일 예에 따라 밀폐된 공간의 치수를 추정하기 위한 처리 파이프라인(400)의 특정 시스템 구성요소를 개략적으로 보여준다. 도 4a에서, 단안 다방향 카메라 장치를 포함할 수 있는 카메라 장치(410)는 일련의 또는 연속적인 이미지(420)(각각의 이미지는 "I"로 라벨링됨)를 캡처한다. 이들 이미지(420)는 상기 로봇 장치의 적어도 하나의 지시된 움직임 동안 복수의 상이한 각도 위치에서 캡처되고, 예컨대 상기 이미지(420)는 도 2a 및 도 2b에 도시된 원 또는 원주 움직임으로 로봇 장치가 움직임에 따라 기록되는 비디오 데이터의 일부로부터 취해진 비디오 프레임을 포함할 수 있다. 비디오 케이스에서, 상기 이미지는 연속적인 비디오 프레임일 필요는 없고, 그 대신에, 상기 이미지는 적어도 하나의 이미지 처리 기준, 예컨대 최소 콘트라스트 및/또는 포커스 메트릭을 만족시키는 것과 같은 적어도 하나의 이미지 처리 기준에 따라 선택되는 한 서브세트의 비디오 프레임을 포함할 수 있다.
도 4a에서, 상기 이미지(420)는 공간 추정기(430)에 의해 액세스된다. 상기 공간 추정기(430)는 상기 이미지(420)를 처리하여 밀폐된 공간의 치수(440)를 추정하도록, 예컨대 상기 공간에 대한 내부 플랜을 생성하도록 구성된다. 상기 공간 추정기(430)는 로봇 장치의 제어기(예컨대, 120, 170)의 일부를 형성할 수도 있고, 상기 카메라 장치(410)로부터 예컨대 직접적으로는 케이블 연결을 거쳐 또는 간접적으로는 무선 네트워크 연결을 통해 이미지(420)를 수신하도록 구성된 컴퓨터 장치를 포함할 수도 있다.
일 예시에서, 상기 공간 추정기(430)는 상기 일련의 이미지(420)로부터 자세 데이터를 결정하도록 구성된다. 이 경우에, 상기 자세 데이터는 적어도 하나의 지시된 움직임 동안 복수의 위치에서 상기 카메라 장치(410)의 위치 및 배향을 나타낸다. 하나의 경우에, 상기 자세 데이터는 상기 일련의 이미지 내에서 검출된 한 세트의 특징을 사용하여 결정된다. 상기 공간 추정기(430)는 상기 일련의 이미지(420) 및 상기 자세 데이터의 체적 함수를 평가함으로써 깊이 값을 추정하도록 더 구성된다. 상기 체적 함수는, 기준 이미지, 다시 말하면 상기 자세 데이터로부터 결정되고 관련 기준 위치(예컨대, 기준 자세)를 지니는 기준 이미지 주위의 조밀한 무-지향성 비용 체적을 평가하는 함수를 포함할 수 있다. 각각의 깊이 값은 상기 카메라 장치(410)에서부터 상기 공간 내 표면, 예컨대 벽, 테이블, 문 등의 형태를 이루는 객체에 이르기까지의 거리를 나타낸다. 어떤 경우에는, 상기 체적 함수로부터 상기 깊이 값을 생성하기 위해, 상기 공간 추정기(430)는 아래에서 더 구체적으로 설명되겠지만 깊이 추정기를 포함할 수 있다(또는 등가의 구성을 포함할 수 있다). 그리고 나서, 상기 공간 추정기(430)는 체적(330)과 같은 3-차원 체적을 깊이 값에 맞추도록 구성된다. 상기 공간 추정기(430)는 상기 3-차원 체적의 2-차원 다각형 단면의 치수를 최적화함으로써, 예컨대 상기 체적을 사용하여 결정된 깊이 맵 및 상기 깊이 값을 나타내는 깊이 맵 간의 차이를 최소화하는 p 값(도 3a 또는 도 3b를 참조하여 설명된 바와 같음)을 결정함으로써 상기 체적을 맞추도록 구성된다. 이들 깊이 맵은 이미지로서 표현될 수 있으며 경사 강하(傾斜降下) 접근법이 상기 체적을 맞추는데, 예컨대 상기 치수 p 에 대한 최적화된 값을 결정하는데 사용될 수 있다. 상기 체적을 맞추면, 상기 공간 추정기(430)는 상기 2-차원 다각형 단면의 최적화된 치수에 기초하여 상기 밀폐된 공간의 치수에 대한 추정치(440)를 출력한다. 예를 들어, 상기 공간 추정기(430)는 추정된 내부 플랜의 p 및/또는 길이 및 폭에 대한 최적화된 값을 출력할 수 있다.
특정 예에서, 상기 카메라 장치(410)는 RGB 이미지(또는 비디오 프레임)를 캡처하도록 이루어진 RGB 카메라 장치를 포함할 수 있다. 하나의 경우에, 상기 카메라 장치(410)는 전하 결합 소자(charge-coupled device; CCD) 또는 상보형 금속 산화물 반도체(complementary metal-oxide-semiconductor; CMOS) 센서를 포함한다. 하나의 실험 구성에서 Sony® CMOS 센서가 장착된 Point Grey® Flea3 카메라가 사용되었다. 이러한 실험 구성에서, 상기 카메라 장치에는 다방향 이미징을 제공하도록 소니® RPUC2512 로우-프로파일 무-지향성 렌즈가 장착되어 있다.
다른 경우에서, 카메라 장치(410)는 아날로그 신호 소스를 변환함으로써 이미지(420)가 생성되는 다른 이용 가능한 디지털 장치 및/또는 아날로그 장치를 포함할 수 있다. 각각의 이미지(420)는 측정된 데이터의 2-차원 표현을 포함할 수 있다. 예를 들어, 이미지(420)는 기록된 픽셀 값들의 2-차원 어레이 또는 매트릭스를 포함할 수 있다. 도 4a의 예에서, 모든 이미지(420)는 동일한 크기이지만, 모든 예에서 그럴 필요는 없다. 픽셀 값은 주어진 해상도(예컨대, 1280 x 1024)에 대한 적색(Red), 녹색(Green), 청색(Blue) 픽셀 값을 포함할 수 있다. 다른 예에서, 다른 컬러 공간이 사용될 수 있고 그리고/또는 이미지(420)는 모노 또는 그레이스케일 픽셀 값들을 포함할 수 있다. 하나의 경우에, 이미지 데이터는 압축된 비디오 스트림 또는 파일을 포함할 수 있다. 이 경우에, 이미지 데이터의 프레임은 예컨대 비디오 디코더의 출력으로서 스트림 또는 파일로부터 재구성될 수 있다. 이미지 데이터는 비디오 스트림 또는 파일의 전처리에 후속하여 메모리 위치로부터 회수될 수 있다.
하나의 경우에, 상기 카메라 장치(410)는 결합된 데이터 저장 장치, 예컨대 상기 로봇 장치의 일부를 형성하는 고체 메모리 장치가 상기 이미지(420)를 저장하도록 이루어질 수 있다. 다른 경우에, 상기 카메라 장치(410)는 이미지 데이터(420)를 결합된 컴퓨팅 장치에 전송할 수 있다. 상기 결합된 컴퓨팅 장치는 예컨대 USB(universal serial bus) 연결을 거쳐 직접 결합될 수도 있고 간접적으로 연결될 수도 있으며, 예컨대 상기 이미지(420)는 하나 이상의 컴퓨터 네트워크를 통해 전송될 수 있다. 또 다른 경우에, 상기 카메라 장치(410)는 네트워크 부착 저장 장치에 저장하기 위해 하나 이상의 컴퓨터 네트워크를 통해 상기 이미지(420)를 전송하도록 구성될 수 있다. 이러한 전송은 무선 전송, 예컨대 무선 네트워크 또는 Bluetooth® 연결일 수 있다. 이미지들(420)는 프레임 단위 또는 배치(batch) 단위로 저장 및/또는 전송될 수 있고, 예컨대 복수의 프레임은 함께 번들링될 수 있다.
특정한 경우에, 상기 공간 추정기(430)는 예컨대 도 1a 및 도 1b에 도시된 바와 같이 로봇 장치의 일부를 형성할 수 있다. 다른 경우에, 상기 공간 추정기(430)의 적어도 일부분은 예컨대 하나 이상의 결합된 컴퓨팅 장치상에 분산, 예컨대 위치할 수 있다. 예를 들어, 이러한 컴퓨팅 장치는 전력이 공급되는 충전 스테이션 및/또는 네트워크 결합 컴퓨팅 자원의 일부를 포함할 수 있다.
도 4b는 특정 구현 예에서 밀폐된 공간에 대한 치수(440)를 추정하는데, 예컨대 ,내부 플랜을 결정하는데 사용될 수 있는 처리 파이프라인(450)의 제2 예를 보여준다. 도 4b의 예에서, 상기 카메라 장치(415)는 무-지향성 카메라 장치를 포함하고, 예컨대 위에서 설명한 실험 구성을 사용하여 구현될 수 있다. 이 경우에, 상기 카메라 장치(415)는 원시 무-지향성 이미지(460)를 생성한다. 예를 들어, 이는 관측된 반구 공간과 관련이 있는 원형 이미지를 포함할 수 있다. 상기 처리 파이프라인(450)은 상기 원시 무-지향성 이미지(460)를 수신하도록 구성된 이미지 프로세서(470)를 포함한다. 상기 이미지 프로세서(470)는 상기 카메라 장치(415)에 의해 캡처된 원시 무-지향성 이미지(460)를 언래핑(unwrapping)하고 상기 공간 추정기(435)에 의한 사용을 위해 파노라마 이미지(425)를 출력한다. 상기 이미지 프로세서(470)는 언래핑을 수행하기 위해 카메라 모델 매개변수를 사용할 수 있다. 원시 무-지향성 이미지(460)를 언래핑하는 것은 후속하는 후속 자세 및 깊이 추정 동작을 용이하게 한다. 일 예에서, 상기 이미지 프로세서(470)는 룩업 테이블을 사용하여 언래핑을 구현하고 후속 처리에서의 사용을 위해 각각의 원시 무-지향성 이미지로부터 구형으로 맵핑된 파노라마 이미지를 생성하도록 구성될 수 있다. 어떤 경우에는, 서브-픽셀 보간이 사용될 수 있다. 원시 무-지향성 이미지의 언래핑은 이미지 치수가 상업적으로 이용 가능한 그래픽 처리 장치의 메모리 내에 잘 맞으며 각각의 픽셀이 구면 상의 균일한 영역을 표현하는 이점이 있다.
도 4b의 처리 파이프라인(450)은 또한 카메라 캘리브레이터(480)를 포함한다. 이미지 프로세서 및 카메라 캘리브레이터 양자 모두가 도 4b에 도시되어 있지만, 다른 예에서는 이미지 프로세서 및 카메라 캘리브레이터가 개별적으로 사용될 수 있다. 상기 카메라 캘리브레이터(480)는 캘리브레이션 패턴(485)의 적어도 하나의 캡처된 이미지를 처리함으로써 상기 카메라 장치(415)를 캘리브레이션하도록 구성된다. 상기 캘리브레이션 패턴(485)은 예컨대 상기 공간 내에서 보이는 인쇄 패턴 또는 액정 디스플레이 출력으로서 상기 공간 내에 존재할 수 있다. 하나의 예에서, 상기 캘리브레이션 패턴(485)은 로봇 장치의 충전 및/또는 도킹 스테이션 상에 존재할 수 있다. 상기 캘리브레이션 패턴(485)은 예컨대 블랙 및 화이트 사각형의 체커보드 패턴을 포함할 수 있다. 상기 카메라 캘리브레이터(480)는 캡처된 이미지 값 및 회수된 캘리브레이션 패턴 이미지 특성의 함수를 평가함으로써 카메라 모델 매개변수, 다시 말하면 카메라 장치(415)의 특성을 모델링하는 매개변수를 결정하도록 구성된다. 회수된 캘리브레이션 패턴 이미지 특성은 캘리브레이션 패턴의 회수된 표현(490)으로부터 결정된다. 하나의 경우에, 상기 카메라 캘리브레이터(480)는 상기 카메라 장치(415)가 전체 시야를 커버하기 위해 움직이게 되는 동안 직렬(예를 들어, 10개) 이미지의 캡처를 지시하도록 구성될 수 있다. 이 경우에, 각각의 이미지상에서 상기 패턴의 대략적인 위치가 (예컨대, 사용자에 의해 또는 도킹 스테이션에서부터의 주어진 거리와 같은 알려진 위치에 기초하여) 제공된다. 그런 다음에 각각의 이미지는 직사각형 패치로 업래핑되고 상기 캘리브레이터 패턴의 모서리가 검출된다. 그런 다음에,상기 모서리의 좌표가 원본 이미지 공간에 이르기까지 다시 계산된다. 모든 일련의 이미지에 대해 상기 절차가 반복된다. 이를 통해, 한 세트의 지점 쌍 및 초기 매개변수 값을 사용하여, Levenberg-Marquardt 비-선형 최적화가 상기 카메라 모델 매개변수의 함수를 최소화하도록 적용될 수 있다. 예를 들어, 카메라 모델 매개변수는 미러 형상 매개변수, 반경 및 접선 왜곡 계수 및 핀홀(pinhole) 카메라 진성 매개변수 중 적어도 하나를 포함할 수 있다. 회전 매트릭스 및 병진 벡터와 같은 외인성 매개변수 또한 상기 카메라 모델 매개변수의 일부를 형성할 수 있고, 이는 상기 공간 추정기(435)에 의해 수행된 자세 추정의 일부로서 움직임을 사용하여 추정될 수 있다. 특정한 경우에, 이러한 외인성 매개변수는 6개의 자유도를 나타낼 수 있다. 상기 카메라 모델은 예컨대「C. Geyer, "Catadioptric Projective Geometry: theory and applications", PhD thesis, University of Pennsylvania, 2003 and J. P. d. A. Barreto, "General central projection systems: Modeling, calibration and visual serving", PhD thesis, University of Coimbra, 2004」에 기재된 바와 같은, 적응된 Geyer 및/또는 Barreto 카타디옵트릭 카메라 모델을 포함할 수 있다. 이러한 카메라 모델은 핀홀 모델과 유사 할 수 있으며, 이러한 카메라 모델은 렌즈 미러의 곡률을 결정하는 추가 매개변수가 추가된 핀홀 모델과 유사할 수 있다.
시스템 구성요소의 예
도 5는 밀폐된 공간에 대한 치수(440)를 추정하는데 예컨대 내부 플랜을 결정하는데 사용될 수 있는 시스템(510)의 일 예(500)를 보여준다. 상기 시스템(510)은 도 4a 및 도 4b의 공간 추정기(430, 435)를 구현할 수 있다. 상기 시스템(510)은 예컨대 위에서 설명한 바와 같이 상기 로봇 장치의 움직임 중에 캡처되는 바와 같은 일련의 이미지(520)를 수신한다. 상기 일련의 이미지(520)는 도 4b를 참조하여 설명한 바와 같은 언랩핑된 무-지향성 이미지(425)를 포함할 수 있다. 상기 시스템(510)은 자세 추정기(530), 깊이 추정기(540) 및 치수 추정기(550) 중 적어도 3개의 시스템 구성요소를 포함한다.
상기 자세 추정기(530)는 상기 일련의 이미지(530)를 수신하고 한 세트의 자세 추정치(T)를 생성하도록 구성된다. 자세 추정치는 각각의 수신된 이미지(520)에 대해 생성될 수 있고 회전 매트릭스 및 병진 벡터에 대한 값, 예컨대 외인성 카메라 모델 매개변수를 포함할 수 있다. 어떤 경우에, 도 4b의 카메라 캘리브레이터(480)에 의해 수행되는 것과 같은 구성 동작은 또한 로봇 장치 베이스/바디 대 카메라 장치 변환을 결정하고, 예컨대 상기 카메라 장치 및 상기 로봇 장치 베이스 간의 장착 관계를 나타낼 수 있다. 특정한 정적 장착의 경우, 이러한 로봇 장치 베이스/바디 대 카메라 장치 변환은 항등 변환으로서 간주될 수 있다. 상기 자세 추정기(530)는 상기 이미지(520)로부터의 특징을 추출하고, 상기 일련의 이미지(520)에 걸쳐 그러한 특징을 매칭시키고, 상기 이미지(520)에 대한 적어도 한 세트의 초기 자세 추정치를 번들 조정하여 상기 한 세트의 자세 추정치(T)를 생성하도록 구성될 수 있다. 상기 자세 데이터는 지시된 움직임 동안 복수의 위치에서 상기 단안 다방향 카메라 장치의 위치 및 배향을 나타낸다.
상기 깊이 추정기(540)는 상기 자세 추정기(530)로부터 상기 일련의 이미지(520) 및 상기 한 세트의 자세 추정치(T)를 수신하도록 구성된다. 특정한 경우에, 자세 추정은 상기 일련의 이미지(520) 내 모든 이미지에 대해 가능하지 않을 수 있다. 이용 가능한 자세 추정치를 지니는 이미지를 사용하여, 본 예의 깊이 추정기(540)는 깊이 추정치(D)를 결정하기 위해 체적 함수를 평가하도록 구성된다. 하나의 경우에, 상기 깊이 추정기(540)는 기준 이미지 주위의 조밀한 무-지향성 비용 체적을 평가하도록 구성되고, 여기서 상기 기준 이미지는 상기 일련의 이미지(520)로부터 선택된다. 이 경우에, 깊이 값은 상기 기준 이미지의 한 세트의 픽셀에 대해 계산될 수 있다. 이러한 경우에, 상기 기준 이미지는 기준 위치, 예컨대 기준 자세로부터의 위치 및 배향에 관한 것이다. 따라서, 상기 깊이 값은 상기 기준 위치에서부터 상기 밀폐된 공간의 표면에 이르기까지의 거리를 나타낸다. 깊이 값은 상기 일련의 이미지(520)로부터의 한 세트의 비교 이미지와의 휘도 불일치를 최소화하도록 선택될 수 있다. 일 예에서, 특정 픽셀은 깊이 값을 평가할 때 무시될 수 있다. 이는 미래의 처리를 위해 관련된 높은 정밀도 또는 신뢰도를 지니는 깊이 추정치만을 고려하도록 깊이 값의 필터링 또는 선택으로서 고려될 수 있다. 이러한 필터링을 수행하기 위한 하나의 대표적인 접근법은 도 9a 및도 9b를 참조하여 나중에 설명된다.
상기 치수 추정기(550)는 3-차원 체적의 2-차원 다각형 단면의 치수를 최적화함으로써 상기 깊이 추정치(D)를 수신하고 깊이 추정기로부터 깊이 값에 3-차원 체적을 맞추도록 구성된다. 상기 3-차원 체적의 맞춤에 의해 결정되는 2-차원 다각형 단면의 치수는 상기 밀폐된 공간의 치수에 대한 추정치(560)를 출력하는데 사용된다. 예를 들어, 상기 추정치(560)는 내부 플랜 상에 박스를 정의하는 데이터를 포함할 수 있으며, 여기서 상기 박스의 치수는 (예컨대, 도 3a 및 도 3b에 도시된 바와 같이) 2-차원 다각형 단면의 치수에 기초하여 설정된다.
하나의 경우에, 상기 치수 추정기(550)는 기준 위치, 예컨대 기준 자세를 정의하는 데이터를 상기 자세 추정기(530) 및 상기 깊이 추정기(540) 중 하나로부터 수신할 수 있다. 하나의 경우에, 기준 이미지의 픽셀에 대한 깊이 값은 깊이 맵을 형성할 수 있다. 업래핑된 이미지의 경우에, 예컨대 도 4b를 참조하여 섦명한 바와 같이, 추정된 깊이 맵의 각각의 열(다시 말하면, 깊이 값의 각각의 열)은 카메라 장치를 참조하여 상이한 시야각 또는 각도 위치를 나타낸다. 무-지향성 카메라 장치가 사용되는 경우, 깊이 맵은 언래핑된 구형 이미지와 관련이 있을 수 있고 이 때문에 깊이 맵의 각각의 열은 360도 시야 주변의 상이한 시야각 또는 각도 위치를 나타낸다.
하나의 경우에, 상기 치수 추정기(550)는 다각형 단면에 대한 치수와 관련하여, 상기 이미지 데이터 및 상기 자세 데이터의 체적 함수의 평가로부터의 제1 세트의 깊이 값(다시 말하면, D), 및 상기 기준 위치에서부터 3-차원 체적의 벽에 이르기까지 추정된 제2 세트의 깊이 값 간의 오차의 함수를 최적화함으로써 3-차원 체적을 맞추도록 구성된다. 상기 제2 세트의 깊이 값은 상기 기준 위치에서부터 3-차원 체적의 경계에 이르기까지의 광선 추적에 의해, 예컨대 상기 기준 위치로부터 방출된 광선이 상기 체적의 에지와 교차하는 때를 결정함으로써 결정될 수 있다. 하나의 경우에, 상기 오차의 함수는 상기 제1 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지(다시 말하면, 제1 깊이 맵)을 제2 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지(다시 말하면 제2 깊이 맵)과 비교함으로써 평가될 수 있다.
일 예에서, 상기 치수 추정기(550)는 삼각형 3-차원 모델을 사용하고 단위 픽셀 광선 추적을 수행하여 상기 제2 깊이 맵을 계산하도록 구성된다. 예를 들어, 상기 제1 깊이 맵(예컨대, D)으로부터의 각각의 픽셀에 대해, 상기 치수 추정기(550)는 3-차원 모델의 삼각형을 반복하고, 광선-삼각형 교차를 체크하며, 상기 교차가 발생하는 주어진 한 세트의 치수(db( p , u, v))에 대해 결과적인 깊이를 계산하도록 구성된다(여기서 uv는 제1 깊이 맵에서 한 픽셀의 x 및 y 좌표를 나타냄). 특정한 경우에, 가장 가까운 표면, 예컨대 하나의 표면이 다른 표면의 앞에 있는 복잡한 내부 형상을 통한 광선-추적시 가장 가까운 표면을 결정하기 위해 z-버퍼 로직이 사용될 수 있다. 직사각형 단면을 지니는 경우에, 광선-평면 교차는 z-버퍼 로직 없이 결정될 수 있다. 이때, 오차 함수는 픽셀 단위로 db( p , u, v) 및 측정된 깊이 값(dm(u, v), 예컨대 상기 제1 깊이 맵(D)으로부터의 값 간의 차이를 평가할 수 있다. 일 예에서, 상기 오차 함수는 도 11을 참조하여 더 구체적으로 설명되는 바와 같은 비대칭 코시 손실 함수를 포함할 수 있다.
일 예에서, 상기 치수 추정기(550)는 자동 차등화를 적용하여 3-차원 체적을 맞추는 데 사용되는 부분 도함수를 결정한다. 주어진 프로그래밍 언어에 대해 자동 차등화(알고리즘 또는 계산 차등화라고도 알려짐)를 적용하는 여러 라이브러리가 이용 가능하다. 자동 차등화는 체인 규칙을 적용하여 컴퓨터 코드 행에 표기된 함수의 부분 도함수를 결정한다. 하나의 경우에, 자코비안(Jacobians)을 계산하기 위해 전방 누적(forward accumulation)으로 자동 차등화가 적용되며, 상기 자코비안은 상기 제1 세트의 깊이 값 및 상기 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는데 사용된다. 하나의 경우에, (삼각형 메쉬 생성, 광선-삼각형 교차, 카메라 투영 및 잔여 및 손실 함수 계산 중 하나 이상과 같은) 상기 치수 추정기(550)에 의해 수행된 계산에 대한 자동 차등화를 사용하여 부분 도함수가 계산된다. 이들 부분 도함수는 상기 3-차원 체적의 매개변수, 예컨대 p에 대해 수행된다. 부분 도함수는 중앙 처리 유닛(CPU) 및 그래픽스 처리 유닛(GPU) 중 하나 이상에서 평가되는 함수에 대해 결정될 수 있다. 하나의 경우에, 상기 오차 함수로부터 각각의 단위 픽셀 잔여를 계산한 후에, 잔여 값 및 부분 도함수를 GPU 감소 동작으로 합산함으로써 상기 오차 함수가 최적화된다. 오차 함수 값은 자동 차등화로부터의 자코비안과 함께 Levenberg-Marquardt 최적화 스킴에서 3-차원 체적에 관해 상기 측정된 깊이 값(D)을 가장 잘 맞추는 상기 단면의 치수를 추정하는데 사용될 수 있다.
어떤 경우에, 상기 일련의 이미지(520)는 (예를 들어 도 2b의 예에서와 같이) 다수의 움직임으로부터의 이미지의 배치(batch)를 포함한다. 이 경우, 상기 자세 추정기(530) 및 깊이 추정기(540)는 이들 배치 각각에 대해 동작할 수 있다. 한 구현 예에서, 상기 깊이 추정기(540)는 각각의 배치에 대한 기준 이미지와 관련하여 깊이 값을 추정하도록 구성될 수 있으며, 상기 배치는 상기 움직임들(270, 280, 290) 중 하나에 상응한다. 이 경우에, 비교 이미지는 또한 상응하는 이미지 배치로부터 선택될 수 있다. 그리고 나서, 각각의 깊이 맵이 특정한 배치 및 움직임에 상응하는 다수의 깊이 맵이 상기 깊이 추정기(540)에 의해 생성되고 상기 치수 추정기(550)로 전달될 수 있다. 이 경우에, 상기 치수 추정기(550)는 복수의 단면에 대한 치수를 결정하도록 구성되고, 각각의 단면은 상기 깊이 추정기(540)로부터의 상이한 깊이 맵에 상응한다. 다수의 맞춰진 단면은 내부 경계 또는 복잡한 형상 맞춤을 위해 사용될 수 있다. 이는 이하에서 더 구체적으로 설명된다.
상기 시스템(510)은 번거로운 계산 요구 없이 실시간으로 내부 플랜이 생성될 수 있게 하는 방식으로 "희소(sparse)" 및 "조밀(dense)" 이미지 처리를 결합하는 것으로 보일 수 있다. 이 경우에, 상기 자세 추정기(530)는 "희소(sparse)" 처리, 예컨대 키포인트 또는 추출된 특징을 이용하는 처리를 적용하는 것으로 볼 수 있다. 이들 키포인트 및 추출된 특징은 상기 공간을 모델링하기 위해 다수의 복셀(voxel)을 포함할 수 있는 전체 체적 모델과 비교하여 한정된 개수를 지닌다. 추출, 매칭 및 번들 조정 특징에 기초하여 이루어지는 "희소" 처리는 상대적인 "조밀" 자세 추정 기법보다 처리가 빠르다는 이점이 있다. 기준 이미지의 사용은 비교적으로 "조밀한" 깊이 맵이 결정될 수 있게 하고, 예컨대 깊이 값은 계산 부하를 감소시키면서 픽셀 단위로 결정된다. 또한 필터링된 깊이 값 또는 "반-조밀한" 깊이 맵을 사용하면 처리 속도가 더 빨라진다. 깊이 값의 정확도 또는 신뢰도에 기초하여 이루어진 필터링된 또는 "반-조밀한" 깊이 맵은 텍스처가 없는 영역으로 공간을 매핑하는 문제를 부가적으로 해결한다. 이러한 경우에, 텍스쳐가 없는 영역, 예컨대. 비어 있는 내부의 벽은 깊이 추정을 위한 정보 내용이 거의 없을 수 있다. 이로 인해 신뢰할 수없는 추정치가 나올 수 있으며 이는 잘못된 내부 치수 측정으로 이어질 수 있게 한다. 그러나 이러한 깊이 값은 경우에 따라 필터링되고, 이 때문에 상기 깊이 값은 내부 치수를 추정하는 데 사용되지 않는다.
하나의 경우에, 상기 시스템(510)은 이미지 취득 인터페이스를 통해 일련의 이미지(520)를 취득할 수 있다. 이는 이전 예의 상기 카메라 장치(110, 160, 410, 415)에 연결될 수 있다. 상기 이미지 취득 인터페이스는 USB 또는 네트워크 인터페이스와 같은 하드웨어 인터페이스, 및 소프트웨어 드라이버를 구현하는 컴퓨터 프로그램 코드를 포함할 수 있다. 하나의 경우에, 상기 시스템(510)은 스트리밍 데이터, 예컨대 라이브 비디오 데이터에 대해 동작하도록 구성될 수 있다. 또 다른 경우에, 상기 시스템(510)은 상기 카메라 장치에 통신 가능하게 연결될 수 있고, 하나 이상의 영구 및 비-영구 데이터 저장 장치에 상기 카메라 장치로부터 수신된 이미지(520)를 저장하도록 이루어질 수 있으며, 예컨대 데이터 프레임은 메모리에 카피될 수 있고 그리고/또는 하드 디스크 드라이브 또는 고체 저장 장치에 저장될 수 있다. 또 다른 경우에, 이미지(520)는 주어진 파일 포맷으로, 예컨대 데이터 저장 창치에 액세스 가능한 하나 이상의 파일로 상기 시스템(510)에 외부적으로 저장될 수 있다. 이 경우에, 상기 시스템(510)은 적어도 하나 이상의 파일로부터 데이터를 판독하기 위해 파일 시스템의 일부를 사용하거나 구현할 수 있다. 상기 시스템(510)은 전용 처리 전자 장치를 포함할 수 있고 그리고/또는 적어도 하나의 컴퓨팅 장치의 프로세서에 의해 실행되는 컴퓨터 프로그램 코드에 의해 구현될 수 있다.
도 1a 및 도 1b에 도시된 바와 같은 경우에, 상기 시스템(510)은 하나 이상의 내장형 컴퓨팅 장치를 포함할 수 있다. 이는 컴퓨터 판독가능 매체상에 로드된 컴퓨터 프로그램 코드를 실행하기 위해 메모리와 관련하여 동작하는 적어도 하나의 프로세서를 포함할 수 있다. 이러한 매체는 소거 가능하고 프로그램 가능한 판독 전용 메모리와 같은 고체 저장 장치를 포함할 수 있고 상기 컴퓨터 프로그램 코드는 펌웨어를 포함할 수 있다. 다른 경우에, 상기 시스템(510)은 적합하게 구성된 시스템-온-칩, 주문형 집적회로 및/또는 하나 이상의 적절하게 프로그래밍된 필드 프로그래머블 게이트 어레이를 포함할 수 있다. 하나의 경우에, 상기 시스템(510)은 모바일 컴퓨팅 장치 및/또는 데스크톱 컴퓨팅 장치의 컴퓨터 프로그램 코드 및/또는 전용 처리 전자 장치에 의해 구현될 수 있으며; 이 경우에, 상기 시스템(510)은 로봇 장치로부터 전송된 이미지를 수신하고 그리고/또는 결정된 내부 크기를 상기 로봇 장치로 다시 전송하도록 구성될 수 있다. 분산 컴퓨팅의 다른 구현 예도 여기에 설명한 예에서 벗어나지 않고 사용될 수 있다. 하나의 경우, 시스템(510)은 컴퓨터 프로그램 코드를 실행하는 하나 이상의 GPU에 의해, 이전의 경우뿐만 아니라, 또는 대신에 전체적으로나 또는 부분적으로 구현될 수 있다. 어떤 경우에서, 상기 시스템(510)은 병렬로 구현되는 하나 이상의 기능, 예컨대 여러 프로세서 및/또는 GPU의 코어를 통해 구현될 수 있다.
밀폐된 공간의 치수를 측정하는 대표적인 방법
도 6은 일 예에 따른 밀폐된 공간의 치수를 추정하기 위한 이미지 처리 방법을 보여준다. 이 방법은 전술한 예의 시스템 구성요소 또는 임의의 다른 적절한 컴퓨팅 장치에 의해 적용될 수 있다.
블록 610에서, 이미지 데이터는 단안 다방향 카메라 장치로부터 획득된다. 이는 로봇 장치 또는 모바일 컴퓨팅 장치에 연결된 카메라 장치일 수 있다. 하나의 경우에, 상기 카메라 장치는 가정용 로봇의 형태로 로봇 장치에 연결될 수 있다. 이전의 예에서와같이, 상기 단안 다방향 카메라 장치는 복수의 뷰포인트 또는 각도 위치로부터 이미지 데이터를 캡처하도록 이루어진다. 상기 이미지 데이터는 상기 카메라 장치의 움직임 평면 내에서의 불일치, 예컨대 바닥에 위치한 장치에 대한 수평 불일치를 지니는 일련의 이미지, 예컨대 한 세트의 비디오 프레임을 포함한다. 상기 카메라 장치의 움직임 평면은 로봇 장치에 대한 움직임 평면을 포함할 수 있다.
블록 620에서, 상기 이미지 데이터에 상응하는 자세 데이터가 결정된다. 상기 자세 데이터는 상기 단안 다방향 카메라 장치의 위치 및 배향, 예컨대 최대 6개의 자유도로의 회전 및 병진 매개변수 값을 나타낸다. 어떤 경우에, 상기 자유도는 제한될 수 있고, 예컨대 어떤 구현 예에서는 움직임이 바닥에 상주하는 것으로 가정할 수 있으며, 이 때문에 z-을 따른 병진 운동이 없을 수 있고, 회전은 z-축 주위로 제한될 수 있다. 본 예에서, 상기 자세 데이터는 상기 이미지 데이터 내에서 검출된 한 세트의 특징을 사용하여 결정된다.
블록 630에서, 한 세트의 깊이 값은 블록 610으로부터의 상기 이미지 데이터의 체적 함수 및 블록 620으로부터의 상기 자세 데이터를 평가함으로써 추정된다. 이 경우의 각각의 깊이 값은 상기 단안 다방향 카메라 장치의 기준 위치에서부터 상기 공간 내 표면에 이르기까지의 거리를 나타낸다. 상기 기준 위치는 상기 체적 함수를 평가하도록 결정된 기준 자세와 관련이 있을 수 있다.
블록 640에서, 3-차원 체적은 상기 단안 다방향 카메라 장치의 기준 위치 주변에 정의된다. 상기 3-차원 체적은 상기 카메라 장치의 움직임 평면 내에 2-차원 다각형 단면을 지닌다. 블록 640에서의 정의 동작은 사전에 정의된 다각형, 예컨대 박스 따위에 대한 매개변수 값을 회수하는 단계를 포함할 수 있다. 상기 방법(600)의 제1 반복에서, 상기 매개변수 값들은 초기화될 수 있다. 상기 3-차원 체적은 매개변수 p = [x-, x+, y-, y+, θ] 및 사전에 정의된 높이 값에 의해 정의될 수 있다. 상기 기준 위치를 정의하는 위치 및 방위에 대한 값은 블록 630으로부터 전달될 수 있다.
블록 650에서, 상기 정의된 3-차원 체적은 상기 다각형 단면에 대한 치수를 결정하도록 깊이 값에 맞춰진다. 이는 상기 치수에 대한 비용 함수를 최적화하는 것을 포함할 수 있다. 이는 블록 630에서 결정된 깊이 값에 가장 잘 맞는 상응하는 3-차원 체적을 지니는 한 세트의 치수를 결정할 수 있고, 예컨대 매개변수 p = [x-, x+, y-, y+, θ]에 대한 값을 결정할 수 있다. 이때, 이들 매개변수는 상기 방법(600)에 의해 맵핑된 공간의 범위를 정의하는데 사용될 수 있다.
하나의 경우, 상기 다각형 단면에 대해 결정된 치수는 상기 밀폐된 공간에 대한 내부 플랜을 (예컨대, 박스로서 정의된 내부에 대한 길이 및 폭과 관련하여) 정의하는데 사용될 수 있다. 상기 내부 플랜은 상기 공간을 이해하기 위해 로봇 장치에 의해 사용될 수도 있고 인간 조작자에게 측정치로서 예컨대 (모바일) 컴퓨팅 장치의 디스플레이상에 디스플레이될 수 있다.
하나의 경우에, 상기 3-차원 체적을 상기 깊이 값에 맞추는 단계는 상기 다각형 단면에 대한 치수와 관련하여 블록 630으로부터의 제1 세트의 깊이 값 및 상기 기준 위치에서부터 상기 3-차원 체적의 벽에 이르기까지 추정된 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는 단계를 포함한다. 하나의 경우에, 블록 630으로부터의 깊이 값은 깊이 맵의 형태, 다시 말하면 각각의 픽셀 값이 깊이 값을 나타내는 경우 W 픽셀 x H 픽셀의 이미지로 출력될 수 있다(예컨대, 상기 이미지는 그레이스케일 이미지를 포함할 수 있다). 이 경우에, 블록 630으로부터의 각각의 측정된 깊이 값은 픽셀 값(dm(u, v))으로서 정의될 수 있으며, 여기서 uv는 상기 이미지에 대한 x 및 y 좌표에 대한 값을 포함한다. 각각의 픽셀 값(dm(u, v))은 맞춰진 체적 깊이 맵(db( p , u, v))으로부터의 픽셀 값과 비교될 수 있으며, 여기서 맞춰진 체적 깊이 맵은 단위 픽셀 광선 추적을 사용하여 계산된다. 특정한 경우에, 블록 630으로부터의 깊이 값은 대응하는 사전에 정의된 바닥 및 천정면 아래 및 위의 지점을 제거하기 위해 사전처리될 수 있다. 이러한 지점을 제거하면 잡음을 제거하는 데 도움이 될 수 있는데, 일반적으로 상기 지점은 내부 형상 추정치의 일부가 되지 않는다.
일 예에서, 비용 함수(F)의 잔여(R)는 다음과 같이 정의될 수 있다.
Figure 112019019236274-pct00001
그 다음에, 이들 잔여는 블록 630으로부터의 깊이 맵의 범위에 걸쳐(다시 말하면, WH를 가로질러) p에 대해 최소화되는 최종 에너지 함수에서 합산될 수 있다.
Figure 112019019236274-pct00002
위에서 설명한 바와 같이, 상기 다각형 단면의 매개변수에 대한 잔여의 합을 최소화하기 위해 부분 도함수를 계산하기 위해 자동 차등화가 사용될 수 있다.
특정한 예에서, 상기 기준 위치(θ)에 대한 상기 단면의 회전 각 이전에 상기 기준 위치에서부터 상기 단면의 대응하는 변(x-, x+, y-, y+)에 이르기까지의 거리를 평가하는 좌표 하강 접근법이 사용된다. 이렇게 하면 더 빠른 수렴과 향상된 맞춤이 얻어질 수 있다.
자세 및 깊이 데이터를 결정하는 방법
도 7은 특정 구현 예에서 블록 620을 구현하는데 사용될 수 있는 방법(700)을 보여준다.
블록 710에서, 블록 610에서 획득된 일련의 이미지에서 복수의 이미지 각각에서 하나 이상의 특징이 검출된다. 하나의 경우에, 특징은「E. Rosten and T. Drummond in "Machine learning for highspeed corner detection" in the Proceedings of the European Conference on Computer Vision (ECCV), 2006」에 기재된 바와 같이 FAST(Features from Accelerated Segment Test) 모서리 검출기로 검출될 수 있다. 이는 실시간 비디오 처리에 적합한 고속 기능 검출을 제공한다. (비디오 피드의 모든 x번째 프레임과 같은) 각각의 이미지, 예컨대 비디오 데이터의 각각의 프레임, 또는 선택된 서브세트의 이미지에서 특징이 검출될 수 있다. 특징은 예컨대「D. G. Lowe in "Distinctive image features from scale invariant keypoints" in the International Journal of Computer Vision (IJCV), 60(2):91-110, 2004」에 기재된 바와 같이 SIFT(scale-invariant feature transform) 디스크립터를 사용하여 기술될 수 있다. 다른 특징 검출기 및/또는 디스크립터가 사용될 수 있다.
블록 720에서, 블록 710으로부터의 검출된 특징은 상기 이미지 데이터 내 한 세트의 랜드마크를 결정하도록 복수의 이미지에 걸쳐 매칭된다. 이 경우에서의 랜드마크는 이미지 간의 대응 지점을 포함하고, 예컨대 랜드마크는 로봇 장치가 상기 공간 둘레를 움직임에 따라 몇 개의 연속적인 이미지에서 캡처되는 상기 공간 내 객체의 정적인 부분, 예컨대 가구 일부의 모서리, 벽상의 그림 또는 의자의 일부에 관련될 수 있다. 이 블록은 반복적으로 동작하고 각각의 새로운 이미지(예컨대, 비디오 데이터의 새로운 프레임)와 함께 새로운 이미지 내 새로 검출된 특징을 기존의 랜드마크 특징의 리스트 또는 맵에 대하여 매칭시키는 특징 기반 움직임 추정 동작을 포함할 수 있다. 매칭되는 항목이 없는 경우, 예컨대 검출된 특징이 완전히 새로운 특징을 포함하면, 상기 리스트 또는 맵 내 새로운 랜드마크 엔트리가 추가될 수 있다. 특징은 이미지 평면의 재투영 오차 및 SIFT 디스크립터 거리에 기초하여 현재의 랜드마크 리스트 또는 맵에 대해 내부 필터링 루프에서 매칭될 수 있다.
블록 730에서, 상기 일련의 이미지에 대한 한 세트의 랜드마크 위치 추정치 및 한 세트의 카메라 자세 추정치가 공동으로 최적화된다. 이때, 도 6의 블록 620에 의해 출력된 자세 데이터는 공동 최적화 후의 상기 한 세트의 카메라 자세 추정치를 포함한다. 공동 최적화는 카메라 자세 추정치, 랜드마크 위치 및 이들의 대응하는 매칭된 특징 간에 제약을 부과하는 적어도 시각적 부분을 갖는 에너지 함수를 최소화하는 것을 포함할 수 있다. 상기 에너지 함수는 특정한 특징 i가 이미지 j에서 보이게 되는지를 나타내는 2진 항을 포함할 수 있다. 상기 에너지 함수의 시각적 부분은 예측된 특징 값(예컨대, 이미지 j에 대한 특징 i와 관련이 있는 예측된 픽셀 값)과 실제 특징 값(예컨대, 이미지 j에 대한 특징 i와 관련이 있는 실제 픽셀 값) 간의 차이를 평가할 수 있다. 이러한 차이는 n 개의 특징 및 m 개의 이미지에 대해 평가될 수 있다. 상기 예측된 특징 값은 랜드마크 위치에 적용된 회전 매트릭스에서 병진 벡터에 적용된 회전 매트릭스를 뺀 것을 카메라 매개변수를 사용하여 투영함에 기초하여 계산될 수 있다. 이는 일련의 이미지 내 각각의 이미지에 대한 초기 자세 추정치를 사용하여 적용될 수 있으며, 각각의 초기 자세 추정치는 상기 이미지에 대한 회전 매트릭스 및 병진 벡터에 대한 초기 값을 포함한다. 상기 시각적 부분은 Huber 표준을 사용하여 차이를 정규화할 수 있다.
구현 예에서, 상기 로봇 장치로부터의 주행 거리 측정 데이터가 최적화 함수를 제한하는데 사용될 수 있다. 주행 거리 측정(odometry)은 움직임 센서의 데이터를 사용하여 시간 경과에 따른 위치의 변화를 추정하는 것이다. 주행 거리 측정 데이터는 예컨대 도 1a 및 도 1b의 휠(115) 또는 트랙(165)의 위치를 추적하는 상기 로봇 장치의 적어도 하나의 움직임 액추에이터로부터 발생될 수 있다. 최적화 함수는 위에서 설명한 에너지 함수를 포함할 수 있다. 그러한 경우에, 상기 에너지 함수는 추가적인 주행 거리 측정부(예컨대, 주행 거리 측정 항목)를 지닐 수 있다. 주행 거리 측정부는 연속적인 이미지들 간의 병진 벡터의 변화와 연속적인 이미지들이 캡처된 시간과 관련이 있는 주행 거리 측정 벡터의 변화 간의 차이를 평가할 수 있다. 이는 병진 벡터에 의해 나타나게 되는 움직임과 주행 거리 측정 데이터에 의해 나타나게 되는 움직임 - 상기 움직임은 2개의 연속적인 이미지의 캡처(예컨대, 이미지 또는 비디오 데이터 프레임 간의 거리) - 간의 차이를 고려하는 것과 동일하다. 비록 주행 거리 측정이 이미지 캡처로 캡처되지 않아도 이러한 방법이 적용될 수 있는데, 이는 선행 제어 처리(advanced control processing)의 필요성을 줄이기 때문이다. 추가로 또는 대안으로, 주행 거리 측정 데이터는 가능한 경우 하나 이상의 자세 추정치를 예컨대 상기 공동 최적화 내에서 초기화하는데 사용될 수 있다. 정밀도 매트릭스로부터의 표준 편차는 에너지 함수에서 항목(term) 양자 모두를 가중시키는데 사용될 수 있다. 상기 주행 거리 측정부에서의 차이는 가중되고 Cauchy 손실 함수를 사용하여 견고해질 수 있다. 위에서 설명한 바와 같은 에너지 함수는 자동 차등화(self-differentiation)에 의해 계산된 자코비안과 함께 반복 Levenberg-Marquardt 함수를 사용하여 최적화될 수 있다.
한 구현 예에서, 공동 최적화는 번들 조정을 포함할 수 있다. 상기 번들 조정은「Bill Triggs et al. in "Bundle adjustment*?*a modern synthesis", Vision algorithms: theory and practice, Springer Berlin Heidelberg, 2000, 298-372」에 기재된 방법의 적응일 수 있다. 이는 비선형 최적화를 사용할 수 있다.
특정한 경우에, 특징은 추정 상의 매치에 의해 먼저 매칭될 수 있다. 그리고 나서, 예비 번들 조정이 이들 추정 상의 매치에 적용될 수 있다. 그리고 나서, 추정 상의 매치의 재투영 오차가 너무 클 경우에 추정 상의 매치가 거부될 수 있다. 이러한 선택 및 거부는 최종 번들 조정이 수행되기 전에 여러 번 반복될 수 있다. 하나의 경우에, 새로운 랜드마크를 생성하기 위해, 상기 이미지는 다수의 패치(예를 들어, 16개)로 분할된다. 그리고 나서, 키포인트 형태의 특징은 각각의 패치에서 적어도 사전에 정의된 개수의 특징(예컨대, 5개)이 유지되는 방식으로 선택될 수 있고, 그 각각은 다른 모든 것에서 떨어져 있는 적어도 주어진 개수의 픽셀(예컨대, 10 픽셀)이다. 이러한 특정 동작은 추적할 고품질 특징의 균일한 배포에 기여할 수 있다. 새로운 랜드마크는 소정의 거리(예컨대, 환경에 따라 7.5m)로 초기화될 수 있고 나중에 매칭될 때 정확한 깊이로 번들 조정된다.
도 8은 특정한 구현 예에서 블록 630을 구현하는데 사용될 수 있는 또 다른 방법(800)을 보여준다. 상기 방법(800)은 상기 방법(700)과 마찬가지로 또는 독립적으로 구현될 수 있다.
블록 810에서, 기준 이미지는 블록 610에서 획득된 일련의 이미지로부터 결정된다. 하나의 경우에, 이미지가 원 또는 원호 움직임 경로를 따라 캡처되면, 기준 이미지는 원 또는 원호의 중간 부근으로부터 선택될 수 있고 그럼으로써 상기 기준 임지의 양측에 상응하는 (예컨대, 상기 결정된 기준 이미지를 전후하여 캡처되는) 부가적인 이미지가 존재하게 된다. 다른 경우에, 예를 들어 무-지향성 및/또는 완전한 원형 움직임을 사용하는 경우에, 상기 기준 이미지는 상기 캡처된 이미지로부터 무작위로 선택될 수도 있고 하나 이상의 이미지 품질 메트릭에 기초하여 선택될 수도 있다. 블록 820에서, 상기 기준 이미지와 오버랩되는 한 세트의 비교 이미지가 결정된다. 오버랩(overlap)은 또한 이미징된 상기 공간의 일부로부터의 이미지 데이터를 포함하는 비교 이미지에서 적어도 하나의 픽셀로서 예컨대 상기 기준 이미지의 픽셀에서 다른 배향 및/또는 위치로부터 정의될 수 있다(하지만, 상기 픽셀의 위치가 상기 기준 이미지와 상기 비교 이미지 간에 다를 수 있다). 블록 830에서, 상기 기준 이미지에 대한 이미지 값 및 상기 한 세트의 비교 이미지로부터의 투영된 이미지 값 간에 광도 오차(photometric error)가 결정된다. 상기 광도 오차는 정규화된 픽셀 광도 오차에 기초하여 이루어질 수 있다.
각각의 투영된 이미지 값은 상기 비교 이미지에 대한 자세 데이터 및 상기 기준 이미지에 대한 자세 데이터를 사용한 상기 기준 이미지의 뷰포인트에의 비교 이미지의 투영, 예컨대 상기 기준 이미지의 뷰포인트에 상기 비교 이미지 데이터의 재투영을 포함한다. 블록 840에서, 상기 광도 오차를 최소화하는 깊이 값이 선택된다. 예를 들어, 상기 비교 이미지의 투영은 스칼라 깊이 항목 d 를 포함할 수 있다. 상기 광도 오차는 상기 기준 이미지로부터 취해진 픽셀 값으로부터 깊이 항목, 카메라 매개변수 및 자세 추정을 사용하여 (재)투영된 픽셀 값을 빼는 것을 포함할 수 있다. 이는 Huber 표준을 사용하여 정규화되고 비교 이미지마다 평가되며, 총 오차는 상기 한 세트의 비교 이미지에 대한 오차의 합계이다. 상기 광도 오차는 다수의 성공적인 (재)투영에 의해 가중될 수 있다. 깊이 값을 선택하기 위해, 상이한 깊이 값 d 에 대한 한 세트의 광도 오차는 최소 광도 오차가 위치될 때까지 탐색 될 수 있으며, 여기서 최소 광도 오차와 관련이 있는 깊이 값이 픽셀에 대해 선택된다.
상기 방법(800)은 각각의 복셀이 이미지 간의 제곱된 광도 오차를 축적하는 "비용 체적(cost volume)"을 사용하는 것으로 보일 수 있다. 상기 방법(800)은「R. A. Newcombe, S. Lovegrove, and A. J. Davison in "DTAM: Dense Tracking and Mapping in Real-Time", in the Proceedings of the International Conference on Computer Vision (ICCV), 2011」에 기재된 방법의 적응으로서 보일 수 있다.
특정한 경우에, 도 8에서 참조 번호 800과 같은 방법을 적용할 때, 부드럽고 완전히 밀집한 깊이 맵을 획득하기 위해 정규화 비용 항목이 적용될 수 있다. 이러한 정규화는 Huber Rudin-Osher-Fatemi(ROF) 총 변이(TV) L1 정규화기를 사용하여 수행될 수 있다. 그러나 이는 특정한 이미지 영역이 깊이 추정을 위해 열악하게 조정되는 문제점을 야기할 수 있다. 예를 들어 이는 이미지 영역에 텍스처가 부족한 경우일 수 있다. 이들 이미지 영역은 정규화가 적용되는 경우에도 신뢰할 수 없는 깊이 값 추정을 초래할 수 있다. 이에 기초하여, 특정한 구현 예에서, 추정된 깊이 값에 대해 하나 이상의 분산 측정치가 결정되고, 이들 분산 측정치는 이때 추정된 깊이 값을 필터링하는데 사용되며, 내부 형상 추정은 필터링된 깊이 값에 기초하여 이루어진다. 이는 이때 유용하거나 정확한 깊이 정보만을 예컨대 한 서브세트의 깊이 값만이 사용되는 "반-조밀" 표현의 형태로 추출하는 역할을 한다. 이는 정규화를 수행할 필요성을 줄여서 상기 방법을 단순화하고 계산 요구사항을 줄인다. 또한, Huber ROF TV L1 정규화기와 같은 정규화기를 사용하면 상당한 수의 텍스처 없는 영역을 지니는, 예컨대 (빈) 내부에서 빈 벽을 나타내는, 공간에서 성능이 저하될 수 있고 그리고/또는 부드러움이 과도해질 수 있다. 여기에 설명된 바와 같은 "반-조밀(semi-dense)" 접근법을 사용함으로써, 높은 신뢰성 또는 신뢰도를 지니는 정확한(예컨대, "신뢰된") 측정만이 사용된다. 이는 비어있는 내부 또는 공백의 벽 또는 파티션을 지니는 내부와 같은 상당한 텍스처(예를 들어, 픽셀 변화로 표현됨)가 부족한 넓은 영역을 지니는 공간에서도 양호한 성능을 유도한다. 테스트에서, 많은 환경이 신뢰할 수 없는 측정값을 지니는 3-차원 깊이 맵의 상당 부분을 차지하는 것으로 나타났다. 본 예의 방법을 사용하면 이러한 신뢰할 수 없는 측정이 사용되지 않고 내부 형상 평가가 보다 안정적이다.
도 8의 예에서, 추정된 깊이 값을 필터링 또는 선택하는 것은 상기 기준 이미지에 대해 계산된 한 서브세트의 픽셀 깊이 값만을 선택하는 것을 포함할 수 있다. 특정한 경우에, 상기 분산 측정치는 기준 이미지와 관련이 있는 픽셀 깊이 측정에 대한 표준 편차를 포함한다. 이 경우에, 추정된 깊이 값을 필터링하는 것은 사전에 정의된 문턱값보다 작은 표준 편차 값을 지니는 깊이 추정을 사용하는 것을 포함한다.
도 9a는 대표적인 이미지 부분(900)을 보여준다. 상기 이미지 부분(900)은 여기에 설명된 바와 같은 언래핑된 파노라마 이미지(예컨대, 기준 이미지)의 일부를 형성할 수 있다. 상기 이미지 부분(900)은 2개의 강조된 영역, 즉 제1 영역(910) 및 제2 영역(920)을 지닌다. 상기 제1 영역(910)은 비교적 부드럽고 텍스처가 없고(예컨대, 텍스처가 적고), 이는 데스크 유닛의 벽 이면(裏面)의 이미지를 캡처한다. 이 때문에, 상기 제1 영역(910)은 정확한 깊이 측정을 생성하지 않을 수 있다. 상기 제2 영역(920)은 정확한 깊이 측정을 생성하는데 사용될 수 있는 세부(예컨대, 많은 텍스처)를 갖는다. 도 9a에서, 상기 제2 영역(920)은 책장 일부의 이미지를 캡처한다. 이들 2개의 영역(910, 920)은 그들에 대응하는 비용 체적 깊이 샘플링에서 상이한 에너지 응답을 지닌다.
하나의 경우에, 깊이 추정의 표준 편차는 그래프를 비용 함수에 맞추어 추정될 수 있다. 도 9b는 도 9a의 2개의 영역(910, 920)에 대한 비용 함수의 출력(930)을 보여준다. 비용 함수 값은 x 축 상에 깊이 값(예를 들어, d 또는 z 값)에 대해 y 축 상에 나타나게 된다. 제1 출력(940)은 상기 제1 영역(910)에 대해 도시된다. 도시된 바와 같이, 상기 제1 출력(940)은 대략 선형 방식으로 약 0.025 내지 0.005 범위의 비교적 작은 비용 함수 값을 지닌다. 그리고 나서, 제2 출력(950)이 상기 제2 영역(920)에 대해 도시된다. 도시된 바와 같이, 상기 제2 출력(950)은 상기 제1 출력(940)과 다르고, 약 20의 z-값 주위에서 비용 함수의 감소로 0.1의 비용 값 주변의 변화가 있다.
위에서 설명한 방법에서, 깊이 값은 상기 비용 함수의 최소값을 선택함으로써 추정될 수 있다. 도 9b에서 볼 수 있는 바와 같이, 이는 비교적 평탄한 제1 출력(940)에서 어렵다. 그러나 상기 제2 출력(950)에 대해 20의 깊이 값 주위에 명확한 최소값이 있다. 포물선 함수를 상기 제1 및 제2 출력(940, 950) 각각에 맞춤으로써, 깊이 추정을 필터링하는데 사용될 수 있는 표준 편차뿐만 아니라 깊이 추정을 위해 사용될 수 있는 최소값을 결정하는 것이 가능하다. 포물선 함수를 맞추는 것은 서브픽셀 깊이 해상도를 허용한다(예컨대, 그 이유는 포물선의 최소값이 연속 값으로서 선택될 수 있기 때문이다). 도 9b는 상기 제1 출력(940)에 맞춰진 제1 포물선(945) 및 제2 출력에 맞춰진 제2 포물선(955)을 보여준다. 2차 함수를 비용 함수의 출력에 맞춤으로써, 상기 함수의 'a' 매개변수(예컨대, y = ax2 + bx + c)의 형태를 이루는 포물선의 형상이 결정될 수 있다. 이로부터 역 깊이 영역의 픽셀에 대한 표준 편차는 'a' 매개변수의 제곱근의 역수로 계산될 수 있다. 그 다음에, 이는 깊이 추정치의 제곱(예컨대, 맞춰진 2차 함수의 최소치와 관련이 있는 서브 픽셀 깊이 값)으로 나눔으로써 깊이 영역에서의 표준 편차로 변환될 수 있다. 이 예에서는 2차/포물선 함수가 다른 예에서 사용되지만 이미지의 특성에 따라 다른 적절한 함수가 대안으로 맞춰질 수 있다. 깊이 영역에서의 표준 편차의 계산에 후속하여, 문턱값이 적용될 수 있으며, 주어진 문턱값을 초과하는 표준 편차를 지니는 깊이 추정치는 후속 처리를 위해 폐기된다(예컨대, 필터링되어 제거됨). 하나의 경우에, 이미지 영역의 특정 백분율(예컨대, 50%)을 유지하기 위해 문턱값이 적용될 수 있다. 깊이 값, 예컨대 기준 이미지의 픽셀과 관련이 있는 깊이 값의 필터링에 이어, 예컨대 한 서브세트의 픽셀에 상응하는 한 서브세트의 깊이 값이 남아 있고 따라서, "반-조밀" 깊이 맵을 생성하게 된다. 특정한 구현 예에서, 깊이는 역 형태로 표현될 수 있고 그리고/또는 깊이 범위는 다수의 비용 체적 빈(예컨대, 하나의 테스트 예에서 64개)으로 샘플링될 수 있다. 특정한 경우에, 오차 함수를 최적화할 때 수행되는 깊이 맵 비교가 필터링 된 깊이 값에 대해 수행될 수 있고, 예컨대 문턱값에서 살아남지 못한 깊이 맵의 특정 깊이 값은 내부 치수를 계산하는 데 사용되지 않는다.
특정한 경우에, 무-지향성 카메라는 넓은 시야 커버리지와 확장된 움직임 동안의 대응 용이성을 제공하지만 설명된 예는 이러한 장치를 사용할 때 경험할 수 있는 상대적으로 낮은 각도 해상도 및 캘리브레이션하기 어려운 투영 특성의 영향을 최소화한다. 위에서 설명한 처리 방법은 다방향 카메라에서 발견된 비-전통적인 지오메트리(geometry)를 사용하여 작업 방법을 구현하는 과제를 극복한다. 여기에 설명된 특정 예에서, 특징-기반 매칭 및 번들 조정 절차는 각각의 이미지의 자세의 정확한 추정을 제공한다. 그리고 나서, 이는 무-지향성 광 불일치 비용 체적을 예컨대 100-160 프레임에 기초하여 구축하는데 사용된다. 상기 비용 체적은 조밀한 3-차원 정점 맵으로 변형될 수 있는 무-지향성 깊이 맵을 생성하는 데 사용된다. 여기에 설명된 특정 예는 텍스쳐가 없는 영역을 지니는 공간에서 실내에서의 수동 재구축을 가능하게 하고, 정규화가 적용되는 경우라도 깊이가 신뢰할 수 없는 불량하게 추정된 영역을 지니는 무-지향성 깊이 맵(및 대응하는 조밀한 3-차원 지오메트리 추정치)의 문제점을 최소화한다. 이러한 예에서, 깊이 표준 편차는 비용 체적 데이터 및 반-조밀 고품질 정보만을 추출하기 위해 적용된 문턱값으로부터 추정될 수 있다. 이러한 절차는 또한 정규화의 필요성을 없애준다. 특정한 비교 방법으로 깊이 추정이 가능하지만, 이는 일반적으로 깊이 카메라, 레이저 스캐너 또는 스테레오 비전 시스템과 같은 선행 하드웨어를 필요로 한다. 여기에 설명된 특정 예는 표준 RGB 수동 카메라 장치를 사용하여 내비게이션을 위한 정보를 제공하는 과제를 극복한다.
대표적인 기계-판독가능 명령어
여기에 설명된 특정 시스템 구성요소 및 방법은 비-일시적 저장 매체상에 저장 가능한 컴퓨터 프로그램 코드로 구현될 수 있다. 도 10은 컴퓨터 판독가능 저장 매체(1020)로부터 데이터를 회수하도록 이루어진 적어도 하나의 프로세서(1010)를 포함하는 시스템의 특정 예(1000)를 보여준다. 상기 시스템은 위에서 설명한 로봇 장치의 일부, 또는 서버 또는 모바일 컴퓨팅 장치의 일부를 포함할 수 있다. 상기 컴퓨터-판독가능 저장 매체(1020) 상에는 한 세트의 컴퓨터-판독가능 명령어(1030)가 저장되어 있다. 본 예의 컴퓨터-판독가능 저장 매체(1020)는 또한 이미지 데이터(1040) 및 바닥 플랜(1050)의 프레임을 저장하도록 구성된다. 다른 예에서, 구성요소(1030, 1040, 1050)는 별개의 매체에 저장될 수 있다. 상기 바닥 플랜(1050)은 하나 이상의 내부에 대한, 예컨대 도 3a 및 도 3b 또는 도 13a 내지 도 13c에 도시된 바와 같은 내부 치수를 포함할 수 있다. 하나의 경우에, 상기 내부 플랜은 집 또는 사무실과 같은 빌딩 내 복수의 내부에 대한 내부 치수를 정의할 수 있다.
사용시, 상기 적어도 하나의 프로세서(1010)는 처리를 위해 명령어(1030)를 메모리에 로드하도록 구성된다. 상기 명령어(1030)는 상기 적어도 하나의 프로세서(1010)가 일련의 동작을 수행하게 하도록 이루어진다. 이들 동작은 상기 프로세서로 하여금 명령어(1060)에서 단안 다방향 카메라로부터의 일련의 프레임(1040)을 수신하게 하는 동작을 포함한다. 이 예에서, 상기 다방향 카메라는 복수의 각도 위치로부터 상기 프레임들 각각에 대한 이미지 데이터를 캡처하도록 이루어지고, 상기 일련의 프레임은 공간에 대한 움직임 평면 내 상이한 각도 위치에서 캡처된다. 상기 동작들은 상기 프로세서로 하여금 명령어(1065)에서 상기 일련의 프레임에 걸쳐 검출된 특징들을 매칭시킴으로써 각각의 프레임에 대한 상기 카메라의 위치 및 배향 추정치를 결정하게 하는 동작을 더 포함한다. 그 후 명령어(1070)는 최적화된 한 세트의 상기 카메라의 위치 및 배향 추정치를 생성하기 위해 상기 카메라의 위치 및 배향 추정치를 번들 조정하는 것을 포함한다.
번들 조정 후에, 명령어(1075)는 상기 일련의 프레임으로부터 기준 프레임을 결정하는 동작을 초래한다. 상기 기준 프레임은 관련된 기준 위치 및 배향(다시 말하면, 관련된 자세)을 지닌다. 그 후 명령어(1080)는 상기 기준 프레임에 대한 픽셀 값 및 상기 기준 프레임과 오버랩되는 한 세트의 비교 이미지로부터의 투영된 픽셀 값 간의 광도 오차 함수를 평가하는 동작을 초래한다. 이 경우에, 상기 투영된 픽셀 값은 상기 카메라로부터의 객체 거리 및 상기 최적화된 한 세트의 카메라의 위치 및 배향 추정치의 함수이다. 명령어(1085)를 통해, 상기 프로세서(1010)는 평가된 광도 오차 함수에 기초하여 상기 기준 프레임의 상이한 픽셀 열에 상응하는 상이한 각도 위치에 대한 제1 세트의 표면 거리를 결정하도록 구성된다. 명령어(1090)을 통해, 상기 프로세서는 상기 제1 세트의 표면 거리 및 3-차원 체적에 기초하여 결정된 제2 세트의 표면 거리 간의 오차를 최적화함으로써 상기 기준 위치를 에워싸는 3-차원 체적의 평면 직사각형 단면에 대한 매개변수를 결정하도록 명령을 받는다. 명령어(1095)를 통해, 상기 프로세서는 상기 평면 직사각형 단면에 대한 결정된 매개변수를 사용하여 상기 공간에 대한 바닥 플랜(1050)을 결정하도록 명령을 받는다. 이 때문에, 기계-판독가능 명령어(1030)는 위에서 설명한 특정 예를 예컨대 로봇 장치용 펌웨어의 일부로서 수행하는데 사용될 수 있다.
특정한 경우에, 상기 단안 다방향 카메라는 무-지향성 카메라를 포함하고 각각의 프레임은 언랩핑된 무-지향성 이미지를 포함한다. 상기 무-지향성 카메라는 파노라마-환형-렌즈를 포함할 수 있다. 상기 일련의 프레임은 상기 공간 내에서 원주 방향으로 움직이게 되는 모바일 비디오 카메라로부터 수신될 수 있다.
특정한 경우에, 상기 명령어들이 복수의 평면 직사각형 단면에 대한 매개변수를 결정하도록 반복된다. 이 경우에, 상기 바닥 플랜을 결정하는 명령어들은 상기 복수의 평면 직사각형 단면의 합집합에 기초하여 적어도 하나의 내부의 바닥 플랜을 결정하기 위한 명령어를 포함한다. 이는 아래의 도 13c를 참조하여 더 구체적으로 설명된다. 다른 경우에, 상기 명령어들은 상기 복수의 평면 직사각형 단면의 공간 오버랩을 결정하고 상기 공간 오버랩에 기초하여 상기 공간에 대한 내부 경계를 결정하기 위한 명령어를 포함한다. 예를 들어, 박스가 사전에 정의된 양보다 많게 오버랩되는 것으로 결정되면 상기 박스는 동일한 내부의 다른 부분으로 간주 되고 상대적으로 상기 박스가 사전에 정의된 양보다 적게 오버랩되는 것으로 결정되면 상기 박스는 다른 내부와 관련이 있는 것으로 간주 된다. 따라서, 단면의 합집합(union of cross-sections)은 오버랩 값에 기초하여 이루어질 수 있다.
비대칭 손실 함수
도 11은 대표적인 비대칭 손실 함수를 보여준다. 이러한 손실 함수는 위에 설명된 함수 'F'로 사용될 수 있다. 도 11에서, 상기 손실 함수는 2개의 매개변수 c n c p 에 의해 정의된 비대칭 Cauchy 손실 함수 및 오차 e 를 포함하며, 여기서 상기 오차는 위에 기재한 d b d m 간의 오차이다. 예를 들어, 상기 손실 함수는 다음과 같이 정의될 수 있다.
Figure 112019019236274-pct00003
상기 비대칭 함수는 상기 제1 세트의 깊이 값(예컨대, 블록 630 또는 깊이 추정기(540)로부터의 깊이 값)이 제2 세트의 깊이 값(예컨대, 광선 추적에서부터 모델링된 체적에 이르기까지의 깊이 값)보다는 상기 제1 세트의 깊이 값이 상기 제2 세트의 깊이 값보다 작을 때에 비해 클 때 큰 값을 복귀시킨다. 이는 맞춰진 체적에 의해 예측된 것보다 멀리 떨어져 있는 깊이 데이터(예컨대, 블록 630 또는 깊이 추정기(540)로부터의 깊이 데이터)에 더 주의를 기울이도록 선택되고, 다시 말하면 맞춰진 체적(가구 또는 기타 클러터(clutter)로 인한 것일 수 있음)에 의해 예상된 것보다 상기 카메라 장치에 더 가까운 깊이 데이터에 덜 주의를 기울인다.
다른 시스템의 예
도 12는 도 4a, 도 4b의 참조 번호 430, 435 또는 도 5의 시스템(510)과 같은 공간 추정기의 출력을 사용할 수 있는 다수의 장치를 지니는 대표적인 시스템(1200)을 보여준다. 도 12는 공간 추정기(1220)에 통신 가능하게 연결된 로봇 장치(1210)를 보여준다. 상기 공간 추정기는 차례로 내부 데이터베이스(1230)에 통신 가능하게 연결된다. 도 12는 상기 내부 데이터베이스(1230)에 액세스하도록 이루어진 내부 분류기(1240) 및 모바일 컴퓨팅 장치(1250)를 보여준다.
동작시, 도 12의 로봇 장치(1210)는 도 2a 또는 도 2b에 도시된 바와 같은 움직임을 수행하도록 구성된다. 다른 구현 예에서, 상기 로봇 장치(1210)의 기능은 상기 모바일 컴퓨팅 장치(1250)에 통합될 수 있다. 상기 로봇 장치(1210)는 이미지 데이터를 획득하고 이러한 데이터를 공간 추정기(1220)에 전달하도록 구성된다. 도 12에서, 상기 공간 추정기(1220)는 서버 컴퓨팅 장치이다. 다른 경우에, 상기 공간 추정기(1220)는 상기 로봇 장치(1210)의 내장 제어기의 일부를 형성할 수 있다. 상기 공간 추정기(1220)는 상기 로봇 장치(1210)로부터의 이미지 데이터에 기초하여 하나 이상의 내부 치수를 출력하도록 구성된다. 상기 내부 치수는 여러 세트의 직사각형 내부 모델의 길이 및 폭 값을 포함할 수 있다. 복잡한 내부 형상의 경우, 예를 들어 직사각형의 조합으로부터 형성된 복잡한 내부 형상의 경우, 내부 치수는 불규칙한 다각형을 집합적으로 지정하는 한 세트의 라인 정의를 포함할 수 있다. 도 12에서, 상기 내부 데이터베이스는 상기 공간 추정기(1220)로부터의 내부 치수를 저장한다.
상기 내부 데이터베이스(1230)로부터의 데이터는 내부 분류기(1240) 및 모바일 컴퓨팅 장치(1250)에 의해 액세스되고 그리고/또는 수정될 수 있다. 상기 내부 분류기(1240)는 결정이 가능하면, 상기 내부 데이터베이스(1230)에 저장되어 있는 내부 치수에 기초하여 내부 등급을 결정하도록 구성된다. 예를 들어, 상기 내부 분류기(1240)는 라벨링된 내부 데이터, 다시 말하면 동반된 내부 등급(예컨대, [W=3, L=4, C='lounge'])을 지니는 여러 세트의 치수를 통해 트레이닝되는 기계 학습 알고리즘을 포함할 수 있다. 예를 들어, 로봇 장치(1210)가 로봇 진공 청소기와 같은 가정용 로봇을 포함하는 경우, 제1 세트의 사용자는 상기 모바일 컴퓨팅 장치(1250) 상에 디스플레이되는 라벨링된 내부 플랜(1260)에 내부 등급을 수동으로 할당할 수 있다. 그 후, 적절히 익명 처리된 제1 세트의 사용자로부터의 라벨링된 데이터는 상기 내부 분류기(1240)를 트레이닝하는데 사용될 수 있다. 그리고 나서, 상기 내부 분류기(1240)는 제2 세트의 사용자에 대한 가능성 있는 내부 등급을 예측할 수 있다. 하나의 경우에, 상기 내부 분류기(1240)의 트레이닝은 예컨대 내부 등급 라벨을 사용자가 확인하거나 적용할 때 온라인으로 이루어질 수 있다. 하나의 경우에, 내부 분류기(1240)는 상기 모바일 컴퓨팅 장치(1250) 상의 사용자에게 가장 가능성 있는 내부 등급 라벨을 디스플레이할 수 있으며, 여기서 상기 사용자는 상기 라벨이 적용되는지 또는 적용되지 않는지를 확인할 수 있다. 특정한 경우에, 상기 내부 등급은 상기 내부 치수와 함께 상기 내부 데이터베이스(1230)에 저장될 수 있다. 상기 내부 등급은 로봇 장치(1210)에 의해 내부를 내비게이션하거나 사전에 저장된 특정한 행동 또는 활동 패턴을 활성화시키기 위해 사용될 수 있다. 예를 들어, 가정용 청소 로봇은 청소 빈도를 조정하거나 내부 등급에 기초하여 청소 용품을 적용하도록 구성될 수 있다. 위에서 설명된 대표적인 방법이 견실한 한 세트의 내부 치수를 생성하기 때문에 내부 분류가 가능하고, 예컨대 상기 방법은 주어진 내부에 대해 일관된 내부 치수를 제공하도록 동작한다.
도 12에 도시된 바와 같이, 모바일 컴퓨팅 장치(1250)는 상기 내부 데이터베이스(1230)로부터 데이터에 액세스하고 이러한 데이터를 사용하여 상기 장치(1250)의 디스플레이상에 내부 플랜(1260)을 렌더링하도록 구성될 수 있다. 상기 내부 플랜은 내부 데이터베이스(1230)에 저장된 치수에 기초하여 렌더링된 하나 이상의 내부 도식을 포함할 수 있다. 도 12에서, 집 또는 사무실에서 3개의 개별적인 내부에 대한 내부 치수를 나타내는 상이한 치수의 3개의 박스가 디스플레이상에 도시되어 있다. 내부 플랜은 복수의 상이한 바닥을 포함할 수 있다. 내부 플랜에는 각각의 내부에 대한 내부 등급 라벨이 디스플레이될 수도 있다.
대표적인 단면
도 13a 내지 도 13c는 여기에 설명된 방법 및 시스템을 사용하여 결정된 바와 같은 다수의 대표적인 단면을 보여준다. 이들 단면은 내부 또는 바닥 플랜을 나타낼 수 있다.
도 13a는 직사각형 단면(1310)이 밀폐된 공간(1320)의 형상에 맞춰진 예(1300)를 보여준다. 상기 직사각형 단면(1310)은 폭(1312) 및 길이(1314) 형태의 치수를 지닌다. 이들 치수는 상기 카메라 장치의 기준 위치에서부터 상기 직사각형 단면(1310)의 측면들에 이르기까지의 최적화된 거리(예컨대, 도 3a를 참조하여 위에서 설명한 바와 같음)로부터 계산될 수 있다. 도 13a의 직사각형 단면(1310)은 또한 약간의 회전각을 지닌다.
도 13b 및 13c는 상기 방법이 상기 단안 다방향 카메라 장치의 다수의 이격된 움직임에 대해 반복되는 예(1302, 1304)를 보여준다. 이들 움직임은 원일 수 있다. 그런 다음, 이는 여러 세트의 치수 추정치를 생성한다. 이들은 내부 구분을 결정하고 그리고/또는 복잡한 형상을 맞추는데 사용될 수 있다.
도 13b에서, 2개의 움직임이 2개의 직사각형(1315, 1325)에 대한 치수를 결정하기 위해 수행된다. 이 경우에, 상기 밀폐된 공간은 2개의 내부(1330, 1335)를 포함하며, 예컨대 이러한 내부는 문 또는 공통 개구(1340)에 의해 연계된다. 로봇 장치는 내부(1335)에서 하나의 움직임 및 내부(1330)에서 다른 움직임을 수행할 수 있다. 이때, 도 6의 방법은 2개의 직사각형(1315, 1325)에 대한 치수를 결정하기 위해 2번 반복될 수 있다. 이 경우에, 상기 직사각형의 오버랩이 결정된다. 오버랩 메트릭은 양자 모두의 직사각형에 의해 공유되는 양자 모두의 직사각형의 조합된 총 면적의 백분율에 기초하여 계산될 수 있다. 대안으로, 오버랩 메트릭은 다른 직사각형과 공유되는 하나의 직사각형의 가장 높은 백분율 영역에 기초하여 결정될 수 있다. 예를 들어, 도 13b에서 전체 면적의 0%가 공유된다. 이때, 상기 오버랩은 밀폐된 공간 내에서 내부 경계를 결정하는 데 사용된다. 하나의 경우에, 상기 오버랩이 사전 정의된 문턱값(예컨대, 5% 공유 영역) 미만일 경우, 도 13b에 도시된 바와 같이, 상기 복수의 직사각형이 상기 공간 내 대응하는 복수의 내부와 관련이 있도록 결정된다. 이 경우에, 상기 치수는 별도의 내부 기록으로서, 참조번호 1230과 같은 내부 데이터베이스에 저장될 수 있다.
도 13c는 오버랩이 사전에 정의된 문턱값을 초과하는 경우를 보여준다. 도 13c는 복잡한 형상(예컨대, 4개 보다 많은 측면 및/또는 90°보다 작거나 또는 90°보다 큰 각도의 측면)을 지니는 단면 내부(1345)를 보여준다. 이 경우에, 로봇 장치는 4개의 개별 직사각형(1350, 1352, 1354, 1356)에 대한 치수를 결정하기 위해 4개의 개별 움직임을 수행한다. 이 경우의 오버랩은 직사각형의 쌍에 대해 반복적으로 결정될 수 있다. 예를 들어, 직사각형(1350, 1352)은 사전에 정의된 문턱값(이 경우에, 5% 문턱값보다 큰 약 40%)보다 큰 공유 영역을 갖도록 비교 및 결정될 수 있다. 따라서, 이들 직사각형은 융합되어 예컨대 상기 직사각형 영역의 부울 합집합(조합)을 계산함으로써 복잡한 형상을 생성할 수 있다. 이러한 조합된 형상은 직사각형(1354)과 비교되고 문턱값 비교에 기초하여 다시 융합될 수 있다. 최종적으로, 결과적인 복잡한 형상 및 직사각형(1356)을 사용하여 유사한 비교가 수행될 수 있고, 이러한 사각형은 이때 상기 공유 영역이 상기 문턱값보다 커서 결합될 수 있다. 이러한 반복의 결과는 상기 내부(1345)의 복잡한 형상과 매칭되는 복잡한 형상(1360)(명확성을 위해 이격 도시됨)이다. 이러한 중첩 비교 및 형상 조합 방법은 더 복잡한 내부의 대규모 내부 매핑을 가능하게 할 수 있다. 복잡한 형상이 형성될 때까지 로봇 장치에 의한 능동적인 탐색 중에 증분 방식(예컨대, 직사각형 단위)으로 수행될 수 있다. 이러한 복잡한 형상은 내부 형상에 기초한 더 정확한 분류를 위해 상기 내부 분류기(1240)에 대한 입력으로서 제공될 수 있다.
여기에 설명된 특정 예는 무-지향성 카메라가 장착된 소형 모바일 로봇에 의해 구현될 수 있는 내부 크기 추정 접근법을 제공한다. 상기 접근법은 합성 깊이 데이터와 실제 가정 및 사무실 환경을 비롯한 일련의 데이터 세트에 대해 견고하고 정확한 내부 치수 추정치를 제공했다. 여기에 설명된 방법 및 시스템은 가정용 로봇의 내장된 프로세서에서 용이하게 구현될 수 있으며, 실시간 프레임 레이트로 동작할 필요가 없다. 상기 예는 단거리 적외선 센서로부터의 데이터를 사용하여 여유 공간과 장애물을 감지하는 비교 시스템을 개선한다. 이러한 비교 시스템은 상기 공간의 전체 영역을 (예컨대, 장애물을 청소하고 피함으로써) 힘들게 탐색함으로써 밀폐된 공간의 치수에 대한 추정치를 결정할 수만 있다. 짧은 조작 동안 로봇 장치에 의해 캡처된 무-지향성 이미지에 이미지 프로세싱 파이프라인을 적용함으로써, 본 예는 전형적인 내부의 글로벌 형상이 추정될 수 있게 한다. 저장된 공간 치수는 이때 추가 센서 또는 인프라를 필요로 하지 않고 소형 로봇 장치에서 지능적인 고급 동작을 가능하게 할 수 있다. 예를 들어, 로봇 청소 장치는 그것이 있는, 예컨대 내부 크기 또는 유형에 기초하여 복잡한 청소 패턴을 허용하는, 내부의 전체 크기, 형상, 경계 및 신원을 알고 있을 수 있다. 여기에서 결정된 특정한 깊이 맵의 무-지향성 완전성은 실제 장면에서 일련의 이미징 조건을 용인하는 방식으로 저 차원 내부 모델이 깊이 데이터에 맞추어질 수 있게 한다.
상기 예는 예시적인 것으로 이해되어야 한다. 추가의 예가 예상된다. 하나의 경우에, 상기 로봇 장치는 위의 예에서 설명된 (RGB) 이미지 센서에 추가로 깊이 센서를 포함할 수 있다. 상기 깊이 센서는 상기 단안 다방향 카메라 장치의 일부를 포함할 수 있다. 이 경우, 일련의 프레임은 이미지 데이터 및 깊이 데이터를 포함할 수 있다. 이때, 깊이 값을 추정하기 위해, 다시 말하면 객체 거리를 결정하기 위해 상기 이미지 데이터와 함께 사용될 수 있다. 예를 들어, 깊이 데이터는 체적 함수 내에서 추가적인 제약 조건으로 사용될 수 있다. 상기 깊이 센서는 상기 설명된 단안 이미지뿐만 아니라 깊이 이미지 또는 지점 클라우드를 제공하는데 사용될 수 있다. 하나의 경우에, 도 11의 비대칭 함수는 비용 함수 계수를 교환(swapping)함으로써 수정될 수 있다. 이는 챠트(1110)를 수평 방향으로 효과적으로 뒤집는(다시 말하면, x=0). 이는 상기 방법을 수정하여 최외곽 단면보다는 오히려 최내곽을 결정한다. 이는 자유 공간 추정치로 간주 될 수 있다. 여기서 이해하여야 할 점은 임의의 일 예와 관련하여 설명된 임의의 특징이 단독으로 또는 위에서 설명된 다른 특징과 조합하여 사용될 수 있고, 임의의 다른 실시 예의 하나 이상의 특징 또는 임의의 다른 예의 임의의 조합과 함께 사용될 수도 있다. 또한, 위에서 설명되지 않은 등가 예 또는 수정 예가 첨부된 청구범위에서 정의된 본 발명의 범위로부터 벗어나지 않고 채용될 수 있다.

Claims (22)

  1. 밀폐된 공간의 치수를 추정하기 위한 이미지 처리 방법으로서,
    상기 방법은,
    상기 밀폐된 공간 내에 위치된 단안 다방향 카메라 장치로부터 이미지 데이터를 획득하는 단계 - 상기 단안 다방향 카메라 장치는 복수의 각도 위치로부터 이미지 데이터를 캡처하도록 이루어지고, 상기 이미지 데이터는 상기 카메라 장치의 움직임 평면 내에 불일치를 갖는 일련의 이미지를 포함함 -;
    상기 이미지 데이터에 상응하는 자세 데이터를 결정하는 단계 - 상기 자세 데이터는 상기 단안 다방향 카메라 장치의 위치 및 방위를 나타내고, 상기 자세 데이터는 상기 이미지 데이터 내에서 검출된 한 세트의 특징을 사용하여 결정됨 -;
    상기 이미지 데이터 및 상기 자세 데이터의 체적 함수를 평가하여 깊이 값을 추정하는 단계 - 각각의 깊이 값은 상기 단안 다방향 카메라 장치의 기준 위치에서부터 상기 밀폐된 공간 내 표면에 이르기까지의 거리를 나타냄 -;
    상기 단안 다방향 카메라 장치의 기준 위치 주변에 3-차원 체적을 정의하는 단계 - 상기 3-차원 체적은 상기 단안 다방향 카메라 장치의 움직임 평면 내에 2-차원 다각형 단면을 지님 -; 및
    상기 다각형 단면에 대한 치수를 결정하기 위해 상기 깊이 값에 상기 3-차원 체적을 맞추는 단계 - 상기 결정된 치수는 상기 밀폐된 공간의 치수에 대한 추정치를 제공함 -;
    을 포함하는, 이미지 처리 방법
  2. 제1항에 있어서,
    상기 3-차원 체적을 상기 깊이 값에 맞추는 단계는,
    상기 다각형 단면에 대한 치수와 관련하여, 상기 이미지 데이터 및 상기 자세 데이터의 체적 함수의 평가로부터의 제1 세트의 깊이 값 및 상기 기준 위치에서부터 상기 3-차원 체적의 벽에 이르기까지 추정된 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는 단계를 포함하는, 이미지 처리 방법.
  3. 제2항에 있어서,
    상기 이미지 처리 방법은,
    광선 추적을 사용하여 상기 제2 세트의 깊이 값을 결정하는 단계;
    를 포함하는, 이미지 처리 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 오차의 함수는 상기 제1 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지를 제2 세트의 깊이 값을 정의하는 픽셀 값을 지니는 깊이 이미지와 비교함으로써 평가되는, 이미지 처리 방법.
  5. 제2항에 있어서,
    상기 오차의 함수는 비대칭 함수를 포함하는, 이미지 처리 방법.
  6. 제5항에 있어서,
    상기 비대칭 함수는 상기 제1 세트의 깊이 값이 상기 제2 세트의 깊이 값보다 작을 때에 비해 상기 제1 세트의 깊이 값이 상기 제2 세트의 깊이 값보다 클 때 큰 값을 복귀시키는, 이미지 처리 방법.
  7. 제2항에 있어서,
    상기 이미지 처리 방법은,
    자코비안(Jacobians)을 계산하기 위해 전방 누적(forward accumulation)으로 자동 차등화를 적용하는 단계;
    를 포함하며,
    상기 자코비안은 상기 제1 세트 및 상기 제2 세트의 깊이 값 간의 오차의 함수를 최적화하는데 사용되는, 이미지 처리 방법.
  8. 제1항에 있어서,
    상기 다각형 단면은 직사각형을 포함하고, 상기 치수는 기준 위치에서부터 직사각형의 대응하는 측면에 이르기까지의 거리를 포함하는, 이미지 처리 방법.
  9. 제8항에 있어서,
    상기 3-차원 체적을 맞추는 단계는 기준 위치에 대한 직사각형의 회전 각을 결정하는 단계를 포함하는, 이미지 처리 방법.
  10. 제9항에 있어서,
    3-차원 체적은 기준 위치에 대한 직사각형의 회전 각 이전에 기준 위치에서부터 직사각형의 대응하는 측면에 이르기까지의 거리를 평가하는 좌표 하강 접근법을 사용하여 맞춰지는, 이미지 처리 방법.
  11. 제8항에 있어서,
    상기 이미지 처리 방법은 복수의 직사각형에 대한 치수를 결정하도록 단안 다방향 카메라 장치의 다중 공간 움직임에 대해 반복되고, 상기 직사각형은 밀폐된 공간의 범위를 나타내는, 이미지 처리 방법.
  12. 제11항에 있어서,
    상기 이미지 처리 방법은,
    상기 직사각형들의 오버랩(overlap)을 결정하는 단계; 및
    상기 오버랩을 사용하여 상기 밀폐된 공간 내에 내부 경계를 결정하는 단계 - 상기 오버랩이 사전에 정의된 문턱값보다 작을 경우, 상기 복수의 직사각형이 상기 공간 내의 대응하는 복수의 내부와 관련이 있도록 결정되고, 상기 오버랩이 사전에 정의된 문턱값보다 클 경우, 상기 복수의 직사각형은 밀폐된 공간의 형상과 관련이 있도록 결정됨;
    을 포함하는, 이미지 처리 방법.
  13. 제11항에 있어서,
    상기 이미지 처리 방법은,
    밀폐된 공간의 형상에 대한 추정치를 제공하기 위해 상기 복수의 직사각형의 불린 유니온(Boolean union)을 계산하는 단계;
    를 포함하는, 이미지 처리 방법.
  14. 제1항에 있어서,
    상기 이미지 처리 방법은,
    내부 분류기에 상기 다각형 단면에 대한 치수를 입력하는 단계; 및
    상기 내부 분류기를 사용하여 내부 등급을 결정하는 단계;
    를 포함하는, 이미지 처리 방법.
  15. 제14항에 있어서,
    상기 이미지 처리 방법은,
    상기 내부 등급에 기초하여 로봇 장치의 작동 패턴을 결정하는 단계;
    를 포함하는, 이미지 처리 방법.
  16. 밀폐된 공간의 치수를 추정하기 위한 시스템으로서,
    상기 시스템은,
    상기 밀폐된 공간 내 복수의 각도 위치로부터 일련의 이미지를 캡처하는 단안 다방향 카메라 장치;
    상기 일련의 이미지로부터 자세 데이터를 결정하는 자세 추정기 - 상기 자세 데이터는 지시된 움직임 동안 복수의 위치에서 상기 단안 다방향 카메라 장치의 위치 및 배향을 나타내고, 상기 자세 데이터는 상기 일련의 이미지 내에서 검출된 한 세트의 특징을 사용하여 결정됨 -;
    상기 자세 데이터 및 상기 일련의 이미지의 체적 함수를 평가하여 깊이 값을 추정하는 깊이 추정기 - 각각의 깊이 값은 상기 다방향 카메라 장치의 기준 위치에서부터 상기 밀폐된 공간 내 표면에 이르기까지의 거리를 나타냄 -; 및
    치수 추정기;
    를 포함하며,
    상기 치수 추정기는,
    3-차원 체적의 2-차원 다각형 단면의 치수를 최적화하여 상기 깊이 추정기로부터의 깊이 값에 3-차원 체적을 맞추고,
    상기 2-차원 다각형 단면의 최적화된 치수에 기초하여 상기 밀폐된 공간의 치수에 대한 추정치를 출력하는, 시스템.
  17. 제16항에 있어서,
    상기 단안 다방향 카메라 장치, 상기 깊이 추정기, 상기 자세 추정기 및 상기 치수 추정기 중 적어도 하나는 로봇 장치에 내장되는, 시스템.
  18. 제17항에 있어서,
    상기 시스템은,
    빌딩 내 복수의 밀폐된 공간에 대한 상기 치수 추정기로부터의 추정치를 포함하는 내부 데이터베이스;
    를 포함하는, 시스템.
  19. 제18항에 있어서,
    상기 내부 데이터베이스로부터의 데이터는 네트워크를 통해 모바일 컴퓨팅 장치로부터 액세스 가능한, 시스템.
  20. 프로세서에 의해 실행될 때, 컴퓨팅 장치로 하여금 공간을 매핑하게 하는 컴퓨터 실행가능 명령어를 포함하는 비-일시적 컴퓨터-판독가능 저장 매체로서,
    상기 명령어는 상기 컴퓨팅 장치로 하여금,
    단안 다방향 카메라로부터 일련의 프레임을 수신하는 동작 - 상기 다방향 카메라는 복수의 각도 위치로부터 상기 프레임들 각각에 대한 이미지 데이터를 캡처하도록 이루어지며, 상기 일련의 프레임은 상기 공간에 대한 움직임의 평면 내 상이한 각도 위치에서 캡처됨 -;
    상기 일련의 프레임에 걸쳐 검출된 특징들을 매칭시켜 각각의 프레임에 대한 상기 카메라에 대한 위치 및 배향 추정치를 결정하는 동작;
    상기 일련의 프레임에 걸쳐 검출된 특징들 및 상기 카메라에 대한 위치 및 배향 추정치를 번들 조정하여 최적화된 한 세트의 상기 카메라에 대한 위치 및 배향 추정치를 생성하는 동작;
    상기 일련의 프레임으로부터 기준 프레임을 결정하는 동작 - 상기 기준 프레임은 관련된 기준 위치 및 배향을 지님 -;
    상기 기준 프레임에 대한 픽셀 값과 상기 기준 프레임과 오버랩되는 한 세트의 비교 이미지로부터의 투영된 픽셀 값 간의 광도 오차 함수를 평가하는 동작 - 상기 투영된 픽셀 값은 상기 카메라로부터의 표면 거리 및 상기 카메라에 대한 최적화된 한 세트의 위치 및 배향 추정치의 함수임 -;
    상기 평가된 광도 오차 함수에 기초하여 상기 기준 프레임의 상이한 픽셀 열에 상응하는 상이한 각도 위치에 대한 제1 세트의 표면 거리를 결정하는 동작;
    상기 제1 세트의 표면 거리 및 3-차원 체적에 기초하여 결정된 제2 세트의 표면 거리 간의 오차를 최적화하여 상기 기준 위치를 에워싸는 3-차원 체적의 평면 직사각형 단면에 대한 매개변수를 결정하는 동작; 및
    상기 평면 직사각형 단면에 대한 상기 결정된 매개변수를 사용하여 상기 공간에 대한 바닥 평면을 결정하는 동작;
    을 수행하게 하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  21. 제20항에 있어서,
    상기 명령어는 복수의 평면 직사각형 단면에 대한 매개변수를 결정하도록 반복되며, 바닥 평면을 결정하기 위한 명령어는 복수의 평면 직사각형 단면의 합집합에 기초하여 바닥 평면을 결정하기 위한 명령어를 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
  22. 제20항에 있어서,
    상기 명령어는 복수의 평면 직사각형 단면에 대한 매개변수를 결정하도록 반복되며,
    상기 명령어는,
    상기 복수의 평면 직사각형 단면의 공간 오버랩을 결정하는 명령어; 및
    상기 공간 오버랩에 기초하여 공간에 대한 내부 경계를 결정하는 명령어;
    를 포함하는, 비-일시적 컴퓨터-판독가능 저장 매체.
KR1020197005459A 2016-07-22 2017-07-12 다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정 KR102447461B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1612767.2 2016-07-22
GB1612767.2A GB2552648B (en) 2016-07-22 2016-07-22 Estimating dimensions for an enclosed space using a multi-directional camera
PCT/GB2017/052037 WO2018015716A1 (en) 2016-07-22 2017-07-12 Estimating dimensions for an enclosed space using a multi-directional camera

Publications (2)

Publication Number Publication Date
KR20190032532A KR20190032532A (ko) 2019-03-27
KR102447461B1 true KR102447461B1 (ko) 2022-09-26

Family

ID=56894546

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197005459A KR102447461B1 (ko) 2016-07-22 2017-07-12 다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정

Country Status (8)

Country Link
US (1) US11276191B2 (ko)
EP (1) EP3488418A1 (ko)
JP (1) JP6980755B2 (ko)
KR (1) KR102447461B1 (ko)
CN (1) CN109564690B (ko)
AU (1) AU2017300937A1 (ko)
GB (1) GB2552648B (ko)
WO (1) WO2018015716A1 (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9688403B2 (en) 2014-05-20 2017-06-27 Infatics, Inc. Method for adaptive mission execution on an unmanned aerial vehicle
US11370422B2 (en) * 2015-02-12 2022-06-28 Honda Research Institute Europe Gmbh Method and system in a vehicle for improving prediction results of an advantageous driver assistant system
CN106765874B (zh) * 2016-11-23 2021-05-14 北京小米移动软件有限公司 空气净化的方法及装置
US10957068B2 (en) 2017-01-06 2021-03-23 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the same
JP6894707B2 (ja) * 2017-01-06 2021-06-30 キヤノン株式会社 情報処理装置およびその制御方法、プログラム
US10621780B2 (en) 2017-02-02 2020-04-14 Infatics, Inc. System and methods for improved aerial mapping with aerial vehicles
US10762635B2 (en) 2017-06-14 2020-09-01 Tusimple, Inc. System and method for actively selecting and labeling images for semantic segmentation
US10534962B2 (en) 2017-06-17 2020-01-14 Matterport, Inc. Automated classification based on photo-realistic image/model mappings
US10627232B2 (en) * 2017-06-27 2020-04-21 Infatics, Inc. Method and system for aerial image processing
DE102017118383A1 (de) 2017-08-11 2019-02-14 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Reinigungsgerätes
DE102017118381A1 (de) * 2017-08-11 2019-02-14 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Bodenbearbeitungsgerätes
DE102017118382A1 (de) 2017-08-11 2019-02-14 Vorwerk & Co. Interholding Gmbh Verfahren zum Betrieb eines sich selbsttätig fortbewegenden Reinigungsgerätes
US10671083B2 (en) 2017-09-13 2020-06-02 Tusimple, Inc. Neural network architecture system for deep odometry assisted by static scene optical flow
US10552979B2 (en) 2017-09-13 2020-02-04 TuSimple Output of a neural network method for deep odometry assisted by static scene optical flow
WO2019089763A1 (en) 2017-10-31 2019-05-09 Outward, Inc. Aligned augmented reality views
EP3486607B1 (de) * 2017-11-20 2021-09-01 Leica Geosystems AG Bildbasierte kantenvermessung
CA3000134C (en) * 2017-11-27 2019-07-02 Cae Inc. Method and system for simulating a radar image
US10853447B2 (en) * 2018-01-19 2020-12-01 8i Limited Bezier volume representation of point cloud attributes
WO2019142163A1 (en) * 2018-01-19 2019-07-25 Interdigital Vc Holdings, Inc. Processing a point cloud
EP3561773B1 (en) * 2018-04-26 2022-03-02 Continental Automotive GmbH Online evaluation for camera intrinsic parameters
US10830473B2 (en) * 2018-05-14 2020-11-10 Johnson Controls Technology Company Systems and methods for zoning system setup
US10565728B2 (en) * 2018-06-01 2020-02-18 Tusimple, Inc. Smoothness constraint for camera pose estimation
CN109325998B (zh) * 2018-10-08 2023-06-30 香港理工大学 一种基于点云数据的室内3d建模方法、系统及相关装置
CN109579844B (zh) * 2018-12-04 2023-11-21 电子科技大学 定位方法及系统
US10825231B2 (en) * 2018-12-10 2020-11-03 Arm Limited Methods of and apparatus for rendering frames for display using ray tracing
CN111383257B (zh) * 2018-12-29 2024-06-07 顺丰科技有限公司 一种车厢装卸率确定方法和装置
CN111583324B (zh) * 2019-02-19 2023-11-28 顺丰科技有限公司 单目图像深度估测装载率识别方法和装置
US11023763B2 (en) 2019-03-19 2021-06-01 Boston Dynamics, Inc. Detecting boxes
KR20210145734A (ko) * 2019-03-27 2021-12-02 소니그룹주식회사 정보 처리 장치, 정보 처리 방법, 및 프로그램
US11221631B2 (en) 2019-04-24 2022-01-11 Innovation First, Inc. Performance arena for robots with position location system
US10949646B2 (en) 2019-04-30 2021-03-16 Samsung Electronics Co., Ltd. Performing an iterative bundle adjustment for an imaging device
KR102285472B1 (ko) * 2019-06-14 2021-08-03 엘지전자 주식회사 음향의 이퀄라이징 방법과, 이를 구현하는 로봇 및 ai 서버
US11138751B2 (en) 2019-07-06 2021-10-05 Toyota Research Institute, Inc. Systems and methods for semi-supervised training using reprojected distance loss
JP7223449B2 (ja) * 2019-08-23 2023-02-16 上海亦我信息技術有限公司 撮影に基づく3dモデリングシステム
US11373315B2 (en) 2019-08-30 2022-06-28 Tata Consultancy Services Limited Method and system for tracking motion of subjects in three dimensional scene
US11578968B1 (en) * 2019-10-31 2023-02-14 President And Fellows Of Harvard College Compact metalens depth sensors
KR102310789B1 (ko) 2019-11-07 2021-10-07 연세대학교 산학협력단 다양한 시점에서 연속적으로 획득된 영상을 활용한 카메라 자세 및 깊이 추정 장치 및 방법
US11435756B2 (en) * 2019-12-01 2022-09-06 Nvidia Corporation Visual odometry in autonomous machine applications
CN111047964B (zh) * 2019-12-16 2021-11-16 北京工业大学 一种用于建筑空间与内装部品尺寸协调的实验装置
US11763478B1 (en) 2020-01-17 2023-09-19 Apple Inc. Scan-based measurements
US11922580B2 (en) 2020-01-17 2024-03-05 Apple Inc. Floorplan generation based on room scanning
US11652972B2 (en) * 2020-03-04 2023-05-16 Toyota Research Institute, Inc. Systems and methods for self-supervised depth estimation according to an arbitrary camera
IT202000006856A1 (it) * 2020-04-01 2021-10-01 Daniele Bernardini Sistema automatizzato per l’acquisizioni di immagini per il training automatizzato di algoritmi di intelligenza artificiale per il riconoscimento di oggetti
CN111754573B (zh) * 2020-05-19 2024-05-10 新拓三维技术(深圳)有限公司 一种扫描方法及系统
CN111860225B (zh) * 2020-06-30 2023-12-12 阿波罗智能技术(北京)有限公司 一种图像处理的方法、装置、电子设备及存储介质
US11514674B2 (en) * 2020-09-04 2022-11-29 Zillow, Inc. Automated analysis of image contents to determine the acquisition location of the image
KR102665543B1 (ko) * 2021-02-22 2024-05-16 한국전자통신연구원 다시점 영상으로부터의 깊이지도 생성 장치 및 방법
US12085944B2 (en) * 2021-03-02 2024-09-10 Yujin Robot Co., Ltd. Moving path planning apparatus and method for robot
US11094135B1 (en) 2021-03-05 2021-08-17 Flyreel, Inc. Automated measurement of interior spaces through guided modeling of dimensions
US11909950B1 (en) * 2021-09-21 2024-02-20 Amazon Technologies, Inc. Three-dimensional (3D) sensor performance evaluation
CN114119464B (zh) * 2021-10-08 2023-06-16 厦门微亚智能科技有限公司 一种基于深度学习的锂电池电芯顶盖焊缝外观检测方法
KR20230063234A (ko) * 2021-11-01 2023-05-09 삼성전자주식회사 카메라의 캘리브레이션을 위한 전자 장치 및 방법
CN113963335B (zh) * 2021-12-21 2022-03-22 山东融瓴科技集团有限公司 基于图像和点云数据的路面障碍物检测方法
US11927769B2 (en) 2022-03-31 2024-03-12 Metalenz, Inc. Polarization sorting metasurface microlens array device
US20240005540A1 (en) * 2022-05-27 2024-01-04 Toyota Research Institute, Inc. Photometric Cost Volumes For Self-Supervised Depth Estimation
US12086934B2 (en) * 2022-09-30 2024-09-10 Zebra Technologies Corporation Systems and methods for assessing trailer utilization
CN118408553B (zh) * 2024-07-01 2024-08-30 西南科技大学 一种环境三维重建与识别的无人机导航方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015863A (ja) 2006-07-07 2008-01-24 Nippon Hoso Kyokai <Nhk> 距離情報出力装置及び3次元形状復元装置
JP2014220804A (ja) 2013-05-11 2014-11-20 三菱電機株式会社 単一の2次元画像からシーンを再構成する方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100955483B1 (ko) * 2008-08-12 2010-04-30 삼성전자주식회사 3차원 격자 지도 작성 방법 및 이를 이용한 자동 주행 장치의 제어 방법
US8345930B2 (en) * 2010-01-22 2013-01-01 Sri International Method for computing food volume in a method for analyzing food
JP2012064131A (ja) 2010-09-17 2012-03-29 Tokyo Institute Of Technology 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置
US8831290B2 (en) 2012-08-01 2014-09-09 Mitsubishi Electric Research Laboratories, Inc. Method and system for determining poses of vehicle-mounted cameras for in-road obstacle detection
JP6392756B2 (ja) * 2012-09-05 2018-09-19 ボディ パス リミテッド 2次元画像シーケンスから正確な身体サイズ測定値を得るためのシステム及び方法
US20140104394A1 (en) * 2012-10-15 2014-04-17 Intel Corporation System and method for combining data from multiple depth cameras
US9857470B2 (en) * 2012-12-28 2018-01-02 Microsoft Technology Licensing, Llc Using photometric stereo for 3D environment modeling
US9083960B2 (en) * 2013-01-30 2015-07-14 Qualcomm Incorporated Real-time 3D reconstruction with power efficient depth sensor usage
US8994652B2 (en) * 2013-02-15 2015-03-31 Intel Corporation Model-based multi-hypothesis target tracker
US9227323B1 (en) * 2013-03-15 2016-01-05 Google Inc. Methods and systems for recognizing machine-readable information on three-dimensional objects
US9037396B2 (en) * 2013-05-23 2015-05-19 Irobot Corporation Simultaneous localization and mapping for a mobile robot
EP2829842B1 (en) * 2013-07-22 2022-12-21 Hexagon Technology Center GmbH Method, system and computer programme product for determination of an absolute volume of a stock pile using a structure from motion algorithm
EP2854104A1 (en) 2013-09-25 2015-04-01 Technische Universität München Semi-dense simultaneous localization and mapping
US10482619B2 (en) * 2017-07-27 2019-11-19 AI Incorporated Method and apparatus for combining data to construct a floor plan

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008015863A (ja) 2006-07-07 2008-01-24 Nippon Hoso Kyokai <Nhk> 距離情報出力装置及び3次元形状復元装置
JP2014220804A (ja) 2013-05-11 2014-11-20 三菱電機株式会社 単一の2次元画像からシーンを再構成する方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
3D-Based Reasoning with Blocks, Support, and Stability,2013 IEEE Conference on Computer Vision and Pattern Recognition
Rapid free-space mapping from a single omnidirectional camera",2015 European Conference on Mobile Robots

Also Published As

Publication number Publication date
WO2018015716A1 (en) 2018-01-25
AU2017300937A1 (en) 2019-01-24
KR20190032532A (ko) 2019-03-27
JP2019523496A (ja) 2019-08-22
US20190155302A1 (en) 2019-05-23
GB2552648B (en) 2020-09-16
US11276191B2 (en) 2022-03-15
CN109564690A (zh) 2019-04-02
EP3488418A1 (en) 2019-05-29
GB2552648A (en) 2018-02-07
GB201612767D0 (en) 2016-09-07
JP6980755B2 (ja) 2021-12-15
CN109564690B (zh) 2023-06-06

Similar Documents

Publication Publication Date Title
KR102447461B1 (ko) 다방향 카메라를 이용한 밀폐 공간에 대한 치수 추정
US10796151B2 (en) Mapping a space using a multi-directional camera
Kriegel et al. Efficient next-best-scan planning for autonomous 3D surface reconstruction of unknown objects
US20160189419A1 (en) Systems and methods for generating data indicative of a three-dimensional representation of a scene
KR20210119417A (ko) 깊이 추정법
Schneider et al. On the accuracy of dense fisheye stereo
Pitzer et al. Automatic reconstruction of textured 3D models
Ikeda et al. 3D indoor environment modeling by a mobile robot with omnidirectional stereo and laser range finder
Taylor et al. Mapping with depth panoramas
Ng et al. An integrated multi-sensory system for photo-realistic 3d scene reconstruction
Lee et al. Autonomous view planning methods for 3D scanning
Alboul et al. A system for reconstruction from point clouds in 3D: Simplification and mesh representation
Dong et al. Revisiting LiDAR registration and reconstruction: A range image perspective
Li Fusion of LiDAR 3D points cloud with 2D digital camera image
Fazakas et al. 3D reconstruction system for autonomous robot navigation
Patel et al. DroNeRF: Real-time Multi-agent Drone Pose Optimization for Computing Neural Radiance Fields
Kadiofsky et al. Off-road terrain mapping based on dense hierarchical real-time stereo vision
Xing et al. A 3D dynamic visualization surveillance system
Kolecki Towards the automatic motion recovery using single-view image sequences acquired from bike
Lin et al. An integrated 3D mapping approach based on RGB-D for a multi-robot system
Mutanen Three-dimensional measurement of a lifted load using machine vision
Win Curve and Circle Fitting of 3D Data Acquired by RGB-D Sensor
Li et al. Camera-Specific Simulation Method of Fish-Eye Image
Martins Direct visual odometry and dense large-scale environment mapping from panoramic RGB-D images
Zhuang Indoor Positioning Using Stereo Cameras

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