KR102199772B1 - 3차원 모델 데이터 생성 방법 - Google Patents

3차원 모델 데이터 생성 방법 Download PDF

Info

Publication number
KR102199772B1
KR102199772B1 KR1020190144540A KR20190144540A KR102199772B1 KR 102199772 B1 KR102199772 B1 KR 102199772B1 KR 1020190144540 A KR1020190144540 A KR 1020190144540A KR 20190144540 A KR20190144540 A KR 20190144540A KR 102199772 B1 KR102199772 B1 KR 102199772B1
Authority
KR
South Korea
Prior art keywords
camera
target object
pose data
pose
data
Prior art date
Application number
KR1020190144540A
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 네이버랩스 주식회사
Priority to KR1020190144540A priority Critical patent/KR102199772B1/ko
Priority to US17/095,082 priority patent/US11373329B2/en
Application granted granted Critical
Publication of KR102199772B1 publication Critical patent/KR102199772B1/ko

Links

Images

Classifications

    • 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/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • 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/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

다양한 실시예들에 따라서 서버와 통신하는 컴퓨팅 장치에 의해 수행되는 3차원 모델 데이터 생성 방법이 개시된다. 3차원 모델 데이터 생성 방법은 제1 시점에 카메라로 대상 물체를 촬영하고, 이때의 상기 카메라의 제1 포즈 데이터를 저장하는 단계, 제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 포즈 데이터를 생성하는 단계, 상기 카메라의 제1 포즈 데이터와 상기 카메라의 제2 포즈 데이터에 기초하여 상기 제2 시점의 상기 카메라와 상기 대상 물체 간의 거리를 산출하는 단계, 상기 카메라의 제2 포즈 데이터와 상기 거리에 기초하여 상기 대상 물체의 포즈 데이터를 생성하는 단계, 및 상기 카메라의 제2 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정하는 단계를 포함한다.

Description

3차원 모델 데이터 생성 방법{Method for providing 3D modeling data}
본 개시는 3차원 모델 데이터 생성 방법에 관한 것으로서, 보다 상세히 카메라가 촬영한 대상 물체의 이미지와 카메라에 대한 대상 물체의 상대 포즈 정보를 생성할 수 있는 3차원 모델 데이터 생성 방법에 관한 것이다.
증강현실(augmented reality)은 가상현실(virtual reality)의 한 분야로 실제 환경에 가상 물체를 합성하여 원래의 환경에 존재하는 물체처럼 보이도록 하는 컴퓨터 그래픽 기법이다.
증강현실을 구현하기 위한 기술들 중, 대상 물체를 인식하고 인식된 대상 물체의 포즈를 추정하고 대상 물체의 포즈와 동일한 포즈를 갖는 가상 물체의 3차원 이미지를 생성하여 대상 물체 상에 증강하는 기술이 존재한다. 대상 물체 상에 가상 물체의 3차원 이미지를 증강하기 위해서는, 촬영 이미지에서 대상 물체를 정확히 인식할 수 있어야 할 뿐만 아니라, 이미지 내의 대상 물체를 통해 촬영 시의 카메라에 대한 대상 물체의 상대 포즈를 정확히 산출할 수 있어야 한다. 인공 신경망을 이용한 학습 모델을 이용하여 대상 물체의 종류, 위치 및 상대 포즈를 추출하는 시도가 있었으나, 이러한 학습 모델을 이용하기 위해서는 학습 모델을 트레이닝하기 위한 3차원 모델 데이터가 필요하다.
3차원 모델 데이터를 생성하기 위하여, 마커 주변에 대상 물체를 위치시키고, 대상 물체와 함께 마커를 촬영함으로써, 대상 물체의 상대 포즈를 추출할 수 있다. 그러나, 마커를 사용하기 어려운 환경이라거나, 대상 물체가 너무 커서 주변에 마커를 배치시킬 수 없는 환경에서는 이러한 방식을 이용할 수 없다. 마커를 사용할 수 없는 환경에서 3차원 모델 데이터를 생성함으로써, 정확도가 높게 대상 물체를 인식하고 포즈를 추정할 수 있도록 하는 방법이 필요하다.
본 개시가 해결하고자 하는 과제는 대상 물체를 카메라로 촬영하면서 3차원 모델 데이터를 생성하는 방법 및 프로그램을 제공하는 것이다.
상술한 기술적 과제들을 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면에 따르면, 컴퓨팅 장치에 의해 수행되는 3차원 모델 데이터 생성 방법은 제1 시점에 카메라로 대상 물체를 촬영하고, 이때의 상기 카메라의 제1 포즈 데이터를 저장하는 단계, 제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 포즈 데이터를 생성하는 단계, 상기 카메라의 제1 포즈 데이터와 상기 카메라의 제2 포즈 데이터에 기초하여 상기 제2 시점의 상기 카메라와 상기 대상 물체 간의 거리를 산출하는 단계, 상기 카메라의 제2 포즈 데이터와 상기 거리에 기초하여 상기 대상 물체의 포즈 데이터를 생성하는 단계, 및 상기 카메라의 제2 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정하는 단계를 포함한다.
본 개시의 제2 측면에 따르면, 컴퓨팅 장치에 의해 수행되는 차원 모델 데이터 생성 방법은 제1 시점에 카메라로 대상 물체를 촬영하고, 이때의 상기 카메라의 제1 포즈 데이터를 저장하는 단계, 제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 포즈 데이터를 생성하는 단계, 상기 카메라의 제1 포즈 데이터와 상기 카메라의 제2 포즈 데이터에 기초하여 상기 제2 시점의 상기 카메라와 상기 대상 물체 간의 거리를 산출하는 단계, 상기 카메라의 제2 포즈 데이터에 기초하여 피치각과 롤각을 산출하는 단계, 요우각을 수신하는 단계, 상기 거리, 상기 피치각, 상기 롤각 및 상기 요우각에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 생성하는 단계, 상기 카메라의 제2 포즈 데이터와 상기 대상 물체의 제2 상대 포즈 데이터에 기초하여 상기 대상 물체의 포즈 데이터를 생성하는 단계, 제3 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제3 이미지를 생성하고, 이때의 상기 카메라의 제3 포즈 데이터를 생성하는 단계, 및 상기 카메라의 제3 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제3 상대 포즈 데이터를 추정하는 단계를 포함한다.
본 개시의 제3 측면에 따르면, 컴퓨팅 장치를 이용하여 3차원 모델 데이터 생성 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램이 제공된다.
본 개시의 다양한 실시예들에 따르면, 마커 없이 대상 물체를 카메라를 촬영하면서 촬영 이미지와 함께 카메라에 대한 대상 물체의 상대 포즈 정보를 추출하여 3차원 모델 데이터를 생성할 수 있다. 3차원 모델 데이터는 나중에 대상 물체를 촬영한 이미지에서 대상 물체의 종류, 위치, 상대 포즈 등을 추출하는 학습 모델을 트레이닝하는데 사용될 수 있다.
도 1은 일 실시예에 따른 3차원 모델 데이터 생성 장치의 네트워크 구성을 예시적으로 도시한다.
도 2는 일 실시예에 따른 단말기와 서버의 내부 구성을 도시한다.
도 3은 일 실시예에 따른 단말기 프로세서의 내부 구성을 도시한다.
도 4는 일 실시예에 따른 3차원 모델 데이터 생성 방법을 설명하기 위한 순서도이다.
도 5는 카메라가 제2 시간에 대상 물체를 촬영한 이미지와 대상 물체의 상대 포즈 정보, 및 대상 물체에 대응하는 가상 블럭이 표시된 처리 이미지를 도시한다.
도 6은 제1 내지 제3 시간에 카메라로 대상 물체를 촬영하는 것을 도시한다.
도 7a 내지 도 7f는 일 실시예에 따라서 대상 물체의 상대 포즈 정보를 생성하는 단계들을 설명하기 위한 도면들이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
도 1은 일 실시예에 따른 3차원 모델 데이터 생성 장치의 네트워크 구성을 예시적으로 도시한다.
도 1을 참조하면, 3차원 모델 데이터 생성 장치는 단말기(101-104)일 수 있으며, 네트워크(Net)를 통해 서버(200)에 접속할 수 있다.
일 실시예에 따른 3차원 모델 데이터 생성 장치는 대상 물체를 카메라로 촬영하여, 대상 물체의 이미지와 대상 물체의 상대 포즈 정보를 포함하는 3차원 모델 데이터를 생성할 수 있다.
상대 포즈 정보는 카메라에 대한 대상 물체의 포즈를 나타내는 정보이다. 상대 포즈 정보로부터 카메라 좌표계 상의 대상 물체의 포즈가 생성될 수 있다. 상대 포즈 정보는 예컨대 대상 물체의 상대 포즈 데이터 또는 상대 포즈 데이터로부터 생성되는 2차원 카메라 좌표계 상의 가상 블럭의 꼭지점 좌표값들을 포함할 수 있다.
3차원 모델 데이터는 대상 물체의 이미지와 상대 포즈 정보를 포함한다. 3차원 모델 데이터는 3차원 증강 현실 표시 장치 또는 시스템에서 대상 물체의 위치, 종류, 포즈를 추정하기 위해 사용되는 학습 모델을 트레이닝하는데 사용될 수 있다. 3차원 증강 현실 표시 장치 또는 시스템은 대상 물체를 촬영한 이미지 상에 대상 물체와 동일한 포즈를 갖도록 렌더링된 가상 물체의 3차원 이미지를 증강한 증강 이미지를 생성하는 장치 또는 시스템이다.
대상 물체는 주변에 마커가 없는 환경에 놓여진다. 마커는 대상 물체의 포즈를 결정하는 기준이다. 본 발명에 따르면 대상 물체 주변에 마커가 없기 때문에, 대상 물체의 포즈는 외부 환경에 의해 결정되지 않고 사용자 또는 본 발명의 3차원 모델 데이터 생성 장치에 의해 결정된다.
본 명세서에서, 대상 물체는 카메라로 촬영하는 물체로서, 본 발명에 따라 생성되는 3차원 모델 데이터는 이 대상 물체에 대한 것이다. 포즈(pose)는 물체의 위치(position)와 배향(orientation)를 포함하는 개념이다. 대상 물체의 포즈는 대상 물체의 위치와 배향을 월드 좌표계 상에 표현한 것으로 이해할 수 있고, 대상 물체의 상대 포즈는 대상 물체의 위치와 배향을 카메라 좌표계 상에 표현한 것으로 이해할 수 있다. 카메라의 포즈는 카메라의 위치와 배향을 월드 좌표계 상에서 표현한 것으로 이해할 수 있다.
월드 좌표계는 지구 중심 좌표계와 같은 절대 좌표계로 이해될 수 있다. 카메라 좌표계는 카메라의 포즈에 의해 정의되는 좌표계로서, 카메라는 카메라 좌표계의 원점에 위치하게 되고, 카메라가 지향하는 방향에 따라 카메라 좌표계의 x, y, z축이 정의될 수 있다.
카메라 좌표계에서, x축은 카메라에서 피사체를 바라볼 때 가로 방향(오른쪽이 +)으로 정의되고, y축은 세로 방향(위쪽이 +)이고, z축은 피사체에서 카메라로 향하는 방향으로 정의될 수 있다. 본 명세서에서는 앞에서 정의한 카메라 좌표계의 x, y, z축에 따라 본 발명의 실시예들을 설명한다. 그러나, 앞에서 정의한 카메라 좌표계의 x, y, z축은 오로지 예시적이며, 사용자의 설계에 따라 달라질 수 있다.
2차원 카메라 좌표계 역시 카메라의 포즈에 의해 정의되는 2차원 좌표계로서, 카메라의 위치에서 보이는 3차원 공간을 2차원으로 투영한 좌표계이다. 2차원 카메라 좌표계는 카메라에 의해 촬영된 2차원 이미지로 표현될 수 있으며, x축은 2차원 이미지의 가로 방향(오른쪽 +)으로 정의되고, y축은 세로 방향(위쪽이 +)이다. 2차원 카메라 좌표계의 x축과 y축은 예시적이며, 사용자의 설계에 따라 달라질 수 있다.
본 발명의 용이한 이해를 위해, 오브젝트 좌표계가 사용된다. 오브젝트 좌표계는 대상 물체 및 사용자가 선택한 방향에 의해 결정되는 좌표계로서, 대상 물체는 오브젝트 좌표계의 원점에 위치하게 되고, 대상 물체에 대해 사용자가 정의한 방향에 의해 오브젝트 좌표계의 x, y, z 축이 정의될 수 있다.
오브젝트 좌표계에서, +z 방향은 대상 물체의 중심에서 정면을 향하는 방향으로 정의될 수 있다. 즉, 대상 물체의 정면을 바라보는 방향은 오브젝트 좌표계에서 -z 방향으로 정의될 수 있다. +x 방향은 대상 물체의 중심에서 좌측을 향하는 방향으로 정의되고, +y 방향은 대상 물체의 중심에서 상측을 향하는 방향으로 정의될 수 있다. 본 명세서에서는 앞에서 정의한 오브젝트 좌표계의 x, y, z축에 따라 본 발명의 실시예들을 설명한다. 그러나, 앞에서 정의한 오브젝트 좌표계의 x, y, z축은 오로지 예시적이며, 오브젝트 좌표계의 x, y, z축은 사용자의 설계에 따라 달라질 수 있다.
단말기(101-104)는 컴퓨팅 기능을 수행하는 사용자 단말기로서, 단말기(도 2의 100)으로 지칭할 수 있다. 단말기(100)는 예컨대 스마트폰(101), 태블릿 PC(102), 노트북 컴퓨터(103), 및 개인용 컴퓨터(104) 등을 포함할 수 있다. 일 예에 따르면, 단말기(100)는 스마트폰(101), 태블릿 PC(102), 노트북 컴퓨터(103) 등과 같이 카메라, 무선 통신 모듈, 및 입출력 장치를 포함할 수 있다. 다른 예에 따르면, 단말기(100)는 개인용 컴퓨터(104)와 같이 카메라를 직접 포함하지 않고, 카메라(미 도시)와 네트워크를 통해 연결될 수 있다. 개인용 컴퓨터(104)는 카메라가 촬영한 이미지 및 카메라의 정보를 네트워크(예컨대, Net)를 통해 수신할 수 있다. 카메라는 관성 센서 등을 포함할 수 있으며, 카메라의 정보는 카메라의 포즈 정보 등을 포함할 수 있다. 또 다른 예에 따르면, 단말기(100)는 카메라를 포함하는 노트북 컴퓨터(103) 또는 개인용 컴퓨터(104)일 수 있다.
아래에서는 단말기(100)가 예컨대 스마트폰(101)과 같이 카메라를 직접 포함하는 것으로 가정하여 설명한다. 하지만, 본 발명의 다른 실시예에 따르면, 단말기(100)는 직접 카메라를 포함하지 않고 카메라와 네트워크를 통해 실시간으로 데이터를 주고 받을 수 있다.
단말기(100)는 유선 통신 및/또는 무선 통신을 통해 네트워크(Net)에 접속하여 서버(200)와 통신할 수 있다. 단말기(100)는 카메라를 통해 촬영한 대상 물체의 이미지와 대상 물체의 상대 포즈 정보를 포함하는 3차원 모델 데이터를 저장하거나, 서버(200)에 전송할 수 있다. 서버(200)는 단말기(100)로부터 대상 물체의 이미지 및 상대 포즈 정보를 수신하여 학습 모델을 트레이닝시킬 수 있다.
본 명세서에서는 단말기(100)가 대상 물체에 대하여 생성한 3차원 모델 데이터를 서버(200)에 전송하는 것으로 가정하여 설명하지만, 단말기(100)가 3차원 모델 데이터를 이용하여 인공 신경망으로 구현된 학습 모델을 트레이닝 시킬 수도 있다.
네트워크(Net)는 단말기(100)와 서버(200)를 통신 가능하게 연결할 수 있다. 예를 들어, 네트워크(Net)는 단말기(100)가 서버(200)에 접속하여 대상 물체의 이미지 및 상대 포즈 정보를 송신할 수 있는 접속 경로를 제공한다. 네트워크(Net)는 단말기(100)가 카메라로부터 이미지 데이터 및 카메라의 포즈 데이터를 수신하는 경로를 제공할 수 있다.
네트워크(Net)는 유선 네트워크 및/또는 무선 네트워크를 포함할 수 있다. 예를 들면, 네트워크(Net)는 근거리 네트워크(LAN: Local Area Network), 도시권 네트워크(MAN: Metropolitan Area Network), 광역 네트워크(WAN: Wide Area Network) 등과 같은 다양한 네트워크를 포함할 수 있다. 네트워크(Net)는 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 실시예에 따른 네트워크(Net)는 앞에서 열거된 네트워크에 국한되지 않고, 공지의 이동 통신 네트워크, 공지의 무선 데이터 네트워크, 공지의 전화 네트워크, 공지의 유/무선 텔레비전 네트워크 중 적어도 하나를 포함할 수 있다. 네트워크(Net)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있다.
서버(200)는 네트워크(Net)를 통해 단말기(100)와 통신하며 명령, 코드, 파일, 콘텐트, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 서버(200)는 단말기(100)로부터 대상 물체의 이미지 및 상대 포즈 정보를 수신하고, 대상 물체의 이미지 및 상대 포즈 정보를 이용하여 인공 신경망으로 구현된 학습 모델을 트레이닝할 수 있다. 단말기(100)는 하나의 대상 물체에 대하여 약 수십 내지 수백 개의 3차원 모델 데이터를 생성하여 서버(200)에 제공할 수 있다.
서버(200)에 3차원 증강 현실을 표시할 수 있는 증강 현실 단말기(미 도시)가 접속할 수 있다. 증강 현실 단말기는 대상 물체를 촬영한 이미지를 서버(200)에 송신하면, 서버(200)는 수신된 이미지로부터 학습 모델을 이용하여 대상 물체의 종류, 위치, 및 포즈를 추출할 수 있다. 서버(200)는 네트워크(Net)를 통해 대상 물체의 상대 포즈 데이터, 위치 데이터, 및 종류 데이터 중 적어도 하나를 증강 현실 단말기에 제공할 수 있다.
증강 현실 단말기는 대상 물체의 상대 포즈 데이터를 기초로 대상 물체와 동일한 포즈를 갖는 가상 물체의 3차원 이미지를 렌더링할 수 있다. 증강 현실 단말기는 가상 물체의 3차원 렌더링을 수행할 수 있는 렌더링 모델을 포함할 수 있다. 렌더링 모델은 복수의 가상 물체들을 렌더링하기 위한 복수의 기초 데이터를 포함할 수 있다.
도 2는 일 실시예에 따른 단말기와 서버의 내부 구성을 도시한다.
도 2를 참조하면, 3차원 모델 데이터 생성 장치(100)는 예컨대 네트워크(Net)를 통해 서버(200)에 접속할 수 있다. 아래에서 3차원 모델 데이터 생성 장치(100)는 단말기(100)로 지칭한다.
단말기(100)는 프로세서(110), 메모리(120), 통신 모듈(130), 버스(140), 입출력 장치(150), 카메라(160), 및 센서(170)를 포함할 수 있다. 다른 실시예에 따르면, 단말기(100)는 센서(170)를 포함하지 않을 수도 있다.
프로세서(110)는 기본적인 산술, 로직 및 입출력 연산을 수행하고, 예컨대 메모리(120)에 저장된 프로그램 코드를 실행할 수 있다.
메모리(120)는 단말기(100)의 프로세서(110)가 판독할 수 있는 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 메모리(120)에는 운영체제와 적어도 하나의 프로그램 또는 어플리케이션 코드가 저장될 수 있다. 메모리(120)에는 다양한 실시예들에 따라서 3차원 모델 데이터를 생성할 수 있는 프로그램 코드가 저장될 수 있다.
통신 모듈(130)은 네트워크(Net)에 접속하여 서버(200)와 데이터를 주고 받을 수 있다. 예컨대, 통신 모듈(130)은 단말기(100)의 프로세서(110)가 메모리(120)에 저장된 프로그램 코드에 따라 서버(200)에 대상 물체에 대한 3차원 모델 데이터를 송신할 수 있다.
버스(140)는 단말기(100)의 프로세서(110), 메모리(120), 통신 모듈(130), 입출력 장치(150), 카메라(160), 및 센서(170)들 중 적어도 일부들 간에 데이터를 주고 받는 경로를 제공할 수 있다.
입출력 장치(150)는 사용자로부터의 입력을 수신하여 프로세서(110)에 전달하고 프로세서(110)로부터 수신된 정보를 사용자에게 출력할 수 있다. 예컨대, 입출력 장치(150)의 입력 장치는 예컨대 카메라(160)를 포함할 수 있다. 그 외에도 입출력 장치(150)는 입력 장치로서, 터치 스크린, 마이크, 버튼, 키보드, 마우스 등을 포함할 수 있다. 입출력 장치(150)는 출력 장치로서, 디스플레이와 같은 영상 표시 장치, 스피커나 이어폰과 같은 음성 출력 장치 등을 포함할 수 있다.
사용자는 입력 장치(150)를 이용하여 단말기(100) 또는 카메라(160)를 작동시켜 대상 물체를 촬영할 수 있다. 사용자는 입력 장치(150)를 통해 대상 물체의 기준 방향을 설정하기 위한 각도 정보를 입력할 수 있다. 사용자는 입력 장치(150)를 이용하여, 대상 물체를 촬영한 복수의 이미지들 중에서 미리 설정된 방향(예컨대, 정면 방향, 또는 측면 방향)에서 촬영한 이미지를 선택할 수 있다.
단말기(100)는 카메라(160)로 촬영한 이미지를 표시할 디스플레이 장치를 포함할 수 있다.
카메라(160)는 대상 물체를 촬영하여 대상 물체의 이미지를 생성할 수 있다. 카메라(160)는 대상 물체의 이미지를 버스(140)를 통해 프로세서(110)에 제공할 수 있다.
센서(170)는 관성 센서를 포함할 수 있으며, 카메라(160) 또는 카메라(160)를 탑재한 단말기(100)의 방향, 속도, 가속도 등의 정보를 감지할 수 있다. 예를 들면, 센서(170)는 3축 가속도 센서 및 3축 자이로 센서를 포함할 수 있다. 단말기(100)는 센서(170)의 센서값을 이용하여 카메라(160) 또는 카메라(160)를 탑재한 단말기(100)의 이동 및 회전을 감지할 수 있다.
단말기(100)는 도 2에 도시된 구성요소들 외에 다른 구성요소들을 더 포함할 수 있다. 예를 들면, 단말기(100)는 위치 감지 모듈을 포함할 수 있다. 위치 감지 모듈은 단말기(100)의 현재 위치를 전자적으로 감지할 수 있는 기능 블록일 수 있다.
서버(200)는 프로세서(210), 메모리(220), 통신 모듈(230), 버스(240) 및 입출력 인터페이스(250)를 포함할 수 있다.
프로세서(210)는 기본적인 산술, 로직 및 입출력 연산을 수행하고, 예컨대 메모리(220)에 저장된 프로그램 코드, 예컨대, 학습 모델을 실행할 수 있다.
메모리(220)는 서버(200)의 프로세서(210)가 판독할 수 있는 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 메모리(220)에는 운영체제와 적어도 하나의 프로그램 또는 어플리케이션 코드가 저장될 수 있다. 메모리(220)에는 대상 물체의 이미지로부터 대상 물체의 종류, 위치 및 상대 포즈 데이터를 추출할 수 있는 학습 모델을 구현하는 프로그램 코드가 저장될 수 있다. 또한, 메모리(220)에는 단말기(100)로부터 수신되는 3차원 모델 데이터를 이용하여 학습 모델을 트레이닝하기 위한 프로그램 코드가 저장될 수 있다.
통신 모듈(230)은 네트워크(Net)에 무선으로 접속하여 단말기(100)로부터 데이터를 수신하고 단말기(100)에 데이터를 송신할 수 있다. 예컨대, 통신 모듈(230)은 단말기(100)로부터 대상 물체의 3차원 모델 데이터를 수신할 수 있다.
버스(240)는 프로세서(210), 메모리(220), 통신 모듈(230) 및 입출력 인터페이스(250) 중 적어도 일부들 간에 데이터를 주고 받는 경로를 제공할 수 있다. 입출력 인터페이스(540)는 입출력 장치와의 인터페이스 수단을 제공할 수 있다.
도 3은 일 실시예에 따른 단말기 프로세서의 내부 구성을 도시한다.
도 3을 참조하면, 프로세서(110)는 이미지 생성부(111), 포즈 데이터 관리부(112), 거리 산출부(113), 포즈 데이터 생성부(115), 및 상대 포즈 데이터 생성부(116)를 포함한다. 일 실시예에 따르면, 프로세서(110)는 각도 정보 생성부(114) 및/또는 상대 포즈 정보 생성부(117)를 더 포함할 수 있다.
이미지 생성부(111)는 카메라(160)를 이용하여 대상 물체(도 6의 Object)를 촬영하여 이미지를 생성할 수 있다. 카메라(160)는 단말기(100)에 탑재될 수 있다. 그러나, 이는 예시적이고 카메라(160)는 단말기(100)와 실시간으로 데이터를 주고받을 수 있도록 통신 가능하게 연결될 수도 있다. 아래에서는 단말기(100)가 카메라(160)를 포함하는 것으로 가정하여 설명하지만, 본 발명은 이러한 예에 한정되지 않는다.
본 명세서에서, 제1 시점(t1)에 대상 물체(Object)를 촬영한 이미지는 제1 이미지(Image1), 제2 시점(t2)에 대상 물체(Object)를 촬영한 이미지는 제2 이미지(도 5의 Image2), 제3 시점(t3)에 대상 물체(Object)를 촬영한 이미지는 제3 이미지(Image3)로 지칭한다. 제2 시점(t2)은 제1 시점(t1)의 이후이고, 제3 시점(t3)은 제2 시점(t2)의 이후일 수 있다. 그러나, 이는 예시적이며, 제2 시점(t2)은 제1 시점(t1)의 이전일 수도 있다.
제1 내지 제3 시점(t1, t2, t3) 사이에 카메라(160) 또는 카메라(160)가 탑재된 단말기(100)는 움직일 수 있다. 예를 들면, 제1 내지 제3 시점(t1, t2, t3) 사이에 카메라(160) 또는 카메라(160)를 포함하는 단말기(100)는 제1 방향으로 제1 크기의 병진 운동, 또는 제2 방향으로 제2 크기의 회전 운동 중 적어도 하나를 할 수 있다.
포즈 데이터 관리부(112)는 카메라(160)가 대상 물체(Object)를 촬영한 시점의 카메라(160)의 포즈 데이터(Mp)를 저장하고 관리할 수 있다.
카메라(160)의 포즈 데이터는 월드 좌표계 상에서 카메라(160)의 포즈를 나타내는 모델 행렬(model matrix)일 수 있다. 카메라(160)의 포즈 데이터는 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들을 의미할 수 있다. 카메라(160)가 병진 및/또는 회전 운동한다는 것은 카메라(160)의 포즈가 달라진다는 것이고, 카메라(160)의 포즈 데이터 역시 달라지게 된다.
포즈 데이터 관리부(112)는 제1 시점(t1)에 제1 포즈 데이터(Mp_1)를 저장하고, 제2 시점(t2)에 제2 포즈 데이터(Mp_2)를 저장하고, 제3 시점(t3)에 제3 포즈 데이터(Mp_3)를 저장할 수 있다. 포즈 데이터 관리부(112)는 미리 설정된 시간 이전에 저장한 포즈 데이터(Mp)를 삭제하여 포즈 데이터들(Mp)을 저장하는 메모리(120)를 효율적으로 관리할 수 있다.
카메라(160)의 뷰 데이터(Mp -1)는 카메라(160)의 포즈 데이터(Mp)와 역(inverse) 함수의 관계를 가질 수 있다. 카메라(160)의 뷰 데이터(Mp -1)는 카메라 좌표계 상에서 월드, 즉, 고정된 피사체가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬(view matrix)일 수 있다. 다르게 말하자면, 카메라(160)의 뷰 데이터(Mp -1)는 월드 좌표계 상의 좌표값을 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들을 의미할 수 있다.
프로세서(110)는 카메라(160)의 포즈 데이터(Mp)를 기초로 카메라(160)의 뷰 데이터(Mp -1)를 산출하거나, 카메라(160)의 뷰 데이터(Mp -1)를 기초로 카메라(160)의 포즈 데이터(Mp)를 산출할 수 있다. 본 명세서에서 카메라(160)의 포즈 데이터(Mp)와 뷰 데이터(Mp -1)는 전술한 의미를 갖는 것으로 이해될 수 있지만, 다른 실시예에 따르면, 포즈 데이터가 뷰 행렬이고, 뷰 데이터가 포즈 데이터의 역 행렬, 즉, 모델 행렬일 수도 있다.
포즈 데이터 관리부(112)는 카메라(160)의 움직임을 감지하고, 카메라(160)의 움직임에 따라 카메라(160)의 포즈 데이터(Mp)를 변경하거나, 새로 생성할 수 있다.
일 실시예에 따르면, 포즈 데이터 관리부(112)는 카메라(160)가 촬영한 이미지들의 특징점들이 어떻게 이동하였는지를 기초로 카메라(160)의 움직임을 감지할 수 있다. 예를 들면, 포즈 데이터 관리부(112)는 제1 이미지(Image1) 내의 특징점들과 제2 이미지(Image2) 내의 특징점들이 서로 어떻게 변화하였는지를 감지하고, 이를 기초로 카메라(160)의 병진 운동의 방향 및 크기, 및 카메라(160)의 회전 운동의 방향 및 크기를 추정할 수 있다. 일 예에 따르면, 포즈 데이터 관리부(112)는 비쥬얼 오도메트리(Visual Odometry) 기술을 이용하여 카메라(160)의 포즈 데이터(Mp)를 생성 및 관리할 수 있다.
다른 실시예에 따르면, 포즈 데이터 관리부(112)는 단말기(100) 내의 센서들(170)의 센서 값들을 기초로 카메라(160)의 포즈 데이터(Mp)를 생성 및 관리할 수 있다. 센서들(170)은 관성 센서들일 수 있으며, 단말기(100)가 어디로 얼만큼 이동 및 회전하였는지에 대응하는 센서 값들을 출력할 수 있다. 이 경우, 카메라(160)의 포즈 데이터(Mp)는 지구 중력 방향과 관련할 수 있다. 즉, 카메라(160)의 포즈 데이터(Mp)는 지구 중력 방향을 기준으로 카메라(160)가 어떤 위치에 어떤 방향을 지향하는지를 나타낼 수 있다.
또 다른 실시예에 따르면, 포즈 데이터 관리부(112)는 카메라(160)가 촬영한 이미지들 내의 특징점들의 변화 및 센서들(170)의 센서 값들을 기초로 카메라(160)의 포즈 데이터(Mp)를 생성 및 관리할 수 있다. 예를 들면, 포즈 데이터 관리부(112)는 비쥬얼 이너셜 오도메트리(Visual Inertial Odometry) 기술을 이용하여 카메라(160)의 포즈 데이터(Mp)를 생성 및 관리할 수 있다. 이 경우에도, 카메라(160)의 포즈 데이터(Mp)는 지구 중력 방향과 관련할 수 있다.
본 명세서에서, 제1 시점(t1)의 카메라(160)의 포즈 데이터는 제1 포즈 데이터(Mp_1), 제2 시점(t3)의 카메라(160)의 포즈 데이터는 제2 포즈 데이터(Mp_2), 제3 시점(t3)의 카메라(160)의 포즈 데이터는 제3 포즈 데이터(Mp_3)로 지칭한다. 제1 시점(t1)의 카메라(160)의 위치는 제1 위치, 제2 시점(t2)의 카메라(160)의 위치는 제2 위치, 제3 시점(t3)의 카메라(160)의 위치는 제3 위치로 지칭한다.
제1 시점(t1)의 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계는 제1 카메라 좌표계, 제2 시점(t2)의 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계는 제2 카메라 좌표계, 제3 시점(t3)의 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계는 제3 카메라 좌표계로 지칭한다.
거리 산출부(113)는 카메라(160)의 포즈 데이터(Mp)에 기초하여 카메라(160)와 대상 물체(Obect) 사이의 거리(도 7b의 d)를 산출한다. 일 실시예에 따르면, 거리 산출부(113)는 제1 시점(t1)의 카메라(160)의 제1 포즈 데이터(Mp_1)와 제2 시점(t2)의 카메라(160)의 제2 포즈 데이터(Mp_2)에 기초하여, 제2 시점(t2)의 카메라(160)의 위치와 대상 물체(Object)의 위치 사이의 거리(d)를 산출할 수 있다.
일 실시예에 따르면, 거리 산출부(113)는 삼각 측량(triangulation)을 이용하여 카메라(160)와 대상 물체(Object) 사이의 거리(d)를 산출할 수 있다. 그러나, 반드시 이에 한정되는 것은 아니고, 거리 산출부(113)는 카메라(160)와 대상 물체(Object) 간의 거리(d)를 측정하기 위해 다른 알고리즘을 사용할 수도 있고, 레이저 측정기 등의 보조적인 주변 장치를 이용할 수도 있다.
일 실시예에 따르면, 거리 산출부(113)는 카메라(160)의 제1 포즈 데이터(Mp_1)로부터 제1 시점(t1)의 카메라(160)의 제1 위치 및 카메라(160)에서 대상 물체(Object)로의 제1 방향을 추출할 수 있다. 또한, 거리 산출부(113)는 카메라(160)의 제2 포즈 데이터(Mp_2)로부터 제2 시점(t2)의 카메라(160)의 제2 위치 및 카메라(160)에서 대상 물체(Object)로의 제2 방향을 추출할 수 있다.
거리 산출부(113)는 제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)를 이용하여 제1 위치와 제2 위치 사이의 변위(displacement)를 산출할 수 있다. 제1 위치-제2 위치-대상 물체(Object)로 이루어진 삼각형을 가정하면, 거리 산출부(113)는 제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)를 이용하여 제2 위치-제1 위치-대상 물체(Object) 사이의 제1 각도와, 제1 위치-제2 위치-대상 물체(Object) 사이의 제2 각도를 획득할 수 있다. 거리 산출부(113)는 삼각형의 한 변과 이의 양 끝 각을 알 수 있으며, 삼각 측량법을 이용하여 제2 시점(t2)의 카메라(160)의 위치, 즉, 제2 위치에서 대상 물체(Object)까지의 거리(d)를 산출할 수 있다.
각도 정보 생성부(114)는 대상 물체(Object)에 대한 카메라(160)의 위치, 예컨대, 제2 시점(t2)의 카메라(160)의 제2 위치를 결정하기 위한 각도 정보를 생성할 수 있다. 각도 정보는 대상 물체(Object)의 미리 설정된 방향, 예컨대, 정면 방향을 결정하는데 사용될 수 있다. 각도 정보는 오브젝트 좌표계의 각 축을 결정하는데 사용될 수 있다. 대상 물체(Object)의 위치에 의해 오브젝트 좌표계의 원점이 결정되고, 오브젝트 좌표계의 각 축은 각도 정보 생성부(114)에 의해 생성되는 각도 정보에 의해 결정될 수 있다.
각도 정보는 예를 들면 피치각, 롤각, 및 요우각을 포함할 수 있다. 제2 시점(t2)의 카메라(160)의 포즈에 의해 정의되는 제2 카메라 좌표계를 각도 정보에 따라 회전시킴으로써, 오브젝트 좌표계가 결정될 수 있다. 예를 들면, 제2 카메라 좌표계를 피치각으로 회전하고, 롤각으로 회전하고, 요우각으로 회전함으로써 오브젝트 좌표계가 결정될 수 있다.
일 실시예에 따르면, 피치각, 롤각 및 요우각은 사용자에 의해 입력될 수 있다. 각도 정보 생성부(114)는 사용자에 의해 입력된 피치각, 롤각 및 요우각을 수신함으로써 각도 정보를 생성할 수 있다.
다른 실시예에 따르면, 피치각 및 롤각은 제2 시점(t2)의 카메라(160)의 제2 포즈 데이터(Mp_2)로부터 추출되고, 요우각은 사용자에 의해 입력될 수 있다. 이때, 제2 포즈 데이터(Mp_2)는 지구 중력 방향과 관련된다. 각도 정보 생성부(114)는 제2 포즈 데이터(Mp_2)에 기초하여 제2 카메라 좌표계의 -y축 방향을 지구 중력 방향과 일치시키기 위한 피치각과 롤각을 산출하고, 사용자에 의해 입력된 요우각을 수신함으로써 각도 정보를 생성할 수 있다. 요우각은 z축 방향을 대상 물체의 정면 방향과 일시키기 위한 각도일 수 있다.
또 다른 실시예에 따르면, 사용자는 제2 시점(t2)에 카메라(160)를 대상 물체(Object)에 대하여 미리 설정된 방향에 위치시킨 상태에서 대상 물체(Object)를 촬영할 수 있다. 일 예에 따르면, 미리 설정된 방향은 대상 물체(Object)의 정면 방향일 수 있다. 즉, 카메라(160)는 대상 물체(Object)의 정면을 촬영할 수 있다. 이 경우, 피치각, 롤각 및 요우각은 모두 0으로 결정될 수 있다. 각도 정보 생성부(114)는 피치각, 롤각 및 요우각이 모두 0인 각도 정보를 생성할 수 있다.
다른 예에 따르면, 각도 정보 생성부(114)는 미리 설정된 방향에 따라 피치각, 롤각 및 요우각을 결정할 수 있다. 예컨대, 미리 설정된 방향이 대상 물체(Object)의 측면 방향일 경우, 피치각과 롤각은 0이고, 요우각은 미리 설정된 방향에 따라 +90도 또는 -90도로 결정될 수 있다. 각도 정보 생성부(114)는 사용자가 선택할 수 있는 복수의 방향들을 표시할 수 있으며, 사용자가 그 중 하나의 방향을 선택함으로써, 미리 설정된 방향이 결정될 수 있다. 예를 들면, 각도 정보 생성부(114)는 사용자에게 정면, 우측면, 좌측면, 우측 45도, 좌측 45도, 상측 45도 등과 같은 복수의 방향들을 제시할 수 있으며, 사용자가 이들 중 하나를 선택하고, 선택된 방향에서 대상 물체(Object)를 촬영함으로써 제2 이미지(Image2)가 생성되고, 선택된 방향에 따라 각도 정보가 생성될 수 있다.
또 다른 실시예에 따르면, 사용자는 카메라(160)가 대상 물체(Object)를 촬영한 이미지들 중에서 미리 설정된 방향에서 촬영한 이미지를 선택함으로써, 제2 이미지(Image2)가 결정될 수 있으며, 제2 이미지(Image2)를 촬영한 시점이 제2 시점(t2)으로 결정될 수 있다.
포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)와 거리(d)에 기초하여 대상 물체(Object)의 포즈 데이터(Mobj wc)를 생성할 수 있다. 포즈 데이터 생성부(115)는 포즈 데이터 관리부(112)에서 생성한 카메라(160)의 제2 포즈 데이터(Mp_2), 거리 산출부(113)에서 산출된 거리(d), 및 각도 정보 생성부(114)에서 생성한 각도 정보에 기초하여, 대상 물체(Object)의 포즈 데이터(Mobj wc)를 생성할 수 있다.
대상 물체의 포즈 데이터(Mobj wc)는 오브젝트 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다. 오브젝트 좌표계는 오브젝트(Object)에 의해 정의되는 좌표계로서, 오브젝트(Object)는 오브젝트 좌표계의 원점에 위치할 수 있으며, 오브젝트(Object)에 대해 사용자가 지정한 방향을 기초로 오브젝트 좌표계의 x, y, z축이 결정될 수 있다.
일 예에 따르면, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시킴으로써 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다. -z축 방향은 제2 카메라 좌표계의 -z축 방향으로서, 카메라(160)에서 대상 물체(Object)를 향하는 방향일 수 있다.
다른 예에 따르면, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시키고, 각도 정보에 따른 각도로 회전시킴으로써 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다. 예를 들면, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시키고, 각도 정보에 따라서 피치각으로 회전시키고, 롤각으로 회전시키고, 요우각으로 회전시킴으로써, 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다. 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시켜서 제1 포즈 행렬을 생성하고, 제1 포즈 행렬을 피치각 및 롤각으로 회전시켜서 제2 포즈 행렬을 생성하고, 제2 포즈 행렬을 요우각으로 회전시켜서 대상 물체의 포즈 데이터(Mobj wc)를 산출할 수 있다.
상대 포즈 데이터 생성부(116)는 카메라(160)의 포즈 데이터(Mp)와 대상 물체(Object)의 포즈 데이터(Mobj wc)에 기초하여 대상 물체(Object)의 상대 포즈 데이터(Mobj ec)를 생성할 수 있다. 대상 물체(Object)의 상대 포즈 데이터(Mobj ec)는 오브젝트 좌표계 상의 좌표값을 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다.
일 예에 따르면, 상대 포즈 데이터 생성부(116)는 카메라(160)의 제2 포즈 데이터(Mp_2)와 대상 물체(Object)의 포즈 데이터(Mobj wc)에 기초하여 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)를 생성할 수 있다. 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)는 오브젝트 좌표계 상의 좌표값을 제2 시점(t2)의 카메라(160)의 포즈에 의해 정의되는 제2 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다.
상대 포즈 데이터 생성부(116)는 카메라(160)의 제2 포즈 데이터(Mp_2)의 역행렬(Mp_2 -1)에 대상 물체(Object)의 포즈 데이터(Mobj wc)를 곱함으로써 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)를 산출할 수 있다.
대상 물체(Object)의 포즈 데이터(Mobj wc), 대상 물체(Object)의 상대 포즈 데이터(Mobj ec), 및 카메라(160)의 포즈 데이터(Mp)와 뷰 데이터(Mp -1)는 4x4 포즈 행렬(pose matrix)의 형태를 가질 수 있다. 4x4 포즈 행렬은 3x3 회전 행렬(rotation matrix)과 3x1 이동 행렬(translation matrix)을 포함할 수 있다. 예를 들면, 4x4 포즈 행렬은 [ (3x3 회전 행렬), (3x1 이동 행렬); (0 0 0), 1]과 같이 정의될 수 있다.
상대 포즈 정보 생성부(117)는 대상 물체(Object)의 상대 포즈 데이터(Mobj ec)에 기초하여, 상대 포즈 정보(P2dec)를 생성할 수 있다. 상대 포즈 정보(P2dec)는 카메라(160)로 촬영한 대상 물체(Object)의 이미지와 함께 트레이닝 데이터로서 메모리(120)에 저장되거나, 서버(200)에 전송될 수 있다.
일 예에 따르면, 상대 포즈 정보 생성부(117)는 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여, 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)를 생성할 수 있다. 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)를 생성하기 위하여, 단말기(100)는 사용자로부터 대상 물체(Object)에 대응하는 가상 블럭(도 7f의 vb)의 크기 정보를 수신할 수 있다. 가상 블럭(vb)은 직육면체일 수 있으며, 크기 정보는 가로, 세로 및 높이 정보일 수 있다.
상대 포즈 정보 생성부(117)는 가상 블럭(vb)의 크기 정보에 기초하여, 오브젝트 좌표계 상의 가상 블럭 좌표(Pvb obj)를 생성할 수 있다. 예를 들면, 가상 블록(vb)의 크기 정보로서, 2a의 가로, 2b의 세로, c의 높이가 입력되는 경우, 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)는 가상 블록(vb)의 각 꼭지점들의 좌표에 대응하여, (a, b, 0), (a, -b, 0), (-a, -b, 0), (-a, b, 0), (a, b, c), (a, -b, c), (-a, -b, c), (-a, b, c)를 포함할 수 있다.
상대 포즈 정보 생성부(117)는 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj), 및 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여, 제2 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)를 생성할 수 있다. 제2 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)는 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)를 곱함으로써 산출될 수 있다.
상대 포즈 정보 생성부(117)는 제2 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)에 기초하여, 제2 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_2)를 생성할 수 있다. 제2 카메라 좌표계는 제2 시점(t2)의 카메라(160)의 포즈에 의해 정의되는 3차원 좌표계이고, 제2 2차원 카메라 좌표계는 제2 시점(t2)의 카메라(160)의 포즈에 의해 정의되는 2차원 좌표계이다. 상대 포즈 정보 생성부(117)는 3차원 좌표계 상의 좌표를 2차원 좌표계 상의 좌표로 변환하는 행렬을 이용하여, 제2 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)를 제2 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_2)로 변환할 수 있다.
상대 포즈 정보 생성부(117)는 제2 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_2)를 제2 상대 포즈 정보(P2dec_2)로서 생성할 수 있다. 제2 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_2)는 예시적으로 도 5에 도시된다.
대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)는 대상 물체(Object)와 제2 시점(t2)의 카메라(160) 간의 위치 및 방향 관계를 나타내지만, 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2), 즉, 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_2)는 대상 물체(Object)와 제2 시점(t2)의 카메라(160) 간의 위치 및 방향 관계뿐만 아니라, 제2 이미지(Image2)에서 대상 물체(Object)가 표시된 부분의 위치를 나타낼 수 있다. 따라서, 제2 이미지(Image2)에서 대상 물체가 표시된 부분은 정확히 추출될 수 있다.
도 4는 일 실시예에 따른 3차원 모델 데이터 생성 방법을 설명하기 위한 순서도이다. 도 5 내지 7은 일 실시예에 따른 3차원 모델 데이터 생성 방법을 설명하기 위한 도면이다. 도 5는 카메라가 제2 시간(t2)에 대상 물체를 촬영한 이미지(Image2)와 대상 물체의 상대 포즈 정보(P2dec_2), 및 대상 물체에 대응하는 가상 블럭(vb)이 표시된 처리 이미지(Image2')를 도시한다. 도 6은 제1 내지 제3 시간(t1-t3)에 카메라(160)로 대상 물체(Object)를 촬영하는 것을 도시한다. 도 7a 내지 도 7f는 일 실시예에 따라서 대상 물체의 상대 포즈 정보(P2dec_2)를 생성하는 단계들을 설명하기 위한 도면들이다.
도 4 내지 도 6, 및 도 7a 내지 도 7f을 참조하여, 일 실시예에 따른 3차원 모델 데이터 생성 방법을 설명한다.
프로세서(110)는 도 7a에 도시된 바와 같이 제1 시점(t1)에 카메라(도 2의 160)로 대상 물체(도 6의 Object)를 촬영하여 제1 이미지(미 도시)를 생성하고, 이때의 카메라(160)의 제1 포즈 데이터(Mp_1)를 저장할 수 있다(S11). 제1 이미지는 이미지 생성부(111)에 의해 생성되고, 제1 포즈 데이터(Mp_1)는 포즈 데이터 관리부(112)에 의해 생성될 수 있다.
카메라(160)의 제1 포즈 데이터(Mp_1)는 제1 카메라 좌표계 상의 좌표값을 월드 좌표계(wc) 상으로 변환하는 행렬(Mec_1 wc)일 수 있다. 제1 카메라 좌표계는 제1 시점(t1)의 카메라(160)의 포즈로 정의되고, xc1축, yc1축, zc1축을 갖는 3차원 좌표계이다.
도 6에는 대상 물체(Object)가 오로지 용이한 이해를 위하여 예시적으로 서로 다른 크기를 갖는 2개의 정육면체가 결합된 구조물인 것으로 도시되어 있다. 하지만, 대상 물체(Object)는 예컨대 상점에서 판매하는 신발, 구두, 안경, 전자제품, 의류, 모자 등 어떠한 물건도 가능하다.
제1 포즈 데이터(Mp_1)는 포즈 데이터 관리부(112)에서 처음으로 생성한 것일 수 있다. 포즈 데이터 관리부(112)는 제1 이미지 또는 관성 센서들(170)의 센서 값들 중 적어도 하나를 기초로 제1 포즈 데이터(Mp_1)를 생성할 수 있다. 제1 포즈 데이터(Mp_1)가 관성 센서들(170)의 센서 값들을 이용하여 생성되는 경우, 지구 중력 방향과 관련될 수 있다. 다른 예에 따라서, 제1 포즈 데이터(Mp_1)가 관성 센서들(170)의 센서 값들과 무관하게 생성되는 경우, 지구 중력 방향과 관련되지 않고 초기값(예컨대, 0)을 가질 수 있다.
제1 포즈 데이터(Mp_1)는 제1 모델 행렬(Mec_1 wc)로 나타낼 수 있으며, 제1 모델 행렬(Mec_1 wc)은 제1 시점(t1)의 카메라(160)의 포즈에 의해 정의되는 제1 카메라 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들로 표현될 수 있다.
프로세서(110)는 도 7b에 도시된 바와 같이 제2 시점(t2)에 카메라(160)로 대상 물체(Object)를 촬영하여 제2 이미지(도 7의 Image2)를 생성하고, 이때의 카메라(160)의 제2 포즈 데이터(Mp_2)를 저장할 수 있다(S12). 제2 이미지(Image2)는 이미지 생성부(111)에 의해 생성되고, 제2 포즈 데이터(Mp_2)는 포즈 데이터 관리부(112)에 의해 생성될 수 있다.
카메라(160)의 제2 포즈 데이터(Mp_2)는 제2 시점(t2)의 카메라(160)의 포즈로 정의되는 제2 카메라 좌표계 상의 좌표값을 월드 좌표계(wc) 상으로 변환하는 행렬(Mec_2 wc)일 수 있다. 제2 카메라 좌표계는 제2 시점(t2)의 카메라(160)의 포즈로 정의되고, xc2축, yc2축, zc2축을 갖는 3차원 좌표계이다.
포즈 데이터 관리부(112)는 제1 시점(t1)과 제2 시점(t2) 사이의 카메라(160)의 움직임(motion)에 대응하여, 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정할 수 있다. 일 예에 따르면, 포즈 데이터 관리부(112)는 제1 이미지의 특징점들과 제2 이미지(Image2) 내의 특징점들 간의 변화를 기초로 제1 시점(t1)과 제2 시점(t2) 사이의 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정할 수 있다. 다른 예에 따르면, 포즈 데이터 관리부(112)는 제1 이미지의 특징점들과 제2 이미지(Image2) 내의 특징점들 간의 변화, 및 관성 센서(170)의 센서 값을 기초로 제1 시점(t1)과 제2 시점(t2) 사이의 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정할 수 있다.
포즈 데이터 관리부(112)는 카메라(160)의 제1 포즈 데이터(Mp_1), 병진 운동의 방향과 크기, 및 회전 운동의 방향과 크기에 기초하여, 카메라(160)의 제2 포즈 데이터(Mp_2)를 생성할 수 있다.
프로세서(110)는 카메라(160)의 제1 포즈 데이터(Mp_1)와 카메라(160)의 제2 포즈 데이터(Mp_2)에 기초하여 제2 시점(t2)의 카메라(160)와 대상 물체(Object) 간의 거리(d)를 산출할 수 있다(S13).
제2 시점(t2)의 카메라(160)와 대상 물체(Object) 간의 거리(d)는 거리 산출부(113)에 의해 산출될 수 있다. 일 실시예에 따르면, 거리 산출부(113)는 삼각 측량(triangulation)을 이용하여 카메라(160)와 대상 물체(Object) 사이의 거리(도 7b의 d)를 산출할 수 있다.
거리 산출부(113)는 카메라(160)의 제1 포즈 데이터(Mp_1)로부터 제1 시점(t1)의 카메라(160)의 제1 위치 및 카메라(160)에서 대상 물체(Object)로의 제1 방향을 추출할 수 있다. 거리 산출부(113)는 카메라(160)의 제2 포즈 데이터(Mp_2)로부터 제2 시점(t2)의 카메라(160)의 제2 위치 및 카메라(160)에서 대상 물체(Object)로의 제2 방향을 추출할 수 있다. 거리 산출부(113)는 제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)를 이용하여 제1 위치와 제2 위치 사이의 변위(displacement)를 산출할 수 있다.
제1 위치-제2 위치-대상 물체(Object)로 이루어진 삼각형을 가정하면, 거리 산출부(113)는 제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)를 이용하여 제2 위치-제1 위치-대상 물체(Object) 사이의 제1 각도와, 제1 위치-제2 위치-대상 물체(Object) 사이의 제2 각도를 산출할 수 있다. 거리 산출부(113)가 삼각형의 한 변(제1 위치와 제2 위치 사이의 변위)과 이의 양 끝 각(제1 각도와 제2 각도)을 산출할 수 있으므로, 삼각 측량법을 이용하여 제2 시점(t2)의 카메라(160)와 대상 물체(Object) 사이의 거리(d)를 산출할 수 있다.
프로세서(110)는 카메라(160)의 제2 포즈 데이터(Mp_2)와 거리(d)에 기초하여 대상 물체(Object)의 포즈 데이터(Mobj wc)를 생성할 수 있다(S14). 일 실시예에 따르면, 대상 물체(Object)의 포즈 데이터(Mobj wc)는 포즈 데이터 생성부(115)에 의해 생성될 수 있다.
대상 물체(Object)의 포즈 데이터(Mobj wc)는 대상 물체(Object)에 기초하여 정의되는 오브젝트 좌표계(obj) 상의 좌표값을 월드 좌표계(wc) 상으로 변환하는 행렬일 수 있다. 오브젝트 좌표계의 원점은 대상 물체(Object)의 위치에 의해 결정되고, 오브젝트 좌표계의 각 축은 대상 물체(Object)에 대해 미리 정의된 방향에 의해 결정될 수 있다.
일 실시예에 따라서, 카메라(160)가 제2 시점(t2)에 대상 물체(Object)의 정면을 촬영한 경우, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시킴으로써 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다.
다른 실시예에 따라서, 카메라(160)가 제2 시점(t2)에 대상 물체(Object)를 미리 설정된 방향에서 촬영한 경우, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시키고, 미리 설정된 방향에 대응하는 각도로 회전시킴으로써 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다.
또 다른 실시예에 따라서, 포즈 데이터 생성부(115)가 대상 물체(Object)의 포즈 데이터(Mobj wc)를 생성하는데 각도 정보가 이용될 수 있다. 각도 정보는 각도 정보 생성부(114)에 의해 획득될 수 있다. 각도 정보는 피치각, 롤각 및 요우각을 포함할 수 있다. 이 경우, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시키고, 각도 정보에 포함되는 피치각, 롤각 및 요우각으로 회전시킴으로써 대상 물체(Object)의 포즈 데이터(Mobj wc)를 산출할 수 있다. 일 예에 따르면, 피치각, 롤각 및 요우각은 사용자로부터 수신될 수 있다.
일 실시예에 따르면, 포즈 데이터 생성부(115)는 카메라(160)의 제2 포즈 데이터(Mp_2)를 -z축 방향으로 거리(d)만큼 이동시켜서 제1 포즈 행렬(도 7c의 Mo1 wc)을 생성할 수 있다. 제1 포즈 행렬(Mo1 wc)은 제1 오브젝트 좌표계를 월드 좌표계 상에 나타낸 것으로 이해될 수 있으며, 제1 오브젝트 좌표계는 도 7c에 도시된 바와 같이 xo1축, yo1축, zo1축을 갖는 3차원 좌표계이다.
포즈 데이터 생성부(115)는 제1 포즈 행렬(Mo1 wc)을 피치각과 롤각으로 회전시켜서 제2 포즈 행렬(도 7d의 Mo2 wc)을 생성할 수 있다. 제2 포즈 행렬(Mo2 wc)은 제2 오브젝트 좌표계를 월드 좌표계 상에 나타낸 것으로 이해될 수 있으며, 제2 오브젝트 좌표계는 도 7d에 도시된 바와 같이 xo2축, yo2축, zo2축을 갖는 3차원 좌표계이다. 제1 포즈 행렬(Mo1 wc)을 피치각과 롤각으로 회전시킴으로써, 제2 오브젝트 좌표계의 yo2축은 지구 중력 방향의 반대 방향을 향하게 될 수 있다.
포즈 데이터 생성부(115)는 제2 포즈 행렬(Mo2 wc)을 요우각으로 회전시켜서 대상 물체의 포즈 데이터(도 7e의 Mobj wc)를 생성할 수 있다. 대상 물체의 포즈 데이터(Mobj wc)은 오브젝트 좌표계를 월드 좌표계 상에 나타낸 것으로 이해될 수 있으며, 오브젝트 좌표계는 도 7e에 도시된 바와 같이 xo축, yo축, zo축을 갖는 3차원 좌표계이다. 제2 포즈 행렬(Mo2 wc)을 요우각으로 회전시킴으로써, 오브젝트 좌표계의 zo축은 대상 물체(Object)의 정면 방향을 향하게 될 수 있다.
또 다른 실시예에 따르면, 카메라(160)의 제2 포즈 데이터(Mp_2)는 지구 중력 방향과 관련될 수 있다. 이 경우, 각도 정보 생성부(114)는 카메라(160)의 제2 포즈 데이터(Mp_2)로부터 피치각과 롤각을 추출할 수 있다. 피치각과 롤각은 카메라(160)의 제2 포즈 데이터(Mp_2)의 -y축 방향을 지구 중력 방향과 일치시키기 위한 x축과 z축으로 회전할 각도들일 수 있다. 각도 정보 생성부(114)는 사용자로부터 요우각을 수신할 수 있다. 요우각은 대상 물체(Object)의 포즈 데이터(Mobj wc)의 z축 방향을 대상 물체(Object)의 정면 방향과 일치시키기 위해 y축으로 회전할 각도일 수 있다.
프로세서(110)는 카메라(160)의 제2 포즈 데이터(Mp_2)와 대상 물체(Object)의 포즈 데이터(Mobj wc)에 기초하여 대상 물체(Object)의 제2 상대 포즈 데이터(도 7e의 Mobj ec_2)를 추정할 수 있다(S15). 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)는 상대 포즈 데이터 생성부(116)에 의해 생성될 수 있다.
대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)는 오브젝트 좌표계 상의 좌표값을 제2 카메라 좌표계 상으로 변환하는 행렬(Mobj ec_2)일 수 있다. 상대 포즈 데이터 생성부(116)는 카메라(160)의 제2 포즈 데이터(Mp_2)의 역행렬(Mp_2 -1)에 대상 물체(Object)의 포즈 데이터(Mobj wc)를 곱함으로써 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)를 산출할 수 있다.
프로세서(110)는 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여, 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)를 생성할 수 있다(S16). 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)는 상대 포즈 정보 생성부(117)에 의해 생성될 수 있다. 이를 위하여, 상대 포즈 정보 생성부(117)는 대상 물체(Object)에 대응하는 가상 블럭(도 7f의 vb)의 크기 정보를 수신할 수 있다.
상대 포즈 정보 생성부(117)는 가상 블럭(vb)의 크기 정보에 기초하여, 오브젝트 좌표계 상의 가상 블럭 좌표(Pvb obj)를 생성할 수 있다. 가상 블럭 좌표(Pvb obj)는 오브젝트 좌표계 상에 나타낸 가상 블럭의 꼭지점들(p1-p8) 각각의 좌표들일 수 있다. 상대 포즈 정보 생성부(117)는 오브젝트 좌표계 상의 가상 블럭 좌표(Pvb obj) 및 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여, 제2 카메라 좌표계 상의 가상 블럭 좌표(Pvb ec_2)를 생성할 수 있다. 상대 포즈 정보 생성부(117)는 제2 카메라 좌표계 상의 가상 블럭 좌표(Pvb ec_2)에 기초하여, 제2 2차원 카메라 좌표계 상의 가상 블럭 좌표(도 7f의 Pvb 2dec_2)를 제2 상대 포즈 정보(P2dec_2)로서 생성할 수 있다.
프로세서(110)는 제2 이미지(Image2)와 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)를 학습 모델을 트레이닝하기 위한 트레이닝 데이터로서 저장할 수 있다(S17). 다른 예에 따르면, 프로세서(110)는 제2 이미지(Image2)와 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)를 서버(200)에 전송할 수 있다.
제2 이미지(Image2)와 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)는 도 5에 예시된다. 제2 이미지(Image2)에는 대상 물체(Object)가 도시되며, 처리 이미지(Image2')는 대상 물체(Object)에 대응하는 가상 블럭(vb)을 도시한다. 대상 물체(Object)의 제2 상대 포즈 정보(P2dec_2)는 2차원 카메라 좌표계 상의 가상 블록(vb)의 각 꼭지점들의 좌표값(p1-p8)을 포함할 수 있다. 처리 이미지(Image2')를 참조하면, 가상 블록(vb)의 각 꼭지점들의 좌표값(p1-p8)은 제2 이미지(Image2) 상에 표시될 수 있다. 2차원 카메라 좌표계는 제2 이미지(Image2)와 직접 대응할 수 있다.
다른 실시에에 따르면, 프로세서(110)는 제3 시점(도 6의 t3)에 카메라(160)로 대상 물체(Object)를 촬영하여 제3 이미지(미 도시)를 생성하고, 이때의 카메라(160)의 제3 포즈 데이터(Mp_3)를 생성할 수 있다. 프로세서(110)는 카메라(160)의 제3 포즈 데이터(Mp_3)와 대상 물체(Object)의 포즈 데이터(Mobj wc)에 기초하여 대상 물체(Object)의 제3 상대 포즈 데이터(Mobj ec_3)를 추정할 수 있다. 프로세서(110)는 프로세서(110)는 대상 물체(Object)의 제3 상대 포즈 데이터(Mobj ec_3)에 기초하여, 대상 물체(Object)의 제3 상대 포즈 정보(P2dec_3)를 생성하고, 제3 시점(t3)에 촬영한 제3 이미지와 대상 물체(Object)의 제3 상대 포즈 정보(P2dec_3)를 트레이닝 데이터로서 저장하거나 서버(200)에 전송할 수 있다.
본 발명의 다른 실시예에 따르면, 프로세서(110)는 제1 시점(t1)에 카메라(160)로 대상 물체(Object)를 촬영하고, 이때의 카메라(160)의 제1 포즈(pose) 데이터(Mp_1)를 저장할 수 있다. 또한, 프로세서(110)는 제2 시점(t2)에 카메라(160)로 대상 물체(Object)를 촬영하여 제2 이미지(Image2)를 생성하고, 이때의 카메라(160)의 제2 포즈 데이터(Mp_2)를 생성할 수 있다. 프로세서(110)는 제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)에 기초하여 제2 시점(t2)의 카메라(160)와 대상 물체(Object) 간의 거리(d)를 산출할 수 있다.
제1 포즈 데이터(Mp_1)와 제2 포즈 데이터(Mp_2)가 지구 중력 방향과 관련되는 경우, 프로세서(110)는 카메라의 제2 포즈 데이터(Mp_2)에 기초하여 피치각과 롤각을 산출하고, 사용자로부터 요우각을 수신할 수 있다. 프로세서(110)는 거리(d), 피치각, 롤각 및 요우각에 기초하여, 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)를 생성할 수 있다. 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)는 거리(d)만큼 이동하고, 피치각, 롤각 및 요우각으로 회전하는 행렬일 수 있다.
프로세서(110)는 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여 제2 상대 포즈 정보(P2dec_2)를 생성하고, 제2 이미지(Image2)와 제2 상대 포즈 정보(Pvb 2dec_2)를 트레이닝 데이터로서 메모리(120)에 저장하거나, 서버(200)에 전송할 수 있다.
프로세서(110)는 카메라(160)의 제2 포즈 데이터(Mp_2)와 대상 물체(Object)의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여 대상 물체(Object)의 포즈 데이터(Mobj wc)를 생성할 수 있다.
프로세서(110)는 제3 시점(t3)에 카메라(160)로 대상 물체(Object)를 촬영하여 제3 이미지(Image3)를 생성하고, 이때의 카메라(160)의 제3 포즈 데이터(Mp_3)를 생성할 수 있다. 프로세서(110)는 카메라(160)의 제3 포즈 데이터(Mp_3)와 대상 물체(Object)의 포즈 데이터(Mobj wc)에 기초하여 대상 물체(Object)의 제3 상대 포즈 데이터(Mobj ec_3)를 추정할 수 있다.
프로세서(110)는 대상 물체(Object)의 제3 상대 포즈 데이터(Mobj ec_3)에 기초하여 제3 상대 포즈 정보(P2dec_3)를 생성하고, 제3 이미지(Image3)와 제3 상대 포즈 정보(Pvb 2dec_3)를 트레이닝 데이터로서 메모리(120)에 저장하거나, 서버(200)에 전송할 수 있다.
본 발명의 다양한 실시예들에 따르면, 단말기(100)는 오브젝트 좌표계를 정의하는 마커 없이 대상 물체(Object)를 촬영하더라도, 대상 물체(Object)의 상대 포즈 정보를 생성할 수 있기 때문에, 대상 물체(Object)의 이미지로부터 대상 물체(Object)의 종류, 위치 및 상대 포즈 데이터를 추출하기 위한 학습 모델을 트레이닝 시키기 위한 트레이닝 데이터, 즉, 3차원 모델 데이터를 대량으로 생성할 수 있다. 예를 들면, 단말기(100)가 대상 물체(Object) 주위를 이동하면서 카메라(160)로 대상 물체(Object)를 동영상으로 촬영하는 경우, 동영상의 매 프레임 이미지에 대하여 대상 물체(Object)의 상대 포즈 정보를 생성할 수 있다. 동영상의 매 프레임 이미지와 이에 대응하는 상대 포즈 정보를 기초로 학습 모델을 트레이닝 시킬 수 있으므로, 학습 모델의 정확도는 증가될 수 있다.
이상 설명된 다양한 실시예들은 예시적이며, 서로 구별되어 독립적으로 실시되어야 하는 것은 아니다. 본 명세서에서 설명된 실시예들은 서로 조합된 형태로 실시될 수 있다.
이상 설명된 다양한 실시예들은 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
본 명세서에서, "부", "모듈" 등은 프로세서 또는 회로와 같은 하드웨어 구성(hardware component), 및/또는 프로세서와 같은 하드웨어 구성에 의해 실행되는 소프트웨어 구성(software component)일 수 있다. 예를 들면, "부", "모듈" 등은 소프트웨어 구성 요소들, 객체 지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들에 의해 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    제1 시점에 카메라로 대상 물체를 촬영하고, 이때의 상기 카메라의 제1 포즈(pose) 데이터를 저장하는 단계;
    제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 포즈 데이터를 생성하는 단계;
    상기 카메라의 제1 포즈 데이터와 상기 카메라의 제2 포즈 데이터에 기초하여 상기 제2 시점의 상기 카메라와 상기 대상 물체 간의 거리를 산출하는 단계;
    상기 카메라의 제2 포즈 데이터와 상기 거리에 기초하여 상기 대상 물체의 포즈 데이터를 생성하는 단계; 및
    상기 카메라의 제2 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정하는 단계를 포함하는 3차원 모델 데이터 생성 방법.
  2. 제1 항에 있어서,
    상기 대상 물체의 포즈 데이터는 상기 카메라의 제2 포즈 데이터를 -z축 방향으로 상기 거리만큼 이동시킴으로써 산출되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  3. 제1 항에 있어서,
    상기 대상 물체의 포즈 데이터는 상기 카메라의 제2 포즈 데이터를 -z축 방향으로 상기 거리만큼 이동시키고 미리 설정된 각도로 회전시킴으로써 산출되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  4. 제1 항에 있어서,
    상기 대상 물체의 포즈 데이터를 생성하는 단계는,
    피치각, 롤각, 및 요우각을 획득하는 단계; 및
    상기 카메라의 제2 포즈 데이터를 -z축 방향으로 상기 거리만큼 이동시키고, 상기 피치각, 상기 롤각, 및 상기 요우각으로 회전시켜서, 상기 대상 물체의 포즈 데이터를 산출하는 단계를 포함하는 3차원 모델 데이터 생성 방법.
  5. 제4 항에 있어서,
    상기 카메라의 제2 포즈 데이터는 지구 중력 방향과 관련되고,
    상기 피치각, 롤각, 및 요우각을 획득하는 단계는,
    상기 카메라의 제2 포즈 데이터에 기초하여, 상기 카메라의 제2 포즈 데이터의 -y축 방향을 상기 지구 중력 방향과 일치시키기 위한 피치각 및 롤각을 산출하는 단계; 및
    상기 대상 물체의 포즈 데이터의 z축 방향을 상기 대상 물체의 정면 방향과 일치시키기 위한 요우각을 수신하는 단계를 포함하는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  6. 제4 항에 있어서,
    상기 대상 물체의 포즈 데이터를 산출하는 단계는,
    상기 카메라의 제2 포즈 데이터를 -z축 방향으로 상기 거리만큼 이동시켜서 제1 포즈 행렬을 생성하는 단계;
    상기 제1 포즈 행렬을 상기 피치각 및 상기 롤각으로 회전시켜서 제2 포즈 행렬을 생성하는 단계; 및
    상기 제2 포즈 행렬을 상기 요우각으로 회전시켜서 상기 대상 물체의 포즈 데이터를 산출하는 단계를 포함하는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  7. 제1 항에 있어서,
    상기 대상 물체의 제2 상대 포즈 데이터에 기초하여, 제2 상대 포즈 정보를 생성하는 단계; 및
    상기 제2 이미지와 상기 제2 상대 포즈 정보를 트레이닝 데이터로서 저장하거나, 상기 컴퓨팅 장치와 통신하는 서버에 전송하는 단계를 더 포함하는 3차원 모델 데이터 생성 방법.
  8. 제7 항에 있어서,
    상기 대상 물체에 대응하는 가상 블럭의 크기 정보를 수신하는 단계를 더 포함하고,
    상기 제2 상대 포즈 정보를 생성하는 단계는,
    상기 가상 블럭의 크기 정보에 기초하여, 오브젝트 좌표계 상의 가상 블럭 좌표를 생성하는 단계;
    상기 오브젝트 좌표계 상의 가상 블럭 좌표 및 상기 대상 물체의 제2 상대 포즈 데이터에 기초하여, 제2 카메라 좌표계 상의 가상 블럭 좌표를 생성하는 단계; 및
    상기 제2 카메라 좌표계 상의 가상 블럭 좌표에 기초하여, 제2 2차원 카메라 좌표계 상의 가상 블럭 좌표를 상기 제2 상대 포즈 정보로서 생성하는 단계를 포함하고,
    상기 제2 카메라 좌표계 및 상기 제2 2차원 카메라 좌표계는 상기 제2 시점의 상기 카메라의 포즈에 기초하여 정의되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  9. 제1 항에 있어서,
    상기 카메라의 제2 포즈 데이터를 생성하는 단계는,
    상기 제1 시점과 상기 제2 시점 사이의 상기 카메라의 움직임(motion)에 대응하여, 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정하는 단계; 및
    상기 카메라의 제1 포즈 데이터, 상기 병진 운동의 방향과 크기, 및 상기 회전 운동의 방향과 크기에 기초하여, 상기 카메라의 제2 포즈 데이터를 생성하는 단계를 포함하는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  10. 제9 항에 있어서,
    상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 시점에 상기 카메라로 상기 대상 물체를 촬영하여 생성되는 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화를 기초로 추정되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  11. 제9 항에 있어서,
    상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 시점에 상기 카메라로 상기 대상 물체를 촬영하여 생성되는 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화, 및 관성 센서의 센서 값을 기초로 추정되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  12. 제1 항에 있어서,
    상기 대상 물체의 포즈 데이터는 상기 대상 물체에 기초하여 정의되는 오브젝트 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬이고,
    상기 오브젝트 좌표계의 원점은 상기 대상 물체의 위치에 의해 결정되고, 상기 오브젝트 좌표계의 각 축은 상기 대상 물체에 대해 미리 정의된 방향에 의해 결정되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  13. 제12 항에 있어서,
    상기 카메라의 제1 포즈 데이터는 상기 제1 시점의 상기 카메라의 포즈로 정의되는 제1 카메라 좌표계 상의 좌표값을 상기 월드 좌표계 상으로 변환하는 행렬이고,
    상기 카메라의 제2 포즈 데이터는 상기 제2 시점의 상기 카메라의 포즈로 정의되는 제2 카메라 좌표계 상의 좌표값을 상기 월드 좌표계 상으로 변환하는 행렬인 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  14. 제13 항에 있어서,
    상기 대상 물체의 제2 상대 포즈 데이터는 상기 오브젝트 좌표계 상의 좌표값을 상기 제2 카메라 좌표계 상으로 변환하는 행렬인 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  15. 제13 항에 있어서,
    상기 대상 물체의 제2 상대 포즈 데이터는 상기 카메라의 제2 포즈 데이터의 역행렬에 상기 대상 물체의 포즈 데이터를 곱함으로써 산출되는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  16. 제1 항에 있어서,
    제3 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제3 이미지를 생성하고, 이때의 상기 카메라의 제3 포즈 데이터를 생성하는 단계;
    상기 카메라의 제3 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제3 상대 포즈 데이터를 추정하는 단계를 더 포함하는 3차원 모델 데이터 생성 방법.
  17. 제1 항에 있어서,
    상기 카메라의 제1 포즈 데이터, 상기 대상 물체의 제2 상대 포즈 데이터 및 상기 대상 물체의 포즈 데이터는 3x3 회전 행렬(rotation matrix)과 3x1 이동 행렬(translation matrix)을 포함하는 4x4 포즈 행렬(pose matrix)의 형태를 갖는 것을 특징으로 하는 3차원 모델 데이터 생성 방법.
  18. 컴퓨팅 장치를 이용하여 제1항 내지 제17항 중 어느 한 항의 3차원 모델 데이터 생성 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  19. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    제1 시점에 카메라로 대상 물체를 촬영하고, 이때의 상기 카메라의 제1 포즈(pose) 데이터를 저장하는 단계;
    제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 포즈 데이터를 생성하는 단계;
    상기 카메라의 제1 포즈 데이터와 상기 카메라의 제2 포즈 데이터에 기초하여 상기 제2 시점의 상기 카메라와 상기 대상 물체 간의 거리를 산출하는 단계;
    상기 카메라의 제2 포즈 데이터에 기초하여 피치각과 롤각을 산출하는 단계;
    요우각을 수신하는 단계;
    상기 거리, 상기 피치각, 상기 롤각 및 상기 요우각에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 생성하는 단계;
    상기 카메라의 제2 포즈 데이터와 상기 대상 물체의 제2 상대 포즈 데이터에 기초하여 상기 대상 물체의 포즈 데이터를 생성하는 단계;
    제3 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제3 이미지를 생성하고, 이때의 상기 카메라의 제3 포즈 데이터를 생성하는 단계; 및
    상기 카메라의 제3 포즈 데이터와 상기 대상 물체의 포즈 데이터에 기초하여 상기 대상 물체의 제3 상대 포즈 데이터를 추정하는 단계를 포함하는 3차원 모델 데이터 생성 방법.
  20. 제19 항에 있어서,
    상기 대상 물체의 제2 상대 포즈 데이터에 기초하여, 제2 상대 포즈 정보를 생성하는 단계;
    상기 제2 이미지와 상기 제2 상대 포즈 정보를 트레이닝 데이터로서 저장하거나, 상기 컴퓨팅 장치와 통신하는 서버에 전송하는 단계;
    상기 대상 물체의 제3 상대 포즈 데이터에 기초하여, 제3 상대 포즈 정보를 생성하는 단계; 및
    상기 제3 이미지와 상기 제3 상대 포즈 정보를 상기 트레이닝 데이터로서 저장하거나, 상기 서버에 전송하는 단계를 더 포함하는 3차원 모델 데이터 생성 방법.
KR1020190144540A 2019-11-12 2019-11-12 3차원 모델 데이터 생성 방법 KR102199772B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190144540A KR102199772B1 (ko) 2019-11-12 2019-11-12 3차원 모델 데이터 생성 방법
US17/095,082 US11373329B2 (en) 2019-11-12 2020-11-11 Method of generating 3-dimensional model data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144540A KR102199772B1 (ko) 2019-11-12 2019-11-12 3차원 모델 데이터 생성 방법

Publications (1)

Publication Number Publication Date
KR102199772B1 true KR102199772B1 (ko) 2021-01-07

Family

ID=74126550

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144540A KR102199772B1 (ko) 2019-11-12 2019-11-12 3차원 모델 데이터 생성 방법

Country Status (2)

Country Link
US (1) US11373329B2 (ko)
KR (1) KR102199772B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230051895A (ko) * 2021-10-12 2023-04-19 네이버랩스 주식회사 학습 데이터 수집 시스템 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210279967A1 (en) * 2020-03-06 2021-09-09 Apple Inc. Object centric scanning
US20220406003A1 (en) * 2021-06-17 2022-12-22 Fyusion, Inc. Viewpoint path stabilization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140001152A (ko) * 2012-06-26 2014-01-06 한국과학기술원 증강현실 기반의 실시간 관심 컨텍스트 등록 시스템 및 그 방법
KR20140055975A (ko) * 2012-10-31 2014-05-09 더 보잉 컴파니 증강 현실을 위한 자동화된 참조 프레임 캘리브레이션
KR20150096922A (ko) * 2014-02-17 2015-08-26 삼성전자주식회사 카메라 포즈 추정 장치 및 카메라 포즈 추정 방법
JP2017134467A (ja) * 2016-01-25 2017-08-03 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6789039B1 (en) * 2000-04-05 2004-09-07 Microsoft Corporation Relative range camera calibration
US7336296B2 (en) * 2003-10-10 2008-02-26 International Business Machines Corporation System and method for providing position-independent pose estimation
WO2009047335A1 (en) * 2007-10-12 2009-04-16 Mvtec Software Gmbh Computer vision cad models
US9396385B2 (en) * 2010-08-26 2016-07-19 Blast Motion Inc. Integrated sensor and video motion analysis method
US8848970B2 (en) * 2011-04-26 2014-09-30 Digimarc Corporation Salient point-based arrangements
EP4224424A1 (en) * 2014-11-21 2023-08-09 Apple Inc. Method and system for determining spatial coordinates of a 3d reconstruction of at least part of a real object at absolute spatial scale
US20160260250A1 (en) * 2015-03-05 2016-09-08 Dejan Jovanovic Method and system for 3d capture based on structure from motion with pose detection tool
US20180012411A1 (en) * 2016-07-11 2018-01-11 Gravity Jack, Inc. Augmented Reality Methods and Devices
US10692244B2 (en) * 2017-10-06 2020-06-23 Nvidia Corporation Learning based camera pose estimation from images of an environment
US10769411B2 (en) * 2017-11-15 2020-09-08 Qualcomm Technologies, Inc. Pose estimation and model retrieval for objects in images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140001152A (ko) * 2012-06-26 2014-01-06 한국과학기술원 증강현실 기반의 실시간 관심 컨텍스트 등록 시스템 및 그 방법
KR20140055975A (ko) * 2012-10-31 2014-05-09 더 보잉 컴파니 증강 현실을 위한 자동화된 참조 프레임 캘리브레이션
KR20150096922A (ko) * 2014-02-17 2015-08-26 삼성전자주식회사 카메라 포즈 추정 장치 및 카메라 포즈 추정 방법
JP2017134467A (ja) * 2016-01-25 2017-08-03 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230051895A (ko) * 2021-10-12 2023-04-19 네이버랩스 주식회사 학습 데이터 수집 시스템 및 방법
KR102657338B1 (ko) 2021-10-12 2024-04-12 네이버랩스 주식회사 학습 데이터 수집 시스템 및 방법

Also Published As

Publication number Publication date
US20210142511A1 (en) 2021-05-13
US11373329B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
JP6687204B2 (ja) 投影イメージ生成方法およびその装置、イメージピクセルと深度値との間のマッピング方法
WO2019242262A1 (zh) 基于增强现实的远程指导方法、装置、终端和存储介质
TWI722280B (zh) 用於多個自由度之控制器追蹤
KR102199772B1 (ko) 3차원 모델 데이터 생성 방법
JP5093053B2 (ja) 電子カメラ
JP6456347B2 (ja) 平面固有の特徴のターゲットのinsitu生成
KR102198851B1 (ko) 물체의 3차원 모델 데이터 생성 방법
JP6658001B2 (ja) 位置推定装置、プログラム、位置推定方法
JP2016502712A (ja) 単眼視覚slamのための高速初期化
CN105094335A (zh) 场景提取方法、物体定位方法及其系统
US10838515B1 (en) Tracking using controller cameras
KR102374404B1 (ko) 콘텐트를 제공하기 위한 디바이스 및 방법
US20160210761A1 (en) 3d reconstruction
US11854211B2 (en) Training multi-object tracking models using simulation
JP7273284B2 (ja) データ生成方法、装置およびプログラム
KR20190114696A (ko) 표고차를 고려한 지하관로의 관리를 위한 증강 현실 표현 방법 및 이를 기록한 기록매체
US11978232B2 (en) Method for displaying three-dimensional augmented reality
CN108028904A (zh) 移动设备上光场增强现实/虚拟现实的方法和系统
CN108629842B (zh) 一种无人驾驶设备运动信息提供及运动控制方法与设备
US11385856B2 (en) Synchronizing positioning systems and content sharing between multiple devices
KR20210050997A (ko) 포즈 추정 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
EP3882846B1 (en) Method and device for collecting images of a scene for generating virtual reality data
Aloor et al. Design of VR headset using augmented reality
CN113822936A (zh) 数据处理方法、装置、计算机设备及存储介质
US11651542B1 (en) Systems and methods for facilitating scalable shared rendering

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant