KR101758064B1 - 깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법 - Google Patents

깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법 Download PDF

Info

Publication number
KR101758064B1
KR101758064B1 KR1020130131658A KR20130131658A KR101758064B1 KR 101758064 B1 KR101758064 B1 KR 101758064B1 KR 1020130131658 A KR1020130131658 A KR 1020130131658A KR 20130131658 A KR20130131658 A KR 20130131658A KR 101758064 B1 KR101758064 B1 KR 101758064B1
Authority
KR
South Korea
Prior art keywords
data
node
estimator
input
generating
Prior art date
Application number
KR1020130131658A
Other languages
English (en)
Other versions
KR20140143310A (ko
Inventor
한재준
단항 탕
김태균
한승주
유병인
최창규
알리칸 테자니
장형진
Original Assignee
삼성전자주식회사
임페리얼 이노베이션스 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 임페리얼 이노베이션스 리미티드 filed Critical 삼성전자주식회사
Priority to US14/280,990 priority Critical patent/US9449392B2/en
Priority to US14/283,646 priority patent/US9311713B2/en
Priority to EP14171067.3A priority patent/EP2811424B1/en
Publication of KR20140143310A publication Critical patent/KR20140143310A/ko
Application granted granted Critical
Publication of KR101758064B1 publication Critical patent/KR101758064B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/231Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/10Segmentation; Edge detection
    • G06T7/143Segmentation; Edge detection involving probabilistic approaches, e.g. Markov random field [MRF] modelling
    • 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/593Depth or shape recovery from multiple images from stereo images
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/11Hand-related biometrics; Hand pose recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • G06V40/113Recognition of static hand signs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/03Recognition of patterns in medical or anatomical images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법이 개시된다. 일 실시예에 따른 추정기 학습 방법은 합성 데이터와 실제 데이터 사이의 연관 관계에 기초하여, 객체의 자세를 추정하기 위한 추정기를 학습시킬 수 있다. 또한, 일 실시예에 따른 자세 추정 방법은 학습된 추정기를 이용하여 객체의 자세를 추정할 수 있다.

Description

깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법{ESTIMATOR LEARNING METHOD AND POSE ESTIMATION MEHTOD USING A DEPTH IMAGE}
아래 실시예들은 깊이 영상을 이용하여 객체의 자세를 추정하는 기법에 관한 것이다.
깊이 영상은 비전 센서로부터 피사체까지의 거리에 대한 정보를 포함하는 영상이다. 깊이 영상에 포함된 다수의 픽셀들 각각은 비전 센서의 투영면으로부터 해당 픽셀에 대응되는 피사체의 부위까지의 거리 정보를 포함한다. 깊이 영상은 다양한 원인들로 인하여 노이즈(noise) 또는 홀(hole)을 포함할 수 있다. 예를 들어, 깊이 영상 비전 센서의 해상도 제한에 따라 노이즈를 다수 포함할 수 있다. 또한, 깊이 영상을 촬영하는 비전 센서의 구동 방식에 따라 깊이 영상 내 특정 픽셀의 데이터가 누락될 수 있으며, 이 경우 깊이 영상은 해당 위치에 홀을 포함할 수 있다.
보다 구체적으로, TOF(Time of Flight) 방식의 비전 센서는 비전 센서로부터 출력된 빛이 피사체까지 도달한 뒤 반사되어 돌아오는 시간을 이용하여, 비전 센서와 피사체 사이의 거리를 계산한다. 다만, 비전 센서의 투영면에 대하여 기울어진 피사체의 경우, 비전 센서로부터 출력된 빛을 입사 방향과 상이한 방향으로 반사시킬 수 있다. 비전 센서는 입사 방향과 상이한 방향으로 반사된 빛을 수신하지 못하므로, 깊이 영상은 해당 위치에 홀을 포함할 수 있다.
또한, 구조적 빛(structured light) 방식의 비전 센서는 복수의 점들을 포함하는 패턴을 출력하고, 피사체에 투영된 복수의 점들 사이의 거리를 감지함으로써, 비전 센서와 피사체 사이의 거리를 계산한다. 다만, 피사체의 특정 부위에 단일의 점만 투영되는 경우 비전 센서와 해당 위치 사이의 거리를 계산할 수 없고, 깊이 영상은 해당 위치에 홀을 포함할 수 있다.
일 측에 따른 추정기 학습 방법은 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터를 연관시키는 단계; 및 상기 합성 데이터와 상기 실제 데이터 사이의 연관 관계에 기초하여, 상기 객체의 자세를 추정하기 위한 추정기를 학습시키는 단계를 포함한다.
이 때, 상기 학습시키는 단계는 상기 연관 관계에 있는 합성 데이터 및 실제 데이터를 동일한 방향으로 분기하는 노드를 생성하는 단계; 및 상기 노드를 이용하여 결정 트리를 생성하는 단계를 포함할 수 있다.
또한, 상기 연관시키는 단계는 상기 합성 데이터에 포함된 제1 데이터포인트에 대응되는 관절의 위치와 상기 실제 데이터에 포함된 제2 데이터포인트에 대응되는 관절의 위치를 비교하는 단계; 및 상기 관절의 위치들이 매칭되는 경우 상기 제1 데이터포인트와 상기 제2 데이터포인트가 연관된다고 판단하는 단계를 포함할 수 있다.
또한, 상기 학습시키는 단계는 데이터포인트들에 대응되는 외형들이 서로 유사한지 여부를 지시하는 외형 유사도 및 상기 연관 관계에 기초하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및 상기 노드를 이용하여 결정 트리를 생성하는 단계를 포함할 수 있다.
또한, 상기 학습시키는 단계는 제1 데이터포인트들 사이의 외형 유사도 및 상기 연관 관계를 이용하는 제1 평가 함수와 제2 데이터포인트들 사이의 시점 유사도, 상기 제2 데이터포인트들 사이의 클래스 유사도, 및 상기 제2 데이터포인트들 사이의 벡터 유사도를 이용하는 제2 평가 함수 중 하나를 랜덤하게 선택하는 단계; 상기 선택된 평가 함수를 이용하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및 상기 노드를 이용하여 결정 트리를 생성하는 단계를 포함할 수 있다.
또한, 상기 학습시키는 단계는 상기 연관 관계, 상기 합성 데이터 및 상기 실제 데이터 중 어느 하나에 포함되는 데이터포인트들 사이의 외형 유사도, 상기 데이터포인트들 사이의 시점 유사도, 상기 데이터포인트들 사이의 클래스 유사도, 및 상기 데이터포인트들 사이의 벡터 유사도 중 하나를 랜덤하게 선택하는 단계; 상기 선택된 기준에 기초하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및 상기 노드를 이용하여 결정 트리를 생성하는 단계를 포함할 수 있다.
다른 일 측에 따른 자세 추정 방법은 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 단계; 및 상기 복수의 벡터 세트들을 이용하여, 상기 입력 영상에 포함된 입력 객체의 자세를 추정하는 단계를 포함한다.
이 때, 상기 입력 객체의 자세를 추정하는 단계는 상기 복수의 벡터 세트들에 기초하여, 상기 입력 객체에 포함된 복수의 관절들에 대응하는 복수의 2-부분 가우스 혼합 모델들을 생성하는 단계; 및 상기 복수의 2-부분 가우스 혼합 모델들을 이용하여 상기 입력 객체에 포함된 복수의 관절들의 3차원 좌표들을 산출하는 단계를 포함할 수 있다.
또 다른 일 측에 따른 추정기 학습 장치는 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터를 연관시키는 연관부; 및 상기 합성 데이터와 상기 실제 데이터 사이의 연관 관계에 기초하여, 상기 객체의 자세를 추정하기 위한 추정기를 학습시키는 학습부를 포함한다.
또 다른 일 측에 따른 자세 추정 장치는 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 획득부; 및 상기 복수의 벡터 세트들을 이용하여, 상기 입력 영상에 포함된 입력 객체의 자세를 추정하는 추정부를 포함한다.
또 다른 일 측에 따른 관절을 포함하는 객체의 자세를 추정하기 위한 추정기 학습 방법은 상기 객체의 잠재 트리 모델(latent tree model)을 획득하는 단계; 및 상기 잠재 트리 모델의 루트 노드로부터 복수의 리프 노드들까지의 경로들에 위치하는 복수의 잠재 노드(latent node)들에 대하여, 잠재 노드에 수신되는 입력 데이터를 두 부분들로 분할하는 벡터 페어(vector pair)를 생성하는 단계를 포함한다.
또 다른 일 측에 따른 자세 추정 방법은 관절을 포함하는 객체의 잠재 트리 모델(latent tree model)에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 입력 객체의 복수의 부위들을 검출하는 단계; 및 상기 검출된 복수의 부위들을 이용하여, 상기 입력 객체의 자세를 추정하는 단계를 포함한다.
도 1 내지 도 4는 일 실시예에 따른 합성 데이터와 실제 데이터를 함께 이용하는 자세 추정 기법을 설명하기 위한 도면.
도 5는 일 실시예에 따른 추정기 학습 방법을 설명하기 위한 도면.
도 6은 일 실시예에 따른 사용자의 손에 포함된 클래스들을 설명하기 위한 도면.
도 7은 일 실시예에 따른 벡터 세트에 포함된 복수의 벡터들을 설명하기 위한 도면.
도 8은 일 실시예에 따른 랜덤 포레스트 기법을 설명하기 위한 도면.
도 9는 일 실시예에 따른 품질 함수들의 계층이 뒤바뀌는 경우를 설명하기 위한 도면.
도 10은 일 실시예에 따른 추정기를 이용하여 관절식 객체에 포함된 복수의 관절들의 3차원 좌표를 산출하는 동작을 설명하기 위한 도면.
도 11은 일 실시예에 따른 신뢰도 낮은 관절의 3차원 좌표를 산출하는 동작을 설명하기 위한 도면.
도 12는 일 실시예에 따라 사용자의 손의 자세를 추정한 영상을 설명하는 도면.
도 13은 일 실시예에 따른 추정기 학습 방법을 나타낸 동작 흐름도.
도 14는 일 실시예에 따른 자세 추정 방법을 나타낸 동작 흐름도.
도 15는 일 실시예에 따른 추정기 학습 장치 및 자세 추정 장치를 나타낸 블록도.
도 16은 일 실시예에 따른 잠재 회귀 포레스트(Latent Regression Forest; LRF)를 이용한 추정기 학습 방법을 개관하는 도면.
도 17a 내지 도 17c는 일 실시예에 따른 잠재 회귀 포레스트와 일반적인 회귀 포레스트를 비교하는 도면.
도 18 및 도 19는 일 실시예에 따른 잠재 트리 모델을 설명하는 도면.
도 20은 일 실시예에 따른 잠재 회귀 포레스트를 트레이닝하는 방법을 설명하는 도면.
도 21은 일 실시예에 따른 잠재 회귀 포레스트를 이용한 자세 추정 결과를 도시한 도면.
1. 일 실시예에 따른 자세 추정 기법의 개관(overview)
도 1 내지 도 4는 일 실시예에 따른 자세 추정 기법을 설명하기 위한 도면이다. 일 실시예에 따른 자세 추정 기법은 관절식 객체(articulated object)의 자세(pose)를 추정하는 기술을 제공할 수 있다. 관절식 객체는 관절(joint)을 포함하는 객체로, 예를 들어 사용자의 손, 사용자의 신체 등을 포함할 수 있다. 일 실시예에 따른 자세 추정 기법은 깊이 영상(depth image)을 이용하여 관절식 객체의 자세를 추정할 수 있다.
도 1을 참조하면, 일 실시예에 따른 자세 추정 기법은 사용자의 손을 합성한 합성 데이터(synthetic data, 110)와 사용자의 손을 촬영한 실제 데이터(real data, 120)를 함께 이용한다. 합성 데이터(110)는 관절식 객체를 모델링한 관절식 객체의 모델(130)로부터 생성될 수 있다. 관절식 객체의 모델(130)은 관절식 객체에 포함된 관절들의 구조에 기초하여 관절식 객체가 취할 수 있는 자세들이 3차원 모델링된 정보를 포함할 수 있다. 실제 데이터(120)는 실제 관절식 객체(140)를 촬영한 비전 센서(vision sensor)의 출력 영상을 포함할 수 있다. 합성 데이터(110)와 실제 데이터(120)는 깊이 영상 데이터를 포함할 수 있다.
실제 데이터(120)만을 이용하여 관절식 객체의 자세를 추정하기 위한 추정기(estimator)를 학습(learning)시키는 경우 광범위한 실제 데이터(120)의 크기로 인하여 추정기를 학습시키는 데 막대한 자원이 소모될 수 있다. 실제 관절식 객체(140)를 촬영하는 시점(viewpoint)이나 실제 관절식 객체(140)의 자세가 변함에 따라 실제 데이터(120)도 다양하게 변경될 수 있기 때문이다. 예를 들어, 사용자의 손의 자세를 추정하는 경우, 사용자의 손을 감지하는 비전 센서가 사용자의 손을 바라보는 시점에 따라 사용자의 손이 동일한 자세를 취하고 있음에도 상이한 영상이 출력될 수 있다. 또한, 개개의 케이스 별로 추정기를 학습시키는 것이므로 개별 케이스마다 레이블링(labeling)을 수행해야 하고, 레이블 수행에도 막대한 자원이 소모될 수 있다. 레이블링은 추정기에 의한 추정 결과가 어떠한 자세에 대응되는지를 매핑하는 연산이다. 예를 들어, 레이블링이 수행된 데이터인 레이블 데이터는 관절식 객체에 포함된 복수의 관절들의 위치 정보를 포함할 수 있다.
합성 데이터(110)만을 이용하여 추정기를 학습시키는 경우 관절식 객체의 자세를 추정하기 위한 추정기의 성능이 저하될 수 있다. 합성 데이터(110)와 실제 데이터(120)는 상이한 외형을 가질 수 있기 때문이다. 보다 구체적으로, 합성 데이터(110)의 경우, 관절식 객체의 모델(130)에 기초하여 생성되므로, 실제 관절식 객체(140)와 흡사한 외형을 가질 수 있다. 다만, 실제 관절식 객체(140)를 촬영한 실제 데이터(120)는 노이즈 및 홀을 포함할 수 있으므로, 실제 데이터(120)는 실제 관절식 객체(140)와 상이한 외형을 가질 수 있다. 예를 들어, 도 2a를 참조하면, 합성 데이터만 포함하는 트레이닝 데이터 세트(210)로 학습된 추정기(220)는 합성 데이터와 상이한 외형의 실제 데이터(230)를 입력 받는 경우, 실제 자세에 대응되는 결과(240)가 아닌 다른 결과(250)를 출력할 수 있다.
일 실시예에 따른 자세 추정 기법은 합성 데이터(110)와 실제 데이터(120) 사이의 연관 관계(150)를 이용하여 추정기를 학습시킬 수 있다. 그 결과, 일 실시예에 따른 자세 추정 기법은 추정기를 학습시키는 데 소요되는 자원을 절감하면서, 추정기의 성능을 향상시키는 기술을 제공할 수 있다. 예를 들어, 도 2b를 참조하면, 합성 데이터와 실제 데이터를 함께 포함하는 트레이닝 데이터 세트(260)로 학습된 추정기(270)는 합성 데이터와 상이한 외형의 실제 데이터(230)를 입력 받는 경우에도 실제 자세에 대응되는 결과(240)를 출력할 수 있다. 뿐만 아니라, 추정기(270)은 학습된 실제 데이터(230)와 외형은 비슷하지만 직접 학습되지 않은 실제 데이터(235)를 입력 받는 경우에도 동일한 결과(240)를 출력할 수 있다.
일 실시예에 따른 자세 추정 기법은 합성 데이터(110)와 실제 데이터(120)를 함께 이용하여 관절식 객체의 자세를 추정할 수 있다. 예를 들어, 일 실시예에 따른 자세 추정 기법은 깊이 영상의 외형은 상이하나, 관절들의 위치가 동일한 합성 데이터(110)와 실제 데이터(120)를 연관시킬 수 있다. 도 3을 참조하면, 일 실시예에 따른 자세 추정 기법은 합성 데이터(310)에 포함된 레이블 정보와 실제 데이터(320)에 포함된 레이블 정보가 일치하는지 여부를 판단할 수 있다. 레이블 정보는 관절식 객체에 포함된 복수의 관절들의 위치 정보를 포함할 수 있다. 합성 데이터(310)는 관절식 객체의 모델(330)에 포함된 제1 관절 위치(331), 제2 관절 위치(332), 및 제3 관절 위치(333)에 매칭되는 레이블 정보를 포함한다. 실제 데이터(320)도 관절식 객체의 모델(330)에 포함된 제1 관절 위치(331), 제2 관절 위치(332), 및 제3 관절 위치(333)에 매칭되는 레이블 정보를 포함한다. 일 실시예에 따른 자세 추정 기법은 합성 데이터(310)의 외형과 실제 데이터(320)의 외형이 상이함에 불구하고, 합성 데이터(310)에 포함된 레이블 정보와 실제 데이터(320)에 포함된 레이블 정보가 일치한다는 판단에 따라 합성 데이터(310)와 실제 데이터(320)를 연관시킬 수 있다.
도 4는 일 실시예에 따른 자세 추정 기법이 관절식 객체의 자세를 추정하기 위한 추정기를 학습시키는 원리를 설명하기 위한 도면이다. 도 4를 참조하면, 일 실시예에 따른 자세 추정 기법은 추정기를 학습시킬 때 깊이 영상에 포함된 오류 영역(예를 들어, 노이즈, 홀 등)에 포함되는 피쳐(feature)를 최대한 제외할 수 있다. 예를 들어, 일 실시예에 따른 자세 추정 기법은 깊이 영상(410)에 포함된 복수의 피쳐들(f1, f2, f3) 중 오류 영역에 포함되는 피쳐(f2)를 제외한 피쳐들(f1, f3)을 이용하여 추정기(420)를 학습시킬 수 있다. 이로 인하여, 추정기(420)은 오류 영역(예를 들어, 노이즈, 홀 등)을 포함하는 실제 데이터(430)를 수신하는 경우에도, 오류 없는 합성 데이터(440)로 복원하여 인식할 수 있다. 예를 들어, 추정기(420)에 실제 데이터(430)가 입력되면, 실제 데이터(430)는 분기 노드(421), 분기 노드(422), 분기 노드(423)을 거쳐 리프 노드(424)에 도달할 수 있다. 리프 노드(424)는 연관 관계(460)를 가지는 노드이다. 추정기(420)는 연관 관계(460)를 이용하여, 리프 노드(424)에 도달한 실제 데이터(435)의 자세로부터 합성 데이터(440)의 자세를 복원할 수 있다. 뿐만 아니라, 추정기(420)는 실제 학습되지는 않았으나 유사한 오류 영역(예를 들어, 노이즈, 홀 등)을 포함하는 실제 데이터들(450)을 수신하는 경우에도, 오류 없는 합성 데이터(440)로 복원하여 인식할 수 있다.
2. 일 실시예에 따른 추정기 학습 방법(estimator learning method)
도 5는 일 실시예에 따른 추정기 학습 방법을 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따른 추정기 학습 방법은 트레이닝 데이터 세트(510)를 수집(collect)할 수 있다. 트레이닝 데이터 세트(510)는 타겟 도메인(511) 및 소스 도메인(512)를 포함할 수 있다. 타겟 도메인(511)은 부분적으로 레이블링된 실제 데이터를 포함하고, 소스 도메인(512)은 전체적으로 레이블링된 합성 데이터를 포함할 수 있다. 일 실시예에 따른 추정기 학습 방법은 타겟 도메인(511)에 포함된 실제 데이터 중 레이블링된 데이터인 레이블 실제 데이터 및 소스 도메인(512)에 포함된 합성 데이터 사이의 연관 관계(513)를 생성할 수 있다. 이하, 트레이닝 데이터 세트(510)에서 레이블 데이터는
Figure 112013099325590-pat00001
로 표시되고, 언레이블 데이터는
Figure 112013099325590-pat00002
로 표시된다. 타겟 도메인(511)에서
Figure 112013099325590-pat00003
는 레이블 실제 데이터이고,
Figure 112013099325590-pat00004
는 언레이블 실제 데이터이다. 소스 도메인(512)에서
Figure 112013099325590-pat00005
는 합성 데이터이다.
일 실시예에 따른 추정기 학습 방법은 트랜덕티브 모델(tranductive model)에 기반할 수 있다. 예를 들어, 일 실시예에 따른 추정기 학습 방법은 합성 데이터로부터 실제 데이터로의 정보 변이(knowledge transform)를 적용할 수 있다. 일 실시예에 따른 추정기 학습 방법은 합성 데이터와 실제 데이터 사이의 연관 관계들을 보존(preserve)시킬 수 있다. 예를 들어, 일 실시예에 따른 추정기 학습 방법은 연관 관계에 있는 합성 데이터와 실제 데이터를 동일하게 분류(classify)하도록 추정기(520)를 학습시킬 수 있다.
일 실시예에 따른 추정기 학습 방법은 레이블 데이터와 언레이블 데이터를 함께(jointly) 모델링할 수 있다. 일 실시예에 따른 추정기 학습 방법은 적응적 계층 분류 기법(adaptive hierarchical classification scheme)을 이용하여 관절식 객체의 자세에 따른 시점 변화를 처리할 수 있다. 일 실시예에 따른 추정기 학습 방법은 레이블 데이터뿐 아니라 언레이블 데이터도 함께 이용한다. 전술한 바와 같이, 레이블 데이터는 레이블링이 수행된 데이터로, 관절식 객체에 포함된 복수의 관절들에 대한 정보를 포함할 수 있다. 예를 들어, 레이블 데이터에 포함되는 원소들 각각은 해당 원소와 가장 가까운 관절에 대한 정보, 해당 원소와 관절식 객체에 포함된 복수의 관절들 사이의 상대적 위치들에 대한 정보 등을 포함할 수 있다. 언레이블 데이터는 레이블링이 수행되지 않은 데이터로, 관절식 객체에 포함된 복수의 관절들에 대한 정보를 포함하지 않는다는 점에서 레이블 데이터와 구별될 수 있다.
일 실시예에 따른 추정기 학습 방법은 레이블 데이터에 대응되는 외형과 언레이블 데이터에 대응되는 외형의 유사도를 이용하여 추정기를 학습시킬 수 있다. 일 실시예에 따른 추정기 학습 방법은 레이블 데이터인지 언레이블 데이터인지 여부에 관계 없이, 데이터의 외형의 유사도를 이용하여 추정기를 학습시킬 수 있다. 예를 들어, 일 실시예에 따른 추정기 학습 방법은 손바닥이 정면을 향하는 외형(514)을 갖는 데이터들을 동일하게 분류하고, 손바닥이 아래쪽을 향하는 외형(515)을 갖는 데이터들을 별도로 분류하도록 추정기(520)를 학습시킬 수 있다.
일 실시예에 따른 추정기 학습 방법은 합성 데이터로부터 폭넓은 자세들을 커버할 수 있는 동시에 실제 데이터로부터 정확한 자세들을 추정하는 추정기를 도출할 수 있다. 또한, 일 실시예에 따른 추정기 학습 방법은 광범위한 실제 데이터를 모두 레이블링할 필요가 없으므로, 레이블링을 수행하는 비용을 감소시킬 수 있다.
2.1. 일 실시예에 따른 트레이닝 데이터 세트
도 5를 참조하면, 트레이닝 데이터 세트 D(510)는 타겟 도메인(511)에 포함된 실제 데이터 R과 소스 도메인(512)에 포함된 합성 데이터 S를 포함할 수 있다. 타겟 도메인(511)에서 실제 데이터 R의 일부는
Figure 112013099325590-pat00006
로 표시되는 레이블 실제 데이터 Rl이고, 실제 데이터 R의 나머지는
Figure 112013099325590-pat00007
로 표시되는 언레이블 실제 데이터 Ru이다. 소스 도메인(512)에서 합성 데이터 S에 포함된 모든 데이터포인트들은
Figure 112013099325590-pat00008
로 표시되는 레이블 데이터이다. 따라서, 트레이닝 데이터 세트 D(510)는 {Rl, Ru, S}로 구성되고, 레이블 데이터 L은 {Rl, S}로 구성될 수 있다.
트레이닝 데이터 세트 D(510)에 포함되는 모든 데이터포인트들은 패치(patch)로 표현될 수 있다. 패치들은 트레이닝 깊이 영상으로부터 랜덤하게 샘플링될 수 있다. 예를 들어, 트레이닝 깊이 영상으로부터 샘플링되는 패치들의 수(또는, 데이터포인트들의 수)는 트레이닝 깊이 영상에 포함된 전경 픽셀들의 5% 정도일 수 있다. 레이블 실제 데이터 Rl 또는 합성 데이터 S에 포함된 모든 데이터포인트들은 (a, p, v)의 투플(tuple)을 할당 받는다.
시점 라벨(view label) a는 시점을 지시할 수 있다. 예를 들어, 시점 라벨 a는 양자화된 복수의 시점들 중 어느 하나를 지시할 수 있다. 패치의 시점은 롤(roll), 피치(pitch) 및 요우(yaw)로 표현될 수 있다. 롤, 피치 및 요우는 각각 미리 정해진 단계들로 양자화될 수 있고, 예를 들어, 롤은 3 단계들, 피치는 5 단계들, 요우는 9 단계들로 양자화될 수 있다. 이 경우, 패치의 시점은 135 단계들로 양자화될 수 있다.
클래스 라벨(class label) p는 데이터포인트에 가장 가까운 관절을 지시할 수 있다. 가장 가까운 관절이 동일한 패치들은 동일한 클래스 라벨을 가질 수 있다. 예를 들어, 도 6을 참조하면, 관절식 객체가 사용자의 손인 경우, 관절식 객체는 총 16개의 관절들을 포함할 수 있다. 16개의 관절들 각각은 하나의 클래스에 대응되므로, 관절식 객체가 사용자의 손인 경우, 관절식 객체는 총 16개의 클래스들로 분류될 수 있다. 16개의 클래스들은 엄지 손가락에 3개(T1, T2, T3), 검지 손가락에 3개(I1, I2, I3), 중지 손가락에 3개(M1, M2, M3), 약지 손가락에 3개(R1, R2, R3), 새끼 손가락에 3개(L1, L2, L3) 및 손바닥에 1개(P)로 구분될 수 있다. 클래스 라벨 p는 {1,...,16} 집합의 원소들을 이용하여 16개의 클래스들 각각을 지시할 수 있다.
벡터 세트 v는 데이터포인트에 대응되는 패치의 기준점(예를 들어, 패치의 중심)으로부터 관절식 객체에 포함된 복수의 관절들로 향하는 복수의 벡터들을 포함할 수 있다. 복수의 벡터들 각각은 3차원 벡터 (x,y,z)로 표현될 수 있다. 예를 들어, 사용자의 손을 추정하는 경우, 벡터 세트 v에는 3차원 벡터가 16개 포함될 수 있으므로, 벡터 세트 v는 R3x16의 디멘션(dimension)을 가질 수 있다. 도 7을 참조하면, 벡터 세트 v는 패치(710)으로부터 16개의 관절들로 향하는 16개의 벡터들을 포함할 수 있다.
일 실시예에 따른 추정기 학습 방법은 레이블 실제 데이터 Rl과 합성 데이터 S에 포함된 데이터포인트들을 매칭함으로써, 실제 데이터와 합성 데이터 사이의 연관 관계를 생성할 수 있다. 일 실시예에 따른 추정기 학습 방법은 관절식 객체에 포함된 복수의 관절들의 3차원 위치들에 기초하여, 레이블 실제 데이터 Rl과 합성 데이터 S에 포함된 데이터포인트들을 매칭할 수 있다. 실제 데이터와 합성 데이터 사이의 연관 관계 Ψ는 수학식 1과 같이 정의될 수 있다.
Figure 112013099325590-pat00009
여기서, r은 레이블 실제 데이터 Rl에 포함되는 데이터포인트이고, s는 합성 데이터 S에 포함되는 데이터포인터이다. 수학식 1을 참조하면, 일 실시예에 따른 추정기 학습 방법은 데이터포인트 r에 의해 지시되는 복수의 관절들의 3차원 위치들과 데이터포인트 s에 의해 지시되는 복수의 관절들의 3차원 위치들을 비교할 수 있다. 일 실시예에 따른 추정기 학습 방법은 데이터포인트 r에 의해 지시되는 복수의 관절들의 3차원 위치들과 데이터포인트 s에 의해 지시되는 복수의 관절들의 3차원 위치들이 매칭되는 경우, 데이터포인트 r과 데이터포인트 s가 매칭된다고 판단할 수 있다. 일 실시예에 따른 추정기 학습 방법은 데이터포인트 r과 데이터포인트 s가 매칭된다고 판단되는 경우, 실제 데이터와 합성 데이터 사이의 연관 관계 Ψ를 1로 설정할 수 있다. 그렇지 않은 경우, 일 실시예에 따른 추정기 학습 방법은 실제 데이터와 합성 데이터 사이의 연관 관계 Ψ를 0으로 설정할 수 있다.
2.2. 일 실시예에 따른 추정기
일 실시예에 따른 추정기 학습 방법은 단일 추정기 내에서 소스 도메인과 타겟 도메인을 함께 분류(classification) 또는 결합(clustering)하거나, 회귀(regression)시키도록 추정기를 학습시킬 수 있다. 이러한 측면에서, 일 실시예에 따른 추정기는 분류, 결합, 회귀 동작들 각각을 별도로 수행하도록 학습되는 추정기와 구별될 수 있다.
도 5를 참조하면, 일 실시예에 따른 추정기(520)는 최상위 노드(521)에서 소스 도메인과 타겟 도메인에 포함된 데이터들을 함께 분류하도록 학습된다. 최상위 노드(521)에는 4개의 트레이닝 데이터군들(524, 525, 526, 527)이 입력될 수 있다. 4개의 트레이닝 데이터군들(524, 525, 526, 527)에 포함된 데이터포인트들 각각은 소스 도메인에서 추출된 데이터포인트일 수 있고, 또는 타겟 도메인에서 추출된 데이터포인트일 수 있다. 일 실시예에 따른 추정기(520)는 최상위 노드(521)에서 4개의 트레이닝 데이터군들(524, 525, 526, 527)을 시점으로 분류할 수 있다. 이 경우, 트레이닝 데이터군(524)와 트레이닝 데이터군(525)이 동일한 시점으로 분류되어 왼쪽 자식 노드로 전달될 수 있다. 또한, 트레이닝 데이터군(526)와 트레이닝 데이터군(527)이 동일한 시점으로 분류되어 오른쪽 자식 노드로 전달될 수 있다.
일 실시예에 따른 추정기(520)는 중간 노드들(522)에서 소스 도메인과 타겟 도메인에 포함된 데이터들을 함께 분류하도록 학습된다. 중간 노드들(522) 중 왼쪽 노드에는 2개의 트레이닝 데이터군들(524, 525)이 입력될 수 있다. 일 실시예에 따른 추정기(520)는 중간 노드들(522) 중 왼쪽 노드에서 2개의 트레이닝 데이터군들(524, 525)을 클래스로 분류할 수 있다. 이 경우, 트레이닝 데이터군(525)는 엄지 손가락의 끝 마디에 대응되는 클래스로 분류되어 왼쪽 자식 노드로 전달되고, 트레이닝 데이터군(524)는 검지 손가락의 첫 마디에 대응되는 클래스로 분류되어 오른쪽 자식 노드로 전달될 수 있다. 또한, 일 실시예에 따른 추정기(520)는 리프 노드(523)에서 소스 도메인과 타겟 도메인에 포함된 데이터들을 회귀시킬 수 있다. 회귀 동작과 관련된 보다 상세한 사항들은 벡터 세트를 회귀시키는 품질 함수 Qv를 통하여 후술한다.
경우에 따라, 일 실시예에 따른 추정기(520)는 최상위 노드(521), 중간 노드(522), 또는 리프 노드(523)에서 소스 도메인과 타겟 도메인에 포함된 데이터들을 결합(514, 515)할 수 있다. 결합 동작과 관련된 보다 상세한 사항들은 레이블 데이터와 언레이블 데이터의 구분과 관계없이 실제 데이터에 포함된 데이터포인트들의 외형을 결합하는 품질 함수 Qu를 통하여 후술한다.
일 실시예에 다른 추정기 학습 방법은 사용자의 손과 같이 복잡하고 다양한 자세를 취할 수 있는 관절식 객체의 가능한 모든 자세에 대한 실제 데이터를 레이블링 없이도 신뢰도 높은 자세를 추정하는 기술을 제공할 수 있다. 일 실시예에 따른 추정기는 적은 연산 복잡도(computation complexity)로 학습될 수 있다. 이와 같이, 일 실시예에 따른 추정기 학습 방법은 관절식 객체의 자세를 추정하기 위한 결정 트리(decision tree)를 생성할 수 있다. 예를 들어, 일 실시예에 따른 추정기 학습 방법은 재귀적으로(recursively) 노드를 분기하고, 현재 노드로 수신된 트레이닝 데이터를 자식 노드들로 전달함으로써, 결정 트리를 생성할 수 있다.
일 실시예에 따른 추정기 학습 방법은 관절식 객체의 자세를 추정하기 위한 랜덤 포레스트(random forest)를 생성할 수 있다. 예를 들어, 도 8을 참조하면, 랜덤 포레스트(810)는 복수의 결정 트리들(811, 812, 813)을 포함할 수 있다. 일 실시예에 따른 추정기 학습 방법은 각각의 결정 트리들(811, 812, 813)을 생성할 수 있으며, 결정 트리들(811, 812, 813)에 포함된 복수의 노드들 각각에서 랜덤하게 품질 함수를 선택하므로, 결정 트리들(811, 812, 813)은 서로 다를 수 있다. 향후, 생성된 랜덤 포레스트(810)에 입력 쿼리(820)가 입력되면, 각각의 결정 트리들(811, 812, 813)에서 입력 쿼리(820)를 처리할 수 있다. 랜덤 포레스트(810)는 복수의 결정 트리들(811, 812, 813)에 대응되는 복수의 결과들(831, 832)을 출력할 수 있다. 랜덤 포레스트(810)는 복수의 결과들(831, 832)을 조합하여 최종 결과(840)를 도출할 수 있다.
일 실시예에 따른 추정기 학습 방법은 각각의 노드에서 분기 노드의 후보군들을 생성하고, 그 중 품질 함수(quality function)를 최대로 만드는 후보를 선택할 수 있다. 품질 함수는 결정 트리에 포함되는 각각의 노드에서 데이터의 분기 방향을 결정하는 지표가 되는 함수이다. 일 실시예에 따른 추정기 학습 방법은 각각의 노드에서 이용되는 품질 함수를 랜덤하게 선택할 수 있다. 일 실시예에 따른 추정기 학습 방법은 수학식 2와 같은 품질 함수들을 이용할 수 있다.
Figure 112013099325590-pat00010
여기서, 품질 함수 Qapv는 시점을 분류하는 품질 함수 Qa, 관절을 분류하는 품질 함수 Qp, 및 벡터 세트를 회귀시키는 품질 함수 Qv를 이용하여 결정 트리를 학습시키는 품질 함수이다. 품질 함수 Qtss는 합성 데이터와 실제 데이터 사이의 연관 관계를 보존하는 품질 함수 Qt 및 레이블 데이터와 언레이블 데이터의 구분과 관계없이 실제 데이터에 포함된 데이터포인트들의 외형을 결합하는 품질 함수 Qu를 이용하여 결정 트리를 학습시키는 품질 함수이다. 파라미터 α 및 파라미터 β는 품질 함수 Qa, 품질 함수 Qp, 및 품질 함수 Qv 중 어느 하나를 택일적으로 선택하기 위한 플래그(flag)이다. 파라미터 ω는 품질 함수 Qt 및 품질 함수 Qu 사이의 상대적인 중요도를 조절하는 가중치(weight)이다.
일 실시예에 따른 추정기 학습 방법은 결정 트리의 각 노드에서 품질 함수 Qapv 및 품질 함수 Qtss 중 어느 하나를 랜덤하게 선택할 수 있다. 일 실시예에 따른 추정기 학습 방법은 랜덤하게 선택된 품질 함수를 이용하여 해당 노드에 입력되는 데이터포인트들을 분기하는 분기 노드를 생성할 수 있다. 이하, 품질 함수 Qapv에 이용되는 품질 함수 Qa, 품질 함수 Qp, 품질 함수 Qv, 및 품질 함수 Qtss에 이용되는 품질 함수 Qt, 품질 함수 Qu를 상세하게 설명한다.
품질 함수 Q a
품질 함수 Qa는 시점을 분류하기 위한 품질 함수이다. 레이블 데이터 L에 포함된 모든 시점 라벨 a의 분류 성능(classification performance)을 평가하기 위하여 정보 이득(information gain)이 이용될 수 있다. 품질 함수 Qa는 계층의 꼭대기에서 적용되기 때문에, 많은 수의 트레이닝 샘플들이 평가되어야 한다. 메모리 제한을 회피하고 트레이닝 시간을 단축시키기 위하여 저장소 샘플링(reservoir sampling) 기법이 이용될 수 있다. 품질 함수 Qa는 레이블 데이터 내 시점들을 분류함으로써 결정 트리를 최적화할 수 있다.
품질 함수 Q p
품질 함수 Qp는 관절을 분류하는 품질 함수이다. 레이블 데이터 L에 포함된 클래스 라벨 p의 분류 성능을 평가하기 위하여 정보 이득이 이용될 수 있다. 레이블 데이터 L에 포함되는 개별 패치를 분류하는 성능을 측정할 수 있다. 품질 함수 Qp는 레이블 데이터 내 클래스들을 분류함으로써 결정 트리를 최적화할 수 있다.
품질 함수 Q v
품질 함수 Qv는 벡터 세트를 회귀시키는 품질 함수이다. 벡터 세트들이 균일한 정도(compactness)를 측정함으로써, 결정 트리의 회귀 양상을 학습시킬 수 있다. 레이블 데이터 L 내에 주어진 벡터 세트들 J(L)에 있어서, 품질 함수 Qv는 수학식 3과 같이 정의될 수 있다.
Figure 112013099325590-pat00011
여기서, Llc는 왼쪽 자식 노드로 전달되는 트레이닝 데이터이고, Lrc는 오른쪽 자식 노드로 전달되는 트레이닝 데이터이다. Λ(.)는 영상의 차이 여부를 나타내는 연산자로, 예를 들어 Λ(.)의 값이 크면 대상 집단에 포함된 피쳐(feature)들이 상이함을 나타내고 Λ(.)의 값이 작으면 대상 집단에 포함된 피쳐들이 유사함을 나타낼 수 있다. 품질 함수 Qv의 값은 노드 내 벡터 세트들이 균일할수록 증가하며, 만약 노드 내 벡터들이 모두 동일한 경우 1로 수렴할 수 있다. 아래에서 설명하겠지만, 품질 함수 Qv는 노드로 전달되는 트레이닝 데이터의 시점과 관련된 순도와 클래스와 관련된 순도가 모두 높은 경우에 선택될 수 있다. 따라서, 품질 함수 Qv는 실질적으로 동일한 시점과 실질적으로 동일한 클래스 내 포함된 벡터 세트들이 균일한지 여부를 평가할 수 있다.
품질 함수 Q u
품질 함수 Qu는 레이블 데이터와 언레이블 데이터의 구분과 관계없이 실제 데이터에 포함된 데이터포인트들의 외형을 결합하는 품질 함수이다. 타겟 도메인(예를 들어, 실제 데이터)의 외형은 언레이블 데이터를 포함하도록 모델링 될 수 있다. 동일한 시점에서 관절식 객체의 외형과 자세는 밀접한 관계를 가진다는 가정 하에서, 품질 함수 Qu는 수학식 4와 같이 노드 내 실제 데이터 R에 포함된 모든 패치들의 외형 유사도를 평가할 수 있다.
Figure 112013099325590-pat00012
여기서, Rlc는 왼쪽 자식 노드로 전달되는 트레이닝 데이터이고, Rrc는 오른쪽 자식 노드로 전달되는 트레이닝 데이터이다. Λ(.)는 영상의 차이 여부를 나타내는 연산자로, 예를 들어 Λ(.)의 값이 크면 대상 집단에 포함된 피쳐들이 상이함을 나타내고 Λ(.)의 값이 작으면 대상 집단에 포함된 피쳐들이 유사함을 나타낼 수 있다. 품질 함수 Qu의 값은 노드 내 외형들이 균일할수록 증가하며, 만약 노드 내 외형들이 모두 동일한 경우 1로 수렴할 수 있다. 실제 데이터 내 언레이블 데이터의 수는 실제 데이터 내 레이블 데이터의 수보다 지배적이므로, 타겟 도메인(예를 들어, 실제 데이터)을 모델링하기 위하여 언레이블 데이터를 이용하는 것은 필수적이다. 학습 동작의 속도를 향상시키기 위하여, 품질 함수 Qu는 실제 데이터 R 내 패치들을 다운-샘플링할 수 있다.
품질 함수 Q t
품질 함수 Qt는 합성 데이터와 실제 데이터 사이의 연관 관계를 보존하는 품질 함수이다. 품질 함수 Qt는, 수학식 5와 같이, 트레이닝 데이터가 결정 트리를 따라 전달될 때, 크로스-도메인 연관 관계 Ψ를 보존할 수 있다.
Figure 112013099325590-pat00013
여기서, Llc는 왼쪽 자식 노드로 전달되는 트레이닝 데이터이고, Lrc는 오른쪽 자식 노드로 전달되는 트레이닝 데이터이다. r은 실제 데이터 R에 포함된 데이터포인트이고, s는 합성 데이터 S에 포함된 데이터포인트이며, Ψ(r,s)=1은 r과 s가 서로 연관되어 있음을 지시한다. 품질 함수 Qt는 분기 노드에서 분기된 이후 보존되는 연관 관계의 비율을 평가할 수 있다.
적응적 스위칭
일 실시예에 따른 추정기 학습 방법은 노드의 순도에 따라 시점을 분류하는 품질 함수 Qa, 클래스를 분류하는 품질 함수 Qp, 및 벡터 세트를 회귀시키는 품질 함수 Qv를 계층적으로(hierarchically) 적용함으로써, 결정 트리를 생성할 수 있다. 결정 트리는 트리의 최상위 레벨에서 분류 동작을 수행할 수 있고, 결정 트리의 트레이닝 목적은 트리의 하위 레벨에서 적응적으로 회귀 동작을 수행하도록 스위치되는 것이다. 파라미터 α 및 파라미터 β는 품질 함수 Qa, 품질 함수 Qp, 및 품질 함수 Qv 중 어느 하나를 택일적으로 선택하기 위한 플래그이다. 예를 들어, 수학식 2를 참조하면, 파라미터 α=1이면 Qapv=Qa이고, 파라미터 α=0, β=1이면 Qapv=Qp이며, 파라미터 α=0, β=0이면 Qapv=Qv이다. 여기서, 파라미터 α 및 파라미터 β는 수학식 6과 같이 정해질 수 있다.
Figure 112013099325590-pat00014
여기서, Δa(L)는 레이블 데이터 L 내 가장 큰 비중을 차지하는 시점 라벨 a1과 두 번째로 큰 비중을 차지하는 시점 라벨 a2 사이의 비중 차이이다. Δp(L)는 레이블 데이터 L 내 가장 큰 비중을 차지하는 클래스 라벨 p1과 두 번째로 큰 비중을 차지하는 클래스 라벨 p2 사이의 비중 차이이다. tα 및 tβ는 미리 정해진 임계 값들로, tα 및 tβ에 따라 생성되는 결정 트리들의 구조들이 변경될 수 있다.
일 실시예에 따른 추정기 학습 방법은 Δa(L) 및 Δp(L)를 이용하여 노드의 순도(purity)를 측정할 수 있다. 예를 들어, Δa(L)의 값이 tα 보다 작은 경우, 레이블 데이터 L 내 가장 큰 비중을 차지하는 시점 라벨 a1과 두 번째로 큰 비중을 차지하는 시점 라벨 a2 사이의 비중이 비슷한 경우를 의미한다. 보다 구체적으로, 가령 레이블 데이터 L 내 가장 큰 비중을 차지하는 시점 라벨 a1의 비중이 50이고, 두 번째로 큰 비중을 차지하는 시점 라벨 a2의 비중이 48인 경우, 일 실시예에 따른 추정기 학습 방법은 노드 내 데이터포인트들은 시점과 관련된 순도가 낮다고 판단할 수 있다. 이 경우 파라미터 α=1이므로, 일 실시예에 따른 추정기 학습 방법은 품질 함수 Qa를 이용하여 시점을 분류하는 분기 노드를 생성할 수 있다.
반면, Δa(L)의 값이 tα 보다 큰 경우, 레이블 데이터 L 내 가장 큰 비중을 차지하는 시점 라벨 a1과 두 번째로 큰 비중을 차지하는 시점 라벨 a2 사이의 비중이 크게 차이 나는 경우를 의미한다. 보다 구체적으로, 가령 레이블 데이터 L 내 가장 큰 비중을 차지하는 시점 라벨 a1의 비중이 95이고, 두 번째로 큰 비중을 차지하는 시점 라벨 a2의 비중이 3인 경우, 일 실시예에 따른 추정기 학습 방법은 노드 내 데이터포인트들은 시점과 관련된 순도가 높다고 판단할 수 있다. 이 경우 파라미터 α=0이므로, 일 실시예에 따른 추정기 학습 방법은 Δp(L)의 값을 측정함으로써, 품질 함수 Qp를 이용하여 클래스를 분류하는 분기 노드를 생성할지 여부를 판단할 수 있다.
마찬가지로, Δp(L)의 값이 tβ 보다 작은 경우, 레이블 데이터 L 내 가장 큰 비중을 차지하는 클래스 라벨 p1과 두 번째로 큰 비중을 차지하는 클래스 라벨 p2 사이의 비중이 비슷한 경우를 의미한다. 보다 구체적으로, 가령 레이블 데이터 L 내 가장 큰 비중을 차지하는 클래스 라벨 p1의 비중이 50이고, 두 번째로 큰 비중을 차지하는 클래스 라벨 p2의 비중이 48인 경우, 일 실시예에 따른 추정기 학습 방법은 노드 내 데이터포인트들은 클래스와 관련된 순도가 낮다고 판단할 수 있다. 이 경우 파라미터 α=0, β=1이므로, 일 실시예에 따른 추정기 학습 방법은 품질 함수 Qp를 이용하여 클래스를 분류하는 분기 노드를 생성할 수 있다.
반면, Δp(L)의 값이 tβ 보다 큰 경우, 레이블 데이터 L 내 가장 큰 비중을 차지하는 클래스 라벨 p1과 두 번째로 큰 비중을 차지하는 클래스 라벨 p2 사이의 비중이 크게 차이 나는 경우를 의미한다. 보다 구체적으로, 가령 레이블 데이터 L 내 가장 큰 비중을 차지하는 클래스 라벨 p1의 비중이 95이고, 두 번째로 큰 비중을 차지하는 클래스 라벨 p2의 비중이 3인 경우, 일 실시예에 따른 추정기 학습 방법은 노드 내 데이터포인트들은 클래스와 관련된 순도가 높다고 판단할 수 있다. 이 경우 파라미터 α=0, β=0이므로, 일 실시예에 따른 추정기 학습 방법은 품질 함수 Qv를 이용하여 벡터 세트를 회귀시키는 분기 노드를 생성할 수 있다.
도 9를 참조하면, 일 실시예에 따른 추정기 학습 방법은 Qapv에서 이용되는 품질 함수들의 계층(hierarchical)이 뒤바뀔 수 있다. 이하, 도9의 실시예에서 tα=0.8, tβ=0.8일 수 있다. 루트 노드(910)로 입력되는 트레이닝 데이터 세트는 10개의 시점 a와 10개의 시점 b를 포함할 수 있다. 루트 노드(910)에서 시점과 관련된 노드의 순도 Δa=(10-10)/20 이고, Δa(=0.00) < tα(=0.80) 이므로 α=1이다. 이 경우, 일 실시예에 따른 추정기 학습 방법은 품질 함수 Qa를 이용하여 루트 노드(910)에서 시점을 분류하는 분기 노드를 생성할 수 있다.
루트 노드(910)에서 트레이닝 데이터 세트를 분류한 결과, 10개의 시점 a 및 1개의시점 b가 왼쪽 자식으로 전달될 수 있다. 중간 노드(920)에서 시점과 관련된 노드의 순도 Δa=(10-1)/11 이고, Δa(=0.82) > tα(=0.80) 이므로 α=0이다. 이 경우, 일 실시예에 따른 추정기 학습 방법은 품질 함수들 중 다음 번 계층에 해당하는 클래스를 분류하는 품질 함수 Qp를 이용할지 여부를 판단할 수 있다. 중간 노드(920)로 입력되는 10개의 시점 a는 9개의 클래스 α와 1개의 클래스 β를 포함하고, 1개의 시점 b는 1개의 클래스 β를 포함한다고 가정하면 중간 노드(920)로 입력되는 트레이닝 데이터 세트는 9개의 클래스 α와 2개의 클래스 β를 포함한다. 이 경우, 중간 노드(920)에서 클래스와 관련된 노드의 순도 Δp=(9-2)/11 이고, Δp(=0.64) < tβ(=0.80) 이므로 β=1이다. 일 실시예에 따른 추정기 학습 방법은 품질 함수 Qp를 이용하여 중간 노드(920)에서 클래스를 분류하는 분기 노드를 생성할 수 있다.
중간 노드(920)에서 트레이닝 데이터 세트를 분류한 결과, 9개의 클래스 α가 왼쪽 자식으로 전달되고, 2개의 클래스 β가 오른쪽 자식으로 전달될 수 있다. 다음 번 계층에 해당하는 품질 함수는 벡터 세트를 회귀시키는 품질 함수 Qv이나, 중간 노드(930)에 전달된 트레이닝 데이터 세트는 1개의 시점 a와 1개의 시점 b를 포함한다. 중간 노드(930)에서 시점과 관련된 순도 Δa=(1-1)/2 이고, Δa(=0.00) < tα(=0.80) 이므로 α=1이다. 이 경우, 중간 노드(930)에서 시점과 관련된 순도 Δa가 다시 tα보다 낮아졌으므로, 일 실시예에 따른 추정기 학습 방법은 다시 최상위 계층에 해당하는 시점을 분류하는 품질 함수 Qa를 이용하여 시점을 분류하는 분기 노드를 생성할 수 있다.
2.3. 일 실시예에 따른 데이터-유도 운동학 모델(data-driven kinematic model)
일 실시예에 따른 자세 추정 기법은 입력 영상에 노이즈가 많은 경우에도 관절식 객체의 자세를 추정할 수 있다. 일 실시예에 따른 자세 추정 기법은 자체 가려짐(self-occlusion) 현상, 예를 들어 입력 영상에 포함된 객체의 일부가 해당 객체의 다른 부위에 의하여 가려지는 현상이 있는 경우에도 관절식 객체의 자세를 추정할 수 있다. 사용자의 손의 자세를 추정하는 경우, 사용자의 신체의 자세를 추정하는 경우에 비하여 자체 가려짐 현상으로 인한 오차가 더 커질 수 있다. 양 팔과 양 다리에 비하여 다섯 손가락들은 서로 근접하게 위치하고 있어 자체 가려짐 현상이 발생될 확률이 높고, 손이 취할 수 있는 자세들은 신체가 취할 수 있는 자세들에 비하여 더 다양하기 때문에 자체 가려짐 현상이 발생되는 경우 자체 가려짐 현상으로 인한 오차가 클 수 있다.
일 실시예에 따른 자세 추정 기법은 가려짐 현상이나 노이즈로 인하여 특정 관절의 위치를 파악하기 어려운 경우에도, 의사-운동학 모델을 이용하여 해당 관절의 위치를 계산할 수 있는 기술을 제공할 수 있다. 일 실시예에 따른 추정기는 관절식 객체에 포함된 복수의 관절들 각각을 독립적인 검출 대상으로 본다. 이로 인하여, 입력되는 깊이 영상에서 특정 관절에 대한 부분에 대한 영상이 누락(missing)되거나, 특정 관절이 관절식 객체의 다른 부위에 의하여 가려지는 경우, 누락되거나 가려진 관절을 복구하는 구조적 정보가 부족할 수 있다.
일 실시예에 따른 자세 추정 기법은 추정기로부터 관절 위치를 정제하기 위하여 데이터-유도 운동학 모델을 이용할 수 있다. 일 실시예에 따른 자세 추정 기법은 대규모 자세 데이터베이스 K를 이용할 수 있다. 여기서, 대규모 자세 데이터베이스 K의 크기는 합성 데이터 S의 크기보다 지배적으로 크며, 대규모 자세 데이터베이스 K의 크기가 클수록 자세 커버리지(pose coverage)가 커질 수 있다. 대규모 자세 데이터베이스 K는 관절 좌표들(joint coordinates)을 포함할 수 있다. 합성 데이터 S에 포함된 패치들은 (a,p,v)의 투플을 포함하나, 대규모 자세 데이터베이스 K에 포함된 패치들은 관절 좌표들을 포함한다는 점에서 두 데이터 세트는 구별될 수 있다. 데이터-유도 운동학 모델
Figure 112013099325590-pat00015
를 계산하는 프로시저는 표 1과 같은 알고리즘으로 정리될 수 있다.
Figure 112013099325590-pat00016
알고리즘 1에 입력되는 입력 데이터는 대규모 자세 데이터 베이스 K이다. K는 관절 좌표들을 포함하고 있으며, 관절식 객체가 사용자의 손인 경우, 관절의 개수는 총 16개일 수 있다. 이 경우, 대규모 자세 데이터베이스 K는 R3x16의 메트릭을 가질 수 있다. 전술한 바와 같이, 광범위한 포즈 커버리지를 위하여 합성 데이트 S의 크기보다 지배적으로 큰 크기의 대규모 자세 데이터 베이스 K가 입력될 수 있다. 알고리즘 1의 출력은 관절식 객체의 자세에 대한 시점-의존적 분포(viewpoint-dependent distribution)들의 집합
Figure 112013099325590-pat00017
이다. 알고리즘 1은 대규모 자세 데이터 베이스 K를 시점 라벨 A에 따라 분할할 수 있다. 그 결과, 대규모 자세 데이터베이스 K는 {K1,...,K|A|}로 분할될 수 있고, |A|는 시점들의 총 수이다. 알고리즘 1은 각각의 시점에 대한 데이터베이스 Ki를 이용하여 N-부분 가우스 혼합 모델
Figure 112013099325590-pat00018
를 생성할 수 있다. N은 2보다 큰 정수이며,
Figure 112013099325590-pat00019
는 N개의 평균들과 N개의 분산들을 포함할 수 있다.
2.4. 일 실시예에 따른 관절 분류 및 검출(Joint Classification and Detection)
일 실시예에 따른 자세 추정 기법은 관절식 객체가 촬영된 입력 영상을 수신하고, 수신된 입력 영상으로부터 복수의 패치들을 추출할 수 있다. 일 실시예에 따른 자세 추정 기법은 추출된 복수의 패치들 각각을 추정기에 입력시킬 수 있다. 일 실시예에 따른 추정기는 결정 트리로 구성될 수 있고, 입력된 복수의 패치들 각각은 결정 트리의 루트 노드로부터 리프 노드로 전달될 수 있다. 예를 들어, 도 7을 참조하면, 입력된 복수의 패치들 중 패치(710)가 손바닥 부분에 대응되는 경우를 가정하자. 추정기에 포함된 노드들은 해당 노드의 품질 함수로 학습된 결과에 기초하여 패치(710)가 왼쪽 분기와 오른쪽 분기 중 어느 쪽으로 분기되어야 하는지 여부를 결정할 수 있다.
각각의 노드들은 결정 트리의 생성 과정에서 학습된 바에 따라, 패치(710)의 분기 방향을 결정할 수 있다. 예를 들어, 루트 노드가 품질 함수 Qapv를 사용하여 생성된 경우를 가정하자. 이 경우, 루트 노드는 노드의 순도에 따라 품질 함수 Qa, 품질 함수 Qp, 및 품질 함수 Qv 중 어느 하나를 선택하였을 것이고, 시점과 관련된 노드의 순도가 높지 않아 품질 함수 Qa가 선택될 수 있다. 이 경우, 루트 노드는 시점을 분류하는 분기 노드이다. 따라서, 루트 노드는 패치(710)를 수신하는 경우, 패치(710)의 시점에 따라 분기 방향을 결정할 수 있다.
한편, 루트 노드의 왼쪽 자식 노드는 품질 함수 Qtss를 사용하여 생성된 경우를 가정하자. 이 경우, 루트 노드의 왼쪽 자식 노드는 품질 함수 Qt와 품질 함수 Qu의 조합으로 분기 방향을 결정하는 분기 노드이다. 따라서, 루트 노드의 왼쪽 자식 노드는 패치(710)를 수신하는 경우, 합성 데이터와 실제 데이터 사이의 연관 관계 및 패치(710)의 외형에 따라 분기 방향을 결정할 수 있다.
각각의 패치들이 리프 노드까지 도달하는 경우, 알고리즘 2는 각각의 패치들이 도달된 리프 노드에 대응되는 시점 a와 벡터 세트 v를 획득할 수 있다. 알고리즘 2는 벡터 세트 v를 이용하여 각각의 패치들이 지시하는 관절 좌표들을 계산할 수 있다. 예를 들어, 패치(710)에 대응되는 벡터 세트 v는 16개의 벡터들을 포함할 수 있다. 알고리즘 2는 입력 깊이 영상 내 패치(710)의 위치를 알 수 있으므로, 패치(710)의 중심으로부터 16개의 벡터들이 지시하는 16개의 관절 위치들을 계산할 수 있다. 16개의 관절 위치들 각각은 3차원 좌표 (x,y,z)로 표현될 수 있다.
2.5. 일 실시예에 따른 운동학적 관절 정제(Kinematic Joint Refinement) 기법
일 실시예에 따른 자세 추정 기법은 운동학적 관절 정제 기법을 이용하여 최종 관절 좌표들 Y = {y1,...,yj,...,y16 | y ∈ R3} 를 계산할 수 있다. 이를 위하여, 일 실시예에 따른 자세 추정 기법은 벡터 세트들의 분포를 이용할 수 있다. 예를 들어, 도 10을 참조하면, 일 실시예에 따른 자세 추정 기법은 제1 패치(1020)를 추정기(1010)에 입력함으로써 제1 벡터 세트(1040)를 얻고, 제2 패치(1030)를 추정기(1010)에 입력함으로써 제2 벡터 세트(1050)를 얻을 수 있다.
일 실시예에 따른 자세 추정 기법은 제1 패치(1020)의 위치와 제1 벡터 세트(1040)를 이용하여 제1 패치(1020)에 포함된 16개 관절들의 3차원 좌표들(1060)을 계산할 수 있다. 일 실시예에 따른 자세 추정 기법은 제2 패치(1030)의 위치와 제2 벡터 세트(1050)를 이용하여 제2 패치(1030)에 포함된 16개 관절들의 3차원 좌표들(1070)을 계산할 수 있다.
일 실시예에 따른 자세 추정 기법은 16개의 관절들 각각에 대하여 2-부분 가우스 혼합 모델(2-part Gaussian Mixture Model, 2-part GMM)을 생성할 수 있다. 예를 들어, 일 실시예에 따른 자세 추정 기법은 j번째 관절에 대응되는 복수의 3차원 좌표들(1080)을 이용하여 j번째 2-부분 가우스 혼합 모델(1090)을 생성할 수 있다. 예를 들어, j번째 관절에 대응되는 3차원 좌표들은 2-부분 가우스 혼합 모델
Figure 112013099325590-pat00020
로 피팅(fitting)될 수 있다.
Figure 112013099325590-pat00021
,
Figure 112013099325590-pat00022
,
Figure 112013099325590-pat00023
는 각각 가우스 성분의 평균, 분산, 및 가중치이다. j번째 관절에 대응되는 복수의 3차원 좌표들이 하나의 균일한 클러스터로 군집되는 경우, 2-부분 가우스 혼합 모델에는 높은 가중치와 적은 분산을 갖는 가우스 성분이 도출될 수 있다. 반면, j번째 관절에 대응되는 복수의 3차원 좌표들이 산발적으로 흩어지는 경우, 비슷한 크기의 분산을 갖는 복수의 가우스 성분들이 도출될 수 있고, 각각의 가우스 성분들의 평균들은 상이할 수 있다.
j번째 관절에 대응되는 2-부분 가우스 혼합 모델이 신뢰도 높은(high-confident) 관절인지 여부는 j번째 관절에 대응되는 2-부분 가우스 혼합 모델에 포함된 제1 가우스 성분의 평균과 제2 가우스 성분의 평균이 임계 값 tq보다 작은지에 따라 판단될 수 있다. 수학식 7을 참조하면, 신뢰도 높은 관절의 경우, 출력되는 관절 위치 yj는 j번째 관절에 대응되는 2-부분 가우스 혼합 모델에 포함된 제1 가우스 성분과 제2 가우스 성분 중 가중치가 높은 가우스 성분의 평균으로 정해질 수 있다.
Figure 112013099325590-pat00024
여기서,
Figure 112013099325590-pat00025
는 2-부분 가우스 혼합 모델에 포함된 제1 가우스 성분의 평균과 제2 가우스 성분의 평균이 임계 값 tq보다 작은지를 판단하는 비교식이다.
Figure 112013099325590-pat00026
인 경우, 제1 가우스 성분의 가중치가 높으므로, 제1 가우스 성분의 평균인
Figure 112013099325590-pat00027
가 yj의 값으로 결정된다.
Figure 112013099325590-pat00028
인 경우, 제2 가우스 성분의 가중치가 높으므로, 제2 가우스 성분의 평균인
Figure 112013099325590-pat00029
가 yj의 값으로 결정된다.
전술한 방식에 따라, 신뢰도 높은 관절의 3차원 좌표는 결정될 수 있다. 이하, 신뢰도 낮은 관절의 3차원 좌표를 결정하는 방법을 상세히 설명한다. 일 실시예에 따른 자세 추정 기법은 알고리즘 1을 이용하여 미리 구축된 운동학 모델
Figure 112013099325590-pat00030
중 신뢰도 낮은 관절의 시점 a에 대응되는
Figure 112013099325590-pat00031
에 포함된 N개의 평균들
Figure 112013099325590-pat00032
중 신뢰도 높은 관절들의 벡터 세트들과 가장 인접한 이웃(nearest neighbor)을 검출할 수 있다. 일 실시예에 따른 자세 추정 기법은 최소 제곱 합(least square sum) 기법을 이용하여 신뢰도 높은 관절들의 벡터 세트들과 가장 인접한 이웃을 검출할 수 있다.
일 실시예에 따른 자세 추정 기법은 가장 인접한 이웃으로 검출된 가우스 성분
Figure 112013099325590-pat00033
을 이용하여 신뢰도 낮은 관절의 3차원 좌표를 계산할 수 있다. 보다 구체적으로, 일 실시예에 따른 자세 추정 기법은 수학식 8을 이용하여 신뢰도 낮은 관절 j에 대응되는 2-부분 가우스 혼합 모델에 포함된 제1 가우스 성분 및 제2 가우스 성분 중 어느 하나를 선택할 수 있다.
Figure 112013099325590-pat00034
일 실시예에 따른 자세 추정 기법은 신뢰도 낮은 관절 j의 가우스 성분
Figure 112013099325590-pat00035
으로 제1 가우스 성분
Figure 112013099325590-pat00036
과 제2 가우스 성분
Figure 112013099325590-pat00037
중 어느 하나를 선택할 수 있다. 일 실시예에 따른 자세 추정 기법은 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 평균
Figure 112013099325590-pat00038
의 j번째 원소
Figure 112013099325590-pat00039
와의 거리 차이가 더 작은 가우스 성분을 선택할 수 있다. 예를 들어, 도 11을 참조하면, 실제 사용자의 손(1110)에 포함된 16개의 관절들 중 검지 손가락의 중간 관절이 중지 손가락에 의하여 가려진다. 이 경우, 검지 손가락의 중간 관절은 신뢰도 낮은 관절로 분류될 수 있다.
신뢰도 낮은 관절인 검지 손가락의 중간 관절에 대응되는 2-부분 가우스 혼합 모델은 제1 가우스 성분과 제2 가우스 성분을 포함할 수 있다. 여기서, 제1 가우스 성분의 평균은 점(1120)이고, 제1 가우스 성분의 분산은 영역(1125)이다. 제2 가우스 성분의 평균은 점(1130)이고, 제2 가우스 성분의 분산은 영역(1135)이다. 또한, 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 평균은 점(1140)이고, 분산은 영역(1145)이다. 이 경우, 제1 가우스 성분의 평균인 점(1120)이 제2 가우스 성분의 평균인 점(1130)보다 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 평균인 점(1140)에 더 가깝다. 따라서, 일 실시예에 따른 자세 추정 기법은 제1 가우스 성분과 제2 가우스 성분 중 제1 가우스 성분을 선택할 수 있다.
나아가, 일 실시예에 따른 자세 추정 기법은 신뢰도 낮은 관절에서 선택된 가우스 성분과 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분을 이용하여 신뢰도 낮은 관절의 3차원 좌표를 계산할 수 있다. 예를 들어, 일 실시예에 따른 자세 추정 기법은 수학식 9를 이용하여 신뢰도 낮은 관절의 3차원 좌표를 계산할 수 있다.
Figure 112013099325590-pat00040
여기서,
Figure 112013099325590-pat00041
Figure 112013099325590-pat00042
는 각각 신뢰도 낮은 관절 j에서 선택된 가우스 성분의 평균과 분산이다.
Figure 112013099325590-pat00043
는 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 평균
Figure 112013099325590-pat00044
의 j번째 원소이고,
Figure 112013099325590-pat00045
는 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 분산
Figure 112013099325590-pat00046
의 j번째 원소이다. 일 실시예에 따른 자세 추정 기법은 신뢰도 낮은 관절 j에서 선택된 가우스 성분과 신뢰도 높은 관절들의 가장 인접한 이웃으로 검출된 가우스 성분의 가중 합(weighted sum)을 계산함으로써, 신뢰도 낮은 관절의 3차원 좌표 yj를 계산할 수 있다.
일 실시예에 따라 자세를 정제(refinement)하는 프로시저는 표 2와 같은 알고리즘으로 정리될 수 있다.
Figure 112013099325590-pat00047
알고리즘 2에 입력되는 입력 데이터는 입력 깊이 이미지를 추정기에 입력한 결과 도출되는 벡터 세트이다. 알고리즘 2의 출력은 관절식 객체의 자세로, 관절식 객체에 포함된 복수의 관절들의 3차원 좌표들로 출력될 수 있다. 관절식 객체가 사용자의 손인 경우, 관절의 개수는 총 16개일 수 있고, 이 경우, 알고리즘 2의 출력인 Y는 R3x16의 메트릭을 가질 수 있다.
일 실시예에 따르면, 관절식 객체의 자세는 실시간으로 추정될 수 있다. 예를 들어, 일 실시예에 따른 자세 추정 기법은 초당 수십 프레임 이상의 영상들을 처리할 수 있다. 뿐만 아니라, 일 실시예에 따른 자세 추정 기법은 프레임 단위로 자세를 추정할 수 있다. 이로 인하여, 일 실시예에 따른 자세 추정 기법은 특정 프레임에서 발생된 오류가 누적됨으로써 후속 프레임들에서 자세 추정 성능이 저하되는 것을 방지할 수 있다.
3. 일 실시예에 따른 분류 영상 및 최종 자세 영상
도 12는 일 실시예에 따라 사용자의 손의 자세를 추정한 영상을 설명하는 도면이다. 도 12를 참조하면, 일 실시예에 따른 자세 추정 기법은 실제 사용자의 손(1210)을 촬영한 깊이 영상(1220)을 수신할 수 있다. 일 실시예에 따른 자세 추정 기법은 깊이 영상(1220)을 시점과 관절로 분류함으로써 분류 영상(1230)을 획득할 수 있다. 나아가, 일 실시예에 따른 자세 추정 기법은 회귀 기법 및 자세 정제 기법을 이용하여 최종 자세 영상(1240)을 획득할 수 있다. 최종 자세 영상(1240)은 사용자의 손에 포함된 16개의 관절들의 위치 정보를 포함한다.
4. 일 실시예에 따른 추정기 학습 방법 및 자세 추정 방법의 동작
도 13은 일 실시예에 따른 추정기 학습 방법을 나타낸 동작 흐름도이다. 도 13을 참조하면, 일 실시예에 따른 추정기 학습 방법은 관절을 포함하는 객체를 합성한 합성 데이터와 객체를 촬영한 실제 데이터를 연관시키는 단계(1310) 및 합성 데이터와 실제 데이터 사이의 연관 관계에 기초하여, 객체의 자세를 추정하기 위한 추정기를 학습시키는 단계(1320)를 포함한다.
도 14는 일 실시예에 따른 자세 추정 방법을 나타낸 동작 흐름도이다. 도 14를 참조하면, 일 실시예에 따른 자세 추정 방법은 관절을 포함하는 객체를 합성한 합성 데이터와 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 단계(1410) 및 복수의 벡터 세트들을 이용하여, 입력 영상에 포함된 입력 객체의 자세를 추정하는 단계(1420)를 포함한다. 도 13 내지 도 14에 도시된 각 단계들에는 도 1 내지 도 12를 통하여 전술한 사항들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
5. 일 실시예에 따른 추정기 학습 장치 및 자세 추정 장치의 구성
도 15는 일 실시예에 따른 추정기 학습 장치 및 자세 추정 장치를 나타낸 블록도이다. 도 15를 참조하면, 일 실시예에 따른 추정기 학습 장치(1510)는 관절을 포함하는 객체를 합성한 합성 데이터와 객체를 촬영한 실제 데이터를 연관시키는 연관부(1511) 및 합성 데이터와 실제 데이터 사이의 연관 관계에 기초하여, 객체의 자세를 추정하기 위한 추정기를 학습시키는 학습부(1512)를 포함한다. 또한, 일 실시예에 따른 자세 추정 장치(1520)는 관절을 포함하는 객체를 합성한 합성 데이터와 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 획득부(1521) 및 복수의 벡터 세트들을 이용하여, 입력 영상에 포함된 입력 객체의 자세를 추정하는 추정부(1522)를 포함한다. 도 15에 도시된 각 모듈들에는 도 1 내지 도 12를 통하여 전술한 사항들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 생략한다.
6. 일 실시예에 따른 LRF를 이용한 추정기 학습 방법
도 16은 일 실시예에 따른 잠재 회귀 포레스트(Latent Regression Forest; LRF)를 이용한 추정기 학습 방법을 개관하는 도면이다. 도 16을 참조하면, 일 실시예에 따른 추정기 학습 방법은 일련의 서칭 프로세스(searching process)로 이해될 수 있다. 객체의 무게 중심에서 시작하여, 끝 관절 위치들이 위치될 때까지 각각의 레벨에서 두 개의 벡터들을 생성할 수 있다. 예를 들어, 제1 레벨(1610)에서는 손을 {검지, 중지, 약지, 새끼}의 제1 서브 그룹과 {손바닥, 엄지}의 제2 서브 그룹으로 분할할 수 있다. 이를 위하여, 제1 레벨(1610)에서는 손의 중심(1611)에서 제1 서브 그룹의 중심(1613)으로 향하는 벡터(u)와 손의 중심(1611)에서 제2 서브 그룹의 중심(1612)로 향하는 벡터(v)가 도출될 수 있다. 제2 레벨(1620)에서는 제1 레벨(1610)의 제1 서브 그룹에 대응하는 {검지, 중지, 약지, 새끼}를 {검지, 중지}의 제1-1 서브 그룹과 {약지, 새끼}의 제1-2 서브 그룹으로 분할할 수 있다. 또한, 제3 레벨(1630)에서는 제2 레벨(1620)의 제1-1 서브 그룹에 대응하는 {검지, 중지}를 {검지}의 제1-1-1 서브 그룹과 {중지}의 제1-1-2 서브 그룹으로 분할할 수 있다. 제4 레벨(1640)에서는 제3 레벨(1630)의 제1-1-1 서브 그룹에 대응하는 {검지}를 {검지의 끝 마디, 검지의 중간 마디}로 분할할 수 있다.
추정기 학습 방법은 레벨에 따라 입력 영상이 분할되도록 잠재 회귀 포레스트를 학습시킬 수 있다. 학습된 잠재 회귀 포레스트는 하나의 트리 안에 여러 특징들을 담을 수 있는 계층적 트리 구조(hierarchical tree structure)를 가진다. 계층적 트리 구조는 잠재 회귀 포레스트를 구성하는 각각의 트리를 서로 다른 특징과 역할을 하는 계층적 단계의 노드들로 구성할 수 있다. 잠재 회귀 포레스트는 잠재 트리 모델(latent tree model)에 의해 가이드(guide)되는 랜덤화된 회귀 트리일 수 있다. 잠재 트리 모델에 대한 보다 상세한 설명은 후술한다.
잠재 회귀 포레스트( Latent Regression Forest )
도 17a 내지 도 17c는 일 실시예에 따른 잠재 회귀 포레스트와 일반적인 회귀 포레스트를 비교하는 도면이다. 도 17a를 참조하면, 일 실시예에 따른 잠재 회귀 포레스트는 스플리트(split) 노드(1711), 디비전(division) 노드(1712), 및 리프(leaf) 노드(1713)로 구성되는 바이너리 트리로 정의될 수 있다. 스플리트 노드(1711)는 입력 데이터에 대한 테스트 기능을 수행하고, 왼쪽 자식 또는 오른쪽 자식으로 진행할지 여부를 결정할 수 있다. 디비전 노드(1712)는 테스트 기능을 수행하지 않는다. 대신, 디비전 노드(1712)는 스플리트 노드로부터 도착한 샘플들로부터 두 개의 분할된 샘플들을 생성한다. 리프 노드(1713)는 객체의 단일 부위에 해당하는 샘플들을 출력할 수 있다.
잠재 회귀 포레스트는 일반적인 회귀 포레스트와 달리 루트 노드에 입력된 샘플을 여러 부분들로 분할할 수 있다. 예를 들어, 루트 노드에 입력된 샘플은 미리 정해진 잠재 트리 모델에 따라 여러 부분들로 분할되고, 분할된 부분들은 병렬적으로 트리를 따라 각기 다른 리프 노드로 전파된다. 루트 노드(1710)에 입력된 샘플은 디비전 노드(1712)에서 분할되고, 분할된 부분들은 리프 노드(1713)로 전파될 수 있다. 반면, 도 17b를 참조하면, 일반적인 회귀 포레스트는 루트 노드에 입력된 샘플을 분할하지 않는다. 입력된 샘플은 전부 트리를 따라 하나의 리프 노드로 전파된다.
도 17c를 참조하면, 잠재 회귀 포레스트 내 각각의 레벨에서 에러 회귀 노드(error regression node)가 포함될 수 있다. 예를 들어, 첫 번째 레벨(1720)에서 스플리트 노드(1721), 에러 회귀 노드(1722), 및 디비전 노드(1723)가 포함될 수 있다. 또한, 두 번째 레벨(1730, 1740)에서도 스플리트 노드와 디비전 노드 사이에 에러 회귀 노드(1731, 1741)가 포함될 수 있다. 잠재 회귀 포레스트의 계층 구조의 이점은 효율성이다. 그러나 각각의 레벨의 결과는 이전 레벨에 의존하기 때문에, 리프 노드에 도착할 때 오류는 심각하게 축적될 수 있다. 각 레이어에 내장되는 오류 회귀 노드는 오류가 축적되는 것을 방지할 수 있다. 또한, 추정기 학습 방법은 에러 회귀 노드를 사용함으로써, 추정기 학습에 요구되는 트레이닝 데이터 세트의 양을 감소시킬 수 있다. 에러 회귀 노드와 관련된 보다 상세한 설명은 후술한다.
이하, 잠재 트리 모델을 간략히 설명하고, 잠재 트리 모델을 이용한 손 구조 모델링 결과를 설명한다. 이어서, 학습된 잠재 트리 모델을 회귀 포레스트에 내재함으로써 잠재 회귀 포레스트를 생성하는 방법을 상세히 설명한다.
잠재 트리 모델( Latent Tree Model )
도 18은 일 실시예에 따른 잠재 트리 모델을 설명하는 도면이다. 도 18을 참조하면, 일 실시예에 따른 잠재 트리 모델(1800)은 손의 각 부위들을 리프 노드들에 포함하는 형태로 적응적으로 생성될 수 있다. 일 예로, 손은 총 16개의 부위들로 분류될 수 있다. 총 16개의 부위들은 다섯 손가락 각각의 세 마디들 및 손바닥으로 구성될 수 있다. 잠재 트리 모델(1800)은 루트 노드, 잠재 노드(latent node), 관측 노드(observation node)를 포함할 수 있다. 여기서, 관측 노드는 객체의 실제 관측 가능한 부위에 대응하는 노드로, 잠재 트리 모델(1800)의 리프 노드들은 모두 관측 노드일 수 있다. 또한, 잠재 노드는 둘 이상의 부위들의 묶음에 대응하는 노드로, 잠재 트리 모델(1800)의 중간 노드들은 모두 잠재 노드일 수 있다. 예를 들어, 잠재 노드(1810)은 {손바닥, 엄지}에 대응하는 노드이고, 잠재 노드(1820)은 {엄지 끝 마디, 엄지 중간 마디, 엄지 루트 마디}에 대응하는 노드일 수 있다. 도 18에서 원형 노드들은 관측 노드들이고, 사각 노드들은 잠재 노드들이다. 잠재 트리 모델(1800)이 잠재 회귀 포레스트의 계층 구성에 적용됨으로써, 잠재 회귀 포레스트는 학습 데이터의 특성에 최적화된 트리 구조를 가질 수 있다.
잠재 트리 모델( Latent Tree Model )의 생성
실시예에 따르면, 데이터로부터 직접 학습된 잠재 구조를 이용하여 잠재 트리 모델(1800)이 생성될 수 있다. 관찰 가능한 데이터를 구성하는 변수들 간의 관계를 무방향 그래프 모델을 이용하여 트리 구조로 표현함으로써, 관측 노드들에 대응하는 리프 노드들이 생성될 수 있다. 이 때, 정확한 관계 표현을 위해 필요에 따라 잠재 변수들이 자동으로 생성됨으로써, 잠재 노드들에 대응하는 중간 노드들이 생성될 수 있다. 일 예로, 실제 취득한 손의 16 부분들(손바닥, 엄지 등)의 위치 정보 데이터를 이용하여 잠재 트리 모델이 생성될 수 있다. 손을 구성하는 16개의 부위들의 상대적인 유클리디안 거리 값을 이용하여 각 관측 노드들의 거리 매트릭스를 구성할 수 있다. 자동으로 생성된 잠재 트리 모델은 손의 구조적 특징(structural feature) 및 역학적 제약(kinematic constraint)을 포함할 수 있다.
잠재 트리 모델은 잠재 변수들을 포함하는 트리 구조의 그래픽 모델이다. 잠재 트리 모델 T = (V = O ∪ H, E)로 모델링될 수 있다. 여기서, O는 관측 노드들을 나타내고, H는 숨겨진 노드들을 나타낸다. 관측 노드들은 싱글(single) 노드인 리프 노드들일 수 있고, 숨겨진 노드들은 합성(compositional) 노드인 중간 노드들일 수 있다. 또한, E는 에지(edge)를 나타낸다. 잠재 트리 모델에서, 관측 노드들은 모두 리프 노드에 위치할 수 있다. 관측 노드들은 잠재 트리 모델의 최종 출력일 수 있다. 또한, 잠재 트리 모델은 바이너리 트리일 수 있다. 잠재 트리 모델이 바이너리 트리인 경우, 바이너리 구조의 랜덤 포레스트와 자연스럽게 통합될 수 있다. 또한, 잠재 트리 모델이 바이너리 트리인 경우, 각각의 레벨에서 최적화 대상이 단순화될 수 있다. 도 19를 참조하면, 바이너리 잠재 트리 모델은 원형 트리 레이아웃으로 표현될 수 있다. 도 19에서 실선으로 표시된 노드들은 관측 노드들이고, 점선으로 표시된 노드들은 잠재 노드들일 수 있다.
바이너리 잠재 트리 모델은 생물학에서 계통수(phylogenetic tree)를 생성하기 위한 알고리즘에 기초하여 생성될 수 있다. 종들 사이의 쌍별(pairwise) 거리 매트릭스가 주어지는 경우, 계통수를 생성하기 위한 알고리즘은 종들 사이의 조상 관계를 묘사하는 트리를 생성할 수 있다. 트리 레이아웃 알고리즘은 결과 계통을 표시할 수 있다.
실시예에 따르면, 바이너리 잠재 트리 모델의 생성을 위하여, 16개의 손 부위들의 쌍별 유클리드 거리 매트릭스 d가 이용될 수 있다. 거리 매트릭스 d에 기초하여, 트리 시점(view)에서 브랜치(branch)들과 서브-브랜치(sub-branch)들을 통해 16개의 손 부위들 사이의 유사한 정도(degree of similarity)들 또는 유사한 레벨(level of similarity)들이 추론될 수 있다.
바이너리 잠재 트리 모델의 생성을 위하여, 거리 매트릭스 d에 따라 관측 노드들 V의 세트로부터 최소 스패닝 트리(minimum spanning tree) MST(V;d)가 구성될 수 있다. 또한, MST(V;d) 내 모든 내부 노드들의 폐쇄 이웃(closed neighborhood)들을 이용하여 잠재 서브 트리를 재구성하기 위하여 이웃 조인(neighbor join; NJ) 기법이 적용될 수 있다. 보다 구체적으로, 표 3의 단계들을 통해 바이너리 잠재 트리 모델이 학습될 수 있다.
1. 최소 스패닝 트리 T = MST(V;d)를 구성
2. MST(V;d) 내 내부 노드들의 세트를 식별
3. 각각의 내부 노드 i에 대하여, nbd[i;T]는 T에 포함된 폐쇄 이웃으로 설정하고, S = NJ(nbd[i;T];d)는 nbd[i;T]에 대한 NJ의 출력으로 설정
4. T 내 nbd[i;T]에서 서브 트리를 S로 대체한 뒤, 새로운 트리를 T로 설정
5. 모든 내부 노드들이 온(ON)으로 동작될 때까지 3단계와 4단계를 반복
잠재 회귀 포레스트의 트레이닝( Training )
도 20은 일 실시예에 따른 잠재 회귀 포레스트를 트레이닝하는 방법을 설명하는 도면이다. 도 20을 참조하면, 일 실시예에 따른 잠재 트리 모델(2010)은 도 18의 잠재 트리 모델(1800)을 간략하게 도시한 도면이다. 잠재 트리 모델(2010)은 도 18의 잠재 트리 모델(1800)에 포함된 복수의 잠재 노드들 및 복수의 리프 노드들을 그대로 포함할 수 있다. 일 실시예에 따른 잠재 회귀 포레스트(2020)는 잠재 트리 모델(2010)에 의해 가이드되면서, 폭 우선(breadth-first) 방식으로 생성될 수 있다. 예를 들어, 잠재 회귀 포레스트(2020)의 전체 구조는 잠재 트리 모델(2010)의 계층적 트리 구조와 실질적으로 동일할 수 있다. 이 때, 잠재 회귀 포레스트(2020)는 잠재 트리 모델(2010)의 잠재 노드들에 대응하는 섹션들을 포함할 수 있다. 잠재 트리 모델(2010)의 잠재 노드에서 두 자식들로 분기하는 (u, v) 벡터 페어는 잠재 회귀 포레스트(2020)의 대응 섹션에 의해 구현될 수 있다. 잠재 회귀 포레스트(2020)에 포함된 복수의 섹션들은 후술하는 트레이닝 과정을 거쳐 생성될 수 있다.
일 실시예에 따르면, 잠재 포레스트(2020)에 포함된 복수의 섹션들 각각은 스플리트 노드와 디비전 노드로 구성될 수 있다. 예를 들어, 잠재 포레스트(2020)의 제1 섹션(2021)은 스플리트 노드(2022)와 디비전 노드(2024)를 포함할 수 있다. 여기서, 잠재 포레스트(2020)의 제1 섹션(2021)은 루트 노드의 바로 아래 위치하는 섹션으로, 잠재 트리 모델(2010)에서 루트 노드 바로 아래 위치하는 잠재 노드(2011)에 대응할 수 있다. 잠재 포레스트(2020)에 포함된 복수의 섹션들은 표 4의 알고리즘에 따라 트레이닝될 수 있다.
Figure 112013099325590-pat00048

Figure 112013099325590-pat00049

Figure 112013099325590-pat00050
우선, 트레이닝 데이터 세트인 X와 잠재 트리 모델 M이 알고리즘의 입력으로 이용된다. 알고리즘의 출력은 잠재 회귀 트리 T이다. 실시예들에 따른 잠재 회귀 포레스트는 복수의 잠재 회귀 트리들을 포함하는 포레스트 자료 구조일 수 있다.
표 4의 1 단계에서, X에 포함된 각각의 샘플 xj의 중심 cj가 계산된다. 잠재 트리 모델은 중심점을 기준으로 데이터를 분할하므로, 1 단계에서 샘플들의 중심들을 먼저 계산한다. 표 4의 2 단계에서 각각의 중심 cj를 기초로 투-픽셀 테스트 φ의 세트를 선정할 수 있다. 예를 들어, 샘플 xj의 중심 cj에 대한 투-픽셀 테스트 φj는 (uj, vj) 벡터 페어일 수 있다. 투-픽셀 테스트 φ는 중심 cj로부터 서로 다른 방향을 향하는 두 개의 벡터들이 랜덤하게 선택됨으로써 생성될 수 있다. 표 4의 3 단계에서, 각각의 투-픽셀 테스트 φ에 의해 X가 두 개의 서브 세트로 파티션될 수 있다. 예를 들어, 샘플 xj는 중심 cj을 기준으로, 벡터 uj 방향의 제1 서브 세트와 벡터 vj 방향의 제2 서브 세트로 파티션될 수 있다. 이하, Xl은 제1 서브 세트들의 집합을 나타내고, Xr은 제2 서브 세트들의 집합을 나타낼 수 있다. 표 4의 4 단계에서, 투-픽셀 테스트 φ의 세트에서 최적 투-픽셀 테스트
Figure 112013099325590-pat00051
가 선택될 수 있다. 4 단계에 기재된 수식을 통해, 각각의 서브 세트 내에서 벡터 u와 벡터 v의 분산의 합인 인트라-서브 세트 분산(intra-subset variance)을 최소로 만드는 최적 투-픽셀 테스트
Figure 112013099325590-pat00052
가 선택될 수 있다. 표 4의 5 단계에서, 최적 투-픽셀 테스트
Figure 112013099325590-pat00053
에 의한 인트라-서브 세트 분산이 미리 정해진 임계값보다 작은 값을 가지는지를 검사할 수 있다. 최적 투-픽셀 테스트
Figure 112013099325590-pat00054
에 의한 인트라-서브 세트 분산이 미리 정해진 임계값보다 크거나 같은 경우, 2 단계 내지 4 단계가 반복될 수 있다. 표 4의 6 단계에서 디비전 노드가 생성될 수 있다. 디비전 노드는 X를 Xl과 Xr로 분할한다.
표 4의 7 단계에서 전술한 2 단계 내지 6 단계가 반복될 수 있다. 2 단계 내지 6 단계가 한 번 반복될 때마다 잠재 회귀 포레스트(2020)에 포함된 하나의 섹션이 생성될 수 있다. 잠재 회귀 포레스트(2020)의 리프 노드는 최종 노드로, 더 이상 입력 데이터를 분기하지 않는다. 따라서, 7 단계에서 잠재 트리 모델(2010)의 계층적 구조에 따라 리프 노드에 도달하는 경우, 더 이상 분기 노드를 생성하지 않는다.
에러 회귀 노드( Error Regression node )
일반적으로 랜덤 포레스트의 학습이 진행되는 동안에는 트레이닝 데이터 세트에 변화되지 않는다. 예를 들어, 1000개의 트레이닝 데이터 세트를 이용하여 랜덤 포레스트에 포함된 트리를 학습하는 경우, 트리의 모든 깊이에 걸쳐서 1000개의 데이터 모두가 이용된다.
일 실시예에 따른 에러 회귀 노드를 이용하는 잠재 회귀 포레스트의 경우, 트리의 깊이가 깊어질수록 학습에 이용되는 데이터의 개수를 증가시키면서 에러를 보정할 수 있다. 예를 들어, 기 학습된 잠재 트리 모델의 깊이를 K(예를 들어, K=10)라고 하면, 잠재 회귀 포레스트의 학습을 위해 사용되는 1000개의 데이터를 포함하는 트레이닝 데이터 세트를 K개의 서브 세트들로 나눌 수 있다. 이 때, 각 세트당 100개의 데이터를 포함할 수 있다.
잠재 회귀 포레스트의 계층 구조에서 첫 번째 섹션은 100개의 데이터 세트를 이용하여 학습될 수 있다. 잠재 회귀 포레스트의 계층 구조에서 그 아래 단계의 섹션은 다른 100개의 데이터 세트를 추가로 이용함으로써, 이전 섹션의 학습 결과의 에러를 보정하면서 학습될 수 있다. 이로 인하여, 잠재 회귀 포레스트를 학습하는 데 필요한 비교 연산의 수가 크게 감소되고, 연산 효율성이 향상될 수 있다.
일 실시예에 따르면, 잠재 회귀 포레스트(2020)에 포함된 복수의 섹션들 각각은 스플리트 노드, 오류 회귀 노드, 및 디비전 노드로 구성될 수 있다. 예를 들어, 잠재 포레스트(2020)의 제1 섹션은 스플리트 노드(2022), 오류 회귀 노드(2023), 및 디비전 노드(2024)를 포함할 수 있다. 잠재 회귀 포레스트(2020)에 포함된 복수의 섹션들은 표 5의 알고리즘에 따라 트레이닝될 수 있다.
Figure 112013099325590-pat00055

Figure 112013099325590-pat00056

Figure 112013099325590-pat00057

Figure 112013099325590-pat00058
여기서, 트레이닝 데이터 세트는 (n,d,u,v)의 투플들 세트로 구성될 수 있다. n은 샘플이 속하는 잠재 트리 노드를 지시하고, d는 깊이 패치(depth patch)이며, u와 v는 두 자식들의 중심을 향하는 벡터들이다.
잠재 회귀 포레스트(2020)의 각 섹션들을 위한 트레이닝은 크게 세 단계로 구분될 수 있다. 우선, 표 5의 2 단계 내지 6 단계을 통해 스플리트 노드에 대한 정지 기준을 만족할 때까지 스플리트 노드를 위한 트리가 생성된다. 또한, 표 5의 7 단계 내지 11 단계를 통해 에러 회귀 노드에 대한 정지 기준을 만족할 때까지 에러 회귀 노드를 위한 트리가 생성된다. 마지막으로, 표 5의 12 단계를 통해 디비전 노드가 생성된다. 하나의 섹션에 대하여 스플리트 노드, 에러 회귀 노드, 및 디비전 노드가 생성되면, 다음 섹션에 대하여 유사한 과정을 반복할 수 있다. 모든 섹션들에 대하여 스플리트 노드, 에러 회귀 노드, 및 디비전 노드가 생성되면, 잠재 회귀 포레스트의 생성이 종결될 수 있다.
표 5의 1 단계에서, 잠재 트리 모델의 깊이가 K인 경우, 트레이닝 데이터 세트 X가 K개의 서브 세트들로 분할될 수 있다. 일 예로, 첫 번째 레벨의 스플리트 노드는 첫 번째 서브 세트를 이용하여 생성될 수 있다. 첫 번째 레벨의 오류 회귀 노드는 두 번째 서브 세트를 이용하여 생성될 수 있다. 이 경우, 두 번째 레벨의 스플리트 노드는 두 번째 서브 세트를 이용하여 생성되고, 두 번째 레벨의 오류 회귀 노드는 세 번째 서브 세트를 이용하여 생성될 수 있다. 마찬가지로, K-1 번째 레벨의 스플리트 노드는 K-1 번째 서브 세트를 이용하여 생성되고, K-1 번째 레벨의 오류 회귀 노드는 K 번째 서브 세트를 이용하여 생성될 수 있다. 잠재 트리 모델의 깊이가 K이므로, K 번째 레벨에는 리프 노드들이 위치한다.
표 5의 2 단계에서, i 번째 서브 세트 Xi에 포함되는 각각의 샘플 xj의 중심 cj이 계산될 수 있다. 표 5의 3 단계에서, cj에 대한 투-픽셀 테스트 φ의 세트가 랜덤하게 생성될 수 있다. 투-픽셀 테스트 φ는 벡터 페어 (u,v)를 포함할 수 있다. 표 5의 4 단계에서, 각각의 투-픽셀 테스트 φ에 의해, i 번째 서브 세트 Xi가 왼쪽 서브 세트 및 오른쪽 서브 세트로 파티션 될 수 있다. 표 5의 5 단계에서, 인트라-서브 세트 분산(intra-subset variance)을 최소로 만드는 최적 투-픽셀 테스트
Figure 112013099325590-pat00059
, 및 최적 투-픽셀 테스트
Figure 112013099325590-pat00060
에 의한 파티션 결과가 검출될 수 있다. 표 5의 6 단계에서, 벡터 u의 분산과 벡터 v의 분산의 합이 기 설정된 임계값 τ 보다 작을 때까지 3 단계 내지 5 단계가 반복될 수 있다. 6 단계가 완료되면, i 번째 섹션에 대한 스플리트 노드의 생성이 완료될 수 있다.
표 5의 7 단계에서, i+1 번째 서브 세트 Xi +1가 레이어를 따라 엔드 노드로 전달될 수 있다. 엔드 노드에서 예측된 중심(predicted centre)과 실측(ground-truth) 사이의 오류가 두 개의 에러 오프셋 벡터들 α 및 β에 의해 측정될 수 있다. 예측된 중심은 스플리트 노드의 (u, v)에 의하여 분할된 Xi의 제1 파티션의 중심 및 제2 파티션의 중심일 수 있다. 실측은 스플리트 노드의 (u, v)에 의하여 분할된 Xi +1의 제1 파티션의 중심 및 제2 파티션의 중심일 수 있다. 에러 오프셋 벡터 α 는 제1 파티션의 중심 사이의 차이를 지시하고, 에러 오프셋 벡터 β 는 제2 파티션의 중심 사이의 차이를 지시할 수 있다.
표 5의 8 단계 내지 11 단계는 표 5의 3 단계 내지 6 단계와 유사하다. 8 단계 내지 11 단계는 (u, v)의 φ를 이용하는 대신, (α, β)의 φ를 이용한다. 10 단계에서, (α, β)의 오류 분산(error variation)이 최소가 되는 최적 투-픽셀 테스트
Figure 112013099325590-pat00061
가 검출될 수 있다. 11 단계가 완료되면, i 번째 섹션에 대한 오류 회귀 노드의 생성이 완료될 수 있다.
표 5의 12 단계에서, 스플리트 노드 및 오류 회귀 노드를 통한 데이터 분할 결과에 기초하여 i 번째 섹션에 대한 디비전 노드의 생성이 완료될 수 있다. 예를 들어, 스플리트 노드에 의한 (u, v) 및 오류 회귀 노드에 의한 (α, β)의 조합에 따라 (α + u, β + v)의 벡터 페어가 생성될 수 있다. 생성된 벡터 페어는 디비전 노드의 두 자식들의 중심들을 향할 수 있다. 표 5의 13 단계에서, 나머지 섹션들에 대하여 3 단계 내지 12 단계를 반복함으로써, 잠재 회귀 포레스트(2020)의 생성이 완료될 수 있다.
잠재 트리 모델 및 잠재 회귀 포레스트로 인한 기술적 효과들
잠재 트리 모델을 이용하여 손 부위의 위상(topology) 구조가 모델링 될 수 있다. 손의 구조 및 역학적 제약이 잠재 회귀 포레스트에 내재될 수 있다. 잠재 회귀 포레스트는 레이블된 실측 데이터 세트만으로 트레이닝될 수 있다. 레이블된 실측 데이터 세트는 생성하기 쉬우면서 더 정확하다. 연산 효율성이 향상되면서 잠재 회귀 포레스트가 더 많은 트리들로 구성될 수 있으며, 이로 인하여 잠재 회귀 포레스트의 예측 성능이 향상될 수 있다.
또한, 잠재 회귀 포레스트를 이용한 추정기는 입력된 픽셀들 각각을 독립적으로 분류함으로써 관절 위치를 추정하는 대신, 잠재 트리 모델에 따라 입력된 픽셀들의 무게 중심으로부터 모든 관절들의 위치를 추정할 수 있다. 손가락들은 형태와 크기가 유사하므로, 역학적 제약조건은 손가락 자세를 추정하는 데 중요한 역할을 한다. 또한, 현재 모션 캡쳐 기술의 해상도 상에서 정확한 픽셀 단위 실측 레이블링은 구현되기 어렵다. 실측 손 자세 데이터 세트를 생성하기 위하여 손 부위 각각의 중심만을 레이블링하는 것이 바람직하다.
또한, 추정기 학습 방법은 잠재 트리 모델을 트레이닝 개입(training intervention)없이 랜덤 포레스트에 통합시킬 수 있다. 그 결과, 랜덤 포레스트는 자연스럽게 시각 카테고리 문제를 처리할 수 있다. 나아가, 잠재 트리 모델에 내재된 컨텍스트 정보는 후속 레이어의 정확도를 향상시키는 데 도움을 줄 수 있다.
또한, 추정기 학습 방법은 암시적 운동학(implicit kinematics)을 이용할 수 있다. 위상 손 부분 구조(topological hand part structure)는 잠재 트리 모델에 의해 적응적으로 생성될 수 있다. 잠재 트리 모델은 손 부분들의 유연한 문맥적 정보 및 암시적 역학적 제약조건을 함께 인코딩할 수 있다.
또한, 추정기 학습 방법은 코어스-투-파인(coarse-to-fine) 멀티 레이어 구조를 이용함으로써, 랜덤 포레스트를 트레이닝하는 연산의 효율성을 향상시킬 수 있다. 잠재 트리 모델은 스켈레톤을 트리 구조로 사용할 수 있다. 잠재 트리 모델은 관측된 변수들로부터 직접 학습될 수 있다. 잠재 트리 모델에 의하여 관측 결과 내 관절의 분포가 유추될 수 있다. 잠재 변수(latent variable)들은 필요할 때에만 이용될 수 있다.
또한, 추정기 학습 방법은 서로 다른 레벨의 정보를 하나의 포레스트에 인코딩할 수 있다. 추정기 학습 방법은 단순화된 각각의 레벨에서 최적화해야 하는 타겟을 최소화할 수 있다. 추정기 학습 방법은 데이터 유도 방식에 따라 자동으로 계층적 구조를 학습할 수 있다. 실시예들에 따르면 자연스레 오류 회귀 기법이 연속적으로 통합되므로, 보다 정확한 추정기가 학습될 수 있다.
또한, 손의 구조 역학적 특징 데이터에 기반하여 잠재 트리 모델을 모델링하고, 이를 학습 단계에서 함께 고려하여 학습하므로, 별도의 후처리(post-processing)가 요구되지 않는다. 보다 구체적으로, 분류 또는 회귀 결과에 손의 구조적 특징과 역학적 제약을 고려하기 위한 별도의 후처리 모듈을 필요로 하지 않는다. 이에 따라, 적은 트레이닝 데이터를 이용하여 깊이가 깊은 추정기가 효율적으로 생성될 수 있다.
잠재 회귀 포레스트를 이용한 자세 추정 결과
도 21은 일 실시예에 따른 잠재 회귀 포레스트를 이용한 자세 추정 결과를 도시한 도면이다. 도 21을 참조하면, 전면 시점(frontal view)에서 다양한 손의 자세에 대한 각 부위들의 위치가 정확히 추정된다. 도 21은 실측 데이터 세트를 이용한 자세 추정 결과 중 일부만을 예시적으로 도시한 것이며, 실측 데이터 세트는 다양한 시점(view), 자세(pose), 스케일(scale), 및 형상(shape)으로 구분될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (40)

  1. 관절을 포함하는 객체를 합성한 합성 데이터(synthetic data)와 상기 객체를 촬영한 실제 데이터(real data)를 연관(association)시키는 단계; 및
    상기 합성 데이터와 상기 실제 데이터 사이의 연관 관계에 기초하여, 상기 객체의 자세를 추정하기 위한 추정기(estimator)를 학습(learning)시키는 단계
    를 포함하고,
    상기 학습시키는 단계는
    상기 연관 관계에 있는 합성 데이터 및 실제 데이터를 동일한 방향으로 분기하는 노드를 생성하는 단계; 및
    상기 노드를 이용하여 결정 트리를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 연관시키는 단계는
    상기 합성 데이터에 포함된 제1 데이터포인트에 대응되는 관절의 위치와 상기 실제 데이터에 포함된 제2 데이터포인트에 대응되는 관절의 위치를 비교하는 단계; 및
    상기 관절의 위치들이 매칭되는 경우 상기 제1 데이터포인트와 상기 제2 데이터포인트가 연관된다고 판단하는 단계
    를 포함하는 추정기 학습 방법.
  4. 제3항에 있어서,
    상기 합성 데이터는 상기 객체의 관절과 관련된 정보를 포함하는 레이블 데이터를 포함하고, 상기 실제 데이터는 상기 레이블 데이터 및 상기 레이블 데이터와 구별되는 언레이블 데이터를 포함하며, 상기 제1 데이터포인트와 상기 제2 데이터포인트는 상기 레이블 데이터에 포함되는 추정기 학습 방법.
  5. 제1항에 있어서,
    상기 학습시키는 단계는
    데이터포인트들에 대응되는 외형들이 서로 유사한지 여부를 지시하는 외형 유사도(appearance similarity) 및 상기 연관 관계에 기초하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및
    상기 노드를 이용하여 결정 트리를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  6. 제5항에 있어서,
    상기 실제 데이터는 상기 객체의 관절과 관련된 정보를 포함하는 레이블 데이터 및 상기 레이블 데이터와 구별되는 언레이블 데이터를 포함하며, 상기 데이터포인트들은 상기 레이블 데이터 및 상기 언레이블 데이터 중 어느 하나에 포함되는 추정기 학습 방법.
  7. 제5항에 있어서,
    상기 노드를 생성하는 단계는
    상기 외형 유사도 및 상기 연관 관계 사이의 상대적 가중치를 결정하는 단계
    를 포함하는 추정기 학습 방법.
  8. 제1항에 있어서,
    상기 학습시키는 단계는
    제1 데이터포인트들 사이의 외형 유사도 및 상기 연관 관계를 이용하는 제1 평가 함수와 제2 데이터포인트들 사이의 시점 유사도(view similarity), 상기 제2 데이터포인트들 사이의 클래스 유사도(class similarity), 및 상기 제2 데이터포인트들 사이의 벡터 유사도(vector similarity)를 이용하는 제2 평가 함수 중 하나를 랜덤하게 선택하는 단계;
    상기 선택된 평가 함수를 이용하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및
    상기 노드를 이용하여 결정 트리를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  9. 제8항에 있어서,
    상기 외형 유사도는 상기 제1 데이터포인트들에 대응되는 외형들이 서로 유사한지 여부를 지시하고, 상기 시점 유사도는 상기 제2 데이터포인트들에 대응되는 시점들이 서로 유사한지 여부를 지시하며, 상기 클래스 유사도는 상기 제2 데이터포인트들에 대응되는 클래스들이 서로 유사한지 여부를 지시하고, 상기 벡터 유사도는 상기 제2 데이터포인트들에 대응되는 기준점들로부터 상기 객체에 포함된 복수의 관절들로 향하는 벡터 집합들이 서로 유사한지 여부를 지시하는 추정기 학습 방법.
  10. 제8항에 있어서,
    상기 합성 데이터는 상기 객체의 관절과 관련된 정보를 포함하는 레이블 데이터를 포함하고, 상기 실제 데이터는 상기 레이블 데이터 및 상기 레이블 데이터와 구별되는 언레이블 데이터를 포함하며, 상기 제1 데이터포인트들은 상기 실제 데이터에 포함되고, 상기 제2 데이터포인트들은 상기 레이블 데이터에 포함되는 추정기 학습 방법.
  11. 제8항에 있어서,
    상기 제2 평가 함수가 선택되는 경우, 상기 노드를 생성하는 단계는
    상기 노드의 순도(purity)에 따라 상기 시점 유사도, 상기 클래스 유사도, 및 상기 벡터 유사도 중 어느 하나를 택일적으로 선택하는 단계
    를 포함하는 추정기 학습 방법.
  12. 제11항에 있어서,
    상기 택일적으로 선택하는 단계는
    상기 노드에 입력되는 데이터에 가장 많이 포함된 시점의 비중과 두 번째로 많이 포함된 시점의 비중 사이의 차이가 제1 임계 값보다 작은 경우 상기 시점 유사도를 선택하는 제1 플래그(flag)를 활성화시키는 단계;
    상기 노드에 입력되는 데이터에 가장 많이 포함된 클래스의 비중과 두 번째로 많이 포함된 클래스의 비중 사이의 차이가 제2 임계 값보다 작은 경우 상기 클래스 유사도를 선택하는 제2 플래그를 활성화시키는 단계; 및
    상기 제1 플래그가 활성화되는 경우 상기 시점 유사도를 선택하고, 상기 제1 플래그가 비활성화되고 상기 제2 플래그가 활성화되는 경우 상기 클래스 유사도를 선택하며, 상기 제1 플래그와 상기 제2 플래그가 비활성화되는 경우 상기 벡터 유사도를 선택하는 단계
    를 포함하는 추정기 학습 방법.
  13. 제1항에 있어서,
    상기 학습시키는 단계는
    상기 연관 관계, 상기 합성 데이터 및 상기 실제 데이터 중 어느 하나에 포함되는 데이터포인트들 사이의 외형 유사도, 상기 데이터포인트들 사이의 시점 유사도, 상기 데이터포인트들 사이의 클래스 유사도, 및 상기 데이터포인트들 사이의 벡터 유사도 중 하나를 랜덤하게 선택하는 단계;
    상기 선택된 기준에 기초하여 상기 추정기에 입력되는 입력 데이터의 분기 방향을 결정하는 노드를 생성하는 단계; 및
    상기 노드를 이용하여 결정 트리를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  14. 제1항에 있어서,
    상기 합성 데이터 및 상기 실제 데이터는 깊이 영상(depth image) 데이터를 포함하는 추정기 학습 방법.
  15. 제1항에 있어서,
    상기 객체는 사용자의 손을 포함하는 추정기 학습 방법.
  16. 제1항에 있어서,
    상기 추정기는 랜덤 포레스트(random forest) 기법을 이용하는 추정기를 포함하는 추정기 학습 방법.
  17. 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 단계; 및
    상기 복수의 벡터 세트들을 이용하여 상기 입력 영상에 포함된 입력 객체에 포함된 복수의 관절들에 대응하는 복수의 혼합 모델들을 생성함으로써, 상기 입력 객체의 자세를 추정하는 단계
    를 포함하는 자세 추정 방법.
  18. 제17항에 있어서,
    상기 복수의 벡터 세트들 각각은 상기 입력 객체에 포함된 복수의 관절들을 가리키는 복수의 벡터들을 포함하는 자세 추정 방법.
  19. 제17항에 있어서,
    상기 입력 객체의 자세를 추정하는 단계는
    상기 복수의 벡터 세트들에 기초하여, 상기 입력 객체에 포함된 복수의 관절들에 대응하는 복수의 2-부분 가우스 혼합 모델(2-part Gaussian Mixture Model)들을 생성하는 단계; 및
    상기 복수의 2-부분 가우스 혼합 모델들을 이용하여 상기 입력 객체에 포함된 복수의 관절들의 3차원 좌표들을 산출하는 단계
    를 포함하는 자세 추정 방법.
  20. 제19항에 있어서,
    상기 복수의 관절들의 3차원 좌표들을 산출하는 단계는
    상기 복수의 2-부분 가우스 혼합 모델들 각각에 포함된 제1 가우스 성분(Gaussian component)의 평균 값과 제2 가우스 성분의 평균 값을 비교하는 단계;
    상기 복수의 2-부분 가우스 혼합 모델들 중 제1 가우스 성분의 평균 값과 제2 가우스 성분의 평균 값 사이의 차이가 임계 값보다 작은 2-부분 가우스 혼합 모델을 검출하는 단계; 및
    상기 검출된 2-부분 가우스 혼합 모델에 포함된 제1 가우스 성분 및 제2 가우스 성분 중 더 큰 가중치를 가지는 가우스 성분의 평균 값을 이용하여 상기 검출된 2-부분 가우스 혼합 모델에 대응되는 관절의 3차원 좌표를 산출하는 단계
    를 포함하는 자세 추정 방법.
  21. 제19항에 있어서,
    상기 복수의 관절들의 3차원 좌표들을 산출하는 단계는
    상기 복수의 2-부분 가우스 혼합 모델들 각각에 포함된 제1 가우스 성분의 평균 값과 제2 가우스 성분의 평균 값을 비교하는 단계;
    상기 복수의 2-부분 가우스 혼합 모델들 중 제1 가우스 성분의 평균 값과 제2 가우스 성분의 평균 값 사이의 차이가 임계 값보다 작은 제1 가우스 혼합 모델들을 검출하는 단계;
    상기 평균 값 사이의 차이가 상기 임계 값 이상인 제2 가우스 혼합 모델을 검출하는 단계;
    상기 제2 가우스 혼합 모델의 시점에 대응되는 N-부분 가우스 혼합 모델에 포함된 N개의 가우스 성분들-상기 N은 2보다 큰 정수임- 중 상기 제1 가우스 혼합 모델들과 가장 인접한 가우스 성분을 검출하는 단계;
    상기 가장 인접한 가우스 성분을 이용하여, 상기 제2 가우스 혼합 모델에 포함된 제1 가우스 성분 및 제2 가우스 성분 중 어느 하나의 가우스 성분을 선택하는 단계; 및
    상기 가장 인접한 가우스 성분과 상기 선택된 어느 하나의 가우스 성분을 이용하여 상기 제2 가우스 혼합 모델에 대응되는 관절의 3차원 좌표를 산출하는 단계
    를 포함하는 자세 추정 방법.
  22. 제21항에 있어서,
    상기 복수의 관절들의 3차원 좌표들을 산출하는 단계는
    상기 제2 가우스 혼합 모델의 시점에 기초하여, 복수의 시점들에 대응되는 복수의 N-부분 가우스 혼합 모델들로부터 상기 N-부분 가우스 혼합 모델을 선택하는 단계
    를 더 포함하고,
    상기 복수의 N-부분 가우스 혼합 모델들은 상기 객체에 포함된 복수의 관절들과 관련된 정보를 포함하는 데이터 세트를 이용하여 미리 생성되는 자세 추정 방법.
  23. 제1항 및 제3항 내지 제22항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  24. 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터를 연관시키는 연관부; 및
    상기 합성 데이터와 상기 실제 데이터 사이의 연관 관계에 기초하여, 상기 객체의 자세를 추정하기 위한 추정기를 학습시키는 학습부
    를 포함하고,
    상기 학습부는
    상기 연관 관계에 있는 합성 데이터 및 실제 데이터를 동일한 방향으로 분기하는 노드를 생성하며, 상기 노드를 이용하여 결정 트리를 생성하는 추정기 학습 장치.
  25. 관절을 포함하는 객체를 합성한 합성 데이터와 상기 객체를 촬영한 실제 데이터 사이의 연관 관계에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 복수의 패치들에 대응되는 복수의 벡터 세트들을 획득하는 획득부; 및
    상기 복수의 벡터 세트들을 이용하여 상기 입력 영상에 포함된 입력 객체에 포함된 복수의 관절들에 대응하는 복수의 혼합 모델들을 생성함으로써, 상기 입력 객체의 자세를 추정하는 추정부
    를 포함하는 자세 추정 장치.
  26. 관절을 포함하는 객체의 자세를 추정하기 위한 추정기 학습 방법에 있어서,
    상기 객체의 잠재 트리 모델(latent tree model)을 획득하는 단계; 및
    상기 잠재 트리 모델의 루트 노드로부터 복수의 리프 노드들까지의 경로들에 위치하는 복수의 잠재 노드(latent node)들에 대하여, 잠재 노드에 수신되는 입력 데이터를 두 부분들로 분할하는 벡터 페어(vector pair)를 생성하는 단계
    를 포함하고,
    상기 벡터 페어에 포함된 두 개의 벡터들은 상기 입력 데이터의 중심으로부터 상기 분할되는 두 부분들의 중심들을 향하는 추정기 학습 방법.
  27. 제26항에 있어서,
    상기 잠재 트리 모델은 상기 객체의 관절 구조 및 상기 객체의 역학적 제약(kinematic constraint)에 따라 상기 객체의 중심으로부터 상기 객체의 미리 정해진 복수의 부위들로 분기하는 이진 트리를 포함하는, 추정기 학습 방법.
  28. 제26항에 있어서,
    상기 벡터 페어를 생성하는 단계는
    (a) 상기 입력 데이터의 중심에 기초하여 복수의 후보 벡터 페어들을 랜덤하게 생성하는 단계; 및
    (b) 상기 복수의 후보 벡터 페어들 중, 후보 벡터 페어에 의해 분류되는 서브 세트 내 벡터들의 분산을 최소로 만드는 어느 하나의 후보 벡터 페어를 선택하는 단계
    를 포함하는 추정기 학습 방법.
  29. 제28항에 있어서,
    상기 벡터 페어를 생성하는 단계는
    상기 선택된 후보 벡터 페어에 의해 분류되는 서브 세트 내 벡터들의 분산이 임계값 이하가 될 때까지 상기 (a) 단계 및 상기 (b) 단계를 반복하는 단계
    를 더 포함하는 추정기 학습 방법.
  30. 제26항에 있어서,
    테스트 세트를 N개(N은 2 이상의 정수)의 서브 세트들로 분할하는 단계
    를 더 포함하고,
    상기 벡터 페어를 생성하는 단계는
    상기 분할된 서브 세트들 중 어느 하나의 서브 세트를 이용하여, 상기 서브 세트를 두 부분으로 분할하는 투-픽셀 테스트를 계산하는 단계;
    상기 분할된 서브 세트들 중 다른 하나의 서브 세트를 이용하여, 상기 투-픽셀 테스트의 오류를 보정하는 두 개의 오프셋 벡터들을 계산하는 단계; 및
    상기 투-픽셀 테스트 및 상기 두 개의 오프셋 벡터들을 이용하여 상기 벡터 페어에 포함되는 두 개의 벡터들을 계산하는 단계
    를 포함하는 추정기 학습 방법.
  31. 제26항에 있어서,
    상기 벡터 페어를 생성하는 단계는
    상기 입력 데이터의 분할을 테스트하는 스플리트 노드를 생성하는 단계; 및
    상기 스플리트 노드에 따른 분할 결과에 기초하여, 상기 입력 데이터를 분할하는 디비전 노드를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  32. 제26항에 있어서,
    상기 벡터 페어를 생성하는 단계는
    상기 입력 데이터의 분할을 테스트하는 스플리트 노드를 생성하는 단계;
    상기 스플리트 노드의 오류를 회귀하는 오류 회귀 노드를 생성하는 단계; 및
    상기 스플리트 노드 및 상기 오류 회귀 노드에 따른 분할 결과에 기초하여, 상기 입력 데이터를 분할하는 디비전 노드를 생성하는 단계
    를 포함하는 추정기 학습 방법.
  33. 제26항에 있어서,
    상기 벡터 페어는 상기 벡터 페어에 의해 분류되는 서브 세트 내에서 미리 정해진 임계값 이하의 분산을 가지는 벡터들을 포함하는, 추정기 학습 방법.
  34. 삭제
  35. 제26항에 있어서,
    상기 입력 데이터는 상기 객체를 촬영한 깊이 영상 중 적어도 일부를 포함하는 추정기 학습 방법.
  36. 제26항에 있어서,
    상기 루트 노드는 상기 객체의 중심에 대응하고, 상기 복수의 리프 노드들은 상기 객체의 미리 정해진 복수의 부위들에 대응하는, 추정기 학습 방법.
  37. 관절을 포함하는 객체의 잠재 트리 모델(latent tree model)에 기초하여 학습된 추정기를 이용하여, 입력 영상에 포함된 입력 객체의 복수의 부위들을 검출하는 단계; 및
    상기 검출된 복수의 부위들을 이용하여, 상기 입력 객체의 자세를 추정하는 단계
    를 포함하고,
    상기 추정기는
    상기 잠재 트리 모델의 루트 노드로부터 복수의 리프 노드들까지의 경로들에 위치하는 복수의 잠재 노드(latent node)들에 대하여, 잠재 노드에 수신되는 입력 데이터를 두 부분들로 분할하는 벡터 페어(vector pair)를 생성함으로써 학습되고,
    상기 벡터 페어에 포함된 두 개의 벡터들은 상기 입력 데이터의 중심으로부터 상기 분할되는 두 부분들의 중심들을 향하는 자세 추정 방법.
  38. 제37항에 있어서,
    상기 추정기는 상기 잠재 트리 모델에 포함된 루트 노드에서 상기 입력 영상을 수신하고, 상기 잠재 트리 모델에 포함된 복수의 잠재 노드들에서 상기 입력 영상을 두 부분으로 분할하며, 상기 잠재 트리 모델에 포함된 복수의 리프 노드들에서 상기 복수의 부위들에 대응하는 분할 영상들을 출력하는, 자세 추정 방법.
  39. 제37항에 있어서,
    상기 잠재 트리 모델은 상기 객체의 관절 구조 및 상기 객체의 역학적 제약(kinematic constraint)에 따라 상기 객체의 중심으로부터 상기 검출된 복수의 부위들로 분기하는 이진 트리를 포함하는, 자세 추정 방법.
  40. 제37항에 있어서,
    상기 입력 객체의 자세를 추정하는 단계는
    상기 검출된 복수의 부위들의 위치들을 계산하는 단계; 및
    상기 위치들에 기초하여 상기 입력 객체의 자세를 추정하는 단계
    를 포함하는, 자세 추정 방법.
KR1020130131658A 2013-06-05 2013-10-31 깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법 KR101758064B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/280,990 US9449392B2 (en) 2013-06-05 2014-05-19 Estimator training method and pose estimating method using depth image
US14/283,646 US9311713B2 (en) 2013-06-05 2014-05-21 Estimator training method and pose estimating method using depth image
EP14171067.3A EP2811424B1 (en) 2013-06-05 2014-06-04 Method and apparatus for training an estimator for estimating a pose of an articulated object

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361831255P 2013-06-05 2013-06-05
US61/831,255 2013-06-05

Publications (2)

Publication Number Publication Date
KR20140143310A KR20140143310A (ko) 2014-12-16
KR101758064B1 true KR101758064B1 (ko) 2017-07-14

Family

ID=52674192

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130131658A KR101758064B1 (ko) 2013-06-05 2013-10-31 깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법

Country Status (1)

Country Link
KR (1) KR101758064B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093753A (ko) 2018-01-10 2019-08-12 국방과학연구소 방위각 추정 장치 및 방법
WO2019216593A1 (en) * 2018-05-11 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus for pose processing
KR20220023553A (ko) * 2020-08-21 2022-03-02 한국전자통신연구원 휴먼 자세 추정 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10474929B2 (en) * 2017-04-25 2019-11-12 Nec Corporation Cyclic generative adversarial network for unsupervised cross-domain image generation
KR102052564B1 (ko) * 2018-03-09 2019-12-05 한국과학기술원 라이트 필드 이미지의 깊이 추정 방법 및 장치
KR102627659B1 (ko) * 2021-12-02 2024-01-24 (주)셀빅 후면 영상정보 생성 장치 및 방법

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
3D Hand Pose Estimation by Finding Appearance-Based Matches in a Large Database of Training Views, IEEE Workshop on Cues in Communication(2001)*
Exploring the spatial hierarchy of mixture models for human pose estimation, European Conference on Computer Vision. Springer Berlin Heidelberg(2012)*
Hand gesture recognition using multi-scale colour features, hierarchical models and particle filtering, Automatic Face and Gesture Recognition, proceedings IEEE(2002)
Hierarchical mixtures of experts and the EM algorithm, Neural computation 6.2 (1994)
Making touchscreen keyboards adaptive to keys, hand postures, and individuals: a hierarchical spatial backoff model approach, Proceedings of the SIGCHI Conf. Human Factors in Computing System(2013)
Real Time Hand Pose Estimation using Depth Sensors, Computer Vision Workshops (ICCV Workshops), IEEE International Conference(2011)*

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190093753A (ko) 2018-01-10 2019-08-12 국방과학연구소 방위각 추정 장치 및 방법
WO2019216593A1 (en) * 2018-05-11 2019-11-14 Samsung Electronics Co., Ltd. Method and apparatus for pose processing
US11270455B2 (en) 2018-05-11 2022-03-08 Samsung Electronics Co., Ltd. Method and apparatus for pose processing
KR20220023553A (ko) * 2020-08-21 2022-03-02 한국전자통신연구원 휴먼 자세 추정 장치 및 방법
KR102591325B1 (ko) 2020-08-21 2023-10-20 한국전자통신연구원 휴먼 자세 추정 장치 및 방법

Also Published As

Publication number Publication date
KR20140143310A (ko) 2014-12-16

Similar Documents

Publication Publication Date Title
EP2811424B1 (en) Method and apparatus for training an estimator for estimating a pose of an articulated object
Li et al. A unified framework for multi-view multi-class object pose estimation
KR101758064B1 (ko) 깊이 영상을 이용하는 추정기 학습 방법 및 자세 추정 방법
Wang et al. Densefusion: 6d object pose estimation by iterative dense fusion
CN108052896B (zh) 基于卷积神经网络与支持向量机的人体行为识别方法
Tang et al. Latent regression forest: Structured estimation of 3d articulated hand posture
Roberts et al. Structure from motion for scenes with large duplicate structures
Simo-Serra et al. A joint model for 2d and 3d pose estimation from a single image
Trivedi et al. Low-level segmentation of aerial images with fuzzy clustering
CN110084304B (zh) 一种基于合成数据集的目标检测方法
CN108229347B (zh) 用于人识别的拟吉布斯结构采样的深层置换的方法和装置
CN109165540B (zh) 一种基于先验候选框选择策略的行人搜索方法和装置
CN110223298A (zh) 基于点云局部结构的语义分割改进算法
CN113255420A (zh) 使用未经标记的多视图数据训练的模型进行3d人体姿势估计
CN112149721B (zh) 一种基于主动学习降低标注需求的目标检测方法
Ding et al. Vehicle pose and shape estimation through multiple monocular vision
Wang et al. Point linking network for object detection
Li et al. Hierarchical semantic parsing for object pose estimation in densely cluttered scenes
CN110879961A (zh) 利用车道模型的车道检测方法和装置
CN113204988A (zh) 小样本视点估计
Weber et al. Single-shot panoptic segmentation
CN112595322A (zh) 一种融合orb闭环检测的激光slam方法
Frey et al. Efficient constellation-based map-merging for semantic SLAM
Huang et al. Tracking-by-detection of 3d human shapes: from surfaces to volumes
Singh et al. Fast semantic-aware motion state detection for visual slam in dynamic environment

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant