KR20100124532A - Data processing apparatus and method - Google Patents
Data processing apparatus and method Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements 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
Description
본 발명의 일부 실시예들은 모션 센싱에 의해 축적된 학습 데이터를 분석하는 데이터 처리 장치 및 방법에 관한 것이다. 보다 특정하게는, 모션 센싱이 있는 경우, 상기 학습 데이터의 분석을 통해 아바타(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
본 발명의 일 실시예에 따르면, 데이터 처리 장치(100)은 I/O 인터페이스(110)를 포함한다. 상기 인터페이스(110)는 센싱된 학습 데이터, 캡쳐 하고자 하는 데이터, 결과 값 들을 외부와 주고 받는 경로이다.According to an embodiment of the present invention, the
동작 추정을 위한 변환 행렬을 계산하기 위한 학습 데이터는 인터페이스(110)을 통해 입력되어 우선 제1 저장부(140)에 저장된다.The training data for calculating the transformation matrix for the motion estimation is input through the
본 발명의 일 실시예에 따르면, 처리부(120)는 상기 제1 저장부(!40)에 저장된 복수 개의 학습 데이터를 우선, k 개(k는 자연수)의 클러스터에 랜덤하게 할당하여 제2 저장부(150)에 저장한다. 이 경우, 유사한 학습 데이터들끼리 동일한 클러스터에 할당되는 것이 보장되지 않을 수 있다.According to an embodiment of the present invention, the
그리고, 계산부(130)은상기 k 개의 클러스터 각각의 변환 행렬을 계산한다. 상기 변환 행렬을 구하는 상세한 과정은 도 4를 참조하여 상세히 후술한다.The
그리고 처리부(120)는 상기 k 개의 클러스터 중, 제1 클러스터 내의 어느 한 학습 데이터(제1 학습 데이터)를 선택한다. 그리고, 계산부(130)가 상기 제1 학습 데이터를 상기 k 개의 클러스터의 각각에 대한 변환 행렬에 적용하고 그 결과를 제공하면, 처리부(120)는 상기 결과를 비교한다.The
만약 제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
그러나, 만약 제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
본 발명의 일 실시예에 따르면, 이 경우, 상기 제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
그러면, 상기 각 클러스터들은 유사도가 높은 학습 데이터들끼리 묶여서 생성된 변환 행렬을 갖는다.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
루트(root) 포인트(210), 리프(leaf) 포인트(220) 및 그 사이의 포인트(221, 222) 중 이웃하는 두 포인트 간의 위치는 서로 연관되어 있다.The position between two neighboring points of the
이를 테면, 포인트(210)과 포인트(221)의 위치는, 서로 거리는 일정하고 상대적 위치(각도)만 바뀔 뿐이다. 포인트(221)과 포인트(222), 또는 포인트(222)와 포인트(220) 역시 마찬가지이다.For example, the position of the
따라서, 2차원 공간만을 가정할 때, 루트 포인트(210)의 위치와, 상기 포인트들 중 이웃하는 포인트 간의 거리가 미리 알려져 있다면, 포인트(221), 포인트(222) 및 포인트(220)의 위치는 세 개의 각도만이 주어지면 알 수 있다.Thus, assuming only two-dimensional space, if the location of the
한편, 포인트(220)의 위치가 주어졌을 때, 포인트(221) 및 포인트(222)를 구할 수도 있다. 보다 상세한 내용이 도 3을 참조하여 후술된다.On the other hand, given the location of the
도 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
이 경우, l1, l2, 및 l3는 상수(constant)이고, 루트 포인트(310)을 원점으로 가정하면, 포인트(320)의 좌표 (x, y)는 아래 수학식과 같다.In this case, l 1 , l 2 , and l 3 are constants, and assuming the
[수학식 1][Equation 1]
여기서 추가적인 정보(이를 테면, 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
즉, 루트 포인트(310)에 대한 포인트(320)의 상대적 좌표만 알아도 나머지 포인트(321 및 322)의 위치를 계산할 수 있다. 이러한 과정을 Inverse Kinematics라 한다. 상기 예에서, Inverse Kinematics 방법에 의해 (루트 포인트(310)을 제외한) 한 개의 포인트(320)의 물리적 정보(상대적 좌표(x, y))를 이용하여, 포인트(321) 포인트(322)의 물리적 정보(좌표)를 구할 수 있었다.That is, even if only the relative coordinates of the
그런데, 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
포인트(411), 포인트(441) 및 포인트(451)은 각각 루트 포인트(400)에 연관된다. 또한, 포인트(410), 포인트(421) 및 포인트(431)은 포인트(411)에 연관되고, 포인트(442)는 포인트(441)에, 그리고 포인트(452)는 포인트(451)에 각각 연관 된다.
나아가, 포인트(420)은 포인트(422)에, 포인트(430)은 포인트(432)에, 포인트(440)은 포인트(442)에, 그리고 포인트(450)은 포인트(452)에 각각 연관된다.Further,
상기 연관된 포인트들 간의 관계는, 루트 포인트(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
상기 특징점 포인트들과 전체 포인트들 사이의 물리적 정보의 상관 관계가 학습되면, 나중에 상기 특징점 포인트들의 물리적 정보만 센싱되어 입력되는 경우에, 전체 포인트들의 물리적 정보를 계산할 수 있다.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
이러한 프레임 데이터가 복수 개 입력되는 경우, 처리부(120)는 입력되는 복수 개의 프레임 데이터를 제1 저장부(140)에 저장한다.When a plurality of such frame data is input, the
그리고, 처리부(120)는 상기 제1 저장부(140)에 저장된 복수 개의 입력 데이터(학습 데이터(training data)라고도 함, 이하 같음)를 복수 개의 그룹(이하에서는 "클러스터"라고도 함)으로 나눈다.In addition, the
본 발명의 일 실시예에 따르면, 상기 처리부(120)는 상기 제1 저장부에 저장된 복수 개의 학습 데이터를 임의로(randomly) k 개(단, k는 자연수)의 클러스터에 분배한다. 이 경우, 각 학습 데이터 간의 상관도는 고려되지 않을 수 있다.According to an embodiment of the present invention, the
그리고, 계산부(130)는 k 개의 클러스터에 각각에 속한 학습 데이터를 회귀 분석(Regression Analysis)해서 각 클러스터에 해당하는 k 개의 변환 행렬을 계산한다.The
상기한 바와 같이, 상기 변환 행렬은 한 프레임의 동작 캡쳐를 위해 요구되는 전체 포인트 중, 일부의 특징 포인트만 입력될 때, 이를 이용하여 전체 포인트를 추정할 수 있도록 하는 연산자(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.
다음은 입력 데이터 를 입력 데이터 보다 더 높은 차원인 feature space로 변환하는 매핑(mapping)을 나타내는 식이다.Here is the input data This expression represents the mapping to transform the feature into a feature space that is higher than the input data.
[수학식 2][Equation 2]
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.
커널 함수 는 feature space에 존재하는 두 벡터의 내적, 이다. 예를 들면 입력데이터 가 주어져 있을 때, 입력 데이터를 2차 monomial 형태로 변환하면 이 된다. 이때 커널 함수는 다음과 같이 나타낼 수 있다.Kernel functions Is the dot product of two vectors in feature space, to be. For example input data Given, converting the input data to the second order monomial form Becomes In this case, the kernel function can be expressed as:
[수학식 3]&Quot; (3) "
(3) KCCA(Kernel CCA)(3) KCCA (Kernel CCA)
개의 입력 데이터 쌍을 라 하고, 여기서 , 이며,는 i 번째 학습의 입력 값, 는 i 번째 학습의 출력 값이다. 학습의 입력, 출력 값을 다음과 같은 행렬의 형태로 나타내자. Input data pairs Where, , , Is the input value of the i th training, 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) "
선형 관계를 학습하는 CCA에서는 두 데이터의 상관관계(correlation) 를 최대로 하는 식은 다음과 같이 나타낼 수 있다.In CCA learning linear relationships, the correlation of two data The equation for maximizing can be expressed as
[수학식 5][Equation 5]
상기 수학식 5에서, , 이고, 이다.In Equation 5, , ego, to be.
그런데 차원을 높인 Kernel CCA에서는 상호 상관 정도를 나타내는 , , 를 다음과 같이 나타낼 수 있다.However, in Kernel CCA, which has raised the dimension, , , Can be expressed as
[수학식 6]&Quot; (6) "
또한 , 가 비선형 변환이 된 더 높은 차원에서 기저(basis) 쌍인 , 는, 와 가 이루는 공간에 존재하기 때문에, , 로 나타낼 수 있다.Also , Is a base pair in the higher dimension with nonlinear transformation , Quot; Wow Because it exists in the space that , It can be represented as.
이 경우, Kernel CCA에서 두 데이터의 상관관계 를 최대로 하는 식은 다음과 같이 나타낼 수 있다.In this case, the correlation of the two data in the Kernel CCA The equation for maximizing can be expressed as
[수학식 7][Equation 7]
여기서, 이고, 이다.here, ego, to be.
이 경우, i 번째 은, SVD(singular value decomposition)를 통해서 다음과 같이 구할 수가 있다.In this case, the i th Can be obtained through SVD (singular value decomposition) as follows.
[수학식 8][Equation 8]
[수학식 9][Equation 9]
여기서 , 는 각각 번째의 , 열 벡터(column vector)이다. 위와 같은 방법으로 , 의 쌍을 여러 개 얻을 수가 있는데, 최대 개를 얻을 수 있다.here , Respectively Th , It is a column vector. In the same way as above , You can get multiple pairs of up to You can get a dog.
여기서 입력데이터의 차원을 줄이기 위해서 입력데이터 차원보다 작은 개의 , 를 추출한다. 추출한 , 들을 행렬 형태로 나타내면 아래와 같다.In order to reduce the dimension of the input data, doggy , Extract Extracted , These are expressed in matrix form as follows.
[수학식 10][Equation 10]
그리고, 입력 값 를 basis 에 사영(projection) 한다.And input value Basis Project on.
[수학식 11][Equation 11]
따라서 차원이 축소된 입력데이터 는 다음과 같이 계산된다.Therefore, the input data with reduced dimensions Is calculated as follows.
[수학식 12][Equation 12]
이 경운, 는 커널 함수들로 이루어진 벡터로 이 벡터의 번째 원소는 이다.This tillage, Is a vector of kernel functions. The first element to be.
(4) Regression(4) Regression
본 발명의 실시예에 따름 Regression은 크게 3가지 단계를 포함할 수 있다.According to an embodiment of the present invention, regression may include three steps.
먼저, 개의 입력 쌍 가 있을 때, Kernel CCA 방법으로 개의 기저들을 얻어낸다.first, Input pairs When there is, Kernel CCA way Get the bases of the dogs.
그리고, , 에서 , 로 mapping 하는 행렬 를 상기 최소자승법을 통해서 구하게 된다.And, , in , Matrices mapped by Is obtained by the least square method.
[수학식 13][Equation 13]
여기까지가 축소된 차원에서의 변환행렬을 구한 것이라면, 다음은 축소된 차원에서 출력 값으로 변환하는 행렬 를 구한다. 이 경우는 전 단계와 마찬가지로 최소자승법으로 구한다.If so far we have obtained the transformation matrix in the reduced dimension, then . In this case, the least square method is obtained as in the previous step.
[수학식 14][Equation 14]
이렇게 구해진 , , 는 연속적인 선형 mapping이므로, 하나의 연산자 로 만들 수 있다.So obtained , , Is a continuous linear mapping, so one operator Can be made with
따라서 새로운 입력 값 가 있다면 원하는 출력 값 는 아래 수학식에 의해 계산될 수 있다.So new input value Output value you want Can be calculated by the following equation.
[수학식 15][Equation 15]
여기서 구해지는 연산자가 상기한 변환 행렬이다.Obtained here The operator is the transformation matrix described above.
본 발명의 일 실시예에 따르면, 도 1의 계산부(130)는 상기 k 개의 클러스터의 각각에 대해 상기 변환 행렬을 구한다. 이하 과정은 도 5을 참조하여 설명한다.According to an embodiment of the present invention, the
도 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
학습 데이터(510)과 학습 데이터(520)은 서로 유사한 제1 행동(이를 테면, 권투 경기) 중에 획득된 것이다. 그리고, 학습 데이터(530)과 학습 데이터(540)는 서로 유사한 제2 행동(이를 테면, 스노우 보딩) 중에 획득된 것이다. 또한, 학습 데이터(550)과 학습 데이터(560)는 서로 유사한 제3 행동(이를 테면, 수영) 중에 획득된 것이다.The
이러한 경우, 학습 데이터(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
이를 테면, 학습 데이터(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
본 발명의 일 실시예에 따르면, 상기 입력된 복수 개의 학습 데이터들 상호간을 비교하여 유사한 것끼리 클러스터링을 수행하고, 각 클러스터 마다의 변환 행렬을 계산한다.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
이 경우, 학습 데이터(510)과 학습 데이터(520)가 같은 클러스터에 할당되는 것이 보장되지 않는다. 이를테면, 학습 데이터(510)과 학습 데이터(530)이 동일한 제1 클러스터에 할당되고, 학습 데이터(520)과 학습 데이터(540)이 동일한 제2 클러스터에 할당될 수 있다.In this case, it is not guaranteed that the
본 발명의 일 실시예에 따르면, 이 상태에서 계산부(130)가 상기 제1 클러스터와 상기 제2 클러스터 등에 대해 각각의 변환 행렬을 구한다.According to an embodiment of the present invention, the
그리고, 처리부(120)가 상기 제1 클러스터 내의 어느 한 학습 데이터를 선택한다. 이를테면, 처리부(120)는 학습 데이터(530)을 선택한다. 이 경우, 학습 데이터의 선택은 순차적일 수도 있고, 또는 랜덤할 수도 있다.Then, the
그리고, 계산부(130)는 상기 선택된 학습 데이터(530)를 상기 제1 클러스터에 대한 변환 행렬에 적용한 결과 값, 상기 제2 클러스터에 대한 변환 행렬에 적용한 결과 값 등을 모두 계산한다.In addition, the
이 경우 처리부(120)는 계산된 결과 값들을 비교하여, 만약 제1 클러스터에 대한 변환 행렬보다 더 유사한 결과 값을 제공하는 변환 행렬이 존재하지 않는다면, 상기 학습 데이터(530)는 제1 클러스터에 그대로 유지한다.In this case, the
그러나, 만약 제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
그리고, 상기 제1 클러스터의 경우, 상기 학습 데이터(530)를 제외하고 상기 제1 클러스터에 속하는 나머지 학습 데이터들로만 다시 변환 행렬을 구한다. 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In the case of the first cluster, except for the
또한, 상기 제2 클러스터의 경우, 상기 학습 데이터(530)를 새로 포함해서 상기 제2 클러스터에 속하는 전체 학습 데이터들을 이용하여, 다시 변환 행렬을 구한다. 역시 새로 구해진 변환 행렬은 기존의 변환 행렬을 대체한다.In addition, in the case of the second cluster, a transformation matrix is obtained again by using the
이러한 과정을 소정의 종료 조건(이를 테면, 모든 학습 데이터에 대해 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)의 물리적 정보를 분석한다. 이를테면, 방향, 각속도, 각가속도 등이다.
그러면, 도 1의 처리부(120)는 상기 5 개의 포인트(610 내지 650) 정보를 포함하는 데이터를 위해, 상기 k 개의 클러스터 중 유사도가 높은 어느 하나의 클러스터의 변환 행렬을 선택한다. 그리고, 계산부(130)은, 상기 데이터에 상기 선택된 변환 행렬을 적용하여, 전체 포인트(이를 테면 15개)의 동작을 추정한 값을 계산한다.Then, the
이를 테면, 상기 5 개의 포인트(610 내지 650) 정보를 포함하는 데이터가 입력되는 경우, 도 4의 전체 포인트 정보가 계산될 수 있다.For example, when data including the five
본 발명의 일부 실시예에서는, 상기 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)
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)
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)
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 |
-
2009
- 2009-05-19 KR KR1020090043587A patent/KR20100124532A/en not_active Application Discontinuation
Patent Citations (3)
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)
Title |
---|
PUBLISHED IN ACM TRANSACTIONS ON GRAPHICS * |
SEOUL NATIONAL UNIVERSITY * |
SPRINGERLINK.COM * |
Cited By (1)
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 |