KR20100124532A - Data processing apparatus and method - Google Patents

Data processing apparatus and method Download PDF

Info

Publication number
KR20100124532A
KR20100124532A KR1020090043587A KR20090043587A KR20100124532A KR 20100124532 A KR20100124532 A KR 20100124532A KR 1020090043587 A KR1020090043587 A KR 1020090043587A KR 20090043587 A KR20090043587 A KR 20090043587A KR 20100124532 A KR20100124532 A KR 20100124532A
Authority
KR
South Korea
Prior art keywords
data
cluster
clusters
points
physical information
Prior art date
Application number
KR1020090043587A
Other languages
Korean (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 KR1020090043587A priority Critical patent/KR20100124532A/en
Publication of KR20100124532A publication Critical patent/KR20100124532A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

PURPOSE: A data processing apparatus and a method thereof are provided to calculate the whole operation by sensing the movements of points when capturing motions. CONSTITUTION: A processing unit(120) randomly assigns a plurality of input data to clusters. A calculation unit(130) uses the regression analysis to calculate the transformation matrix coping with clusters. The calculation unit calculates the return value applying transformation matrixes to the first data allocated to first cluster. The processing unit assigns the first data based on the return value to the second cluster.

Description

데이터 처리 장치 및 방법{DATA PROCESSING APPARATUS AND METHOD}DATA PROCESSING APPARATUS AND METHOD}

본 발명의 일부 실시예들은 모션 센싱에 의해 축적된 학습 데이터를 분석하는 데이터 처리 장치 및 방법에 관한 것이다. 보다 특정하게는, 모션 센싱이 있는 경우, 상기 학습 데이터의 분석을 통해 아바타(Avatar) 등 3D 모델의 동작을 추정하고 생성하는 데이터 처리 장치 및 방법에 연관된다.Some embodiments of the present invention relate to a data processing apparatus and method for analyzing training data accumulated by motion sensing. More specifically, the present invention relates to a data processing apparatus and method for estimating and generating an operation of a 3D model such as an avatar by analyzing the training data when there is motion sensing.

최근 비디오 게임, 가상 세계(virtual world), 영화 컴퓨터 그래픽(computer graphic, CG) 등 실제 공간에서의 타깃 오브젝트(이를 테면, 사람(human body))의 동작을 센싱하고, 이를 3-Dimensional(3D) 공간 내에서 구현하는 기술에 관한 관심이 증가하고 있다.Sensing the movement of target objects (such as human bodies) in real space, such as video games, virtual worlds, and computer graphics (CGs), and 3-Dimensional (3D). There is a growing interest in technology that can be implemented in space.

동작 추정 또는 동작 캡쳐 등 다양한 명칭으로 불릴 수 있는 이러한 기술에 있어서, 동작의 센싱으로부터 동작 캡쳐 결과 도출까지 이르는 계산 시간이 길다는 점은 단점으로 작용한다.In this technique, which can be called various names such as motion estimation or motion capture, a long calculation time from sensing of motion to deriving motion capture results is disadvantageous.

사람의 동작을 센싱하고 이를 캡쳐하는 경우에, 사람의 몸에 부착된 센서의 수가 많을수록 결과 값은 정밀할 것으로 예상되나, 이는 센싱을 위한 과정이 번거롭고 많은 제약을 받음을 의미한다. 즉, 많은 센서를 부착한 인체의 움직임이 제한되고, 센서를 부착하거나 제거하기가 번거로운 등의 어려움이 있다.In the case of sensing and capturing a human motion, the larger the number of sensors attached to the human body, the more accurate the result is expected, but this means that the process for sensing is cumbersome and limited. That is, the movement of the human body to which many sensors are attached is limited, and it is difficult to attach or remove the sensors.

따라서, 비교적 작은 수의 센서만을 부착하여, 움직임을 센싱하고 이를 통해 동작 캡쳐를 수행 할 수 있는 방법이 제안될 필요가 있다.Therefore, there is a need to propose a method of attaching a relatively small number of sensors to sense motion and perform motion capture.

본 발명의 일부 실시예는, 동작 캡쳐에 있어서, 비교적 작은 수의 포인트의 움직임만을 센싱함으로써, 전체의 동작을 계산하는 데이터 처리 장치 및 방법을 제공하기 위한 것이다.Some embodiments of the present invention are directed to providing a data processing apparatus and method for calculating the overall motion by sensing only a relatively small number of points of motion in motion capture.

또한 본 발명의 일부 실시예는, 모션 캡쳐를 위한 계산 모델을 확립하기 위해 입력되는 복수 개의 학습 데이터를 상관도가 높은 데이터끼리 클러스터링 하여 결과 값의 정확도를 높이는 경우에, 상기 클러스터링을 보다 효율적이고 정확하게 수행하기 위한 것이다.In addition, some embodiments of the present invention provide more efficient and accurate clustering when a plurality of highly correlated data are inputted to establish a computational model for motion capture, thereby increasing the accuracy of the result value. It is to carry out.

본 발명의 일 실시예에 따르면, 복수 개의 입력 데이터를 k 개(단, k는 자연수)의 클러스터에 무작위로 할당하는 처리부, 및 회귀 분석(Regression Analysis)을 이용하여 상기 k 개의 클러스터의 각각에 대응하는 k 개의 변환 행렬을 계산하고, 상기 k 개의 클러스터 중 제1 클러스터에 할당된 제1 데이터에 상기 k 개의 변환 행렬의 각각을 적용한 결과 값을 계산하는 계산부를 포함하는 데이터 처리 장치가 제공된다.According to an embodiment of the present invention, a processing unit for randomly allocating a plurality of input data to k clusters (where k is a natural number) and corresponding to each of the k clusters using regression analysis A data processing device including a calculation unit for calculating k transform matrices and calculating a result of applying each of the k transform matrices to first data allocated to a first cluster among the k clusters is provided.

이 경우, 상기 처리부는 상기 계산된 결과 값에 기초하여, 상기 제1 데이터 를 상기 k 개의 클러스터 중 제2 클러스터에 할당한다.In this case, the processor allocates the first data to a second cluster among the k clusters based on the calculated result value.

여기서 상기 복수 개의 입력 데이터의 각각은, 모션 센싱의 한 프레임에서 감지되는 n 개(n은 자연수)의 포인트의 물리적 정보와, 상기 n 개의 포인트 중 n1 개(n1은 자연수)의 특징 포인트의 물리적 정보를 포함할 수 있다.Here, each of the plurality of input data is physical information of n points (n is a natural number) detected in one frame of motion sensing, and physical information of n1 points (n1 is a natural number) among the n points. It may include.

그리고, 상기 회귀 분석은, KCCA(Kernel Canonical Correlation Analysis)에 기초한 비선형 분석 또는 CCA(Canonical Correlation Analysis)에 기초한 선형 분석일 수 있다.The regression analysis may be a nonlinear analysis based on KCCA (Kernel Canonical Correlation Analysis) or a linear analysis based on CCA (Canonical Correlation Analysis).

본 발명의 일 실시예에 따르면, 상기 처리부는, 상기 계산된 결과 값에 기초하여, 상기 k 개의 변환 행렬 중 상기 제1 데이터와 가장 유사한 결과 값을 제공하는 변환 행렬에 대응하는 제2 클러스터를 결정하고, 상기 제1 데이터를 상기 제2 클러스터에 할당한다.According to an embodiment of the present invention, the processor determines, based on the calculated result value, a second cluster corresponding to a transform matrix that provides a result value most similar to the first data among the k transform matrices. The first data is allocated to the second cluster.

그리고, 상기 계산부는, 상기 제1 데이터가 상기 제2 클러스터에 할당된 이후에, 회귀 분석을 이용하여, 상기 제1 클러스터에 대응하는 변환 행렬 및 상기 제2 클러스터에 대응하는 변환 행렬을 계산하여 업데이트 할 수 있다.After the first data is allocated to the second cluster, the calculator calculates and updates a transform matrix corresponding to the first cluster and a transform matrix corresponding to the second cluster by using regression analysis. can do.

이 경우, 상기 계산부는 상기 제1 데이터를 제외하고 상기 제1 클러스터에 대응하는 변환 행렬을 계산하여 업데이트 하고, 상기 제1 데이터를 포함하고 상기 제2 클러스터에 대응하는 변환 행렬을 다시 계산하여 업데이트 할 수 있다.In this case, the calculation unit calculates and updates a transformation matrix corresponding to the first cluster except for the first data, and recalculates and updates the transformation matrix including the first data and corresponding to the second cluster. Can be.

본 발명의 일 실시예에 따르면, 상기 데이터 처리 장치는 모션 센싱에 의해 감지되는 n1 개의 특징 포인트의 물리적 정보를 포함하는 제2 데이터를 입력 받는 인터페이스를 더 포함한다.According to an embodiment of the present invention, the data processing apparatus further includes an interface for receiving second data including physical information of n1 feature points detected by motion sensing.

이 경우, 상기 처리부는, 상기 k 개의 클러스터 중 상기 제2 데이터와 상관도가 높은 적어도 하나의 클러스터를 선택하고, 상기 계산부는, 상기 선택된 적어도 하나의 클러스터의 각각에 대응하는 변환 행렬을 상기 제2 데이터에 적용한 결과에 기초하여 상기 제2 데이터에 대응하는 n 개의 포인트의 물리적 정보를 계산한다.In this case, the processing unit selects at least one cluster having a high correlation with the second data among the k clusters, and the calculating unit selects a transform matrix corresponding to each of the selected at least one cluster from the second cluster. The physical information of the n points corresponding to the second data is calculated based on the result of applying the data.

본 발명의 일 실시예에 따르면, 상기 계산부는, 상기 선택된 적어도 하나의 클러스터의 각각의 변환 매트릭스를 상기 제2 데이터에 적용한 결과 값들에, 상기 제2 데이터와의 상관도에 비례한 가중치를 적용하고, 상기 가중치가 적용된 상기 결과 값들의 선형 합으로서 상기 제2 데이터에 대응하는 n 개의 포인트의 물리적 정보를 계산한다.According to an embodiment of the present invention, the calculation unit may apply weights proportional to the correlation with the second data to the result values of applying each transformation matrix of the at least one selected cluster to the second data. The physical information of the n points corresponding to the second data is calculated as the linear sum of the weighted result values.

본 발명의 다른 일 실시예에 따르면, 복수 개의 입력 데이터를 k 개(단, k는 자연수)의 클러스터에 무작위로 할당하는 단계, 회귀 분석을 이용하여, 상기 k 개의 클러스터의 각각에 대응하는 k 개의 변환 행렬을 계산하는 단계, 및 상기 k 개의 클러스터 중 제1 클러스터에 할당된 제1 데이터에 상기 k 개의 변환 행렬의 각각을 적용한 결과에 기초하여, 상기 제1 데이터를 상기 k 개의 클러스터 중 제2 클러스터에 할당하는 단계를 포함하는 데이터 처리 방법이 제공된다.According to another embodiment of the present invention, randomly allocating a plurality of input data to k clusters (where k is a natural number) and k corresponding to each of the k clusters using regression analysis Calculating a transformation matrix, and applying the first data to a second cluster of the k clusters based on a result of applying each of the k transformation matrices to first data allocated to a first cluster of the k clusters. A data processing method is provided that includes assigning to.

여기서, 상기 회귀 분석은, KCCA에 기초한 비선형 분석, 또는 상기 회귀 분석은, CCA에 기초한 선형 분석일 수 있다.Here, the regression analysis may be a nonlinear analysis based on KCCA, or the regression analysis may be a linear analysis based on CCA.

본 발명의 일부 실시예에 따르면, 동작 캡쳐에 있어서, 비교적 작은 수의 포인트의 움직임만을 센싱함으로써, 전체의 동작을 계산할 수 있으므로, 구현이 용이하다.According to some embodiments of the present invention, in motion capture, the entire motion can be calculated by sensing only a relatively small number of points of motion, which is easy to implement.

또한 본 발명의 일부 실시예에 따르면, 모션 캡쳐를 위한 계산 모델을 확립하기 위해 입력되는 복수 개의 학습 데이터를 상관도가 높은 데이터끼리 클러스터링 하는 데에 있어서, 상기 클러스터링이 보다 효율적이고 정확하게 수행된다.Further, according to some embodiments of the present invention, in clustering a plurality of highly correlated data among a plurality of input training data input to establish a calculation model for motion capture, the clustering is performed more efficiently and accurately.

이하에서, 본 발명의 일부 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, some embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.

도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치(100)를 도시한다.1 illustrates a data processing apparatus 100 according to an embodiment of the present invention.

본 발명의 일 실시예에 따르면, 데이터 처리 장치(100)은 I/O 인터페이스(110)를 포함한다. 상기 인터페이스(110)는 센싱된 학습 데이터, 캡쳐 하고자 하는 데이터, 결과 값 들을 외부와 주고 받는 경로이다.According to an embodiment of the present invention, the data processing apparatus 100 includes an I / O interface 110. The interface 110 is a path for exchanging sensed learning data, data to be captured, and result values with the outside.

동작 추정을 위한 변환 행렬을 계산하기 위한 학습 데이터는 인터페이스(110)을 통해 입력되어 우선 제1 저장부(140)에 저장된다.The training data for calculating the transformation matrix for the motion estimation is input through the interface 110 and first stored in the first storage 140.

본 발명의 일 실시예에 따르면, 처리부(120)는 상기 제1 저장부(!40)에 저장된 복수 개의 학습 데이터를 우선, k 개(k는 자연수)의 클러스터에 랜덤하게 할당하여 제2 저장부(150)에 저장한다. 이 경우, 유사한 학습 데이터들끼리 동일한 클러스터에 할당되는 것이 보장되지 않을 수 있다.According to an embodiment of the present invention, the processor 120 first randomly allocates a plurality of learning data stored in the first storage unit! 40 to k clusters (k is a natural number) and randomly allocates the second training unit. Save to 150. In this case, it may not be guaranteed that similar learning data are allocated to the same cluster.

그리고, 계산부(130)은상기 k 개의 클러스터 각각의 변환 행렬을 계산한다. 상기 변환 행렬을 구하는 상세한 과정은 도 4를 참조하여 상세히 후술한다.The calculator 130 calculates a transformation matrix of each of the k clusters. A detailed process of obtaining the transformation matrix will be described later in detail with reference to FIG. 4.

그리고 처리부(120)는 상기 k 개의 클러스터 중, 제1 클러스터 내의 어느 한 학습 데이터(제1 학습 데이터)를 선택한다. 그리고, 계산부(130)가 상기 제1 학습 데이터를 상기 k 개의 클러스터의 각각에 대한 변환 행렬에 적용하고 그 결과를 제공하면, 처리부(120)는 상기 결과를 비교한다.The processor 120 selects any one of the k clusters of learning data (first learning data) in the first cluster. In addition, when the calculator 130 applies the first training data to the transformation matrix for each of the k clusters and provides the result, the processor 120 compares the result.

만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재하지 않는다면, 처리부(120)는 상기 제1 학습 데이터는 제1 클러스터에 그대로 유지한다.If there is no transform matrix that provides a result value more similar to the transform matrix for the first cluster, the processor 120 maintains the first training data in the first cluster.

그러나, 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재한다면, 처리부(120)는 제1 학습 데이터와 가장 유사한 결과 값을 가지는 제2 클러스터를 선택하고, 상기 제1 학습 데이터를 제2 클러스터에 할당한다.However, if there is a transform matrix that provides a result value that is more similar than the transform matrix for the first cluster, the processor 120 selects a second cluster having the result value most similar to the first training data, and selects the first cluster. Assign training data to the second cluster.

본 발명의 일 실시예에 따르면, 이 경우, 상기 제1 클러스터 및 상기 제2 클러스터의 변환 행렬이 업데이트 된다. 구체적으로, 상기 제1 클러스터의 경우, 상기 제1 학습 데이터를 제외하고 상기 제1 클러스터에 속하는 나머지 학습 데이터들로만 다시 변환 행렬을 구한다. 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.According to an embodiment of the present invention, in this case, the transformation matrix of the first cluster and the second cluster is updated. Specifically, in the case of the first cluster, the transform matrix is obtained again only with the remaining learning data belonging to the first cluster except the first learning data. The newly obtained transform matrix replaces the existing transform matrix.

또한, 상기 제2 클러스터의 경우, 상기 제1 학습 데이터를 새로 포함해서 상기 제2 클러스터에 속하는 전체 학습 데이터들을 이용하여, 다시 변환 행렬을 구한다. 역시 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In addition, in the case of the second cluster, a transformation matrix is obtained again by using all the training data belonging to the second cluster by newly including the first training data. Again, the newly obtained transformation matrix replaces the existing transformation matrix.

데이터 처리 장치(100)는, 이러한 과정을 소정의 종료 조건(이를 테면, 모든 학습 데이터에 대해 1회 상기 과정을 수행하였거나, 또는 더 이상 클러스터의 변경이 발생하지 않는 것 등)을 만족할 때까지 iterative 하게 반복한다.The data processing apparatus 100 performs this process until it satisfies a predetermined termination condition (for example, performing the above process once for all learning data, or changing the cluster no longer). Repeat

그러면, 상기 각 클러스터들은 유사도가 높은 학습 데이터들끼리 묶여서 생성된 변환 행렬을 갖는다.Then, each of the clusters has a transformation matrix generated by binding training data having high similarity.

이하, 보다 상세한 실시예들은, 도 4 이하를 참조하여 보다 상세히 후술한다.Hereinafter, more detailed embodiments will be described in more detail with reference to FIG. 4 and below.

도 2는 종래의 Inverse Kinematics 방법을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a conventional inverse kinematics method.

종래에는 동작의 추정을 위해 Inverse Kinematics 방법이 사용되기도 하였다. 이를 간단히 설명하기 위해, 2차원 공간에서 복수 개의 포인트들(210, 220, 221, 및 222)의 움직임을 추정하는 과정을 설명한다.In the past, an inverse kinematics method was used to estimate the motion. To briefly explain this, a process of estimating the movement of the plurality of points 210, 220, 221, and 222 in a two-dimensional space will be described.

루트(root) 포인트(210), 리프(leaf) 포인트(220) 및 그 사이의 포인트(221, 222) 중 이웃하는 두 포인트 간의 위치는 서로 연관되어 있다.The position between two neighboring points of the root point 210, the leaf point 220, and the points 221 and 222 therebetween are related to each other.

이를 테면, 포인트(210)과 포인트(221)의 위치는, 서로 거리는 일정하고 상대적 위치(각도)만 바뀔 뿐이다. 포인트(221)과 포인트(222), 또는 포인트(222)와 포인트(220) 역시 마찬가지이다.For example, the position of the point 210 and the point 221 is a distance from each other and only the relative position (angle) only changes. The same is true of point 221 and point 222, or point 222 and point 220.

따라서, 2차원 공간만을 가정할 때, 루트 포인트(210)의 위치와, 상기 포인트들 중 이웃하는 포인트 간의 거리가 미리 알려져 있다면, 포인트(221), 포인트(222) 및 포인트(220)의 위치는 세 개의 각도만이 주어지면 알 수 있다.Thus, assuming only two-dimensional space, if the location of the root point 210 and the distance between neighboring points among the points are known in advance, then the location of the points 221, 222, and 220 is Only three angles are given.

한편, 포인트(220)의 위치가 주어졌을 때, 포인트(221) 및 포인트(222)를 구할 수도 있다. 보다 상세한 내용이 도 3을 참조하여 후술된다.On the other hand, given the location of the point 220, the point 221 and the point 222 may be obtained. More details are described below with reference to FIG. 3.

도 3은 도 2의 Inverse Kinematics 방법에 의한 동작 추정을 도시한다.FIG. 3 shows motion estimation by the Inverse Kinematics method of FIG. 2.

루트 포인트(310)과 포인트(321) 사이의 거리는 l1, 포인트(321)와 포인트(322) 사이의 거리는 l2, 포인트(322)와 포인트(320) 사이의 거리는(320)으로 고정된다.The distance between the root point 310 and the point 321 is fixed as l 1 , the distance between the point 321 and the point 322 is l 2 , and the distance between the point 322 and the point 320 is fixed as 320.

이 경우, l1, l2, 및 l3는 상수(constant)이고, 루트 포인트(310)을 원점으로 가정하면, 포인트(320)의 좌표 (x, y)는 아래 수학식과 같다.In this case, l 1 , l 2 , and l 3 are constants, and assuming the root point 310 as the origin, the coordinates (x, y) of the point 320 are represented by the following equation.

[수학식 1][Equation 1]

Figure 112009029955755-PAT00001
Figure 112009029955755-PAT00001

Figure 112009029955755-PAT00002
Figure 112009029955755-PAT00002

여기서 추가적인 정보(이를 테면, x>0, y>0, θ1>0, θ2<0, θ3>0 )가 존재한다면, (x, y)가 주어지는 경우, θ1, θ2, 및 θ3의 위치를 유일해로서 구할 수 있고, 따라서 포인트(321)과 포인트(322)의 위치도 특정할 수 있다.Where additional information (such as x> 0, y> 0, θ 1 > 0, θ 2 <0, θ 3 > 0) is present, θ 1 , θ 2 , and The position of θ 3 can be obtained as the only solution, and thus the positions of the points 321 and 322 can also be specified.

즉, 루트 포인트(310)에 대한 포인트(320)의 상대적 좌표만 알아도 나머지 포인트(321 및 322)의 위치를 계산할 수 있다. 이러한 과정을 Inverse Kinematics라 한다. 상기 예에서, Inverse Kinematics 방법에 의해 (루트 포인트(310)을 제외한) 한 개의 포인트(320)의 물리적 정보(상대적 좌표(x, y))를 이용하여, 포인트(321) 포인트(322)의 물리적 정보(좌표)를 구할 수 있었다.That is, even if only the relative coordinates of the point 320 with respect to the root point 310 is known, the positions of the remaining points 321 and 322 can be calculated. This process is called Inverse Kinematics. In the above example, the physical information of the point 321, point 322, using the physical information (relative coordinates (x, y)) of one point 320 (except the root point 310) by the Inverse Kinematics method Information (coordinates) was available.

그런데, 2차원에서의 단순한 분석의 경우, 이러한 Inverse Kinematics 방법이 적용될 수 있으나, 차원(dimension)이 높아지고 입력되는 데이터의 양이 많아질수록 이러한 Inverse Kinematics 방법은 한계에 봉착한다.However, in the case of simple analysis in two dimensions, such an inverse kinematics method may be applied, but as the dimension increases and the amount of input data increases, the inverse kinematics method encounters limitations.

따라서, 본 발명의 일 실시예에 따르면, 선형(linear) 데이터에 관한 CCA(Canonical Correlation Analysis)에 기초한 회귀 분석(Regression Analysis), 또는 비선형(non-linear) 데이터에 관한 KCCA(Kernel Canonical Correlation Analysis)에 기초한 회귀 분석에 의해, 학습 데이터(training data)를 이용하여 작은 수의 포인트의 물리적 정보로부터 많은 수의 포인트의 물리적 정보를 추정하는 변환 행렬을 구한다. 보다 상세한 내용은 도 4 이하에서 후술한다.Accordingly, according to one embodiment of the present invention, regression analysis based on Canonical Correlation Analysis (CCA) on linear data, or Kernel Canonical Correlation Analysis (KCCA) on non-linear data By regression analysis based on, a transformation matrix for estimating a large number of points of physical information from a small number of points of physical information is obtained using training data. More details will be described later with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따라 처리되는 모션 센싱에 의해 입력되는 한 개의 프레임의 데이터에 포함되는 복수 개의 포인트를 도시한다.4 illustrates a plurality of points included in data of one frame input by motion sensing processed according to an embodiment of the present invention.

본 발명의 일 실시예에 따르면, 한 개의 프레임(frame)에서, 사람의 주요 관절에 위치한 15개 포인트에서의 물리적 정보가 센싱되어 입력된다. 다만, 본 발명은 이에 한정되지 않으며, 상기 프레임 당 포인트의 수는 실시예에 따라 얼마든지 변형될 수 있다.According to an embodiment of the present invention, in one frame, physical information at 15 points located in a main joint of a person is sensed and input. However, the present invention is not limited thereto, and the number of points per frame may be modified as much as the exemplary embodiment.

본 실시예에서 한 개의 프레임에 포함되는 포인트들은 루트 포인트(400)에 연관된다.In this embodiment, points included in one frame are related to the root point 400.

포인트(411), 포인트(441) 및 포인트(451)은 각각 루트 포인트(400)에 연관된다. 또한, 포인트(410), 포인트(421) 및 포인트(431)은 포인트(411)에 연관되고, 포인트(442)는 포인트(441)에, 그리고 포인트(452)는 포인트(451)에 각각 연관 된다.Point 411, point 441 and point 451 are each associated with root point 400. Also, points 410, points 421, and 431 are associated with point 411, point 442 is associated with point 441, and point 452 is associated with point 451, respectively. .

나아가, 포인트(420)은 포인트(422)에, 포인트(430)은 포인트(432)에, 포인트(440)은 포인트(442)에, 그리고 포인트(450)은 포인트(452)에 각각 연관된다.Further, point 420 is associated with point 422, point 430 with point 432, point 440 with point 442, and point 450 with point 452.

상기 연관된 포인트들 간의 관계는, 루트 포인트(400)를 상위 노드(parent node)로 하는 계층 관계(hierarchical relationship)로 생각할 수 있다. 이 경우, 상기 복수 개의 포인트 중, 일부의 포인트(410, 420, 430, 440, 및 450)는 특징점 포인트(feature point)로 지정될 수 있다.The relationship between the associated points may be considered as a hierarchical relationship in which the root point 400 is a parent node. In this case, some of the points 410, 420, 430, 440, and 450 may be designated as feature points.

상기 특징점 포인트들과 전체 포인트들 사이의 물리적 정보의 상관 관계가 학습되면, 나중에 상기 특징점 포인트들의 물리적 정보만 센싱되어 입력되는 경우에, 전체 포인트들의 물리적 정보를 계산할 수 있다.When the correlation of the physical information between the feature point points and all points is learned, when only the physical information of the feature point points is sensed and input, it is possible to calculate the physical information of all points.

본 발명의 일부 실시예들에 따르면, 상기 상관 관계 학습을 통해, 특징점 포인트들의 물리적 정보와 전체 포인트 들의 물리적 정보 사이의 변환 행렬을 생성한다.According to some embodiments of the present invention, through the correlation learning, a transformation matrix is generated between physical information of feature point points and physical information of all points.

한편, 상기 각 포인트의 물리적 정보는, 위치, 속도, 가속도, 방향(각도), 각속도, 각가속도 등을 포함할 수 있다.Meanwhile, the physical information of each point may include a position, a speed, an acceleration, a direction (angle), an angular velocity, an angular acceleration, and the like.

실시예에 따라서는, 상기 물리적 정보들 중 일부만을 포함하는 것이 가능하며, 상기 물리적 정보는 상위 포인트에 대한 방향(각도), 각속도, 및 각가속도만을 포함할 수 있다.According to an embodiment, it is possible to include only some of the physical information, and the physical information may include only a direction (angle), an angular velocity, and an angular acceleration with respect to a higher point.

본 발명의 일 실시예에 따르면, 상기 각 포인트 간의 관계가 학습된다. 도 1의 데이터 처리 장치(100)에, 도 4에서 도시된 한 개의 프레임 데이터가 입력되는 경우, 처리부(120)는 상기 한 개의 프레임 데이터(이하에서는 단순히 "데이터"라고 함)를 제1 저장부(140)에 저장한다.According to one embodiment of the invention, the relationship between each point is learned. When one frame data shown in FIG. 4 is input to the data processing apparatus 100 of FIG. 1, the processor 120 may convert the one frame data (hereinafter, simply referred to as “data”) into a first storage unit. Save to 140.

이러한 프레임 데이터가 복수 개 입력되는 경우, 처리부(120)는 입력되는 복수 개의 프레임 데이터를 제1 저장부(140)에 저장한다.When a plurality of such frame data is input, the processor 120 stores the input frame data in the first storage unit 140.

그리고, 처리부(120)는 상기 제1 저장부(140)에 저장된 복수 개의 입력 데이터(학습 데이터(training data)라고도 함, 이하 같음)를 복수 개의 그룹(이하에서는 "클러스터"라고도 함)으로 나눈다.In addition, the processor 120 divides a plurality of input data (also referred to as training data, or the same below) stored in the first storage unit 140 into a plurality of groups (hereinafter, referred to as "clusters").

본 발명의 일 실시예에 따르면, 상기 처리부(120)는 상기 제1 저장부에 저장된 복수 개의 학습 데이터를 임의로(randomly) k 개(단, k는 자연수)의 클러스터에 분배한다. 이 경우, 각 학습 데이터 간의 상관도는 고려되지 않을 수 있다.According to an embodiment of the present invention, the processor 120 randomly distributes the plurality of learning data stored in the first storage unit to k clusters (where k is a natural number). In this case, the correlation between each learning data may not be considered.

그리고, 계산부(130)는 k 개의 클러스터에 각각에 속한 학습 데이터를 회귀 분석(Regression Analysis)해서 각 클러스터에 해당하는 k 개의 변환 행렬을 계산한다.The calculation unit 130 calculates k transformation matrices corresponding to each cluster by regression analysis of the training data belonging to each of the k clusters.

상기한 바와 같이, 상기 변환 행렬은 한 프레임의 동작 캡쳐를 위해 요구되는 전체 포인트 중, 일부의 특징 포인트만 입력될 때, 이를 이용하여 전체 포인트를 추정할 수 있도록 하는 연산자(operator) 또는 함수(function)이다.As described above, the transformation matrix may be an operator or a function for estimating the total point using only some feature points among all the points required for capturing motion of one frame. )to be.

이하에서는 회귀 분석, 특히 CCA 또는 KCCA에 기초한 회귀 분석을 이용하여, 상기 각 클러스터에 해당하는 상기 k 개의 변환 행렬 중 어느 하나를 구하는 과정을 수학식들을 참조하여 서술한다.Hereinafter, a process of obtaining any one of the k transform matrices corresponding to each cluster by using regression analysis, particularly regression analysis based on CCA or KCCA, will be described with reference to equations.

(1) CCA에 기초한 회귀 분석(CCA Based Regression)(1) CCA Based Regression

CCA(Canonical Correlation Analysis)는 입력 값과 출력 값의 쌍으로 이루어진 학습 데이터 간의 상관 관계를 최대로 하는 기계학습 알고리즘 중 하나이다. 이를 위해 입력 값과 출력 값의 차원을 줄여, 변환된 입력과 출력 사이의 상관 관계(correlation)를 최대로 한다.Canonical Correlation Analysis (CCA) is one of the machine learning algorithms that maximizes the correlation between training data consisting of input and output pairs. To do this, the dimensions of the input and output values are reduced to maximize the correlation between the transformed input and output.

CCA를 사용하는 이유는, CCA를 통해 차원이 줄어든 입력과 출력의 상관관계가 최대가 되었기 때문에 CCA를 통해 차원이 줄어든 입력 과 출력의 관계에 대해 회귀 분석을 했을 때, 원래의 입력과 출력 관계에 대한 회귀분석 보다 overfitting를 피할 수 있기 때문이다.The reason for using the CCA is because the correlation between the reduced input and output through the CCA has been maximized, and when the regression analysis is performed on the reduced input and output through the CCA, This is because overfitting can be avoided rather than regression analysis.

본 발명의 일 실시예에 따르면, 상기 학습 데이터의 입력 값(일부 특징 포인트 정보)과 출력 값(전체 포인트 정보)이 비선형 관계에 있기 때문에, CCA에 Kernel Trick을 적용하여 비선형 공간에서 문제로 재구성할 수 있다.According to an embodiment of the present invention, since the input value (some feature point information) and the output value (all point information) of the training data have a nonlinear relationship, Kernel Trick may be applied to CCA to reconstruct a problem in nonlinear space. Can be.

(2) 커널 방법(Kernel Method)(2) Kernel Method

3D모션 센싱에 의해 입력되는 입력 데이터(일부 특징 포인트 정보)와 모션 캡쳐 데이터(전체 포인트 정보)간의 관계에 대한 행렬식을 저장하는 학습단계에 있어서, 이 두 데이터가 비선형의 관계를 갖고 있는 실시예에서는 선형 관계를 학습하는 CCA방법의 적용은 제한된다. 따라서 비선형 관계를 학습하는 KCCA(Kernel CCA)를 이용한다.In the learning step of storing a determinant of a relationship between input data (some feature point information) inputted by 3D motion sensing and motion capture data (full point information), in an embodiment in which these two data have a nonlinear relationship, The application of the CCA method of learning linear relationships is limited. Therefore, we use Kernel CCA (KCCA) for learning nonlinear relationships.

다음은 입력 데이터

Figure 112009029955755-PAT00003
를 입력 데이터 보다 더 높은 차원인 feature space로 변환하는 매핑(mapping)을 나타내는 식이다.Here is the input data
Figure 112009029955755-PAT00003
This expression represents the mapping to transform the feature into a feature space that is higher than the input data.

[수학식 2][Equation 2]

Figure 112009029955755-PAT00004
Figure 112009029955755-PAT00004

CCA와 Kernel CCA의 차이점은, CCA는 학습 데이터 원래의 차원에서 문제를 생각하고 Kernel CCA는 더 높은 차원인 feature space에서 문제를 생각한다는 것이다.The difference between the CCA and the Kernel CCA is that the CCA thinks of problems in the original dimension of the learning data and the Kernel CCA thinks of problems in a higher dimension, feature space.

입력 데이터를 더 높은 차원으로 변환시켜주는 것을 피하기 위해 원래 문제를 두 벡터 내적의 곱으로 문제를 만든다. 이때, 커널 함수를 사용한다. To avoid converting the input data to a higher dimension, we make the original problem the product of the two vector dot products. In this case, use a kernel function.

커널 함수

Figure 112009029955755-PAT00005
는 feature space에 존재하는 두 벡터의 내적,
Figure 112009029955755-PAT00006
이다. 예를 들면 입력데이터
Figure 112009029955755-PAT00007
가 주어져 있을 때, 입력 데이터를 2차 monomial 형태로 변환하면
Figure 112009029955755-PAT00008
이 된다. 이때 커널 함수는 다음과 같이 나타낼 수 있다.Kernel functions
Figure 112009029955755-PAT00005
Is the dot product of two vectors in feature space,
Figure 112009029955755-PAT00006
to be. For example input data
Figure 112009029955755-PAT00007
Given, converting the input data to the second order monomial form
Figure 112009029955755-PAT00008
Becomes In this case, the kernel function can be expressed as:

[수학식 3]&Quot; (3) &quot;

Figure 112009029955755-PAT00009
Figure 112009029955755-PAT00009

(3) KCCA(Kernel CCA)(3) KCCA (Kernel CCA)

Figure 112009029955755-PAT00010
개의 입력 데이터 쌍을
Figure 112009029955755-PAT00011
라 하고, 여기서
Figure 112009029955755-PAT00012
,
Figure 112009029955755-PAT00013
이며,
Figure 112009029955755-PAT00014
는 i 번째 학습의 입력 값,
Figure 112009029955755-PAT00015
는 i 번째 학습의 출력 값이다. 학습의 입력, 출력 값을 다음과 같은 행렬의 형태로 나타내자.
Figure 112009029955755-PAT00010
Input data pairs
Figure 112009029955755-PAT00011
Where,
Figure 112009029955755-PAT00012
,
Figure 112009029955755-PAT00013
,
Figure 112009029955755-PAT00014
Is the input value of the i th training,
Figure 112009029955755-PAT00015
Is the output of the i th training. Let's express the input and output values for learning in the form of a matrix:

[수학식 4]&Quot; (4) &quot;

Figure 112009029955755-PAT00016
Figure 112009029955755-PAT00016

Figure 112009029955755-PAT00017
Figure 112009029955755-PAT00017

선형 관계를 학습하는 CCA에서는 두 데이터의 상관관계(correlation)

Figure 112009029955755-PAT00018
를 최대로 하는 식은 다음과 같이 나타낼 수 있다.In CCA learning linear relationships, the correlation of two data
Figure 112009029955755-PAT00018
The equation for maximizing can be expressed as

[수학식 5][Equation 5]

Figure 112009029955755-PAT00019
Figure 112009029955755-PAT00019

상기 수학식 5에서,

Figure 112009029955755-PAT00020
,
Figure 112009029955755-PAT00021
이고,
Figure 112009029955755-PAT00022
이다.In Equation 5,
Figure 112009029955755-PAT00020
,
Figure 112009029955755-PAT00021
ego,
Figure 112009029955755-PAT00022
to be.

그런데 차원을 높인 Kernel CCA에서는 상호 상관 정도를 나타내는

Figure 112009029955755-PAT00023
,
Figure 112009029955755-PAT00024
,
Figure 112009029955755-PAT00025
를 다음과 같이 나타낼 수 있다.However, in Kernel CCA, which has raised the dimension,
Figure 112009029955755-PAT00023
,
Figure 112009029955755-PAT00024
,
Figure 112009029955755-PAT00025
Can be expressed as

[수학식 6]&Quot; (6) &quot;

Figure 112009029955755-PAT00026
Figure 112009029955755-PAT00026

Figure 112009029955755-PAT00027
Figure 112009029955755-PAT00027

Figure 112009029955755-PAT00028
Figure 112009029955755-PAT00028

또한

Figure 112009029955755-PAT00029
,
Figure 112009029955755-PAT00030
가 비선형 변환이 된 더 높은 차원에서 기저(basis) 쌍인
Figure 112009029955755-PAT00031
,
Figure 112009029955755-PAT00032
는,
Figure 112009029955755-PAT00033
Figure 112009029955755-PAT00034
가 이루는 공간에 존재하기 때문에,
Figure 112009029955755-PAT00035
,
Figure 112009029955755-PAT00036
로 나타낼 수 있다.Also
Figure 112009029955755-PAT00029
,
Figure 112009029955755-PAT00030
Is a base pair in the higher dimension with nonlinear transformation
Figure 112009029955755-PAT00031
,
Figure 112009029955755-PAT00032
Quot;
Figure 112009029955755-PAT00033
Wow
Figure 112009029955755-PAT00034
Because it exists in the space that
Figure 112009029955755-PAT00035
,
Figure 112009029955755-PAT00036
It can be represented as.

이 경우, Kernel CCA에서 두 데이터의 상관관계

Figure 112009029955755-PAT00037
를 최대로 하는 식은 다음과 같이 나타낼 수 있다.In this case, the correlation of the two data in the Kernel CCA
Figure 112009029955755-PAT00037
The equation for maximizing can be expressed as

[수학식 7][Equation 7]

Figure 112009029955755-PAT00038
Figure 112009029955755-PAT00038

여기서,

Figure 112009029955755-PAT00039
이고,
Figure 112009029955755-PAT00040
이다.here,
Figure 112009029955755-PAT00039
ego,
Figure 112009029955755-PAT00040
to be.

이 경우, i 번째

Figure 112009029955755-PAT00041
은, SVD(singular value decomposition)를 통해서 다음과 같이 구할 수가 있다.In this case, the i th
Figure 112009029955755-PAT00041
Can be obtained through SVD (singular value decomposition) as follows.

[수학식 8][Equation 8]

Figure 112009029955755-PAT00042
Figure 112009029955755-PAT00042

[수학식 9][Equation 9]

Figure 112009029955755-PAT00043
Figure 112009029955755-PAT00043

Figure 112009029955755-PAT00044
Figure 112009029955755-PAT00044

여기서

Figure 112009029955755-PAT00045
,
Figure 112009029955755-PAT00046
는 각각
Figure 112009029955755-PAT00047
번째의
Figure 112009029955755-PAT00048
,
Figure 112009029955755-PAT00049
열 벡터(column vector)이다. 위와 같은 방법으로
Figure 112009029955755-PAT00050
,
Figure 112009029955755-PAT00051
의 쌍을 여러 개 얻을 수가 있는데, 최대
Figure 112009029955755-PAT00052
개를 얻을 수 있다.here
Figure 112009029955755-PAT00045
,
Figure 112009029955755-PAT00046
Respectively
Figure 112009029955755-PAT00047
Th
Figure 112009029955755-PAT00048
,
Figure 112009029955755-PAT00049
It is a column vector. In the same way as above
Figure 112009029955755-PAT00050
,
Figure 112009029955755-PAT00051
You can get multiple pairs of up to
Figure 112009029955755-PAT00052
You can get a dog.

여기서 입력데이터의 차원을 줄이기 위해서 입력데이터 차원보다 작은

Figure 112009029955755-PAT00053
개의
Figure 112009029955755-PAT00054
,
Figure 112009029955755-PAT00055
를 추출한다. 추출한
Figure 112009029955755-PAT00056
,
Figure 112009029955755-PAT00057
들을 행렬 형태로 나타내면 아래와 같다.In order to reduce the dimension of the input data,
Figure 112009029955755-PAT00053
doggy
Figure 112009029955755-PAT00054
,
Figure 112009029955755-PAT00055
Extract Extracted
Figure 112009029955755-PAT00056
,
Figure 112009029955755-PAT00057
These are expressed in matrix form as follows.

[수학식 10][Equation 10]

Figure 112009029955755-PAT00058
Figure 112009029955755-PAT00058

Figure 112009029955755-PAT00059
Figure 112009029955755-PAT00059

그리고, 입력 값

Figure 112009029955755-PAT00060
를 basis
Figure 112009029955755-PAT00061
에 사영(projection) 한다.And input value
Figure 112009029955755-PAT00060
Basis
Figure 112009029955755-PAT00061
Project on.

[수학식 11][Equation 11]

Figure 112009029955755-PAT00062
Figure 112009029955755-PAT00062

따라서 차원이 축소된 입력데이터

Figure 112009029955755-PAT00063
는 다음과 같이 계산된다.Therefore, the input data with reduced dimensions
Figure 112009029955755-PAT00063
Is calculated as follows.

[수학식 12][Equation 12]

Figure 112009029955755-PAT00064
Figure 112009029955755-PAT00064

이 경운,

Figure 112009029955755-PAT00065
는 커널 함수들로 이루어진 벡터로 이 벡터의
Figure 112009029955755-PAT00066
번째 원소는
Figure 112009029955755-PAT00067
이다.This tillage,
Figure 112009029955755-PAT00065
Is a vector of kernel functions.
Figure 112009029955755-PAT00066
The first element
Figure 112009029955755-PAT00067
to be.

(4) Regression(4) Regression

본 발명의 실시예에 따름 Regression은 크게 3가지 단계를 포함할 수 있다.According to an embodiment of the present invention, regression may include three steps.

먼저,

Figure 112009029955755-PAT00068
개의 입력 쌍
Figure 112009029955755-PAT00069
가 있을 때, Kernel CCA 방법으로
Figure 112009029955755-PAT00070
개의 기저들을 얻어낸다.first,
Figure 112009029955755-PAT00068
Input pairs
Figure 112009029955755-PAT00069
When there is, Kernel CCA way
Figure 112009029955755-PAT00070
Get the bases of the dogs.

그리고,

Figure 112009029955755-PAT00071
,
Figure 112009029955755-PAT00072
에서
Figure 112009029955755-PAT00073
,
Figure 112009029955755-PAT00074
로 mapping 하는 행렬
Figure 112009029955755-PAT00075
를 상기 최소자승법을 통해서 구하게 된다.And,
Figure 112009029955755-PAT00071
,
Figure 112009029955755-PAT00072
in
Figure 112009029955755-PAT00073
,
Figure 112009029955755-PAT00074
Matrices mapped by
Figure 112009029955755-PAT00075
Is obtained by the least square method.

[수학식 13][Equation 13]

Figure 112009029955755-PAT00076
Figure 112009029955755-PAT00076

여기까지가 축소된 차원에서의 변환행렬을 구한 것이라면, 다음은 축소된 차원에서 출력 값으로 변환하는 행렬

Figure 112009029955755-PAT00077
를 구한다. 이 경우는 전 단계와 마찬가지로 최소자승법으로 구한다.If so far we have obtained the transformation matrix in the reduced dimension, then
Figure 112009029955755-PAT00077
. In this case, the least square method is obtained as in the previous step.

[수학식 14][Equation 14]

Figure 112009029955755-PAT00078
Figure 112009029955755-PAT00078

이렇게 구해진

Figure 112009029955755-PAT00079
,
Figure 112009029955755-PAT00080
,
Figure 112009029955755-PAT00081
는 연속적인 선형 mapping이므로, 하나의 연산자
Figure 112009029955755-PAT00082
로 만들 수 있다.So obtained
Figure 112009029955755-PAT00079
,
Figure 112009029955755-PAT00080
,
Figure 112009029955755-PAT00081
Is a continuous linear mapping, so one operator
Figure 112009029955755-PAT00082
Can be made with

따라서 새로운 입력 값

Figure 112009029955755-PAT00083
가 있다면 원하는 출력 값
Figure 112009029955755-PAT00084
는 아래 수학식에 의해 계산될 수 있다.So new input value
Figure 112009029955755-PAT00083
Output value you want
Figure 112009029955755-PAT00084
Can be calculated by the following equation.

[수학식 15][Equation 15]

Figure 112009029955755-PAT00085
Figure 112009029955755-PAT00085

여기서 구해지는

Figure 112009029955755-PAT00086
연산자가 상기한 변환 행렬이다.Obtained here
Figure 112009029955755-PAT00086
The operator is the transformation matrix described above.

본 발명의 일 실시예에 따르면, 도 1의 계산부(130)는 상기 k 개의 클러스터의 각각에 대해 상기 변환 행렬을 구한다. 이하 과정은 도 5을 참조하여 설명한다.According to an embodiment of the present invention, the calculation unit 130 of FIG. 1 obtains the transformation matrix for each of the k clusters. Hereinafter, the process will be described with reference to FIG. 5.

도 5는 본 발명의 일 실시예에 따라, 복수 개의 클러스터에 할당되는 입력 데이터를 설명하기 위한 개념도이다.5 is a conceptual diagram illustrating input data allocated to a plurality of clusters according to an embodiment of the present invention.

모션 센싱에 의해 입력되는 학습 데이터(510 내지 560)은 사람의 여러 가지 동작을 센싱한 것이다.The training data 510 to 560 input by motion sensing sense various motions of a person.

학습 데이터(510)과 학습 데이터(520)은 서로 유사한 제1 행동(이를 테면, 권투 경기) 중에 획득된 것이다. 그리고, 학습 데이터(530)과 학습 데이터(540)는 서로 유사한 제2 행동(이를 테면, 스노우 보딩) 중에 획득된 것이다. 또한, 학습 데이터(550)과 학습 데이터(560)는 서로 유사한 제3 행동(이를 테면, 수영) 중에 획득된 것이다.The training data 510 and the training data 520 are obtained during a similar first action (eg, a boxing match). In addition, the training data 530 and the training data 540 are obtained during a similar second action (eg, snowboarding). In addition, the training data 550 and the training data 560 are acquired during similar third behaviors (eg, swimming).

이러한 경우, 학습 데이터(510) 내지 학습 데이터(560) 등의 전체 학습 데이터를 통하여 하나의 변환 행렬을 구하는 것보다, 이를 복수 개의 클러스터로 나누어 각각의 변환행렬을 구하는 것이 요구될 수 있다.In such a case, it may be required to obtain each transformation matrix by dividing it into a plurality of clusters rather than obtaining one transformation matrix through the entire training data such as the training data 510 to the training data 560.

이를 테면, 학습 데이터(510)과 학습 데이터(520) 등 상기 제1 행동으로 추정되는 학습 데이터들을 제1 클러스터로, 학습 데이터(530)과 학습 데이터(540) 등 상기 제2 행동으로 추정되는 학습 데이터들을 제2 클러스터로, 또한 학습 데이터(550)과 학습 데이터(560) 등 상기 제3 행동으로 추정되는 학습 데이터들을 제3 클러스터로 할당하는 것이다.For example, the learning data estimated as the first behavior such as the learning data 510 and the learning data 520 as a first cluster, and the learning estimated as the second behavior such as the learning data 530 and the learning data 540. The data is allocated to the second cluster, and the training data estimated by the third behavior such as the training data 550 and the training data 560 is allocated to the third cluster.

본 발명의 일 실시예에 따르면, 상기 입력된 복수 개의 학습 데이터들 상호간을 비교하여 유사한 것끼리 클러스터링을 수행하고, 각 클러스터 마다의 변환 행렬을 계산한다.According to an embodiment of the present invention, similarities are clustered by comparing the inputted plurality of training data, and a transform matrix for each cluster is calculated.

그러나, 본 발명의 다른 일 실시예에 따르면, 도 1의 처리부(120)가 제1 저장부(140)에 저장된 복수 개의 학습 데이터를 우선, k 개의 클러스터에 랜덤하게 할당하여 제2 저장부(150)에 저장한다.However, according to another exemplary embodiment of the present invention, the processor 120 of FIG. 1 first randomly allocates a plurality of learning data stored in the first storage 140 to k clusters, and thereby the second storage 150. ).

이 경우, 학습 데이터(510)과 학습 데이터(520)가 같은 클러스터에 할당되는 것이 보장되지 않는다. 이를테면, 학습 데이터(510)과 학습 데이터(530)이 동일한 제1 클러스터에 할당되고, 학습 데이터(520)과 학습 데이터(540)이 동일한 제2 클러스터에 할당될 수 있다.In this case, it is not guaranteed that the training data 510 and the training data 520 are allocated to the same cluster. For example, the training data 510 and the training data 530 may be allocated to the same first cluster, and the training data 520 and the training data 540 may be allocated to the same second cluster.

본 발명의 일 실시예에 따르면, 이 상태에서 계산부(130)가 상기 제1 클러스터와 상기 제2 클러스터 등에 대해 각각의 변환 행렬을 구한다.According to an embodiment of the present invention, the calculation unit 130 obtains each transformation matrix for the first cluster, the second cluster, and the like in this state.

그리고, 처리부(120)가 상기 제1 클러스터 내의 어느 한 학습 데이터를 선택한다. 이를테면, 처리부(120)는 학습 데이터(530)을 선택한다. 이 경우, 학습 데이터의 선택은 순차적일 수도 있고, 또는 랜덤할 수도 있다.Then, the processor 120 selects any learning data in the first cluster. For example, the processor 120 selects the training data 530. In this case, the selection of the training data may be sequential or random.

그리고, 계산부(130)는 상기 선택된 학습 데이터(530)를 상기 제1 클러스터에 대한 변환 행렬에 적용한 결과 값, 상기 제2 클러스터에 대한 변환 행렬에 적용한 결과 값 등을 모두 계산한다.In addition, the calculator 130 calculates a result value of applying the selected training data 530 to the transform matrix for the first cluster, a result value applied to the transform matrix for the second cluster, and the like.

이 경우 처리부(120)는 계산된 결과 값들을 비교하여, 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재하지 않는다면, 상기 학습 데이터(530)는 제1 클러스터에 그대로 유지한다.In this case, the processor 120 compares the calculated result values, and if there is no transform matrix providing a result value more similar to the transform matrix for the first cluster, the training data 530 remains in the first cluster. Keep it.

그러나, 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재한다면, 학습 데이터(530)와 가장 유사한 결과 값을 가지는 제2 클러스터를 선택하고, 상기 학습 데이터(530)를 제2 클러스터에 할당한다.However, if there is a transform matrix that provides a result value that is more similar than the transform matrix for the first cluster, then select a second cluster having the result value most similar to the learning data 530 and select the learning data 530. Assign to the second cluster.

그리고, 상기 제1 클러스터의 경우, 상기 학습 데이터(530)를 제외하고 상기 제1 클러스터에 속하는 나머지 학습 데이터들로만 다시 변환 행렬을 구한다. 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In the case of the first cluster, except for the training data 530, the transformation matrix is obtained again only with the remaining training data belonging to the first cluster. The newly obtained transform matrix replaces the existing transform matrix.

또한, 상기 제2 클러스터의 경우, 상기 학습 데이터(530)를 새로 포함해서 상기 제2 클러스터에 속하는 전체 학습 데이터들을 이용하여, 다시 변환 행렬을 구한다. 역시 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In addition, in the case of the second cluster, a transformation matrix is obtained again by using the new learning data 530 and all learning data belonging to the second cluster. Again, the newly obtained transformation matrix replaces the existing transformation matrix.

이러한 과정을 소정의 종료 조건(이를 테면, 모든 학습 데이터에 대해 1회 상기 과정을 수행하였거나, 또는 더 이상 클러스터의 변경이 발생하지 않는 것 등)을 만족할 때까지 iterative 하게 반복한다.This process is iteratively repeated until a predetermined termination condition (eg, the process has been performed once for all learning data, or no more cluster changes occur).

그러면, 상기 각 클러스터들은 유사도가 높은 학습 데이터들끼리 묶여서 생성된 변환 행렬을 갖는다.Then, each of the clusters has a transformation matrix generated by binding training data having high similarity.

도 6은 본 발명의 일 실시예에 따라, 모션 센싱에 의해 복수 개의 포인트의 물리적 정보를 포함하는 데이터를 획득하는 과정을 도시한다.6 illustrates a process of acquiring data including physical information of a plurality of points by motion sensing, according to an embodiment of the present invention.

이상에서 k 개의 클러스터링과 변환 행렬이 모두 구해지는 경우, 도 6과 같은 예시적 구성에서 일부 특징적 포인트에 대한 센싱을 수행할 수 있다.When k clustering and transformation matrices are obtained as described above, sensing of some characteristic points may be performed in the exemplary configuration as shown in FIG. 6.

센서(601)는, 사람(602)의 특징적 포인트(610 내지 650)의 물리적 정보를 분석한다. 이를테면, 방향, 각속도, 각가속도 등이다.Sensor 601 analyzes the physical information of characteristic points 610-650 of person 602. For example, direction, angular velocity, angular acceleration.

그러면, 도 1의 처리부(120)는 상기 5 개의 포인트(610 내지 650) 정보를 포함하는 데이터를 위해, 상기 k 개의 클러스터 중 유사도가 높은 어느 하나의 클러스터의 변환 행렬을 선택한다. 그리고, 계산부(130)은, 상기 데이터에 상기 선택된 변환 행렬을 적용하여, 전체 포인트(이를 테면 15개)의 동작을 추정한 값을 계산한다.Then, the processor 120 of FIG. 1 selects a transformation matrix of one cluster having a high similarity among the k clusters, for data including the five points 610 to 650. The calculation unit 130 applies the selected transformation matrix to the data, and calculates a value for estimating the operation of all points (eg, 15).

이를 테면, 상기 5 개의 포인트(610 내지 650) 정보를 포함하는 데이터가 입력되는 경우, 도 4의 전체 포인트 정보가 계산될 수 있다.For example, when data including the five points 610 to 650 is input, all point information of FIG. 4 may be calculated.

본 발명의 일부 실시예에서는, 상기 k 개의 클러스터 중 유사도가 가장 높은 하나의 클러스터를 선택하여, 상기 클러스터에 대한 변환 행렬만 적용한다.In some embodiments of the present invention, one cluster having the highest similarity among the k clusters is selected to apply only a transformation matrix for the cluster.

그러나, 본 발명은 이에 한정되지 않으며, 상기 k 개의 클러스터 중 두 개 이상의 클러스터를 선택하고, 선택된 각 클러스터의 변환 행렬을 상기 데이터에 적용한 후, 유사도에 따른 가중치를 곱해 선형 합을 구함으로써, 전체 포인트 정보를 계산할 수도 있다.However, the present invention is not limited thereto, and by selecting two or more clusters of the k clusters, applying a transformation matrix of each selected cluster to the data, and multiplying the weights according to the similarities to obtain a linear sum, thereby obtaining all points. You can also calculate the information.

도 7은 본 발명의 일 실시예에 따른 데이터 처리 방법을 도시한다.7 illustrates a data processing method according to an embodiment of the present invention.

단계(S710)에서, 입력된 복수 개의 학습 데이터가 우선, k 개의 클러스터에 랜덤하게 할당된다.In step S710, the input plurality of learning data is first randomly assigned to k clusters.

이 경우, 유사한 학습 데이터들끼리 동일한 클러스터에 할당되는 것이 보장되지 않을 수 있다.In this case, it may not be guaranteed that similar learning data are allocated to the same cluster.

단계(S720)에서, 상기 k 개의 클러스터 각각의 변환 행렬을 계산한다. 상기 변환 행렬을 구하는 상세한 과정은 도 4를 참조하여 상술한 바와 같다.In step S720, a transformation matrix of each of the k clusters is calculated. The detailed process of obtaining the transformation matrix is as described above with reference to FIG. 4.

단계(S730)에서, 상기 k 개의 클러스터 중, 제1 클러스터 내의 어느 한 학습 데이터(제1 학습 데이터)가 선택된다.In step S730, one of the k clusters, one learning data (first learning data) in the first cluster is selected.

그리고, 단계(S740)에서, 상기 제1 학습 데이터를 상기 k 개의 클러스터의 각각에 대한 변환 행렬에 적용하고 그 결과가 비교된다.Then, in step S740, the first training data is applied to the transformation matrix for each of the k clusters and the results are compared.

단계(S750)에서, 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재하지 않는다면, 상기 제1 학습 데이터는 제1 클러스터에 그대로 유지된다. 그리고, 단계(S780)에서 소정의 종료 조건 만족 여부가 판단된다.In step S750, if there is no transform matrix that provides a result value that is more similar than the transform matrix for the first cluster, the first training data remains in the first cluster. In operation S780, it is determined whether a predetermined termination condition is satisfied.

그러나, 단계(S750)에서 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재한다면, 제1 학습 데이터와 가장 유사한 결과 값을 가지는 제2 클러스터를 선택하고, 상기 제1 학습 데이터를 제2 클러스터에 할당한다(단계S760).However, if there is a transform matrix in step S750 that provides a result value that is more similar than the transform matrix for the first cluster, then a second cluster having the result value most similar to the first training data is selected, and the first The training data is allocated to the second cluster (step S760).

그리고, 단계(S770)에서 관련된 변환 행렬들이 업데이트 된다. 구체적으로, 상기 제1 클러스터의 경우, 상기 제1 학습 데이터를 제외하고 상기 제1 클러스터에 속하는 나머지 학습 데이터들로만 다시 변환 행렬을 구한다. 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In operation S770, the related transformation matrices are updated. Specifically, in the case of the first cluster, the transform matrix is obtained again only with the remaining learning data belonging to the first cluster except the first learning data. The newly obtained transform matrix replaces the existing transform matrix.

또한, 상기 제2 클러스터의 경우, 상기 제1 학습 데이터를 새로 포함해서 상기 제2 클러스터에 속하는 전체 학습 데이터들을 이용하여, 다시 변환 행렬을 구한다. 역시 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In addition, in the case of the second cluster, a transformation matrix is obtained again by using all the training data belonging to the second cluster by newly including the first training data. Again, the newly obtained transformation matrix replaces the existing transformation matrix.

이러한 과정을 소정의 종료 조건(이를 테면, 모든 학습 데이터에 대해 1회 상기 과정을 수행하였거나, 또는 더 이상 클러스터의 변경이 발생하지 않는 것 등)을 만족할 때까지 iterative 하게 반복한다.This process is iteratively repeated until a predetermined termination condition (eg, the process has been performed once for all learning data, or no more cluster changes occur).

그러면, 상기 각 클러스터들은 유사도가 높은 학습 데이터들끼리 묶여서 생성된 변환 행렬을 갖는다.Then, each of the clusters has a transformation matrix generated by binding training data having high similarity.

상기한 과정과 이하 본 발명의 상세한 실시예들은, 도 4 내지 도 6을 참조 하여 상술한 바와 같다.The above process and the following detailed embodiments of the present invention are as described above with reference to FIGS. 4 to 6.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되 며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치를 도시한다.1 shows a data processing apparatus according to an embodiment of the present invention.

도 2는 종래의 Inverse Kinematics 방법을 설명하기 위한 개념도이다.2 is a conceptual diagram illustrating a conventional inverse kinematics method.

도 3은 도 2의 Inverse Kinematics 방법에 의한 동작 추정을 도시한다.FIG. 3 shows motion estimation by the Inverse Kinematics method of FIG. 2.

도 4는 본 발명의 일 실시예에 따라 처리되는 모션 센싱에 의한 입력 데이터에 포함되는 복수 개의 포인트의 물리적 정보를 도시한다.FIG. 4 illustrates physical information of a plurality of points included in input data by motion sensing processed according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따라, 복수 개의 클러스터에 할당되는 입력 데이터를 설명하기 위한 개념도이다.5 is a conceptual diagram illustrating input data allocated to a plurality of clusters according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따라, 모션 센싱에 의해 복수 개의 포인트의 물리적 정보를 포함하는 데이터를 획득하는 과정을 도시한다.6 illustrates a process of acquiring data including physical information of a plurality of points by motion sensing, according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 데이터 처리 방법을 도시한다.7 illustrates a data processing method according to an embodiment of the present invention.

Claims (17)

복수 개의 입력 데이터를 k 개(단, k는 자연수)의 클러스터에 무작위로 할당하는 처리부; 및A processing unit for randomly allocating a plurality of input data to k clusters (where k is a natural number); And 회귀 분석(Regression Analysis)을 이용하여 상기 k 개의 클러스터의 각각에 대응하는 k 개의 변환 행렬을 계산하고, 상기 k 개의 클러스터 중 제1 클러스터에 할당된 제1 데이터에 상기 k 개의 변환 행렬의 각각을 적용한 결과 값을 계산하는 계산부Regression analysis is used to calculate k transform matrices corresponding to each of the k clusters, and apply each of the k transform matrices to first data allocated to a first cluster of the k clusters. Calculation unit for calculating the result value 를 포함하고,Including, 상기 처리부는, 상기 계산된 결과 값에 기초하여, 상기 제1 데이터를 상기 k 개의 클러스터 중 제2 클러스터에 할당하는, 데이터 처리 장치.And the processing unit allocates the first data to a second cluster of the k clusters based on the calculated result value. 제1항에 있어서,The method of claim 1, 상기 복수 개의 입력 데이터의 각각은, 모션 센싱의 한 프레임에서 감지되는 n 개(n은 자연수)의 포인트의 물리적 정보와, 상기 n 개의 포인트 중 n1 개(n1은 자연수)의 특징 포인트(feature point)의 물리적 정보를 포함하는 데이터 처리 장치.Each of the plurality of input data includes physical information of n points (n is a natural number) detected in one frame of motion sensing, and n1 (n1 is a natural number) of the n points. A data processing device comprising the physical information of the. 제1항에 있어서,The method of claim 1, 상기 회귀 분석은, KCCA(Kernel Canonical Correlation Analysis)에 기초한 비선형 분석인, 데이터 처리 장치.The regression analysis is a data processing apparatus that is a nonlinear analysis based on Kernel Canonical Correlation Analysis (KCCA). 제1항에 있어서,The method of claim 1, 상기 회귀 분석은, CCA(Canonical Correlation Analysis)에 기초한 선형 분석인, 데이터 처리 장치.The regression analysis is a linear processing based on Canonical Correlation Analysis (CCA). 제1항에 있어서,The method of claim 1, 상기 처리부는, 상기 계산된 결과 값에 기초하여, 상기 k 개의 변환 행렬 중 상기 제1 데이터와 가장 유사한 결과 값을 제공하는 변환 행렬에 대응하는 제2 클러스터를 결정하고, 상기 제1 데이터를 상기 제2 클러스터에 할당하는, 데이터 처리 장치.The processor determines, based on the calculated result value, a second cluster corresponding to a transform matrix that provides a result value most similar to the first data among the k transform matrices, and converts the first data into the first data. Data processing unit to allocate to 2 clusters. 제1항에 있어서,The method of claim 1, 상기 계산부는, 상기 제1 데이터가 상기 제2 클러스터에 할당된 이후에, 회귀 분석을 이용하여, 상기 제1 클러스터에 대응하는 변환 행렬 및 상기 제2 클러스터에 대응하는 변환 행렬을 계산하여 업데이트 하는, 데이터 처리 장치.After the first data is allocated to the second cluster, the calculation unit calculates and updates a transform matrix corresponding to the first cluster and a transform matrix corresponding to the second cluster by using regression analysis. Data processing unit. 제6항에 있어서,The method of claim 6, 상기 계산부는,The calculation unit, 상기 제1 데이터를 제외하고 상기 제1 클러스터에 대응하는 변환 행렬을 계 산하여 업데이트 하고, 상기 제1 데이터를 포함하고 상기 제2 클러스터에 대응하는 변환 행렬을 다시 계산하여 업데이트 하는 단계를 더 포함하는 데이터 처리 장치.Calculating and updating a transformation matrix corresponding to the first cluster except for the first data, and recalculating and updating the transformation matrix including the first data and corresponding to the second cluster. Data processing unit. 제2항에 있어서,The method of claim 2, 모션 센싱에 의해 감지되는 n1 개의 특징 포인트의 물리적 정보를 포함하는 제2 데이터를 입력 받는 인터페이스를 더 포함하고,The apparatus may further include an interface configured to receive second data including physical information of n1 feature points detected by motion sensing. 상기 처리부는, 상기 k 개의 클러스터 중 상기 제2 데이터와 상관도가 높은 적어도 하나의 클러스터를 선택하고,The processor selects at least one cluster having a high correlation with the second data among the k clusters, 상기 계산부는, 상기 선택된 적어도 하나의 클러스터의 각각에 대응하는 변환 행렬을 상기 제2 데이터에 적용한 결과에 기초하여 상기 제2 데이터에 대응하는 n 개의 포인트의 물리적 정보를 계산하는, 데이터 처리 장치.And the calculation unit calculates physical information of n points corresponding to the second data based on a result of applying a transformation matrix corresponding to each of the selected at least one cluster to the second data. 제8항에 있어서,The method of claim 8, 상기 계산부는, 상기 선택된 적어도 하나의 클러스터의 각각의 변환 매트릭스를 상기 제2 데이터에 적용한 결과 값들에, 상기 제2 데이터와의 상관도에 비례한 가중치를 적용하고, 상기 가중치가 적용된 상기 결과 값들의 선형 합으로서 상기 제2 데이터에 대응하는 n 개의 포인트의 물리적 정보를 계산하는, 데이터 처리 장치.The calculation unit may apply a weight proportional to a correlation with the second data to the result values of applying each transform matrix of the selected at least one cluster to the second data, and apply the weights of the result values to which the weight is applied. And calculate physical information of n points corresponding to the second data as a linear sum. 복수 개의 입력 데이터를 k 개(단, k는 자연수)의 클러스터에 무작위로 할 당하는 단계;Randomly assigning a plurality of input data to k clusters, where k is a natural number; 회귀 분석(Regression Analysis)을 이용하여, 상기 k 개의 클러스터의 각각에 대응하는 k 개의 변환 행렬을 계산하는 단계; 및Calculating k transformation matrices corresponding to each of the k clusters using regression analysis; And 상기 k 개의 클러스터 중 제1 클러스터에 할당된 제1 데이터에 상기 k 개의 변환 행렬의 각각을 적용한 결과에 기초하여, 상기 제1 데이터를 상기 k 개의 클러스터 중 제2 클러스터에 할당하는 단계Allocating the first data to a second cluster of the k clusters based on a result of applying each of the k transformation matrices to first data allocated to a first cluster among the k clusters; 를 포함하는 데이터 처리 방법.Data processing method comprising a. 제10항에 있어서,The method of claim 10, 상기 복수 개의 입력 데이터의 각각은, 모션 센싱의 한 프레임에서 감지되는 n 개(n은 자연수)의 포인트의 물리적 정보와, 상기 n 개의 포인트 중 n1 개(n1은 자연수)의 특징 포인트(feature point)의 물리적 정보를 포함하는 데이터 처리 방법.Each of the plurality of input data includes physical information of n points (n is a natural number) detected in one frame of motion sensing, and n1 (n1 is a natural number) of the n points. Data processing method that includes the physical information of. 제10항에 있어서,The method of claim 10, 상기 회귀 분석은, KCCA(Kernel Canonical Correlation Analysis)에 기초한 비선형 분석인, 데이터 처리 방법.The regression analysis is a non-linear analysis based on Kernel Canonical Correlation Analysis (KCCA). 제10항에 있어서,The method of claim 10, 상기 회귀 분석은, CCA(Canonical Correlation Analysis)에 기초한 선형 분 석인, 데이터 처리 방법.The regression analysis is a linear analysis based on Canonical Correlation Analysis (CCA). 제10항에 있어서,The method of claim 10, 상기 제1 데이터를 제2 클러스터에 할당하는 단계는,Allocating the first data to a second cluster, 상기 k 개의 클러스터 중 상기 제1 클러스터에 할당된 제1 데이터를 상기 k 개의 변환 행렬의 각각에 적용한 결과 값들을 계산하는 단계;Calculating result values of applying the first data allocated to the first cluster among the k clusters to each of the k transformation matrices; 상기 k 개의 변환 행렬 중, 상기 제1 데이터와 가장 유사한 결과 값을 제공하는 변환 행렬에 대응하는 제2 클러스터를 결정하는 단계; 및Determining a second cluster of the k transform matrices corresponding to the transform matrix that provides a result value most similar to the first data; And 상기 제1 데이터를 상기 제2 클러스터에 할당하는 단계Allocating the first data to the second cluster 를 포함하는 데이터 처리 방법.Data processing method comprising a. 제10항에 있어서,The method of claim 10, 회귀 분석을 이용하여, 상기 제1 데이터를 제외하고 상기 제1 클러스터에 대응하는 변환 행렬을 계산하여 업데이트 하고, 상기 제1 데이터를 포함하고 상기 제2 클러스터에 대응하는 변환 행렬을 다시 계산하여 업데이트 하는 단계를 더 포함하는 데이터 처리 방법.Regression analysis is performed to calculate and update a transformation matrix corresponding to the first cluster except for the first data, and to recalculate and update the transformation matrix including the first data and corresponding to the second cluster. The data processing method further comprises a step. 제11항에 있어서,The method of claim 11, 모션 센싱에 의해 감지되는 n1 개의 특징 포인트의 물리적 정보를 포함하는 제2 데이터가 입력되는 경우,When second data including physical information of n1 feature points detected by motion sensing is input, 상기 k 개의 클러스터 중 상기 제2 데이터와 상관도가 높은 적어도 하나의 클러스터를 선택하는 단계; 및Selecting at least one cluster having a high correlation with the second data among the k clusters; And 상기 선택된 적어도 하나의 클러스터의 각각에 대응하는 변환 행렬을 상기 제2 데이터에 적용한 결과에 기초하여 상기 제2 데이터에 대응하는 n 개의 포인트의 물리적 정보를 계산하는 단계Calculating physical information of n points corresponding to the second data based on a result of applying a transformation matrix corresponding to each of the selected at least one cluster to the second data; 를 포함하는 데이터 처리 방법.Data processing method comprising a. 제10항 내지 제16항 중 어느 한 항에 있어서,The method according to any one of claims 10 to 16, 상기 데이터 처리 방법을 수행하기 위한 명령어를 수록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium containing instructions for performing the data processing method.
KR1020090043587A 2009-05-19 2009-05-19 Data processing apparatus and method KR20100124532A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090043587A KR20100124532A (en) 2009-05-19 2009-05-19 Data processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090043587A KR20100124532A (en) 2009-05-19 2009-05-19 Data processing apparatus and method

Publications (1)

Publication Number Publication Date
KR20100124532A true KR20100124532A (en) 2010-11-29

Family

ID=43408723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090043587A KR20100124532A (en) 2009-05-19 2009-05-19 Data processing apparatus and method

Country Status (1)

Country Link
KR (1) KR20100124532A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150065433A (en) * 2013-12-05 2015-06-15 건국대학교 산학협력단 Algorithm device and clustering device including the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020095501A (en) * 2001-06-14 2002-12-27 엘지전자 주식회사 Fast clustering algorithm using scalar calculation
JP2007272890A (en) * 2006-03-31 2007-10-18 Fujifilm Corp Method and device for performing constrained spectral clustering of digital image data
JP2009087326A (en) * 2007-09-27 2009-04-23 Mitsubishi Electric Research Laboratories Inc Method and system for specifying location of object in image

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020095501A (en) * 2001-06-14 2002-12-27 엘지전자 주식회사 Fast clustering algorithm using scalar calculation
JP2007272890A (en) * 2006-03-31 2007-10-18 Fujifilm Corp Method and device for performing constrained spectral clustering of digital image data
JP2009087326A (en) * 2007-09-27 2009-04-23 Mitsubishi Electric Research Laboratories Inc Method and system for specifying location of object in image

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PUBLISHED IN ACM TRANSACTIONS ON GRAPHICS *
SEOUL NATIONAL UNIVERSITY *
SPRINGERLINK.COM *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150065433A (en) * 2013-12-05 2015-06-15 건국대학교 산학협력단 Algorithm device and clustering device including the same

Similar Documents

Publication Publication Date Title
US11004202B2 (en) Systems and methods for semantic segmentation of 3D point clouds
JP7005669B2 (en) Methods and systems for performing convolutional image transformation estimates
CN110998659B (en) Image processing system, image processing method, and program
Sidhu et al. Neural dense non-rigid structure from motion with latent space constraints
US9747668B2 (en) Reconstruction of articulated objects from a moving camera
CN109684969B (en) Gaze position estimation method, computer device, and storage medium
KR20210075225A (en) Deep learning system for cuboid detection
CN107851332B (en) Consistent subdivision via topology aware surface tracking
JP2023529527A (en) Method and apparatus for generating point cloud data
KR20130082425A (en) Object recognition apparatus, classification tree learning apparatus and method thereof
US11748937B2 (en) Sub-pixel data simulation system
WO2021044122A1 (en) Scene representation using image processing
JP2016099982A (en) Behavior recognition device, behaviour learning device, method, and program
Dundar et al. Unsupervised disentanglement of pose, appearance and background from images and videos
CN109035303B (en) SLAM system camera tracking method and device, and computer readable storage medium
US20210312637A1 (en) Map segmentation method and device, motion estimation method, and device terminal
JP2021060989A (en) Multimodal dense correspondence imaging system
JP2014085933A (en) Three-dimensional posture estimation apparatus, three-dimensional posture estimation method, and program
KR20100138658A (en) Data processing apparatus and method
CN115362478A (en) Reinforcement learning model for spatial relationships between labeled images
CN115457492A (en) Target detection method and device, computer equipment and storage medium
KR102564849B1 (en) System, apparatus and method for recognizing motion of multi-users
Feng et al. Pie-nerf: Physics-based interactive elastodynamics with nerf
CN110348359B (en) Hand gesture tracking method, device and system
JP2019016164A (en) Learning data generation device, estimation device, estimation method, and computer program

Legal Events

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