KR102198851B1 - 물체의 3차원 모델 데이터 생성 방법 - Google Patents

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

Info

Publication number
KR102198851B1
KR102198851B1 KR1020190144539A KR20190144539A KR102198851B1 KR 102198851 B1 KR102198851 B1 KR 102198851B1 KR 1020190144539 A KR1020190144539 A KR 1020190144539A KR 20190144539 A KR20190144539 A KR 20190144539A KR 102198851 B1 KR102198851 B1 KR 102198851B1
Authority
KR
South Korea
Prior art keywords
camera
target object
data
coordinate system
generating
Prior art date
Application number
KR1020190144539A
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 KR1020190144539A priority Critical patent/KR102198851B1/ko
Priority to US17/095,068 priority patent/US11610373B2/en
Application granted granted Critical
Publication of KR102198851B1 publication Critical patent/KR102198851B1/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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • 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
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • 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
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • 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/30204Marker
    • G06T2207/30208Marker matrix
    • 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)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

물체의 3차원 모델 데이터 생성 방법 및 그 장치가 제공 된다. 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법은 제1 시점에 카메라로 마커를 포함하는 보드 상에 위치하는 대상 물체를 촬영하여 제1 이미지를 생성하고, 이때의 상기 카메라의 제1 뷰 데이터를 저장하는 단계, 상기 제1 이미지에 포함되는 상기 마커에 기초하여, 상기 대상 물체의 제1 상대 포즈 데이터를 생성하는 단계, 상기 카메라의 제1 뷰 데이터와 상기 대상 물체의 제1 상대 포즈 데이터에 기초하여, 상기 대상 물체의 포즈 데이터를 추정하는 단계, 제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 뷰 데이터를 생성하는 단계 및 상기 대상 물체의 포즈 데이터 및 상기 카메라의 제2 뷰 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정하는 단계를 포함할 수 있다.

Description

물체의 3차원 모델 데이터 생성 방법{METHOD FOR GENERATING THREE DIMENSIONAL MODEL DATA OF AN OBJECT}
본 발명은 물체의 모델 데이터 생성 방법에 관한 것이다. 보다 자세하게는, 3차원 물체를 증강하기 위해 필요한 물체의 모델 데이터를 생성하는 방법에 관한 것이다.
AR 기술의 발전에 따라 대상 물체를 정확히 인식하고 대상 물체 상에 3차원 가상 물체를 증강하기 위한 기술이 연구되고 있다. 특히, 디스플레이에 표시되는 대상 물체 상에 3차원 가상 물체를 증강하여 표시하기 위하여는 물체의 3차원 모델 데이터가 필요하므로, 물체의 3차원 모델 데이터를 충분히 확보할 수 있는 기술의 제공이 요구된다. 이에 따라, ArUco marker 기술과 같이 마커 정보를 이용하여 물체의 3차원 모델 데이터를 획득하는 기술이 개발되었지만, 마커 정보를 인식할 수 없는 상황에서는 물체의 3차원 모델 데이터를 생성할 수 없다.
본 발명의 실시예들은 마커 정보를 인식할 수 없는 경우에도 물체의 3차원 모델 데이터를 생성할 수 있는 물체의 3차원 모델 데이터 생성 방법를 제공한다.
본 발명의 일 실시예에 따른 물체의 모델 데이터 생성 방법은 제1 시점에 카메라로 마커를 포함하는 보드 상에 위치하는 대상 물체를 촬영하여 제1 이미지(Image1)를 생성하고, 이때의 상기 카메라의 제1 뷰(view) 데이터를 저장하고, 상기 제1 이미지(Image1)에 포함되는 상기 마커에 기초하여, 상기 대상 물체의 제1 상대 포즈 데이터를 생성하고, 상기 카메라의 제1 뷰 데이터와 상기 대상 물체의 제1 상대 포즈 데이터에 기초하여, 상기 대상 물체의 포즈 데이터를 추정하고, 제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지(Image2)를 생성하고, 이때의 상기 카메라의 제2 뷰 데이터를 생성하며, 상기 대상 물체의 포즈 데이터 및 상기 카메라의 제2 뷰 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정할 수 있다.
본 발명의 또 다른 실시예는 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법을 실행시키기 위해 컴퓨터로 구현되는 전자 기기와 결합되어 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 개시한다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
이러한 일반적이고 구체적인 측면이 시스템, 방법, 컴퓨터 프로그램, 또는 어떠한 시스템, 방법, 컴퓨터 프로그램의 조합을 사용하여 실시될 수 있다.
본 발명의 실시예들에 관한 물체의 3차원 모델 데이터 생성 방법은 3차원 물체를 증강하는데 필요한 3차원 모델 데이터를 확보할 수 있다.
도 1은 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법을 포함하는 물체 포즈 추정 시스템의 예를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터를 생성하는 사용자 단말 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 프로세서의 내부 구성을 나타낸 것이다.
도 4는 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법의 순서도이다.
도 5는 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법에서 마커 정보를 획득할 수 없는 경우를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 가상 블록 생성 방법을 설명하기 위한 도면이다.
도 7은 도 4의 일부 동작을 상세히 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 카메라 포즈 데이터를 보정하는 방법을 설명하기 위한 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이러한 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 본 명세서에 기재되어 있는 특정 형상, 구조 및 특성은 본 발명의 정신과 범위를 벗어나지 않으면서 일 실시예로부터 다른 실시예로 변경되어 구현될 수 있다. 또한, 각각의 실시예 내의 개별 구성요소의 위치 또는 배치도 본 발명의 정신과 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 행하여지는 것이 아니며, 본 발명의 범위는 특허청구범위의 청구항들이 청구하는 범위 및 그와 균등한 모든 범위를 포괄하는 것으로 받아들여져야 한다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 구성요소를 나타낸다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 여러 실시예에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
이하 도 1을 참조하여 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 방법을 포함하는 물체 포즈 추정 시스템에 대하여 상세히 설명한다.
일 실시예에서, 대상 물체를 촬영하는 카메라(100)와 적어도 하나의 마커(101)를 이용하여 대상 물체의 3차원 모델 데이터(20)가 획득될 수 있다. 대상 물체의 3차원 모델 데이터(20)는 3차원 증강현실 표시 시스템 (미도시)으로 전달될 수 있다. 일 실시예에서 3차원 증강현실 표시 시스템은 증강 현실에서 대상 물체 상에 3차원 가상 물체를 증강하는 장치이다. 3차원 증강현실 표시 시스템은 예컨대 컴퓨팅 장치와 서버를 포함할 수 있다. 컴퓨팅 장치는 대상 물체를 촬영하고, 서버에 접속하여 촬영 영상에 표시된 대상 물체의 상대 포즈 데이터를 획득할 수 있다. 서버는 물체 포즈 추정 시스템으로부터 3차원 모델 데이터(20)를 수집하고 3차원 모델 데이터(20)를 이용하여 인공신경망으로 구현되는 학습 모델을 트레이닝할 수 있다. 서버는 3차원 물체 증강 장치로부터 촬영 영상을 수신하고, 트레이닝된 학습 모델을 이용하여 촬영 영상 내의 대상 물체의 위치 및 상대 포즈를 추출하고, 이를 컴퓨팅 장치에 전달할 수 있다. 이 과정에서 필요한 인공신경망 또는 학습 모델은 본 발명의 일 실시예에 따라 획득된 대상 물체의 3차원 모델 데이터를 이용하여 트레이닝될 수 있다.
3차원 증강현실 표시 시스템은 촬영 영상에 표시되는 대상 물체의 상대 포즈 데이터를 추정하고, 이와 동일한 상대 포즈 데이터를 갖는 3차원 가상 물체의 이미지를 렌더링하여 촬영 상의 대상 물체 상에 증강하여 표시할 수 있다. 즉, 3차원 증강현실 표시 시스템이 촬영 영상 속에서 대상 물체를 정확히 인식하고 대상 물체와 동일한 포즈를 갖는 3차원 가상 물체를 정확하게 증강하기 위하여, 본 발명의 일 실시예에 따라 획득된 충분한 양의 3차원 모델 데이터를 인공신경망의 학습 데이터로 이용할 수 있다. 또한, 본 발명의 일 실시예에 따라 3차원 모델 데이터는 렌더링되는 3차원 가상 물체의 이미지를 생성하는데 이용될 수도 있다.
일 실시예에서, 카메라(100)는 도 2에 도시된 카메라 모듈을 포함하는 사용자 단말일 수 있고, 별도로 구비된 카메라 장치일 수도 있다. 또한 일 실시예에서, 대상 물체의 3차원 모델 데이터(20)는 카메라 모듈이 내재된 컴퓨팅 장치에서 생성될 수 있고, 카메라에서 촬영된 대상 물체의 이미지 또는 영상을 전달받은 별도의 컴퓨팅 장치에서 생성될 수도 있다. 이하 도 2에서는 카메라 모듈이 내재된 사용자 단말을 상기 카메라(100)의 일 예로 설명하나, 본 발명의 몇몇 실시예에 따른 대상 물체를 촬영하는 카메라(100)가 항상 사용자 단말에 내재된 카메라 모듈로 한정되는 것은 아님에 유의한다.
일 실시예에서 카메라(100)는 마커(101)가 표시된 공간에 위치한 대상 물체를 촬영하여 촬영 영상을 생성할 수 있다. 이 경우, 상기 대상 물체는 마커(101)에 대하여 미리 설정된 위치에 미리 설정된 방향으로 배치될 수 있다.
대상 물체가 위치한 공간에 표시된 마커(101)의 정보를 이용하면, 해당 대상 물체의 상대 포즈 데이터를 획득할 수 있다. 포즈(pose)는 대상 물체의 위치(position)와 배향(orientation)을 포함하는 개념이다. 대상 물체의 포즈는 대상 물체의 위치와 배향을 월드 좌표계 상에 표현한 것으로 이해할 수 있고, 대상 물체의 상대 포즈는 대상 물체의 위치와 배향을 카메라 좌표계 상에 표현한 것으로 이해할 수 있다. 또한, 카메라의 포즈는 카메라의 위치와 배향을 월드 좌표계 상에서 표현한 것으로 이해할 수 있다.
마커(101)는 1차원 형태의 바코드 또는 2차원 형태의 QR 코드와 같은 다양한 인식 코드 형태일 수 있다. 다만 본 발명의 몇몇 실시예에 따른 마커는 이에 한정되지 않고, 대상 물체의 위치와 관련된 정보를 포함하는 다양한 종류의 지표를 모두 포함할 수 있음에 유의한다.
본 발명의 몇몇 실시예에 따른 물체의 3차원 모델 데이터 생성 방법은 마커(101)와 카메라의 뷰 데이터를 이용하여 매 프레임 마다 대상 물체의 3차원 모델 데이터를 생성할 수 있다. 또는 다른 실시예에 따라 마커(101)와 카메라의 뷰 데이터를 이용하여 대상 물체의 3차원 모델 데이터를 생성할 수 있다.
일 실시예에서 상기 카메라(100)의 뷰 데이터는 비전 기술을 이용하여 획득될 수 있다. 또한, 카메라(100)의 뷰 데이터는 카메라(100)의 포즈와 직접 관련되는 데이터이다. 카메라(100)의 뷰 데이터는 카메라(100)의 포즈에 의해 정의되는 카메라 좌표계 상에서 월드, 즉, 고정된 피사체가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬(view matrix)일 수 있다. 다르게 말하자면, 카메라(100)의 뷰 데이터는 월드 좌표계 상의 좌표값을 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들을 의미할 수 있다. 카메라의 움직임에 따라 카메라의 포즈와 이에 의해 정의되는 카메라 좌표계가 변하게 된다. 카메라의 뷰 데이터는 카메라의 움직임에 따라 달라지게 된다. 보다 구체적인 물체의 3차원 모델 데이터의 생성 방법은 관련 도면에서 보다 상세히 후술한다.
이하 본 발명의 일 실시예에 따라 생성된 대상 물체의 3차원 모델 데이터의 포맷에 대하여 상세히 설명한다. 일 실시예에서 생성된 하나 이상의 대상 물체의 3차원 모델 데이터(20)는 카메라에 의해 촬영된 모든 프레임에 대하여 생성될 수 있다. 따라서, 일 실시예에서 생성된 복수개의 대상 물체의 3차원 모델 데이터(20)들은 서로 상이한 프레임을 기초로 획득된 대상 물체의 3차원 모델 데이터일 수 있다.
구체적으로, 특정 프레임에 생성된 대상 물체의 3차원 모델 데이터(22)는 해당 프레임에 대응되는 대상 물체의 이미지(23)와 상기 대상 물체의 상대 포즈 데이터에 대응되는 가상 블록의 좌표(24)를 포함할 수 있다.
일 실시예에 따른 상기 가상 블록은 대상 물체의 관심 영역(ROI, Region of Interest)에 대응되는 영역에 생성될 수 있다. 일 실시예에서 대상 물체의 3차원 모델 데이터 생성 장치는 전술한 가상 블록의 크기 정보를 수신할 수 있고, 수신한 가상 블록의 크기 정보에 기초하여 오브젝트 좌표계 상의 가상 블록 좌표를 생성할 수 있다. 오브젝트 좌표계는 마커(101)에 의해 정의되는 좌표계로서, 오브젝트 좌표계의 원점과 각 축은 마커(101)에 의해 결정된다. 사용자는 오브젝트 좌표계의 x, y, z축에 기초하여 대상 물체(object)의 방향을 결정하고, 대상 물체를 오브젝트 좌표계의 원점에 위치시키면서 대상 물체의 방향이 앞에서 결정한 방향을 향하게 할 수 있다.
이후, 3차원 모델 데이터 생성 장치는 상기 오브젝트 좌표계 상의 가상 블록 좌표 및 상기 대상 물체의 상대 포즈 데이터에 기초하여 카메라 좌표계 상의 가상 블록 좌표를 생성할 수 있다. 또한, 카메라 좌표계 상의 가상 블록 좌표에 기초하여, 2차원 카메라 좌표계 상의 가상 블록 좌표를 대상 물체의 상대 포즈 정보로서 생성할 수 있다.
일 실시예에서 대상 물체의 상대 포즈 정보는 가상 블록의 특징점 정보를 포함할 수 있다. 이 경우, 가상 블록의 형태는 가상 블록의 크기 정보에 기초하여 생성된 육면체 블록일 수 있다. 이 경우, 가상 블록의 크기 정보는 가상 블록의 가로, 세로, 및 높이를 포함할 수 있다. 또한, 가상 블록의 밑면의 중심이 오브젝트 좌표계의 원점에 위치하는 것으로 설계될 수 있다. 상기 대상 물체의 상대 포즈 정보는 육면체 블록의 꼭지점들에 각각 대응되는 2차원 카메라 좌표계 상의 좌표값들에 관한 좌표값 정보를 포함할 수 있다. 하지만 이는 가상 블록 및 대상 물체의 상대 포즈 정보의 일 예시일 뿐, 본 발명의 몇몇 실시예에 따른 가상 블록의 형태가 육면체로 한정된다거나 대상 물체의 상대 포즈 정보가 항상 육면체 블록의 좌표값 정보를 포함하는 것은 아니며, 상술한 좌표값이 항상 꼭지점에 대응되는 것도 아님에 유의한다.
이하 도 2를 참조하여 물체의 3차원 모델 데이터를 생성하는 사용자 단말 및 서버의 내부 구성에 대하여 상세히 설명한다.
도 2에서는 본 발명의 일 실시예에 따른 물체의 3차원 모델 데이터 생성 장치에 대한 예로서 사용자 단말(110) 및 서버(120)의 내부 구성에 대하여 상세히 설명한다.
일 실시예에서 물체의 3차원 모델 데이터를 생성하는 사용자 단말(110)은 카메라 모듈(211), 입출력 인터페이스(212), 메모리(213), 프로세서(214) 및 통신 모듈(215)을 포함할 수 있다. 메모리(213)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(213)에는 사용자 단말(110)을 제어하기 위한 프로그램 코드 및 설정, 카메라 영상, 그리고 대상 물체의 포즈 데이터가 일시적 또는 영구적으로 저장될 수 있다.
프로세서(214)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(213) 또는 통신 모듈(215)에 의해 프로세서(214)로 제공될 수 있다. 예를 들어 프로세서(214)는 메모리(213)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(215)은 네트워크(130)를 통해 서버(120)와 통신하기 위한 기능을 제공할 수 있다. 일례로, 사용자 단말(110)의 프로세서(214)가 메모리(213)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청이 통신 모듈(215)의 제어에 따라 네트워크(130)를 통해 서버(120)로 전달될 수 있다. 역으로, 서버(120)의 프로세서(224)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 네트워크(130)를 거쳐 통신 모듈(215)을 통해 사용자 단말(110)로 수신될 수 있다. 예를 들어 통신 모듈(215)을 통해 수신된 서버(120)의 제어 신호나 명령 등은 프로세서(214)나 메모리(213)로 전달될 수 있고, 컨텐츠나 파일 등은 사용자 단말(110)이 더 포함할 수 있는 저장 매체로 저장될 수 있다.
또한, 통신 모듈(215)은 서버(120)와 네트워크(130)를 통해 통신할 수 있다. 통신 방식은 제한되지 않지만, 네트워크(130)는 근거리 무선통신망일 수 있다. 예를 들어, 네트워크(130)는 블루투스(Bluetooth), BLE(Bluetooth Low Energy), Wifi 통신망일 수 있다.
입출력 인터페이스(212)는 카메라 모듈(211)과의 인터페이스를 위한 수단일 수 있다. 카메라 모듈(211)은 하나 이상의 개별 카메라를 포함하는 카메라 모듈일 수 있다. 일 예로, 카메라 모듈(211)은 사용자 단말에 내장된 카메라 모듈일 수 있고, 별도로 구비된 카메라 장치와의 연결되는 모듈일 수도 있다.
또한, 입출력 인터페이스(212)는 사용자의 입력을 수신하고, 출력 데이터를 디스플레이 할 수 있다. 일 실시예에 따른 입출력 인터페이스(212)는 사용자로부터 가상 블록의 크기에 대한 정보를 입력 받을 수 있고, 디스플레이에 가상 블록을 오버레이(overlay) 하여 표시할 수 있다.
또한, 다른 실시예들에서 사용자 단말(110)은 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 사용자 단말(110)은 사용자 단말의 내부 구성요소들에 전력을 공급하는 배터리 및 충전 장치를 포함할 수 있고, 상술한 입출력 장치 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다.
또한, 비록 도 2에는 도시되지 않았지만 사용자 단말(110)은 하나 이상의 관성 인식 기반 센서를 더 포함할 수 있다. 본 발명의 일 실시예에 따르면, 관성 인식 기반 센서를 통해 카메라의 움직임과 관련된 정보를 획득할 수 있다. 예를 들어 관성 인식 기반 센서는 3축 자이로 센서 및 3축 가속도 센서 중 적어도 하나를 포함할 수 있고, 상기 관성 인식 기반 센서로부터 획득한 정보를 이용하여 사용자 단말(110)의 포즈 데이터를 획득할 수 있다. 사용자 단말(110)의 포즈 데이터는 예컨대, 사용자 단말(110)에 포함된 카메라의 뷰 데이터 또는 포즈 데이터일 수 있다.
이하 도 3을 참조하여 본 발명의 일 실시예에 따른 대상 물체의 3차원 모델 데이터를 생성하는 사용자 단말 또는 서버의 프로세서의 내부 구성에 대하여 상세히 검토한다. 후술되는 프로세서는 이해의 용이를 위하여 도 2에 도시된 대상 물체의 3차원 모델 데이터를 생성하는 사용자 단말(110)의 프로세서(214)임을 가정하고 설명하나, 일 실시예에서 상기 대상 물체의 3차원 모델 데이터가 서버(120)에서 생성되는 경우 후술되는 프로세서는 도 2에 도시된 서버(120)의 프로세서(224)일 수 있음에 유의한다.
본 발명의 일 실시예에 따른 대상 물체의 3차원 모델 데이터를 생성하는 장치의 프로세서(214)는 이미지 생성부(310), 뷰 데이터 관리부(320), 대상 물체의 상대 포즈 데이터 생성부(330), 대상 물체의 포즈 데이터 추정부(340) 및 대상 물체의 상대 포즈 데이터 추정부(350)를 포함할 수 있다. 몇몇 실시예에 따라 프로세서(214)의 구성요소들은 선택적으로 프로세서(214)에 포함되거나 제외될 수도 있다. 또한, 몇몇 실시예에 따라 프로세서(214)의 구성요소들은 프로세서(214)의 기능의 표현을 위해 분리 또는 병합될 수도 있다.
이러한 프로세서(214) 및 프로세서(214)의 구성요소들은 도 4에 도시되는, 대상 물체의 3차원 모델 데이터 생성 방법의 단계들(S110 내지 S150)을 수행하도록 사용자 단말(110)을 제어할 수 있다. 예를 들어, 프로세서(214) 및 프로세서(214)의 구성요소들은 메모리(213)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(214)의 구성요소들은 사용자 단말(110)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(214)에 의해 수행되는 프로세서(214)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서(214)의 내부 구성 및 구체적인 동작에 대해서는 도 4, 및 도 5 내지 도 8을 참조하여 설명하기로 한다.
도 4 는 본 발명의 일 실시예에 따른 대상 물체의 3차원 모델 데이터 생성 방법을 시계열적으로 나타낸 도면이다.
아래에서는 용이한 이해를 위하여, 대상 물체의 포즈 데이터를 'Mobj wc'로 표현한다. 대상 물체의 포즈 데이터(Mobj wc)는 오브젝트 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다. 오브젝트 좌표계는 마커(101)에 의해 정의되는 좌표계이다. 오브젝트 좌표계의 원점과 x, y, z 축은 마커(101)에 의해 결정된다. 대상 물체(즉, 오브젝트(Object))는 오브젝트 좌표계의 원점에 위치하며, 대상 물체는 사용자가 설정한 방향으로 오브젝트 좌표계 상에 위치할 수 있다. 다르게 말하면, 대상 물체는 마커들(101)을 기준으로 사용자가 설정한 위치와 방향으로 배치될 수 있다. 예를 들면, 사용자는 마커들(101)의 정가운데에, 대상 물체의 정면이 마커들(101) 중 어느 하나를 향하도록, 또는 마커들(101) 중 어느 하나를 기준으로 정의된 방향을 향하도록 대상 물체를 위치시킬 수 있다.
카메라의 뷰 데이터를 'Mv'로 표현한다. 제1 뷰 데이터는 'Mv_1'로 표현하고, 제2 뷰 데이터는 'Mv_2'로 표현하고, 제3 뷰 데이터는 'Mv_3'로 표현한다. 카메라의 뷰 데이터(Mv)는 카메라(160)의 포즈에 의해 정의되는 카메라 좌표계 상에서 월드, 즉, 고정된 피사체가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬(view matrix)일 수 있다.
대상 물체의 상대 포즈 데이터를 'Mobj ec'로 표현한다. 대상 물체의 상대 포즈 데이터(Mobj ec)는 오브젝트 좌표계 상의 좌표값을 카메라의 포즈에 의해 정의되는 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다. 제1 상대 포즈 데이터는 'Mobj ec_1'로 표현하고, 제2 상대 포즈 데이터는 'Mobj ec_2'로 표현하고, 제3 상대 포즈 데이터는 'Mobj ec_3'로 표현한다.
카메라의 포즈 데이터를 'Mec wc'로 표현한다. 카메라의 포즈 데이터(Mec wc)는 월드 좌표계 상에서 카메라가 어떻게 이동 및 회전했는지를 나타내기 위한 것으로서, 월드 좌표계 상의 좌표값을 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다. 카메라의 포즈 데이터는 'Mv -1'로 표현될 수도 있다. 카메라의 제1 포즈 데이터는 'Mec_1 wc'로 표현하고, 카메라의 제2 포즈 데이터는 'Mec_2 wc'로 표현하고, 카메라의 제3 포즈 데이터는 'Mec_3 wc'로 표현한다.
대상 물체의 포즈 데이터(Mobj wc), 대상 물체의 상대 포즈 데이터(Mobj ec), 및 카메라의 뷰 데이터(Mv)와 포즈 데이터(Mec wc)는 4x4 포즈 행렬(pose matrix)의 형태를 가질 수 있다. 4x4 포즈 행렬은 3x3 회전 행렬(rotation matrix)과 3x1 이동 행렬(translation matrix)을 포함할 수 있다. 예를 들면, 4x4 포즈 행렬은 [ (3x3 회전 행렬), (3x1 이동 행렬); (0 0 0), 1]과 같이 정의될 수 있다.
대상 물체의 제1 상대 포즈 정보는 'P1~n 2dec_1'로 표현하고, 대상 물체의 제2 상대 포즈 정보는 'P1~n 2dec_2'로 표현한다. 대상 물체의 상대 포즈 정보(P1~n 2dec)는 대상 물체의 상대 포즈 데이터(Mobj ec)를 이용하여 생성된 3차원 카메라 좌표계 상의 가상 블록 좌표(Pvb ec), 및 3차원 카메라 좌표계 상의 가상 블록 좌표(Pvb ec)를 2차원 카메라 좌표계 상에 나타낸 2차원 카메라 좌표계 상의 가상 블럭 좌표(Pvb 2dec)에 기초하여 생성될 수 있다. 대상 물체의 상대 포즈 정보 'P1~n 2dec'는 가상 블록의 특징점(1 ~ n)에 대응하는 2차원 카메라 좌표계 상의 좌표값들을 포함할 수 있다.
도 4를 참조하면, 제1 시점(t1)에 카메라로 마커를 포함하는 보드 상에 위치하는 대상 물체를 촬영하여 제1 이미지(Image1)를 생성하고, 이때의 카메라의 제1 뷰(view) 데이터(Mv_1)를 저장할 수 있다(S110).
이미지 생성부(310)는 제1 시점(t1)에 카메라로 대상 물체를 촬영하여 제1 이미지(Image1)를 생성할 수 있다. 대상 물체는 마커를 포함하는 보드 상에 위치한다. 제1 이미지(Image1)에는 대상 물체가 표시되고, 카메라의 촬영 각도에 따라서 마커는 표시될 수도 있고 표시되지 않을 수도 있다. 아래의 설명에서, 제1 이미지(Image1)에는 대상 물체와 마커가 모두 표시되는 것으로 가정한다.
뷰 데이터 관리부(320)는 제1 시점(t1)의 카메라의 제1 뷰 데이터(Mv_1)를 저장할 수 있다. 제1 뷰 데이터(Mv_1)는 제1 카메라 좌표계 상에서 월드가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬(view matrix)일 수 있다. 제1 카메라 좌표계는 제1 시점(t1)의 카메라의 포즈에 의해 결정되는 좌표계로서, 제1 카메라 좌표계의 x축과 y축은 카메라의 가로축과 세로축에 각각 대응하고, 제1 카메라 좌표계의 (-)z축은 카메라의 시선 방향에 대응한다.
다른 실시예에서 뷰 데이터 관리부(320)는 카메라의 제1 포즈 데이터(Mec_1 wc)를 저장할 수도 있다. 카메라의 제1 포즈 데이터(Mec_1 wc)는 월드 좌표계 상에서 제1 시점의 카메라의 포즈를 나타내는 포즈 행렬 또는 모델 행렬일 수 있다. 카메라의 제1 포즈 데이터(Mec_1 wc)는 제1 카메라 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들을 의미할 수 있다.
카메라의 제1 뷰 데이터(Mv_1)는 카메라의 제1 포즈 데이터(Mec_1 wc)와 역(inverse) 함수의 관계를 가질 수 있다. 뷰 데이터 관리부(320)는 카메라의 제1 포즈 데이터(Mec_1 wc)의 역행렬을 산출함으로써 카메라의 제1 뷰 데이터(Mv_1)를 생성하거나, 카메라의 제1 뷰 데이터(Mv_1)의 역행렬을 산출함으로써 카메라의 제1 포즈 데이터(Mec_1 wc)를 생성할 수 있다.
본 명세서에서 카메라의 뷰 데이터(Mv_1)와 포즈 데이터(Mec wc)는 전술한 의미를 갖는 것으로 이해되지만, 다른 실시예에 따르면, 포즈 데이터가 제1 카메라 좌표계 상에서 월드가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬에 대응하고, 뷰 데이터가 월드 좌표계 상에서 제1 시점의 카메라의 포즈를 나타내는 포즈 행렬 또는 모델 행렬에 대응할 수도 있다.
이후, 제1 이미지(Image1)에 포함되는 마커에 기초하여, 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)가 생성될 수 있다(S120).
대상 물체의 상대 포즈 데이터 생성부(330)는 제1 이미지의 마커들에 기초하여 대상 물체의 제1 상대 포즈 데이터(Mobjec_1)를 생성할 수 있다.
대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)는 오브젝트 좌표계 상의 좌표값을 제1 카메라 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다. 제1 카메라 좌표계는 제1 이미지를 생성한 제1 시점의 카메라의 포즈에 의해 정의되는 좌표계이다.
오브젝트 좌표계는 마커(101)에 의해 정의되는 좌표계이다. 대상 물체의 상대 포즈 데이터 생성부(330)는 제1 이미지에서 마커들을 인식하고, 마커들의 식별 번호, 위치, 크기 및 정렬 방향에 기초하여, 제1 이미지 내에서 오브젝트 좌표계의 원점에 해당하는 좌표, 및 제1 이미지 내에서 오브젝트 좌표계의 각 축들의 방향을 감지할 수 있다. 제1 이미지는 제1 시점의 카메라가 바라본 2차원 좌표계에 대응할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 제1 이미지 내의 오브젝트 좌표계의 원점 및 각 축들의 방향을 제1 카메라 좌표계 상에서 표현되는 오브젝트 좌표계의 원점 및 각 축들의 방향으로 변환할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 제1 카메라 좌표계 상에서 표현되는 오브젝트 좌표계의 원점 및 각 축들의 방향을 이용하여 오브젝트 좌표계와 제1 카메라 좌표계 간의 관계를 결정할 수 있으며, 오브젝트 좌표계와 제1 카메라 좌표계 간의 관계를 기초로 오브젝트 좌표계 상의 좌표값을 제1 카메라 좌표계 상으로 변환하는 행렬, 즉, 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)를 생성할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 대상 물체의 제1 상대 포즈 데이터(Mobjec_1)에 기초하여, 대상 물체의 제1 상대 포즈 정보(P1~n2dec_1)를 생성할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 대상 물체에 대응하는 가상 블록의 크기 정보를 수신할 수 있다. 대상 물체의 상대 포즈 데이터 생성부(330)는 상기 가상 블록의 크기 정보에 기초하여, 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)를 생성할 수 있다. 예를 들면, 가상 블록의 크기 정보로서, 2a의 가로, 2b의 세로, c의 높이가 입력되는 경우, 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)는 가상 블록의 각 꼭지점들의 좌표에 대응하여, (a, b, 0), (a, -b, 0), (-a, -b, 0), (-a, b, 0), (a, b, c), (a, -b, c), (-a, -b, c), (-a, b, c)를 포함할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj), 및 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)에 기초하여, 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)를 생성할 수 있다. 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)는 상기 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)에 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)를 곱함으로써 산출될 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)에 기초하여, 제1 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)를 생성할 수 있다. 제1 카메라 좌표계는 제1 시점의 카메라의 포즈에 의해 정의되는 3차원 좌표계이고, 제1 2차원 카메라 좌표계는 제1 시점의 카메라의 포즈에 의해 정의되는 2차원 좌표계이다. 대상 물체의 상대 포즈 데이터 생성부(330)는 3차원 좌표계 상의 좌표를 2차원 좌표계 상의 좌표로 변환하는 행렬을 이용하여, 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)를 제1 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)로 변환할 수 있다.
대상 물체의 상대 포즈 데이터 생성부(330)는 제1 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)를 제1 상대 포즈 정보 (P1~n 2dec_1)로서 생성할 수 있다.
대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)는 대상 물체와 카메라 간의 위치 및 방향 관계를 나타내지만, 대상 물체의 제1 상대 포즈 정보(P1~n 2dec_1), 즉, 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)는 대상 물체와 카메라 간의 위치 및 방향 관계뿐만 아니라, 제1 이미지에서 대상 물체가 표시된 부분의 위치를 나타낼 수 있다. 따라서, 제1 이미지 내에서 대상 물체가 표시되는 부분을 정확히 추출하기에 용이하다.
대상 물체의 포즈 데이터 추정부(340)는 카메라의 제1 뷰 데이터(Mv_1)와 대상 물체의 제1 상대 포즈 데이터(Mobjec_1)에 기초하여, 대상 물체의 포즈 데이터(Mobjwc)를 추정할 수 있다(S130). 일 실시예에서 대상 물체의 포즈 데이터(Mobj wc)는 마커에 기초하여 정의되는 오브젝트 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬 또는 이의 원소값들일 수 있다.
일 실시예에서, 대상 물체의 포즈 데이터 추정부(340)는 카메라의 제1 뷰 데이터(Mv_1)에 기초하여, 월드 좌표계 상에서 제1 시점(t1)의 카메라의 포즈를 나타내는 카메라의 제1 포즈 데이터(Mec_1 wc)를 산출할 수 있다. 대상 물체의 포즈 데이터 추정부(340)는 카메라의 제1 포즈 데이터(Mec_1 wc)에 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)를 곱함으로써 대상 물체의 포즈 데이터(Mobj wc)를 산출할 수 있다.
카메라의 촬영 각도가 너무 낮은 경우 제1 이미지에 마커가 포함되더라도 프로세서(214)는 마커의 식별 정보, 크기, 방향 등을 인식하지 못할 수 있다. 또한, 카메라의 위치에 따라 대상 물체에 의해 마커들 중 적어도 일부가 가려져서, 프로세서(214)가 제1 이미지에서 오브젝트 좌표계에 관한 정보를 추출하지 못할 수 있다. 이 경우, 프로세서(214)는 대상 물체의 상대 포즈 데이터(Mobj ec)를 추출할 수 없다.
본 발명의 일 실시예에 따른 프로세서(214)는 마커가 식별되지 않은 경우에도, 카메라의 뷰 데이터(Mv_1)를 이용하여 대상 물체의 상대 포즈 데이터(Mobj ec_1)를 생성할 수 있다.
일 실시예에서, 제2 시점에 카메라로 대상 물체를 촬영하여 제2 이미지(Image2)를 생성하고, 이때의 카메라의 제2 뷰 데이터(
Figure 112019116159467-pat00001
)를 생성할 수 있다(S140).
이미지 생성부(310)는 제2 시점에 카메라로 대상 물체를 촬영하여 제2 이미지를 생성한다. 제2 이미지(Image2)에는 대상 물체만 표시되거나, 마커가 표시되더라도 프로세서(214)에 의해 마커의 정보가 식별되지 않는 것으로 가정한다.
뷰 데이터 관리부(320)는 제2 시점의 카메라의 제2 뷰 데이터(Mv_2)를 생성하여 저장할 수 있다. 제2 뷰 데이터(Mv_2)는 제2 카메라 좌표계 상에서 월드가 어떻게 이동 및 회전하였는지를 나타내는 뷰 행렬(view matrix)일 수 있다. 제2 카메라 좌표계는 제2 시점의 카메라의 포즈에 의해 결정되는 좌표계이다.
대상 물체의 포즈 데이터(Mobj wc) 및 카메라의 제2 뷰 데이터(Mv_2)에 기초하여 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)가 추정될 수 있다(S150).
대상 물체의 상대 포즈 데이터 추정부(350)는 대상 물체의 포즈 데이터(Mobj wc) 및 카메라의 제2 뷰 데이터(Mv_2)에 기초하여 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 추정할 수 있다. 일 실시예에서 대상 물체의 상대 포즈 데이터 추정부(350)는 카메라의 제2 뷰 데이터(Mv_2)에 대상 물체의 포즈 데이터(Mobj wc)를 곱함으로써 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 산출할 수 있다.
대상 물체의 상대 포즈 데이터 추정부(350)는 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여 제2 상대 포즈 정보(P1~n 2dec_2)를 생성할 수 있다. 예를 들면, 대상 물체의 상대 포즈 데이터 추정부(350)는 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)에 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)를 곱함으로써 제2 시점의 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)를 산출할 수 있다. 대상 물체의 상대 포즈 데이터 추정부(350)는 제2 시점의 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_2)를 제2 시점의 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)로 변환할 수 있다. 대상 물체의 상대 포즈 데이터 추정부(350)는 제2 시점의 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)를 제2 상대 포즈 정보 (P1~n 2dec_2)로서 생성할 수 있다.
가상 물체의 3차원 이미지를 정확하게 렌더링하기 위해서는 다양한 각도에 생성된 대상 물체의 3차원 모델 데이터가 필요하다. 다양한 각도에서 대상 물체의 3차원 모델 데이터를 생성하기 위하여, 매 프레임마다 카메라를 이동시키며 다양한 각도에서 대상 물체를 촬영해야 한다. 카메라가 이동함에 따라 카메라의 뷰 데이터(Mv)는 달라지며, 촬영된 이미지에서 마커 정보가 식별되지 않을 수 있다.
본 발명의 일 실시예 따르면, 대상 물체의 상대 포즈 데이터 추정부(350)는 카메라의 이동에 따라 변하는 카메라의 뷰 데이터(Mv)와 이전에 확보한 대상 물체의 포즈 데이터(Mobj wc)를 이용하여 대상 물체의 상대 포즈 데이터(Mobj ec)를 추정할 수 있다. 이러한 방법에 대하여는 이하 도 6에서 상세히 후술한다.
다른 실시예에서, 대상 물체의 상대 포즈 데이터(Mobj ec)의 정확도를 높이기 위하여, 마커 정보를 획득할 수 있는 경우에는 카메라의 뷰 데이터(Mv)를 이용하지 않고 마커를 이용하여 대상 물체의 상대 포즈 데이터(Mobj ec)를 직접 획득할 수 있다. 즉, 본 실시예에 따르면 대상 물체의 상대 포즈 데이터 추정부(350)는 마커의 정보를 획득할 수 없는 경우에 한하여 카메라의 뷰 데이터(Mv)를 이용하여 대상 물체의 상대 포즈 데이터(Mobj ec)를 추정함으로써 대상 물체의 3차원 모델 데이터를 생성하기 위한 컴퓨팅 연산량을 최소화 할 수 있다.
본 발명의 다른 실시예에서, 카메라의 뷰 데이터(Mv)를 이용하여 대상 물체의 상대 포즈 데이터(Mobjec)를 추정하는 경우, 카메라의 움직임 정도에 따라 상기 추정된 대상 물체의 상대 포즈 데이터(Mobjec)의 정확도가 감소할 수 있다. 상기 대상 물체의 상대 포즈 데이터(Mobjec)의 정확도는 상기 대상 물체의 상대 포즈 데이터(Mobjec)와 대상 물체의 위치간 매칭되는 정도를 기초로 산출될 수 있다.
따라서 추정된 대상 물체의 상대 포즈 데이터(Mobjec)의 정확도가 낮을 것으로 예상되는 경우, 대상 물체의 상대 포즈 데이터 생성부(330)는 마커를 이용하여 획득된 대상 물체의 상대 포즈 데이터(Mobjec)를 이용하여 대상 물체의 상대 포즈 데이터 추정부(350)에서 추정된 대상 물체의 상대 포즈 데이터(Mobjec)를 보정할 수 있다. 보다 상세한 설명은 이하 도 7 내지 도 8을 참조하여 후술한다.
이하 도 5를 참조하여 대상 물체를 촬영한 이미지에 마커가 포함되어 있지 않은 경우, 대상 물체의 3차원 모델 데이터 생성하는 방법에 대하여 상세히 설명한다. 이하 용이한 이해를 위하여 카메라(10)에서 대상 물체의 3차원 모델 데이터가 생성됨을 가정하여 설명한다. 다만, 본 발명의 몇몇 실시예에 따르면, 대상 물체의 3차원 모델 데이터 생성 방법은 외부 카메라 장치에서 촬영된 데이터를 수신한 컴퓨팅 장치 또는 서버에서 수행될 수도 있다.
도 5의 (a)를 참조할 때, 카메라(10)에서 촬영한 이미지에 포함된 하나 이상의 마커 중 적어도 하나의 마커가 인식되는 경우, 인식된 마커(11)로부터 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)를 획득할 수 있다. 카메라(10)는 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)에 기초하여 대상 물체의 제1 상대 포즈 정보(P1~n 2dec_1)를 생성하고 저장할 수 있다.
카메라(10)는 인식된 마커(11)로부터 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 획득하고, 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여 대상 물체의 제2 상대 포즈 정보(P1~n 2dec_2)를 생성하고 저장할 수 있다.
하지만 전술한 방법만을 이용하여 물체의 3차원 모델 데이터를 생성하는 경우 도 5의 (b)에 도시된 바와 같이 마커 정보를 획득할 수 없는 경우, 대상 물체의 상대 포즈 데이터(Mobj ec)를 생성할 수 없다는 한계가 존재한다. 따라서 이하 도 6을 참조하여 마커를 획득할 수 없는 경우에도 대상 물체의 상대 포즈 데이터(Mobj ec)를 획득하는 방법에 대하여 상세히 설명한다.
이하 도 6을 참조하여 본 발명의 일 실시예에 따른 대상 물체의 3차원 모델 데이터 생성 방법을 상세히 설명한다.
도 6의 (a)를 참조할 때, 사용자는 대상 물체를 마커를 포함하는 보드 상에 마커에 대하여 미리 설정된 위치에 미리 설정된 방향으로 배치될 수 있다. 예를 들면, 사용자는 대상 물체를 마커들의 정중앙에 마커들에 대하여 미리 설정된 방향으로 위치시킬 수 있다.
도 6의 (b)를 참조할 때, 카메라는 제1 시점에 카메라로 마커와 함께 대상 물체를 촬영하여 제1 이미지를 생성하고, 이때의 카메라의 제1 뷰 데이터(Mv_1)를 저장할 수 있다. 또한, 카메라는 제1 이미지에 포함되는 마커에 기초하여, 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)를 생성할 수 있다.
도 6의 (c)를 참조할 때, 카메라는 대상 물체에 대응하는 가상 블록의 크기 정보를 수신할 수 있고, 가상 블록의 크기 정보에 기초하여 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj)를 생성할 수 있다. 카메라는 오브젝트 좌표계 상의 가상 블록 좌표(Pvb obj) 및 대상 물체의 제1 상대 포즈 데이터(Mobj ec_1)에 기초하여, 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)가 생성될 수 있다. 카메라는 제1 카메라 좌표계 상의 가상 블록 좌표(Pvb ec_1)에 기초하여, 제1 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec_1)를 제1 상대 포즈 정보(P1~n 2dec_1)로서 생성할 수 있다.
마찬가지로 도 6의 (d)를 참조하면, 카메라가 이동함에 따라 카메라의 뷰 데이터(Mv)가 변하지만, 카메라가 촬영한 이미지에는 대상 물체뿐만 아니라 마커가 포함되므로, 카메라는 마커에 기초하여 대상 물체의 상대 포즈 데이터(Mobj ec)를 생성할 수 있으며, 대상 물체의 상대 포즈 데이터(Mobj ec)에 기초하여 2차원 카메라 좌표계 상의 가상 블록 좌표를 생성할 수 있다. 카메라는 2차원 카메라 좌표계 상의 가상 블록 좌표(Pvb 2dec)를 상대 포즈 정보(P1~n 2dec)로서 생성할 수 있다.
도 6의 (e)를 참조할 때, 카메라의 촬영 각도가 낮아져서 마커를 촬영하지 못할 수 있다. 카메라는 이때의 카메라의 포즈에 대응하는 카메라의 제2 뷰 데이터(Mv_2) 및 이전에 획득한 대상 물체의 포즈 데이터(Mobj wc )를 이용하여 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 추정할 수 있다. 카메라는 제2 상대 포즈 데이터(Mobj ec_2)에 기초하여 제2 상대 포즈 정보(P1~n 2dec_2)를 생성할 수 있다.
카메라는 제1 시점(t1)과 제2 시점(t2) 사이의 카메라의 움직임(motion)에 대응하여, 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정하고, 상기 카메라의 제1 뷰 데이터(Mv_1) 및 상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기에 기초하여 상기 카메라의 제2 뷰 데이터(Mv_2)를 획득할 수 있다.
일 실시예에서 상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화를 기초로 추정될 수 있다.
다른 실시예에서 상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화, 및 상기 카메라 내의 관성 센서의 센서 값을 기초로 추정될 수도 있다.
즉, 대상 물체의 3차원 모델 데이터 생성 방법에 따르면 모든 프레임에 대하여 대상 물체의 상대 포즈 정보가 생성될 수 있다. 이를 통해, 대상 물체의 포즈를 추정하기 위한 학습 모델을 트레이닝하는데 사용되는 다량의 대상 물체의 3차원 모델 데이터를 확보할 수 있고, 특히 마커 정보를 획득하기 어려운 각도에서 촬영된 대상 물체의 이미지도 대상 물체의 3차원 모델 데이터로 활용 가능해짐으로써 모든 각도에서의 대상 물체의 포즈 추정이 가능하다.
도 7은 도 4의 일부 동작을 상세히 설명하기 위한 도면이다.
먼저, 카메라에서 촬영되는 제2 이미지에 마커가 포함되어 있는지 여부가 확인될 수 있다(S141). 제2 이미지가 촬영되는 시점은 제2 시점으로 지칭한다.
제2 이미지에 마커가 포함되어 있는 경우, 대상 물체의 상대 포즈 데이터 생성부(330)는 마커를 기초로 전술한 단계 S120과 같이 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 생성할 수 있다(S147).
제2 이미지에 마커가 포함되어 있지 않거나 마커가 포함되어 있다고 하더라도 마커 정보를 식별할 수 없는 경우 대상 물체의 상대 포즈 데이터 추정부(350)는 대상 물체의 포즈 데이터(Mobj wc) 및 카메라의 제2 뷰 데이터(Mv_2)에 기초하여 대상 물체의 제2 상대 포즈 데이터(Mobj ec_2)를 추정할 수 있다(S143).
이후, 대상 물체의 상대 포즈 데이터 추정부(350)는 카메라의 제1 뷰 데이터(Mv_1)와 제2 뷰 데이터(Mv_2)간 차이가 기준치 이상인지 여부를 확인할 수 있다(S144).
일 실시예에서 다양하고 많은 양의 대상 물체의 3차원 모델 데이터를 확보하기 위하여, 매 프레임마다 대상 물체를 촬영하는 카메라의 위치가 변할 수 있다. 따라서, 카메라의 제1 뷰 데이터(Mv_1)와 제2 뷰 데이터(Mv_2)간 차이가 기준치 이상인 경우, 마커가 포함된 제3 이미지가 촬영되는 제3 시점에 상술한 제2 상대 포즈 데이터(Mobj ec_2)가 보정될 수 있다.
따라서, 대상 물체의 상대 포즈 데이터 추정부(350)는 전술한 제3 시점에 대상 물체의 제3 상대 포즈 데이터(Mobj ec_3)를 생성할 수 있다(S145).
카메라가 지정된 기준치 이상 움직인 경우, 대상 물체의 상대 포즈 데이터 추정부(350)는 마커 정보가 획득되는 것에 응답하여 그래프 최적화 기법을 이용하여, 제3 상대 포즈 데이터(Mobj ec_3)를 기초로 제2 상대 포즈 데이터(Mobj ec_2)를 보정할 수 있다(S146). 전술한 바, 카메라의 이동 거리 또는 이동 각도가 지정된 수치 이상인 경우, 추정되는 대상 물체의 상대 포즈 데이터(Mobj ec)의 정확도는 낮을 확률이 높다.
일 실시예에서, 카메라의 제1 뷰 데이터(Mv_1)와 제2 뷰 데이터(Mv_2)간 차이가 기준치 이하인 경우, 대상 물체의 상대 포즈 데이터 추정부(350)는 대상 물체의 상대 포즈 데이터(Mobj ec)의 보정을 수행하지 않을 수 있다. 일 실시예에서 카메라의 움직임은 거리 변화 및 각도 변화를 포함할 수 있다. 본 실시예에서 카메라의 이동 거리 및 이동 각도가 지정된 수치 보다 작은 경우, 컴퓨팅 연산을 줄이기 위해 별도의 오차 값 보정은 수행되지 않을 수 있다.
이하 도 8을 참조하여 본 발명의 일 실시예에서 대상 물체의 상대 포즈 데이터(Mobj ec)를 보정하는 방법에 대하여 상세히 설명한다.
일 실시예에 따른 대상 물체의 3차원 모델 데이터 생성 방법에서 카메라를 통해 마커 정보를 획득할 수 없는 경우, 카메라는 대상 물체의 상대 포즈 데이터(Mobj ec) 및 뷰 데이터(Mv)를 별도의 저장 공간에 저장하고, 다음 시점에 대상 물체의 상대 포즈 정보(P1~n 2dec)를 생성할 수 있다.
도 8의 (a)를 참조할 때, 마커를 촬영할 수 없는 t1 내지 t2 시간 동안 생성된 복수의 카메라의 뷰 데이터(Mv)간 차이값이 지정된 수치 이상인 경우, 카메라는 t1 내지 t2 시간 동안 획득된 카메라의 제1 및 제2 뷰 데이터(Mv_1, Mv_2) 및 대상 물체의 제1 및 제2 상대 포즈 데이터(Mobj ec_1, Mobj ec_2)를 저장하고, 대상 물체의 제1 및 제2 상대 포즈 정보(P1~n 2dec_1, P1~n 2dec_2)를 생성하지 않을 수 있다. 이 경우, 일 실시예에 따라 획득된 카메라의 제1 및 제2 뷰 데이터(Mv_1, Mv_2) 및 대상 물체의 제1 및 제2 상대 포즈 데이터(Mobj ec_1, Mobj ec_2)는 이후 마커가 획득되는 시점(t3)까지 별도의 저장 공간에 저장될 수 있다.
이후, 도 8의 (b)에 도시된 바와 같이 t3 시점에 마커가 획득된 경우, t3 시점에서의 대상 물체의 제3 상대 포즈 데이터(Mobj ec_3)를 이용하여 대상 물체의 제3 상대 포즈 정보(P1~n 2dec_3)를 획득할 수 있다. 또한, 일 실시예에 따라 카메라는 카메라의 제3 뷰 데이터(Mv_3)와 대상 물체의 제3 상대 포즈 데이터(Mobj ec_3)를 이용하여 대상 물체의 포즈 데이터(Mobj wc)를 생성하고, 상기 대상 물체의 포즈 데이터(Mobj wc)를 이용하여 t1 내지 t2 시점에 획득된 대상 물체의 제1 및 제2 상대 포즈 데이터(Mobj ec_1, Mobj ec_2)를 보정할 수 있다. 이후, 보정된 대상 물체의 제1 및 제2 상대 포즈 데이터(Mobj ec_1, Mobj ec_2)를 이용하여 t1 내지 t2 시점에서의 2차원 카메라 좌표계 상의 가상 블록 좌표들일 수 있는 대상 물체의 제1 및 제2 상대 포즈 정보(P1~n 2dec_1, P1~n 2dec_2)를 생성할 수 있다.
본 실시예에서 대상 물체의 상대 포즈 데이터(Mobj ec)는 그래프 최적화 기법을 통해 보정될 수 있다. 그래프 최적화 기법은 그래프의 정점간 차이를 최소화하므로, 그래프 최적화 기법을 이용하여 대상 물체의 보정된 상대 포즈 데이터(Mobj ec)를 이용하는 경우 자연스러운 대상 물체 포즈의 추정 및 대상 물체의 증강이 가능하다.
본 발명에서 설명하는 특정 실행들은 일 실시예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 단계들은 적당한 순서로 행해질 수 있다. 반드시 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항과 한정된 실시예 및 도면에 의하여 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위하여 제공된 것일 뿐, 본 발명이 상기 실시예에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정과 변경을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.

Claims (15)

  1. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    제1 시점에 카메라로 마커를 포함하는 보드 상에 위치하는 대상 물체를 촬영하여 제1 이미지를 생성하고, 이때의 상기 카메라의 제1 뷰(view) 데이터를 저장하는 단계;
    상기 제1 이미지에 포함되는 상기 마커에 기초하여, 상기 대상 물체의 제1 상대 포즈 데이터를 생성하는 단계;
    상기 카메라의 제1 뷰 데이터와 상기 대상 물체의 제1 상대 포즈 데이터에 기초하여, 상기 대상 물체의 포즈 데이터를 추정하는 단계;
    제2 시점에 상기 카메라로 상기 대상 물체를 촬영하여 제2 이미지를 생성하고, 이때의 상기 카메라의 제2 뷰 데이터를 생성하는 단계; 및
    상기 대상 물체의 포즈 데이터 및 상기 카메라의 제2 뷰 데이터에 기초하여 상기 대상 물체의 제2 상대 포즈 데이터를 추정하는 단계;
    를 포함하는 물체의 3차원 모델 데이터 생성 방법.
  2. 제1 항에 있어서,
    상기 대상 물체의 제1 상대 포즈 데이터에 기초하여, 제1 상대 포즈 정보를 생성하고, 상기 제1 이미지와 상기 제1 상대 포즈 정보를 학습 데이터로서 저장하거나, 상기 컴퓨팅 장치와 통신하는 서버에 전송하는 단계; 및
    상기 대상 물체의 제2 상대 포즈 데이터에 기초하여, 제2 상대 포즈 정보를 생성하고, 상기 제2 이미지와 상기 제2 상대 포즈 정보를 학습 데이터로서 저장하거나, 상기 컴퓨팅 장치와 통신하는 서버에 전송 하는 단계;
    를 포함하는 물체의 3차원 모델 데이터 생성 방법.
  3. 제2 항에 있어서,
    상기 대상 물체에 대응하는 가상 블록의 크기 정보를 수신하는 단계;를 더 포함하고,
    상기 제1 상대 포즈 정보를 생성하는 단계는,
    상기 가상 블록의 크기 정보에 기초하여, 오브젝트 좌표계 상의 가상 블록 좌표를 생성하는 단계;
    상기 오브젝트 좌표계 상의 가상 블록 좌표, 및 상기 대상 물체의 제1 상대 포즈 데이터에 기초하여, 상기 제1 시점의 카메라 좌표계 상의 가상 블럭 좌표를 생성하는 단계;
    상기 제1 시점의 카메라 좌표계 상의 가상 블럭 좌표에 기초하여, 상기 제1 시점의 2차원 카메라 좌표계 상의 가상 블럭 좌표를 상기 제1 상대 포즈 정보로서 생성하는 단계;
    를 포함하는 물체의 3차원 모델 데이터 생성 방법.
  4. 제3 항에 있어서,
    상기 오브젝트 좌표계는 상기 마커에 의해 정의되고,
    상기 카메라 좌표계는 상기 카메라의 포즈를 기초로 정의되는,
    물체의 3차원 모델 데이터 생성 방법.
  5. 제1 항에 있어서,
    상기 대상 물체는 상기 마커에 대하여 미리 설정된 위치에 미리 설정된 방향으로 배치되는,
    물체의 3차원 모델 데이터 생성 방법.
  6. 제1 항에 있어서,
    상기 카메라의 제2 뷰 데이터를 생성하는 단계는,
    상기 제1 시점과 상기 제2 시점 사이의 상기 카메라의 움직임(motion)에 대응하여, 병진 운동의 방향과 크기 및 회전 운동의 방향과 크기를 추정하는 단계; 및
    상기 카메라의 제1 뷰 데이터 및 상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기에 기초하여, 상기 카메라의 제2 뷰 데이터를 생성하는 단계;
    를 포함하는 물체의 3차원 모델 데이터 생성 방법.
  7. 제6 항에 있어서,
    상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화를 기초로 추정되는 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  8. 제6 항에 있어서,
    상기 병진 운동의 방향과 크기 및 상기 회전 운동의 방향과 크기는 상기 제1 이미지의 특징점들과 상기 제2 이미지 내의 특징점들 간의 변화, 및 상기 카메라 내의 관성 센서의 센서 값을 기초로 추정되는 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  9. 제1 항에 있어서,
    상기 대상 물체의 포즈 데이터는 상기 대상 물체에 기초하여 정의되는 오브젝트 좌표계 상의 좌표값을 월드 좌표계 상으로 변환하는 행렬인 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  10. 제9 항에 있어서,
    상기 카메라의 제1 뷰 데이터는 상기 월드 좌표계 상의 좌표값을 상기 제1 시점의 상기 카메라의 포즈로 정의되는 제1 카메라 좌표계 상으로 변환하는 행렬이고,
    상기 카메라의 제2 뷰 데이터는 상기 월드 좌표계 상의 좌표값을 상기 제2 시점의 상기 카메라의 포즈로 정의되는 제2 카메라 좌표계 상으로 변환하는 행렬인 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  11. 제10 항에 있어서,
    상기 대상 물체의 제1 상대 포즈 데이터는 상기 오브젝트 좌표계 상의 좌표값을 상기 제1 카메라 좌표계 상으로 변환하는 행렬이고,
    상기 대상 물체의 제2 상대 포즈 데이터는 상기 오브젝트 좌표계 상의 좌표값을 상기 제2 카메라 좌표계 상으로 변환하는 행렬인 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  12. 제11 항에 있어서,
    상기 대상 물체의 포즈 데이터를 추정하는 단계는,
    상기 카메라의 제1 뷰 데이터에 기초하여, 상기 월드 좌표계 상에서 상기 제1 시점의 상기 카메라의 포즈를 나타내는 제1 포즈 데이터를 산출하는 단계; 및
    상기 제1 포즈 데이터에 상기 대상 물체의 제1 상대 포즈 데이터를 곱함으로써 상기 대상 물체의 포즈 데이터를 산출하는 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  13. 제11 항에 있어서,
    상기 대상 물체의 제2 상대 포즈 데이터는,
    상기 카메라의 제2 뷰 데이터에 상기 대상 물체의 포즈 데이터를 곱함으로써 산출되는 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  14. 제1 항에 있어서,
    상기 카메라의 제1 뷰(view) 데이터, 상기 대상 물체의 제1 상대 포즈 데이터및 상기 대상 물체의 포즈 데이터는,
    3x3 회전 행렬(rotation matrix)과 3x1 이동 행렬(translation matrix)을 포함하는 4x4 포즈 행렬(pose matrix)의 형태를 갖는 것을 특징으로 하는,
    물체의 3차원 모델 데이터 생성 방법.
  15. 컴퓨팅 장치를 이용하여 제1항 내지 제14항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
KR1020190144539A 2019-11-12 2019-11-12 물체의 3차원 모델 데이터 생성 방법 KR102198851B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190144539A KR102198851B1 (ko) 2019-11-12 2019-11-12 물체의 3차원 모델 데이터 생성 방법
US17/095,068 US11610373B2 (en) 2019-11-12 2020-11-11 Method of generating three-dimensional model data of object

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144539A KR102198851B1 (ko) 2019-11-12 2019-11-12 물체의 3차원 모델 데이터 생성 방법

Publications (1)

Publication Number Publication Date
KR102198851B1 true KR102198851B1 (ko) 2021-01-05

Family

ID=74140812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144539A KR102198851B1 (ko) 2019-11-12 2019-11-12 물체의 3차원 모델 데이터 생성 방법

Country Status (2)

Country Link
US (1) US11610373B2 (ko)
KR (1) KR102198851B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102403258B1 (ko) * 2021-12-15 2022-05-30 주식회사 리콘랩스 볼륨 추론 기반 3차원 모델링 방법 및 시스템
KR20230051895A (ko) * 2021-10-12 2023-04-19 네이버랩스 주식회사 학습 데이터 수집 시스템 및 방법
KR20230070976A (ko) * 2021-11-15 2023-05-23 국방과학연구소 이미지 스티칭 학습 및 평가를 위한 이미지 데이터셋 생성 장치 및 그 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020166371A (ja) * 2019-03-28 2020-10-08 セイコーエプソン株式会社 情報処理方法、情報処理装置、物体検出装置およびロボットシステム
US20210279967A1 (en) * 2020-03-06 2021-09-09 Apple Inc. Object centric scanning
US20220398804A1 (en) * 2021-06-11 2022-12-15 Occipital, Inc. System for generation of three dimensional scans and models
CN116152141A (zh) * 2021-11-22 2023-05-23 中兴通讯股份有限公司 目标物体的重定位方法、装置、存储介质及电子装置
US11978165B2 (en) * 2022-03-31 2024-05-07 Wipro Limited System and method for generating recommendations for capturing images of real-life objects with essential features
US20230419614A1 (en) * 2022-06-27 2023-12-28 City University Of Hong Kong System and method for delivering interactive laboratory experiments real-time in simulated environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198349A (ja) * 2010-02-25 2011-10-06 Canon Inc 情報処理方法及びその装置
JP2012022667A (ja) * 2010-06-14 2012-02-02 Nintendo Co Ltd 画像表示プログラム、装置、システムおよび方法
JP2017011328A (ja) * 2015-06-16 2017-01-12 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2018523868A (ja) * 2015-07-16 2018-08-23 ブラスト モーション インコーポレイテッドBlast Motion Inc. 統合されたセンサおよびビデオモーション解析方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2395768B1 (en) 2010-06-11 2015-02-25 Nintendo Co., Ltd. Image display program, image display system, and image display method
US9607652B2 (en) 2010-08-26 2017-03-28 Blast Motion Inc. Multi-sensor event detection and tagging system
US9552674B1 (en) * 2014-03-26 2017-01-24 A9.Com, Inc. Advertisement relevance

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198349A (ja) * 2010-02-25 2011-10-06 Canon Inc 情報処理方法及びその装置
JP2012022667A (ja) * 2010-06-14 2012-02-02 Nintendo Co Ltd 画像表示プログラム、装置、システムおよび方法
JP2017011328A (ja) * 2015-06-16 2017-01-12 富士通株式会社 画像処理装置、画像処理方法および画像処理プログラム
JP2018523868A (ja) * 2015-07-16 2018-08-23 ブラスト モーション インコーポレイテッドBlast Motion Inc. 統合されたセンサおよびビデオモーション解析方法

Cited By (6)

* 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 네이버랩스 주식회사 학습 데이터 수집 시스템 및 방법
KR20230070976A (ko) * 2021-11-15 2023-05-23 국방과학연구소 이미지 스티칭 학습 및 평가를 위한 이미지 데이터셋 생성 장치 및 그 방법
KR102645640B1 (ko) 2021-11-15 2024-03-11 국방과학연구소 이미지 스티칭 학습 및 평가를 위한 이미지 데이터셋 생성 장치 및 그 방법
KR102403258B1 (ko) * 2021-12-15 2022-05-30 주식회사 리콘랩스 볼륨 추론 기반 3차원 모델링 방법 및 시스템
WO2023113093A1 (ko) * 2021-12-15 2023-06-22 주식회사 리콘랩스 볼륨 추론 기반 3차원 모델링 방법 및 시스템

Also Published As

Publication number Publication date
US11610373B2 (en) 2023-03-21
US20210142579A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
KR102198851B1 (ko) 물체의 3차원 모델 데이터 생성 방법
JP5660648B2 (ja) マルチユーザ拡張現実におけるオンライン参照生成および追跡
US9928656B2 (en) Markerless multi-user, multi-object augmented reality on mobile devices
US10225506B2 (en) Information processing apparatus and information processing method
US9576183B2 (en) Fast initialization for monocular visual SLAM
WO2021173779A1 (en) Cross reality system with fast localization
WO2021076757A1 (en) Cross reality system supporting multiple device types
CN110568447A (zh) 视觉定位的方法、装置及计算机可读介质
US20100204964A1 (en) Lidar-assisted multi-image matching for 3-d model and sensor pose refinement
CN111127524A (zh) 一种轨迹跟踪与三维重建方法、系统及装置
EP3640889A1 (en) In situ creation of planar natural feature targets
JP2015535980A (ja) 特に装置に係る視覚ベースの位置決めに使用される画像処理方法
KR101869605B1 (ko) 평면정보를 이용한 3차원 공간 모델링 및 데이터 경량화 방법
CN113048980B (zh) 位姿优化方法、装置、电子设备及存储介质
JP2003344018A (ja) 画像処理装置およびその方法並びにプログラム、記憶媒体
Tomažič et al. Fusion of visual odometry and inertial navigation system on a smartphone
KR102197615B1 (ko) 증강 현실 서비스를 제공하는 방법 및 증강 현실 서비스를 제공하기 위한 서버
Koschorrek et al. A multi-sensor traffic scene dataset with omnidirectional video
CN115349140A (zh) 基于多种特征类型的有效定位
CN109658507A (zh) 信息处理方法及装置、电子设备
KR20210050997A (ko) 포즈 추정 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
JP6393000B2 (ja) 3dマップに関する仮説的ラインマッピングおよび検証
CN111133274A (zh) 用于估计在环境和磁场中运动的对象的运动的方法
CN116592876B (zh) 定位装置及定位装置的定位方法
KR102212268B1 (ko) 위치 측정 시스템과 이를 구비하는 이동 수단 및 이를 수행하기 위한 컴퓨팅 장치

Legal Events

Date Code Title Description
GRNT Written decision to grant