KR20160048901A - 증강 현실 환경에서 평면의 범위를 결정하기 위한 시스템 및 방법 - Google Patents

증강 현실 환경에서 평면의 범위를 결정하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20160048901A
KR20160048901A KR1020167008050A KR20167008050A KR20160048901A KR 20160048901 A KR20160048901 A KR 20160048901A KR 1020167008050 A KR1020167008050 A KR 1020167008050A KR 20167008050 A KR20167008050 A KR 20167008050A KR 20160048901 A KR20160048901 A KR 20160048901A
Authority
KR
South Korea
Prior art keywords
map
support
occlusion
flat
constructing
Prior art date
Application number
KR1020167008050A
Other languages
English (en)
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 KR20160048901A publication Critical patent/KR20160048901A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • G06T7/0026
    • G06T7/0028
    • G06T7/0042
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/32Determination of transform parameters for the alignment of images, i.e. image registration using correlation-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • 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/10016Video; Image sequence
    • 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/10024Color image
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)

Abstract

평탄한 오브젝트의 표현을 구성하기 위한 방법들, 시스템들, 컴퓨터 판독가능 매체 및 장치들이 제시된다. 일부 실시예들에서, 평탄한 오브젝트의 표현을 구성하기 위한 기술들이 개시된다. 일부 실시예들에 따르면, 평탄한 오브젝트의 표현을 구성하기 위한 방법은, 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하는 단계를 포함할 수 있다. 깊이 이미지는 복수의 깊이 값들을 포함하고 물리적 장면 내 복수의 포인트들에 대응한다. 방법은 평탄한 표면을 식별하는 단계를 더 포함할 수 있으며, 평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정된다. 또한, 방법은 서포트 맵을 구성하는 단계를 포함할 수 있다. 더욱이, 방법은 어클루전 맵을 구성하는 단계를 포함할 수 있고, 어클루전 맵은, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타낸다. 그 후, 방법은 어클루전 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하는 단계를 포함할 수 있다.

Description

증강 현실 환경에서 평면의 범위를 결정하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR DETERMINING THE EXTENT OF A PLANE IN AN AUGMENTED REALITY ENVIRONMENT}
[0001]본 개시물의 양상들은 증강 현실(AR)에 관한 것이다. 보다 구체적으로, 본 개시물의 양상들은 AR 환경 내의 평면의 범위를 결정하기 위해 서포트 및 어클루전 맵들을 구성하는 것에 관한 것이다.
[0002]증강 현실은 컴퓨터 생성 가상 오브젝트들로 증강되는 실세계 환경의 뷰를 제공한다. 일부 예들에서, AR은 물리적 환경에서의 가상 오브젝트들의 중첩을 포함한다.
[0003]RGBD(RGB-Depth) 카메라들은 장면의 3차원적(3D) 지오메트리를 설명하는 포인트 클라우드들을 생성하기 위한 방법을 제공한다. RGBD 카메라들에 의해 캡처된 다수의 깊이 이미지들은 테이블탑 표면 또는 더 큰 룸 환경의 확장형 3D 모델을 생성하기 위해 정렬되고 결합될 수 있다.
[0004]그러나, 많은 애플리케이션들이 장면 표면의 샘플링된 표현보다 더 많은 표현을 필요로 할 수 있다. 예를 들어, 일부 애플리케이션들은 하나의 오브젝트들(예를 들어, 물리적 테이블)에 대응하는 서브셋들로 포인트 클라우드를 세그먼팅할 필요가 있을 수 있다. 모바일 디바이스들 상의 증강 현실 애플리케이션들의 경우, 테이블탑 표면은, 이것이 사용자가 통상적으로 상호작용하는 영역을 정의하기 때문에 장면의 중요 부분일 수 있다. 정의된 영역과의 적절한 상호작용을 위해서, 정의된 영역과 연관된 경계가 요구될 수 있다. 현재 방법들은, 경계가 표면의 진정한(true) 경계인지 또는 레코딩된 데이터의 경계일 뿐인지를 결정하지 못할 수 있다.
[0005]현재 방법은 단지, 테이블탑 표면과 같은 하나의 오브젝트에 대응하는 포인트들을 추출하는 것을 보기만 한다. 현재 방법들은, 경계를 찾을 수 있지만, 오브젝트의 물리적 경계와 재구성의 경계 사이를 결정하지 못한다. 이 구분은 애플리케이션들, 예를 들어, 표면이 재구성의 경계에서 성장할 수 있지만 표면의 물리적 경계들에서는 성장할 수 없다는 것을 알 필요가 있는 게임들의 경우 중요하다.
[0006]따라서, 증강 현실 환경 내에서 오브젝트의 표면의 진정한 경계를 정확하게 결정할 필요가 있다.
[0007]특정 실시예들은 AR 환경 내의 평탄한 오브젝트의 표현을 구성하기 위한 시스템 및 방법을 설명한다.
[0008]일부 실시예들에서, 평탄한 오브젝트의 표현을 구성하기 위한 방법은, 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하는 단계를 포함하고, 깊이 이미지는 복수의 깊이 값들을 포함하고 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 뷰잉 포지션으로부터 물리적 장면 내 복수의 포인트들 중 하나까지의 거리를 나타낸다. 방법은 평탄한 표면을 식별하는 단계를 더 포함하고, 평탄한 표면을 따라 상기 평탄한 오브젝트가 포지셔닝될 것으로 추정된다. 방법은 또한, 서포트 맵을 구성하는 단계를 포함하고, 서포트 맵은 평탄한 오브젝트에 의해 점유되는 평탄한 표면의 부분들 및 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는(possible) 표면들을 나타낸다. 방법은 추가로, 어클루전 맵을 구성하는 단계를 포함하고, 어클루전 맵은, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타낸다. 방법은 또한, 어클루전 맵과 서포트 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하는 단계를 포함한다.
[0009]일부 실시예들에서, 평탄한 오브젝트는 물리적 장면 내 테이블탑이다.
[0010]일부 실시예들에서, 어클루전 맵을 구성하는 단계는, 평탄한 표면을 복수의 셀들로 분할하는 단계, 및 각각의 셀에 대해, 뷰잉 포지션으로부터 연장되고 평탄한 표면에서 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅하는 단계를 포함한다.
[0011]일부 실시예들에서, 서포트 맵을 구성하는 단계는, 평탄한 표면을 복수의 셀들로 분할하는 단계, 및 각각의 셀에 대해, 뷰잉 포지션으로부터 셀까지 또는 셀 위의 공간의 수직 컬럼 내부의 위치까지 연장되는 것과 관련한 깊이 값들을 갖는 포인트들의 수를 카운팅하는 단계를 포함한다.
[0012]일부 실시예들에서, 방법은 어클루전 맵 및 평탄한 오브젝트의 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하는 단계를 더 포함한다. 방법은 추가적으로, 서포트 맵과 평탄한 오브젝트의 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하는 단계를 포함한다. 방법은 또한, 어클루전 그래디언트 맵과 서포트 그래디언트 맵에 기초하여 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 단계를 포함한다.
[0013]일부 실시예들에서, 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 단계는 라인 세그먼트를 서포트 맵으로 투영시키는 단계, 라인 세그먼트를 어클루전 맵으로 투영시키는 단계, 및 투영된 라인 세그먼트가 평탄한 오브젝트의 진정한 에지와 일치하는지 여부를 결정하는 단계를 포함한다.
[0014]일부 실시예들에서, 깊이 이미지가 RGB 깊이 카메라를 이용하여 획득된다.
[0015]일부 실시예들에서, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스는 메모리, 카메라, 및 하나 이상의 프로세서들을 포함한다. 카메라는, 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하도록 구성되고, 깊이 이미지는 복수의 깊이 값들을 포함하며 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 뷰잉 포지션으로부터 물리적 장면 내 복수의 포인트들 중 하나까지의 거리를 나타낸다. 하나 이상의 프로세서들은, 평탄한 표면을 식별하고 ―평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―, 서포트 맵을 구성하고 ―서포트 맵은 평탄한 오브젝트에 의해 점유되는 평탄한 표면의 부분들 및 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타냄―, 어클루전 맵을 구성하고 ―어클루전 맵은, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타냄―, 그리고 어클루전 맵과 서포트 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하도록 구성된다.
[0016]일부 실시예들에서, 평탄한 오브젝트의 표현을 구성하기 위한 컴퓨터 실행가능 명령들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체로서, 컴퓨터 실행가능 명령들은, 실행될 경우, 디바이스 내에 포함된 하나 이상의 컴퓨팅 디바이스들로 하여금, 평탄한 표면을 식별하게 하고 ―평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―, 서포트 맵을 구성하게 하고 ―서포트 맵은 평탄한 오브젝트에 의해 점유되는 평탄한 표면의 부분들과 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타냄―, 어클루전 맵을 구성하게 하고 ―어클루전 맵은, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타냄―, 그리고 어클루전 맵과 서포트 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하게 한다.
[0017]일부 실시예들에서, 평탄한 오브젝트의 표현을 구성하기 위한 장치는, 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하기 위한 수단을 포함하며, 깊이 이미지는 복수의 깊이 값들을 포함하고 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 뷰잉 포지션으로부터 물리적 장면 내 복수의 포인트들 중 하나까지의 거리를 나타낸다. 장치는 또한 평탄한 표면을 식별하기 위한 수단을 포함하고, 평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정된다. 장치는 추가적으로 서포트 맵을 구성하기 위한 수단을 포함하며, 서포트 맵은 평탄한 오브젝트에 의해 점유되는 평탄한 표면의 부분들 및 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타낸다. 장치는 어클루전 맵을 구성하기 위한 수단을 더 포함하며, 어클루전 맵은, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타낸다. 장치는 또한, 어클루전 맵과 서포트 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하기 위한 수단을 포함한다.
[0018]본 개시물의 양상들은 예시로서 설명된다. 첨부 도면들에서, 동일한 참조 번호들은 동일한 엘리먼트들을 나타낸다.
[0019]도 1은 하나 이상의 실시예들을 포함할 수 있는 시스템의 단순화된 다이어그램을 도시한다.
[0020]도 2a는 모바일 디바이스 또는 평탄한 오브젝트의 표현을 구성하도록 구성된 일부 다른 디바이스의 컴포넌트들의 실시예를 도시한다.
[0021]도 2b는 모바일 디바이스의 부분인 컴퓨터 판독가능 저장 매체의 단순화된 다이어그램을 도시한다.
[0022]도 3a는 RGBD 카메라가 3D 포인트들을 이용하여 하나 이상의 이미지들 및/또는 다른 데이터를 캡처할 수 있는 물리적인 장면의 예시적인 도시이다.
[0023]도 3b는 도 3a의 물리적인 장면에서, 서포트 표면의 표현을 추가로 예시하는 도시이다.
[0024]도 4a는 일부 실시예들에 따른 서포트 맵을 도시한다.
[0025]도 4b는 일부 실시예들에 따른 어클루전 맵을 도시한다.
[0026]도 5a는 히트(heat) 맵으로서 렌더링된 서포트 맵의 예이다.
[0027]도 5b는 히트 맵으로서 렌더링된 어클루전 맵의 예이다.
[0028]도 6은 일부 실시예들에 따른, 리파인먼트(refinement) 단계에 의해 컴퓨팅된 컨벡스 헐(convex hull) 및 컨케이브(concave) 윤곽 간의 차를 도시한다.
[0029]도 7은 일부 실시예들에 따른 경계 다각형 라인 세그먼트들(boundary polygon line segments)을 카테고리화하는 방법을 도시한다.
[0030]도 8은 평탄한 오브트의 프리젠테이션을 구성하기 위한 방법의 실시예를 도시한다.
[0031]도 9는 하나 이상의 실시예들이 구현될 수 있는 컴퓨팅 시스템의 예를 도시한다.
[0032]여러 예시적인 실시예들이 이제 본 명세서의 일부를 형성하는 첨부 도면들에 대하여 설명될 것이다. 본 개시물의 하나 이상의 양상들이 구현될 수 있는 특정 실시예들이 이하에 설명되지만, 다른 실시예들이 사용될 수 있고, 다양한 변경들이 개시물의 범위 또는 첨부된 청구항들의 사상으로부터 벗어나지 않고 이루어질 수 있다.
[0033]도 1은 하나 이상의 실시예들을 포함할 수 있는 시스템(10)의 단순화된 개략도를 도시한다.
[0034]본 발명의 실시예들은 AR 환경 내의 평면(예를 들어, 오브젝트의 물리적 경계)의 범위를 결정하기 위한 기술들을 설명할 수 있다. 일부 경우들에서, 기술들은 두 가지의 정보 소스를 사용할 수 있다. 첫째로, 기술들은 RGBD 카메라를 통해 획득된 3D 포인트 측정치들에 의해 지원되는 오브젝트의 가능한 표면 영역들(예를 들어, 테이블 표면 영역)을 찾을 수 있다. 둘째로, 기술들은, 3D 포인트 측정치들을 어클루드할 수 있는 가능한 표면 영역들(예를 들어, 테이블 표면 영역들)을 제거할 수 있다. 정보의 이러한 두 가지 소스를 결합하는 것은 표면의 진정한 범위의 추정과 표면의 진정한 물리적 경계의 결정을 가능하게 할 수 있다.
[0035]포인트 클라우드는 공간에 정렬되는 다수의 RGBD 이미지들로부터 생성될 수 있다. 포인트 클라우드는 좌표계에서의 데이터 포인트들의 세트이고 오브젝트의 외부 표면을 표현하기 위한 것이다. 일부 경우들에서, RGBD의 포지션들 및 배향들이 공통 기준 프레임 내에 알려질 수 있다. 후속적으로, 3D 포인트 클라우드는 개별 RGBD 이미지들의 깊이 맵들 모두를 공통 기준 프레임으로 변환시킴으로써 생성될 수 있다. 공통 기준 프레임에서의 카메라들의 포지션 및 배향을 알게 됨으로써, 시스템이 AR 환경 내의 각각의 3D 포인트에 대한 3D 가시성 정보를 가질 수 있다.
[0036]이제 도 1을 참고하면, AR 시스템(10)이 도시된다. AR 시스템(10)은 디바이스, 예를 들어, AR-이네이블드 모바일 디바이스(12), 및 오브젝트(14)를 포함한다. 이 특정 예에서, 오브젝트(14)는 테이블일 수 있다. 모바일 디바이스(12)는 입력 감지 유닛, 이를 테면, 카메라, 및 디스플레이를 구비한 임의의 컴퓨팅 디바이스일 수 있다. 여기서, 본원에 설명된 기능이 스마트 폰들로 제한되는 것은 아니지만, 모바일 디바이스(12)는 스마트 폰이다. 예를 들어, 모바일 디바이스(12)는 디지털 카메라, 캠코더, 태블릿 컴퓨터, 개인 휴대 정보 단말기, 비디오 게임 콘솔, 헤드-장착형 디스플레이(HMD) 또는 다른 착용형 디스플레이, 프로젝터 디바이스, RGBD 카메라, 깊이 카메라 또는 다른 디바이스일 수 있다. 또한, 모바일 디바이스(12) 대신, 퍼스널 컴퓨터(예를 들어, 데스크탑 컴퓨터)와 같은 디바이스, 또는 다른 비휴대용 디바이스 또는 통상적으로 모바일 디바이스로 라벨링되지 않는 디바이스가 사용될 수 있다. 모바일 디바이스(12)는 실세계의 물리적 환경에서 물리적 오브젝트들의 이미지들을 캡처하기 위한 카메라를 포함한다. 뷰잉 포지션은 하나의 특정 뷰포인트(예를 들어, RGB, 깊이 카메라, SONAR, LASER 스캔) 또는 다수의 뷰포인트들(예를 들어, 깊이 감지가 가능한 스테레오 카메라)로부터 비롯될 수 있다. 추가적으로, 모바일 디바이스(12)는 독립형 RGB 카메라 및 독립형 깊이 카메라와 같은 복수의 카메라들을 포함할 수 있다.
[0037]본원에서 사용된 바와 같이, 포인트 클라우드는, 모바일 디바이스(12)의 카메라에 의한 시야(18)에서 볼 수 있는 물리적인 오브젝트의 적어도 일부에 대응하는 3차원 공간 내 포인트들의 모음이다. 포인트 클라우드는, 예를 들어, 모바일 디바이스(12)의 카메라로부터의 이미지 데이터(후술함)에 기초하여 모바일 디바이스(12)의 프로세서에 의해 수행되는 하나 이상의 기술들에 의해 결정될 수 있다. 모바일 디바이스(12)는 물리적인 환경의 이미지들을 캡처하고 (여기서는, 오브젝트(14)(예를 들어, 테이블)의 이미지들을 캡처하고), 그리고 추가 이미지를, 하나 이상의 가상 오브젝트들로 보충되는 투명 또는 반투명 디스플레이 상에 디스플레이함으로써(여기서는, 3차원 캐릭터(16)가 오브젝트(14)의 이미지 상에 중첩되고 모바일 디바이스(12)의 디스플레이 상에 디스플레이됨) 현실을 증강시키도록 구성된다. 3차원적 캐릭터(16)는 가상 오브젝트의 임의의 형태일 수 있으며, 인간형 캐릭터로 제한되지 않는다. 3차원 캐릭터(16)가 본원에 설명된 바와 같이 오브젝트(14)의 표면에 다양한 위치들로 이동하는 것이 가능할 수 있다. 따라서, AR 시스템(10)이 테이블의 에지를 결정하는 것이 중요하다. 예를 들면, AR 시스템(10)은 테이블 내에 있게 될 가상 오브젝트의 움직임을 제한하기 원할 수 있다.
[0038]이와 같이, 모바일 디바이스(12)는 아래에서 추가로 상세히 기술되는 방법 및 기술들을 이용하여 오브젝트(14)의 표면의 진정한 경계를 결정할 수 있다.
[0039]도 2a는 모바일 디바이스 또는 평탄한 오브젝트의 표현을 구성하도록 구성된 일부 다른 디바이스의 컴포넌트들의 실시예를 도시한다.
[0040]도 2a를 참고하면, 모바일 디바이스(12)(또는 AR 디바이스의 다른 형태)는 센서(20), 센서 프로세서(22), 하나 이상의 카메라(24), 카메라 프로세서(26), 디스플레이(28), 그래픽스 프로세서(30), 터치 센서(32), 터치 센서 프로세서(34), 통신 모듈(36), 프로세서(38), (비 일시적인)메모리(40), 및 컴퓨터 판독 가능 매체(46)를 포함할 수 있다. 프로세서들(22, 26, 30, 34), 통신 모듈(36), 프로세서(38), 메모리(40), 및 컴퓨터 판독 가능 매체(46)는 도시된 바와 같이 버스(42)를 통해 통신가능하게 결합되거나, 또는 직접 결합되거나 또는 다른 방식으로 결합될 수 있다. 프로세서들(22, 26, 30, 34)는 단일 프로세서의 부분들일 수 있거나, 또는 메모리(40) 내에 저장된 소프트웨어 코드의 상이한 부분들에 의해 구현되고 프로세서(38)에 의해 실행될 수 있거나, 또는 별개의 전용 프로세서들, 또는 이들의 조합들(예를 들어, 프로세서들(22, 26, 30, 34) 중 하나 이상이 전용 프로세서 또는 프로세서들이고 다른 것들은 프로세서(38)의 부분임)일 수 있다. 프로세서들(22, 26, 30, 34, 38)은 하나 이상의 범용 프로세서들 및/또는 하나 이상의 특수 목적 프로세서들(이를 테면, 디지털 신호 프로세싱 칩들, 그래픽스 가속 프로세서들 등)일 수 있다. 센서들(20)은, 예를 들어,모바일 디바이스(12)의 배향과 관련하여(모바일 디바이스(12)의 디바이스 좌표 시스템과 관련하여), 다양한 감지 파라미터들의 표시 및/또는 표시들, 예를 들어, 중력 방향의 표시를 제공할 수 있다.
[0041]센서(20) 및 센서 프로세서(22)는 모바일 디바이스(12)의 배향을 결정하도록 구성될 수 있다. 센서(20)는 모바일 디바이스(12)의 배향을 결정하는 데 사용하기 위한 정보를 감지하도록 구성된 배향 센서들이다. 예를 들어, 센서들(20)은 자이로스코프들과 같은 하나 이상의 관성 센서들, 하나 이상의 가속도계들, 관성 측정 유닛(IMU), 및/또는 센서들의 다른 타입 및/또는 다른 타입들을 포함할 수 있다. 센서 프로세서(22)는 모바일 디바이스(12)의 배향을 결정하기 위해서 센서들(20)에 의해 측정된/수집된 데이터를 처리하도록 구성된다. 다른 정보가 또한 계산될 수 있는데, 이를 테면, 모바일 디바이스(12)가 이동하는 거리 및/또는 방향이 계산될 수 있다.
[0042]카메라(들)(24) 및 카메라 프로세서(26)가 시각 정보를 캡처하고 생성하도록 구성된다. 카메라(들)(24)는, 증강 로직을 이용하여 증강될 수 있는 실세계 장면의 이미지들 및/또는 비디오(증강에 따라, 예를 들어, 실세계 표면에 위치된 텍스트 또는 디자인들)를 캡처하도록 구성된다. 카메라는 깊이 카메라, RGB 깊이 카메라, SONAR, LASER 스캔 또는 깊이를 감지할 수 있는 스테레오 카메라를 포함할 수 있다. 깊이 카메라는 깊이를 측정하는 상이한 방법들을 구비할 수 있다. 카메라 프로세서(26)는 증강 로직에 의해 사용될 수 있는 포맷으로 데이터를 변환하기 위해 카메라(들)(26)에 의해 수집되는 데이터를 프로세싱하도록 구성된다. 카메라 프로세서(26)는 디스플레이(28)에 디스플레이할 콘텐츠를 준비하기 위해 카메라(들)(24)로부터 수집되는 데이터에 관하여 다양한 타입들의 이미지 또는 비디오 프로세싱을 수행하도록 구성된다. 뷰잉 포지션은 하나의 특정 뷰 포인트(예를 들어, 깊이 카메라, RGB 깊이 카메라, SONAR, LASER 스캔) 또는 다수의 뷰 포인트들(예를 들어, 깊이 감지가 가능한 스테레오 카메라)로부터 비롯될 수 있다.
[0043]디스플레이(28) 및 그래픽스 프로세서(30)는, 카메라(들)(24)에 의해 캡처되고 카메라 프로세서(26)에 의해 프로세싱된 데이터에 기초하여 시각 정보를 제공하고, 그리고 증강 로직에 의해 생성된 정보에 기초하여 시각 정보를 제공하도록 구성된다. 디스플레이(28)는 터치 센서(32)를 포함하는 터치 스크린 인터페이스일 수 있다. 그래픽스 프로세서(30)는 디스플레이(28) 상에 디스플레이하기 위한 그래픽 데이터를 생성하도록 구성된다. 그래픽스 프로세서(30)는 증강 이미지 또는 비디오 콘텐츠를 디스플레이하기 위해 증강 로직에 의해 제공된 정보를 이용하도록 구성된다.
[0044]터치 센서 프로세서(34)는 사용자가 터치 스크린을 터치하는 시기를 식별하기 위해서 터치 센서(32)에 의해 출력되는 데이터를 프로세싱할 수 있다. 터치 센서 프로세스(34)는 터치 스크린의 멀티-핑거 터치를 비롯한 다양한 터치 제스처들을 식별하도록 구성될 수 있다. 증강 로직은, 증강이 사용자 입력에 대한 응답으로 어떻게 반응해야 하는지를 적어도 부분적으로 결정하기 위해 터치 센서 프로세서(34)에 의해 결정된 제스처 정보를 사용할 수 있다.
[0045]통신 모듈(36)은, 모바일 디바이스(12)로 하여금 하나 이상의 무선 프로토콜들을 이용하여 통신할 수 있도록 구성된다. 통신 모듈(36)은, 모바일 디바이스(12)로 하여금, 무선 액세스 포인트들 및 다른 AR-이네이블드 디바이스들을 비롯한 인근 무선 디바이스들로부터 데이터를 전송하고 수신할 수 있도록 구성된다. 통신 모듈(36)은, 모뎀, 무선 네트워크 카드, 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(예를 들어, 블루투스TM 디바이스 또는 802.11 디바이스와 같은 단거리 무선 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등) 등을 포함할 수 있다. 통신 모듈(36)은, 데이터가 네트워크, 다른 컴퓨터 시스템들, 및/또는 다른 디바이스들과 교환될 수 있게 할 수 있다.
[0046]프로세서(38)는 센서 프로세서(22), 카메라 프로세서(26), 그래픽스 프로세서(30), 또는 터치 센서 프로세서(34) 중 하나 이상의 것을 제어하도록 구성된다. 센서 프로세서(22), 카메라 프로세서(26), 그래픽스 프로세서(30), 또는 터치 센서 프로세서(34) 중 하나 이상의 것이 또한 프로세서(38)에 의해 구현될 수 있다.
[0047]메모리(40)는 AR-이네이블드 모바일 디바이스(12)의 다양한 컴포넌트들에 의해 사용되는 데이터를 저장하기 위한 휘발성 및/또는 영구적, 비일시적인 메모리를 포함한다. 메모리(40)는, 로컬 및/또는 네트워크 액세스가능한 스토리지, 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 고체-상태 저장 장치, 이를 테면, 프로그래밍가능하고, 플래시-업데이트 가능할 수 있는 랜덤 액세스 메모리("RAM") 및/또는 판독-전용 메모리("ROM") 등을 포함할 수 있다. 이러한 스토리지 디바이스들은, 다양한 파일 시스템들, 데이터베이스 구조들 등을 비롯한(이것으로 제한되지 않음) 임의의 적절한 데이터 스토리지를 구현하도록 구성될 수 있다.
[0048]메모리(40)는, 모바일 디바이스(12)에 포함된 프로세서들 중 하나 이상의 것을 위한 프로세서-판독가능, 프로세서-실행가능 소프트웨어 프로그램 코드(44)를 저장한다. 소프트웨어 코드(44)는, (본 설명이, 소프트웨어 또는 프로세서가 기능(들)을 수행하는 것으로 판독할 수 있지만) 아래에 설명되는 기능들을 수행할 프로세서(들)을 제어하기 위한 명령들을 포함한다. 어떤 경우들에서, 증강 로직은 메모리(40)에 저장된 프로세서-실행가능 명령들로 구현될 수 있다. 소프트웨어(44)는, 운영 체제, 디바이스 드라이버들, 실행가능한 라이브러리들, 및/또는 다른 소프트웨어 코드 명령들, 이를 테면, 본원에 기술된 방법들을 구현할 수 있는 하나 이상의 애플리케이션 프로그램들을 포함한다. 예를 들어, 본원에 설명된 하나 이상의 절차들은 프로세서에 의해 실행되는 소프트웨어 코드 명령들로서 구현될 수 있다. 이러한 명령들은 범용 컴퓨터(또는 다른 디바이스)로 하여금 본 명세서에 설명된 하나 이상의 동작들을 수행하게 할 수 있다. 소프트웨어(44)는, 모바일 디바이스(12) 내에 포함된 메모리(40)의 비-착탈식 부분에 저장될 수 있거나 또는 콤팩트 디스크와 같은 착탈식 매체에 저장되고 그리고/또는 설치 패키지로 제공될 수 있다. 명령들은 프로세서에 의해 직접 실행가능한 실행가능 코드의 형태를 취할 수 있거나, 또는 대안으로, 명령들은 소스 및/또는 인스톨가능 코드의 형태를 취할 수 있는데, 이러한 코드의 형태는 이후, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 인스톨레이션 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용하여) 컴파일레이션(compilation) 및/또는 인스톨레이션 시 실행가능한 코드의 형태를 취할 수 있다.
[0049]컴퓨터-판독 가능 저장 매체(46)는, 임의의 자기, 전자, 광학, 또는 다른 컴퓨터 판독 가능 저장 매체일 수 있다. 컴퓨터-판독가능 저장 매체(46)는 아래에서 더 상세히 설명되는 하나 이상의 코드 모듈들을 포함할 수 있다.
[0050]도 2b는, 모바일 디바이스(12)의 일부인 컴퓨터-판독가능 저장 매체(46)의 단순화된 다이어그램을 도시한다. 컴퓨터-판독가능 저장 매체(46)는, 평탄한 표면 식별 모듈(210), 서포트 맵 구성 모듈(220), 어클루전 맵 구성 모듈(230), 및 경계 표현 구성 모듈(240)을 비롯하여, 코드 모듈들을 포함하는 컴퓨터-판독가능 코드를 저장한다.
[0051]평탄한 표면 식별 모듈(210)은, 프로세서(38)에 의해 실행되는 경우, 평탄한 표면을 식별하는 코드를 포함하고, 평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정된다. 평탄한 표면 식별 모듈(210)은 물리적 장면의 캡처 깊이 이미지들에 액세스하기 위해 카메라(24) 및/또는 카메라 프로세서(26)와 인터페이싱할 수 있다. 물리적 장면의 캡처된 깊이 이미지들에 액세스할 경우, 평탄한 표면 식별 모듈(210)은 물리적 장면 내의 평탄한 표면을 식별하기 위해 이미지들을 분석할 수 있다. 일부 실시예들에서, 물리적 장면 내의 평탄한 표면의 식별은, 평탄한 표면 식별 모듈(210)에 의해 결정된 것으로서, 오브젝트 표면이 놓여있을 수 있는 공간 내의 기준 평면에 관한 가설 또는 최선의 추측일 수 있다. 물리적 장면의 이미지들 내의 평탄한 표면은 3D 포인트 측정치들을 이용함으로써 식별될 수 있다. 예를 들어, 기준 법선 방향이 가정될 수 있고, 모든 3D 포인트들이 이 방향으로 투영될 수 있다. 이 방향을 따라서 분포의 피크가 선택될 수 있는데, 이는 이 분포의 피크가 대부분의 3D 포인트들이 놓일 수 있는 포인트이기 때문이다. 일부 실시예들에서, 피크 주위에 간격을 두고 투영되는 모든 3D 포인트들이 선택되고 3D 평면이 이 세트에 견고하게 피팅된다. 그런 다음, 결과적으로 발생된 평면 파라미터들은 테이블탑 표면에 대한 평면 가설을 기술한다.
[0052]서포트 맵 구성 모듈(220)은, 프로세서(38)에 의해 실행될 경우, 평탄한 오브젝트에 의해 점유된 평탄한 표면과 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들의 부분들을 나타내는 서포트 맵을 구성하는 코드를 포함한다. 서포트 맵 구성 모듈(220)은, 식별된 평탄한 표면이 물리적 장면 내에 있는 장소를 결정하기 위해서 평탄한 표면 식별 모듈과 인터페이싱할 수 있다. 서포트 맵 구성 모듈(220)에 의해 생성된 서포트 맵은, 평탄한 표면 식별 모듈(210)에 의해 식별된 3D 평면의 일 부분에 걸쳐 이어지는 정규(regular) 2D 그리드에 의해 정의될 수 있다. 맵은, 각각의 그리드 셀 안으로 들어갈 수 있는 각각의 그리드 셀에 대한 포인트들의 수를 저장하는 값들의 2차원 매트릭스일 수 있다. 구성된 서포트 맵은, 3D 포인트 클라우드 중 어느 포인트들이 가능성 있는 오브젝트 표면 상에 또는 위에 놓이는지를 레코딩할 수 있다. 서포트 맵 구성 모듈(220)은 기준 평면을 따라 각각의 3D 포인트를 그리드 셀 안으로 투영시킬 수 있다. 포인트가 기준 평면 상에 또는 위에 있다면, 특정 셀에 대응하는 서포트 맵 값이 증분될 수 있다. 포인트가 기준 평면 아래에 있다면, 임의의 그리드 셀에 대해 어떠한 변경도 이루어지지 않을 수 있다.
[0053]어클루전 맵 구성 모듈(230)은, 프로세서(38)에 의해 실행될 경우, 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타내는 어클루전 맵을 구성하는 코드를 포함한다. 어클루전 맵은, 2D 그리드 구조 내의 어느 셀들이 깊이 카메라에 의해 보여지는 3D 포인트를 어클루드시킬 수 있는지를 레코드할 수 있다. 어클루전 맵 구성 모듈(230)은, 3D 포인트와 3D 포인트가 보여졌던 카메라 센터 간의 선(ray)을 기준 평면과 교차시킬 수 있다. 이후, 그 교차지점이 어느 셀에 놓이게 될지에 관한 결정이 이루어질 수 있다. 교차지점이 카메라 중앙과 3D 포인트 사이에 있는 경우, 특정 셀에 대응하는 어클루전 맵 값이 증분될 수 있거나, 그렇지 않으면 어떠한 변경도 이루어지지 않을 수 있다.
[0054]경계 표현 구성 모듈(240)은, 프로세서(38)에 의해 실행될 경우, 어클루전 맵과 서포트 맵을 이용하여, 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하는 코드를 포함한다. 어클루전 맵은 어클루전 맵 구성 모듈(230)에 의해 생성되었을 수 있고 서포트 맵은 서포트 맵 구성 모듈(220)에 의해 구성되었을 수 있다. 경계 표현은 오브젝트 표면과 연관된 모든 3D 포인트들 대해 계산될 수 있다. 첫째로, 경계 표현 구성 모듈(240)이, 2D 평탄 포인트들의 세트를 획득하여, 모든 3D 포인트들을 추정된 평면에 투영한다. 다음으로, 경계 표현 구성 모듈(240)은 포인트 세트의 컨벡스 헐을 계산한다. 컨벡스 헐이 세트 포인트에 의해 커버되는 영역을 과대평가할 수 있기 때문에, 이 컨벡스 헐은 2D 평탄 포인트들의 오목한 윤곽을 형성하는 다각형의 에지들을 삽입함으로써 반복적으로 리파이닝된다. 경계 표현의 리파인먼트와 구성이 아래에서 더 상세히 설명된다.
[0055]모바일 디바이스(12)에 대하여 상술된 엘리먼트들 중 하나 이상의 것이 생략될 수 있다. 예를 들어, 통신 모듈(36) 및/또는 터치 센서(32) 및 터치 센서 프로세서(34)가 생략될 수 있다. 또한, 추가 엘리먼트들이 일부 실시예들에 포함될 수 있다. 프로세서들(22, 26, 30, 34) 중 하나 이상의 것이 프로세서(38)와 결합되거나, 또는 프로세서(38)에서 구현될 수 있고, 그리고/또는 프로세서들(22, 26, 30, 34) 중 하나 이상의 것의 일부 또는 전체 기능이 메모리(40)에 저장된 명령들에 의해 구현될 수 있다.
[0056]도 3a는 적-녹-청(RGB)-깊이 RGBD 카메라가 3D 포인트들을 이용하여 하나 이상의 이미지들 및/또는 다른 데이터를 캡처할 수 있는 물리적 장면의 예시적인 도면이다. RGBD 카메라(305)는 일반 환경(315)(예를 들어, 테이블 아래의 지면)에서 3D 포인트들(307)과 오브젝트(310)(예를 들어, 테이블탑) 둘 모두에서 3D 포인트들을 관측할 수 있다. 도 3a에 도시된 바와 같이, 각각의 3D 포인트에 대한 3D 시인성 정보는 3D 포인트(307)와 카메라 센터 사이의 직시선(306)에 기초할 수 있다. 추가적으로,도 3a에 도시된 바와 같이, 직시선(306)은 어클루드되지 않는다.
[0057]도 3b는 도 3a의 물리적 장면의 예시이고, 서포트 표면(320)의 표현을 추가로 도시한다. 어떤 경우들에서, 테이블탑 범위 및 특성들의 추정 시, 3D 포인트들(307)은 테이블 영역의 서포트 부분일 수 있거나 또는 테이블 영역의 부분들에 의해 어클루드될 수 있다.
[0058]다음 단계에서, 시스템은 서포트 표면(320)에 대응하는 기준 평면을 정의할 수 있다. 예를 들어, 서포트 표면(320)은 도 3a 및 도 3b의 테이블탑 표면일 수 있다. 일부 경우들에, 서포트 표면(320)이 기준 법선 방향을 가지며, 서포트 표면(320)의 방향으로 모든 3D 포인트들을 투영시킨다는 것을 가정할 수 있다. 서포트 표면(320)의 방향을 따르는 분포의 피크가 기준 평면이 되도록 선택될 수 있다. 분포의 피크는, 3D 포인트들 대부분이 놓이는 장소일 수 있다. 추가적으로, 피크 주위에 간격을 두고 투영되는 모든 3D 포인트들이 선택되고, 3D 평면이 선택된 3D 포인트들의 세트에 견고하게 피팅된다. 따라서, 결과적으로 발생된 평면 파라미터들이 테이블탑 표면에 대한 평면 가설을 기술할 수 있다.
[0059]도 4a 및 도 4b는, 일부 실시예들에 따른, 기준 평면에 대한 서포트 및 어클루전 정보 둘 모두를 레코딩하는 2개의 맵들을 도시한다. 맵은 서포트 표면(320)(예를 들어, 테이블탑 표면)의 위치에 3D 평면의 부분에 걸쳐 이어지는 정규 2D 그리드에 의해 정의될 수 있다. 맵은, 각각의 그리드 안에 들어가는 각각의 그리드 셀에 대한 포인트들의 수를 저장하는 값들의 2차원 매트릭스일 수 있다. 상술된 바와 같이, 맵들은 서포트 맵 구성 모듈(220)에 의해 구성된 서포트 맵 그리고 어클루전 맵 구성 모듈(230)에 의해 구성된 어클루전 맵일 수 있다.
[0060]도 4a는, 일부 실시예들에 따른 서포트 맵을 도시한다. 서포트 맵은, 가능성 있는 서포트 표면(320)(예를 들어, 테이블 표면) 상에 또는 위에 놓일 수 있는 3D 포인트 클라우드의 포인트들을 기록할 수 있다. 예를 들어, 서포트 표면(320)을 결정하기 위해서, RGBD 카메라(305)가 평면 법선을 따라 각각의 3D 포인트(307)를 그리드 셀(415)로 투영시킬 수 있다. 투영된 포인트(307)가 평면 상에 또는 위에 있다면(예를 들어, 도 4a의 포인트(405)), 시스템은 그 셀에 대응하는 서포트 맵 값을 증분시킬 수 있다. 대안으로, 투영된 포인트가 평면 아래에 있다면(예를 들어, 도 4b의 포인트(410)), 시스템은 투영된 포인트를 무시할 수 있다.
[0061]도 4b는, 일부 실시예들에 따른 어클루전 맵을 도시한다. 어클루전 맵은, 2D 그리드 구조 내 어느 셀들(415)이 카메라(305)에 의해 보여지는 3D 포인트들을 어클루드하는지를 레코딩한다. 어클루드된 3D 포인트들을 결정하기 위해서, 시스템은 각각의 3D 포인트(307)와 카메라(305) 센터 사이의 선을 평면과 교차시킬 수 있다. 그런다음, 교차지점이 있는 셀(415)이 결정될 수 있다. 교차지점이 카메라(305) 센터와 3D 포인트 사이에 있는 경우, 시스템은 결정된 셀(415)에 대응하는 어클루전 맵 값을 증분시킬 수 있다. 대안으로, 교차지점이 3D 포인트(307)와 카메라(305) 센터 사이에 있지 않은 경우, 시스템은 어클루전 맵 값을 증분시키지 않을 수 있다.
[0062]도 4a에 도시된 바와 같이, 3D 포인트들(307)(예를 들어, 포인트(405)) 중 일부는, 테이블 평면 위로 투영되고, 그 셀에 대응하는 서포트 맵 값을 증분시키기 위해 사용될 수 있다. 추가적으로, 도 4b에 도시된 바와 같이, 3D 포인트들(예를 들어, 포인트(410)) 중 일부는 테이블 평면 아래로 투영되고, 그 셀(415)에 대응하는 어클루전 맵 값을 증분시키기 위해 사용될 수 있다. 평면 아래의 3D 포인트들(307)(예를 들어, 포인트(410))에 대한 선들이 평면과 교차되어 어클루전을 결정한다. 추가로, 그리드 셀들(415)의 값들은 각각의 3D 포인트(307)에 대한 서포트 또는 어클루전을 카운팅하기 위해 업데이트된다.
[0063]도 5a 및 도 5b는 일부 실시예들에 따른 서포트 및 어클루전 히트 맵들의 예들을 도시한다.
[0064]도 5a는 히트 맵으로서 렌더링된 서포트 맵의 예이다. 도 5b는 히트 맵으로서 렌더링된 어클루전 맵의 예이다. 이 예에서, 더 밝은 음영(510)은 0으로 작아지는 낮은 값을 나타내는 반면, 더 어두운 음영(520)은 높은 값들을 나타낸다. 도 5a에 도시된 서포트 맵에서, 음영에 기초하여, 시스템은 직사각형 테이블 형상의 부분과 테이블의 상부 상의 일부 오브젝트들을 결정할 수 있다. 추가적으로, 도 5b에 도시된 어클루전 맵은, 다른 측정들을 어클루드할 테이블 에지들 너머에 있는 영역만을 도시한다.
[0065]도 5a 및 도 5b 둘 모두에서, 왼쪽 하단 코너 지역(530)의 경계는, 왼쪽 하단 코너 지역 내 3D 포인트들의 부족에서 기인할 수 있는 충분치 못한 정보를 갖는다.
[0066]테이블 윤곽의 표현을 획득하기 위해, 시스템은 테이블 표면과 연관되었던 모든 3D 포인트들에 대한 다각형 윤곽을 계산할 수 있다. 먼저, 시스템은, 2D 평탄 포인트들의 세트를 획득하여, 모든 3D 포인트들을 추정된 평면으로 투영시킬 수 있다. 그런다음, 시스템은 2D 평탄 포인트들의 세트의 컨벡스 헐을 계산할 수 있다. 일부 경우들에, 컨벡스 헐은 2D 평탄 포인트들의 세트에 의해 커버되는 영역을 과대평가할 수 있다; 따라서, 시스템은, 2D 평탄 포인트들의 세트의 오목한 윤곽을 형성하는 다각형 에지들을 삽입함으로써 컨벡스 헐을 반복적으로 리파인하고 감소시킬 수 있다.
[0067]예를 들어, 컨벡스 헐의 리파인먼트 단계는 차례로 각각의 다각형 세그먼트를 검토할(look at) 수 있다. 시스템은, 2D 포인트 세트 내 모든 포인트들에 대해, 다각형 세그먼트의 2개의 종료 포인트들A, B와 2D 포인트 세트로부터의 제 3 포인트 C와 교차하는 원을 계산할 수 있다. 그런 다음, 최대 반경 및 세그먼트의 반대쪽(opposite side)에 놓이는 센터를 갖는 원을 생성하는 2D 포인트를 결정할 수 있다. 이후, 알파 형상들 이론은 그 원 내에 다른 포인트들이 놓이지 않음을 보장한다. 따라서, 시스템은, 원래의 세그먼트를, A를 C에 그리고 C를 B에 연결하는 2개의 새로운 세그먼트들로 대체할 수 있다. 결과적으로 발생된 리파인된 다각형 윤곽은 이제, 어떠한 2D 포인트도 배제시키지 않고 전보다 더 가깝게 2D 포인트 세트를 허그(hug)할 수 있다.
[0068]도 6은, 일부 실시예들에 따른, 리파인먼트 단계에 의해 계산된 컨벡스 헐(610)(두꺼운 선)과 컨케이브 윤곽(620)(얇은 선) 간의 차를 도시한다. 이 예에서, 입력 2D 포인트 클라우드(630)는 다이아몬드들로 도시된다. 전술한 바와 같이, 결과적으로 발생된 윤곽은 테이블의 현재 재구성의 경계를 기술하는 다각형을 정의할 수 있다.
[0069]재구성의 경계의 어느 부분들이 진정한 오브젝트 경계와 일치하는지를 결정하기 위해서, 시스템은 서포트 맵에 대한 경계와 상술된 단계들에서 구성된 어클루전 맵을 테스트할 수 있다.
[0070]도 7은, 일부 실시예들에 따른, 경계 다각형 라인 세그먼트들을 분류하는 방법을 도시한다. 라인 세그먼트들(예를 들어, 라인 세그먼트들(705, 710))이 맵들(예를 들어, 서포트 맵과 어클루전 맵)로 투영될 수 있다. 2개의 맵들(음영 영역들)의 로컬 그레디언트들은 라인이 진정한 오브젝트 경계인지 여부를 결정한다. 이 예에서, 좌측 지역에서의 라인 세그먼트(710)는 경계에 있지 않는 반면, 하부 지역 내 라인 세그먼트(705)는 경계에 있다. 그래디언트들 둘 다가 존재하고 우측 방향의 포인트이기 때문에, 하부 지역의 라인 세그먼트(705)는 경계에 있다.
[0071]재구성의 경계의 부분들이 진정한 오브젝트 경계와 일치하는지 여부를 결정하기 위해서, 다각형 윤곽의 각각의 라인 세그먼트(예를 들어, 라인 세그먼트(705, 710))가 서포트 맵과 어클루전 맵으로 투영된다. 라인 세그먼트가 진정한 오브젝트 에지와 일치하면, 서포트 맵은 라인 세그먼트들의 내부(715)에 높은 서포트 맵 값(예를 들어, 도 5a의 중간 내지 어두운 음영)과 라인 세그먼트들 외부(720)에 낮은/0의 서포트 맵 값을 가져야 한다. 반대로, 어클루전 맵은, 포인트들이 오브젝트 표면을 통해 보지 못하게 될 수 있기 때문에 라인 세그먼트들 내부(725)에 낮은/0의 어클루전의 맵 값을 가져야 한다. 추가적으로, 어클루전 맵은 라인 세그먼트들 외부(730)에 높은 어클루전 맵 값(예를 들어, 도 5b의 중간 내지 어두운 음영)을 가져야 하는데, 이는 이렇게 하지 않으면 어클루드될 수 있는 측정 포인트들이 존재하기 때문이다.
[0072]기준들 둘 다가 라인 세그먼트들을 따라 서포트 맵 및 어클루전 맵의 그래디언트들을 통합시킴으로써 테스트될 수 있다. 서포트 맵 그래디언트는 안쪽을 포인팅하고 특정 임계치를 초과할 수 있는 한편, 어클루전 맵 그래디언트는 반드시 바깥쪽을 포인팅하고 재차 특정 임계치를 초과해야 한다. 두 기준을 충족하는 경우, 시스템은, 라인 세그먼트가 진정한 오브젝트 경계를 나타낸다는 것을 가정할 수 있다. 임의의 다른 케이스에서, 시스템은 충분한 정보를 수집하지 않을 수 있다; 따라서, 경계가 알려지지 않았고 단지 인공적인 경계가 재구성에 존재한다는 것을 가정할 수 있다.
[0073]도 1, 도 2 및 도 3의 시스템들 및 디바이스들을 이용하여, 다양한 방법들이 수행될 수 있다. 도 8은 평탄한 오브젝트의 표현을 구성하기 위한 방법(800)의 실시예를 도시한다. 방법(800)은 도 1, 도 2a, 도 2b 및 도 3a, 도 3b의 시스템 및/또는 디바이스들에 의해 또는 물리적 환경 분석을 제공하도록 구성된 일부 다른 시스템에 의해 수행될 수 있다. 방법(800)의 단계들을 수행하기 위한 수단은 도 1, 도 2a, 도 2b 및 도 3a, 도 3b의 시스템들의 컴포넌트들의 하나 이상의 인스턴스들을 포함한다.
[0074]단계(810)에서, 시스템(예를 들어, AR 시스템(10), 모바일 디바이스(12))은 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득할 수 있다. 깊이 이미지는 복수의 깊이 값들을 포함하여 물리적 장면 내 복수의 포인트들에 대응할 수 있다. 추가적으로, 각각의 깊이 값은 뷰잉 포지션으로부터 물리적 장면 내의 복수의 포인트들 중 하나까지의 거리를 나타낸다. 뷰잉 포지션은 하나의 특정 뷰포인트(예를 들어, RGB, 깊이 카메라, SONAR, LASER 스캔) 또는 다수의 뷰포인트들(예를 들어, 깊이 감지가 가능한 스테레오 카메라)로부터 비롯될 수 있다. 뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하는 것은, 도 2a의 디바이스(12)의 컴포넌트들(26, 22, 30, 38 및 46)과 관련하여 논의된 프로세스들 중 하나 이상의 것 및 카메라(들)(24)에 의해 수행될 수 있다. 대안으로, 깊이 카메라(305)가 단계(810)를 수행할 수 있다.
[0075]단계(820)에서, 시스템(예를 들어, AR 시스템(10))은 어클루전 맵을 구성할 수 있고, 어클루전 맵은 평탄한 표면을 식별할 수 있으며, 평탄한 표면을 따라 평탄한 오브젝트가 포지셔닝될 것으로 추정된다. 평탄한 표면을 식별하는 것은 도 2a의 디바이스(12)의 컴포넌트들(26, 22, 30, 38, 및 46)과 관련하여 논의된 프로세스들 중 하나 이상의 것 및 카메라(들)(24)에 의해 수행될 수 있다. 대안으로, 깊이 카메라(305)는 단계(810)를 수행할 수 있다.
[0076]단계(830)에서, 시스템(예를 들면, AR 시스템(10))은 서포트 맵을 구성할 수 있다. 서포트 맵은 평탄한 오브젝트에 의해 점유된 평탄한 표면의 부분들 및 그 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타낸다. 예를 들어, 서포트 맵은 도 2a의 디바이스(12)의 컴포넌트들(26, 22, 30, 38 및 46)과 관련하여 논의된 프로세스들 중 하나 이상의 것 및 메모리(40)를 이용하여 구성될 수 있다.
[0077]단계(840)에서, 시스템(예를 들어, AR 시스템(10))은 어클루전 맵을 구성할 수 있고, 어클루전 맵은 평탄한 오브젝트가 누락되어 있는 평탄한 표면의 부분들을 나타낸다. 예를 들어, 어클루전 맵은 도 2a의 디바이스(12)의 컴포넌트들(26, 22, 30 및 38)과 관련하여 논의된 프로세스들 중 하나 이상의 것 및 메모리(40)를 이용하여 구성될 수 있다.
[0078]단계(850)에서, 시스템(예를 들면, AR 시스템(10))은, 어클루전 맵을 이용하여 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성할 수 있다. 예를 들어, 평탄한 오브젝트의 적어도 하나의 경계의 표현은 도 2a의 디바이스(12)의 컴포넌트들(26, 22, 30, 38, 및 46)과 관련하여 논의된 프로세스들 중 하나 이상의 것 및 메모리(40)를 이용하여 구성될 수 있다.
[0079]일부 실시예들에 따르면, 방법(800)은 어클루전 맵 및 평탄한 오브젝트의 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하는 단계를 더 포함할 수 있다. 추가적으로, 방법(800)은 서포트 맵과 평탄한 오브젝트의 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하는 단계를 포함할 수 있다. 추가로, 이 방법은, 어클루전 그래디언트 맵과 서포트 그래디언트 맵에 기초하여 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 단계를 포함할 수 있다.
[0080]또한, 서포트 맵을 구성하는 단계는 평탄한 표면을 복수의 셀들로 분할하는 단계를 포함할 수 있다. 또한, 각각의 셀에 대해, 뷰잉 포지션으로부터 셀까지 또는 셀 위의 공간의 수직 컬럼 내의 위치까지의 연장에 관하여 깊이 값들을 갖는 포인트들의 수를 카운팅한다.
[0081]하나 이상의 어레인지먼트(arrangement)에서, 평탄한 오브젝트는 물리적 장면에서 테이블탑일 수 있다.
[0082]하나 이상의 어레인지먼트에서, 어클루전 맵을 구성하는 단계는 평탄한 표면을 복수의 셀들로 분할하는 단계를 포함할 수 있다. 추가적으로, 각 셀에 대해, 뷰잉 포지션으로부터 연장되고 평탄한 표면에서 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅한다.
[0083]하나 이상의 어레인지먼트에서, 표현을 구성하는 단계는, 라인 세그먼트를 서포트 맵으로 투영하는 단계, 라인 세그먼트를 어클루전 맵으로 투영하는 단계, 및 투영된 라인 세그먼트가 평탄한 오브젝트의 진정한 에지와 일치하는지 여부를 결정하는 단계를 포함할 수 있다.
[0084]도 9는 하나 이상의 실시예들이 실시될 수 있는 컴퓨팅 시스템의 일 예를 도시한다. 도 9에 도시된 바와 같은 컴퓨터 시스템은, 상술된 컴퓨터화된 디바이스들의 일부를 포함할 수 있다. 예를 들어, 컴퓨터 시스템(900)은 텔레비전, 컴퓨팅 디바이스, 서버, 데스크탑, 워크스테이션, 자동차 내의 제어 또는 상호작용 시스템, 태블릿, 넷북 또는 임의의 다른 적절한 컴퓨팅 시스템의 컴포넌트들 중 일부를 나타낼 수 있다. 컴퓨팅 디바이스는 이미지 캡처 디바이스 또는 입력 감지 유닛 및 사용자 출력 디바이스를 지닌 임의의 컴퓨팅 디바이스일 수 있다. 이미지 캡처 디바이스 또는 입력 센서 유닛은 카메라 디바이스일 수 있다. 사용자 출력 디바이스는 디스플레이 유닛일 수 있다. 컴퓨팅 디바이스의 예들은 비디오 게임 콘솔들, 태블릿들, 스마트 폰들 및 임의의 다른 휴대용 디바이스들을 포함하지만, 이것으로 제한되지 않는다. 도 9는, 본원에 설명된 바와 같이, 다양한 다른 실시예들에 의해 제공된 방법들을 수행할 수 있는 컴퓨터 시스템(900)의 일 실시예의 개략적인 도시를 제공하고, 그리고/또는 호스트 컴퓨터 시스템, 원격 키오스크/단말, 포인트-오브-세일 디바이스, 자동차 내의 전화 또는 네비게이션 또는 멀티미디어 인터페이스, 컴퓨팅 디바이스, 셋톱 박스, 테이블 컴퓨터 및/또는 컴퓨터 시스템으로서 기능할 수 있다. 도 9는 다양한 컴포넌트들의 일반화된 예시만을 제공하도록 의도되고, 다양한 컴포넌트들 중 임의의 컴포넌트 또는 컴포넌트들 전부가 적절하게 활용될 수 있다. 그러므로, 도 9는, 개별 시스템 엘리먼트들이 비교적 별개의 방식으로 또는 비교적 더욱 통합된 방식으로 어떻게 구현될 수 있는지를 폭넓게 예시한다. 일부 실시예들에서, 엘리먼트들 컴퓨터 시스템(900)은 도 1의 디바이스(12)의 기능을 구현하기 위해 사용될 수 있다.
[0085]버스(902)를 통해 전기적으로 결합될 수 있는(또는 적절히, 다른 방식으로 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨터 시스템(900)이 도시된다. 하드웨어 엘리먼트들은 하나 이상의 프로세서들(904) ―프로세서들(904)은 하나 이상의 범용 프로세서들 및/또는 하나 이상의 특수-목적 프로세서들(예를 들어, 디지털 신호 프로세싱 칩들, 그래픽스 가속 프로세서들, 및/또는 등)을 포함함(이것으로 제한하지 않음)―; 초음파 또는 다른 사운드들을 검출하도록 구성된 하나 이상의 카메라들, 센서들, 마우스, 키보드, 마이크로폰 및/또는 등을 포함할 수 있는 하나 이상의 입력 디바이스들(908); 및 본 발명의 실시예들에서 사용된 디바이스와 같은 디스플레이 유닛, 프린터 등을 포함(이것으로 제한되지 않음)할 수 있는 하나 이상의 출력 디바이스들(910)을 포함할 수 있다.
[0086]본 발명의 실시예들의 일부 구현들에서, 다양한 입력 디바이스들(908) 및 출력 디바이스들(910)은 디스플레이 디바이스들, 태이블들, 플로어들, 벽들, 및 윈도우 스크린들과 같은 인터페이스들 내부에 임베딩될 수 있다. 추가로, 프로세서들에 결합된 입력 디바이스들(908) 및 출력 디바이스들(910)은 다차원적 추적 시스템들을 형성할 수 있다.
[0087]컴퓨터 시스템(900)은 하나 이상의 비-일시적 스토리지 디바이스들(906)을 더 포함할 수 있고(그리고/또는 비-일시적 스토리지 디바이스들(906)과 통신할 수 있고), 비-일시적 스토리지 디바이스들(906)은 로컬 및/또는 네트워크 액세스 가능 스토리지를 포함(이것으로 제한되지 않음)할 수 있고, 그리고/또는 디스크 드라이브, 드라이브 어레이, 광학 스토리지 디바이스, 고체-상태 스토리지 디바이스, 예를 들어 랜덤 액세스 메모리("RAM"), 및/또는 판독-전용 메모리("ROM")(이는, 프로그래밍 가능한 것, 플래시-업데이트 가능한 것 등일 수 있음))를 포함(이것으로 제한되지 않음할 수 있다. 이러한 스토리지 디바이스들은, 제한 없이 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함하여, 임의의 적절한 데이터 스토리지를 구현하도록 구성될 수 있다.
[0088]또한, 컴퓨터 시스템(900)은 통신 서브시스템(912)을 포함할 수 있고, 통신 서브시스템(912)은 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스, 및/또는 칩셋(예를 들어, 블루투스TM 디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등)등을 포함(이것으로 제한되지 않음)할 수 있다. 통신 서브시스템(912)은, 네트워크, 다른 컴퓨터 시스템들, 및/또는 본원에 설명된 임의의 다른 디바이스들과 데이터가 교환되게 허용할 수 있다. 많은 실시예들에서, 컴퓨터 시스템(900)은 비일시적 작업 메모리(918)를 더 포함할 것이고, 비일시적 작업 메모리(918)는 위에서 설명된 바와 같이 RAM 또는 ROM 디바이스를 포함할 수 있다.
[0089]또한, 컴퓨터 시스템(900)은 작업 메모리(918) 내에 현재 위치되어 있는 것으로서 도시된 소프트웨어 엘리먼트들을 포함할 수 있고, 소프트웨어 엘리먼트들은 운영체제(914), 디바이스 드라이버들, 실행 가능 라이브러리들, 및/또는 다른 코드, 예를 들어 하나 이상의 애플리케이션 프로그램들(916)을 포함하고, 본원에서 설명되는 바와 같이, 애플리케이션 프로그램들(916)은 다양한 실시예들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수 있고, 그리고/또는 다른 실시예들에 의해 제공되는 방법들을 구현하고 그리고/또는 다른 실시예들에 의해 제공되는 시스템들을 구성하도록 설계될 수 있다. 단지 예로서, 위에서 논의된 방법(들)에 대하여 설명된 하나 이상의 프로시저들이 컴퓨터(및/또는 컴퓨터 내의 프로세서)에 의해 실행 가능한 명령들 및/또는 코드로서 구현될 수 있고; 일 양상에서, 그 다음, 설명된 방법들에 따라 하나 이상의 동작들을 수행하도록 범용 컴퓨터(또는 다른 디바이스)를 구성 및/또는 적응시키는데 이러한 코드 및/또는 명령들이 사용될 수 있다.
[0090]이러한 명령들 및/또는 코드의 세트는 컴퓨터-판독가능 저장 매체, 예를 들어 위에서 설명된 비-일시적 스토리지 디바이스(들)(906)에 저장될 수 있다. 몇몇 경우들에서, 저장 매체는 컴퓨터 시스템, 예를 들어 컴퓨터 시스템(900) 내에 통합될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템(예를 들어, 탈착 가능 매체, 예를 들어 콤팩트 디스크)과 별개일 수 있고, 그리고/또는 설치 패키지에 제공될 수 있으며, 따라서 저장 매체는, 명령들/코드가 저장되어 있는 범용 컴퓨터를 프로그래밍, 구성, 및/또는 적응시키는데 사용될 수 있다. 이러한 명령들은 실행 가능 코드(컴퓨터 시스템(900)에 의해 실행 가능함)의 형태를 취할 수 있고, 그리고/또는 소스 및/또는 인스톨가능 코드의 형태를 취할 수 있으며, 소스 및/또는 인스톨가능 코드는, (예를 들어, 다양한 일반적으로 이용 가능한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용한) 컴퓨터 시스템(900) 상의 컴파일레이션 및/또는 설치 시, 이후, 실행 가능 코드의 형태를 취한다.
[0091]실질적인 변형들이 특정 요건들에 따라 이루어질 수 있다. 예를 들어, 맞춤형 하드웨어가 또한 사용될 수 있고, 그리고/또는 특정 엘리먼트들이 하드웨어, 소프트웨어(휴대용 소프트웨어, 예를 들어 애플릿들 등을 포함함), 또는 이 둘 다로 구현될 수 있다. 추가로, 네트워크 입/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들에 대한 연결이 사용될 수 있다. 일부 실시예들에서, 컴퓨터 시스템(900)의 하나 이상의 엘리먼트들이 생략될 수 있거나 또는 도시된 시스템들과는 별개로 구현될 수 있다. 예를 들어, 프로세서(904) 및/또는 다른 엘리먼트들은 입력 디바이스(908)와는 별개로 구현될 수 있다. 일 실시예에서, 프로세서는 별개로 구현되는 하나 이상의 카메라들로부터 이미지들을 수신하도록 구성된다. 일부 실시예들에서, 도 9에 도시된 것들 이외의 엘리먼트들이 컴퓨터 시스템(900)에 포함될 수 있다.
[0092]일부 실시예들은 본 발명의 다양한 실시예들에 따른 방법들을 수행하기 위해 컴퓨터 시스템(예를 들어, 컴퓨터 시스템(900))을 사용할 수 있다. 예를 들어, 작업 메모리(918)에 포함된 하나 이상의 명령들(운영체제(914) 및/또는 다른 코드, 예를 들어 애플리케이션 프로그램(916)에 통합될 수 있음)의 하나 이상의 시퀀스들을 프로세서(904)가 실행하는 것에 대한 응답으로, 설명된 방법들의 프로시저들 중 일부 또는 전부가 컴퓨터 시스템(900)에 의해 수행된다. 이러한 명령들은 다른 컴퓨터-판독가능 매체, 이를 테면, 스토리지 디바이스(들)(906) 중 하나 이상로부터 작업 메모리(918)에 판독될 수 있다. 단지 예로서, 작업 메모리(918)에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(904)로 하여금 본원에 설명된 방법들의 하나 이상의 프로시저들을 수행하게 할 수 있다.
[0093]본원에 사용된 바와 같은 용어들 "머신-판독가능 매체" 및 "컴퓨터-판독가능 매체"는, 머신으로 하여금 특정 방식으로 동작하게 하는 데이터를 제공하는 것에 참여하는 임의의 매체를 지칭한다. 컴퓨터 시스템(900)을 사용하여 구현되는 일부 실시예들에서는, 다양한 컴퓨터-판독가능 매체가 실행을 위해 명령들/코드를 프로세서(들)(904)에 제공하는 데 수반될 수 있고 그리고/또는 이러한 명령들/코드를 (예를 들어, 신호들로서) 저장 및/또는 반송하는데 사용될 수 있다. 많은 구현들에서, 컴퓨터-판독가능 매체는 물리적 및/또는 유형의 저장 매체이다. 이러한 매체는 비-휘발성 매체 또는 휘발성 매체, 및 송신 매체의 형태를 비롯하여(이것으로 제한되지 않음) 많은 형태들을 취할 수 있다. 비-휘발성 매체는, 예를 들어, 광학 및/또는 자기 디스크들, 예를 들어 비-일시적 스토리지 디바이스(들)(906)를 포함한다. 휘발성 매체는 동적 메모리, 이를 테면, 작업 메모리(918)를 포함(이것으로 제한되지 않음)한다. 송신 매체는, 버스(902)를 포함하는 와이어들뿐만 아니라 통신 서브시스템(912)의 다양한 컴포넌트들(및/또는 통신 서브시스템(912)이 다른 디바이스들과 통신하게 제공되는 매체)을 비롯하여, 동축 케이블들, 구리 와이어 및 광섬유를 포함(이것으로 제한되지 않음)한다. 따라서, 송신 매체는 또한 (라디오, 어쿠스틱 및/또는 광파들(waves), 이를 테면, 라디오-파 및 적외선 데이터 통신들 동안 생성된 것들을 포함하지만, 이것으로 제한되지 않는) 파들의 형태를 취할 수 있다.
[0094]물리적 및/또는 유형 컴퓨터-판독가능 매체의 공통 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치카드들, 페이퍼테이프, 홀들의 패턴들을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이후에 설명되는 바와 같은 캐리어 파, 또는 임의의 다른 매체 ―이 임의의 다른 매체로부터, 컴퓨터가 명령들 및/또는 코드를 판독할 수 있음― 를 포함한다.
[0095]실행을 위해 하나 이상의 명령들의 하나 이상의 시퀀스들을 프로세서(들)(904)로 반송할 때 다양한 형태들의 컴퓨터-판독가능 매체가 수반될 수 있다. 단지 예로서, 명령들은 원격 컴퓨터의 자기 디스크 및/또는 광학 디스크 상에서 초기에 반송될 수 있다. 원격 컴퓨터는 명령들을 자신의 동적 메모리에 로딩할 수 있고, 그리고 컴퓨터 시스템(900)에 의해 수신 및/또는 실행되도록 명령들을 신호들로서 송신 매체를 통해 송신할 수 있다. 전자기 신호들, 어쿠스틱 신호들, 광학 신호들 등의 형태일 수 있는 이러한 신호들은, 모두 본 발명의 다양한 실시예들에 따라, 명령들이 인코딩될 수 있는 캐리어 파들의 예들이다.
[0096]통신 서브시스템(912)(및/또는 그것의 컴포넌트들)이 일반적으로 신호들을 수신할 것이고, 그 다음, 버스(902)가 신호들(및/또는 신호들에 의해 반송되는 데이터, 명령들 등)을 작업 메모리(918)로 반송할 수 있으며, 작업 메모리(918)로부터, 프로세서(들)(904)는 명령들을 리트리빙 및 실행한다. 작업 메모리(918)에 의해 수신된 명령들은 선택적으로, 프로세서(들)(904)에 의한 실행 이전 또는 그 이후, 비-일시적 스토리지 디바이스(906)에 저장될 수 있다.
[0097]위에서 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 구성들이 적절히 다양한 프로시저들 또는 컴포넌트들을 생략, 치환, 또는 부가할 수 있다. 예를 들어, 대안적 구성들에서는, 설명된 것과 상이한 순서로 방법들이 수행될 수 있고, 그리고/또는 다양한 스테이지들이 부가, 생략, 및/또는 결합될 수 있다. 또한, 특정 구성들에 대하여 설명된 특징들이 다양한 다른 구성들로 결합될 수 있다. 구성들의 상이한 양상들 및 엘리먼트들이 유사한 방식으로 결합될 수 있다. 또한, 기술이 진보하고, 따라서 엘리먼트들 중 다수는 예들이고, 개시물 또는 청구항들의 범위를 제한하지 않는다.
[0098]예시적 구성들(구현들을 포함함)의 철저한 이해를 제공하기 위해 특정한 세부사항들이 설명에서 제공된다. 그러나, 이러한 특정한 세부사항들 없이도 구성들이 실시될 수 있다. 예를 들어, 구성들을 모호하게 하는 것을 방지하기 위하여, 불필요한 세부사항 없이, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기술들이 도시되었다. 이 설명은 예시적 구성들만을 제공하며, 청구항들의 범위, 적용가능성, 또는 구성들을 제한하지 않는다. 그 보다는, 구성들의 앞선 설명은 기술분야의 당업자들에게, 설명된 기술들을 구현하기 위해 실시가능한(enabling) 설명을 제공할 것이다. 본 개시물의 사상 또는 범위로부터 벗어남 없이, 다양한 변경들이 엘리먼트들의 어레인지먼트 및 기능에서 이루어질 수 있다.
[0100]또한, 흐름도 또는 블록도로서 도시되는 프로세스로서 구성들이 설명될 수 있다. 각각이 순차적 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 부가하여, 동작들의 순서는 재배열될 수 있다. 프로세스는 도면에 포함되지 않은 부가적인 단계들을 가질 수 있다. 또한, 방법들의 예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어들, 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 비-일시적 컴퓨터-판독가능 매체에 저장될 수 있다. 프로세서들은 설명된 작업들을 수행할 수 있다.
[0101]여러 예시적 구성들을 설명했지만, 본 개시물의 사상으로부터 벗어남 없이, 다양한 수정들, 대안적 구성들, 및 대등물들이 사용될 수 있다. 예를 들어, 위의 엘리먼트들은 더 큰 시스템의 컴포넌트들일 수 있으며, 다른 규칙들이 본 발명의 애플리케이션보다 우선할 수 있거나 또는 그렇지 않으면 본 발명의 애플리케이션을 수정할 수 있다. 또한, 위의 엘리먼트들이 고려되기 이전에, 그 동안에, 또는 그 이후에, 다수의 단계들이 착수될 수 있다.

Claims (28)

  1. 평탄한 오브젝트의 표현을 구성하기 위한 방법으로서,
    뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하는 단계 ―상기 깊이 이미지는 복수의 깊이 값들을 포함하며 상기 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 상기 뷰잉 포지션으로부터 상기 물리적 장면 내 상기 복수의 포인트들 중 하나까지의 거리를 나타냄―;
    평탄한 표면을 식별하는 단계 ―상기 평탄한 표면을 따라 상기 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―;
    서포트 맵을 구성하는 단계 ―상기 서포트 맵은 상기 평탄한 오브젝트에 의해 점유되는 상기 평탄한 표면의 부분들 및 상기 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는(possible) 표면들을 나타냄―;
    어클루전 맵을 구성하는 단계 ―상기 어클루전 맵은, 상기 평탄한 오브젝트가 누락되어 있는 상기 평탄한 표면의 부분들을 나타냄―; 및
    상기 어클루전 맵과 상기 서포트 맵을 이용하여, 상기 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하는 단계를 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 평탄한 오브젝트는 상기 물리적 장면 내 테이블탑인, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 어클루전 맵을 구성하는 단계는,
    상기 평탄한 표면을 복수의 셀들로 분할하는 단계; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 연장되고 상기 평탄한 표면에서 상기 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅하는 단계를 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  4. 제 1 항에 있어서,
    상기 서포트 맵을 구성하는 단계는,
    상기 평탄한 표면을 복수의 셀들로 분할하는 단계; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 상기 셀까지 또는 상기 셀 위의 공간의 수직 컬럼 내부의 위치까지 연장되는 것과 관련한 깊이 값들을 갖는 포인트들의 수를 카운팅하는 단계를 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  5. 제 1 항에 있어서,
    상기 어클루전 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하는 단계;
    상기 서포트 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하는 단계; 및
    상기 어클루전 그래디언트 맵과 상기 서포트 그래디언트 맵에 기초하여 상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 단계를 더 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  6. 제 5 항에 있어서,
    상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 단계는,
    라인 세그먼트를 상기 서포트 맵으로 투영시키는 단계;
    상기 라인 세그먼트를 상기 어클루전 맵으로 투영시키는 단계; 및
    투영된 라인 세그먼트가 상기 평탄한 오브젝트의 진정한(true) 에지와 일치하는지 여부를 결정하는 단계를 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  7. 제 1 항에 있어서,
    상기 깊이 이미지는 RGB 깊이 카메라를 이용하여 획득되는, 평탄한 오브젝트의 표현을 구성하기 위한 방법.
  8. 평탄한 오브젝트의 표현을 구성하기 위한 디바이스로서,
    메모리;
    뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하기 위한 카메라 ―상기 깊이 이미지는 복수의 깊이 값들을 포함하며 상기 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 상기 뷰잉 포지션으로부터 상기 물리적 장면 내 상기 복수의 포인트들 중 하나까지의 거리를 나타냄―; 및
    하나 이상의 프로세서들을 포함하고,
    상기 하나 이상의 프로세서들은,
    평탄한 표면을 식별하고 ―상기 평탄한 표면을 따라 상기 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―;
    서포트 맵을 구성하고 ―상기 서포트 맵은 상기 평탄한 오브젝트에 의해 점유되는 상기 평탄한 표면의 부분들 및 상기 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타냄―;
    어클루전 맵을 구성하고 ―상기 어클루전 맵은, 상기 평탄한 오브젝트가 누락되어 있는 상기 평탄한 표면의 부분들을 나타냄―; 그리고
    상기 어클루전 맵과 상기 서포트 맵을 이용하여, 상기 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하도록
    구성되는, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  9. 제 8 항에 있어서,
    상기 평탄한 오브젝트는 상기 물리적 장면 내 테이블탑인, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  10. 제 8 항에 있어서,
    상기 어클루전 맵을 구성하는 것은,
    상기 평탄한 표면을 복수의 셀들로 분할하는 것; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 연장되고 상기 평탄한 표면에서 상기 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅하는 것을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  11. 제 8 항에 있어서,
    상기 서포트 맵을 구성하는 것은,
    상기 평탄한 표면을 복수의 셀들로 분할하는 것; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 상기 셀까지 또는 상기 셀 위의 공간의 수직 컬럼 내부의 위치까지 연장되는 것과 관련한 깊이 값들을 갖는 포인트들의 수를 카운팅하는 것을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  12. 제 8 항에 있어서,
    상기 하나 이상의 프로세서들은,
    상기 어클루전 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하고;
    상기 서포트 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하고; 그리고
    상기 어클루전 그래디언트 맵과 상기 서포트 그래디언트 맵에 기초하여 상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하도록 구성되는, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  13. 제 12 항에 있어서,
    상기 평탄한 오브젝트의 경계 및 연관된 세그먼트를 분류하는 것은,
    라인 세그먼트를 상기 서포트 맵으로 투영시키는 것;
    상기 라인 세그먼트를 상기 어클루전 맵으로 투영시키는 것; 및
    상기 투영된 라인 세그먼트가 상기 평탄한 오브젝트의 진정한 에지와 일치하는지 여부를 결정하는 것을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  14. 제 8 항에 있어서,
    상기 카메라는 RGB 깊이 카메라인, 평탄한 오브젝트의 표현을 구성하기 위한 디바이스.
  15. 평탄한 오브젝트의 표현을 구성하기 위한 컴퓨터 실행가능 명령들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 실행가능 명령들은, 실행될 경우, 디바이스 내에 포함된 하나 이상의 컴퓨팅 디바이스들로 하여금,
    뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하게 하고 ―상기 깊이 이미지는 복수의 깊이 값들을 포함하며 상기 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 상기 뷰잉 포지션으로부터 상기 물리적 장면 내 상기 복수의 포인트들 중 하나까지의 거리를 나타냄―;
    평탄한 표면을 식별하게 하고 ―상기 평탄한 표면을 따라 상기 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―;
    서포트 맵을 구성하게 하고 ―상기 서포트 맵은 상기 평탄한 오브젝트에 의해 점유되는 상기 평탄한 표면의 부분들 및 상기 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타냄―;
    어클루전 맵을 구성하게 하고 ―상기 어클루전 맵은, 상기 평탄한 오브젝트가 누락되어 있는 상기 평탄한 표면의 부분들을 나타냄―; 그리고
    상기 어클루전 맵과 상기 서포트 맵을 이용하여, 상기 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하게 하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  16. 제 15 항에 있어서,
    상기 평탄한 오브젝트는 상기 물리적 장면 내 테이블탑인, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  17. 제 15 항에 있어서,
    상기 어클루전 맵을 구성하는 것은,
    상기 평탄한 표면을 복수의 셀들로 분할하는 것; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 연장되고 상기 평탄한 표면에서 상기 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅하는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  18. 제 15 항에 있어서,
    상기 서포트 맵을 구성하는 것은,
    상기 평탄한 표면을 복수의 셀들로 분할하는 것; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 상기 셀까지 또는 상기 셀 위의 공간의 수직 컬럼 내부의 위치까지 연장되는 것과 관련한 깊이 값들을 갖는 포인트들의 수를 카운팅하는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  19. 제 15 항에 있어서,
    상기 컴퓨터 실행가능 명령들은, 실행될 경우,
    상기 디바이스 내에 포함된 하나 이상의 컴퓨팅 디바이스들로 하여금, 추가로,
    상기 어클루전 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하게 하고;
    상기 서포트 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하게 하고; 그리고
    상기 어클루전 그래디언트 맵과 상기 서포트 그래디언트 맵에 기초하여 상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하게 하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  20. 제 19 항에 있어서,
    상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 것은,
    라인 세그먼트를 상기 서포트 맵으로 투영시키는 것;
    상기 라인 세그먼트를 상기 어클루전 맵으로 투영시키는 것; 및
    투영된 라인 세그먼트가 상기 평탄한 오브젝트의 진정한 에지와 일치하는지 여부를 결정하는 것을 포함하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  21. 제 15 항에 있어서,
    상기 깊이 이미지는 RGB 깊이 카메라를 이용하여 획득되는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  22. 평탄한 오브젝트의 표현을 구성하기 위한 장치로서,
    뷰잉 포지션으로부터 캡처된 것으로서 물리적 장면의 깊이 이미지를 획득하기 위한 수단 ―상기 깊이 이미지는 복수의 깊이 값들을 포함하고 상기 물리적 장면 내 복수의 포인트들에 대응하고, 각각의 깊이 값은 상기 뷰잉 포지션으로부터 상기 물리적 장면 내 상기 복수의 포인트들 중 하나까지의 거리를 나타냄―;
    평탄한 표면을 식별하기 위한 수단 ―상기 평탄한 표면을 따라 상기 평탄한 오브젝트가 포지셔닝될 것으로 추정됨―;
    서포트 맵을 구성하기 위한 수단 ―상기 서포트 맵은 상기 평탄한 오브젝트에 의해 점유되는 상기 평탄한 표면의 부분들 및 상기 평탄한 오브젝트의 상부에 놓인 오브젝트들의 가능성 있는 표면들을 나타냄―;
    어클루전 맵을 구성하기 위한 수단 ―상기 어클루전 맵은, 상기 평탄한 오브젝트가 누락되어 있는 상기 평탄한 표면의 부분들을 나타냄―; 및
    상기 어클루전 맵과 상기 서포트 맵을 이용하여, 상기 평탄한 오브젝트의 적어도 하나의 경계의 표현을 구성하기 위한 수단을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  23. 제 22 항에 있어서,
    상기 평탄한 오브젝트는 상기 물리적 장면 내 테이블탑인, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  24. 제 22 항에 있어서,
    상기 어클루전 맵을 구성하기 위한 수단은,
    상기 평탄한 표면을 복수의 셀들로 분할하기 위한 수단; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 연장되고 상기 평탄한 표면에서 상기 셀을 가로지르기에 충분히 큰 깊이 값들을 갖는 포인트들의 수를 카운팅하기 위한 수단을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  25. 제 22 항에 있어서,
    상기 서포트 맵을 구성하기 위한 수단은,
    상기 평탄한 표면을 복수의 셀들로 분할하기 위한 수단; 및
    각각의 셀에 대해, 상기 뷰잉 포지션으로부터 상기 셀까지 또는 상기 셀 위의 공간의 수직 컬럼 내부의 위치까지 연장되는 것과 관련한 깊이 값들을 갖는 포인트들의 수를 카운팅하기 위한 수단을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  26. 제 22 항에 있어서,
    상기 어클루전 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 어클루전 그래디언트 맵을 구성하기 위한 수단;
    상기 서포트 맵 및 상기 평탄한 오브젝트의 상기 적어도 하나의 경계에 기초하여 서포트 그래디언트 맵을 구성하기 위한 수단; 및
    상기 어클루전 그래디언트 맵과 상기 서포트 그래디언트 맵에 기초하여 상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하기 위한 수단을 더 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  27. 제 26 항에 있어서,
    상기 평탄한 오브젝트의 경계와 연관된 세그먼트를 분류하는 것은
    라인 세그먼트를 상기 서포트 맵으로 투영시키는 것;
    상기 라인 세그먼트를 상기 어클루전 맵으로 투영시키는 것; 및
    투영된 라인 세그먼트가 상기 평탄한 오브젝트의 진정한 에지와 일치하는지 여부를 결정하는 것을 포함하는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
  28. 제 22 항에 있어서,
    상기 깊이 이미지는 RGB 깊이 카메라를 이용하여 획득되는, 평탄한 오브젝트의 표현을 구성하기 위한 장치.
KR1020167008050A 2013-08-30 2014-08-20 증강 현실 환경에서 평면의 범위를 결정하기 위한 시스템 및 방법 KR20160048901A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361872436P 2013-08-30 2013-08-30
US61/872,436 2013-08-30
US14/268,721 US9514574B2 (en) 2013-08-30 2014-05-02 System and method for determining the extent of a plane in an augmented reality environment
US14/268,721 2014-05-02
PCT/US2014/051955 WO2015031139A1 (en) 2013-08-30 2014-08-20 System and method for determining the extent of a plane in an augmented reality environment

Publications (1)

Publication Number Publication Date
KR20160048901A true KR20160048901A (ko) 2016-05-04

Family

ID=52582548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167008050A KR20160048901A (ko) 2013-08-30 2014-08-20 증강 현실 환경에서 평면의 범위를 결정하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US9514574B2 (ko)
EP (1) EP3039655B1 (ko)
JP (1) JP6203406B2 (ko)
KR (1) KR20160048901A (ko)
CN (1) CN105493154B (ko)
WO (1) WO2015031139A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200022612A (ko) 2018-08-23 2020-03-04 현대자동차주식회사 가솔린 egr 시스템의 밸브개방 제어장치 및 방법
KR20210157601A (ko) 2020-06-22 2021-12-29 현대자동차주식회사 결빙 개선을 위한 lp-egr 시스템의 제어장치 및 방법

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304582B1 (en) * 2013-12-19 2016-04-05 Amazon Technologies, Inc. Object-based color detection and correction
US10664975B2 (en) * 2014-11-18 2020-05-26 Seiko Epson Corporation Image processing apparatus, control method for image processing apparatus, and computer program for generating a virtual image corresponding to a moving target
JP2017007033A (ja) * 2015-06-22 2017-01-12 シャープ株式会社 ロボット
JP6602096B2 (ja) * 2015-08-18 2019-11-06 株式会社明和eテック 欠陥検出装置
US10088736B2 (en) 2015-09-24 2018-10-02 Amazon Technologies, Inc. Unmanned aerial vehicle descent
WO2018005359A1 (en) 2016-06-27 2018-01-04 Robert Bosch Gmbh Systems and methods for dynamic occlusion handling
US10565786B1 (en) * 2016-06-30 2020-02-18 Google Llc Sensor placement interface
IL265739B (en) * 2016-10-05 2022-08-01 Magic Leap Inc Surface modeling systems and methods
CN108629800A (zh) * 2017-03-20 2018-10-09 北京三星通信技术研究有限公司 平面确定方法及增强现实显示信息的显示方法、相应装置
DK180470B1 (en) 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments
US10402646B2 (en) 2017-09-21 2019-09-03 Amazon Technologies, Inc. Object detection and avoidance for aerial vehicles
EP3468182A1 (en) * 2017-10-06 2019-04-10 InterDigital VC Holdings, Inc. A method and apparatus for encoding a point cloud representing three-dimensional objects
KR102509823B1 (ko) * 2017-12-27 2023-03-14 삼성전자주식회사 그리드 기반의 평면 추정 방법 및 장치
DK201870346A1 (en) 2018-01-24 2019-09-12 Apple Inc. Devices, Methods, and Graphical User Interfaces for System-Wide Behavior for 3D Models
US11126257B2 (en) * 2018-04-17 2021-09-21 Toyota Research Institute, Inc. System and method for detecting human gaze and gesture in unconstrained environments
CN110070600B (zh) * 2018-11-02 2023-09-15 北京微播视界科技有限公司 三维模型的生成方法、装置、硬件装置
CN109472873B (zh) * 2018-11-02 2023-09-19 北京微播视界科技有限公司 三维模型的生成方法、装置、硬件装置
WO2020121483A1 (ja) 2018-12-13 2020-06-18 マクセル株式会社 表示端末、表示制御システムおよび表示制御方法
JP2020148712A (ja) * 2019-03-15 2020-09-17 東芝インフォメーションシステムズ株式会社 測距システム、測距装置及び配置方法
US11030474B1 (en) * 2019-05-28 2021-06-08 Apple Inc. Planar region boundaries based on intersection
JP2021033572A (ja) * 2019-08-22 2021-03-01 株式会社豊田自動織機 画像データ収集装置及び画像データ仕分け方法
WO2021086355A1 (en) * 2019-10-30 2021-05-06 Hewlett-Packard Development Company, L.P. Camera pose determinations with depth
JP7366797B2 (ja) * 2020-02-19 2023-10-23 株式会社Ihiインフラシステム コンクリート床版の平坦度計測装置
CN111899293B (zh) * 2020-09-29 2021-01-08 成都索贝数码科技股份有限公司 Ar应用中的虚实遮挡处理方法
US11960009B2 (en) * 2020-12-30 2024-04-16 Zoox, Inc. Object contour determination
US12030522B2 (en) 2020-12-30 2024-07-09 Zoox, Inc. Collision avoidance using an object contour
US11972524B2 (en) * 2021-03-30 2024-04-30 Hcl Technologies Limited Method and system for generating tightest revolve envelope for computer-aided design (CAD) model

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6420698B1 (en) 1997-04-24 2002-07-16 Cyra Technologies, Inc. Integrated system for quickly and accurately imaging and modeling three-dimensional objects
US7509241B2 (en) 2001-07-06 2009-03-24 Sarnoff Corporation Method and apparatus for automatically generating a site model
EP1694821B1 (en) 2003-12-11 2017-07-05 Strider Labs, Inc. Probable reconstruction of surfaces in occluded regions by computed symmetry
US8050491B2 (en) * 2003-12-17 2011-11-01 United Technologies Corporation CAD modeling system and method
JP2006065608A (ja) * 2004-08-27 2006-03-09 Fuji Xerox Co Ltd 3次元モデル生成装置および方法
JP2006323608A (ja) * 2005-05-18 2006-11-30 Kozo Keikaku Engineering Inc 立体構造物群モデル作成装置、立体構造物群モデル作成方法及び立体モデル作成システム
WO2010049850A1 (en) 2008-10-28 2010-05-06 Koninklijke Philips Electronics N.V. Generation of occlusion data for image properties
US8933925B2 (en) 2009-06-15 2015-01-13 Microsoft Corporation Piecewise planar reconstruction of three-dimensional scenes
KR101686169B1 (ko) * 2010-02-09 2016-12-14 삼성전자주식회사 옥트리 기반의 3차원 맵 생성 장치 및 방법
CN102509342A (zh) * 2011-09-22 2012-06-20 北京航空航天大学 一种共享增强现实场景中协同式虚实遮挡处理方法
US9092657B2 (en) * 2013-03-13 2015-07-28 Microsoft Technology Licensing, Llc Depth image processing

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200022612A (ko) 2018-08-23 2020-03-04 현대자동차주식회사 가솔린 egr 시스템의 밸브개방 제어장치 및 방법
US10724453B2 (en) 2018-08-23 2020-07-28 Hyundai Motor Company Valve opening control apparatus and method of gasoline EGR system
KR20210157601A (ko) 2020-06-22 2021-12-29 현대자동차주식회사 결빙 개선을 위한 lp-egr 시스템의 제어장치 및 방법

Also Published As

Publication number Publication date
CN105493154A (zh) 2016-04-13
EP3039655B1 (en) 2020-04-29
JP2016534466A (ja) 2016-11-04
CN105493154B (zh) 2019-05-31
EP3039655A1 (en) 2016-07-06
US20150062117A1 (en) 2015-03-05
JP6203406B2 (ja) 2017-09-27
WO2015031139A1 (en) 2015-03-05
US9514574B2 (en) 2016-12-06

Similar Documents

Publication Publication Date Title
US9514574B2 (en) System and method for determining the extent of a plane in an augmented reality environment
JP6423435B2 (ja) 物理的光景を表すための方法および装置
EP2915140B1 (en) Fast initialization for monocular visual slam
US9842417B2 (en) Computing device and method for simplifying point cloud of object
US20150123968A1 (en) Occlusion render mechanism for point clouds
CN111242908B (zh) 一种平面检测方法及装置、平面跟踪方法及装置
WO2017142654A1 (en) 3-dimensional scene analysis for augmented reality operations
KR20180008221A (ko) 영상을 획득하는 방법, 디바이스 및 기록매체
US20150146971A1 (en) Mesh reconstruction from heterogeneous sources of data
CN107646109B (zh) 管理电子设备上的环境映射的特征数据
AU2013401486A1 (en) Method for representing points of interest in a view of a real environment on a mobile device and mobile device therefor
US20200074672A1 (en) Determining a pose of an object from rgb-d images
EP2830022A2 (en) Information processing apparatus, and displaying method
US10142608B2 (en) Electronic apparatus and method for processing three-dimensional information using image
KR20160027862A (ko) 이미지 데이터를 처리하는 방법과 이를 지원하는 전자 장치
WO2021114773A1 (en) Target detection method, device, terminal device, and medium
US20180262713A1 (en) Dynamically modeling an object in an environment from different perspectives
US9595125B2 (en) Expanding a digital representation of a physical plane
US10748000B2 (en) Method, electronic device, and recording medium for notifying of surrounding situation information
US20150103080A1 (en) Computing device and method for simulating point clouds
JP2019219248A (ja) 点群処理装置、点群処理方法およびプログラム
US20180108173A1 (en) Method for improving occluded edge quality in augmented reality based on depth camera
CN114359382A (zh) 基于深度学习的合作目标靶球检测方法及相关装置
KR101939530B1 (ko) 지형정보 인식을 기반으로 증강현실 오브젝트를 표시하는 방법 및 그 장치
US11941818B1 (en) Edge locator

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination