KR20190088379A - 자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들 - Google Patents

자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들 Download PDF

Info

Publication number
KR20190088379A
KR20190088379A KR1020180085786A KR20180085786A KR20190088379A KR 20190088379 A KR20190088379 A KR 20190088379A KR 1020180085786 A KR1020180085786 A KR 1020180085786A KR 20180085786 A KR20180085786 A KR 20180085786A KR 20190088379 A KR20190088379 A KR 20190088379A
Authority
KR
South Korea
Prior art keywords
information
estimating
layer
path
key point
Prior art date
Application number
KR1020180085786A
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 US16/238,785 priority Critical patent/US10937189B2/en
Publication of KR20190088379A publication Critical patent/KR20190088379A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/207Analysis of motion for motion estimation over a hierarchy of resolutions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • 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
    • 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/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • 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/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Image Analysis (AREA)

Abstract

자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들이 개시된다. 일 실시예에 따른 자세 추정 방법은 입력 이미지를 수신하는 단계와, 객체의 국부 정보(local information)에 기초하여 상기 입력 이미지에서 상기 객체의 자세 정보를 추정하는 단계를 포함한다.

Description

자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들{POSE ESTIMATING METHOD, METHOD OF DISPLAYING VIRTUAL OBJECT USING ESTIMATED POSE AND APPARATUSES PERFORMING THE SAME}
아래 실시예들은 객체의 자세 추정 방법 및 이를 이용하여 가상 대상을 디스플레이하는 방법, 및 이를 수행하는 장치들에 관한 것이다.
객체의 2차원 또는 3차원 자세를 추정하는 것은 증강 현실(augmented reality), CCTV, 네비게이션, 조종 장치, 로봇 애플리케이션(application) 등 많은 비전 애플리케이션(vision application)의 중요 기술이다.
최근 몇 년 동안, 증강 현실 기술은 점점 더 많은 관심을 받고 있다. 증강 현실 기술 중 기본적인 기능 하나는 3차원 상호 작용(interaction)이다. 즉, 현실 세계의 3차원 객체(object)에 증강 정보를 중첩하고(overlap) 디스플레이하는 것이다.
3차원 상호 작용에서 실제적인 시각적 효과를 불러 일으키기 위해, 증강 정보(augmented information 또는 enhanced information)와 실제 객체의 3차원 자세가 일치되게 해야 할 필요가 있다. 이에, 실제 객체의 2차원 또는 3차원 자세 정보를 획득해야 할 필요가 있다.
기존에, 객체의 자세 정보를 획득하기 위한 3차원 상호 작용 기술은 단일 이미지(single image)를 통해 자세를 추정할 수 있다. 그러나, 단일 이미지로부터 직접(direct) 자세 추정을 수행하는 기존 기술은 오로지 이미지의 전체 정보(whole information 또는 overall information)만을 사용한다. 단일 이미지의 전체 정보에 기초하여 자세를 추정하는 방법은 정확도가 높지 않아, 증강 현실 애플리케이션의 높은 자세 추정 수요를 만족시킬 수 없다.
일 실시예에 따른 자세 추정 방법은 입력 이미지를 수신하는 단계와, 객체의 국부 정보(local information)에 기초하여 상기 입력 이미지에서 상기 객체의 자세 정보를 추정하는 단계를 포함한다.
상기 방법은 상기 객체의 자세 정보를 추정하는 동시에 상기 객체의 키 포인트 정보를 추정하는 단계를 더 포함하고, 상기 국부 정보는 상기 키 포인트 정보에 기초하여 획득될 수 있다.
상기 객체의 자세 정보를 추정하는 단계는 상기 키 포인트 정보를 사용하여 상기 자세 정보를 교정(correct)하는 단계를 포함할 수 있다.
상기 방법이 뉴럴 네트워크(neural network)를 통해 수행될 수 있다.
상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어(base layer)의 파리미터들을 공유할 수 있다.
상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 병렬 모드(parallel mode) 및 캐스케이드 모드(cascade mode) 중에서 어느 하나에 의해 상기 뉴럴 네트워크에서 연결되고, 상기 캐스케이드 모드에서, 상기 키 포인트 정보는 상기 객체의 자세 정보를 추정하는 작업에 입력될 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함할 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어, 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함하고, 상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력은 상기 제2 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력에 연결되어 상기 하나 이상의 FC 레이어에 입력될 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어, 상기 제1 경로의 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함하고, 상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 둘 이상의 출력은 상기 제2 경로의 하나 이상의 FC 레이어 중에서 어느 하나에 연결되어 입력될 수 있다.
상기 방법은 상기 객체의 자세 정보 및 상기 객체의 키 포인트 정보를 추정하는 동시에 상기 입력 이미지에서 상기 객체의 유형 정보를 추정하는 단계를 더 포함할 수 있다.
상기 객체의 자세 정보를 추정하는 작업(task), 상기 객체의 키 포인트 정보를 추정하는 작업(task), 및 상기 객체의 유형 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어의 파리미터들을 공유할 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 연결 레이어(Connection layer)를 포함하며, 상기 객체의 유형 정보를 추정하기 위한 제3 경로를 더 포함할 수 있다.
일 실시예에 따른 장치는 명령을 저장하는 메모리와, 프로세서를 포함하고, 상기 명령이 상기 프로세서에 의해 실행될 때, 상기 프로세서는 입력 이미지를 수신하고, 객체의 국부 정보(local information)에 기초하여 상기 입력 이미지에서 상기 객체의 자세 정보를 추정한다.
상기 프로세서는 상기 객체의 자세 정보를 추정하는 동시에 상기 객체의 키 포인트 정보를 추정하고, 상기 국부 정보는 상기 키 포인트 정보에 기초하여 획득될 수 있다.
상기 프로세서는 상기 키 포인트 정보를 사용하여 상기 자세 정보를 교정(correct)할 수 있다.
상기 프로세서는 뉴럴 네트워크(neural network)를 통해 상기 객체의 키 포인트 정보 및 자세 정보를 추정할 수 있다.
상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어(base layer)의 파리미터들을 공유할 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함할 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어, 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함하고, 상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력은 상기 제2 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력에 연결되어 상기 하나 이상의 FC 레이어에 입력될 수 있다.
상기 뉴럴 네트워크는 상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로와, 상기 베이스 레이어, 상기 제1 경로의 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로를 포함하고, 상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 둘 이상의 출력은 상기 제2 경로의 하나 이상의 FC 레이어 중에서 어느 하나에 연결되어 입력될 수 있다.
도 1은 일 실시예에 따른 자세를 추정하는 방법을 설명하기 위한 개념도의 일 예이다.
도 2는 객체의 자세 정보의 일 예를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 객체의 국부 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도이다.
도 4는 일 실시예에 따른 객체의 키 포인트 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도이다.
도 5는 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 일 예를 나타낸다.
도 6은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 다른 예를 나타낸다.
도 7은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 8은 일 실시예에 따른 객체의 유형 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도의 일 예이다.
도 9는 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 10은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 11은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 12는 일 실시예에 따른 객체의 자세 정보를 추정하는 렌더링(rendering)을 나타낸다.
도 13은 일 실시예에 따른 자세를 추정하는 자세 추정 장치의 개략적인 블록도의 일 예이다.
도 14는 일 실시예에 따른 자세를 추정하는 자세 추정 장치의 개략적인 블록도의 다른 예이다.
도 15는 일 실시예에 따라 추정된 객체의 자세 정보를 이용하여 증강 현실에서 가상 객체를 디스플레이하는 방법을 나타낸다.
도 16은 일 실시예에 따라 추정된 객체의 자세 정보를 이용하여 증강 현실에서 가상 객체를 디스플레이하는 방법을 구체적으로 설명하기 위한 순서도이다.
도 17은 도 16에서 설명된 방법을 이용해 AR에서 가상 대상을 디스플레이하는 일 예를 나타낸다.
도 18은 도 16에서 설명된 방법을 이용해 AR에서 가상 대상을 디스플레이하는 다른 예를 나타낸다.
도 19는 일 실시예에 따른 추정된 객체의 자세를 이용하여 증강 현실에서 가상 객체를 디스플레이 하는 장치의 개략적인 블록도를 나타낸다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 자세를 추정하는 방법을 설명하기 위한 개념도의 일 예이고, 도 2는 객체의 자세 정보의 일 예를 설명하기 위한 도면이다.
도 1 및 도 2를 참조하면, 자세 추정 장치는 입력 이미지를 통해 객체의 자세(pose 또는 posture) 정보를 추정할 수 있다. 예를 들어, 자세 추정 장치는 객체의 국부 정보(local information) 및/또는 객체의 키 포인트 정보 및/또는 객체의 유형 정보에 기초하여 입력 이미지에서 객체의 자세 정보를 추정할 수 있다.
객체의 자세 정보는 6개 자유도의 자세 정보를 포함할 수 있다. 도 2에서는 카메라 모형에서 객체의 6개 자유도(6DOF) 자세 정보를 나타내고 있으며, 실제 객체가 위치한 제1 직각 좌표계(rectangular coordinate system; (i, k, j)) 및 카메라가 위치한 제2 직각 좌표계(i', k', j')를 나타내고 있다.
예를 들어, 6개 자유도(6DOF) 포즈 정보는 방위각(azimuth; a), 앙각(elevation; e), 회전각(in-plane rotation; r), 거리(distance; d), 및 원점(principal point; (u,v))을 포함할 수 있다. 원점은 원점의 가로 좌표(u)와 원점의 세로 좌표(v)를 포함할 수 있다.
추정된 객체의 6개 자유도 자세 정보는 증강 현실에서 가상 객체를 디스플레이하는데 응용되고, 또한 CCTV, 네비게이션, 로봇 애플리케이션 등 많은 기술 영역에 응용될 수 있다.
객체의 자세 정보는 6개 자유도 자세 정보 중에서 최소 하나를 포함할 수 있을 뿐 아니라 6개 자유도 자세 정보에 반드시 한정되는 것이 아니고, 다른 정보 또한 포함할 수 있다.
자세 추정 장치는 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치에 구현(또는 탑재)될 수 있다. 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰(smart phone), 태블릿(tablet) PC, 모바일 인터넷 디바이스(mobile internet device(MID)), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld console), e-북(e-book), 또는 스마트 디바이스(smart device)로 구현될 수 있다. 예를 들어, 스마트 디바이스는 스마트 와치(smart watch) 또는 스마트 밴드(smart band)로 구현될 수 있다.
도 3은 일 실시예에 따른 객체의 국부 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도이다.
도 3은 자세 추정 장치가 객체의 국부 정보를 이용해 자세를 추정하는 방법(300)을 나타낸다. 자세 추정 장치는 입력 이미지를 수신(또는 획득)할 수 있다(310).
자세 추정 장치는 입력 이미지에서 객체의 국부 정보를 획득하고, 국부 정보에 기초하여 입력 이미지에서 객체의 자세 정보를 추정할 수 있다(320).
예를 들어, 자세 추정 장치는 객체의 키 포인트 정보를 이용하여 객체의 국부 정보를 획득할 수 있다. 그러나, 반드시 이에 한정되는 것은 아니고, 실시예에 따라 자세 추정 장치는 다른 방식으로 객체의 국부 정보를 획득할 수 있다.
이에, 자세 추정 장치는 객체의 자세를 추정할 때 객체의 국부 정보와 자세 정보를 함께 이용하여 학습 파라미터를 관리함으로써(supervise), 객체의 국부 정보에 의해 객체의 전체 정보를 향상시킬 수 있다(improve, 또는 강화). 이를 통해, 자세 추정 장치는 자세 추정의 정확도를 향상시킬 수 있다.
도 4는 일 실시예에 따른 객체의 키 포인트 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도이다.
도 4는 자세 추정 장치가 키 포인트 정보를 이용해 자세를 추정하는 방법(400)을 나타낸다. 자세 추정 장치는 입력 이미지를 수신할 수 있다(410).
자세 추정 장치는 객체의 국부 정보에 기초하여 입력 이미지에서 객체의 자세 정보를 추정할 수 있다(420). 객체의 자세 정보를 추정할 때, 자세 추정 장치는 객체의 국부 정보를 이용할 수 있다. 이에, 자세 추정 장치는 객체의 국부 정보를 통해 객체의 전체 정보를 강화할 수 있다.
자세 추정 장치는 객체의 키 포인트 정보를 추정할 수 있다(430). 자세 추정 장치는 객체의 자세 정보를 추정하는 동시에 객체의 키 포인트 정보를 추정할 수 있다. 즉, 자세 추정 장치는 단계(420)와 단계(430)를 병렬 수행(또는 병렬 실행)할 수 있다.
키 포인트 정보는 언어적 의미 상의 키 포인트를 의미할 수 있다. 객체의 다른 위치에 위치한 키 포인트는 서로 구별되게 대응되고, 각각의 키 포인트는 각자의 언어적 명칭을 갖을 수 있다. 모든 포인트가 모두 같은 키포인트를 의미하는 것이 아니다. 예를 들어, 비행기 왼쪽 날개 상의 키포인트와 오른쪽 날개 상의 키포인트는 서로 구별되게 대응된다. 객체의 키 포인트를 추정할 때, 해당 키 포인트를 하나의 키포인트로 추정해야 할 뿐 아니라, 해당 키포인트가 어떤 키포인트인지 추정해야 한다.
키 포인트는 대상에서 특수한 형태 또는 이미지 특징을 지닌 국부 위치를 대표할 수 있다. 예를 들어, 대상의 끝 점(end point), 표면 형상이 변하는 코너 점(corner point) 등이 키 포인트에 해당할 수 있다.
객체의 자세 정보를 추정할 때(420), 자세 추정 장치는 객체의 자세 정보를 추정하는 동시에 추정한 키포인트 정보를 이용하여 학습한 특징으로 자세 정보 추정에 사용되는 특징 표현능력(expressibility)을 강화할 수 있다. 예를 들어, 자세 추정 장치는 추정된 키 포인트 정보의 중간 결과(intermediate result, 예를 들어 파라미터)를 사용하여 추정된 자세 정보를 교정(correct)할 수 있다.
자세 추정 장치가 뉴럴 네트워크를 통해 도 3의 자세 추정 방법(300) 또는 도 4의 자세 추정 방법(400)을 수행하는 과정을 도 5 내지 도 7을 참조하여 설명한다. 예를 들어, 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크일 수 있다.
뉴럴 네트워크에서는 객체의 자세 정보 추정 및 객체의 키 포인트 정보 추정을 각각 독립적인 작업(task)으로 간주할 수 있다. 또한, 객체의 자세 정보를 추정하기 위한 작업과 객체의 키포인트 정보를 추정하기 위한 작업이 컨볼루션 네트워크에서 컨볼루션 네트워크의 베이스 레이어(base layer)의 파라미터를 공유할 수 있다.
뉴럴 네트워크에서는 객체의 자세 정보를 추정할 때 각기 다른 방식을 통해 객체의 키포인트 정보를 이용할 수 있다. 예를 들어, 객체의 자세 정보 추정 작업과 객체의 키포인트 정보 추정 작업은 뉴럴 네트워크에서 병렬 모드(parallel mode)와 캐스케이드 모드(cascade) 중에서 하나를 통해 연결될 수 있다. 병렬 모드에서, 객체의 자세 정보 추정 작업과 객체의 키 포인트 정보 추정 작업은 베이스 레이어의 파라미터(parameter)를 공유하는 것 외에 다른 상호교류가 없을 수 있다. 캐스케이드 모드에서, 객체의 키포인트 정보 추정 작업의 중간 결과는 객체의 자세 정보 추정 작업에 입력될 수 있다.
일 예로, 객체의 자세 정보를 추정하는 작업이 병렬(또는 병행) 방식을 통해 객체의 키 포인트 정보를 추정하는 작업과 베이스 레이어의 파라미터를 공유할 수 있다. 이를 병렬 뉴럴 네트워크라 칭할 수 있다.
다른 예로, 객체의 자세 정보를 추정하는 작업이 캐스케이드 방식을 통해 추정된 객체의 키포인트 정보와 결합될 수 있다. 이를 캐스케이드 뉴럴 네트워크라 칭할 수 있다.
또 다른 예로, 멀티-디멘션(또는 멀티-스케일)으로 객체의 키 포인트 정보를 추정하고, 객체의 자세 정보를 추정하는 작업과 추정된 멀티-디멘션의 키 포인트 정보를 결합할 수 있다. 이를 멀티-디멘션 뉴럴 네트워크(또는 멀티-스케일 뉴럴 네트워크)라 칭할 수 있다.
병렬 뉴럴 네트워크, 캐스케이드 뉴럴 네트워크, 및 멀티-디멘션 뉴럴 네트워크에서의 작업은 같고, 모두 입력 이미지에서 객체의 자세 정보와 키 포인트 정보를 추정하기 위한 것이다. 예를 들어, 자세 정보 추정 작업은 주요 작업이고, 키 포인트 정보 추정 작업은 보조 작업일 수 있다.
뉴럴 네트워크의 트레이닝(training)은 트레이닝 데이터 준비, 네트워크 구성 설계, 및 트레이닝의 세 단계를 포함할 수 있다. 트레이닝 데이터 준비는 트레이닝 데이터 레이블링(labeling), 즉 2차원 또는 3차원 이미지에서 각 객체에 대해 객체의 6개 자유도 자세 정보 및 키 포인트의 위치와 명칭을 레이블링하는 것을 포함할 수 있다. 뉴럴 네트워크의 딥 러닝은 대량의 샘플, 즉 대량의 이미지와 이에 대응하는 주석 정보(annotation information)를 필요로 한다. 트레이닝 데이터는 자체적으로 수동으로 레이블링하거나, 이러한 주석 정보를 가진 기존 데이터 세트(data set)를 수집할 수 있다.
트레이닝 동안에, 키 포인트를 갖는 객체 이미지 데이터는 트레이닝 프로세스 동안 키 포인트를 관리(또는 감독)함으로써 네트워크 파라미터를 업데이트하기 위해 사용될 수 있다. 이에, 트레이닝된 네트워크는 키 포인트 정보를 이용할 수 있는 능력을 갖추게 된다.
이하에서는 설명의 편의를 위해 n개 유형의 객체의 6개 자유도 자세 정보를 추정한다고 가정한다. 또한, 이 n 개 유형의 객체의 키 포인트 전체 개수를 8로, 입력 이미지의 크기가 224x 224 픽셀(pixel)인 빨강색, 녹색, 파란색(RGB) 3개 채널(channel)을 지닌 2차원 이미지로 가정한다. 이 가정은 설명의 편의를 위한 것이고, 반드시 이에 한정되는 것은 아니다. 객체의 키 포인트 개수는 8보다 작거나 많을 수 있고, 입력 이미지 역시 모든 크기의 다른 격식의 2차원 또는 3차원 이미지가 될 수 있다.
도 5는 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 일 예를 나타낸다.
도 5에서는 키 포인트 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 일 예로 병렬 뉴럴 네트워크를 나타낸다.
병렬 뉴럴 네트워크는 두 가지 작업을 수행할 수 있다. 두 가지 작업은 객체의 자세 정보 추정 작업과 객체의 키포인트 정보 추정 작업을 포함할 수 있다. 두 가지 작업은 병렬 뉴럴 네트워크에서 병렬 연결 방식을 통해 연결되어, 하부 레이어 컨볼루션 레이어 Convs에서 베이스 레이어 파라미터를 공유할 수 있다. 그 다음, 서로 다른 네트워크 분파(分派)로 나뉘어 각자의 네트워크 파라미터(또는 네트워크 모듈 파라미터)를 각각 학습할 수 있다.
Convs는 베이스 레이어이고, 컨볼루션 레이어(또는 멀티레이어, 멀티 컨볼루션 레이어)일 수 있다. Convs는 베이스 레이어로 칭해질 수 있고, 많은 구조로 구현될 수 있다.
예를 들어, Convs는 VGG16의 pool5(풀링 레이어5) 앞의 네트워크 레이어를 사용하고, 총 13개 레이어의 컨볼루션 레이어를 포함할 수 있다. 컨볼루션 레이어는 뉴럴 네트워크의 기본 단위(elementary unit)이다. 반드시 이에 한정되는 것은 아니고, VGG16외에도, Alex Net, ResNet 등의 네트워크를 Convs로 취급할 수 있다.
뉴럴 네트워크에서, 베이스 레이어(또는 하부 레이어)는 입력(예: 이미지 입력)에 가까운 네트워크 레이어를 나타내고, 상부 레이어(top layer)는 결과 출력에 가까운 네트워크 레이어를 나타낼 수 있다.
병렬 뉴럴 네트워크에서, 베이스 레이어 Convs 이후, 병렬 뉴렬 네트워크는 두 경로로 분리될 수 있다. 제1 경로는 객체의 키 포인트 정보를 추정하기 위해 사용되고, 베이스 레이어와 하나 이상의 컨볼루션 레이어를 포함할 수 있다. 제2 경로는 객체의 자세 정보를 추정하기 위해 사용되고, 베이스 레이어와 하나 이상의 FC 레이어(Fully connected layer)를 포함할 수 있다.
구체적으로, 도 5에 나타난 바와 같이, 제1 경로에서, 베이스 레이어 Convs 뒤로, 베이스 레이어 Convs의 출력이 컨볼루션 레이어 Conv6에 연결될 수 있다. 컨볼루션 레이어 Conv6의 채널 수는 객체의 키 포인트의 총 개수와 같을 수 있다. 예를 들어, 객체의 키 포인트가 총 8개인 경우, 컨볼루션 레이어 Conv6의 채널 수는 8로 설정될 수 있다. 컨볼루션 레이어 Conv6는 크기가 3x3인 컨볼루션 커널(Convolution kernel)을 포함할 수 있다. 컨볼루션 커널에 의해 컨볼루션을 거친 후의 각 채널은 7x7 크기일 수 있다. 이에, 컨볼루션 레이어 Conv6의 출력 크기는 8x7x7일 수 있다. 반드시 이에 한정되는 것은 아니며, 컨볼루션 레이어 Conv6의 컨볼루션 커널의 크기 및 컨볼루션을 거친 채널의 크기는 다른 수로 설정될 수 있다.
도 5에서는 제1 경로가 하나의 컨볼루션 레이어 Conv6만을 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제1 경로는 둘 이상의 컨볼루션 레이어를 포함할 수 있다.
객체 키 포인트 정보 추정 작업에 있어, 참 값(true value, 또는 실제 값(real value))을 설정할 때, 네트워크가 다른 위치에서 객체의 키 포인트들을 식별할 수 있게 하기 위해, 객체의 키 포인트는 하나의 채널로 설정할 수 있다. 채널 내 각 의미상의 키 포인트(semantic key point)에 대해, 키 포인트가 존재하면 값은 1이고, 그렇지 않으면 0일 수 있다.
뉴럴 네트워크에서, 각 작업은 트레이닝 동안에 손실 함수(loss function)를 필요로 할 수 있다. 객체 키 포인트 정보 추정 작업의 손실 함수는 교차 엔트로피(cross entropy) 손실 함수를 사용할 수 있다. 컨볼루션 레이어 Conv6의 출력이 객체의 키 포인트 추정 작업의 손실 함수, 즉 교차 엔트로피 손실함수에 연결될 수 있다. 손실 함수는 도 5에서 L1로 표시된다. 또한, 교차 엔트로피 손실 함수는 많은 유형(또는 멀티플 유형)의 객체에 적용될 수 있다.
제2 경로에서, 베이스 레이어 Convs의 출력(예를 들어, 풀링 레이어 5의 출력)은 두 FC 레이어인 FC6과 FC7에 순차적으로 연결되고, FC7의 출력은 FC 레이어인 FC8_P에 연결될 수 있다.
예를 들어, FC 레이어들 FC6과 FC7의 네트워크 노드 수는 4096으로 설정될 수 있다. 즉, FC 레이어들 FC6과 FC7의 출력은 1x4096 크기 벡터일 수 있다. 반드시 이에 한정되는 것은 아니며, FC 레이어들 FC6과 FC7의 네트워크 노드 수는 다양할 수 있다.
FC 레이어 FC8_P의 각 노드는 객체의 하나의 자유도의 자세 정보에 대응할 수 있다. 이에, 6개 자유도의 자세 정보를 추정하기 위해, FC 레이어 FC8_P의 노드 수는 6으로 설정될 수 있다.
객체 자세 정보 추정 작업은 회귀 문제(regression problem)로 모델링(modelling)될 수 있고, 분류 문제(classification problem)로도 모델링될 수 있다. 회귀 문제는 추정된(또는 예측된) 자세 추정치의 연속 값(continuous value)이고, 분류 문제는 추정된 자세의 유형(class 또는 category)일 수 있다. 이 두 모델링 중에서 어느 하나는 사용될 수 있다. 연속 값의 추정은 smooth_L1 손실 함수를 사용할 수 있고, 자세 유형의 추정은 softmax 손실 함수를 사용할 수 있다. 반드시 이에 한정되는 것은 아니며, hinge 손실 함수와 같은 기타 손실 함수도 사용될 수 있다.
설명의 편의를 위해, 회귀 모델링이 사용되는 것으로 가정한다. FC 레이어 FC8_P의 출력이 객체 자세 추정 작업의 손실 함수, 즉 smooth_L1 손실 함수에 연결될 수 있다. 해당 손실 함수는 도 5에서 L2로 표시된다.
도 5에서는 제1 경로가 하나의 컨볼루션 레이어 Conv6만을 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제1 경로는 둘 이상의 컨볼루션 레이어를 포함할 수 있다.
도 5에서는 제2 경로가 세 개의 FC 레이어 FC6, FC7과 PC8_P를 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제2 경로는 하나 또는 둘 이상의 FC 레이어를 포함할 수 있다.
도 5에 도시된 병렬 뉴럴 네트워크에서, 베이스 레이어 Convs에 더 가까운 위치에 객체 키 포인트 정보 추정 작업의 경로 1은 베이스 레이어 Convs에 더 가까운 위치에 연결되고, 베이스 레이어의 파라미터가 객체 자세 정보 추정 작업과 공유될 수 있다. 이러한 방식으로, 객체의 키 포인트 정보의 중간 결과들, 예를 들어 다양한 파라미터들이 베이스 레이어에 피드 포워드(feed forward)될 수 있다. 이에, 객체의 자세 정보를 추정할 때, 객체의 키포인트 정보는 추정된 객체의 자세 정보를 교정(correct)하기 위해 사용될 수 있다. 도 5에 도시된 구조를 구비한 병렬 뉴럴 네트워크는 트레이닝 동안에 키 포인트 정보가 기본 특징 표현 능력(underlying feature expression ability)을 강화하게 할 수 있다.
병렬 뉴럴 네트워크에서, 객체 자세 정보 추정 작업과 객체 키 포인트 정보 추정 작업은 베이스 레이어의 네트워크 파라미터를 공유하고, 각 작업은 탑 레벨(top level)에서 병렬로 개별적으로 트레이닝될 수 있다.
병렬 뉴럴 네트워크를 트레이닝할 때, 트레이닝 데이터는 네트워크로 전달되고, 객체 자세 추정 작업 및 객체 키 포인트 정보 추정 작업이 포함된 네트워크의 모든 작업의 손실 함수의 가중 합산(Weighted Summation)은 최종 손실 함수로 사용될 수 있다.
여기서, 트레이닝 데이터는 크기 224x224인 입력 이미지 및 이에 대응하는 주석 정보(annotation information, 예를 들어 객체의 자세 및 키 포인트 주석)을 포함할 수 있다. 병렬 뉴럴 네트워크의 최종 손실 함수는 L=a*L1+b*L2로 표시될 수 있다. 여기서, a와 b는 가중치(weight)이고, L1과 L2 각각은 객체 키 포인트 정보 추정 작업과 객체 자세 정보 추정 작업의 손실 함수일 수 있다.
각각의 작업의 손실 함수의 가중치를 조절하므로 주요 작업인 객체 자세 추정 작업의 주요 작업은 각 작업의 손실 함수의 가중치를 조정함으로써 최적의 효과를 달성하도록 할 수 있다.
예를 들어, 주요 작업, 즉 객체 자세 정보 추정 작업의 가중치 b는 가장 큰 값인, 즉 1로 설정될 수 있고, 객체 키 포인트 정보 추정 작업의 가중치 a가 0.01로 설정될 수 있다. 네트워크의 최종 손실 함수가 수렴되는 경우, 트레이닝이 종료될 수 있다.
도 6은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 다른 예를 나타낸다.
도 6에서는 키 포인트 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 다른 예로 캐스케이드 뉴럴 네트워크를 나타낸다.
캐스케이드 뉴럴 네트워크에서, 베이스 레이어 Convs 이후, 캐스케이드 뉴럴 네트워크는 두 경로로 분리될 수 있다. 제1 경로는 객체의 키 포인트 정보를 추정하기 위해 사용되고, 베이스 레이어와 하나 이상의 컨볼루션 레이어를 포함할 수 있다. 제2 경로는 객체의 자세 정보를 추정하기 위해 사용되고, 베이스 레이어, 하나 이상의 컨볼루션 레이어와 하나 이상의 FC 레이어를 포함할 수 있다.
제1 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력은 제2 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력에 연결될 수 있다.
캐스케이드 뉴럴 네트워크는 객체 자세 정보 추정 작업과 객체 키 포인트 정보 추정 작업을 포함할 수 있다. 이 두 가지 작업은 컨볼루션 레이어 Convs에서 베이스 레이어 파라미터를 공유할 수 있다.
도 5에 도시된 병렬 뉴럴 네트워크와 다른 점은, 캐스케이드 뉴럴 네트워크의 제2 경로에 컨볼루션 레이어 Conv7를 추가하였고, 컨볼루션 레이어 Conv7는 공유 레이어 뒤에 오는 레이어로, 베이스 레이어 Convs의 출력은 컨볼루션 레이어 Conv7의 입력일 수 있다. 맨 상부 레이어에서, 컨볼루션 레이어 Conv7의 출력과 경로 1에서의 컨볼루션 레이어 Conv6의 출력이 결합(직렬을 이룸)하여, 객체 자세 정보 추정 작업의 FC 레이어 FC7의 입력이 될 수 있다.
즉, 객체 자세 정보 추정 작업과 객체 키 포인트 정보 추정 작업은 탑 레벨(top level)에서캐스케이드 방식으로 연결될 수 있다. 그 밖에, 도 6의 직렬 뉴럴 네트워크와 도 5의 병렬 뉴럴 네트워크의 네트워크 배치는 거의 유사할 수 있다. 다음으로, 이를 구체적으로 설명한다.
도 6에 나타난 바와 같이, 제1 경로에서, 베이스 레이어 Convs의 출력이 컨볼루션 레이어 Conv6에 입력될 수 있다. 이는 객체의 키 포인트 정보 추정 작업에 대응할 수 있다. 유사하게, 컨볼루션 레이어 Conv6의 채널 수는 키 포인트의 총 개수와 같을 수 있다. 객체의 키 포인트가 8개인 경우, 컨볼루션 레이어 Conv6의 채널 수는 8로 설정될 수 있다.
컨볼루션 레이어 Conv6는 크기가 3x3인 컨볼루션 커널을 포함할 수 있다. 컨볼루션 커널에 의해 컨볼루션을 거친 후의 각 채널은 7x7 크기일 수 있다. 이에, 컨볼루션 레이어 Conv6의 출력 크기는 8x7x7일 수 있다. 컨볼루션 레이어 Conv6의 출력이 객체 키 포인트 정보 추정 작업의 손실 함수, 즉 교차 엔트로피 손실 함수에 연결될 수 있다. 손실 함수는 도 6에서 L1로 표시된다.
경로 2에서, 베이스 레이어 Convs의 출력이 컨볼루션 레이어 Conv7에 연결될 수 있다. 컨볼루션 레이어 Conv7의 채널 수는 컨볼루션 레이어 Conv6와 같게 8로 설정될 수 있다. 컨볼루션 레이어 Conv7은 크기가 3x3인 컨볼루션 커널을 포함할 수 있다.
컨볼루션 커널에 의해 컨볼루션을 거친 후의 각 채널은 7x7 크기일 수 있다. 이에, 컨볼루션 레이어 Conv7의 출력 크기는 8x7x7일 수 있다. 컨볼루션 레이어 Conv6의 출력과 컨볼루션 레이어 Conv7의 출력이 결합될 수 있다.
예를 들어, 컨볼루션 레이어 Conv6의 출력은 추정된 객체의 키 포인트 정보의 컨피던스 맵(confidence map)일 수 있다. 컨피던스 맵은 매트릭스 형식일 수 있다. 결합 방식은 더하기(addition), 포인트 곱셈(point multiplication), 스플라이싱(splicing) 등의 방식을 포함하나, 반드시 이에 한정되는 것은 아니다.
컨볼루션 레이어 Conv6의 출력이 컨볼루션 레이어 Conv7의 출력에 더해지는 경우, 두 레이어의 출력 매트릭스가 포인트 투 포인트(point to point)로 더해질 수 있다. 그 다음, 컨볼루션 레이어 Conv6의 출력과 컨볼루션 레이어 Conv7의 출력 결합 결과가 FC 레이어 FC7에 입력될 수 있다. FC 레이어 FC7의 네트워크 노드 수는 4096으로 설정될 수 있다.
FC 레이어 FC7의 출력은 FC 레이어 FC8_P에 연결될 수 있다. FC 레이어 FC8_P는 객체 자세 추정에 대응할 수 있다. FC 레이어 FC8_P의 각 노드 수는 객체의 하나의 자유도의 자세 정보에 대응할 수 있다. 이에, 6개 자유도의 자세 정보를 추정하기 위해, FC 레이어 FC8_P의 노드 수는 6으로 설정될 수 있다. FC 레이어 FC8_P의 출력이 객체 자세 추정 작업의 손실 함수, 즉 smooth_L1 손실 함수에 연결될 수 있다. 손실 함수는 도 6에서 L2로 표시된다.
도 6에서는 제1 경로가 하나의 컨볼루션 레이어 Conv6만을 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제1 경로는 둘 이상의 컨볼루션 레이어를 포함할 수 있다. 제1 경로내 하나 이상의 컨볼루션 레이어는 병렬 또는 캐스케이드를 이룰 수 있다.
도 6에서는 제2 경로가 하나의 컨볼루션 레이어 Conv7와 두 개의 FC 레이어 FC7과 PC8_P를 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제2 경로는 다른 수의 컨볼루션 레이어와 FC 레이어를 포함할 수 있다.
제1 경로 내 하나 이상의 컨볼루션 레이어의 디멘션이 같거나 다를 수 있다. 또한, 제1 경로에서 어느 한 디멘션의 컨볼루션 레이어의 출력과 제2 경로에서 어느 한 컨볼루션 레이어의 출력이 선택되어 연결될 수 있다. 디멘션이 다르다는 것은 다른 크기를 의미하고, 멀티 디멘션(또는 멀티 스케일)은 멀티 사이즈일 수 있다. 컨볼루션 레이어에 대해, 이는 다른 크기의 매트릭스를 일컫는 것일 수도 있다.
도 6에 도시된 캐스케이드 뉴럴 네트워크에서, 키 포인트 정보, 즉 추정된 키 포인트 정보의 컨피던스 맵을 이용해 캐스케이드 방식으로 제2 경로와 결합할 수 있다(결합 방식으로는 더하기(addition), 포인트 곱셈(point multiplication), 스플라이싱(splicing), 스티칭(stitching) 등의 방식을 포함함). 키 포인트 정보는 객체 자세 추정 작업에서 키 포인트 정보의 컨피던스 맵을 연결함으로써 특징 표현에서 강화할 수 있다.
캐스케이드 뉴럴 네트워크를 트레이닝 할 때, 트레이닝 데이터는 네트워크로 전송되고, 객체 자세 추정 작업과 객체 키 포인트 정보 추정 작업이 포함된 네트워크의 모든 작업의 손실 함수의 가중 합산은 최종 손실 함수로 사용될 수 있다. 여기서, 트레이닝 데이터는 크기 224x224인 입력 이미지 및 이에 대응하는 주석 정보(예를 들어, 객체의 자세와 키 포인트 주석)을 포함할 수 있다.
캐스케이드 뉴럴 네트워크의 최종 손실 함수는 L=a*L1+b*L2로 표시될 수 있다. 여기서, a와 b는 가중치이다. L1과 L2 각각은 객체의 키포인트 정보 추정 작업과 객체의 자세 정보 추정 작업의 손실 함수일 수 있다. 각각의 작업의 손실 함수의 가중치를 조절하므로 주요 작업인 객체 자세 추정 작업이 최적의 효과를 달성하도록 할 수 있다.
예를 들어, 주요 작업, 즉 객체 자세 정보 추정 작업의 가중치 b는 가장 큰 값인, 즉 1로 설정될 수 있고, 객체 키 포인트 정보 추정 작업의 가중치 a가 0.01로 설정될 수 있다. 네트워크의 최종 손실 함수가 수렴되는 경우, 트레이닝이 종료될 수 있다.
도 7은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 7에서는 키 포인트 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 또 다른 예로 멀티-디멘션 뉴럴 네트워크를 나타낸다.
멀티-디멘션 뉴럴 네트워크는 두 경로를 포함할 수 있다. 제1 경로는 객체의 키 포인트 정보를 추정하기 위해 사용되고, 베이스 레이어와 하나 이상의 컨볼루션 레이어를 포함할 수 있다. 제2 경로는 객체의 자세 정보를 추정하기 위해 사용되고, 베이스 레이어, 제1 경로 내 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어를 포함할 수 있다. 제1 경로 내 하나 이상의 컨볼루션 레이어 중에서 두 개 이상의 컨볼루션 레이어의 출력은 상기 제2 경로의 하나 이상의 FC 레이어 중에서 어느 하나에 연결되어 입력이 될 수 있다.
멀티-디멘션의 뉴럴 네트워크는 객체의 자세 정보를 추정할 때, 멀티-디멘션의 객체 키 포인트 정보를 결합할 수 있다. 예를 들어, 멀티-디멘션의 뉴럴 네트워크는키 포인트 정보의 최소 하나(하나 이상)의 컨피던스 맵을 이용할 수 있다. 최소 하나의 컨피던스 맵의 디멘션은 서로 다를 수 있다.
제1 경로는 복수의 컨볼루션 레이어 Conv6, Conv7과 Conv8을 포함하고, 복수의 컨볼루션 레이어 Conv6, Conv7과 Conv8의 디멘션은 서로 다를 수 있다. 복수 컨볼루션 레이어 Conv6, Conv7과 Conv8 출력의 결합이 객체 자세 정보 추정 작업 중 FC 레이어 FC7의 입력이 될 수 있다. 즉, 제2 경로 2는 제1 경로 내 하나 이상의 컨볼루션 레이어를 포함할 수 있다.
도 7의 멀티-디멘션 뉴럴 네트워크, 도 6의 캐스케이드 뉴럴 네트워크, 및 도 5의 병렬 뉴럴 네트워크의 네트워크 배치는 거의 유사한 것으로, 각각의 작업에 있어서의 손실 함수는 앞서 기술된 두 종류의 네트워크와 모두 같을 수 있다. 다음으로 이를 상세히 설명한다.
도 7에 나타난 바와 같이, 멀티- 디멘션 뉴럴 네트워크는 객체 자세 정보 추정 작업과 객체 키포인트 작업 추정 작업을 포함할 수 있다. 객체 자세 정보 추정 작업과 객체 키 포인트 정보 추정 작업이 컨볼루션 레이어 Convs에서 베이스 레이어 파라미터를 공유할 수 있다.
여기서, 객체 자세 정보 추정 작업이 컨볼루션 레이어 Convs와 직접 연결되지 않았지만, 트레이닝 과정에서 객체 자세 정보 추정 작업의 오차가 컨볼루션 레이어 Convs에 역전달될 수 있다. 이로써, 두 작업이 컨볼루션 레이어 Convs에서 베이스 레이어 파라미터를 공유할 수 있다.
제1 경로에서, 더 편리하게 키포인트를 이용하기 위해, 멀티-디멘션 뉴럴 네트워크가 멀티-디멘션의 컨볼루션 레이어에서 키 포인트 추정을 수행하고, 객체 자세 추정 작업을 위해 멀티-디멘션의 키 포인트 정보를 결합할(combine) 수 있다. 예를 들어, 멀티-디멘션의 키포인트 정보의 컨피던스 맵은 객체 자세 추정 작업에 사용되기 위해 결합될 수 있다. 디멘션이 다르다는 것은 다른 크기를 의미하고, 멀티 디멘션(또는 멀티 스케일)은 멀티 사이즈일 수 있다. 컨볼루션 레이어에 대해, 이는 다른 크기의 매트릭스를 일컫는 것일 수도 있다. 도 7에서는, 멀터-디멘션 뉴럴 네트워크는 세 종류의 디멘션을 사용하고 있지만, 반드시 이에 한정되는 것은 아니며, 더 적거나 더 많은 종류의 디멘션을 사용할 수 있다. 예를 들어, 제1 경로에서의 두 개 이상의 키 포인트 정보가 선택되어 결합될 수 있다.
멀티-디멘션의 키포인트 정보의 컨피던스 맵의 결합 방식은 여러가지 종류가 있을 수 있다. 예를 들어, 결합 방식으로는 더하기(addition), 포인트 곱셈(point multiplication), 스플라이싱(splicing), 스티칭(stitching) 등의 방식을 포함할 수 있다.
구체적으로, 컨볼루션 레이어 Convs의 출력이 컨볼루션 레이어 Conv6에 입력될 수 있다. 컨볼루션 레이어 Conv6는 객체 키 포인트 정보의 추정 작업에 대응할 수 있다. 컨볼루션 레이어 Conv6의 채널 수와 키포인트의 총 개수는 같을 수 있다.
객체의 키 포인트가 총 8개인 경우, 컨볼루션 레이어 Conv6의 채널 수는 8로 설정될 수 있다. 컨볼루션 레이어 Conv6의 출력이 객체 키 포인트 정보 추정 작업의 손실 함수, 즉 교차 엔트로피 손실 함수에 연결될 수 있다. 손실 함수는 도 7에서 L11로 표시된다. Convs→Conv6→교차 엔트로피 함수까지의 경로는 객체 키 포인트 정보 추정 작업의 하나의 디멘션이다.
컨볼루션 레이어 Conv6의 출력이 컨볼루션 레이어 Conv7에 추가로 입력될 수 있다. 컨볼루션 레이어 Conv7도 객체 키 포인트 정보 추정 작업에 대응할 수 있다. 컨볼루션 레이어 Conv7의 출력이 객체 키포인트 정보 추정 작업의 손실 함수, 즉 교차 엔트로피 손실함수에 연결될 수 있다. 손실 함수는 도 7에서 L12로 표시된다. Convs→Conv6→Conv7→교차 엔트로피 함수까지의 경로는 객체 키 포인트 정보 추정 작업의 두 번째 디멘션이다.
컨볼루션 레이어 Conv7의 출력이 컨볼루션 레이어 Conv8에 추가로 입력될 수 있다. 컨볼루션 레이어 Conv8도 객체 키 포인트 정보 추정 작업에 대응할 수 있다. 컨볼루션 레이어 Conv8의 출력이 객체의 키 포인트 정보 추정 작업의 손실 함수, 즉 교차 엔트로피 손실 함수에 연결될 수 있다. 손실 함수는 도 7에서 L13으로 표시된다. Convs→Conv6→Conv7→Conv8→교차 엔트로피 함수까지의 경로는 객체 키 포인트 정보 추정 작업의 세 번째 디멘션이다.
컨볼루션 레이어들 Conv6, Conv7와 Conv8의 채널 수는 같을 수 있다. 컨볼루션 이후 컨볼루션 레이엉들 Conv6, Conv7과 Conv8의 출력 결과의 디멘션이 다르기 때문에, 이 세 레이어의 출력 매트릭스를 동일한 디멘션(예: 28x28)으로 결합을 진행할 수 있다. 예를 들어, 컨볼루션 레이어 Conv6의 디멘션 크기는 28x28이고, 컨볼루션 레이어 Conv7의 디멘션 크기는 14x14이고, 컨볼루션 레이어 Conv8의 디멘션 크기는 7x7일 수 있다.
결합 방식으로는 더하기(addition), 포인트 곱셈(point multiplication), 스플라이싱(splicing), 스티칭(stitching) 등의 방식을 포함할 수 있다. 더하기 방식의 경우, 컨볼루션 레이어들 Conv6, Conv7과 Conv8의 출력 결과는 포인트 투 포인트 (point-to-point) 방식으로 더해지며, 더해진 후의 결과가 FC 레이어 FC7에 입력될 수 있다. FC 레이어 FC7의 네트워크 마디수는 4096으로 설정될 수 있다.
제2 경로에서, FC 레이어 FC7의 출력이 FC 레이어 FC8_P에 연결될 수 있다. FC 레이어 FC8_P은 객체의 자세 정보 추정 작업에 대응할 수 있다. FC 레이어 FC8_P의 각 노드 수는 객체의 하나의 자유도에서의 자세 정보와 대응할 수 있다. 이에, 6개 자유도의 자세 정보를 추정하기 위해, FC 레이어 FC8_P의 노드 수는 6으로 설정될 수 있다.
FC 레이어 FC8_P의 출력이 객체의 자세 정보 추정 작업의 손실 함수, 즉 smooth_L1 손실 함수에 연결될 수 있다. 손실 함수는 도 7에서 L2로 표시된다. Convs→(Conv6+Conv7+Conv8)→FC7→FC8_P→smooth_L1손실 함수까지의 제2 경로는 객체 자세 추정 작업이다.
반드시 이에 한정되는 것은 아니며, FC 레이어 FC6과 FC7의 네트워크 노드 수는 다른 수가 될 수 있고, 컨볼루수션 레이어들 Conv6, Conv7과 Conv8의 컨볼루션 커널 크기 및 컨볼루션을 거친 채널의 크기는 다른 수로 설정될 수 있다.
도 7에서, 컨볼루션 레이어 Conv6, Conv7과 Conv8이 캐스케이드를 이루고, 디멘션이 점차 작아지는 것을 알 수 있지만, 이에 한정되는 것은 아니며, 컨볼루션 레이어 Conv6, Conv7과 Conv8은 병렬을 이룰 수 있다. 예를 들어, 컨볼루션 레이어 Conv6, Conv7과 Conv8은 모두 베이스 레이어 Convs에 연결될 수 있다. 또한, 컨볼루션 레이어 Conv6, Conv7과 Conv8의 디멘션은 서로 다를 수 있다.
도 7에서는 제1 경로가 세 컨볼루션 레이어 Conv6, Conv7과 Conv8을 포함하는 것으로 도시하고 있지만, 이에 반드시 한정되는 것은 아니며, 제1 경로는 더 적거나 더 많은 컨볼루션 레이어를 포함할 수 있다. 이러한 컨볼루션 레이어는 병열 또는 캐스케이드를 이룰 수 있다.
도 7에서 제2 경로가 두 FC 레이어 FC7과 PC8_P를 포함하는 것으로 도시하고 있지만, 이에 반드시 한정되는 것은 아니며, 제2 경로는 다른 수의 FC 레이어를 포함할 수 있다.
또한, 도 7에 세 컨볼루션 레이어 Conv6, Conv7과 Conv8의 입력이 제2 경로의 첫번째 FC 레이어 FC7에 입력으로 연결되었지만, 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 두개 이상의 컨볼루션 레이어의 출력을 선택해 제2 경로 2에 연결에 연결할 수 있다. 또한, 제2 경로의 어느 FC 레이어에 연결해 입력으로 할 수 있다.
멀티-디멘션의 컨볼루션 뉴럴 네트워크를 트레이닝 할 때, 트레이닝 데이터는 네트워크에 전달되고, 객체 자세 정보 추정 작업과 객체 키 포인트 정보 추정 작업을 포함한 모든 작업의 손실 함수의 가중 합산(Weighted Sum)은 최종 손실 함수로 사용될 수 있다. 여기서, 트레이닝 데이터는 크기가 224x224인 입력 이미지 및 이에 대응하는 주석 정보(예를 들어, 객체의 자세 및 키 포인트 주석)을 포함할 수 있다.
멀티-디멘션 뉴럴 네트워크의 최종 손실 함수는 L=a*(L11+L12+L13)+b*L2로 표시될 수 있다. 여기서, a와 b는 가중치이다. L11+L12+L13와 L2 각각은 객체의 키 포인트 정보 추정 작업과 객체의 자세 정보 추정 작업의 손실 함수일 수 있다. 각각의 작업의 손실 함수의 가중치를 조절하므로 주요 작업인 객체 자세 추정 작업이 최적의 효과를 달성하도록 할 수 있다.
예를 들어, 주요 작업, 즉 객체의 자세 정보 추정 작업의 가중치b는 가장 큰 값인, 즉 1로 설정될 수 있고, 객체의 키 포인트 정보 추정 작업의 가중치 a가 0.01로 설정될 수 있다. 네트워크의 최종 손실 함수가 수렴되는 경우, 트레이닝이 종료될 수 있다.
도 5 내지 도 7에서 상술한 바와 같이, 한 장의 테스트 이미지를 트레이닝이 완료된 병렬 뉴럴 네트워크, 캐스케이드 뉴럴 네트워크, 멀티-디멘션 뉴렬 네트워크 중에서 하나에 입력하여, 이미지의 객체의 자세 정보와 키 포인트 정보를 출력할 수 있다. 세 네트워크의 제2 경로의 FC 레이어 FC8_P에서 출력된 6차원 벡터 값은 추정된 6개 자유도에서의 자세 정보이다. 또한, 세 네트워크의 컨볼루션 레이어 Conv6, Conv7 및 Conv8의 출력 매트릭스 길이와 너비는 기존 입력 이미지의 크기와 같아지도록 정규화될 수 있다. 각 채널에서의 최대값(maximum value)의 위치 좌표는 하나의 키 포인트이다. 각 채널은 하나의 키포인트의 이름에 대응할 수 있다.
또한, 병렬 뉴럴 네트워크, 캐스케이드 뉴럴 네트워크, 및 멀티-디멘션 뉴럴 네트워크에서 최소 두 개 자세 추정 결과를 종합해 최종 자세 추측 결과로 간주할 수 있다. 종합하는 방법은 최대치를 취하는 방법, 평균을 취하는 방법, 가중 합삽(Weighted Sum) 등의 방법을 포함하나, 반드시 이에 한정되는 것은 아니다.
도 8은 일 실시예에 따른 객체의 유형 정보를 이용해 자세를 추정하는 방법을 설명하기 위한 순서도의 일 예이다.
도 8은 자세 추정 장치가 객체의 유형 정보를 이용해 자세를 추정하는 방법(800)을 나타낸다. 자세 추정 장치는 입력 이미지를 수신(또는 획득)할 수 있다(810).
자세 추정 장치는 객체의 국부 정보에 기초하여 입력 이미지에서 객체의 자세 정보를 추정할 수 있다(820). 객체의 자세 정보를 추정할 때, 자세 추정 장치는 객체의 국부 정보를 이용할 수 있다. 이에, 자세 추정 장치는 객체의 국부 정보를 통해 객체의 전체 정보를 강화할 수 있다.
자세 추정 장치는 객체의 키 포인트 정보를 추정할 수 있다(830). 또한, 자세 추정 장치는 객체의 유형 정보를 추정할 수 있다(840).
자세 추정 장치는 객체의 자세 정보 및 객체의 키 포인트 정보를 추정하는 동시에 객체의 유형 정보를 추정할 수 있다. 즉, 자세 추정 장치는 단계(820), 단계(830), 및 단계(840)를 병렬 수행(또는 병렬 실행)할 수 있다.
이에, 자세 추정 장치는 유형 정보를 추가 이용하므로, 추정된 객체의 자세 정보의 정확도를 더욱 향상시킬 수 있다.
뉴럴 네트워크에서, 객체의 자세 정보를 추정하기 위한 작업, 객체의 키 포인트 정보를 추정하기 위한 작업, 및 객체의 유형 정보를 추정하기 위한 작업이 뉴럴 네트워크에서 베이스 레이어의 파라미터를 공유할 수 있다.
객체의 유형 정보 추정 단계는 도 5 내지 도 7에서 상술한 병렬 뉴럴 네트워크, 캐스케이드 뉴럴 네트워크, 및 멀티-디멘션 뉴럴 네트워크 중에서 하나에 추가될 수 있다.
도 9는 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 9에서는 키 포인트 정보 및 유형 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 일 예로 병렬 뉴럴 네트워크를 나타낸다.
도 9의 병렬 네트워크는 도 2의 병렬 뉴럴 네트워크와 다를 수 있다. 도 9의 병렬 네트워크는 도 5의 병렬 네트워크와 달리 제3 경로를 더 포함할 수 있다. 제3 경로는 객체의 유형 정보를 추측하기 위해 사용되고, 베이스 레이어 및 하나 이상의 FC 레이어를 포함할 수 있다.
도 9에 도시된 바와 같이, 병렬 뉴럴 네트워크는 객체의 유형 추정 작업, 객체 자세 정보 추정 작업, 및 객체 키 포인트 정보 추정 작업 이 세가지 작업을 포함할 수 있다. 이 세 작업은 병렬 뉴럴 네트워크에서 병렬 방식으로 처리되고, 컨볼루션 레이어 Convs에서 베이스 레이어 파라미터를 공유한 후 다른 네트워크 분파로 나뉘어 각자의 네트워크 모듈 파라미터를 학습할 수 있다.
Convs는 베이스 레이어로, 컨볼루션 레이어(또는 멀티레이어, 멀티 컨볼루션 레이어)일 수 있다. Convs는 베이스 레이어로 칭해질 수 있고, 많은 구조로 구현될 수 있다. 예를 들어, Convs는 VGG16의 pool5(풀링 레이어5) 앞의 네트워크 레이어를 사용하고, 총 13개 레이어의 컨볼루션 레이어를 포함할 수 있다. 컨볼루션 레이어는 뉴럴 네트워크의 기본 단위(elementary unit)이다. 반드시 이에 한정되는 것은 아니고, VGG16외에도, Alex Net, ResNet 등의 네트워크를 Convs로 취급할 수 있다.
병렬 뉴럴 네트워크에서, 베이스 레이어 Convs 이후, 병렬 뉴렬 네트워크는 두 분파(또는 두 경로)로 분리될 수 있다. 베이스 레이어 Convs의 출력은 두 FC 레이어 FC6과 FC7에 순차적으로 연결될 수 있다. 또한, 이와 동시에, FC7의 출력이 FC 레이어 FC8_C와 또 다른 FC 레이어 FC8_P에 연결될 수 있다.
도 9에서는 제2 경로 2와 제3 경로가 FC 레이어 FC6과 FC7을 공유한다고 도시되어 있지만, 제2 경로와 제3 경로 3 각각은 각자의 FC 레이어를 포함할 수 있다.
예를 들어, FC 레이어 FC6과 FC7의 네트워크 노드 수는 4096으로 설정될 수 있다. 즉, FC 레이어 FC6과 FC7의 출력은 1x4096 크기의 벡터일 수 있다. 반드시 이에 한정되는 것은 아니며, FC 레이어들 FC6과 FC7의 네트워크 노드 수는 다양할 수 있다.
FC 레이어 FC8_C는 객체 유형 추정에 대응할 수 있다. 이의 노드 수와 객체의 총 유형 수는 같을 수 있다. 예를 들어, 객체의 유형이 12개인 경우, FC 레이어 FC8_C의 노드 수는 12로 설정될 수 있다.
객체의 유형 추정 작업은 softmax 손실 함수를 사용할 수 있다. 반드시 이에 한정되는 것은 아니며, hinge 손실 함수와 같은 기타 손실 함수도 사용될 수 있다.FC 레이어 FC8_C의 출력은 객체 유형 추정 작업의 손실 함수, 즉 softmax 손실함수에 연결될 수 있다. 손실 함수는 도 9에서 L3으로 표시된다. Convs→FC6→FC7→FC8_C→softmax까지의 손실함수 경로는 객체 유형 추정 작업이다.
제2 경로의 배치는 도 5의 제2 경로의 배치와 실질적으로 동일하다. 이에, 자세한 설명은 생략하기로 한다.
제1 경로는 복수 유형의 객체에 관한 것이기 때문에, 베이스 레이어 Conv6의 채널 수와 모든 유형의 키포인트 총 개수는 같을 수 있다. 예를 들어, 12 유형의 객체에 총 124개의 키포인트 정보가 있다고 하면, 베이스 레이어 Conv6의 채널 수는 124로 설정될 수 있다.
베이스 레이어 Conv6는 크기가 3x3인 컨볼루션 커널을 포함할 수 있다. 컨볼루션 커널에 의해 컨볼루션을 거친 각 채널은 7x7 크기이고, 베이스 레이어 Conv6의 출력은 124x7x7 크기일 수 있다. 반드시 이에 한정되는 것은 아니며, 컨볼루션 레이어 Conv6의 컨볼루션 커널의 크기 및 컨볼루션을 거친 채널의 크기는 다른 수로 설정될 수 있다.
도 9에서는 제1 경로가 하나의 컨볼루션 레이어 Conv6만을 포함하는 것으로 도시되어 있지만, 반드시 이에 한정되는 것은 아니고, 제1 경로는 둘 이상의 컨볼루션 레이어를 포함할 수 있다.
객체 키 포인트 정보 추정 작업에 있어, 참 값(true value)을 설정할 때, 네트워크가 다른 위치에서 객체의 키 포인트들을 식별할 수 있게 하기 위해, 객체의 키포인트는 하나의 채널로 설정할 수 있다. 채널 내, 각 의미상의 키포인트(semantic key point)에 대해, 키 포인트가 존재하면, 값은 1이고, 그렇지 않으면 0일 수 있다.
객체 키 포인트 정보 추정 작업의 손실 함수는 교차 엔트로피 손실 함수를 사용할 수 있다. 베이스 레이어 Conv6의 출력이 객체 키포인트 추정 작업의 손실 함수, 즉 교차 엔트로피 손실 함수에 연결될 수 있다. 손실 함수는 도 9에서 L1로 표시된다. 교차 엔트로피 손실 함수는 많은 유형(또는 멀티플 유형)의 객체에 적용될 수 있기에, 복수의 객체의 키 포인트 정보를 추정하는데 사용할 수 있다.
도 5의 병렬 뉴럴 네트워크 구조와 유사하게, 도 9의 병렬 뉴럴 네트워크는 트레이닝 동안에 키 포인트 정보가 기본 특징 표현 능력(underlying feature expression ability)을 강화하게 할 수 있다.
병렬 뉴럴 네트워크에서, 객체 유형 추정 작업, 객체 자세 정보 추정 작업, 및 객체 키 포인트 정보 추정 작업이 베이스 레이어의 네트워크 파라미터를 공유하고, 각 작업은 탑 레벨(top level)에서 병렬로 개별적으로 트레이닝될 수 있다.
병렬 뉴럴 네트워크를 트레이닝할 때, 트레이닝 데이터는 네트워크로 전달되고, 객체 자세 추정 작업 및 객체 키 포인트 정보 추정 작업이 포함된 네트워크의 모든 작업의 손실 함수의 가중 합산(Weighted Summation)은 최종 손실 함수로 사용될 수 있다. 여기서, 트레이닝 데이터는 크기 224x224인 입력 이미지 및 이에 대응하는 주석 정보(annotation information, 예를 들어 객체의 자세 및 키 포인트 주석)을 포함할 수 있다.
병렬 뉴럴 네트워크의 최종 손실 함수는 L=a*L1+b*L2+c*L3으로 표시될 수 있다. 여기서, a, b와 c는 가중치이다. L1, L2, 및 L3 각각은 객체의 키 포인트 정보 추정 작업, 객체의 자세 정보 추정 작업, 및 객체의 유형 정보 추정 작업의 손실 함수일 수 있다. 각 작업의 손실 함수의 가중치를 조절하므로 주요 작업인 객체 자세 추정 작업이 최적의 효과를 달성하도록 할 수 있다.
예를 들어, 주요 작업, 즉 객체의 자세 정보 추정 작업의 가중치 b는 가장 큰 값인, 즉 1로 설정될 수 있고, 객체의 키 포인트 정보 추정 작업의 가중치 c는 0.01로 설정될 수 있다. 또한, 객체 유형 추정 작업의 가중치 a는 0과 1 사이로 설정될 수 있다. 네트워크의 최종 손실 함수가 수렴되는 경우, 트레이닝이 종료될 수 있다.
도 10은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 10에서는 키 포인트 정보 및 유형 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 다른 예로 캐스케이드 뉴럴 네트워크를 나타낸다.
도 10에 도시된 바와 같이, 도 10의 캐스케이드 뉴럴 네트워크는 객체의 유형 정보를 추정하기 위한 제3 경로를 더 포함하는 점 외에, 캐스케이드 뉴럴 네트워크의 배치는 도 6의 캐스케이드 뉴럴 네트워크와 유사하다. 이에, 불필요한 설명은 생략하기로 한다. 제3 경로는 베이스 레이어 및 하나 이상의 FC 레이어를 포함할 수 있다.
도 10에서의 캐스케이드 뉴럴 네트워크의 훈련 방식과 최종 손실 함수는 도 9에서의 병렬 뉴럴 네트워크와 유사하다. 이에, 불필요한 설명은 생략하기로 한다.
도 11은 일 실시예에 따른 객체의 자세 정보를 추정하는 뉴럴 네트워크의 또 다른 예를 나타낸다.
도 11에서는 키 포인트 정보 및 유형 정보를 이용해 객체의 자세 정보를 추정하는 네트워크의 또 다른 예로 캐스케이드 뉴럴 네트워크를 나타낸다.
도 11에 도시된 바와 같이, 도 11의 멀티-디멘션 뉴럴 네트워크는 객체의 유형 정보를 추정하기 위한 제3 경로(경로3)를 더 포함하는 점 외에, 멀티-디멘션 뉴럴 네트워크의 배치는 도 7의 멀티-디멘션 뉴럴 네트워크와 유사하다. 이에, 불필요한 설명은 생략하기로 한다. 제3 경로는 베이스 레이어 및 하나 이상의 FC 레이어를 포함할 수 있다.
멀티-디멘션 뉴럴 네트워크를 트레이닝 할 때, 트레이닝 데이터는 네트워크에 전송되고, 객체 유형 추정 작업, 객체 자세 추정 작업, 및 객체 키 포인트 추정 작업을 포함한 모든 작업의 손실 함수의 가중 합산(Weighted Sum)은 최종 손실 함수로 사용될 수 있다. 여기서, 트레이닝 데이터는 크기가 224x224인 입력 이미지 및 이에 대응하는 주석 정보(예를 들어, 객체의 자세 및 키 포인트 주석)을 포함할 수 있다. 멀티-디멘션 뉴럴 네트워크의 최종 손실 함수는 L=a*(L11+L12+L13)+b*L2+c*L3로 표시될 수 있다. 여기서, a, b와 c는 가중치이다. L11+L12+L13, L2, 및 L3 각각은 객체의 키 포인트 정보 추정 작업, 객체의 자세 정보 추정 작업, 및 객체 유형 추정 작업의 손실 함수일 수 있다. 각각의 작업의 손실 함수의 가중치를 조절하므로 주요 작업인 객체 자세 추정 작업이 최적의 효과를 달성하도록 할 수 있다.
예를 들어, 주요 작업, 즉 객체의 자세 정보 추정 작업의 가중치 b는 가장 큰 값인, 즉 1로 설정될 수 있고, 객체의 키 포인트 정보 추정 작업의 가중치 c는 0.01로 설정될 수 있다. 또한, 객체 유형 추정 작업의 가중치 a는 0과 1 사이로 설정될 수 있다. 네트워크의 최종 손실 함수가 수렴되는 경우, 트레이닝이 종료될 수 있다.
도 9 내지 도 11에 도시된 병렬 뉴럴 네트워크, 캐스케이드 뉴럴 네트워크, 및 멀티-디멘션 뉴럴 네트워크로 객체의 자세 정보 추정 정확도를 더욱 향상시킬 수 있고, 처리 범위가 확장되어 더 쉽게 많은 유형(또는 다양한 종류)의 객체의 자세 정보를 처리할 수 있다.
도 1 내지 도 11에서 상술한 실시예들을 통해, 한 장의 이미지에서 6개 자유도의 3차원 자세 정보를 획득하여, 증강 현실의 실존 객체에 매칭되는 3차원 가상 객체 렌더링에 사용될 수 있고, SLAM(Simultaneous Localization and Mapping) 작업을 보조할 수 있다. SLAM은 깊이 이미지 센서 또는 다시각 이미지(Multi-angle image)를 통해 획득한 객체의 3차원 자세를 네비게이션 또는 탐색(search)할 수 있다. 실시예들은 한 장의 이미지만으로 객체의 3차원 자세 정보를 획득할 수 있다.
도 12는 일 실시예에 따른 객체의 자세 정보를 추정하는 렌더링(rendering)을 나타낸다.
도 12의 (a)는 입력 테스트 이미지이다. 도 12의 (b)는 병렬 뉴럴 네트워크에 따라 추정된 자세 정보 및 CAD(Computer Aided Design) 모델을 이용하여 렌더링된 (a)의 가상 이미지이다. 도 12의 (c)는 캐스케이드 뉴럴 네트워크에 따라 추정된 자세 정보 및 CAD 모델을 이용하여 렌더링된 (a)의 가상 이미지이다.
도 13은 일 실시예에 따른 자세를 추정하는 자세 추정 장치의 개략적인 블록도의 일 예이다.
도 13을 참조하면, 자세 추정 장치(1300)는 수신기(1310) 및 추정기(1320)를 포함한다. 수신기(1310)는 입력 이미지를 수신할 수 있다. 추정기(1320)는 입력 이미지로부터 객체의 자세 정보를 추정할 수 있다. 도 1 내지 도 13을 통해 기술된 객체의 자세 정보를 추정하는 방법은 추정기(1320)에 실질적으로 동일하게 적용되므로, 상세한 설명은 생략한다.
도 14는 일 실시예에 따른 자세를 추정하는 자세 추정 장치의 개략적인 블록도의 다른 예이다.
도 14를 참조하면, 자세 추정 장치(1400)는 프로세서(1410) 및 메모리(1420)를 포함한다. 메모리(1420)는 프로세서(1410)에 의해 실행되는 명령을 저장할 수 있다. 프로세서(1410)에 의해 명령이 실행될 때, 프로세서(1410)는 입력 이미지를 수신하고, 입력 이미지에서 객체의 자세 정보를 추정할 수 있다. 도 1 내지 도 13을 통해 기술된 객체의 자세 정보를 추정하는 방법은 프로세서(1410)에 실질적으로 동일하게 적용되므로, 상세한 설명은 생략한다.
도 15는 일 실시예에 따라 추정된 객체의 자세 정보를 이용하여 증강 현실에서 가상 객체를 디스플레이하는 방법을 나타낸다.
도 15를 참조하면, 디스플레이 장치는 이미지에서 하나 이상의 타겟 객체를 검출할 수 있다(1510). 디스플레이 장치는 검출된 타겟 객체의 자세 정보를 추정할 수 있다(1520). 디스플레이 장치는 추정된 타겟 객체의 자세 정보에 따라 이미지에 가상 객체를 디스플레이할(또는 추가할) 수 있다(1530).
도 16은 일 실시예에 따라 추정된 객체의 자세 정보를 이용하여 증강 현실에서 가상 객체를 디스플레이하는 방법을 구체적으로 설명하기 위한 순서도이다.
도 16을 참조하면, 디스플레이 장치는 가상 정보를 실제 객체 근처에 렌더링(rendering)할 수 있다. 예를 들어, 디스플레이 장치는 실제 장면의 하나의 책상에 대해, 하나의 가상의 화분을 실제 이미지에 렌더링하여 중첩해 이 가상의 화분이 실제 책상의 표면에 놓인 것과 같이 보이게 할 수 있다.
즉, 디스플레이 장치는 이미지에서 추정된 객체의 자세 정보를 이용하여 이미지(예를 들어, 증강 현실)에 가상 객체를 디스플레이할 수 있다. 디스플레이 장치가 이미지에서 책상을 검출하고, 이미지에 가상 화분을 추가하는 것을 예로 구체적으로 설명한다.
t 시각 AR 디스플레이에서, 디스플레이 장치는 t 시각의 이미지 Image(t)에 대해 미리 정의된 유형에 대응하는 하나 이상의 타겟 객체를 검출할 수 있다(1610). 검출해야 할 하나 이상의 객체의 유형은 미리 정의될 수 있다. 이러한 객체는 애플리케이션 장면에서 자주 출현하고, AR 애플리케이션에서 비교적 중요한 객체일 수 있다. 방법(1600)에서는, 책상을 검출된 이미지의 대상으로 가정한다.
디스플레이 장치는 검출된 타겟 객체, 즉 책상에 대해, 6개 자유도의 자세 정보를 추정할 수 있다(1620). 디스플레이 장치는 도 1 내지 14를 참조하여 기술된 객체의 자세 추정 방법을 이용하여 책상의 자세 정보를 추정할 수 있다.
디스플레이 장치는 타겟 객체의 6개 자유도의 자세 정보에 따라 가상 객체를 이미지에 추가하고, 이미지를 렌더링하여 디스플레이할 수 있다(1630).
구체적으로, 디스플레이 장치는 타겟 객체인 책상의 3D CAD 모형을 사용하여, 책상의 각 부분이 이미지 Image(t)에서 투사되는 이미지 구역과 3D 표면 방향을 알 수 있다. 예를 들어, 디스플레이 장치는 책상의 CAD 모형에 따라, 모형에서 어떤 3D 평면이 책상의 상판을 조성하는지 알 수 있다. 이에, 디스플레이 장치는 책상 모형의 3D 형태와 크기를 알 수 있다.
디스플레이 장치는 추정된 자세에 따라 책상 CAD 모형을 이미지에 투사하여, 이미지 Image(t)에서 어떤 이미지 구역이 책상 부분 및 이의 방향에 대응하는 지 알 수 있다. 디스플레이 장치는 가상 화분의 3D CAD 모형을 책상에 대응하는 이미지 구역에 투사하고, 이의 투사 자세(예를 들어, 자세 정보)가 책상의 자세와 같게 할 수 있다. 이를 통해, 디스플레이 장치는 가상 화분을 책상에 디스플레이되게 할 수 있다. 즉, 디스플레이 장치는 타겟 객체의 6개 자유도에서의 자세 정보에 따라 렌더링하여 가상 객체를 추가한 이미지를 나타낼 수 있다.
디스플레이 장치는 t+Δt 시각의 이미지 Image(t+Δt)에 대해 동일하게 가상 객체를 디스플레이 할 수 있다. 여기서, Δt는 시간 간격이고, t+Δt는 다음 시각을 표시한다. 디스플레이 장치는 상술한 단계(1610~1630)과 같이, t+Δt 시각의 이미지 Image(t+Δt)에 대해 단계(1640~1660)을 수행할 수 있다.
t+Δt 시각 이후의 매 시각의 디스플레이 과정은 t+Δt 시각의 디스플레이 과정과 실질적으로 동일할 수 있다. 이에, 상세한 설명은 생략한다.
도 17은 도 16에서 설명된 방법을 이용해 AR에서 가상 대상을 디스플레이하는 일 예를 나타낸다.
도 17에 도시된 바와 같이, 디스플레이 장치는 책상의 자세 정보를 추정하고, 3차원 프레임 투사(3D flame projection)를 통해 이를 이미지에 디스플레이 한다. 디스플레이 장치는 추정된 책상의 자세 정보에 따라 이미지에서 가상 원기둥을 실제 책상의 표면에 배치할 수 있다. AR 영상에서, 추정된 책상의 자세 정보에 따라 가상 원기둥의 포즈를 업데이트 하여 실제와 같은 시각적 효과를 낼 수 있다.
도 18은 도 16에서 설명된 방법을 이용해 AR에서 가상 대상을 디스플레이하는 다른 예를 나타낸다.
도 18에 도시된 바와 같이, 추정된 실제 객체(예를 들어, 종이 또는 컵)의 자세는 가상 객체의 자세를 통제하기 위해 사용될 수 있다. 이러한 경우, 실제 객체는 2차원 또는 3차원 AR 마킹물(AR marking object)로 칭해질 수 있다. 도 18에서 2차원 AR 마킹과 3차원 AR 마킹을 나타낸다. 2차원 AR 마킹에서, 종이가 2차원 AR 마킹에 사용되었고, 3차원 AR 마킹에서, 컵이 3차원 AR 마킹에 사용되었다.
도 19는 일 실시예에 따른 추정된 객체의 자세를 이용하여 증강 현실에서 가상 객체를 디스플레이 하는 장치의 개략적인 블록도를 나타낸다.
도 19를 참조하면, 디스플레이 장치(1900)는 검출기(1910), 추정기(1920), 및 디스플레이 제어기(1930)을 포함한다.
검출기(1910)는 이미지에서 하나 이상의 타겟 객체를 검출할 수 있다.
추정기(1920)는 검출된 타겟 객체의 자세 정보를 추정할 수 있다. 도 1 내지 도 15를 통해 기술된 객체의 자세 정보를 추정하는 방법은 추정기(1920)에 실질적으로 동일하게 적용되므로, 상세한 설명은 생략한다.
디스플레이 제어기(1930)는 추정된 타겟 객체의 자세 정보에 따라 이미지에 가상 객체를 추가하여 디스플레이할 수 있다. 도 15 내지 도 18을 통해 기술된 가상 객체를 디스플레이하는 방법은 디스플레이 제어기(1930)에 실질적으로 동일하게 적용되므로, 상세한 설명은 생략한다.
상술한 실시예들은 한 장의 이미지에서 6개 자유도의 자세 정보를 획득하고, 자세 정보를 증강 현실에서 실제 객체에 매칭되는 3차원 가상 객체 렌더링에 사용하고, 자세 정보를 이용하여 SLAM을 보조할 수도 있다.
실시예들은 네트워크에서의 작업을 실제 수요에 따라, 주요 작업 또는 보조 작업으로 교체할 수 있고, 객체 부품 분할 등과 같은 유효한 보조 작업을 지속적으로 추가할 수 있다.
또한 실시예들은 각각의 작업에 대해 각각의 네트워크 모듈을 설정하고, 각각의 모듈의 손실 함수 가중치를 조절하여 주요 작업의 객체 자세 추정 작업이 최적의 효과를 내게 할 수 있다. 실시예들은 각각의 모듈의 손실 함수 가중치를 조절하여, 다른 작업이 주요 작업이 되게 하여 최적의 효과를 낼 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 입력 이미지를 수신하는 단계; 및
    객체의 국부 정보(local information)에 기초하여 상기 입력 이미지에서 상기 객체의 자세 정보를 추정하는 단계
    를 포함하는 자세 추정 방법.
  2. 제1항에 있어서,
    상기 객체의 자세 정보를 추정하는 동시에 상기 객체의 키 포인트 정보를 추정하는 단계
    를 더 포함하고,
    상기 국부 정보는 상기 키 포인트 정보에 기초하여 획득되는 자세 추정 방법.
  3. 제2항에 있어서,
    상기 객체의 자세 정보를 추정하는 단계는,
    상기 키 포인트 정보를 사용하여 상기 자세 정보를 교정(correct)하는 단계
    를 포함하는 자세 추정 방법.
  4. 제2항에 있어서,
    상기 방법이 뉴럴 네트워크(neural network)를 통해 수행되는
    자세 추정 방법.
  5. 제4항에 있어서,
    상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어(base layer)의 파리미터들을 공유하는 자세 추정 방법.
  6. 제5항에 있어서,
    상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 병렬 모드(parallel mode) 및 캐스케이드 모드(cascade mode) 중에서 어느 하나에 의해 상기 뉴럴 네트워크에서 연결되고,
    상기 캐스케이드 모드에서, 상기 키 포인트 정보는 상기 객체의 자세 정보를 추정하는 작업에 입력되는 자세 추정 방법.
  7. 제5항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하는 자세 추정 방법.
  8. 제5항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어, 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하고,
    상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력은 상기 제2 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력에 연결되어 상기 하나 이상의 FC 레이어에 입력되는 자세 추정 방법.
  9. 제5항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어, 상기 제1 경로의 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하고,
    상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 둘 이상의 출력은 상기 제2 경로의 하나 이상의 FC 레이어 중에서 어느 하나에 연결되어 입력되는 자세 추정 방법.
  10. 제2항 내지 제9항 중 어느 한 항에 있어서,
    상기 객체의 자세 정보 및 상기 객체의 키 포인트 정보를 추정하는 동시에 상기 입력 이미지에서 상기 객체의 유형 정보를 추정하는 단계
    를 더 포함하는 자세 추정 방법.
  11. 제10항에 있어서,
    상기 객체의 자세 정보를 추정하는 작업(task), 상기 객체의 키 포인트 정보를 추정하는 작업(task), 및 상기 객체의 유형 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어의 파리미터들을 공유하는 자세 추정 방법.
  12. 제11항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 연결 레이어(Connection layer)를 포함하며, 상기 객체의 유형 정보를 추정하기 위한 제3 경로
    를 더 포함하는 자세 추정 방법.
  13. 명령을 저장하는 메모리; 및
    프로세서
    를 포함하고,
    상기 명령이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
    입력 이미지를 수신하고, 객체의 국부 정보(local information)에 기초하여 상기 입력 이미지에서 상기 객체의 자세 정보를 추정하는 장치.
  14. 제13항에 있어서,
    상기 프로세서는,
    상기 객체의 자세 정보를 추정하는 동시에 상기 객체의 키 포인트 정보를 추정하고,
    상기 국부 정보는 상기 키 포인트 정보에 기초하여 획득되는 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    상기 키 포인트 정보를 사용하여 상기 자세 정보를 교정(correct)하는 장치.
  16. 제14항에 있어서,
    상기 프로세서는,
    뉴럴 네트워크(neural network)를 통해 상기 객체의 키 포인트 정보 및 자세 정보를 추정하는 장치.
  17. 제16항에 있어서,
    상기 객체의 자세 정보를 추정하는 작업(task)과 상기 객체의 키 포인트 정보를 추정하는 작업(task)은 상기 뉴럴 네트워크 내 베이스 레이어(base layer)의 파리미터들을 공유하는 장치.
  18. 제17항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하는 장치.
  19. 제17항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어, 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하고,
    상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력은 상기 제2 경로의 하나 이상의 컨볼루션 레이어 중에서 어느 하나의 출력에 연결되어 상기 하나 이상의 FC 레이어에 입력되는 장치.
  20. 제17항에 있어서,
    상기 뉴럴 네트워크는,
    상기 베이스 레이어 및 하나 이상의 컨볼루션 레이어(Convolution layer)를 포함하며, 상기 객체의 키 포인트 정보를 추정하기 위한 제1 경로; 및
    상기 베이스 레이어, 상기 제1 경로의 하나 이상의 컨볼루션 레이어, 및 하나 이상의 FC 레이어(Fully connected layer)를 포함하며, 상기 객체의 자세 정보를 추정하기 위한 제2 경로
    를 포함하고,
    상기 제1 경로의 하나 이상의 컨볼루션 레이어 중에서 둘 이상의 출력은 상기 제2 경로의 하나 이상의 FC 레이어 중에서 어느 하나에 연결되어 입력되는 장치.
KR1020180085786A 2018-01-18 2018-07-24 자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들 KR20190088379A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/238,785 US10937189B2 (en) 2018-01-18 2019-01-03 Pose estimation method, method of displaying virtual object using estimated pose, and apparatuses performing the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810048656.9A CN110060296A (zh) 2018-01-18 2018-01-18 估计姿态的方法、电子设备和显示虚拟对象的方法及设备
CN201810048656.9 2018-01-18

Publications (1)

Publication Number Publication Date
KR20190088379A true KR20190088379A (ko) 2019-07-26

Family

ID=67315135

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180085786A KR20190088379A (ko) 2018-01-18 2018-07-24 자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들

Country Status (2)

Country Link
KR (1) KR20190088379A (ko)
CN (1) CN110060296A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220065234A (ko) * 2020-11-13 2022-05-20 주식회사 플라잎 6d 포즈 추정 장치 및 방법
WO2022131390A1 (ko) * 2020-12-15 2022-06-23 한국전자기술연구원 다중 시점 이미지를 사용한 자가지도 학습 기반 3차원 사람 자세 추정 방법
KR20230046719A (ko) 2021-09-30 2023-04-06 (주)피플앤드테크놀러지 욕창 환자의 자세 변경 관리 방법
KR20230046720A (ko) 2021-09-30 2023-04-06 (주)피플앤드테크놀러지 욕창질환 포착과 단계결정을 위한 딥러닝 모델 시스템, 생성방법 및 이를 이용한 욕창진단 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016026063A1 (en) * 2014-08-21 2016-02-25 Xiaoou Tang A method and a system for facial landmark detection based on multi-task
US10049307B2 (en) * 2016-04-04 2018-08-14 International Business Machines Corporation Visual object recognition
US20180012411A1 (en) * 2016-07-11 2018-01-11 Gravity Jack, Inc. Augmented Reality Methods and Devices
CN106599830B (zh) * 2016-12-09 2020-03-17 中国科学院自动化研究所 人脸关键点定位方法及装置
CN107239728B (zh) * 2017-01-04 2021-02-02 赛灵思电子科技(北京)有限公司 基于深度学习姿态估计的无人机交互装置与方法
CN107066935B (zh) * 2017-01-25 2020-11-24 网易(杭州)网络有限公司 基于深度学习的手部姿态估计方法及装置
CN106951840A (zh) * 2017-03-09 2017-07-14 北京工业大学 一种人脸特征点检测方法
CN107038422B (zh) * 2017-04-20 2020-06-23 杭州电子科技大学 基于空间几何约束深度学习的疲劳状态识别方法
CN107038429A (zh) * 2017-05-03 2017-08-11 四川云图睿视科技有限公司 一种基于深度学习的多任务级联人脸对齐方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220065234A (ko) * 2020-11-13 2022-05-20 주식회사 플라잎 6d 포즈 추정 장치 및 방법
WO2022131390A1 (ko) * 2020-12-15 2022-06-23 한국전자기술연구원 다중 시점 이미지를 사용한 자가지도 학습 기반 3차원 사람 자세 추정 방법
KR20230046719A (ko) 2021-09-30 2023-04-06 (주)피플앤드테크놀러지 욕창 환자의 자세 변경 관리 방법
KR20230046720A (ko) 2021-09-30 2023-04-06 (주)피플앤드테크놀러지 욕창질환 포착과 단계결정을 위한 딥러닝 모델 시스템, 생성방법 및 이를 이용한 욕창진단 방법
KR20240032002A (ko) 2021-09-30 2024-03-08 (주)피플앤드테크놀러지 욕창질환 포착과 단계결정을 위한 딥러닝 모델 시스템, 생성방법 및 이를 이용한 욕창진단 방법

Also Published As

Publication number Publication date
CN110060296A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
Sahu et al. Artificial intelligence (AI) in augmented reality (AR)-assisted manufacturing applications: a review
CN106296812B (zh) 同步定位与建图方法
US11610331B2 (en) Method and apparatus for generating data for estimating three-dimensional (3D) pose of object included in input image, and prediction model for estimating 3D pose of object
EP2728548B1 (en) Automated frame of reference calibration for augmented reality
US10410362B2 (en) Method, device, and non-transitory computer readable storage medium for image processing
KR20190088379A (ko) 자세 추정 방법, 추정된 자세를 이용하여 가상 객체를 디스플레이하는 방법, 및 이를 수행하는 장치들
CN108648224B (zh) 一种基于人工神经网络的实时场景布局识别及重建的方法
CN109816769A (zh) 基于深度相机的场景地图生成方法、装置及设备
KR102472767B1 (ko) 신뢰도에 기초하여 깊이 맵을 산출하는 방법 및 장치
CN110310333A (zh) 定位方法及电子设备、可读存储介质
Nakajima et al. Fast and accurate semantic mapping through geometric-based incremental segmentation
CN111739005B (zh) 图像检测方法、装置、电子设备及存储介质
JP5234476B2 (ja) グラフ構造を用いてパノラマイメージに対するイメージマッチングを遂行するための方法、システムおよびコンピュータ読取可能な記録媒体
CN109032348A (zh) 基于增强现实的智能制造方法与设备
Kim et al. Layered ground floor detection for vision-based mobile robot navigation
CN112053447A (zh) 一种增强现实三维注册方法及装置
CN111191492A (zh) 信息估计、模型检索和模型对准方法和装置
US11188787B1 (en) End-to-end room layout estimation
WO2021167586A1 (en) Systems and methods for object detection including pose and size estimation
Montserrat et al. Multi-view matching network for 6D pose estimation
CN116912467A (zh) 图像拼接方法、装置、设备及存储介质
CN110211239B (zh) 基于无标记识别的增强现实方法、装置、设备及介质
CN116228850A (zh) 物体姿态估计方法、装置、电子设备及可读存储介质
JP6967150B2 (ja) 学習装置、画像生成装置、学習方法、画像生成方法及びプログラム
CN107168514A (zh) 一种图像处理方法及电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal