KR101637871B1 - 단일 이미지로부터 깊이를 추정하기 - Google Patents

단일 이미지로부터 깊이를 추정하기 Download PDF

Info

Publication number
KR101637871B1
KR101637871B1 KR1020167009451A KR20167009451A KR101637871B1 KR 101637871 B1 KR101637871 B1 KR 101637871B1 KR 1020167009451 A KR1020167009451 A KR 1020167009451A KR 20167009451 A KR20167009451 A KR 20167009451A KR 101637871 B1 KR101637871 B1 KR 101637871B1
Authority
KR
South Korea
Prior art keywords
depth
query image
image
descriptor
depth map
Prior art date
Application number
KR1020167009451A
Other languages
English (en)
Other versions
KR20160045911A (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 KR20160045911A publication Critical patent/KR20160045911A/ko
Application granted granted Critical
Publication of KR101637871B1 publication Critical patent/KR101637871B1/ko

Links

Images

Classifications

    • G06F17/30277
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/53Querying
    • G06F16/532Query formulation, e.g. graphical querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5838Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/583Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • G06F16/5862Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using texture
    • G06F17/3025
    • G06K9/00208
    • G06T7/0051
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Abstract

훈련 단계 중에, 머신은 참조 이미지들을 대응하는 깊이 정보와 함께 액세스한다. 머신은 시각적 서술자 및 대응하는 깊이 서술자를 이 정보로부터 계산한다. 그리고 머신은 이 시각적 서술자를 그것의 대응하는 깊이 서술자와 상관시키는 맵핑을 생성한다. 훈련 단계 후에, 머신은 깊이 정보가 결여된 단일 쿼리 이미지에 기반하여 깊이 추정을 수행할 수 있다. 머신은 단일 쿼리 이미지로부터 하나 이상의 시각적 서술자를 계산하고 생성된 맵핑으로부터 각각의 시각적 서술자에 대한 대응하는 깊이 서술자를 획득할 수 있다. 획득된 깊이 서술자에 기반하여, 머신은 제출된 단일 쿼리 이미지에 대응하는 깊이 정보를 생성한다.

Description

단일 이미지로부터 깊이를 추정하기{ESTIMATING DEPTH FROM A SINGLE IMAGE}
관련 출원
이 국제 출원은 2014년 5월 27일 출원된 미국 특허 출원 제14/288,233호(대리인 일람 번호 2043.E73US1) 및 2013년 9월 5일 출원된 미국 임시 출원 제61/874,096호(대리인 일람 번호 2043.E73PRV)의 우선권 이익을 주장하는데, 그 출원들은 전체로서 참조에 의해 본 문서에 포함된다.
기술 분야
본 문서에 개시된 대상(subject matter)은 일반적으로 이미지의 처리에 관련된다. 특히, 본 개시는 이미지 처리 및 이미지 처리로부터 획득된 이미지 데이터의 사용을 수월하게 하는 시스템 및 방법을 다룬다.
이미지는, 특히 이미지를 보는 사용자의 시점으로부터 또는 전자 상거래(electronic commerce)("이-커머스"(e-commerce))를 가능하게 하기 위해, 더욱 효율적으로 또는 텍스트(text)로써는 가능하지 않은 방식으로 정보를 전달하는 데에 사용될 수 있다. 그러나, 그 안에 포함된 풍부한 정보에 기반하여 이미지를 사용하기 위해서, 이미지 처리가 수행되어 이미지의 속성을 추출하거나 식별하거나 혹은 인식한다. 일단 추출되면, 이미지 데이터는 다양한 응용에서 사용될 수 있다. 특정한 응용에 따라, 어떤 유형의 이미지 처리가 다른 것에 우선하여 구현될 수 있다.
첨부된 도면의 그림에서 한정이 아니고 예로서 몇몇 실시예가 보여진다.
도 1은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하는 데에 적합한 네트워크 환경(network environment)을 보여주는 네트워크 다이어그램(network diagram)이다.
도 2는 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하는 데에 적합한 이미지 처리 머신(image processing machine)의 컴포넌트를 보여주는 블록 다이어그램(block diagram)이다.
도 3은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하기 위해 이미지 처리 머신을 활용하는 작업흐름(workflow)을 보여주는 블록 다이어그램이다.
도 4 내지 도 6은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하는 방법을 수행하는 중의 이미지 처리 머신의 동작을 보여주는 흐름도이다.
도 7은 몇몇 예시적 실시예에 따라, 머신 판독가능 매체(machine-readable medium)으로부터 명령어를 판독하고 본 문서에서 논의된 방법론 중 임의의 하나 이상을 수행할 수 있는 머신(machine)의 컴포넌트를 보여주는 블록 다이어그램이다.
예시적 방법 및 시스템은 단일 이미지로부터 깊이를 추정하는 것으로 지향된다. 예들은 가능한 변화를 표상할 뿐이다. 명시적으로 달리 언급되지 않는 한, 컴포넌트 및 기능은 선택적이며 조합되거나 세분될 수 있고, 동작은 순차가 달라지거나 조합되거나 세분될 수 있다. 이하의 설명에서, 설명의 목적으로, 예시적 실시예의 철저한 이해를 제공하기 위해 다수의 구체적인 세부사항이 개진된다. 그러나, 본 대상은 이들 구체적인 세부사항 없이 실시될 수 있음은 당업자에게 명백할 것이다.
머신은 단일 이미지로부터 깊이 정보를 추정하는 것을 포함하는 이미지 처리 작업을 수행하도록 (예를 들어, 하드웨어, 소프트웨어, 또는 양자 모두에 의해) 구성될 수 있다. 그러한 머신은 그러한 이미지 처리 작업을 수행하기 위한 시스템의 전부 또는 일부를 형성할 수 있다.
훈련 단계(training phase) 동안, 머신은 이미지의 참조 세트를 깊이 정보와 함께 저장하는 참조 데이터베이스(reference database)(예를 들어, 훈련 데이터베이스(training database))를 액세스한다. 이 액세스된 정보에 기반하여, 머신은 이미지 내에 (예를 들어, 컬러 픽셀 데이터(color pixel data)로부터) 그리고 깊이 정보 내에 표현된 특징의 서술자(descriptor)를 계산한다. 그러한 서술자는 이들 특징을 포함하는 이미지 부분 또는 깊이 맵 부분의 매우 압축된 버전으로 간주될 수 있다. 특히, 머신은 (예를 들어, 참조 이미지 내의 컬러 픽셀로부터) 시각적 서술자를 계산하고 그것의 대응하는 깊이 서술자를 (예를 들어, 대응하는 깊이 정보로부터) 계산한다. 그리고 머신은 이들 시각적 서술자를 이의 대응하는 깊이 서술자들과 상관시키는(correlate) 데이터 구조(예를 들어, 메모리 또는 다른 머신 판독가능 매체 내에 저장된 매트릭스(matrix))를 생성한다. 이 데이터 구조의 생성은 시각적 서술자들의 사전(dictionary)에서 깊이 서술자들의 대응하는 사전으로, 또는 그 반대로 변환하기 위한 도메인 교차 맵(cross-domain map)을 구축하는(building) 것으로 지칭될 수 있다.
훈련 단계 후, 머신이 깊이 정보가 결여된 단일 이미지(예를 들어, 쿼리 이미지(query image))에 기반하여 깊이 추정을 수행하도록 구성된 훈련후 단계(post-training phase)(예를 들어, 사용 단계(usage phase) 또는 런타임 단계(run-time phase))에서 머신이 동작될 수 있다. 특히, 머신은 (예를 들어, 깊이 정보에 대한 쿼리 내에 또는 깊이 정보를 추정하기 위한 요청 내에 제출된(submitted)) 단일 이미지를 분석하고 (예를 들어, 제출된 단일 이미지 내의 컬러 픽셀로부터) 하나 이상의 시각적 서술자를 계산할 수 있다. 그리고 머신은 이전에 생성된 데이터 구조(예를 들어, 매트릭스)를 액세스함으로써 각각의 시각적 서술자를 위한 대응하는 깊이 서술자를 획득할 수 있다. 데이터 구조로부터 획득된 하나 이상의 깊이 서술자에 기반하여, 머신은 제출된 단일 이미지에 대응하는 깊이 정보를 (예를 들어, 계산, 추정 또는 양자 모두에 의해) 생성할 수 있다.
쿼리(query) 또는 요청에 응답하여 머신은 이 깊이 정보를 (예를 들어, 깊이 맵 또는 깊이 이미지로서) 제공할 수 있다. 이후에, 머신은 이 깊이 정보를 임의의 머신 또는 소프트웨어 애플리케이션(예를 들어, 배송 애플리케이션(shipping application), 시각화 애플리케이션(visualization application), 또는 이의 임의의 적합한 조합)에 제공할 수 있다.
훈련 단계 동안, 참조 데이터베이스는 픽셀을 포함하는 2차원 이미지인 컬러 이미지(예를 들어, 삼자극(tristimulus) 이미지)를 저장할 수 있고, 이들 픽셀은 픽셀당 3개의 컬러 값(예를 들어, 적색-녹색-청색(Red-Green-Blue: RGB) 이미지 내의 적색 값, 녹색 값 및 청색 값과 같은 3개의 삼자극 값)에 의해 컬러 공간(color space) 내에 정의될 수 있다. 몇몇 예시적 실시예에서, 컬러 이미지 중 하나 이상은 픽셀당 4개의 컬러 값(예를 들어, 청록색-자홍색-황색-흑색(Cyan-Magenta-Yellow-Black: CMYK) 이미지 내의 청록색 값, 자홍색 값, 황색 값 및 흑색 값)에 의해 정의된 픽셀을 가진다. 다른 예시적 실시예에서, 각 픽셀을 위한 네 번째 컬러 값은 투명도 값(transparency value)(예를 들어, 적색-녹색-청색-알파(Red-Green-Blue-Alpha: RGBA) 내의 알파 값)이다. 어느 경우든, 컬러 이미지는 2차원 이미지 또는 다른 어레이인 대응하는 깊이 맵(예를 들어, 깊이 이미지)과 함께 참조 데이터베이스 내에 저장될 수 있다. 이들 깊이 맵 각각은 대응하는 컬러 이미지 내의 각 픽셀을 위한 깊이 (D) 값을 포함할 수 있다. 다양한 예시적 실시예에 따르면, 컬러 정보는 밝기 정보(예를 들어, 루마(luma) (Y) 값)를 포함하고, 밝기 정보는 다수의 컬러 값(예를 들어, 적색-녹색-청색(Red-Green-Blue: RGB) 픽셀 내의 적색 값, 녹색 값 및 청색 값)에 의해 집합적으로 정의될 수 있고 단일 컬러 값(예를 들어, YUV 픽셀 내의 루마 값)에 의해 정의될 필요가 없다.
대안적으로, 깊이 값은 깊이 픽셀로서 취급될 수 있으므로, 참조 데이터베이스는 컬러 및 깊이 정보 양자 모두를 조합하는 참조 이미지를 저장할 수 있다. 예를 들어, 참조 데이터베이스는 적색-녹색-청색-깊이(Red-Green-Blue-Depth: RGB-D) 이미지를 저장할 수 있는데, 각 RGB-D 이미지는 적색, 녹색, 청색 및 깊이 값들을 위한 채널들(예를 들어, 별개의 어레이들)을 포함한다. 명료성을 위해, 아래의 논의는 주로 RGB 컬러 공간 내의 컬러 이미지(예를 들어, RGB 이미지)에 집중한다. 그러나, 본 문서에서 논의되는 시스템 및 방법론은 다른 컬러 공간 내의 컬러 이미지에 적용가능하다.
설명적인 예로서, 훈련 단계 중에 RGB-D 이미지의 데이터베이스가 주어진다면, 이미지 각각이 적색-녹색-청색(Red-Green-Blue: RGB) 및 깊이(D) 채널들 양자 모두를 포함하는 경우에, 머신은 RGB 서술자의 사전으로부터 깊이 서술자의 사전으로의 변환을 학습한다. 각 사전은 서술자의 전체 데이터베이스일 수 있거나, 서술자들을 군집화함(clustering)으로써 서브샘플링될(subsampled) 수 있다. 모든 훈련 이미지(training image)는 각각 RGB 투영(projection) 및 깊이 투영으로 일컬어질 수 있는 RGB 공간 내의 그리고 깊이 공간 내의 기저 요소의 희소 선형 조합(a sparse linear combination of basis elements)으로서 표현될 수 있다. 그리고 훈련 데이터베이스 내의 모든 이미지의 RGB 투영 및 깊이 투영 간에는 변환이 추정될 수 있다.
설명적인 예를 계속하면, 테스트 시간에 쿼리 이미지가 주어진다면, 오직 그것의 RGB 정보가 이용가능할 수 있다. 쿼리 이미지의 RGB 투영이 추정되는데, 대응하는 깊이 투영을 추정하거나, 예측하거나, 그렇지 않으면 획득하는 변환의 적용이 뒤따른다. 깊이 투영은 대응하는 깊이 맵을 생성하기 위해 깊이 사전과 조합된다. 쿼리 이미지 내에 묘사된 객체들 간의 깊이 전이가 급격하게끔 하기 위해 결과적인 깊이 맵은 쿼리 이미지의 세그먼트화(segmentation)로써 후처리될 수 있다. 결과적으로, 쿼리 RGB 이미지가 도달하는 경우, 학습된 맵핑 기능은 그것의 RGB 픽셀 값을 깊이 픽셀 값으로 변환하는 데에 가용하다.
객체의 단일 이미지 스냅샷으로부터 추정된 깊이 맵은 그런 객체의 치수를 측정하기 위해 사용될 수 있다. 이것은 실시간 측정으로부터 이득을 얻는 제품 및 배송에서의 적용을 가진다. 객체 상의 점의 3차원(3D) 좌표를 계산하기 위해 깊이 맵은 쿼리 이미지의 헤더(header) 정보로부터 획득된 카메라 파라미터와 조합될 수 있다. 이들 점 간의 측정된 거리는 물리적 객체의 물리적 치수의 측정에 대응한다. 그러한 추정된 객체 치수는 하나 이상의 배송 작업(예를 들어, 배송될 아이템을 위한 적합한 배송 컨테이너의 선택)을 가능하게 하기 위해 배송 애플리케이션에 제공될 수 있다.
단일 이미지 스냅샷으로부터 추정된 깊이 맵은 뷰-아이템 페이지(view-item page) 내의 이-커머스 물품목록(inventory)의 향상된 브라우징(browsing)을 위한 시각화(예를 들어, 3D 플라이쓰루(fly-through))를 생성하기 위해 사용될 수 있다. 깊이 맵은 쿼리 이미지 내에 묘사된 장면 및 장면 내의 객체를 모델링하는 3D 포인트 클라우드(point cloud)를 생성하기 위해 쿼리 이미지의 헤더 정보로부터 획득된 카메라 파라미터와 조합될 수 있다. 이 3D 포인트 클라우드는 장면의 만족스러운 3D 시각화를 생성하기 위해 렌더링 엔진에 제공될 수 있는데, 이는 신규 시점(예를 들어, 상이한 각도로부터의 장면의 수정된 관점)의 생성 또는 발견으로 이어질 수 있다. 그러한 렌더링은 웹 브라우저 또는 모바일 브라우저 상의 가상 현실 모델링 언어(Virtual Reality Modeling Language: VRML) 플러그인을 사용하여 시각화될 수 있다. 이것은 장면의 단일 이미지 스냅샷을 보는 데에서 사용자 경험을 개선하는 효과를 가질 수 있다.
도 1은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하는 데에 적합한 네트워크 환경(100)을 보여주는 네트워크 다이어그램이다. 네트워크 환경(100)은 모두 네트워크(190)를 통하여 서로 통신가능하게 커플링된(communicatively coupled) 이미지 처리 머신(110), 데이터베이스(115) 및 디바이스(130)를 포함한다. 이미지 처리 머신(110)은 네트워크 기반 시스템(network-based system)(105)(예를 들어, 하나 이상의 이미지 처리 서비스를 디바이스(130)에 제공하도록 구성된 클라우드 기반 서버 시스템)의 전부 또는 일부를 형성할 수 있다. 서버 머신(110) 및 디바이스(130)는, 도 7에 관해 아래에서 기술되는 바와 같이, 전체적으로 또는 부분적으로, 각각 컴퓨터 시스템 내에 구현될 수 있다.
사용자(132)가 또한 도 1에 도시된다. 사용자(132)는 인간 사용자(예를 들어, 사람), 머신 사용자(예를 들어, 디바이스(130)와 상호작용하도록 소프트웨어 프로그램에 의해 구성된 컴퓨터), 또는 이들의 임의의 적합한 조합(예를 들어, 머신에 의해 지원받는 인간 또는 사람에 의해 감독되는 머신)일 수 있다. 사용자(132)는 네트워크 환경(100)의 일부는 아니지만, 디바이스(130)와 연관되며 디바이스(130)의 사용자일 수 있다. 예를 들어, 디바이스(130)는 사용자(132)의 것인 데스크톱 컴퓨터(desktop computer), 차량 컴퓨터(vehicle computer), 태블릿 컴퓨터(tablet computer), 내비게이션 디바이스(navigational device), 휴대가능 미디어 디바이스(portable media device), 스마트폰(smartphone), 또는 착용가능 디바이스(wearable device)(예를 들어, 스마트 와치(smart watch) 또는 스마트 글래스(smart glasses))일 수 있다.
도 1에 도시된 머신, 데이터베이스, 또는 디바이스 중 어떤 것이라도 그런 머신, 데이터베이스, 또는 디바이스를 위해 본 문서에 기술된 기능 중 하나 이상을 수행하게 특별히 구성된 특수 목적 컴퓨터(special-purpose computer)가 되도록 소프트웨어(예를 들어, 하나 이상의 소프트웨어 모듈)에 의해 수정된(예를 들어, 구성된 또는 프로그램된) 범용 컴퓨터(general-purpose computer) 내에 구현될 수 있다. 예를 들어, 본 문서에 기술된 방법론 중 임의의 하나 이상을 구현할 수 있는 컴퓨터 시스템이 도 7과 관련하여 아래에서 논의된다. 본 문서에서 사용되는 바와 같이, "데이터베이스"는 데이터 저장 리소스(data storage resource)이며 텍스트 파일(text file), 테이블(table), 스프레드시트(spreadsheet), 관계형 데이터베이스(relational database)(예를 들어, 객체 관계형 데이터베이스(object-relational database)), 트리플 스토어(triple store), 계층적 데이터 스토어(hierarchical data store), 또는 이들의 임의의 적합한 조합으로서 구조화된 데이터를 저장할 수 있다. 더욱이, 도 1에 예시된 머신, 데이터베이스, 또는 디바이스 중 임의의 둘 이상은 단일 머신으로 조합될 수 있으며, 임의의 단일 머신, 데이터베이스, 또는 디바이스를 위해 본 문서에 기술된 기능은 다수의 머신, 데이터베이스, 또는 디바이스 중에서 세분될 수 있다.
네트워크(190)는 머신, 데이터베이스 및 디바이스(예를 들어, 이미지 처리 머신(110) 및 디바이스(130)) 간의 또는 이들 중에서의 통신을 가능하게 하는 임의의 네트워크일 수 있다. 이에 따라, 네트워크(190)는 유선 네트워크, 무선 네트워크(예를 들어, 모바일(mobile) 또는 셀룰러(cellular) 네트워크), 또는 이들의 임의의 적합한 조합일 수 있다. 네트워크(190)는 사설 네트워크(private network), 공용 네트워크(public network)(예를 들어, 인터넷), 또는 이들의 임의의 적합한 조합을 구성하는 하나 이상의 부분을 포함할 수 있다. 이에 따라, 네트워크(190)는 로컬 영역 네트워크(Local Area Network: LAN), 광역 네트워크(Wide Area Network: WAN), 인터넷, 모바일 전화 네트워크(mobile telephone network)(예를 들어, 셀룰러 네트워크), 유선 전화 네트워크(wired telephone network)(예를 들어, 기존전화시스템(Plain Old Telephone System: POTS) 네트워크), 무선 데이터 네트워크(예를 들어, 와이파이 네트워크(WiFi network) 또는 와이맥스 네트워크(WiMAX network)), 또는 이들의 임의의 적합한 조합을 포함하는 하나 이상의 부분을 포함할 수 있다. 네트워크(190)의 임의의 하나 이상의 부분은 송신 매체(transmission medium)를 통하여 정보를 통신할 수 있다. 본 문서에서 사용되는 바와 같이, "송신 매체"는 머신에 의한(예를 들어, 그러한 머신의 하나 이상의 프로세서에 의한) 실행을 위한 명령어를 통신하는(예를 들어, 송신하는) 것이 가능한 임의의 무형적(intagible)(예를 들어, 일시적(transitory)) 매체를 나타내고, 디지털 또는 아날로그 통신 신호 또는 그러한 소프트웨어의 통신을 가능하게 하는 다른 무형적 매체를 포함한다.
도 2는 몇몇 예시적 실시예에 따라, 이미지 처리 머신(110)의 특수화된 컴포넌트를 보여주는 블록 다이어그램이다. 이미지 처리 머신(110)은 모두 (예를 들어, 버스, 공유된 메모리, 또는 스위치를 통하여) 서로와 통신하도록 구성된 액세스 모듈(access module)(210), 서술자 모듈(descriptor module)(220), 매트릭스 모듈(matrix module)(230), 쿼리 모듈(query module)(240), 분석 모듈(analysis module)(250), 생성기 모듈(creator module)(260), 배송 모듈(shipping module)(290) 및 시각화 모듈(visualization module)(295)을 포함하는 것으로 도시된다. 더욱이, 액세스 모듈(210), 서술자 모듈(220), 매트릭스 모듈(230), 또는 이들의 임의의 적합한 조합은 데이터베이스 훈련기 모듈(database trainer module)(270)의 전부 또는 일부를 형성할 수 있다. 나아가, 쿼리 모듈(240), 분석 모듈(250), 생성기 모듈(260), 또는 이들의 임의의 적합한 조합은 깊이 맵 모듈(depth map module)(280)의 전부 또는 일부를 형성할 수 있다. 전술한 모듈의 기능은 아래에서 더욱 상세히 논의된다.
본 문서에 기술된 모듈 중 임의의 하나 이상은 하드웨어(예를 들어, 머신의 하나 이상의 프로세서) 또는 하드웨어와 소프트웨어의 조합을 사용하여 구현될 수 있다. 예를 들어, 본 문서에 기술된 임의의 모듈은 해당 모듈을 위해 본 문서에 기술된 동작을 수행하도록 (예를 들어, 머신의 하나 이상의 프로세서 중의) 프로세서를 구성할 수 있다. 더욱이, 이들 모듈 중 임의의 둘 이상은 단일 모듈로 조합될 수 있으며, 단일 모듈을 위해 본 문서에 기술된 기능은 다수의 모듈 간에 세분될 수 있다. 나아가, 다양한 예시적 실시예에 따르면, 단일의 머신, 데이터베이스, 또는 디바이스 내에 구현되는 것으로 본 문서에 기술된 모듈은 다수의 머신, 데이터베이스, 또는 디바이스에 걸쳐서 분산될 수 있다.
더 나아가기 전에, 본 문서에서 다양한 예시적 실시예를 기술하는 데에서 명료성을 위해 표기법에 관한 몇몇 사전준비 해설을 개진하는 것이 유용할 수 있다. L개의 RGB 이미지의 세트 및 그것들의 대응하는 깊이 맵을 고려하자. RGB 이미지의 세트는
Figure 112016034396815-pat00001
에 의해 표기될 수 있고, 각각의 전역 이미지 서술자는
Figure 112016034396815-pat00002
에 의해 표기될 수 있다. 깊이 전송 알고리즘(depth transfer algorithm)을 설계하는 것에서의 목표는 유입(incoming) RGB 쿼리 이미지에 대해 깊이 맵을 생성할 수 있는 상관관계(예를 들어, 맵핑 또는 할당)의 세트를 추정하는 것이다
Figure 112016034396815-pat00003
. 그리고 추정된 깊이 맵
Figure 112016034396815-pat00004
은 깊이 전송 알고리즘의 품질을 정량화하기 위해 알려진 깊이 정보(예를 들어, 토대 사실 깊이(ground truth depth))와 비교될 수 있다
Figure 112016034396815-pat00005
. RGB 이미지 및 깊이 맵 간의 맵핑을 추정하기 위해 사용되는 전략은 두 개의 넓은 카테고리에 들어갈 수 있다: 감독 매개변수적 맵핑(supervised parametric mapping) 및 감독 비매개변수적 맵핑(supervised non-parametric mapping).
매개변수적 전송(Parametric Transfer): RGB 및 깊이 간의 변환이
Figure 112016034396815-pat00006
에 의해 명시적으로 매개변수화되는(parameterized) 경우에 맵핑은 매개변수적이라고 하는데,
Figure 112016034396815-pat00007
형태의 맵핑으로 이어진다. 매개변수적 깊이 전송의 일례는 입력 RGB 쿼리를 대응하는 깊이 맵으로 변환하기 위해
Figure 112016034396815-pat00008
에 의해 매개변수화된 랜덤 필드 예측 모델(random field prediction model)을 학습하는 것일 것이다.
비매개변수적 전송(Non-Parametric Transfer): RGB 및 깊이 간의 변환이 명시적으로 매개변수화되지 않는 경우에 맵핑은 비매개변수적이라고 하는데,
Figure 112016034396815-pat00009
형태의 맵핑으로 이어진다. 비매개변수적 깊이 전송의 일례는 시각적으로 가장 가까운 이웃 RGB 이미지를 색출하고(retrieving) 예측된 깊이 추정을 내놓도록 그것의 대응하는 깊이 맵을 융합하는(fusing) 것이다.
도 3은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하기 위해 이미지 처리 머신(110)을 활용하는 작업흐름(300)을 보여주는 블록 다이어그램이다. 작업흐름(300)은 두 단계, 구체적으로는 훈련 단계(training phase)(301) 및 훈련후 단계(post-training phase)(302)(예를 들어, 런타임 단계(runtime phase), 테스트 단계(test phase), 쿼리 단계(query phase), 또는 사용 단계(usage phase))를 포함할 수 있다. 훈련 단계(301)는 블록(310, 320, 330, 340 및 350)을 포함한다. 블록(310)에서, 참조 이미지(예를 들어, RGB 훈련 이미지)가 이미지 처리 머신(110)에 의해 (예를 들어, 데이터베이스(115)로부터) 액세스된다. 블록(320)에서, 시각적 서술자(예를 들어, 컬러 정보로부터 계산된 커널(kernel)/희소(sparse) 서술자)가 이미지 처리 머신(110)에 의해 참조 이미지로부터 추출된다. 사전(예를 들어, 시각적 사전)은 추출된 시각적 서술자로부터 (예를 들어, 시각적 서술자를 시각적 단어로 군집화함으로써 또는 어떠한 군집화도 없이) 생성되고
Figure 112016034396815-pat00010
로서 표기될 수 있다. 블록(330)에서, 참조 깊이 맵(예를 들어, 깊이 훈련 이미지)이 이미지 처리 머신(110)에 의해 (예를 들어, 데이터베이스(115)로부터) 액세스된다. 블록(340)에서, 깊이 서술자(예를 들어, 깊이 정보로부터 계산된 커널/희소 서술자)가 이미지 처리 머신(110)에 의해 참조 깊이 맵으로부터 추출된다. 사전(예를 들어, 깊이 사전)은 추출된 깊이 서술자에 기반하여 (예를 들어, 깊이 서술자를 깊이 단어로 군집화함으로써 또는 어떠한 군집화도 없이) 생성되고
Figure 112016034396815-pat00011
로서 표기될 수 있다.
블록(350)에서, 각 참조 이미지 및 그것의 대응하는 참조 깊이 맵 간의 상관관계가 알려져 있고 (예를 들어, 데이터베이스(115) 내에) 이미 저장되어 있으므로, 이미지 처리 머신(110)은 추출된 시각적 서술자(예를 들어, 시각적 서술자의 군집(cluster)) 및 그것의 대응하는 깊이 서술자(예를 들어, 깊이 서술자의 군집) 간의 상관관계를 학습하고 기록하기 위해 도메인 교차 맵핑을 수행한다. 이 도메인 교차 맵핑은 훈련후 단계(302)에서의 나중의 사용을 위해 데이터베이스(115) 내에 데이터 구조(예를 들어, 매트릭스)로서 저장될 수 있다. 그러므로 그러한 데이터 구조는 (예를 들어, 시각적 사전
Figure 112016034396815-pat00012
내에 표현된) 시각적 서술자를 (예를 들어, 깊이 사전
Figure 112016034396815-pat00013
내에 표현된) 대응하는 깊이 서술자로, 또는 반대로 변환하는 데에 가용한 맵으로서 기능할 수 있다.
훈련후 단계(302)는 블록(360, 370, 380 및 390)을 포함한다. 블록(360)에서, 쿼리 이미지(예를 들어, RGB 쿼리 이미지)는 (예를 들어, 디바이스(130)를 통한 사용자(132)로부터의 깊이 추정을 위한 요청 내의 또는 깊이 추정을 위한 쿼리 내의 수신된 제출(submission)로서) 이미지 처리 머신(110)에 의해 액세스된다. 블록(370)에서, 시각적 서술자(예를 들어, 컬러 정보로부터 계산된 커널/희소 서술자)는 이미지 처리 머신(10)에 의해 쿼리 이미지로부터 추출된다. 블록(380)에서, 대응하는 깊이 서술자(예를 들어, 깊이 정보의 커널/희소 서술자)는 쿼리 이미지로부터 추출된 시각적 서술자 각각에 대해 이미지 처리 머신(110)에 의해 획득되고, 이 깊이 서술자는 데이터 구조(예를 들어, 도메인 교차 맵핑)에 기반하여 획득될 수 있다. 블록(390)에서, 이미지 처리 머신은 쿼리 이미지를 위한 깊이 맵(예를 들어, 쿼리 이미지에 대응하는 깊이 맵)을 생성하며, 이 깊이 맵은 획득된 깊이 서술자에 기반하여 생성될 수 있다. 이에 따라, 쿼리 이미지에 대한 대응하는 깊이 맵은 이미지 처리 머신(110)에 의해 생성될(예를 들어, 계산되거나, 예측되거나, 추정되거나, 이들의 임의의 적합한 조합일) 수 있다.
시각적 서술자 및 깊이 서술자의 추출에 관하여, 이미지 처리 머신(110)은 참조 이미지의 다양한 특징을 사전 요소(dictionary element)들에 의해 스팬되는(spanned) 데이터 종속적 공간(data dependent space)으로 변환하도록 구성될 수 있다. 전역 서술자의 세트
Figure 112016034396815-pat00014
를 사용하여 표현될 i 번째 이미지가 있다고 상정하시오. 이미지 처리 머신(110)은
Figure 112016034396815-pat00015
Figure 112016034396815-pat00016
로서 표기되는 데이터 종속적 공간으로 변환하도록 구성될 수 있다. 데이터 종속적 변환은 다음에 의해 달성될 수 있다:
Figure 112016034396815-pat00017
그러므로, 전역 서술자는 각자의 사전 요소들 측면에서 표현될 수 있다.
Figure 112016034396815-pat00018
Figure 112016034396815-pat00019
의 함수 형태는 사전 요소들로 인코딩되는 관계의 유형을 정한다.
이미지 처리 머신(110)의 어떤 예시적 실시예는 전역 이미지 서술자 및 다른 사전 요소(예를 들어, 모든 다른 사전 요소) 간의 관계를 인코딩하기 위해 두 가지 대안적인 접근법 중 하나를 구현한다. 첫 번째 접근법에서, 커널 서술자가 사용되고, 이미지 처리 머신(110)은 사전
Figure 112016034396815-pat00020
내의 모든 다른 요소까지의 주어진 전역 서술자의 거리를 산출하도록(compute) 구성된다. i 번째 기저 요소가 사전의 열(column)
Figure 112016034396815-pat00021
에 의해 표현된다고 가정하면, 이미지 처리 머신(110)은 사전의 모든 기저 요소까지의 입력 데이터 점(data point)의 짝지어진(pairwise) 거리(예를 들어, 커널)를 산출한다. 이것은 RGB 전역 특징 및 깊이 전역 특징에 대해 각각 하나의 서술자를 초래하는데, 이는 각각 RGB 사전 커널 및 깊이 사전 커널로서 표기될 수 있다.
RGB 사전 커널(RGB Dictionary Kernel):
Figure 112016034396815-pat00022
깊이 사전 커널(Depth Dictionary Kernel):
Figure 112016034396815-pat00023
두 번째 접근법에서, 희소 양 서술자(sparse positive descriptor)가 사용되고, 이미지 처리 머신(110)은 기저 요소 상에서의 계수의 희소 세트를 사용하여 기저 요소에 대한 가중치를 예측하기 위해 희소 분해(sparse decomposition)를 수행하도록 구성된다. 이 절차는 직교 매칭 추구(orthogonal matching pursuit)를 사용하여 성취될 수 있다.
RGB 사전 희소 양(RGB Dictionary Sparse Positive):
Figure 112016034396815-pat00024
깊이 사전 희소 양(Depth Dictionary Sparse Positive):
Figure 112016034396815-pat00025
다양한 예시적 실시예에 따르면, 이미지 처리 머신(110)은 다양한 기법 중 하나 이상을 사용하여 사전(예를 들어, 시각적 사전
Figure 112016034396815-pat00026
또는 깊이 사전
Figure 112016034396815-pat00027
)을 생성하도록 구성될 수 있다. 사전 생성을 위해 가용한 한 가지 기법은 k-평균 군집화(k-means clustering)이다. 이미지 처리 머신(110)은 서술자(예를 들어, 시각적 서술자 또는 깊이 서술자)를 전체 데이터세트(dataset)로부터 대표적인
Figure 112016034396815-pat00028
개의 중심점(centroid)의 세트로 군집화하도록 구성된다. 그리고 이들 군집 중심점에 가장 가까운 이미지(예를 들어, 컬러 이미지 또는 깊이 이미지)가 이미지 처리 머신(110)에 의해 사전의 기저 요소로서 선택된다. 군집화는 데이터세트의 여러 가지의 대표를 선택하므로, 형성된 군집들은 입력 데이터 점이 존재하는 특징 공간의 상이한 부분들을 나타냄 직하다.
사전(예를 들어, 시각적 사전
Figure 112016034396815-pat00029
또는 깊이 사전
Figure 112016034396815-pat00030
)을 생성하기 위한 다른 기법은 전체 훈련 데이터세트를 사전으로서 활용하는 것이다. 이 기법은 얼굴 인식을 위해 사용되는 희소 코딩 접근법과 일맥상통한다. 그러나, 이 기법은 훨씬 더 큰 사전과 더 높은 차원성의 투영된 특징을 초래하는데, 다만 그러한 상황은 희소 행렬 분해 기법에 의해 다루어질 수 있기는 하다.
앞서 지적된 바와 같이, 이미지 처리 머신(110)은 도 3의 블록(350)에서 사전들 간의 도메인 교차 맵핑을 수행한다. 이것은 (예를 들어, RGB 특징을 서술하는) 시각적 서술자 및 (예를 들어, 깊이 특징을 서술하는) 깊이 서술자 간의 수학적 변환을 판정(예를 들어, 계산, 추정, 예측, 또는 이들의 임의의 적합한 조합)함으로써 수행될 수 있다. 다양한 예시적 실시예에 따르면, 그러한 변환은 다음에 의해 주어지는 선형 모델로서 모델링될 수 있다:
Figure 112016034396815-pat00031
이 선형 모델을 가정하면, 변환 매트릭스
Figure 112016034396815-pat00032
는 시각적 특징 공간(예를 들어, RGB 특징 공간)으로부터 깊이 특징 공간으로의 맵핑을 정의한다. 대안적인 예시적 실시예에서, 하나 이상의 비선형 맵핑을 포함하여, 시각적 특징 공간을 깊이 특징 공간으로 맵핑하기 위해 상이한 수학적 맵핑이 사용될 수 있다.
추출된 시각적 서술자(예를 들어, 참조 이미지로부터 추출된 커널/희소 서술자)가 전체 이미지를 서술하려고 시도하는 전역 이미지 서술자이더라도, 이미지 처리 머신(110)은 훈련후 단계(302) 동안 픽셀 레벨 깊이 정보를 생성(예를 들어, 계산, 추정, 또는 예측)하도록 구성될 수 있다. 이것은 하향식(top-down) 정보만을 사용하여 깊이 추정을 수행하는 것으로 간주될 수 있다. 어떤 예시적 실시예에 따르면, 참조 이미지(예를 들어, RGB 훈련 이미지) 내의 국부적(local) 형상 또는 텍스처에 관한 픽셀 레벨 정보는 작업흐름(300)에서 사용되지 않는다. 그러한 예시적 실시예에서, 발생하는 깊이 맵은 조악할(coarse) 수 있고 쿼리 이미지 내의 진짜 모서리(예를 들어, 가장자리 또는 다른 경계)와 어색하게 맞을 수 있다
이에 따라, 이미지 처리 머신(110)의 몇몇 예시적 실시예는 쿼리 이미지에 기반하여 구조적인 후처리를 수행하도록 구성된다. 쿼리 이미지에 대해 생성된 깊이 맵을 정제하기(refine) 위해서, 이미지 처리 머신(110)은 쿼리 이미지(예를 들어, 입력 이미지)
Figure 112016034396815-pat00033
의 수퍼픽셀 구획(superpixel partitioniong)을 수행하도록 구성될 수 있다. 수퍼픽셀 구획은
Figure 112016034396815-pat00034
에 의해 표기될 수 있는데, 여기서
Figure 112016034396815-pat00035
은 세트 카디낼러티(set cardinality)를 표기하고
Figure 112016034396815-pat00036
은 수퍼픽셀
Figure 112016034396815-pat00037
내의 k 번째 픽셀을 표기한다. 생성된 깊이 맵은
Figure 112016034396815-pat00038
에 의해 표기될 수 있음을 상기하면, 생성된 깊이 맵은 수퍼픽셀을 구성하는 픽셀은 유사한 깊이 값을 가질 가능성이 더 크다는 가정 하에서 이미지 처리 머신(110)에 의해 정제될 수 있다. 다양한 예시적 실시예에 따르면, 깊이 맵의 정제는 다음을 사용하여 수행된다.
Figure 112016034396815-pat00039
이 절차는 구간별로 일정한(piecewise constant) 값을 전체 수퍼픽셀에 맞춰 넣어, 쿼리 이미지 내의 진짜 모서리(예를 들어, 가장자리)에 잘 정렬되기 때문에 더욱 해석가능한 정제된 깊이 맵을 초래한다. 그 후, 정제된 깊이 맵 내에 나타내어지거나 아니면 표현된 하나 이상의 평면은, 더 평활한 깊이 맵을 초래하게 카메라에 평행한 평면에 대해서 임의적인 배향(orientation)을 가질 수 있는 평면을 맞추기 위해 랜덤 샘플 일치(Random Sample Consensus: RANSAC) 알고리즘을 활용함으로써 경사면(ramp)으로 (예를 들어, 이미지 처리 머신(110)에 의해) 변형될(deformed) 수 있다.
도 4 내지 도 6은 몇몇 예시적 실시예에 따라, 단일 이미지로부터 깊이를 추정하는 방법(400)을 수행하는 중의 이미지 처리 머신(110)의 동작을 보여주는 흐름도이다. 방법(400)에서의 동작은 도 2에 관해 앞서 기술된 모듈을 사용하여 수행될 수 있다. 도 4에 도시된 바와 같이, 방법(400)은 동작(410, 420, 430, 440, 450, 460 및 470)을 포함한다. 동작(410 내지 430)은 훈련 단계(301) 동안 수행될 수 있는 반면, 동작(440 내지 470)은 훈련후 단계(302) 동안 수행될 수 있다.
동작(410)에서, (예를 들어, 데이터베이스 훈련기 모듈(270) 내의) 액세스 모듈(210)은 데이터베이스(115)(예를 들어, 참조 데이터베이스)로부터 참조 이미지 및 대응하는 참조 깊이 맵을 액세스한다. 참조 이미지는 컬러 이미지(예를 들어, RGB 이미지)일 수 있고, 참조 이미지 각각은 참조 깊이 맵(예를 들어, 깊이 이미지) 중 하나에 대응할 수 있다. 예를 들어, 특정한 참조 이미지(예를 들어, 제1 참조 이미지)는 특정한 참조 깊이 맵(예를 들어, 제1 참조 깊이 맵)에 대응한다. 더욱이, 참조 이미지는 컬러 픽셀을 포함하고, 참조 깊이 맵은 컬러 픽셀 각각에 대해 대응하는 깊이 값(예를 들어, 깊이 픽셀)을 포함한다. 앞서 지적된 바와 같이, 각 컬러 픽셀은 적어도 3개의 컬러 값(예를 들어, RGB 픽셀을 위한 적색 값, 녹색 값 및 청색 값과 같은 3개의 삼자극 값)에 의해 정의될 수 있다. 몇몇 예시적 실시예에서, 참조 이미지 및 그것의 대응하는 참조 깊이 맵은 컬러 및 깊이 정보 양자 모두를 조합하는 참조 이미지(예를 들어, RGB-D 이미지)로 조합된다.
동작(420)에서, (예를 들어, 데이터베이스 훈련기 모듈(270) 내의) 서술자 모듈(220)은 동작(410)에서 액세스된 참조 이미지 및 대응하는 참조 깊이 맵에 기반하여(예를 들어, 이로부터) 시각적 서술자 및 대응하는 깊이 서술자를 계산한다. 몇몇 예시적 실시예에서, 서술자 모듈(220)은 또한 시각적 사전 및 깊이 사전을 구축하기 위해 군집화(예를 들어, k-평균 군집화)를 수행한다. 대안적인 예시적 실시예에서, 어떠한 군집화도 수행되지 않는다.
동작(430)에서, (예를 들어, 데이터베이스 훈련기 모듈(270) 내의) 매트릭스 모듈(230)은 계산된 시각적 서술자(예를 들어, 개별적인 시각적 서술자 또는 시각적 서술자의 군집)를 그것의 대응하는 깊이 서술자(예를 들어, 개별적인 시각적 서술자에 또는 시각적 서술자의 군집에 대응하는 개별적인 깊이 서술자)와 상관시키는 데이터 구조(예를 들어, 변환 매트릭스)를 생성한다. 앞서 지적된 바와 같이, 이 데이터 구조는 시각적 사전 및 깊이 사전 간의 도메인 교차 맵핑을 구성할 수 있다. 이것은 참조 이미지로부터 추출된 시각적 서술자를 그런 동일한 참조 이미지의 깊이 서술자에 맵핑하는 효과를 가질 수 있다. 매트릭스 모듈(230)은 이 데이터 구조를 데이터베이스(115)에 (예를 들어, 즉각적인 또는 나중의 사용을 위해) 저장할 수 있다.
동작(440)에서, (예를 들어, 깊이 맵 모듈(280) 내의) 쿼리 모듈(240)은 쿼리 이미지를 수신한다. 특히, 쿼리 이미지는 사용자(132)에 의해 디바이스(130)로부터 이미지 처리 머신(110)에 제출된 단일 쿼리 이미지일 수 있다. 쿼리 이미지는 쿼리 이미지로부터 계산되거나 추정되거나 그렇지 않으면 도출되는 깊이 정보에 대한 쿼리의 전부 또는 일부로서 수신될 수 있다. 쿼리 이미지는 쿼리 이미지로부터 깊이 정보를 계산하거나 추정하거나 그렇지 않으면 도출하기 위한 요청의 전부 또는 일부로서 수신될 수 있다. 몇몇 예시적 실시예에서, 쿼리 이미지는 깊이 정보를 배송 애플리케이션, 시각화 애플리케이션, 또는 이들의 임의의 적합한 조합에 제공하기 위한 요청 또는 명령과 함께 수신된다.
동작(450)에서, (예를 들어, 깊이 맵 모듈(280) 내의) 분석 모듈(250)은 동작(440)에서 수신된 쿼리 이미지를 분석하고 수신된 쿼리 이미지로부터 하나 이상의 시각적 서술자를 계산한다. 다양한 예시적 실시예에서, 분석 모듈(250)은 서술자 모듈(220)에 의해 동작(420)에서 사용되는 것과 동일한 시각적 서술자 추출 기법 중 하나 이상을 활용할 수 있다.
동작(460)에서, (예를 들어, 깊이 맵 모듈(280) 내의) 생성기 모듈(260)은 동작(430)에서 생성된 데이터 구조(예를 들어, 변환 매트릭스)를 액세스한다. 몇몇 예시적 실시예에서, 생성기 모듈(260)은 초기에 시각적 사전 및 깊이 사전을 액세스한다. 데이터 구조, 시각적 사전, 깊이 사전, 또는 이들의 임의의 적합한 조합은 데이터베이스(115) 내에 저장되고 데이터베이스(115)로부터 액세스될 수 있다. 이에 따라, 생성기 모듈(260)은 동작(450)에서 계산된 하나 이상의 시각적 서술자에 대응하는 하나 이상의 깊이 서술자를 획득한다. 특히, 생성기 모듈(260)은 액세스된 데이터 구조(예를 들어, 변환 매트릭스)에 기반하여, 계산된 시각적 서술자 각각에 대한 대응하는 깊이 서술자를 획득할 수 있다.
동작(470)에서, 생성기 모듈(260)은 동작(440)에서 수신된 쿼리 이미지를 위한 깊이 맵을 생성한다. 깊이 맵의 생성은 동작(460)에서 획득된 하나 이상의 깊이 서술자에 기반한다. 즉, 생성기 모듈(260)은 데이터 구조를 액세스하는 것을 통하여 획득된 깊이 서술자에 기반하여, 쿼리 이미지에 대응하는 깊이 맵을 발생시킬(예를 들어, 계산하거나, 추정하거나, 예측하거나, 그렇지 않으면 생성할) 수 있다.
도 5에 도시된 바와 같이, 방법(400)은 동작(511, 541, 542, 543, 580, 590, 591 및 592) 중 하나 이상을 포함할 수 있다. 동작(511)에서는 액세스 모듈(210)이 참조 이미지 및 그것의 대응하는 깊이 맵을 액세스하는 동작(410)의 일부(예를 들어, 선행 작업(precursor task), 서브루틴(subroutine), 또는 일부분)로서 수행될 수 있다. 동작(511)에서, 액세스 모듈(210)은 데이터베이스(115)로부터 참조 RGB-D 이미지를 액세스한다. 그러한 예시적 실시예에서, 각 참조 RGB-D 이미지는 RGB 이미지 및 그것의 대응하는 참조 깊이 맵을 포함한다.
동작(541, 542 및 543) 중 하나 이상은 쿼리 모듈(240)이 쿼리 이미지를 수신하는 동작(440)의 일부로서 수행될 수 있다. 동작(541)에서, 쿼리 모듈(240)은 어떠한 대응하는 깊이 맵(예를 들어, 깊이 이미지)도 없는 쿼리 이미지를 수신한다. 예를 들어, 쿼리 이미지는 동반하는 깊이 맵이 전혀 없는 순전한 RGB 이미지로서 수신될 수 있다.
동작(542)에서, 쿼리 모듈(240)은 쿼리 이미지를 수신하며, 쿼리 이미지는 (예를 들어, 그것의 파일 메타데이터 내의) 어떠한 깊이 정보도 결여된 것이다. 예를 들어, 쿼리 이미지는 그것의 비 픽셀(non-pixel) 데이터(예를 들어, 그것의 헤더 또는 다른 숨겨진 데이터) 내에 어떠한 깊이 정보도 저장되지 않은 순전한 RGB 이미지일 수 있다.
동작(543)에서, 쿼리 모듈(240)은 (예를 들어, 디바이스(130)로부터 수신되는) 제출 내의 쿼리 이미지를 수신하며, 그 제출은 쿼리 이미지로부터만 깊이 정보를 추정하기 위한 요청의 전부 또는 일부일 수 있다. 그러한 예시적 실시예에서, 동작(470)에서의 깊이 맵의 생성은 이 요청에 응답하여 수행될 수 있다.
몇몇 예시적 실시예에 따르면, 동작(580 및 590)은 쿼리 이미지에 대응하는 깊이 맵을 생성기 모듈(260)이 생성하는 동작(470) 후에 수행될 수 있다. 동작(580 및 590)은 생성된 깊이 맵을 정제하기 위한(예를 들어, 깊이 맵을 쿼리 이미지 내에 묘사된 모서리와 정렬하기 위한) 후처리 활동의 세트의 전부 또는 일부를 형성할 수 있다.
동작(580)에서, 생성기 모듈(260)은 쿼리 이미지를 (예를 들어, 도 3에 관해 앞서 기술된 바와 같이) 수퍼픽셀로 구획한다. 동작(590)에서, 생성기 모듈(260)은 생성된 깊이 맵을 (예를 들어, 도 3에 관해 앞서 기술된 바와 같이) 동작(580)에서의 수퍼픽셀 구획에 기반하여 수정한다. 다양한 예시적 실시예에 따르면, 동작(591 및 592) 중 하나 이상이 동작(590)의 일부로서 수행될 수 있다.
동작(591)에서, 생성기 모듈(260)은 일정한 깊이 값을 쿼리 이미지 내의 하나 이상의 수퍼픽셀 내의 각 픽셀에 할당함으로써, 생성된 깊이 맵을 수정한다. 앞서 지적된 바와 같이, 이것은 쿼리 이미지 내의 진짜 모서리(예를 들어, 가장자리)에 잘 정렬되므로 더욱 해석가능한 것인 정제된 깊이 맵을 만들어낼 수 있다.
동작(592)에서, 생성기 모듈(260)은 쿼리 이미지 내의 수퍼픽셀에 의해 표현되는 평면의 배향을 수정함으로써, 생성된 깊이 맵을 수정한다. 이 동작은 깊이 맵 내에 나타내어지거나 아니면 표현된 하나 이상의 추가적인 평면에 대해 반복될 수 있다. 앞서 지적된 바와 같이, 더 평활한 깊이 맵을 초래하게 RANSAC 알고리즘을 활용하여 각 평면은 경사면으로 변형될 수 있다.
도 6에 도시된 바와 같이, 방법(400)은 동작(610, 620, 630 및 640) 중 하나 이상을 포함할 수 있다. 동작(610 내지 640) 중 몇몇 또는 전부는 생성기 모듈(260)이 쿼리 이미지를 위해 깊이 맵을 생성하는 동작(470) 후에 수행될 수 있다.
동작(610)에서, 시각화 모듈(295)은 쿼리 이미지 내에 묘사된 물리적 객체의 표면의 3D 모델을 생성한다. 예를 들어, 물리적 객체는 배송될 아이템일 수 있다. 다른 예로서, 물리적 객체는 쿼리 이미지 내에 묘사된 장면의 일부(예를 들어, 벽, 바닥, 천장, 실내가구 한 점, 실외 조경 아이템, 사람, 사용자(132), 또는 이들의 임의의 적합한 조합)일 수 있다. 이에 따라, (예를 들어, 동작(590)의 수행에 의해 수정된 것과 같은) 생성된 깊이 맵은 쿼리 이미지 내에 묘사된 물리적 객체의 표면의 3D 표현을 포함할 수 있다. 그러므로 생성된 3D 모델은 물리적 객체의 표면을 표현하는 점들의 세트를 포함하는 포인트 클라우드(예를 들어, 점들의 3D 어레이)이거나 이를 포함할 수 있다. 더욱이, 3D 모델의 생성은 (예를 들어, 쿼리 이미지 내에 포함된) 카메라 정보, 쿼리 이미지를 위한 (예를 들어, 동작(590)의 수행에 의해 수정된 것과 같은) 생성된 깊이 맵, 또는 양자 모두에 기반할 수 있다.
동작(620)에서, 시각화 모듈(295)은 생성된 3D 모델을 렌더링 엔진(예를 들어, 3D 렌더링 엔진)에 제공한다. 렌더링 엔진은 디바이스(130)의 일부일 수 있고, 네트워크(190)를 통하여 디바이스(130)에 제공될 수 있다. 대안적으로, 렌더링 엔진은 이미지 처리 머신(110) 내의 추가적인 모듈일 수 있다. 어디에 위치되든, 렌더링 엔진은 제공된 3D 모델에 기반하여 3D 시각화를 생성하여서, 쿼리 이미지 내에 묘사된 물리적 객체의 적어도 표면의 3D 시각화를 생성하도록 구성될 수 있다. 그러한 3D 시각화는 디바이스(130)에 제공되고 이에 따라 사용자(132)에게 제시될 수 있다.
동작(630)에서, 배송 모듈(290)은 동작(610)에서 생성된 3D 모델에 기반하여 물리적 객체의 표면의 길이를 계산한다. 앞서 지적된 바와 같이, 생성된 3D 모델은 3D 포인트 클라우드(3D cloud of points)(쿼리 이미지 내에 묘사된 물리적 객체의 표면을 표현하는 점들이 이 중에 있음)이거나 이를 포함할 수 있다. 배송 모듈(290)은 표현된 표면의 하나 이상의 길이를 이 점들 중 둘 이상 간의 하나 이상의 거리를 계산(예를 들어, 수학적으로 측정)함으로써 계산할 수 있다. 그러한 계산은 쿼리 이미지에 포함된 카메라 정보에 또한 기반할 수 있다.
동작(640)에서, 배송 모듈(290)은 표면의 계산된 길이를 배송 애플리케이션에 제공한다. 예를 들어, 쿼리 이미지 내에 묘사된 물리적 객체는 배송가능한(shippable) 아이템(예를 들어, 배송될 아이템)일 수 있고, 배송 모듈(290)은 배송가능한 아이템의 하나 이상의 표면의 하나 이상의 계산된 치수(예를 들어, 길이)를 배송 애플리케이션에 제공할 수 있다. 몇몇 예시적 실시예에 따르면, 배송 애플리케이션은 제공된 치수에 기반하여 배송 컨테이너를 선택하거나 추천하거나 제안하도록 구성된다.
다양한 예시적 실시예에 따르면, 본 문서에 기술된 방법론 중 하나 이상은 단일 이미지로부터의 깊이 정보의 추정을 가능하게 할 수 있다. 더욱이, 본 문서에 기술된 방법론 중 하나 이상은 시각적 사전 내에 표현된 시각적 서술자가 주어지면 깊이 사전으로부터 깊이 서술자를 획득하는 데에 가용한 변환 매트릭스를 (예를 들어, 수퍼픽셀 후처리를 통하여) 생성하고 정제하기 위한 이미지 처리 시스템의 훈련을 가능하게 할 수 있다. 나아가, 본 문서에 기술된 방법론 중 하나 이상은 깊이 정보가 결핍된 쿼리 이미지의 제출에 응답하여 대응하는 깊이 맵의 생성을 가능하게 할 수 있다. 그러므로, 본 문서에 기술된 방법론 중 하나 이상은 쿼리 이미지로써 (예를 들어, 쿼리 이미지 내에 묘사된 객체의 대안적인 3D 뷰를 제공하는 것에 의해) 개선된 사용자 경험은 물론, (예를 들어, 쿼리 이미지 내에 묘사된 배송가능한 아이템의 치수를 제공하는 것에 의해) 배송 활동을 수행하는 데에서의 개선된 정확성을 가능하게 할 수 있다.
이들 효과가 전체적으로 고려되는 경우, 본 문서에 기술된 방법론 중 하나 이상은, 그렇지 않다면 깊이 정보를 그것이 결핍된 단일 이미지로부터 획득하는 것에 수반될 어떤 수고 또는 리소스의 필요성을 제거할 수 있다. 단일 이미지로부터 깊이 정보를 추정하는 중에 사용자가 들이는 수고는 본 문서에 기술된 방법론 중 하나 이상에 의해 감소될 수 있다. (예를 들어, 네트워크 환경(100) 내의) 하나 이상의 머신, 데이터베이스, 또는 디바이스에 의해 사용되는 컴퓨팅 리소스는 유사하게 감소될 수 있다. 그러한 컴퓨팅 리소스의 예는 프로세서 사이클, 네트워크 트래픽, 메모리 사용량, 데이터 저장 능력, 전력 소모 및 냉각 능력을 포함한다.
도 7은 몇몇 예시적 실시예에 따라, 머신 판독가능 매체(722)(예를 들어, 비일시적(non-transitory) 머신 판독가능 매체, 머신 판독가능 저장 매체, 컴퓨터 판독가능 저장 매체, 또는 이들의 임의의 적합한 조합)으로부터 명령어(724)를 판독하고 본 문서에서 논의된 방법론 중 임의의 하나 이상을 수행할 수 있는 머신(700)의 컴포넌트를 보여주는 블록 다이어그램이다. 특히, 도 7은 예시적 형태의 컴퓨터 시스템(예를 들어, 컴퓨터)(머신(700)으로 하여금 본 문서에서 논의된 방법론 중 임의의 하나 이상을 수행하게 하기 위한 명령어(724)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿(applet), 앱(app), 또는 다른 실행가능 코드)가 그 안에서 전체로서 또는 부분적으로 수행될 수 있음)으로 머신(700)을 도시한다.
대안적인 실시예들에서, 머신(700)은 독립형 디바이스(standalone device)로서 동작하거나, 다른 머신에 통신가능하게 커플링될(예를 들어, 네트워킹될(networked)) 수 있다. 네트워킹된 배치에서, 머신(700)은 서버-클라이언트 네트워크 환경 내의 서버 머신 또는 클라이언트 머신의 입장에서, 또는 분산형(distributed)(예를 들어, 피어투피어(peer-to-peer)) 네트워크 환경 내의 피어 머신(peer machine)으로서 동작할 수 있다. 머신(700)은 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(Personal Computer: PC), 태블릿 컴퓨터, 랩톱 컴퓨터(laptop computer), 넷북(netbook), 셀룰러 전화, 스마트폰, 셋톱 박스(Set-Top Box: STB), 개인용 디지털 보조기기(Personal Digital Assistant: PDA), 웹 기기(web appliance), 네트워크 라우터(network router), 네트워크 스위치(network switch), 네트워크 브리지(network bridge), 또는 그 머신에 의해 취해질 액션을 지정하는 명령어(724)를 순차적으로(sequentially) 또는 다른 식으로 실행하는 것이 가능한 임의의 머신일 수 있다. 또한, 오직 단일 머신이 예시되어 있으나, "머신"이라는 용어는 또한 본 문서에서 논의된 방법론 중 임의의 하나 이상의 전부 또는 일부를 수행하기 위해 개별적으로 또는 공동으로 명령어(724)를 실행하는 머신의 임의의 모음을 포함하도록 쓰일 것이다.
머신(700)은 프로세서(702)(예를 들어, 중앙 처리 유닛(Central Processing Unit: CPU), 그래픽 처리 유닛(Graphics Processing Unit: GPU), 디지털 신호 프로세서(Digital Signal Processor: DSP), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 무선 주파수 집적 회로(Radio-Frequency Integrated Circuit: RFIC), 또는 이들의 임의의 적합한 조합), 주 메모리(main memory)(704) 및 정적 메모리(706)를 포함하는데, 이는 버스(708)를 통하여 서로 통신하도록 구성된다. 프로세서(702)가 본 문서에 기술된 방법론 중 임의의 하나 이상을 전체로서 또는 부분적으로 수행하게 구성가능하도록 프로세서(702)는 명령어(724) 중 몇몇 또는 전부에 의해 임시적으로 또는 영구적으로 구성가능한 마이크로회로를 포함할 수 있다. 예를 들어, 프로세서(702)의 하나 이상의 마이크로회로의 세트는 본 문서에 기술된 하나 이상의 모듈(예를 들어, 소프트웨어 모듈)을 실행하도록 구성가능할 수 있다.
머신(700)은 그래픽 디스플레이(graphics display)(710)(예를 들어, 플라즈마 디스플레이 패널(Plasma Display Panel: PDP), 발광 다이오드(Light Emitting Diode: LED) 디스플레이, 액정 디스플레이(Liquid Crystal Display: LCD), 프로젝터(projector), 음극선관(Cathode Ray Tube: CRT), 또는 그래픽 또는 비디오를 디스플레이하는 것이 가능한 임의의 다른 디스플레이)를 더 포함할 수 있다. 머신(700)은 또한 문자 숫자 입력 디바이스(alphanumeric input device)(712)(예를 들어, 키보드(keyboard) 또는 키패드(keypad)), 커서 제어 디바이스(cursor control device)(714)(예를 들어, 마우스(mouse), 터치패드(touchpad), 트랙볼(trackball), 조이스틱(joystick), 움직임 센서(motion sensor), 눈 추적 디바이스(eye tracking device), 또는 다른 포인팅 기구(pointing instrument)), 저장 유닛(storage unit)(716), 오디오 생성 디바이스(audio generation device)(718)(예를 들어, 사운드 카드(sound card), 증폭기(amplifier), 스피커(speaker), 헤드폰 잭(headphone jack), 또는 이들의 임의의 적합한 조합), 그리고 네트워크 인터페이스 디바이스(network interface device)(720)를 포함할 수 있다.
저장 유닛(716)은 본 문서에 기술된 방법론 또는 기능 중 임의의 하나 이상을 구현화하는 명령어(624)가 저장되는 머신 판독가능 매체(722)(예를 들어, 유형적이고 비일시적인 머신 판독가능 저장 매체)를 포함한다. 명령어(724)는 머신(700)에 의한 이의 실행 전에 또는 그 전에, 전적으로 또는 적어도 부분적으로 주 메모리(704) 내에, 정적 메모리(706) 내에, 또는 양자 모두 내에 상주할 수도 있다. 이에 따라, 주 메모리(704) 및 프로세서(702)는 머신 판독가능 매체(예를 들어, 유형적이고 비일시적인 머신 판독가능 매체)로 간주될 수 있다. 명령어(724)는 네트워크 인터페이스 디바이스(720)를 통하여 네트워크(190) 상에서 송신되거나 수신될 수 있다. 예를 들어, 네트워크 인터페이스 디바이스(720)는 임의의 하나 이상의 전송 프로토콜(예를 들어, 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol: HTTP))을 사용하여 명령어(724)를 통신할 수 있다.
몇몇 예시적 실시예에서, 머신(700)은 스마트 폰 또는 태블릿 컴퓨터와 같은 휴대가능 컴퓨팅 디바이스(portable computing device)이고, 하나 이상의 추가적인 입력 컴포넌트(730)(예를 들어, 센서 또는 게이지)를 가질 수 있다. 그러한 입력 컴포넌트(730)의 예는 이미지 입력 컴포넌트(예를 들어, 하나 이상의 카메라), 오디오 입력 컴포넌트(예를 들어, 마이크), 방향 입력 컴포넌트(예를 들어, 나침반), 위치 입력 컴포넌트(예를 들어, 전역 측위 시스템(Global Positioning System: GPS) 수신기), 배향 컴포넌트(예를 들어, 자이로스코프(gyroscope)), 움직임 검출 컴포넌트(예를 들어, 하나 이상의 가속도계), 고도 검출 컴포넌트(예를 들어, 고도계) 및 가스 검출 컴포넌트(예를 들어, 가스 센서)를 포함한다. 이들 입력 컴포넌트 중 임의의 하나 이상에 의해 수집된 입력은 본 문서에 기술된 모듈 중 임의의 것에 의한 사용을 위해 액세스가능하고 이용가능할 수 있다.
본 문서에 사용되는 바와 같이, "메모리"라는 용어는 임시적으로 또는 영구적으로 데이터를 저장할 수 있는 머신 판독가능 매체를 나타내며 랜덤 액세스 메모리(Random-Access Memory: RAM), 판독 전용 메모리(Read-Only Memory: ROM), 버퍼 메모리(buffer memory), 플래시 메모리(flash memory) 및 캐시 메모리(cache memory)를 포함하나 이에 한정되지 않도록 취해질 수 있다. 머신 판독가능 매체(722)가 예시적 실시예에서 단일 매체인 것으로 도시되나, "머신 판독가능 매체"라는 용어는 명령어를 저장할 수 있는 단일 매체 또는 다수의 매체(예를 들어, 집중형(centralized) 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하도록 취해져야 한다. "머신 판독가능 매체"라는 용어는 또한, 명령어(724)가 머신(700)의 하나 이상의 프로세서(예를 들어, 프로세서(702))에 의해 실행되는 경우 머신(700)으로 하여금 본 문서에 기술된 방법론 중 임의의 하나 이상을 전체로서 또는 부분적으로 수행하게 하도록, 머신(700)에 의한 실행을 위해 명령어(724)를 저장하는 것이 가능한 임의의 매체, 또는 다수의 매체의 조합을 포함하도록 취해져야 한다. 이에 따라, "머신 판독가능 매체"는 단일 저장 장치 또는 디바이스는 물론, 다수의 저장 장치 또는 디바이스를 포함하는 클라우드 기반 저장 시스템 또는 저장 네트워크를 나타낸다. "머신 판독가능 매체"라는 용어는 이에 따라 고체상태 메모리(solid-state memory), 광학 매체(optical medium), 자기 매체(magnetic medium), 또는 이들의 임의의 적합한 조합의 형태로 된 하나 이상의 유형적(예를 들어, 비일시적) 데이터 저장소(repository)를 포함하나 이에 한정되지 않도록 취해지게 될 것이다. 몇몇 예시적 실시예에서, 머신(700)에 의한 실행을 위한 명령어(724)는 캐리어 매체(carrier medium)에 의해 전달될 수 있다. 그러한 캐리어 매체의 예는 저장 매체 및 일시적인 매체(transient medium)(예를 들어, 명령어(724)를 전달하는 신호)를 포함한다.
이 명세서를 통틀어, 복수인 인스턴스가 단일 인스턴스로서 기술된 컴포넌트, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별적인 동작이 별개의 동작으로서 예시되고 기술되나, 개별적인 동작 중 하나 이상은 동시적으로 수행될 수 있고, 어떤 것도 그 동작이 예시된 순서로 수행될 것을 요구하지 않는다. 예시적 구성에서 별개의 컴포넌트로서 제시된 구조 및 기능성은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제시된 구조 및 기능성은 별개의 컴포넌트로서 구현될 수 있다. 이들 그리고 다른 변화, 수정, 추가 및 개선은 본 문서의 대상의 범주에 속한다.
어떤 실시예는 본 문서에서 로직(logic) 또는 다수의 컴포넌트, 모듈 또는 메커니즘을 포함하는 것으로 기술된다. 모듈은 소프트웨어 모듈(예를 들어, 머신 판독가능 매체 상에 또는 송신 매체 내에 저장되거나 그렇지 않으면 구현화된 코드), 하드웨어 모듈, 또는 이들의 임의의 적합한 조합을 구성할 수 있다. "하드웨어 모듈"은 어떤 동작을 수행하는 것이 가능한 유형적인(예를 들어, 비일시적인) 유닛이며 어떤 물리적 방식으로 구성되거나 마련될 수 있다. 다양한 예시적 실시예에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 프로세서 또는 프로세서의 그룹)은 본 문서에서 기술되는 바와 같은 어떤 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
다양한 실시예에서, 하드웨어 모듈은 기계적으로, 전자적으로 또는 이들의 임의의 적합한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 어떤 동작을 수행하도록 영구적으로 구성된 전용 회로망 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array: FPGA) 또는 ASIC과 같은 특수 목적 프로세서일 수 있다. 하드웨어 모듈은 또한 어떤 동작을 수행하도록 소프트웨어에 의해 임시적으로 구성되는 프로그램가능 로직 또는 회로망을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 범용 프로세서 또는 다른 프로그램가능 프로세서 내에 망라된 소프트웨어를 포함할 수 있다. 기계적으로, 전용이고 영구적으로 구성되는 회로망으로, 또는 임시적으로 구성되는 회로망(예를 들어, 소프트웨어에 의해 구성됨)으로 하드웨어 모듈을 구현하려는 결정은 비용 및 시간 고려사항에 의해 추진될(driven) 수 있다는 점이 인식될 것이다.
이에 따라, "하드웨어 모듈"이라는 어구는 유형적 개체(entity)를 망라하는 것으로 이해되어야 하고, 그러한 유형적 개체는 어떤 방식으로 동작하도록 또는 본 문서에 기술된 어떤 동작을 수행하도록 물리적으로 구성되거나, 영구적으로 구성되거나(예를 들어, 고정배선(hardwired)), 또는 임시적으로 구성될(예를 들어, 프로그램됨) 수 있다. 본 문서에서 사용되는 바와 같이, "하드웨어 구현된 모듈"(hardware-implemented module)은 하드웨어 모듈을 나타낸다. 하드웨어 모듈이 임시적으로 구성되는(예를 들어, 프로그램되는) 실시예를 고려하면, 하드웨어 모듈 각각이 시간에서의 임의의 하나의 인스턴스(instance)에서 구성되거나 인스턴스화될(instantiated) 필요는 없다. 예를 들어, 하드웨어 모듈이 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 범용 프로세서를 포함하는 경우에, 범용 프로세서는 상이한 시간에 각각 상이한 특수 목적 프로세서(예를 들어, 상이한 하드웨어 모듈을 포함함)로서 구성될 수 있다. 소프트웨어(예를 들어, 소프트웨어 모듈)는 이에 따라, 예컨대 시간의 하나의 인스턴스에서 특정한 하드웨어 모듈을 구성하고 시간의 상이한 인스턴스에서 상이한 하드웨어 모듈을 구성하도록, 하나 이상의 프로세서를 구성할 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에 정보를 제공하고 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 이에 따라, 기술된 하드웨어 모듈은 통신가능하게 커플링된 것으로 간주될 수 있다. 다수의 하드웨어 모듈이 동일시기에(contemporaneously) 존재하는 경우에, 통신은 (예를 들어, 적절한 회로 및 버스 상에서) 하드웨어 모듈 중 둘 이상 간의 또는 이 중에서의 신호 송신을 통해 달성될 수 있다. 다수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 실시예에서, 그러한 하드웨어 모듈 간의 통신은 예컨대 다수의 하드웨어 모듈이 액세스를 갖는 메모리 구조 내 정보의 저장 및 색출(retrieval)을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈이 동작을 수행하고 그 동작의 출력을 그것이 통신가능하게 커플링된 메모리 디바이스에 저장할 수 있다. 그리고 추가의 하드웨어 모듈은 저장된 출력을 색출하여 처리하기 위해 이후에 메모리 디바이스를 액세스할 수 있다. 하드웨어 모듈은 또한 입력 또는 출력 디바이스와의 통신을 개시할 수 있으며, 리소스(예를 들어, 정보의 모음)에 대해 동작할 수 있다.
본 문서에서 기술되는 예시적 방법의 다양한 동작은 관련된 동작을 수행하도록 영구적으로 구성되는 또는 (예를 들어, 소프트웨어에 의해) 임시적으로 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 임시적으로 구성되든 영구적으로 구성되든, 그러한 프로세서는 본 문서에 기술된 하나 이상의 동작 또는 기능을 수행하기 위해 동작하는 프로세서 구현된(processor-implemented) 모듈을 구성할 수 있다. 본 문서에서 사용되는 바와 같이, "프로세서 구현된 모듈"은 하나 이상의 프로세서를 사용하여 구현된 하드웨어 모듈을 나타낸다.
유사하게, 본 문서에서 기술되는 방법은 적어도 부분적으로 프로세서 구현된 것일 수 있는데, 프로세서는 하드웨어의 일례이다. 예를 들어, 방법의 동작들 중 적어도 몇몇은 하나 이상의 프로세서 또는 프로세서 구현된 모듈에 의해 수행될 수 있다. 본 문서에서 사용되는 바와 같이, "프로세서 구현된 모듈"은 하드웨어가 하나 이상의 프로세서를 포함하는 하드웨어 모듈을 나타낸다. 더욱이, 하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서 또는 "서비스로서의 소프트웨어"(Software as a Service: SaaS)로서 관련된 동작의 수행을 지원하도록 동작할 수도 있다. 예를 들어, 그 동작 중 적어도 몇몇은 (프로세서를 포함하는 머신의 예로서) 컴퓨터의 그룹에 의해 수행될 수 있는데, 이 동작들은 네트워크(예를 들어, 인터넷)를 통하여 그리고 하나 이상의 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(Application Program Interface: API))를 통하여 액세스가능하다.
어떤 동작의 수행은 단일 머신 내에 상주하는 것뿐만 아니라 다수의 머신에 걸쳐 배치되기도 하는 하나 이상의 프로세서 사이에 분산될 수 있다. 몇몇 예시적 실시예에서, 하나 이상의 프로세서 또는 프로세서 구현된 모듈은 단일 지리적 위치에(예를 들어, 가정 환경, 사무실 환경 또는 서버 팜(server farm) 내에) 위치될 수 있다. 다른 실시예에서, 하나 이상의 프로세서 또는 프로세서 구현된 모듈은 다수의 지리적 위치에 걸쳐 분산될 수 있다.
본 문서에서 논의된 대상의 몇몇 부분은 머신 메모리(예를 들어, 컴퓨터 메모리) 내의 비트 또는 이진 디지털 신호로서 저장된 데이터에 대한 동작의 상징적 표현 및 알고리즘의 측면에서 제시될 수 있다. 그러한 알고리즘 또는 상징적 표현은 데이터 처리 기술의 당업자에 의해 그의 성과의 실체를 다른 당업자에게 전하기 위해 사용되는 기법의 예이다. 본 문서에서 사용되는 바와 같이, "알고리즘"은 원하는 결과로 이어지는 동작의 자기 부합적인(self-consistent) 시퀀스 또는 유사한 처리이다. 이 맥락에서, 알고리즘 및 동작은 물리적 양의 물리적 조작을 수반한다. 반드시 그런 것은 아니나 전형적으로, 그러한 양은 머신에 의해 저장되거나, 액세스되거나, 전송되거나, 조합되거나, 비교되거나, 그렇지 않으면 조작될 수 있는 전기적, 자기적, 또는 광학적 신호의 형태를 취할 수 있다. 그러한 신호를 "데이터", "콘텐트", "비트", "값", "요소", "심볼", "기호", "항", "수", "숫자" 또는 유사한 것과 같은 단어를 사용하여 나타내는 것은 주로 통상적인 용법상 때때로 편리하다. 그러나, 이들 단어는 단지 편리한 라벨이고 적절한 물리적 양과 연관되어야 한다.
구체적으로 달리 언급되지 않는 한, "처리하기", "산출하기", "계산하기", "판정하기", "제시하기", 디스플레이하기", 또는 유사한 것과 같은 단어를 사용하는 본 문서에서의 논의는 하나 이상의 메모리(예를 들어, 휘발성 메모리, 비휘발성 메모리, 또는 이들의 임의의 적합한 조합), 레지스터, 또는 정보를 수신, 저장, 송신, 또는 디스플레이하는 다른 머신 컴포넌트 내의 물리적(예를 들어, 전자적, 자기적, 또는 광학적) 양으로서 표현된 데이터를 조작하고 변환하는 머신(예를 들어, 컴퓨터)의 액션 또는 프로세스를 나타낼 수 있다. 나아가, 구체적으로 달리 언급되지 않는 한, "한" 또는 "일"이라는 용어는 특허 문서에서와 공통적으로, 하나의 인스턴스보다 하나 이상을 포함하도록 본 문서에서 사용된다. 끝으로, 구체적으로 달리 언급되지 않는 한, 본 문서에서 사용되는 바와 같이, 접속사 "또는"은 비배타적인(non-exclusive) "또는"을 나타낸다.
이하의 열거된 실시예는 본 문서에서 논의된 방법, 머신 판독가능 매체 및 시스템(예를 들어, 장치)의 다양한 예시적 실시예를 기술한다:
제1 실시예는,
참조 데이터베이스로부터 참조 이미지들 및 대응하는 참조 깊이 맵들을 액세스하는 단계 - 제1 참조 이미지는 제1 참조 깊이 맵에 대응하고 적어도 세 개의 컬러 값에 의해 정의된 컬러 픽셀을 포함하고, 상기 제1 참조 깊이 맵은 상기 제1 참조 이미지 내의 상기 컬러 픽셀에 대응하는 깊이 값을 포함함 - 와,
시각적 서술자들 및 대응하는 깊이 서술자들을 상기 액세스된 참조 이미지들 및 상기 액세스된 참조 이미지들의 대응하는 참조 깊이 맵들로부터 계산하는 단계와,
상기 계산된 시각적 서술자들을 상기 계산된 시각적 서술자들의 계산된 대응하는 깊이 서술자들과 상관시키는 매트릭스를 생성하는 단계 - 상기 매트릭스의 생성은 머신의 프로세서에 의해 수행됨 - 와,
쿼리 이미지를 수신하는 단계와,
상기 수신된 쿼리 이미지로부터 시각적 서술자를 계산하는 단계와,
상기 계산된 시각적 서술자에 대응하는 깊이 서술자를 상기 생성된 매트릭스로부터 획득하는 단계와,
상기 쿼리 이미지에 대응하는 깊이 맵을 상기 쿼리 이미지로부터 계산된 상기 시각적 서술자에 대응하는 상기 획득된 깊이 서술자에 기반하여 생성하는 단계를 포함하는 방법을 제공한다.
제2 실시예는 제1 실시예에 따른 방법을 제공하되,
상기 쿼리 이미지의 수신은 어떠한 대응하는 깊이 맵도 없는 상기 쿼리 이미지를 수신한다.
제3 실시예는 제1 또는 제2 실시예에 따른 방법을 제공하되,
상기 참조 이미지들 및 상기 쿼리 이미지는 오직 적색-녹색-청색(Red-Green-Blue: RGB) 값을 포함하고 깊이 값이 결여된 RGB 이미지이다.
제4 실시예는 제1 내지 제3 실시예 중 임의의 것에 따른 방법을 제공하되,
상기 참조 이미지들은 참조 RGB 이미지들이고,
상기 참조 이미지들 및 대응하는 깊이 맵들의 액세스는 상기 참조 데이터베이스로부터 참조 적색-녹색-청색-깊이(Red-Green-Blue-Depth: RGB-D) 이미지들을 액세스하는 것을 포함하되, 각 참조 RGB-D 이미지는 상기 참조 RGB 이미지들 중 하나의 참조 RGB 이미지 및 상기 하나의 참조 RGB 이미지의 대응하는 참조 깊이 맵을 포함한다.
제5 실시예는 제1 내지 제4 실시예 중 임의의 것에 따른 방법을 제공하되,
상기 쿼리 이미지의 수신은 상기 쿼리 이미지를 오로지 상기 쿼리 이미지로부터 깊이 정보를 추정하기 위한 요청의 일부로서 수신하고,
상기 쿼리 이미지에 대응하는 상기 깊이 맵의 생성은 상기 깊이 정보를 추정하기 위한 상기 요청에 응답하는 것이다.
제6 실시예는 제1 내지 제5 실시예 중 임의의 것에 따른 방법을 제공하되,
상기 쿼리 이미지를 수퍼픽셀들로 구획하는 단계와,
상기 쿼리 이미지에 대응하는 상기 생성된 깊이 맵을 상기 쿼리 이미지 내의 상기 수퍼픽셀들에 기반하여 수정하는 단계를 더 포함한다.
제7 실시예는 제6 실시예에 따른 방법을 제공하되,
상기 생성된 깊이 맵의 수정은 상기 쿼리 이미지 내의 수퍼픽셀 내의 각 픽셀에 일정한 깊이 값을 할당하는 것을 포함한다.
제8 실시예는 제6 또는 제7 실시예에 따른 방법을 제공하되,
상기 생성된 깊이 맵의 수정은 랜덤 샘플 일치(Random SAmple Consensus: RANSAC) 알고리즘에 따라 상기 쿼리 이미지 내의 수퍼픽셀에 의해 표현되는 평면의 배향을 수정하는 것을 포함한다.
제9 실시예는 제1 내지 제8 실시예 중 임의의 것에 따른 방법을 제공하되,
상기 제1 참조 이미지에 대응하는 상기 제1 참조 깊이 맵은 상기 깊이 값에 의해 정의되는 깊이 픽셀을 포함하고 상기 제1 참조 이미지 내의 상기 컬러 픽셀에 대응하는 제1 참조 깊이 이미지이다.
제10 실시예는 제1 내지 제9 실시예 중 임의의 것에 따른 방법을 제공하되,
상기 쿼리 이미지는 물리적 객체의 표면을 묘사하고 카메라 정보를 포함하며,
상기 생성된 깊이 맵은 상기 쿼리 이미지 내에 표면이 묘사된 상기 물리적 객체의 상기 표면의 3차원 표현을 포함하고, 상기 방법은
상기 물리적 객체의 상기 표면의 3차원 모델을 상기 쿼리 이미지에 포함된 상기 카메라 정보에 기반하여 그리고 상기 물리적 객체를 묘사하는 상기 쿼리 이미지에 대응하는 상기 생성된 깊이 맵에 기반하여 생성하는 단계를 더 포함한다.
제11 실시예는 제10 실시예에 따른 방법을 제공하되,
상기 물리적 객체의 상기 표면의 3차원 시각화를 생성하기 위해 상기 생성된 3차원 모델을 3차원 렌더링 엔진에 제공하는 단계를 더 포함한다.
제12 실시예는 제10 또는 제11 실시예에 따른 방법을 제공하되,
상기 생성된 3차원 모델은 상기 물리적 객체의 상기 표면을 표현하는 점이 들어 있는 3차원 포인트 클라우드이고, 상기 방법은
상기 생성된 3차원 포인트 클라우드에 기반하여 상기 물리적 객체의 상기 표면의 길이를 계산하는 단계를 더 포함한다.
제13 실시예는 제12 실시예에 따른 방법을 제공하되,
상기 쿼리 이미지 내에 묘사된 상기 물리적 객체는 배송가능한 아이템이고, 상기 방법은
상기 배송가능한 아이템의 상기 표면의 상기 계산된 길이를 배송 애플리케이션에 제공하는 단계를 더 포함한다.
제14 실시예는,
하나 이상의 프로세서와,
위 하나 이상의 프로세서 중 적어도 하나의 프로세서를 포함하고, 참조 데이터베이스로부터 참조 이미지들 및 대응하는 참조 깊이 맵들을 액세스 - 제1 참조 이미지는 제1 참조 깊이 맵에 대응하고 적어도 세 개의 컬러 값에 의해 정의된 컬러 픽셀을 포함하고, 상기 제1 참조 깊이 맵은 상기 제1 참조 이미지 내의 상기 컬러 픽셀에 대응하는 깊이 값을 포함함 - 하고, 시각적 서술자들 및 대응하는 깊이 서술자들을 상기 액세스된 참조 이미지들 및 상기 액세스된 참조 이미지들의 대응하는 참조 깊이 맵들로부터 계산하며, 상기 계산된 시각적 서술자들을 상기 계산된 시각적 서술자들의 계산된 대응하는 깊이 서술자들과 상관시키는 매트릭스를 생성하도록 구성된 데이터베이스 훈련기 모듈과,
위 하나 이상의 프로세서 중 적어도 하나의 프로세서를 포함하고, 쿼리 이미지를 수신하고, 상기 수신된 쿼리 이미지로부터 시각적 서술자를 계산하며, 상기 계산된 시각적 서술자에 대응하는 깊이 서술자를 상기 훈련기 모듈에 의해 생성된 상기 매트릭스로부터 획득하고, 상기 쿼리 이미지에 대응하는 깊이 맵을 상기 쿼리 이미지로부터 계산된 상기 시각적 서술자에 대응하는 상기 획득된 깊이 서술자에 기반하여 생성하도록 구성된 깊이 맵 모듈을 포함하는 시스템을 제공한다.
제15 실시예는 제14 실시예에 따른 시스템을 제공하되, 상기 깊이 맵 모듈은 또한
상기 쿼리 이미지를 오로지 상기 쿼리 이미지로부터 깊이 정보를 추정하기 위한 요청의 일부로서 수신하고,
상기 깊이 정보를 추정하기 위한 상기 요청에 응답하여 상기 쿼리 이미지에 대응하는 상기 깊이 맵을 생성하도록 구성된다.
제16 실시예는 제14 또는 제15 실시예에 따른 시스템을 제공하되, 상기 깊이 맵 모듈은 또한
상기 쿼리 이미지를 수퍼픽셀들로 구획하고,
상기 쿼리 이미지에 대응하는 상기 생성된 깊이 맵을 상기 쿼리 이미지 내의 상기 수퍼픽셀들에 기반하여 수정하도록 구성된다.
제17 실시예는 제14 내지 제16 실시예 중 임의의 것에 따른 시스템을 제공하되,
상기 쿼리 이미지는 물리적 객체의 표면을 묘사하고 카메라 정보를 포함하며,
상기 생성된 깊이 맵은 상기 깊이 맵 모듈은 상기 쿼리 이미지 내에 표면이 묘사된 상기 물리적 객체의 상기 표면의 3차원 표현을 포함하고, 상기 시스템은
상기 물리적 객체의 상기 표면의 3차원 모델을 상기 쿼리 이미지에 포함된 상기 카메라 정보에 기반하여 그리고 상기 물리적 객체를 묘사하는 상기 쿼리 이미지에 대응하는 상기 생성된 깊이 맵에 기반하여 생성하도록 구성된 시각화 모듈을 더 포함한다.
제18 실시예는 제17 실시예에 따른 시스템을 제공하되,
상기 쿼리 이미지 내에 묘사된 상기 물리적 객체는 배송가능한 아이템이고,
상기 생성된 3차원 모델은 상기 배송가능한 아이템의 상기 표면을 표현하는 점이 들어 있는 3차원 포인트 클라우드이며, 상기 시스템은
상기 생성된 3차원 포인트 클라우드에 기반하여 상기 배송가능한 아이템의 상기 표면의 길이를 계산하고,
상기 배송가능한 아이템의 상기 표면의 상기 계산된 길이를 배송 애플리케이션에 제공하도록
구성된 배송 모듈을 더 포함한다.
제19 실시예는 명령어를 포함하는 비일시적 머신 판독가능 저장 매체로서, 상기 명령어는 머신의 하나 이상의 프로세서에 의해 실행되는 경우 상기 머신으로 하여금
참조 데이터베이스로부터 참조 이미지들 및 대응하는 참조 깊이 맵들을 액세스하는 것 - 제1 참조 이미지는 제1 참조 깊이 맵에 대응하고 적어도 세 개의 컬러 값에 의해 정의된 컬러 픽셀을 포함하고, 상기 제1 참조 깊이 맵은 상기 제1 참조 이미지 내의 상기 컬러 픽셀에 대응하는 깊이 값을 포함함 - 과,
시각적 서술자들 및 대응하는 깊이 서술자들을 상기 액세스된 참조 이미지들 및 상기 액세스된 참조 이미지들의 대응하는 참조 깊이 맵들로부터 계산하는 것과,
상기 계산된 시각적 서술자들을 상기 계산된 시각적 서술자들의 계산된 대응하는 깊이 서술자들과 상관시키는 매트릭스를 생성하는 것과,
쿼리 이미지를 수신하는 것과,
상기 수신된 쿼리 이미지로부터 시각적 서술자를 계산하는 것과,
상기 계산된 시각적 서술자에 대응하는 깊이 서술자를 상기 생성된 매트릭스로부터 획득하는 것과,
상기 쿼리 이미지에 대응하는 깊이 맵을 상기 쿼리 이미지로부터 계산된 상기 시각적 서술자에 대응하는 상기 획득된 깊이 서술자에 기반하여 생성하는 것을 포함하는 동작을 수행하게 하는, 비일시적 머신 판독가능 저장 매체를 제공한다.
제20 실시예는 제19 실시예에 따른 비일시적 머신 판독가능 저장 매체를 제공하되,
상기 쿼리 이미지는 물리적 객체의 표면을 묘사하고 카메라 정보를 포함하며,
상기 생성된 깊이 맵은 상기 쿼리 이미지 내에 표면이 묘사된 상기 물리적 객체의 상기 표면의 3차원 표현을 포함하고, 상기 동작은
상기 물리적 객체의 상기 표면의 3차원 모델을 상기 쿼리 이미지에 포함된 상기 카메라 정보에 기반하여 그리고 상기 물리적 객체를 묘사하는 상기 쿼리 이미지에 대응하는 상기 생성된 깊이 맵에 기반하여 생성하는 것을 더 포함한다.
제21 실시예는 이전에 기술된 실시예 중 임의의 하나의 방법을 수행하도록 머신을 제어하기 위한 머신 판독가능 명령어를 전달하는 캐리어 매체를 제공한다.

Claims (20)

  1. 참조 데이터베이스로부터 참조 이미지들 및 대응하는 참조 깊이 맵들에 액세스하는 단계 ― 제1 참조 이미지는 컬러 픽셀을 포함하고 상기 컬러 픽셀의 깊이 값을 포함하는 제1 참조 깊이 맵에 대응함 ― 와,
    시각적 서술자들 및 대응하는 깊이 서술자들을 액세스된 상기 참조 이미지들 및 상기 참조 깊이 맵들로부터 생성하는 단계와,
    상기 시각적 서술자들에 깊이 서술자를 맵핑하는 데이터 구조를 생성하는 단계와,
    물리적 아이템의 표면을 서술하는 쿼리 이미지(query image)에 액세스하는 단계와,
    상기 쿼리 이미지에 기초하여 시각적 서술자를 생성하는 단계와,
    상기 시각적 서술자에 기초하여, 생성된 상기 데이터 구조로부터 깊이 서술자를 획득하는 단계와,
    생성된 상기 데이터 구조로부터 획득된 상기 깊이 서술자에 기초하여 상기 쿼리 이미지의 깊이 맵을 생성하는 단계와,
    상기 쿼리 이미지를 수퍼픽셀들로 분할(subdividing)하는 단계와,
    상기 수퍼픽셀들 중 하나의 수퍼픽셀에 의해 표현된 평면의 배향(orientation)을 변경함으로써 상기 쿼리 이미지의 깊이 맵을 수정하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 쿼리 이미지에 액세스하는 단계는 상기 쿼리 이미지로부터 깊이 정보를 추정하기 위한 요청 내에 상기 쿼리 이미지를 수신하는 단계를 포함하고,
    상기 쿼리 이미지의 깊이 맵을 생성하는 단계는 상기 깊이 정보를 추정하기 위한 요청에 응답하는 것인
    방법.
  3. 제1항에 있어서,
    상기 쿼리 이미지에 액세스하는 단계는 상기 쿼리 이미지에 대해 어떠한 대응하는 깊이 맵도 없이 상기 쿼리 이미지에 액세스하는 단계를 포함하는
    방법.
  4. 제1항에 있어서,
    상기 참조 이미지들 및 상기 쿼리 이미지는, 오직 적색-녹색-청색(Red-Green-Blue: RGB) 값을 포함하고 깊이 값이 결여된 RGB 이미지인
    방법.
  5. 제1항에 있어서,
    상기 참조 이미지들은 참조 RGB 이미지들이고,
    상기 참조 이미지들 및 대응하는 깊이 맵들을 액세스하는 단계는 참조 적색-녹색-청색-깊이(Red-Green-Blue-Depth: RGB-D) 이미지들에 액세스하는 단계를 포함하되, 각 참조 RGB-D 이미지는 상기 참조 RGB 이미지들 중 하나의 참조 RGB 이미지 및 상기 하나의 참조 RGB 이미지의 대응하는 참조 깊이 맵을 포함하는
    방법.
  6. 제1항에 있어서,
    상기 수퍼픽셀에 의해 표현되는 평면의 변경된 배향을 갖는 수정된 깊이 맵에 기초하여 상기 물리적 아이템의 표면 상의 거리를 계산하는 단계를 더 포함하는
    방법.
  7. 제6항에 있어서,
    상기 물리적 아이템의 표면 상의 계산된 거리를 배송 애플리케이션(shipping application)에 제공하는 단계를 더 포함하는
    방법.
  8. 제1항에 있어서,
    상기 쿼리 이미지의 수퍼픽셀에 의해 표현된 평면의 배향을 변경하는 단계는 상기 수퍼픽셀 내의 각 픽셀에 일정한 깊이 값을 할당하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    상기 쿼리 이미지의 수퍼픽셀에 의해 표현된 평면의 배향을 변경하는 단계는 랜덤 샘플 일치(random sample consensus) 알고리즘에 기초하는
    방법.
  10. 제1항에 있어서,
    상기 물리적 아이템의 표면을 서술하는 상기 쿼리 이미지의 수정된 깊이 맵에 기초하여 상기 물리적 아이템의 표면의 3차원 모델을 생성하는 단계를 더 포함하는
    방법.
  11. 제10항에 있어서,
    상기 물리적 아이템의 표면의 3차원 모델을 생성하는 단계는 또한 상기 쿼리 이미지의 메타데이터에 포함된 카메라 정보에 기초하는
    방법.
  12. 제10항에 있어서,
    상기 물리적 아이템의 표면의 3차원 표현을 생성하도록 구성된 3차원 렌더링 엔진에 상기 물리적 아이템의 표면의 생성된 3차원 모델을 제공하는 단계를 더 포함하는
    방법.
  13. 제10항에 있어서,
    상기 물리적 아이템의 표면의 생성된 3차원 모델은 상기 물리적 아이템의 표면을 표현하는 포인트들이 들어 있는 3차원 포인트 클라우드이고,
    상기 방법은,
    생성된 3차원 포인트 클라우드에 기초하여 상기 물리적 아이템의 표면의 거리를 계산하는 단계를 더 포함하는
    방법.
  14. 제10항에 있어서,
    액세스된 쿼리 이미지를 세그먼트화(segmenting)하는 단계와,
    상기 수퍼픽셀에 의해 표현된 평면의 변경된 배향으로 상기 쿼리 이미지의 수정된 깊이 맵을 수정하는 단계를 더 포함하되,
    상기 수정하는 단계는 세그먼트화된 쿼리 이미지에 기초하는
    방법.
  15. 하나 이상의 프로세서와,
    명령어를 저장한 메모리를 포함하되, 상기 명령어는,
    상기 하나 이상의 프로세서 중 적어도 하나의 프로세서에 의해 실행될 때, 시스템으로 하여금,
    참조 이미지들 및 대응하는 참조 깊이 맵들에 액세스하고 ― 제1 참조 이미지는 컬러 픽셀을 포함하고 상기 컬러 픽셀의 깊이 값을 포함하는 제1 참조 깊이 맵에 대응함 ― ,
    시각적 서술자들 및 대응하는 깊이 서술자들을 액세스된 상기 참조 이미지들 및 상기 참조 깊이 맵들로부터 생성하고,
    상기 시각적 서술자들에 깊이 서술자를 맵핑하는 데이터 구조를 생성하고,
    물리적 아이템의 표면을 서술하는 쿼리 이미지에 액세스하고,
    상기 쿼리 이미지에 기초하여 시각적 서술자를 생성하고,
    상기 시각적 서술자에 기초하여, 생성된 상기 데이터 구조로부터 깊이 서술자를 획득하고,
    생성된 상기 데이터 구조로부터 획득된 상기 깊이 서술자에 기초하여 상기 쿼리 이미지의 깊이 맵을 생성하고,
    상기 쿼리 이미지를 수퍼픽셀들로 분할하고,
    상기 수퍼픽셀들 중 하나의 수퍼픽셀에 의해 표현된 평면의 배향을 변경함으로써 상기 쿼리 이미지의 깊이 맵을 수정하는 것을 포함하는 동작을 수행하게 하는
    시스템.
  16. 제15항에 있어서,
    상기 동작은,
    상기 수퍼픽셀에 의해 표현되는 평면의 변경된 배향을 갖는 수정된 깊이 맵에 기초하여 상기 물리적 아이템의 표면 상의 거리를 계산하는 것을 더 포함하는
    시스템.
  17. 제15항에 있어서,
    상기 동작은,
    상기 물리적 아이템의 표면을 서술하는 상기 쿼리 이미지의 수정된 깊이 맵에 기초하여 상기 물리적 아이템의 표면의 3차원 모델을 생성하는 것을 더 포함하는
    시스템.
  18. 제15항에 있어서,
    상기 동작은,
    액세스된 쿼리 이미지를 세그먼트화하는 것과,
    상기 수퍼픽셀에 의해 표현된 평면의 변경된 배향으로 상기 쿼리 이미지의 수정된 깊이 맵을 수정하는 것을 더 포함하되,
    상기 수정은 세그먼트화된 쿼리 이미지에 기초하는
    시스템.
  19. 명령어를 포함하는 머신 판독가능 저장 매체(machine-readable storage medium)로서,
    상기 명령어는 머신의 하나 이상의 프로세서에 의해 실행되는 경우 상기 머신으로 하여금,
    참조 이미지들 및 대응하는 참조 깊이 맵들에 액세스하는 것 ― 제1 참조 이미지는 컬러 픽셀을 포함하고 상기 컬러 픽셀의 깊이 값을 포함하는 제1 참조 깊이 맵에 대응함 ― 과,
    시각적 서술자들 및 대응하는 깊이 서술자들을 액세스된 상기 참조 이미지들 및 상기 참조 깊이 맵들로부터 생성하는 것과,
    상기 시각적 서술자들에 깊이 서술자를 맵핑하는 데이터 구조를 생성하는 것과,
    물리적 아이템의 표면을 서술하는 쿼리 이미지에 액세스하는 것과,
    상기 쿼리 이미지에 기초하여 시각적 서술자를 생성하는 것과,
    상기 시각적 서술자에 기초하여, 생성된 상기 데이터 구조로부터 깊이 서술자를 획득하는 것과,
    생성된 상기 데이터 구조로부터 획득된 상기 깊이 서술자에 기초하여 상기 쿼리 이미지의 깊이 맵을 생성하는 것과,
    상기 쿼리 이미지를 수퍼픽셀들로 분할하는 것과,
    상기 수퍼픽셀들 중 하나의 수퍼픽셀에 의해 표현된 평면의 배향을 변경함으로써 상기 쿼리 이미지의 깊이 맵을 수정하는 것을 포함하는 동작을 수행하게 하는
    머신 판독가능 저장 매체.
  20. 제19항에 있어서,
    상기 쿼리 이미지의 수퍼픽셀에 의해 표현된 평면의 배향을 변경하는 것은 상기 수퍼픽셀 내의 각 픽셀에 일정한 깊이 값을 할당하는 것을 포함하는
    머신 판독가능 저장 매체.
KR1020167009451A 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기 KR101637871B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361874096P 2013-09-05 2013-09-05
US61/874,096 2013-09-05
US14/288,233 2014-05-27
US14/288,233 US9275078B2 (en) 2013-09-05 2014-05-27 Estimating depth from a single image
PCT/US2014/054148 WO2015035089A1 (en) 2013-09-05 2014-09-04 Estimating depth from a single image

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157033171A Division KR101662972B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기

Publications (2)

Publication Number Publication Date
KR20160045911A KR20160045911A (ko) 2016-04-27
KR101637871B1 true KR101637871B1 (ko) 2016-07-07

Family

ID=52583355

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020167009451A KR101637871B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기
KR1020177024014A KR101823314B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기
KR1020167026770A KR101774726B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기
KR1020157033171A KR101662972B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020177024014A KR101823314B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기
KR1020167026770A KR101774726B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기
KR1020157033171A KR101662972B1 (ko) 2013-09-05 2014-09-04 단일 이미지로부터 깊이를 추정하기

Country Status (7)

Country Link
US (3) US9275078B2 (ko)
EP (1) EP3042361B1 (ko)
KR (4) KR101637871B1 (ko)
CN (2) CN109242946B (ko)
AU (2) AU2014315181B2 (ko)
CA (1) CA2911522C (ko)
WO (1) WO2015035089A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150040072A1 (en) 2013-08-01 2015-02-05 Ebay Inc. Three dimensional image dimension mapping
US9275078B2 (en) 2013-09-05 2016-03-01 Ebay Inc. Estimating depth from a single image
US9928598B2 (en) * 2014-10-31 2018-03-27 Canon Kabushiki Kaisha Depth measurement apparatus, imaging apparatus and depth measurement method that calculate depth information of a target pixel using a color plane of which a correlation value is at most a threshold
US9747636B2 (en) 2014-12-08 2017-08-29 Bank Of America Corporation Enhancing information security using an information passport dashboard
US9569859B2 (en) 2014-12-29 2017-02-14 Dell Products, Lp System and method for redefining depth-based edge snapping for three-dimensional point selection
US9792487B2 (en) * 2014-12-29 2017-10-17 Dell Products, Lp System and method for determining dimensions of an object in an image
KR102047031B1 (ko) * 2015-05-13 2019-11-20 구글 엘엘씨 딥스테레오: 실세계 이미지로부터 새로운 뷰들을 예측하는 러닝
US10410093B2 (en) * 2015-06-04 2019-09-10 Siemens Healthcare Gmbh Medical pattern classification using non-linear and nonnegative sparse representations
CN107850445B (zh) * 2015-08-03 2021-08-27 通腾全球信息公司 用于生成及使用定位参考数据的方法及系统
ITUB20153277A1 (it) * 2015-08-28 2017-02-28 St Microelectronics Srl Procedimento per ricerche visuali, sistema, apparecchiatura e prodotto informatico corrispondenti
KR101692634B1 (ko) * 2015-08-28 2017-01-03 연세대학교 산학협력단 2차원 영상의 3차원 변환 장치 및 방법
US10769806B2 (en) * 2015-09-25 2020-09-08 Logical Turn Services, Inc. Dimensional acquisition of packages
CA2943068A1 (en) * 2015-09-25 2017-03-25 Logical Turn Services Inc. Dimensional acquisition of packages
EP3264763A1 (en) * 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
US10339497B2 (en) * 2016-07-21 2019-07-02 Ebay Inc. System and method for dynamic inventory management
KR101784620B1 (ko) * 2016-07-26 2017-11-06 연세대학교 산학협력단 스테레오 매칭을 통한 깊이값의 신뢰도 측정 방법 및 장치
CN107025369B (zh) * 2016-08-03 2020-03-10 北京推想科技有限公司 一种对医疗图像进行转换学习的方法和装置
US10574909B2 (en) 2016-08-08 2020-02-25 Microsoft Technology Licensing, Llc Hybrid imaging sensor for structured light object capture
JP6921500B2 (ja) * 2016-10-24 2021-08-18 キヤノン株式会社 距離検出装置および距離検出方法
US10332317B2 (en) * 2016-10-25 2019-06-25 Microsoft Technology Licensing, Llc Virtual reality and cross-device experiences
CN106612427B (zh) * 2016-12-29 2018-07-06 浙江工商大学 一种基于卷积神经网络的时空一致性深度图序列的生成方法
KR101947782B1 (ko) 2017-02-22 2019-02-13 한국과학기술원 열화상 영상 기반의 거리 추정 장치 및 방법. 그리고 이를 위한 신경망 학습 방법
CN108510536B (zh) * 2017-02-28 2021-09-21 富士通株式会社 多视点图像的深度估计方法和深度估计设备
US10628950B2 (en) 2017-03-01 2020-04-21 Microsoft Technology Licensing, Llc Multi-spectrum illumination-and-sensor module for head tracking, gesture recognition and spatial mapping
US10096122B1 (en) 2017-03-28 2018-10-09 Amazon Technologies, Inc. Segmentation of object image data from background image data
US9965865B1 (en) * 2017-03-29 2018-05-08 Amazon Technologies, Inc. Image data segmentation using depth data
US10217195B1 (en) 2017-04-17 2019-02-26 Amazon Technologies, Inc. Generation of semantic depth of field effect
CN109118532B (zh) * 2017-06-23 2020-11-20 百度在线网络技术(北京)有限公司 视觉景深估计方法、装置、设备及存储介质
US10425629B2 (en) * 2017-06-28 2019-09-24 Siemens Healthcare Gmbh System for dense registration of two-dimensional depth images
CN111264058A (zh) * 2017-09-15 2020-06-09 交互数字Vc控股公司 用于对三自由度和体积兼容视频流进行编码和解码的方法、设备
KR102468897B1 (ko) 2017-10-16 2022-11-21 삼성전자주식회사 깊이 값을 추정하는 방법 및 장치
US10739784B2 (en) * 2017-11-29 2020-08-11 Qualcomm Incorporated Radar aided visual inertial odometry initialization
US10740876B1 (en) * 2018-01-23 2020-08-11 Facebook Technologies, Llc Systems and methods for generating defocus blur effects
KR102595787B1 (ko) 2018-02-27 2023-11-24 삼성전자주식회사 전자 장치 및 그 제어 방법
CN108537836A (zh) * 2018-04-12 2018-09-14 维沃移动通信有限公司 一种深度数据获取方法及移动终端
US10810754B2 (en) 2018-04-24 2020-10-20 Ford Global Technologies, Llc Simultaneous localization and mapping constraints in generative adversarial networks for monocular depth estimation
CN109166144B (zh) * 2018-07-20 2021-08-24 中国海洋大学 一种基于生成对抗网络的图像深度估计方法
RU2698402C1 (ru) * 2018-08-30 2019-08-26 Самсунг Электроникс Ко., Лтд. Способ обучения сверточной нейронной сети для восстановления изображения и система для формирования карты глубины изображения (варианты)
CN110909580B (zh) * 2018-09-18 2022-06-10 北京市商汤科技开发有限公司 数据处理方法及装置、电子设备及存储介质
US10699430B2 (en) * 2018-10-09 2020-06-30 Industrial Technology Research Institute Depth estimation apparatus, autonomous vehicle using the same, and depth estimation method thereof
EP3844714A4 (en) * 2018-10-26 2021-12-01 Samsung Electronics Co., Ltd. METHOD AND DEVICE FOR IMAGE SEGMENTATION USING AN EVENT SENSOR
US10643093B1 (en) * 2018-11-19 2020-05-05 International Business Machines Corporation Automated bounding box generation for objects in an image
EP3744088A1 (en) 2019-04-01 2020-12-02 Google LLC Techniques to capture and edit dynamic depth images
US11094072B2 (en) 2019-04-09 2021-08-17 Samsung Electronics Co., Ltd System and method for providing single image depth estimation based on deep neural network
US11044462B2 (en) 2019-05-02 2021-06-22 Niantic, Inc. Self-supervised training of a depth estimation model using depth hints
US11574353B2 (en) * 2019-10-09 2023-02-07 Target Brands, Inc. Compatibility based furniture recommendations
KR20210058320A (ko) 2019-11-14 2021-05-24 한국전자통신연구원 단일 입력 영상을 이용한 3d 모델 생성 방법 및 이를 위한 장치
US11755917B2 (en) * 2019-11-15 2023-09-12 Waymo Llc Generating depth from camera images and known depth data using neural networks
US11847771B2 (en) 2020-05-01 2023-12-19 Samsung Electronics Co., Ltd. Systems and methods for quantitative evaluation of optical map quality and for data augmentation automation
US11568642B2 (en) * 2020-10-12 2023-01-31 Adobe Inc. Large-scale outdoor augmented reality scenes using camera pose based on learned descriptors
KR102581001B1 (ko) * 2021-04-06 2023-09-21 네이버 주식회사 기계 학습을 위한 학습 데이터 생성 방법 및 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3976900B2 (ja) * 1998-07-23 2007-09-19 キヤノン株式会社 視点位置姿勢の決定方法及びカメラ装置
KR100450823B1 (ko) * 2001-11-27 2004-10-01 삼성전자주식회사 깊이 이미지 기반 3차원 물체의 표현을 위한 노드 구조
CN100553347C (zh) * 2006-10-26 2009-10-21 上海交通大学 立体视觉系统的场景深度恢复和三维重建方法
KR100917377B1 (ko) 2007-03-30 2009-09-16 성균관대학교산학협력단 인식/추론 수준에 따른 계층적 구조의 실내 정보를 가지는서비스 로봇의 중앙 정보처리 시스템 및 방법
KR101619076B1 (ko) * 2009-08-25 2016-05-10 삼성전자 주식회사 모바일 플랫폼의 동적 물체 검출 및 추적 방법
US9014848B2 (en) 2010-05-20 2015-04-21 Irobot Corporation Mobile robot system
KR20120001847A (ko) * 2010-06-30 2012-01-05 김종배 이미지 검색시스템 및 이미지 검색방법
KR20120033859A (ko) 2010-09-30 2012-04-09 엔에이치엔(주) 이미지 검색 방법 및 검색 시스템
KR101887099B1 (ko) * 2010-12-29 2018-08-09 삼성전자주식회사 이미지 처리 시스템 및 이미지 처리 방법
CN102902807B (zh) * 2011-10-18 2016-06-29 微软技术许可有限责任公司 使用多个视觉输入模态的视觉搜索
US20130101158A1 (en) * 2011-10-21 2013-04-25 Honeywell International Inc. Determining dimensions associated with an object
US9471988B2 (en) * 2011-11-02 2016-10-18 Google Inc. Depth-map generation for an input image using an example approximate depth-map associated with an example similar image
US9275078B2 (en) * 2013-09-05 2016-03-01 Ebay Inc. Estimating depth from a single image

Also Published As

Publication number Publication date
CN109242946B (zh) 2023-05-26
US10255686B2 (en) 2019-04-09
US20170193672A1 (en) 2017-07-06
US9594774B2 (en) 2017-03-14
EP3042361A4 (en) 2017-01-04
US20160124995A1 (en) 2016-05-05
AU2016201655B2 (en) 2017-04-20
KR20150140392A (ko) 2015-12-15
KR20160116051A (ko) 2016-10-06
WO2015035089A1 (en) 2015-03-12
US9275078B2 (en) 2016-03-01
AU2014315181A1 (en) 2015-11-26
CA2911522A1 (en) 2015-03-12
KR101662972B1 (ko) 2016-10-05
US20150063681A1 (en) 2015-03-05
CN105359190A (zh) 2016-02-24
EP3042361B1 (en) 2019-04-03
EP3042361A1 (en) 2016-07-13
AU2014315181B2 (en) 2015-12-17
KR101823314B1 (ko) 2018-01-29
CA2911522C (en) 2017-05-09
KR20170102371A (ko) 2017-09-08
CN105359190B (zh) 2018-09-21
AU2016201655A1 (en) 2016-04-07
CN109242946A (zh) 2019-01-18
KR101774726B1 (ko) 2017-09-04
KR20160045911A (ko) 2016-04-27

Similar Documents

Publication Publication Date Title
KR101637871B1 (ko) 단일 이미지로부터 깊이를 추정하기
EP3852068A1 (en) Method for training generative network, method for generating near-infrared image and apparatuses
CN106096542B (zh) 基于距离预测信息的图像视频场景识别方法
US10262451B1 (en) View-dependent color compression
US9551579B1 (en) Automatic connection of images using visual features
US10235800B2 (en) Smoothing 3D models of objects to mitigate artifacts
US20180329927A1 (en) Thumbnail Generation from Panoramic Images
Chu et al. Generative adversarial network-based method for transforming single RGB image into 3D point cloud
Dong et al. A time-critical adaptive approach for visualizing natural scenes on different devices
CN106469437B (zh) 图像处理方法和图像处理装置
US11550387B2 (en) Stereo correspondence search
CN113706543A (zh) 一种三维位姿的构建方法、设备及存储介质
WO2022193104A1 (zh) 一种光场预测模型的生成方法及相关装置
Kang et al. Near-real-time stereo matching method using temporal and spatial propagation of reliable disparity
CN115375740A (zh) 位姿确定方法和三维模型的生成方法、装置、设备、介质
Hong et al. Real-time cloud-based 3D reconstruction and interaction with a stereo smartphone
CN113947635A (zh) 图像定位方法、装置、电子设备以及存储介质
CN112819880A (zh) 三维物体检测方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 4