KR20210119654A - Method for removing errors in human motion implementation using tangential velocity vector - Google Patents
Method for removing errors in human motion implementation using tangential velocity vector Download PDFInfo
- Publication number
- KR20210119654A KR20210119654A KR1020200036009A KR20200036009A KR20210119654A KR 20210119654 A KR20210119654 A KR 20210119654A KR 1020200036009 A KR1020200036009 A KR 1020200036009A KR 20200036009 A KR20200036009 A KR 20200036009A KR 20210119654 A KR20210119654 A KR 20210119654A
- Authority
- KR
- South Korea
- Prior art keywords
- motion
- error
- human
- motion data
- position vector
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G06K9/00362—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- 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/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
Description
본 발명은 휴면 모션 구현의 오차 제거 방법에 관한 것으로, 보다 상세하게는 모션 캡쳐 시스템의 출력값인 모션 데이터를 통하여 휴먼 모션 구현 시 접선 속도 벡터를 이용하여 모션 데이터의 오차를 실시간으로 제거함으로써 휴먼 모션 구현의 효율성을 높일 수 있도록 하는 접선 속도 벡터를 이용한 휴먼 모션 구현의 오차 제거 방법에 관한 것이다. The present invention relates to a method for removing an error of realizing dormant motion, and more particularly, realizing human motion by removing the error of motion data in real time by using a tangential velocity vector when realizing human motion through motion data, which is an output value of a motion capture system. It relates to a method for eliminating errors in human motion implementation using tangential velocity vectors to increase the efficiency of
모션 캡쳐 시스템(Motion Cature System)은 신체에 센서를 부착하는 센서방식 또는 적외선 카메라 등을 이용하는 광학방식 등의 방법을 통하여 인체의 움직임을 파악하고 이를 디지털 형태로 기록하게 된다. 이러한 모션 캡쳐 시스템을 통해 얻어지는 모션 데이터는 디지털 콘텐츠로서, 애니메이션이나 영화 게임, 동작분석, 재활 등 다양하게 활용된다. A motion capture system detects the movement of a human body through a method such as a sensor method that attaches a sensor to the body or an optical method using an infrared camera, and records it in digital form. Motion data obtained through such a motion capture system is digital content and is used in various ways, such as animation, movie games, motion analysis, and rehabilitation.
한편, 카메라를 이용한 광학방식의 모션 캡쳐 시스템의 경우 마커 손실이나 반사 물질 등으로 모션 데이터에 오차가 생길 수 있으며, 센서방식의 모션 캡쳐 시스템의 경우에도 센서 오차나 알고리즘 예외값 등으로 인해 모션 데이터에 오차가 생길 수 있다. 이러한 경우 표현하고자 하는 캐릭터의 관절이 뒤틀리게 보이거나 캐릭터 모션이 튀는 현상이 발생하여 정밀한 모션구현이 어렵게 된다. 종래에는 이러한 문제를 주로 LPF(Low pass filter) 등의 보간 필터를 통해 이를 해결하고 있으나, 필터 사용 시 발생하는 시간 지연으로 인해 실시간 모션 구현에 장애가 되고 있다. On the other hand, in the case of an optical motion capture system using a camera, an error may occur in the motion data due to loss of markers or reflective materials. Errors may occur. In this case, the joints of the character to be expressed appear distorted or the character motion is bouncing, making it difficult to implement precise motion. Conventionally, this problem is mainly solved through an interpolation filter such as a low pass filter (LPF).
또한, 모션 캡쳐 시스템을 통한 캐릭터 모션 구현은 애니메이터의 후작업이 필요한데, 모션 캡쳐 시스템의 오차가 많을 경우 애니메이터의 수작업의 증가로 인하여 작업의 지연 뿐만 아니라 비용이 증가하는 문제도 발생하고 있다. In addition, the realization of character motion through the motion capture system requires an animator's post-work, and when there are many errors in the motion capture system, there is a problem that not only delays the work but also increases the cost due to the increase of the animator's manual work.
본 발명은 종래 휴먼 모션 구현 과정에서 발생하는 문제점을 해결하기 위하여 제안된 것으로서, 본 발명의 목적은 모션 캡쳐 시스템을 통하여 출력되는 모션 데이터의 오차를 실시간으로 제거하여 보다 정확한 휴먼 모션을 구현할 수 있도록 하는 휴먼 모션 구현의 오차 제거 방법을 제공하는데 있다. The present invention has been proposed to solve a problem that occurs in the conventional human motion implementation process, and an object of the present invention is to eliminate errors in motion data output through a motion capture system in real time to implement more accurate human motion. An object of the present invention is to provide a method for eliminating errors in human motion implementation.
상기 목적을 달성하기 위한 본 발명에 따른 휴먼 모션 구현의 오차 제거 방법은 휴먼 모션 구현 시스템에서 인체 모션 데이터를 이용하여 휴먼 모션 구현 시 발생하는 오차를 제거하는 방법으로서, 휴먼 모션 구현 시스템의 모션 데이터 수집부에서 휴먼 모션 구현을 위한 인체 각 부위별 모션 데이터를 수집하는 단계(a)와; 모션 오차 제거부에서 현재 프레임 모션 데이터를 분석하여 오차가 발생하였는지를 확인하는 단계(b)와; 오차가 발생한 것으로 확인되면 현재 프레임 모션 데이터의 위치 벡터를 삭제하고, 이전 프레임 모션 데이터를 이용하여 현재 프레임 모션 데이터의 위치 벡터를 추정하는 단계(c)와; 모션 구현부에서 오차가 발생하지 않은 현재 프레임 모션 데이터의 위치 벡터 또는 추정된 위치 벡터를 적용하여 휴먼 모션을 구현하는 단계(d);를 포함한다. In order to achieve the above object, a method for removing an error in human motion implementation according to the present invention is a method of removing an error that occurs when implementing human motion by using human motion data in a human motion realization system, and collecting motion data in a human motion realization system Collecting motion data for each part of the human body for realizing human motion in the unit (a); (b) checking whether an error has occurred by analyzing the current frame motion data in the motion error removing unit; (c) deleting a position vector of the current frame motion data when it is confirmed that an error has occurred, and estimating a position vector of the current frame motion data using the previous frame motion data; and implementing human motion by applying the position vector or the estimated position vector of the current frame motion data in which an error does not occur in the motion implementation unit (d).
상기 오차가 발생하였는지를 확인하는 단계(b)는 현재 프레임의 모션 데이터에 포함된 인체의 각 마디별 3차원 회전을 구현하는 단계와, 구현된 각 마디별 3차원 회전으로부터 각속도를 계산하는 단계와, 각 마디별 시작점을 원점으로 하는 원운동에 기반한 위치 벡터 및 각속도를 이용하여 접선 속도 벡터를 계산하는 단계와, 계산된 접선 속도 벡터를 사용자가 설정한 임계치와 비교하여, 접선 속도 벡터가 임계치보다 큰 경우 오차가 발생한 것으로 판단하는 단계를 포함한다. The step (b) of confirming whether the error has occurred comprises the steps of implementing a three-dimensional rotation for each joint of the human body included in the motion data of the current frame, and calculating an angular velocity from the implemented three-dimensional rotation for each joint; Calculating a tangential velocity vector using a position vector and angular velocity based on a circular motion with the starting point of each node as the origin, and comparing the calculated tangential velocity vector with a threshold set by the user so that the tangential velocity vector is greater than the threshold case, determining that an error has occurred.
여기서, 상기 인체의 각 마디별 3차원 회전을 구현하는 단계(b-1)에서, 상기 모션 오차 제거부는 현재 프레임에서 모션 데이터를 글로벌 좌표계를 기준으로 x축으로 φ(롤), y축으로 θ(피치), z축으로 Ψ(요) 값으로 회전하여 인체 모션 데이터의 각 마디를 3차원 상에 표현하게 된다. Here, in the step (b-1) of implementing the three-dimensional rotation for each joint of the human body, the motion error removing unit converts the motion data in the current frame to φ (roll) on the x-axis and θ on the y-axis based on the global coordinate system. Each node of the human body motion data is expressed in 3D by rotating the (pitch) and Ψ (yaw) values along the z-axis.
또한, 상기 각속도를 계산하는 단계(b-2)에서, 상기 구현된 각 마디별 3차원 회전으로부터 각 마디의 시작점을 원점으로 하는 원주 성분()을 계산하고, 각 마디 이전 프레임의 원주 성분()과 현재 프레임의 원주 성분()을 이용하여 수학식 (여기서, dt는 현재 프레임과 이전 프레임의 시간 차이를 나타낸다)을 통해 각속도 를 계산하게 된다. In addition, in the step (b-2) of calculating the angular velocity, the circumferential component ( ), and the circumferential component of the frame before each measure ( ) and the circumferential component of the current frame ( ) using the formula (where dt represents the time difference between the current frame and the previous frame) through the angular velocity will be calculated
뿐만 아니라, 상기 접선 속도 벡터를 계산하는 단계(b-3)에서, 각 마디별 시작점을 원점으로 하는 원운동에 기반한 위치 벡터()의 크기가 마디의 길이 인 경우, 접선 속도 벡터()는 위치 벡터의 회전 방향으로 발생하는 궤도 속도 벡터로 수학식 을 통해 계산된다. In addition, in the step (b-3) of calculating the tangential velocity vector, the position vector ( ) is the length of the node If , the tangential velocity vector ( ) is the orbital velocity vector occurring in the direction of rotation of the position vector. is calculated through
상기 오차가 발생한 것으로 판단하는 단계(b-4)에서 오차 발생 유무 판단 기준이 되는 임계치는 마디별 또는 휴먼 캐릭터별로 다르게 지정 가능한 것이 바람직하다. In step (b-4) of determining that the error has occurred, it is preferable that the threshold value serving as a criterion for determining whether an error has occurred can be designated differently for each node or for each human character.
한편, 상기 위치 벡터를 추정하는 단계(c)에서, 이전 프레임의 위치 벡터()와 이전 프레임에서 계산한 접선 속도 벡터()를 이용하여 수학식 , 을 통해 극좌표성분 과 를 계산하고, 이를 통하여 최종 위치 벡터 를 추정하게 된다. On the other hand, in the step (c) of estimating the position vector, the position vector of the previous frame ( ) and the tangential velocity vector computed from the previous frame ( ) using the formula , polar coordinate component through class computes, and through this, the final position vector will be estimated
본 발명의 휴먼 모션 구현의 오차 제거 방법에 따르면, 모션 캡쳐 시스템을 통하여 출력된 현재 프레임의 모션 데이터가 오차임이 판단될 경우, 이전 프레임의 모션 데이터를 바탕으로 현재 프레임의 위치 데이터가 추정되어 자연스러운 모션 구현이 가능하며, 이에 따라 실시간으로 캐릭터의 모션을 구현하는 콘텐츠를 제작할 수 있게 된다. According to the error removal method of human motion implementation of the present invention, when it is determined that the motion data of the current frame output through the motion capture system is an error, the position data of the current frame is estimated based on the motion data of the previous frame, resulting in natural motion It is possible to implement it, and accordingly, it is possible to create content that implements the motion of a character in real time.
특히, 현재 프레임의 모션 데이터가 오차가 아닌 정상 데이터의 경우 모션 구현에 직접적으로 사용됨으로써 시간 지연 없이 실시간으로 모션 구현이 가능하다. 또한, 캐릭터의 각 마디별 접선 속도 벡터의 임계치 지정이 가능하고, 모션 캡쳐 대상에 따라 임계치 조정이 가능하여, 다양한 모션을 캡쳐하는데 유용한 효과가 있다. In particular, since the motion data of the current frame is not an error but is directly used for the motion implementation, it is possible to implement the motion in real time without a time delay. In addition, it is possible to specify the threshold value of the tangential velocity vector for each node of the character, and it is possible to adjust the threshold according to the motion capture target, which is useful for capturing various motions.
도 1은 본 발명에 따른 휴먼 모션 구현 시스템의 블록 구성도,
도 2는 본 발명에 따른 휴먼 모션 구현 시스템을 통하여 휴먼 모션 구현이 이루어지는 과정을 나타낸 흐름도,
도 3은 본 발명에 따른 글로벌 좌표계에서의 3차원 회전 구현 개념도,
도 4는 본 발명에 따른 인체 각 마디 원점 기준 위치 벡터의 일례,
도 5는 본 발명에 따른 접선 속도 벡터를 계산하는 과정을 나타낸 흐름도,
도 6은 본 발명에 따른 원운동을 기반으로 표현되는 벡터 일례,
도 7은 본 발명에 따른 임계치 비교 및 오차 유무 판단 과정을 나타낸 흐름도,
도 8은 본 발명에 따른 위치 벡터를 추정하는 방법을 나타낸 개념도이다.1 is a block diagram of a human motion implementation system according to the present invention;
2 is a flowchart showing a process of implementing human motion through the system for implementing human motion according to the present invention;
3 is a conceptual diagram of a three-dimensional rotation implementation in a global coordinate system according to the present invention;
4 is an example of the reference position vector of the origin of each node of the human body according to the present invention;
5 is a flowchart showing a process of calculating a tangential velocity vector according to the present invention;
6 is an example of a vector expressed based on a circular motion according to the present invention;
7 is a flowchart showing a threshold comparison and error determination process according to the present invention;
8 is a conceptual diagram illustrating a method for estimating a position vector according to the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 실시 예에 따른 휴먼 모션 구현 시스템의 블록 구성도를 나타낸 것이다. 1 is a block diagram showing a human motion implementation system according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명에 따른 휴먼 모션 구현 시스템(100)은 휴먼 모션 구현에 적용되는 모션 데이터의 오차를 실시간으로 제거하여 휴먼 모션을 구현하는 장치로서, 이 휴먼 모션 구현 시스템(100)은 독립적인 장치로 구성될 수도 있고 컴퓨터에 탑재되어 구동되는 프로그램인 애니매이션 콘텐츠 제작용 3D 엔진 등으로 제작될 수 있다. As shown in FIG. 1 , the human
본 발명에 따른 휴먼 모션 구현 시스템(100)에는 외부의 모션 캡쳐 시스템으로부터 모션 데이터를 수집하는 모션 데이터 수집부(120)와, 상기 모션 데이터 수집부(120)를 통하여 수집된 모션 데이터의 오차를 확인하여 오차가 있는 것으로 판단되는 경우 오차를 제거하는 모션 오차 제거부(130)와, 오차가 제거된 모션 데이터를 통하여 휴먼 모션을 구현하는 모션 구현부(140)와, 상기 각 구성부의 동작을 제어하는 제어부(110)가 구비된다. In the human
상기 모션 데이터 수집부(120)는 휴먼 모션을 구현하기 위한 모션 데이터를 수집하게 되는데, 이 모션 데이터 수집부(120)는 인체의 모션을 그대로 표현하는 모션 캡쳐 시스템을 통하여 생성되는 인체 각 부위별 모션 데이터를 수집하여 저장하게 된다. The motion
상기 모션 오차 제거부(130)는 모션 데이터 수집부(120)를 통하여 수집된 모션 데이터의 오차를 확인하여 제거하게 되는데, 이 모션 오차 제거부(130)는 모션 데이터에 포함된 인체의 각 마디별 3차원 회전을 구현하여 각속도를 계산하고, 이를 통하여 접선 속도 벡터를 계산하여 임계치와 비교함으로써 오차 유무를 확인하게 된다. 만약, 오차가 발생한 것으로 확인되면 오차값으로 판단된 현재 프레임의 위치 벡터는 삭제되고, 삭제된 위치 벡터 대신 이전 프레임의 위치 벡터를 이용하여 현재 위치 벡터를 추정하게 된다. The motion
상기 모션 구현부(140)는 정상으로 판단된 모션 데이터를 통하여 휴먼 모션을 구현하게 되는데, 이 모션 구현부(140)는 모션 오차 제거부(130)를 통하여 오차가 발생하지 않은 것으로 판단된 정상 모션 데이터의 경우 현재 값을 이용하여 최종 모션을 구현하고, 모션 데이터가 오차가 발생한 것으로 판단되어 삭제된 위치 벡터는 새로 추정된 위치 벡터를 통하여 최종 모션을 구현하게 된다.The
이하에서는 상기 구성으로 이루어진 휴먼 모션 구현 시스템(100)을 통하여 휴먼 모션이 구현되는 과정에 대하여 설명하기로 한다. Hereinafter, a process in which human motion is implemented through the human
도 2는 본 발명의 실시 예에 따른 휴먼 모션 구현 시스템을 통하여 휴먼 모션 구현이 이루어지는 과정을 나타낸 흐름도이다. 2 is a flowchart illustrating a process of implementing human motion through a system for implementing human motion according to an embodiment of the present invention.
단계 S100 : 먼저, 휴먼 모션 구현 시스템(100)의 모션 데이터 수집부(120)는 모션 데이터를 수집하게 되는데, 이 모션 데이터 수집부(120)는 모션 캡쳐 시스템으로부터 프레임 별로 모션 데이터를 전송받아 저장하게 된다. Step S100: First, the motion
단계 S110 : 모션 데이터 수집부(120)를 통하여 현재 프레임에 대한 모션 데이터가 수집되면, 모션 오차 제거부(130)는 모션 데이터의 오차를 확인하기 위해 현재 프레임 모션 데이터에서 인체 각 마디별 3차원 회전 구현을 수행하게 된다. 즉, 모션 오차 제거부(130)는 현재 프레임에서 모션 데이터를 글로벌 좌표계를 기준으로 3차원 회전을 구현하게 된다. Step S110: When the motion data for the current frame is collected through the motion
도 3은 글로벌 좌표계에서의 3차원 회전 구현 개념도를 나타낸 것이다.3 shows a conceptual diagram of implementing a three-dimensional rotation in a global coordinate system.
도 3에 도시된 글로벌 좌표계는 전체 시스템에서 공통적으로 적용되는 좌표계로, 일반적으로 캐릭터가 존재하는 콘텐츠 공간의 지표면이 x-y축, 지표면의 수직 법선이 z축으로 정의된다. 본 발명에서 모션 오차 제거부(130)는 모션 데이터를 3차원 회전값인 오일러각으로 표현하는데, 도 3에서와 같이 x-y-z 글로벌 좌표계를 기준으로 x축으로 φ(롤), y축으로 θ(피치), z축으로 Ψ(요) 값으로 회전하여 인체 모션 데이터의 각 마디를 3차원 상에서 표현하게 된다. The global coordinate system shown in FIG. 3 is a coordinate system commonly applied to the entire system, and in general, the ground surface of the content space where the character exists is defined as the xy axis, and the vertical normal of the ground surface is defined as the z axis. In the present invention, the motion
단계 S120 : 현재 프레임 모션 데이터의 인체 각 마디별 3차원 회전이 구현되면, 모션 오차 제거부(130)는 다음으로 3차원 회전의 각속도를 계산하게 된다. 본 발명에서 모션 오차 제거부(130)는 각속도를 구하기 위해, 먼저 상기 단계(S110)에서 구현한 3차원 회전으로 캐릭터 각 마디의 시작점을 원점으로 하는 원주 성분()을 계산한다. Step S120: When the three-dimensional rotation of each body node of the current frame motion data is implemented, the motion
도 4는 각 마디 원점 기준 위치 벡터의 일례를 나타낸 것으로, 도 4에서와 같이 인체 캐릭터의 왼쪽 팔을 예를 들면, 어깨-팔꿈치-손목 순서로 위치 벡터를 계산한다. 상완 위팔(upper arm)은 마디 시작점인 어깨 관절을 원점으로 하여 상기 단계(S110)에서 계산한 3차원 회전각으로 회전하고, 상완 위팔 회전 후 상완 위팔의 끝 마디, 즉 팔꿈치를 원점으로 하여 하완 아래팔(lower arm)을 회전한다. 하완 아래팔 회전 후 마디 끝인 손목을 원점으로 손이 회전한다. 4 shows an example of the reference position vector of the origin of each node, for example, the left arm of the human body character is calculated in the order of shoulder-elbow-wrist, as in FIG. 4 . The upper arm rotates at the three-dimensional rotation angle calculated in step S110 with the shoulder joint, which is the starting point of the joint, as the origin, and after rotation of the upper arm, the end node of the upper arm, that is, the elbow, is the origin, and the lower arm is below the lower arm. Rotate the lower arm. After rotating the lower arm, the hand rotates with the origin of the wrist, the tip of the joint.
도 5는 원주 성분을 이용하여 각속도를 계산하는 개념을 나타낸 것으로, 각 마디의 시작점(원점 좌표)을 원점으로 원주 성분()이 계산되면, 각 마디 이전 프레임의 원주 성분()과 현재 프레임의 원주 성분()을 이용하여 다음의 수학식 1과 같이 각속도 를 계산하게 된다. Figure 5 shows the concept of calculating the angular velocity using the circumferential component, the starting point (origin coordinates) of each node as the origin and the circumferential component ( ) is calculated, the circumferential component ( ) and the circumferential component of the current frame ( ) using the angular velocity as in the following Equation 1 will be calculated
여기서, 는 현재 프레임과 이전 프레임의 시간 차이를 나타낸다.here, represents the time difference between the current frame and the previous frame.
단계 S130 : 상기 과정을 통해 각속도가 계산되면, 모션 오차 제거부(130)는 각속도를 이용하여 접선 속도 벡터 를 계산하게 된다. Step S130: When the angular velocity is calculated through the above process, the motion
도 6은 본 발명에서 접선 속도 벡터를 계산하는 과정을 나타낸 흐름도이다.6 is a flowchart illustrating a process of calculating a tangential velocity vector in the present invention.
모션 데이터를 통하여 표현되는 캐릭터의 마디 길이는 일정하기 때문에 상기 단계(S120)에서 구한 원주 성분()을 적용하면 마디의 시작 지점을 원점으로 하는 원운동으로 표현된다. 도 6은 원운동을 기반으로 표현되는 벡터 일례를 나타낸 것으로, 상기 단계(S120)에서 구한 각속도와 각 마디 끝 지점의 위치는 원운동에 기반하여 도 7과 같이 벡터로 표현된다. Since the joint length of the character expressed through the motion data is constant, the circumference component ( ) is applied, it is expressed as a circular motion with the starting point of the node as the origin. 6 shows an example of a vector expressed based on a circular motion, and the angular velocity obtained in step S120 and the position of the end point of each node are expressed as a vector as shown in FIG. 7 based on the circular motion.
도 7에서 위치 벡터 은 마디의 시작점인 원점에서 원운동하는 지점까지의 위치를 나타내며, 그 크기는 마디의 길이 이고, 이 은 원운동의 반지름을 나타낸다. 이때 위치 벡터는 이전 프레임의 최종 위치벡터이므로 로 표현한다. Position vector in Fig. indicates the position from the origin, which is the starting point of the node, to the point of circular motion, and its size is the length of the node. and this is the radius of circular motion. At this time, the position vector is the final position vector of the previous frame, so expressed as
또한, 각속도 벡터 의 방향은 위치 벡터의 변위 이동면에 수직방향이고 크기는 상기 단계(S120)에서 구한 각속도가 된다. Also, the angular velocity vector The direction of is perpendicular to the displacement moving plane of the position vector, and the magnitude is the angular velocity obtained in step S120.
최종적으로 접선 속도 벡터 는 위치 벡터의 회전 방향으로 발생하는 궤도 속도 벡터로 다음 수학식 3와 같이 구하게 된다. Finally the tangential velocity vector is an orbital velocity vector occurring in the rotational direction of the position vector, and is obtained as shown in Equation 3 below.
단계 S140 : 상기 단계(S130)를 통하여 구한 접선 속도 벡터는 각 마디의 임계치 값과 비교하게 되는데, 도 8은 임계치 비교 및 오차 유무 판단 과정을 나타낸 흐름도이다. 여기에서 임계치 값은 오차 유무를 판단하기 위한 기준값으로, 마디 별 다른 값으로 지정 가능하고, 캐릭터 별로도 지정이 가능하다. 예를 들어, 야구 투수의 모션을 캡쳐할 때 메이저리그 투수의 어깨 각의 각속도는 평균 , 팔꿈치는 이므로 이 각속도를 기준으로 캐릭터의 상완 위팔의 길이와의 곱으로 접선 속도 벡터의 임계치를 정하고, 하완 아래팔의 길이와 팔꿈치의 각속도를 곱하여 접선 속도 벡터의 임계치를 정할 수 있다. Step S140: The tangential velocity vector obtained through the step (S130) is compared with the threshold value of each node. FIG. 8 is a flowchart illustrating the threshold comparison and error determination process. Here, the threshold value is a reference value for determining the presence or absence of an error, and may be designated as a different value for each node or may be designated for each character. For example, when capturing the motion of a baseball pitcher, the angular velocity of the shoulder angle of a major league pitcher is averaged , the elbow Therefore, based on this angular velocity, the threshold of the tangential velocity vector can be determined by multiplying the length of the upper arm of the character, and the threshold of the tangential velocity vector can be determined by multiplying the length of the forearm and the angular velocity of the elbow.
단계 S150 : 모션 오차 제거부(130)는 도 7에 도시된 바와 같이, 각 마디의 현재 프레임 접선 속도 벡터와 임계치를 비교하여 현재 모션 데이터의 정상 유무를 판단하게 된다. 만약, 현재 프레임 접선 속도 벡터가 임계치 이하인 경우, 정상 데이터로 판단하여 현재 값을 이용하여 최종 모션을 구현하게 되고, 다음 프레임의 위치 벡터 추정을 위해 현재 접선 속도 벡터를 저장하게 된다. 반면, 현재 프레임 접선 속도 벡터가 임계치 보다 큰 경우 오차값으로 판단하여 현재 값은 삭제하고 이전 프레임의 모션 데이터를 이용하여 위치 벡터를 추정하는 과정을 수행하게 된다. Step S150: As shown in FIG. 7 , the motion
단계 S160 : 상기 단계(S140)에서 현재 프레임 접선 속도 벡터가 임계치 보다 커 오차가 발생한 것으로 판단되면, 모션 오차 제거부(130)는 오차값으로 판단된 현재 프레임의 위치 벡터를 삭제하고, 현재 위치 벡터를 새로 추정하게 된다. Step S160: If it is determined that an error has occurred because the current frame tangential velocity vector is greater than the threshold in step S140, the motion
도 8은 위치 벡터를 추정하는 방법을 나타낸 개념도로서, 위치 벡터 추정은 이전 프레임의 위치 벡터 와 이전 프레임에서 계산한 접선 속도 벡터 를 이용하여 수학식 3과 같이 극좌표성분 과 를 계산하고, 이를 통하여 최종 위치벡터 를 추정하게 된다. 8 is a conceptual diagram illustrating a method of estimating a position vector. The position vector estimation is a position vector of a previous frame. and the tangential velocity vector computed from the previous frame. Using the polar coordinate component as in Equation 3 class , and through this, the final position vector will be estimated
단계 S170 : 모션 구현부(140)는 상기 단계 S150 정상 데이터로 판단된 모션 데이터의 현재 값 또는 오차가 발생한 것으로 판단되어 상기 단계 S160을 통하여 추정된 위치 벡터를 이용하여 최종적으로 휴먼 모션을 구현하게 된다. Step S170: The
이와 같이, 본 발명에서는 센서방식이나 광학방식 등으로 구성된 모션 캡쳐 시스템의 출력값인 모션 데이터를 이용하여 휴먼 모션 구현 시, 센서 오차나 알고리즘의 예외값, 그리고 광학식의 경우 마커 손실 등으로 생기는 모션 데이터의 오차를 실시간으로 제거함으로써 휴먼 모션 구현의 효율성을 높일 수 있게 된다. 또한, 모션 데이터의 오차를 실시간으로 제거할 뿐만 아니라, 제거된 프레임에 추정값을 적용함으로써, 애니메이터의 휴먼 모션 후보정 시 일의 효율성을 높여 줄 뿐만 아니라, 실시간으로 캐릭터의 모션을 구현하는 콘텐츠에도 안정적인 모션의 구현이 가능하게 된다.As described above, in the present invention, when realizing human motion using motion data, which is an output value of a motion capture system composed of a sensor method or an optical method, a sensor error or an exception value of an algorithm, and in the case of an optical method, motion data generated due to loss of a marker, etc. By removing the error in real time, it is possible to increase the efficiency of human motion implementation. In addition, it not only removes errors in motion data in real time, but also increases the efficiency of the animator's human motion post-correction by applying the estimated value to the removed frame, as well as stable motion for content that implements character motion in real time. implementation is possible.
이러한 본 발명은 상술한 실시 예에 한정되는 것은 아니며 본 발명이 속하는 기술 분야에서 통상의 지식을 갖는 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구 범위의 균등범위 내에서 다양한 수정 및 변형이 이루어질 수 있음은 물론이다. The present invention is not limited to the above-described embodiments, and various modifications and variations can be made by those of ordinary skill in the art to which the present invention pertains within the scope of equivalents of the technical spirit of the present invention and the claims to be described below. Of course, this can be done.
100 : 휴먼 모션 구현 시스템
110 : 제어부
120 : 모션 데이터 수집부
130 : 모션 오차 제거부
140 ; 모션 구현부100: Human Motion Implementation System
110: control unit
120: motion data collection unit
130: motion error removal unit
140 ; motion implementation
Claims (7)
(a) 휴먼 모션 구현 시스템(100)의 모션 데이터 수집부(120)에서 휴먼 모션 구현을 위한 인체 각 부위별 모션 데이터를 수집하는 단계와;
(b) 모션 오차 제거부(130)에서 현재 프레임 모션 데이터를 분석하여 오차가 발생하였는지를 확인하는 단계와;
(c) 오차가 발생한 것으로 확인되면 현재 프레임 모션 데이터의 위치 벡터를 삭제하고, 이전 프레임 모션 데이터를 이용하여 현재 프레임 모션 데이터의 위치 벡터를 추정하는 단계와;
(d) 모션 구현부(140)에서 오차가 발생하지 않은 현재 프레임 모션 데이터의 위치 벡터 또는 추정된 위치 벡터를 적용하여 휴먼 모션을 구현하는 단계;를 포함하는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
A method of removing an error that occurs when implementing human motion by using human motion data in the human motion realization system 100, the method comprising:
(a) collecting motion data for each part of the human body for realizing human motion in the motion data collecting unit 120 of the human motion realization system 100;
(b) analyzing the current frame motion data by the motion error removing unit 130 to determine whether an error has occurred;
(c) when it is confirmed that an error has occurred, deleting the position vector of the current frame motion data and estimating the position vector of the current frame motion data using the previous frame motion data;
(d) implementing the human motion by applying the position vector or the estimated position vector of the current frame motion data in which the error does not occur in the motion implementation unit 140; Way.
상기 오차가 발생하였는지를 확인하는 단계(b)는
(b-1) 현재 프레임의 모션 데이터에 포함된 인체의 각 마디별 3차원 회전을 구현하는 단계와,
(b-2) 구현된 각 마디별 3차원 회전으로부터 각속도를 계산하는 단계와,
(b-3) 각 마디별 시작점을 원점으로 하는 원운동에 기반한 위치 벡터 및 각속도를 이용하여 접선 속도 벡터를 계산하는 단계와,
(b-4) 계산된 접선 속도 벡터를 사용자가 설정한 임계치와 비교하여, 접선 속도 벡터가 임계치보다 큰 경우 오차가 발생한 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
The method of claim 1,
Step (b) of checking whether the error has occurred
(b-1) implementing a three-dimensional rotation for each joint of the human body included in the motion data of the current frame;
(b-2) calculating the angular velocity from the implemented three-dimensional rotation for each node;
(b-3) calculating a tangential velocity vector using a position vector and an angular velocity based on a circular motion with the starting point of each node as the origin;
(b-4) comparing the calculated tangential velocity vector with a threshold set by a user, and determining that an error has occurred when the tangential velocity vector is greater than the threshold.
상기 인체의 각 마디별 3차원 회전을 구현하는 단계(b-1)에서,
상기 모션 오차 제거부(130)는 현재 프레임에서 모션 데이터를 글로벌 좌표계를 기준으로 x축으로 φ(롤), y축으로 θ(피치), z축으로 Ψ(요) 값으로 회전하여 인체 모션 데이터의 각 마디를 3차원 상에 표현하는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
3. The method of claim 2,
In the step (b-1) of implementing a three-dimensional rotation for each node of the human body,
The motion error removing unit 130 rotates the motion data in the current frame with φ (roll) on the x-axis, θ (pitch) on the y-axis, and Ψ (yaw) on the z-axis based on the global coordinate system to provide human body motion data. An error removal method of human motion implementation, characterized in that each node of is expressed in three dimensions.
상기 각속도를 계산하는 단계(b-2)에서,
상기 구현된 각 마디별 3차원 회전으로부터 각 마디의 시작점을 원점으로 하는 원주 성분()을 계산하고,
각 마디 이전 프레임의 원주 성분()과 현재 프레임의 원주 성분()을 이용하여 수학식
(여기서, 는 현재 프레임과 이전 프레임의 시간 차이를 나타낸다)을 통해 각속도 를 계산하는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
3. The method of claim 2,
In the step (b-2) of calculating the angular velocity,
From the three-dimensional rotation for each node implemented above, the circumferential component ( ) is calculated,
The circumferential component of the frame before each measure ( ) and the circumferential component of the current frame ( ) using the formula
(here, represents the time difference between the current frame and the previous frame) through the angular velocity An error removal method of human motion implementation, characterized in that for calculating
상기 접선 속도 벡터를 계산하는 단계(b-3)에서,
각 마디별 시작점을 원점으로 하는 원운동에 기반한 위치 벡터()의 크기가 마디의 길이 인 경우,
접선 속도 벡터()는 위치 벡터의 회전 방향으로 발생하는 궤도 속도 벡터로 수학식
을 통해 계산되는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
3. The method of claim 2,
In the step (b-3) of calculating the tangential velocity vector,
Position vector ( ) is the length of the node If ,
tangential velocity vector ( ) is the orbital velocity vector occurring in the direction of rotation of the position vector.
Error removal method of human motion implementation, characterized in that calculated through.
상기 오차가 발생한 것으로 판단하는 단계(b-4)에서
오차 발생 유무 판단 기준이 되는 임계치는 마디별 또는 휴먼 캐릭터별로 다르게 지정 가능한 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.
3. The method of claim 2,
In the step (b-4) of determining that the error has occurred
A method for eliminating errors in human motion implementation, characterized in that a threshold value, which is a criterion for determining whether an error occurs or not, can be designated differently for each node or for each human character.
상기 위치 벡터를 추정하는 단계(c)에서,
이전 프레임의 위치 벡터()와 이전 프레임에서 계산한 접선 속도 벡터()를 이용하여 수학식
을 통해 극좌표성분 과 를 계산하고, 이를 통하여 최종 위치 벡터 를 추정하는 것을 특징으로 하는 휴먼 모션 구현의 오차 제거 방법.3. The method of claim 2,
In step (c) of estimating the position vector,
the previous frame's position vector ( ) and the tangential velocity vector computed from the previous frame ( ) using the formula
polar coordinate component through class computes, and through this, the final position vector An error removal method of human motion implementation, characterized in that for estimating .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200036009A KR102376973B1 (en) | 2020-03-25 | 2020-03-25 | Method for removing errors in human motion implementation using tangential velocity vector |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200036009A KR102376973B1 (en) | 2020-03-25 | 2020-03-25 | Method for removing errors in human motion implementation using tangential velocity vector |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210119654A true KR20210119654A (en) | 2021-10-06 |
KR102376973B1 KR102376973B1 (en) | 2022-03-21 |
Family
ID=78077215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200036009A KR102376973B1 (en) | 2020-03-25 | 2020-03-25 | Method for removing errors in human motion implementation using tangential velocity vector |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102376973B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240081285A (en) | 2022-11-30 | 2024-06-07 | 주식회사 아이팝 | Method for estimating user movement based on acceleration sensor in motion capture system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100415884B1 (en) | 2000-11-06 | 2004-01-24 | (주)모션테크놀로지 | Method and apparatus for capturing motion of human body and thereby making motion data file |
KR20110070058A (en) * | 2009-12-18 | 2011-06-24 | 한국전자통신연구원 | Method and apparatus for motion capture of dynamic object |
KR101519775B1 (en) | 2014-01-13 | 2015-05-12 | 인천대학교 산학협력단 | Method and apparatus for generating animation based on object motion |
KR101865173B1 (en) * | 2017-02-03 | 2018-06-07 | (주)플레이솔루션 | Method for generating movement of motion simulator using image analysis of virtual reality contents |
KR20180062137A (en) * | 2016-11-30 | 2018-06-08 | (주)코어센스 | Method for position estimation of hybird motion capture system |
KR20190099681A (en) * | 2018-02-19 | 2019-08-28 | (주)플레이솔루션 | Real time filtering method for motion simulator interworking of contents based on game engine |
-
2020
- 2020-03-25 KR KR1020200036009A patent/KR102376973B1/en active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100415884B1 (en) | 2000-11-06 | 2004-01-24 | (주)모션테크놀로지 | Method and apparatus for capturing motion of human body and thereby making motion data file |
KR20110070058A (en) * | 2009-12-18 | 2011-06-24 | 한국전자통신연구원 | Method and apparatus for motion capture of dynamic object |
KR101519775B1 (en) | 2014-01-13 | 2015-05-12 | 인천대학교 산학협력단 | Method and apparatus for generating animation based on object motion |
KR20180062137A (en) * | 2016-11-30 | 2018-06-08 | (주)코어센스 | Method for position estimation of hybird motion capture system |
KR101865173B1 (en) * | 2017-02-03 | 2018-06-07 | (주)플레이솔루션 | Method for generating movement of motion simulator using image analysis of virtual reality contents |
KR20190099681A (en) * | 2018-02-19 | 2019-08-28 | (주)플레이솔루션 | Real time filtering method for motion simulator interworking of contents based on game engine |
Also Published As
Publication number | Publication date |
---|---|
KR102376973B1 (en) | 2022-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107833271B (en) | Skeleton redirection method and device based on Kinect | |
US7460687B2 (en) | Watermarking scheme for digital video | |
US9529426B2 (en) | Head pose tracking using a depth camera | |
Klein et al. | Parallel tracking and mapping on a camera phone | |
KR101606628B1 (en) | Pointing-direction detecting device and its method, program and computer readable-medium | |
KR101307341B1 (en) | Method and apparatus for motion capture of dynamic object | |
US8428306B2 (en) | Information processor and information processing method for performing process adapted to user motion | |
JP2007333690A (en) | Motion capture system, method, and program | |
JP5965293B2 (en) | Camera pose estimation device and camera pose estimation program | |
KR102376973B1 (en) | Method for removing errors in human motion implementation using tangential velocity vector | |
JP2014102608A (en) | Three-dimensional object recognition device and three-dimensional object recognition method | |
JP4874693B2 (en) | Image processing apparatus and processing method thereof | |
KR102622981B1 (en) | System for tracking motion using deep learning technic | |
CN110807833A (en) | Mesh topology obtaining method and device, electronic equipment and storage medium | |
KR20210068336A (en) | Device and method for generating animation based on motion of object | |
JP2024042417A (en) | Arithmetic device, arithmetic method, and program | |
JP2018173882A (en) | Information processing device, method, and program | |
CN112767481B (en) | High-precision positioning and mapping method based on visual edge features | |
CN115601505A (en) | Human body three-dimensional posture restoration method and device, electronic equipment and storage medium | |
JP4559375B2 (en) | Object position tracking method, apparatus, and program | |
CN108536276A (en) | Virtual hand grasping algorithm in a kind of virtual reality system | |
WO2021169705A1 (en) | Method, apparatus and device for processing gesture depth information, and storage medium | |
JP2008008797A (en) | Apparatus ande program for predicting camera's behavior | |
TWI845448B (en) | Tracking system and calibration method | |
CN113432593A (en) | Centralized synchronous positioning and map construction method, device and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |