KR101032509B1 - System and method of estimating real-time foot motion using kalman filter - Google Patents
System and method of estimating real-time foot motion using kalman filter Download PDFInfo
- Publication number
- KR101032509B1 KR101032509B1 KR1020090077580A KR20090077580A KR101032509B1 KR 101032509 B1 KR101032509 B1 KR 101032509B1 KR 1020090077580 A KR1020090077580 A KR 1020090077580A KR 20090077580 A KR20090077580 A KR 20090077580A KR 101032509 B1 KR101032509 B1 KR 101032509B1
- Authority
- KR
- South Korea
- Prior art keywords
- coordinate system
- foot
- user
- virtual
- markers
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 239000013598 vector Substances 0.000 claims abstract description 79
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 210000002683 foot Anatomy 0.000 description 116
- 239000011159 matrix material Substances 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 239000003550 marker Substances 0.000 description 13
- 238000005259 measurement Methods 0.000 description 8
- 210000003423 ankle Anatomy 0.000 description 6
- 238000001514 detection method Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/277—Analysis of motion involving stochastic approaches, e.g. using Kalman filters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/06—Topological mapping of higher dimensional structures onto lower dimensional surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
Abstract
실시간으로 사용자 발의 모션를 추정하는 방법이 개시된다. 상기 방법은 가상 좌표계와 실제 좌표계 사이의 관계를 정의하는 단계; 상기 실제 좌표계에 존재하는 사용자 발에 부착된 적어도 두 개의 마커들을 칼만 필터를 이용하여 검출하는 단계; 상기 적어도 두 개의 마커들의 벡터를 상기 가상 좌표계에서 계산하는 단계; 상기 가상 좌표계에서 상기 적어도 두 개의 마커들에 대한 이전 이미지 및 현재 이미지를 기초로 상기 사용자 발의 회전각을 계산하는 단계; 상기 사용자 발의 회전각을 기초로 상기 가상 좌표계에서 상기 사용자 발의 가상 모델을 회전하는 단계; 및 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 기초로 상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하는 단계를 포함한다.A method of estimating motion of a user's foot in real time is disclosed. The method includes defining a relationship between a virtual coordinate system and an actual coordinate system; Detecting at least two markers attached to a user's foot in the actual coordinate system using a Kalman filter; Calculating a vector of the at least two markers in the virtual coordinate system; Calculating a rotation angle of the user's foot based on a previous image and a current image for the at least two markers in the virtual coordinate system; Rotating the virtual model of the user's foot in the virtual coordinate system based on the rotation angle of the user's foot; And converting the virtual model of the rotated user's foot into the actual coordinate system based on the relationship between the virtual coordinate system and the actual coordinate system.
칼만 필터, 실시간, 발, 추정, 모션, 포즈, 회전, 카메라 Kalman Filter, Real Time, Foot, Estimation
Description
본 발명은 실시간으로 사용자 발의 모션을 추정하기 위한 기술에 관한 것이다.The present invention relates to a technique for estimating motion of a user's foot in real time.
사용자 발의 모션을 추정하는 것은 여러 용도로 활용될 수 있다. 예를 들어, 신발을 온라인으로 판매하는 경우, 사용자는 가상 신발을 착용함으로써 원하는 신발을 쉽게 고를 수 있는데, 이러한 경우, 사용자 발을 정확하게 추정할 수 있는 기술이 필요하다.Estimating the motion of the user's feet can be used for various purposes. For example, when selling shoes online, a user can easily select a desired shoe by wearing a virtual shoe, in which case, a technique for accurately estimating the user's foot is required.
사용자는 자신의 발을 여러 방향으로 회전시킬 수도 있으며, 일정한 위치에 두지 않는다. 이러한 경우에도, 사용자 발을 정확하게 추정할 수 있는 기술이 필요하다. 특히, 사용자가 자신의 발을 움직이는 경우, 움직이는 발을 실시간으로 추적할 수 있는 기술이 필요하다.The user can also rotate his foot in several directions and do not place it in a fixed position. Even in this case, a technique for accurately estimating a user's foot is needed. In particular, when the user moves his foot, there is a need for a technology that can track the moving foot in real time.
본 발명은 실시간으로 사용자 발을 추정하는 기술을 제공한다.The present invention provides a technique for estimating a user's foot in real time.
본 발명의 일실시예에 따른 실시간으로 사용자 발의 모션를 추정하는 방법은 가상 좌표계와 실제 좌표계 사이의 관계를 정의하는 단계; 상기 실제 좌표계에 존재하는 사용자 발에 부착된 적어도 두 개의 마커들을 칼만 필터를 이용하여 검출하는 단계; 상기 적어도 두 개의 마커들의 벡터를 상기 가상 좌표계에서 계산하는 단계; 상기 가상 좌표계에서 상기 적어도 두 개의 마커들에 대한 이전 이미지 및 현재 이미지를 기초로 상기 사용자 발의 회전각을 계산하는 단계; 상기 사용자 발의 회전각을 기초로 상기 가상 좌표계에서 상기 사용자 발의 가상 모델을 회전하는 단계; 및 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 기초로 상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하는 단계를 포함한다.According to an embodiment of the present invention, a method for estimating motion of a user's foot in real time may include defining a relationship between a virtual coordinate system and an actual coordinate system; Detecting at least two markers attached to a user's foot in the actual coordinate system using a Kalman filter; Calculating a vector of the at least two markers in the virtual coordinate system; Calculating a rotation angle of the user's foot based on a previous image and a current image for the at least two markers in the virtual coordinate system; Rotating the virtual model of the user's foot in the virtual coordinate system based on the rotation angle of the user's foot; And converting the virtual model of the rotated user's foot into the actual coordinate system based on the relationship between the virtual coordinate system and the actual coordinate system.
상기 가상 좌표계와 실제 좌표계 사이의 관계를 정의하는 단계는 그라운드 평면에 부착된 적어도 네 개의 마커들을 검출하고, 상기 네 개의 마커들을 이용하여 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 정의하는 단계일 수 있다.The step of defining a relationship between the virtual coordinate system and the real coordinate system may include detecting at least four markers attached to the ground plane, and defining the relationship between the virtual coordinate system and the real coordinate system using the four markers. have.
상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하는 단계는 수학식 에 따라 상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하는 단계이고, 는 상기 사용자 발의 회전각이고, 는 그라운드 평면의 중심점이고, 및 는 상기 가상 좌표계로 이동된 상기 적어도 두 개의 마커들 중 어느 하나의 마커에 대한 x 축값, z 축값이며, , , , 이고, 는 그라운드 평면의 노말 벡터와 상기 가상 좌표계의 x, y, z 축 사이의 회전각일 수 있다.Converting the virtual model of the rotated user's foot into the actual coordinate system is Converting the virtual model of the rotated user's foot into the actual coordinate system according to Is the rotation angle of the user's foot, Is the center point of the ground plane, And Is an x-axis value and a z-axis value for any one of the at least two markers moved in the virtual coordinate system, , , , ego, May be a rotation angle between the normal vector of the ground plane and the x, y, z axes of the virtual coordinate system.
상기 방법은 상기 실제 좌표계로 변환된 사용자 발의 가상 모델을 2차원 이미지로 변환하는 단계 및 상기 2차원 이미지를 디스플레이하는 단계를 더 포함할 수 있다.The method may further include converting the virtual model of the user's foot converted into the actual coordinate system into a two-dimensional image and displaying the two-dimensional image.
상기 사용자 발의 회전각을 계산하는 단계는 상기 사용자 발의 회전각을 계산하기 위하여 상기 적어도 두 개의 마커들의 벡터를 그라운드 평면으로 투영하는 단계를 포함할 수 있다.The calculating of the rotation angle of the user's foot may include projecting the vector of the at least two markers onto the ground plane to calculate the rotation angle of the user's foot.
상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 정의하는 단계는 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 정의하기 위하여 그라운드 평면의 중심점으로부터 카메라 좌표계의 원점으로의 이동량 및 상기 카메라 좌표계의 원점으로부터 상기 가상 좌표계의 원점으로의 이동량을 계산하는 단계를 포함할 수 있다.The step of defining a relationship between the virtual coordinate system and the actual coordinate system may include: an amount of movement from a center point of a ground plane to an origin of a camera coordinate system and an origin of the camera coordinate system to define a relationship between the virtual coordinate system and the actual coordinate system. Computing the movement amount to the origin of the coordinate system.
상기 사용자 발의 회전각을 계산하는 단계는 상기 적어도 두 개의 마커들을 상기 가상 좌표계로 이동하는 단계를 포함할 수 있다.The calculating of the rotation angle of the user's foot may include moving the at least two markers to the virtual coordinate system.
상기 사용자 발의 회전각을 계산하는 단계는 상기 가상 좌표계로 이동된 상기 적어도 두 개의 마커들의 벡터를 투영하는 단계를 더 포함할 수 있다.The calculating of the rotation angle of the user's foot may further include projecting a vector of the at least two markers moved to the virtual coordinate system.
상기 사용자 발의 회전각을 계산하는 단계는 상기 사용자 발의 회전 방향을 파악하는 단계를 포함할 수 있다.The calculating of the rotation angle of the user foot may include determining a rotation direction of the user foot.
또한, 본 발명의 일실시예에 따른 실시간으로 사용자 발의 모션를 추정하는 장치는 가상 좌표계와 실제 좌표계 사이의 관계를 정의하는 정의부; 상기 실제 좌표계에 존재하는 사용자 발에 부착된 적어도 두 개의 마커들을 칼만 필터를 이용하여 검출하는 검출부; 상기 적어도 두 개의 마커들의 벡터를 상기 가상 좌표계에서 계산하는 벡터 계산부; 상기 가상 좌표계에서 상기 적어도 두 개의 마커들에 대한 이전 이미지 및 현재 이미지를 기초로 상기 사용자 발의 회전각을 계산하는 회전각 계산부; 상기 사용자 발의 회전각을 기초로 상기 가상 좌표계에서 상기 사용자 발의 가상 모델을 회전하는 회전부; 및 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 기초로 상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하는 변환부를 포함한다.In addition, the apparatus for estimating the motion of the user's foot in real time according to an embodiment of the present invention includes a definition unit for defining a relationship between the virtual coordinate system and the actual coordinate system; A detector for detecting at least two markers attached to a user's foot in the actual coordinate system using a Kalman filter; A vector calculator configured to calculate a vector of the at least two markers in the virtual coordinate system; A rotation angle calculator configured to calculate a rotation angle of the user's foot based on a previous image and a current image of the at least two markers in the virtual coordinate system; A rotating unit rotating the virtual model of the user's foot in the virtual coordinate system based on the rotation angle of the user's foot; And a converting unit converting the rotated virtual model of the rotated user's foot into the actual coordinate system based on the relationship between the virtual coordinate system and the actual coordinate system.
상기 변환부는 수학식 에 따라 상기 회전된 사용자 발의 가상 모델을 상기 실제 좌표계로 변환하고, 는 상기 사용자 발의 회전각이고, 는 그라운드 평면의 중심점이고, 및 는 상기 가상 좌표계로 이동된 상기 적어도 두 개의 마커들 중 어느 하나의 마커에 대한 x 축값, z 축값이며, , , , 이고, 는 상기 그라운드 평면의 노말 벡터와 상기 가상 좌표계의 x, y, z 축 사이의 회전각일 수 있다.The conversion unit is Convert the virtual model of the rotated user's foot into the actual coordinate system according to Is the rotation angle of the user's foot, Is the center point of the ground plane, And Is an x-axis value and a z-axis value for any one of the at least two markers moved in the virtual coordinate system, , , , ego, May be a rotation angle between the normal vector of the ground plane and the x, y, z axes of the virtual coordinate system.
상기 정의부는 상기 가상 좌표계와 상기 실제 좌표계 사이의 관계를 정의하기 위하여 그라운드 평면의 중심점으로부터 카메라 좌표계의 원점으로의 이동량 및 상기 카메라 좌표계의 원점으로부터 상기 가상 좌표계의 원점으로의 이동량을 계산할 수 있다.The definition unit may calculate the amount of movement from the center point of the ground plane to the origin of the camera coordinate system and the amount of movement from the origin of the camera coordinate system to the origin of the virtual coordinate system to define the relationship between the virtual coordinate system and the actual coordinate system.
상기 회전각 계산부는 상기 사용자 발의 회전각을 계산하기 위하여 상기 적어도 두 개의 마커들의 벡터를 그라운드 평면으로 투영할 수 있다.The rotation angle calculator may project the vector of the at least two markers onto the ground plane to calculate the rotation angle of the user's foot.
상기 회전각 계산부는 상기 사용자 발의 회전각을 계산하기 위하여 상기 가상 좌표계로 이동된 상기 적어도 두 개의 마커들의 벡터를 투영할 수 있다.The rotation angle calculator may project a vector of the at least two markers moved to the virtual coordinate system to calculate the rotation angle of the user's foot.
본 발명의 일실시예에 따른 실시간 발 모션 추정 시스템은 사용자 발에 대한 복수의 이미지들을 생성하는 스테레오 카메라; 적어도 네 개의 마커들이 부착된 그라운드 평면; 상기 사용자 발에 부착되는 적어도 두 개의 마커들; 및 상기 실시간으로 사용자 발의 모션를 추정하는 장치를 포함한다. 여기서, 상기 실시간으로 사용자 발의 모션를 추정하는 장치는 상기 적어도 네 개의 마커들을 이용하여 가상 좌표계와 실제 좌표계 사이의 관계를 정의하고, 상기 실제 좌표계에 존재하는 사용 자 발에 부착된 적어도 두 개의 마커들을 칼만 필터를 이용하여 검출하고, 상기 가상 좌표계에서 상기 적어도 두 개의 마커들에 대한 이전 이미지 및 현재 이미지를 기초로 상기 사용자 발의 회전각을 계산하여 상기 사용자 발의 포즈를 추정한다.A real-time foot motion estimation system according to an embodiment of the present invention includes a stereo camera for generating a plurality of images of the user's foot; A ground plane to which at least four markers are attached; At least two markers attached to the user's foot; And an apparatus for estimating the motion of the user's foot in real time. Here, the apparatus for estimating the motion of the user's foot in real time defines the relationship between the virtual coordinate system and the real coordinate system using the at least four markers, and at least two markers attached to the user's foot existing in the real coordinate system. Detects using a filter, and estimates a pose of the user's foot by calculating a rotation angle of the user's foot based on a previous image and a current image of the at least two markers in the virtual coordinate system.
본 발명은 실시간으로 사용자 발을 추정하는 기술을 제공한다.The present invention provides a technique for estimating a user's foot in real time.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 발 모션(foot motion) 추정 시스템을 나타낸 도면이다.1 is a diagram illustrating a foot motion estimation system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 발 모션 추정 시스템은, 사용자 발 추정 장치, 적어도 두 개의 카메라들(스테레오 카메라) 및 적어도 네 개의 마커들이 부착된 그라운드 평면을 포함하고, 사용자 발에는 적어도 두 개의 마커들이 부착된다. 여기서, 그라운드 평면은 실제 좌표계의 기준면으로서 사용된다.Referring to FIG. 1, the foot motion estimation system of the present invention includes a user foot estimation device, a ground plane to which at least two cameras (stereo cameras) and at least four markers are attached, and at least two markers on the user's feet. Are attached. Here, the ground plane is used as a reference plane of the actual coordinate system.
그라운드 평면 및 사용자 발에 부착되는 마커들을 이용하여 실시간으로 발 모션을 추정하는 방법에 대해서는 아래에서 상세히 설명한다.A method of estimating foot motion in real time using markers attached to the ground plane and the user's foot is described in detail below.
1-1. 1-1. 마커Marker 검출( detection( MARKERMARKER DETECTIONDETECTION ))
도 2는 그라운드 평면에 부착된 네 개의 원형 마커들 및 사용자 발에 부착된 두 개의 원형 마커들에 대한 검출 결과를 나타낸다.2 shows detection results for four circular markers attached to the ground plane and two circular markers attached to the user's feet.
본 발명은 도 2에 도시된 것과 같이 백그라운드의 픽셀 엘리먼트들을 뺌으로써, 객체(그라운드 평면 또는 사용자 발) 이미지를 파악할 수 있다. 픽셀 엘리먼트들이 백그라운드에 속하는 것인지 또는 객체에 속하는 것인지는 이로젼(erosion) 또는 딜레이션 마스크(dilation mask)를 계산함으로써, 판단될 수 있다. 도 2에의 첫 번째 그림에서 백그라운드의 픽셀 엘리먼트들을 뺀 결과가 두 번째 그림이고, 세 번째 그림에서 백그라운드의 픽셀 엘리먼트들을 뺀 결과가 네 뻔째 그림이다.The present invention can grasp the object (ground plane or the user's foot) image by reading the pixel elements of the background as shown in FIG. 2. Whether pixel elements belong to a background or an object may be determined by calculating an erosion or a separation mask. The result of subtracting the pixel elements of the background from the first figure in FIG. 2 is the second figure, and the result of subtracting the pixel elements of the background from the third figure is the fourth figure.
또한, 이미 잘 알려진 다양한 방법들을 이용하여 두 번째, 네 번째 그림과 같은 이미지 시퀀스들을 분석하면, 그라운드 평면 및 사용자 발에 부착된 원형 마커들을 쉽게 찾아낼 수 있다. 이러한 원형 마커들은 카메라 캘리브레이션, 원점 좌표의 설정, 사용자 발의 변환(transformation) 및 회전(rotation) 등과 같은 여러 문제들을 해결하는 데에 핵심 정보로 사용된다. 특히, 본 발명은 2000년의 IEEE TRANSACTION ON PATTERN ANLAYSIS AND MACHINE INTELLIGENCE를 통하여 공개된 Zhang 알고리즘을 통하여 ZHANG 알고리즘을 이용하여 그라운드 평면에 있는 네 개의 원형 마커들로부터 카메라 캘리브레이션을 위한 값들을 계산할 수 있다.In addition, by analyzing image sequences such as the second and fourth pictures using various well-known methods, it is easy to find the circular markers attached to the ground plane and the user's foot. These circular markers are used as key information in solving various problems such as camera calibration, setting of origin coordinates, transformation and rotation of the user's foot. In particular, the present invention can calculate values for camera calibration from four circular markers in the ground plane using the ZHANG algorithm through Zhang algorithm published through IEEE TRANSACTION ON PATTERN ANLAYSIS AND MACHINE INTELLIGENCE in 2000.
1-2. 칼만 필터를 이용한 1-2. Kalman filter 마커들의Of markers 예측 및 추정 Forecast and estimate
사용자 발이 움직이는 경우, 마커들의 가려짐(occlusion) 현상이 발생한다. 이러한 가려짐 현상으로 인한 문제는 움직이는 사용자 발을 추적하기 위한 중요한 문제이다. 이 때, 본 발명은 칼만 필터를 이용하여 안정적으로 마커들을 추정하 고, 잡음들을 줄일 수 있다. When the user's foot moves, the occlusion of the markers occurs. The problem caused by this obstruction is an important problem for tracking the moving user's feet. In this case, the present invention can stably estimate the markers using a Kalman filter and reduce noises.
칼만 필터는 실시간으로 사용자 발을 추정하는 데에 좋은 기능을 수행할 수 있다. 칼만 필터링 알고리즘은 예측 단계, 측정 단계, 업데이트 단계로 이루어진다.The Kalman filter can do a good job of estimating the user's foot in real time. The Kalman filtering algorithm consists of a prediction phase, a measurement phase, and an update phase.
현재 프레임에서 검출된 마커의 상태 벡터를 라고 하고, 다음 프레임에서 마커의 상태 벡터를 라고 가정한다. 이 때, 예측 단계는 및 상태 추정 에러의 공분산 행렬 를 예측한다. 여기서, (-)는 측정에 의한 업데이트 단계가 완료되지 않았음을 가리킨다.The state vector of the marker detected in the current frame. The state vector of the marker Assume that At this time, the prediction step And covariance matrix of state estimation errors Predict. Here, (-) indicates that the update by measurement step is not completed.
상태 추정 에러의 공분산 행렬 는 하기 수학식 1과 같이 나타낼 수 있다.Covariance Matrix of State Estimation Error Can be expressed as in
[수학식 1][Equation 1]
여기서, E[x]는 x의 평균이다.Where E [x] is the mean of x.
다음 프레임에서 마커의 상태 벡터 및 상태 추정 에러의 공분산 행렬 는 하기 수학식 2와 같이 표현된다.State vector of marker at next frame And covariance matrix of state estimation errors Is expressed as in
[수학식 2][Equation 2]
여기서, 는 시스템의 모델 잡음을 나타내며, 은 의 공분산 행렬을 나타낸다.here, Represents the model noise of the system, silver Represents the covariance matrix of.
다음 프레임에서 마커의 상태 벡터 가 예측되면, 본 발명은 측정 단계를 수행한다. 이 때, 측정 단계는 하기 수학식 3과 같이 나타낼 수 있다.State vector of marker at next frame If is predicted, the present invention performs the measurement step. In this case, the measuring step may be represented by
[수학식 3]&Quot; (3) "
여기서, 는 마커에 대한 측정 벡터이고, H는 측정 벡터와 상태 벡터 사이의 관측 행렬이고, 은 측정 에러를 의미한다. 여기서, 시스템의 모델 잡음 및 측정 에러 가 서로 상관되지 않는다고 가정한다.here, Is the measurement vector for the marker, H is the observation matrix between the measurement vector and the state vector, Means a measurement error. Where the model noise of the system And measurement errors Suppose is not correlated with each other.
최종적으로, 업데이트 단계는 상태 벡터에 대한 새로운 값들 및 측정 단계에 의해 추정된 값들로부터의 상태 추정 에러를 기초로 수행된다. 보다 구체적으로, 업데이트 단계는 하기 수학식 4와 같은 업데이트 방정식을 사용할 수 있다.Finally, the updating step is performed based on the new values for the state vector and the state estimation error from the values estimated by the measuring step. More specifically, the update step may use an update equation, such as Equation 4.
[수학식 5][Equation 5]
여기서, Rk는 측정 에러의 공분산 행렬이고, Kk는 칼만 게인이다. 칼만 게인은 를 업데이트하기 위하여 측정된 값들 및 추정된 값들 사이의 차이들에 대해 적절한 가중치를 부여하는 기능을 수행한다.Where R k is the covariance matrix of the measurement error and K k is the Kalman gain. Kalman Gain It performs the function of assigning appropriate weights to the differences between the measured values and the estimated values in order to update.
결국, 본 발명은 실시간으로 사용자 발을 추적할 수 있도록 칼만 필터링 알고리즘을 이용하여 현재 프레임의 마커들로부터 다음 프레임의 마커들을 보다 효율적으로 추정할 수 있다.As a result, the present invention can more efficiently estimate the markers of the next frame from the markers of the current frame using the Kalman filtering algorithm to track the user's foot in real time.
2. 3차원 재구성(3D 2. 3D reconstruction (3D RECONSTRUCTIONRECONSTRUCTION ))
도 3은 그라운드 평면 위에 있는 네 개의 마커들을 통해 정의되는 교차점 및 사용자 발 위에 있는 두 개의 마커들을 통해 정의되는 중심선을 나타낸 도면이다.FIG. 3 is a diagram illustrating an intersection defined by four markers on the ground plane and a centerline defined by two markers on the user's feet.
두 개의 카메라들에 의해 생성되는 이미지들은 2차원 이미지들이므로, 3차원 입체를 만들기 위해서는 2차원 이미지들을 적절히 재구성해야 한다.Since the images generated by the two cameras are two-dimensional images, two-dimensional images must be properly reconstructed in order to create three-dimensional solids.
도 2와 관련하여, 도 2의 두 번째, 네 번째 그림과 같은 이미지 시퀀스들을 분석하면, 그라운드 평면 및 사용자 발에 부착된 마커들을 찾아낼 수 있음을 설명하였다. 그라운드 평면 및 사용자 발에 부착된 마커들을 통하여 이미지 시퀀스들을 입체적으로 재구성할 필요가 있다. 이 때, 3차원 재구성을 위한 기준이 정의되어야 하는데, 본 발명은 도 3에 도시된 것과 같이, 그라운드 평면 위에 있는 네 개의 마커들을 통해 정의되는 교차점 및 사용자 발 위에 있는 두 개의 마커들을 통해 정의되는 중심선을 정의할 수 있다.With reference to FIG. 2, it has been explained that analyzing image sequences such as the second and fourth pictures of FIG. 2 can find markers attached to the ground plane and the user's foot. There is a need to stereoscopically reconstruct image sequences through markers attached to the ground plane and the user's foot. At this time, a criterion for three-dimensional reconstruction should be defined, and the present invention is a centerline defined by two markers on the user's foot and an intersection defined by four markers on the ground plane as shown in FIG. 3. Can be defined.
2차원 이미지와 3차원 모델 사이의 관계에 대한 카메라 투영 매트릭스를 P라고 가정한다. 여기서, P는 대상 모델에 있는 점들의 좌표를 해당 이미지 평면에 투영하는 것과 관련되며, 하기 수학식 6과 같이 표현될 수 있다.Assume that the camera projection matrix for the relationship between the two-dimensional image and the three-dimensional model is P. Here, P is related to projecting the coordinates of the points in the target model to the image plane, can be expressed as shown in Equation 6 below.
[수학식 6]&Quot; (6) "
여기서, f는 카메라의 초점 거리이고, R과 T는 모델 프레임에 대한 카메라의 회전 매트릭스 및 변환(Translation) 매트릭스이다. 여기서, 카메라 투영 매트릭스 P는 하기 수학식 7와 같이 나타낼 수도 있다.Where f is the focal length of the camera and R and T are the camera's rotation matrix and translation matrix for the model frame. Here, the camera projection matrix P may be represented by Equation 7 below.
[수학식 7][Equation 7]
여기서, K는 카메라의 내부(intrinsic) 파라미터를 나타내며, R, T는 외부(extrinsic) 파라미터를 나타낸다. 이러한 카메라 투영 매트릭스 P를 통하여 이미지 시퀀스들과 3차원 좌표의 점들 사이의 관계가 정해지며, 본 발명은 카메라 투영 매트릭스 P를 이용하여 이미지 시퀀스들을 3차원 점들로 변환한다.Here, K denotes an intrinsic parameter of the camera, and R and T denote extrinsic parameters. This camera projection matrix P determines the relationship between the image sequences and the points of three-dimensional coordinates, and the present invention uses the camera projection matrix P to convert the image sequences into three-dimensional points.
또한, 이미지 시퀀스들로부터 얻어지는 3차원 재구성을 적절히 보상하기 위하여, 여러 기법들이 적용될 수 있으며, 특히 선형 삼각화 접근법(linear triangulation approach)이 사용될 수 있다. 이에 대한 설명은 생략한다.Also, in order to properly compensate for the three-dimensional reconstruction obtained from image sequences, various techniques can be applied, in particular a linear triangulation approach can be used. Description thereof will be omitted.
3. 사용자 발의 포즈 추정3. Estimate the pose of the user's foot
도 4는 사용자 발의 포즈를 추정하는 과정을 개념적으로 설명하기 위한 도면이다.4 is a diagram for conceptually explaining a process of estimating a pose of a user foot.
3차원 공간 좌표에서 객체의 포즈는 세 개의 축들 각각에 대한 회전에 따라 결정된다. 따라서, 본 발명은 세 개의 축들 각각에 대한 사용자 발의 회전각을 구하고, 그 회전각을 기초로 사용자 발의 포즈를 추정한다. The pose of the object in three-dimensional space coordinates is determined by the rotation about each of the three axes. Accordingly, the present invention obtains the rotation angle of the user's foot about each of the three axes, and estimates the pose of the user's foot based on the rotation angle.
본 발명은 다음과 같은 세 개의 단계들을 통하여 사용자 발의 포즈를 추정한다.The present invention estimates the pose of the user's foot through the following three steps.
첫 번째 단계는 도 4의 STEP 1에 도시된 것과 같이, 카메라 좌표계로부터 가상 좌표계로의 변위인 M을 계산하고, 그라운드 평면 위의 네 개의 마커들의 중심점으로부터 카메라 좌표계의 원점으로의 이동량인 T1을 계산한다. 그라운드 평면의 중심점은 사용자 발의 포즈를 추정하고, 사용자 발의 이동 변위를 가상 모델과 합성하기 위한 기준점이다.The first step is to calculate M, which is the displacement from the camera coordinate system to the virtual coordinate system, as shown in
카메라 좌표와 가상 좌표 사이의 관계 및 그라운드 평면 위의 네 개의 마커들의 중심점으로부터 카메라 좌표의 원점으로의 이동량인 T1이 완전히 정의되면, 두 번째 단계는 도 4의 STEP 2에 도시된 것과 같이, 사용자 발에 부착된 두 개의 마커들로부터 기준점(그라운드 평면의 중심점)까지의 이동 변위를 추정하는 것이다. 첫 번째, 두 번째 단계를 통하여 두 개의 마커들의 정보는 실제의 이미지로부터 가상 좌표계로의 변위로 변환될 수 있다.If T1, the relationship between the camera coordinates and the virtual coordinates and the amount of movement from the center point of the four markers on the ground plane to the origin of the camera coordinates is fully defined, the second step is the user's foot, as shown in
세 번째 단계는 가상 좌표계로 변환된 두 개의 포인트들의 벡터를 이용하여 현재의 프레임과 이전 프레임 사이의 내적을 통하여 회전 각도를 계산하는 것이다.The third step is to calculate the rotation angle through the dot product between the current frame and the previous frame using a vector of two points transformed into a virtual coordinate system.
본 발명은 가상 좌표로부터 사용자 발의 실제 좌표로의 변환 과정을 T1, T2, M을 통하여 파악할 수 있고, 도 4의 STEP 3에 도시된 바와 같이, 회전 정보를 반영하고 있는 사용자 발 모델은 실제의 좌표계로 되돌아갈 수 있다. 아래에서 다시 설명하겠지만, 실제의 좌표계에서 회전 정보를 반영하고 있는 사용자 발 모델은 2차원 이미지로 변환되어 디스플레이된다.According to the present invention, a process of converting virtual coordinates into actual coordinates of a user's foot can be understood through T1, T2, and M. As shown in
3.1 그라운드 평면의 제어3.1 Control of the ground plane
사용자 발의 포즈를 추정하기 위한 기준 평면인 그라운드 평면의 중심점을 실제 좌표계에서 계산해야 한다. 그라운드 평면의 중심점은 네 개의 마커들의 x, y, z 성분의 전체 합에 따라 규준화된다. 하기 수학식 8에 의해 그라운드 평면의 중심점이 계산될 수 있다.The center point of the ground plane, which is the reference plane for estimating the pose of the user's foot, should be calculated in the actual coordinate system. The center point of the ground plane is normalized according to the total sum of the x, y, z components of the four markers. The center point of the ground plane may be calculated by Equation 8 below.
[수학식 8][Equation 8]
여기서, xi는 네 개의 포인트들을 나타내며, 는 실제 좌표계에서 그라운드 평면의 중심점을 나타낸다. 여기서, 그라운드 평면의 중심점을 기준으로 삼아 이전 이미지 및 현재 이미지로부터 사용자 발의 포즈를 추정할 수 있기 때문에 사용자 발에 부착된 원형 마커들 및 그라운드 평면의 중심점은 가상 좌표계의 원점으로 이동해야 한다. 이 때, 를 가상 좌표계의 원점으로 이동하는 행렬은 하기 수학식 9와 같이 나타낼 수 있다.Where x i represents four points, Represents the center point of the ground plane in the actual coordinate system. Here, since the pose of the user's foot can be estimated from the previous image and the current image based on the center point of the ground plane, the circular markers attached to the user's foot and the center point of the ground plane should move to the origin of the virtual coordinate system. At this time, Can be expressed by Equation 9 below.
[수학식 9][Equation 9]
동일한 방식으로, 네 개의 마커들도 Tmc에 의해 이동할 수 있으며, 네 개의 마커들 각각과 중심점 사이에는 벡터가 형성된다. 여기서, 그라운드 평면의 노말 벡터는 도 5와 같이 나타낼 수 있고, 가상 좌표계로 이동된 그라운드 평면의 노말 벡터 Vn는 수학식 10에 의해 정의될 수 있다.In the same way, four markers can also be moved by Tm c , and a vector is formed between each of the four markers and the center point. Here, the normal vector of the ground plane may be represented as shown in FIG. 5, and the normal vector Vn of the ground plane moved to the virtual coordinate system may be defined by Equation 10. FIG.
[수학식 11][Equation 11]
여기서, M1, M2 각각은 원형 마커들의 중심을 나타내며, Vn는 그라운드 평면의 노말 벡터이다. 도 5에 도시된 바와 같이, 그라운드 평면의 노말 벡터는 네 개의 마커들 중 왼쪽 두 개의 마커들에 대한 두 개의 벡터들 M1, M2을 외적(cross product)함으로써 계산된다.Here, M 1 and M 2 each represent the center of the circular markers, and Vn is the normal vector of the ground plane. As shown in FIG. 5, the normal vector of the ground plane is calculated by cross product of two vectors M 1 , M 2 for the left two of the four markers.
이 때, 그라운드 평면은 가상 좌표계의 x-z 평면과 수평하게 놓이지 않을 수 있다. 즉, 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축은 평행하지 않을 수 있는데, 본 발명은 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축이 평행하도록 그라운드 평면을 제어할 수 있다.In this case, the ground plane may not lie horizontally with the x-z plane of the virtual coordinate system. That is, the normal vector of the ground plane and the y axis of the virtual coordinate system may not be parallel. The present invention may control the ground plane such that the normal vector of the ground plane and the y axis of the virtual coordinate system are parallel to each other.
도 6은 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축이 평행하도록 그라운드 평면을 제어하는 과정을 나타낸 도면이다.6 is a diagram illustrating a process of controlling the ground plane such that the normal vector of the ground plane and the y axis of the virtual coordinate system are parallel to each other.
도 6을 참조하면, 그라운드 평면을 가상 좌표계로 이동하는 경우, 가상 좌표게의 x-z 평면과 그라운드 평면이 평행하게 놓이지 않을 수 있음을 알 수 있다. 즉, 첫 번째 그림과 같이 존재하는 그라운드 평면이 두 번째 그림과 같이 가상 좌 표계로 이동한다고 가정하자. 이 때, 세 번째 그림에서 볼 수 있는 바와 같이, M1, M2 각각은 TmcM1, TmcM2으로 이동한다. 그리고, 네 번째 그림에서 볼 수 있는 바와 같이 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축은 평행하지 않게 된다.Referring to FIG. 6, when the ground plane is moved to the virtual coordinate system, it can be seen that the xz plane and the ground plane of the virtual coordinate cradle may not be placed in parallel. In other words, assume that the ground plane existing as shown in the first figure moves to the virtual coordinate system as shown in the second figure. At this time, as can be seen in the third picture, and M 1, M 2, respectively, go to the Tm c M 1, Tm c M 2. As shown in the fourth figure, the normal vector of the ground plane and the y axis of the virtual coordinate system are not parallel.
그라운드 평면의 노말 벡터 상에 존재하는 임의의 점을 (a, b, c)라고 하는 경우, 가상 좌표계의 x, y, z 축에 대한 노말 벡터의 회전각 은 하기 수학식 12와 같이 나타낼 수 있다.If any point on the normal vector of the ground plane is called (a, b, c), the angle of rotation of the normal vector with respect to the x, y, and z axes of the virtual coordinate system May be expressed as in Equation 12 below.
[수학식 12][Equation 12]
상기 수학식 6을 통해 계산되는 회전각을 이용하여 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축은 평행하게 될 수 있고, 그 결과의 예는 도 7에 도시되어 있다.Using the rotation angle calculated through Equation 6, the normal vector of the ground plane and the y axis of the virtual coordinate system may be parallel, and an example of the result is shown in FIG. 7.
3.2 회전 정보의 획득3.2 Obtain Rotation Information
사용자 발의 포즈를 추정하기 위하여, 사용자의 발목 축을 기준으로 하여 사용자 발의 회전각 및 방향을 파악해야 한다. 마커의 위치는 사용자 발의 모션을 반영하기 때문에 마커의 위치를 선택하는 것은 매우 중요하다. 본 발명의 일실시예는 두 개의 마커들 중 하나의 마커는 사용자 발의 발목쪽에 부착하고, 나머지 하나는 사용자 발의 앞꿈치쪽에 부착한다. 그리고, 본 발명은 두 개의 마커들을 이용하여 사용자 발의 포즈를 추정할 수 있다. 본 발명의 알고리즘은 아래와 같다.In order to estimate the pose of the user's foot, the rotation angle and the direction of the user's foot should be determined based on the user's ankle axis. Since the position of the marker reflects the motion of the user's foot, selecting the position of the marker is very important. In one embodiment of the present invention, one of the two markers is attached to the ankle side of the user's foot, and the other is attached to the ankle side of the user's foot. In addition, the present invention may estimate the pose of the user's foot using two markers. The algorithm of the present invention is as follows.
(1) 가상 좌표계의 원점으로 이동(1) Move to the origin of the virtual coordinate system
도 8은 그라운드 평면이 제어된 이후에, 사용자 발에 부착된 마커들을 가상 좌표계로 이동한 결과의 예를 나타낸 도면이다.8 is a diagram illustrating an example of a result of moving markers attached to a user's foot to a virtual coordinate system after the ground plane is controlled.
도 8에 도시된 바와 같이, 사용자 발에 부착된 마커들은 원래의 위치로부터 가상 좌표계로의 이동 거리 Tmc만큼 가상 좌표계로 이동한다. 이 때, 두 개의 마커들의 이동에 대한 관계식은 하기 수학식 13과 같이 나타낼 수 있다.As shown in FIG. 8, the markers attached to the user's foot move in the virtual coordinate system by the moving distance Tm c from the original position to the virtual coordinate system. In this case, a relation for the movement of the two markers may be expressed by Equation 13 below.
[수학식 13][Equation 13]
여기서, Fh는 발목쪽에 있는 마커의 원래의 위치, F'h는 가상 좌표계로 이동된 발목쪽에 있는 마커의 위치, Fl는 앞꿈치쪽에 있는 마커의 원래의 위치, F'l는 가상 좌표계로 이동된 앞꿈치쪽에 있는 마커의 위치를 나타낸다.Where F h is the original position of the marker on the ankle side, F ' h is the position of the marker on the ankle side moved to the virtual coordinate system, F l is the original position of the marker on the front heel, and F' l is moved to the virtual coordinate system The position of the marker on the side of the anterior heel.
여기서, F'h는 사용자 발의 회전에 대한 기준으로 사용되어어야 하므로, 가상 좌표계에서 그라운드 평면의 노말 벡터와 F'h가 평행하게 이동하여야 한다. F'h가 이동하는 과정은 도 9에 도시되어 있으며, 그 이동에 따른 관계식은 하기 수학식 14과 같이 나타낼 수 있다.Since F ' h should be used as a reference for the rotation of the user's foot, the normal vector of the ground plane and F' h must move in parallel in the virtual coordinate system. A process of moving F ′ h is illustrated in FIG. 9, and a relational expression according to the movement may be expressed by Equation 14 below.
[수학식 14][Equation 14]
여기서, 은 F'h에 대한 x 값이고, 는 F'h에 대한 y 값이다.here, Is the x value for F ' h , Is the y value for F ' h .
(2) 평면 투영(2) plane projection
발목 축의 회전 정보는 단지 평면 투영의 벡터를 추정하기 위하여 요구된다. 사용자 발이 언제나 그라운드에 붙어 있다고 가정하는 경우, 사용자 발에 부착된 마커들에 의해 정의되는 회전각 및 방향은 그 마커들 사이의 벡터를 투영함으로써 파악된다.Rotation information on the ankle axis is only needed to estimate the vector of the plane projection. Assuming that the user's foot is always on the ground, the rotation angle and direction defined by the markers attached to the user's foot are determined by projecting a vector between the markers.
도 10은 평면 투영을 개념적으로 설명하기 위한 도면이다.10 is a diagram for conceptually explaining planar projection.
도 10에서, F에서 F'를 뺀 결과가 벡터 A이고, 벡터 A는 평면과 수직이다.In Fig. 10, the result of subtracting F 'from F is vector A, and vector A is perpendicular to the plane.
이 때, F-V1F'=0이고, F-V2F'=0이며, V1 및 V2는 하기 수학식 9를 따른다.At this time, FV 1 F '= 0, FV 2 F' = 0, V 1 and V 2 follows the following equation (9).
[수학식 15][Equation 15]
상기 수학식 15는 하기 수학식 16과 같이 표현된다.Equation 15 is expressed as Equation 16 below.
[수학식 16][Equation 16]
이 때, F를 평면으로 투영한 결과는 하기 수학식 17과 같이 정의된다.At this time, the result of projecting F to the plane is defined as in Equation 17 below.
[수학식 17][Equation 17]
결국, 본 발명은 상기 수학식 17을 이용하여 사용자 발에 부착된 마커들을 그라운드 평면으로 투영할 수 있다. 그리고, 마커들이 그라운드 평면으로 투영된 경우, 투영된 마커들로 이루어지는 벡터를 이용하여 사용자 발의 회전각 및 방향을 파악할 수 있다.As a result, the present invention can project the markers attached to the foot of the user to the ground plane by using Equation 17. In addition, when the markers are projected onto the ground plane, the rotation angle and the direction of the user's foot may be grasped using a vector composed of the projected markers.
(3) 회전각의 계산(3) Calculation of rotation angle
도 11은 그라운드 평면으로 투영된 두 개의 벡터들의 회전각 및 방향을 나타낸 도면이다.11 is a view showing the rotation angle and direction of two vectors projected to the ground plane.
도 11에서, Fr'은 이전 이미지로부터 얻어진 벡터이고, Fc'은 현재 이미지로부터 얻어진 벡터이다. Fr' 및 Fc' 사이의 각도는 회전각을 의미하며, 하기 수학식 18과 같이 나타낼 수 있다.In FIG. 11, F r ′ is a vector obtained from a previous image and F c ′ is a vector obtained from a current image. An angle between F r 'and F c ' means a rotation angle, which can be expressed by Equation 18 below.
[수학식 18]Equation 18
상기 수학식 18을 기초로, 이전 이미지로부터 현재 이미지로의 회전각을 파악할 수 있으며, Fr' 및 Fc' 사이의 외적을 통하여 회전 방향이 시계 방향인지 또는 반시계 방향인지도 파악할 수 있다.Based on Equation 18, the rotation angle from the previous image to the current image can be determined, and whether the rotation direction is clockwise or counterclockwise can be determined through the cross product between F r 'and F c '.
3.3 가상의 발 모델의 포즈 추정3.3 Pose estimation of imaginary foot model
도 12는 가상 좌표계에서 가상의 발 모델의 포즈를 추정한 후, 그 가상의 발 모델을 원래의 좌표계로 변환하는 과정을 나타낸 도면이다.12 is a diagram illustrating a process of converting a virtual foot model into an original coordinate system after estimating a pose of a virtual foot model in a virtual coordinate system.
상술한 바와 같이, 이전 이미지 및 현재 이미지 사이의 관계에서 사용자 발의 회전각을 계산하게 되면, 도 12의 (a)에 도시된 바와 같이, 본 발명은 가상의 발 모델을 회전한다.As described above, when the rotation angle of the user's foot is calculated in the relationship between the previous image and the current image, as shown in FIG. 12A, the present invention rotates the virtual foot model.
또한, 본 발명은 도 12의 (b)에 도시된 바와 같이, 원래의 그라운드 평면과 가상 좌표계 사이의 관계를 계산한다. 보다 구체적으로, 원래의(가상 좌표계의 y축과 그라운드 평면의 노말 벡터가 평행하도록 제어되기 이전) 그라운드 평면과 가상 좌표계의 y 축 사이의 관계에 대해서는 상기 수학식 6을 통해 설명한 바 있으며, 상기 관계를 나타내는 TR은 하기 수학식 19와 같이 정의된다.In addition, the present invention calculates the relationship between the original ground plane and the virtual coordinate system, as shown in Fig. 12B. More specifically, the relationship between the original (before the y axis of the virtual coordinate system and the normal plane of the ground plane is controlled to be parallel) and the y axis of the virtual coordinate system has been described through Equation 6 above. T R which is denoted by Equation 19 is defined.
[수학식 19][Equation 19]
사용자 발의 회전각 및 원래의 그라운드 평면과 가상 좌표계의 y 축 사이의 관계를 파악함으로써, 사용자 발의 포즈를 추정하게 된다. 결국, 가상 좌표계 및 실제 좌표계의 관계 U는 하기 수학식 20과 같이 정리될 수 있고, 하기 수학식 20을 이용하여 가상 좌표계에서의 가상 모델은 실제 좌표계로 이동될 수 있다.By grasping the relationship between the rotation angle of the user's foot and the y-axis of the original ground plane and the virtual coordinate system, the pose of the user's foot is estimated. As a result, the relationship U between the virtual coordinate system and the actual coordinate system can be summarized as in Equation 20 below, and the virtual model in the virtual coordinate system can be moved to the actual coordinate system using Equation 20 below.
[수학식 20][Equation 20]
여기서, 이전 이미지 및 현재 이미지로부터 얻어지는 사용자 발의 회전각 은 상기 수학식 18을 통하여 얻어질 수 있고, TR은 상기 수학식 19를 통해 얻어 질 수 있다. 그리고, 및 는 가상 좌표계로 이동된 두 개의 마커들 중 어느 하나의 마커에 대한 x 축값, z 축값이다.Here, the rotation angle of the user's foot obtained from the previous image and the current image May be obtained through Equation 18, and T R may be obtained through Equation 19. And, And Is the x-axis value and the z-axis value for either of the two markers moved in the virtual coordinate system.
또한, 최종적으로 실제의 좌표계로 가상 모델이 이동하면, 본 발명은 그 가상 모델을 투영 매트릭스를 이용하여 2차원 이미지로 변환하여, 디스플레이할 수 있다.In addition, when the virtual model finally moves to the actual coordinate system, the present invention can convert the virtual model into a two-dimensional image using a projection matrix and display it.
도 13은 실시간으로 사용자 발의 모션를 추정하는 방법을 나타낸 동작 흐름도이다.13 is a flowchart illustrating a method of estimating motion of a user foot in real time.
도 13을 참조하면, 본 발명은 스테레오 카메라에 의해 생성된 여러 이미지들을 사용자 발 추정 장치로 입력한다(1310).Referring to FIG. 13, in
이 때, 본 발명은 스테레오 카메라의 내부, 외부 파라미터를 도출하고, 상기 수학식 2에 기재된 카메라 투영 매트릭스를 계산하기 위하여 카메라 캘리브레이션을 수행한다(1320, 1330).In this case, the present invention performs camera calibration to derive the internal and external parameters of the stereo camera and to calculate the camera projection matrix described in Equation 2 (1320 and 1330).
또한, 본 발명은 그라운드 평면 또는 사용자 발에 부착된 마커들을 검출하고, 3차원 재구성을 수행한다(1340, 1350).In addition, the present invention detects markers attached to the ground plane or the user's foot and performs three-dimensional reconstruction (1340, 1350).
또한, 본 발명은 검출된 마커들의 개수가 4개인지 또는 2개인지 여부를 판단한다(1360). 여기서, 그라운드 평면에 부착된 마커들의 개수는 4개이고, 사용자 발에 부착된 마커들의 개수는 2개라고 가정한다.In
만약, 마커들의 개수가 4개라면, 본 발명은 그라운드 평면을 제어한 다(1371).If the number of markers is four, the present invention controls the ground plane (1371).
즉, 본 발명은 사용자 발의 포즈를 추정하기 위한 기준 평면인 그라운드 평면의 중심점 을 실제 좌표계에서 계산하고, 를 가상 좌표계의 원점으로 이동하는 행렬 Tmc를 계산한다. 이에 따라 실제 좌표계와 가상 좌표계 사이의 관계가 도출될 수 있다.That is, the present invention is the center point of the ground plane which is a reference plane for estimating the pose of the user's foot Is calculated in the actual coordinate system, Calculate the matrix Tm c that moves to the origin of the virtual coordinate system. Accordingly, the relationship between the actual coordinate system and the virtual coordinate system can be derived.
더구나, 본 발명은 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축이 평행하게 되도록 그라운드 평면을 제어한다(1371). 이 때, 그라운드 평면의 노말 벡터 상에 존재하는 임의의 점을 (a, b, c)라고 하는 경우, 가상 좌표계의 x, y, z 축에 대한 노말 벡터의 회전각 이 계산된다.Moreover, the present invention controls the ground plane such that the normal vector of the ground plane and the y axis of the virtual coordinate system are parallel (1371). In this case, when any point existing on the normal vector of the ground plane is (a, b, c), the rotation angle of the normal vector with respect to the x, y, z axes of the virtual coordinate system This is calculated.
또한, 본 발명은 실제 좌표계와 가상 좌표계 사이의 관계를 도출한다(1372). 즉, 본 발명은 상기 수학식 20에 기재된 U에서 및 TR을 구할 수 있다. 또한, 를 계산하는 데에 사용되는 T1도 구해진다.In addition, the present invention derives a relationship between the actual coordinate system and the virtual coordinate system (1372). That is, the present invention in U described in the above equation (20) And T R can be obtained. Also, The T 1 used to calculate is also obtained.
단계 1371 내지 단계 1372를 통하여 실제 좌표계 및 가상 좌표계 사이의 관계가 모두 파악된다. 따라서, 사용자 발의 회전 상태 및 사용자 발의 위치만을 파악할 수 있다면, 사용자 발의 포즈를 추정할 수 있게 된다.Through
단계 1360에서, 마커들의 개수가 2개라면, 본 발명은 사용자 발에 부착된 마커들의 벡터를 검출한다(1381).In
이 때, 존재하는 이미지의 개수가 1개인지 여부(이전의 이미지가 있는지 여부)를 판단하고(1382), 이전의 이미지가 있다면, 벡터는 가상 좌표계로 이동한다(1383). At this time, it is determined whether the number of existing images is one (the previous image exists) (1382), and if there is a previous image, the vector moves to the virtual coordinate system (1383).
그리고, 벡터가 가상 좌표계로 이동되면, 본 발명은 벡터를 가상 좌표계에서 투영한다(1384). 그리고, 본 발명은 이전 이미지와 현재 이미지에 대하여 벡터의 회전각을 계산하고(1385), 회전 방향을 결정한다(1386).If the vector is moved to the virtual coordinate system, the present invention projects the vector in the virtual coordinate system (1384). The present invention calculates the rotation angle of the vector with respect to the previous image and the current image (1385), and determines the rotation direction (1386).
회전각 및 회전 방향이 결정되면, 3D 모델은 그 회전각 및 회전 방향에 따라 회전하며, 회전된 3D 모델은 실제 좌표계로 변환된다(1391).Once the rotation angle and rotation direction are determined, the 3D model rotates according to the rotation angle and rotation direction, and the rotated 3D model is converted into an actual coordinate system (1391).
그리고, 본 발명은 실제 좌표계로 변환된 3D 모델을 기초로 2D 이미지를 생성하고(1392), 그 2D 이미지를 디스플레이한다.The present invention generates a 2D image (1392) based on the 3D model converted into the actual coordinate system (1392), and displays the 2D image.
도 14는 본 발명의 일실시예에 따른 실시간으로 사용자 발의 모션을 추정하는 방법을 나타낸 동작 흐름도이다.14 is a flowchart illustrating a method of estimating motion of a user's foot in real time according to an embodiment of the present invention.
도 13은 사용자 발이 정지하여 있거나, 거의 움직이지 않는 경우, 사용자 발의 모션을 추정하는 방법을 나타낸 것인 반면에, 도 14는 움직이는 사용자 발의 무션을 실시간으로 추정하는 방법을 나타낸다.FIG. 13 illustrates a method of estimating the motion of the user's foot when the user's foot is stationary or hardly moving, while FIG. 14 illustrates a method of estimating the motion of the moving user's foot in real time.
도 14를 참조하면, 본 발명은 단계 1411 내지 단계 1414의 초기화 과정을 수행한 이후에, 단계 1421 내지 단계 1431의 실시간 추정 과정을 수행한다.Referring to FIG. 14, after the initialization process of
즉, 단계 1411에서 초기화가 완료되어 있지 않으면, 본 발명은 카메라 캘리브레이션을 수행한다(1412). 즉, 도 14에 구체적으로 도시되어 있지 않았지만, 본 발명은 카메라 투영 매트릭스를 계산한다.That is, if the initialization is not completed in
또한, 본 발명은 그라운드 평면에 부착된 네 개의 마커들을 이용하여 그라운드 평면을 제어한다(1413). 즉, 그라운드 평면의 중심점을 실제 좌표계에서 계산하고, 를 가상 좌표계의 원점으로 이동하는 행렬 Tmc를 계산한다. 이에 따라 실제 좌표계와 가상 좌표계 사이의 관계가 도출될 수 있다. 또한, 그라운드 평면의 노말 벡터 상에 존재하는 임의의 점을 (a, b, c)라고 하는 경 우, 가상 좌표계의 x, y, z 축에 대한 노말 벡터의 회전각 이 계산된다.In addition, the present invention controls the ground plane using four markers attached to the ground plane (1413). That is, the center point of the ground plane Is calculated in the actual coordinate system, Calculate the matrix Tm c that moves to the origin of the virtual coordinate system. Accordingly, the relationship between the actual coordinate system and the virtual coordinate system can be derived. Also, if any point on the normal vector of the ground plane is called (a, b, c), the angle of rotation of the normal vector with respect to the x, y, z axes of the virtual coordinate system This is calculated.
그라운드 평면의 제어가 완료된 경우, 본 발명은 본 발명은 실제 좌표계와 가상 좌표계 사이의 관계를 도출한다(1414). 즉, 본 발명은 상기 수학식 20에 기재된 U에서 및 TR을 구할 수 있다. 또한, 를 계산하는 데에 사용되는 T1도 구해진다. 결국, 초기화 과정을 통하여 실제 좌표계와 가상 좌표계 사이의 관계가 도출된다.When control of the ground plane is completed, the present invention derives the relationship between the actual coordinate system and the virtual coordinate system (1414). That is, the present invention in U described in the above equation (20) And T R can be obtained. Also, The T 1 used to calculate is also obtained. As a result, the relationship between the real coordinate system and the virtual coordinate system is derived through the initialization process.
초기화 과정이 완료되면, 본 발명은 칼만 필터를 이용하여 사용자 발에 부착된 두 개의 마커들을 검출한다(1421). 즉, 본 발명은 칼만 필터를 이용하여 보다 안정적이고, 잡음을 줄이면서 움직이는 마커들을 검출할 수 있다.When the initialization process is completed, the present invention detects two markers attached to the user's foot using the Kalman filter (1421). That is, the present invention can detect markers that are more stable and move while reducing noise by using a Kalman filter.
사용자 발에 부착된 두 개의 마커들이 검출되면, 본 발명은 카메라 캘리브레이션을 통해 얻어진 카메라 투영 매트릭스를 이용하여 3차원 재구성을 수행한다(1422).When two markers attached to the user's foot are detected, the present invention performs three-dimensional reconstruction using the camera projection matrix obtained through camera calibration (1422).
또한, 본 발명은 3차원 재구성을 수행한 이후에, 두 개의 마커들에 대한 벡터를 검출한다(1423).In addition, the present invention detects a vector for two markers after performing 3D reconstruction (1423).
이 때, 존재하는 이미지의 개수가 1개인지 여부(이전의 이미지가 있는지 여부)를 판단하고(1424), 이전의 이미지가 있다면, 벡터는 가상 좌표계로 이동한다(1425). In this case, it is determined whether the number of existing images is one (or whether there is a previous image) (1424), and if there is a previous image, the vector moves to the virtual coordinate system (1425).
그리고, 벡터가 가상 좌표계로 이동되면, 본 발명은 벡터를 가상 좌표계에서 투영한다(1426). 그리고, 본 발명은 이전 이미지와 현재 이미지에 대하여 벡터의 회전각을 계산하고(1427), 회전 방향을 결정한다(1428).If the vector is moved to the virtual coordinate system, the present invention projects the vector in the virtual coordinate system (1426). The present invention calculates the rotation angle of the vector with respect to the previous image and the current image (1427), and determines the rotation direction (1428).
회전각 및 회전 방향이 결정되면, 3D 모델은 그 회전각 및 회전 방향에 따라 회전하며, 회전된 3D 모델은 실제 좌표계로 변환된다(1429).Once the rotation angle and direction of rotation are determined, the 3D model rotates according to the rotation angle and direction of rotation, and the rotated 3D model is converted to an actual coordinate system (1429).
그리고, 본 발명은 실제 좌표계로 변환된 3D 모델을 기초로 2D 이미지를 생성하고(1430), 그 2D 이미지를 디스플레이한다(1431).The present invention generates a 2D image based on the 3D model converted into the actual coordinate system (1430) and displays the 2D image (1431).
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and 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은 본 발명의 일실시예에 따른 발 모션(foot motion) 추정 시스템을 나타낸 도면이다.1 is a diagram illustrating a foot motion estimation system according to an embodiment of the present invention.
도 2는 그라운드 평면에 부착된 네 개의 원형 마커들 및 사용자 발에 부착된 두 개의 원형 마커들에 대한 검출 결과를 나타낸다.2 shows detection results for four circular markers attached to the ground plane and two circular markers attached to the user's feet.
도 3은 그라운드 평면 위에 있는 네 개의 마커들을 통해 정의되는 교차점 및 사용자 발 위에 있는 두 개의 마커들을 통해 정의되는 중심선을 나타낸 도면이다.FIG. 3 is a diagram illustrating an intersection defined by four markers on the ground plane and a centerline defined by two markers on the user's feet.
도 4는 사용자 발의 포즈를 추정하는 과정을 개념적으로 설명하기 위한 도면이다.4 is a diagram for conceptually explaining a process of estimating a pose of a user foot.
도 5는 그라운드 평면의 노말 벡터를 나타낸 도면이다.5 shows a normal vector of the ground plane.
도 6은 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축이 평행하도록 그라운드 평면을 제어하는 과정을 나타낸 도면이다.6 is a diagram illustrating a process of controlling the ground plane such that the normal vector of the ground plane and the y axis of the virtual coordinate system are parallel to each other.
도 7은 그라운드 평면의 노말 벡터와 가상 좌표계의 y 축은 평행하게 된 결과의 예를 나타낸 도면이다.7 is a diagram illustrating an example of a result in which the normal vector of the ground plane and the y axis of the virtual coordinate system are parallel to each other.
도 8은 그라운드 평면이 제어된 이후에, 사용자 발에 부착된 마커들을 가상 좌표계로 이동한 결과의 예를 나타낸 도면이다.8 is a diagram illustrating an example of a result of moving markers attached to a user's foot to a virtual coordinate system after the ground plane is controlled.
도 9는 사용자 발에 부착된 마커들을 가상 좌표계에서 평행하게 이동하는 과정을 나타낸 도면이다.9 is a diagram illustrating a process of moving markers attached to a user's foot in parallel in a virtual coordinate system.
도 10은 평면 투영을 개념적으로 설명하기 위한 도면이다.10 is a diagram for conceptually explaining planar projection.
도 11은 그라운드 평면으로 투영된 두 개의 벡터들의 회전각 및 방향을 나타 낸 도면이다.FIG. 11 is a diagram illustrating the rotation angle and direction of two vectors projected onto the ground plane.
도 12는 가상 좌표계에서 가상의 발 모델의 포즈를 추정한 후, 그 가상의 발 모델을 원래의 좌표계로 변환하는 과정을 나타낸 도면이다.12 is a diagram illustrating a process of converting a virtual foot model into an original coordinate system after estimating a pose of a virtual foot model in a virtual coordinate system.
도 13은 실시간으로 사용자 발의 모션를 추정하는 방법을 나타낸 동작 흐름도이다.13 is a flowchart illustrating a method of estimating motion of a user foot in real time.
도 14는 본 발명의 일실시예에 따른 실시간으로 사용자 발의 모션을 추정하는 방법을 나타낸 동작 흐름도이다.14 is a flowchart illustrating a method of estimating motion of a user's foot in real time according to an embodiment of the present invention.
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090077580A KR101032509B1 (en) | 2009-08-21 | 2009-08-21 | System and method of estimating real-time foot motion using kalman filter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090077580A KR101032509B1 (en) | 2009-08-21 | 2009-08-21 | System and method of estimating real-time foot motion using kalman filter |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110019948A KR20110019948A (en) | 2011-03-02 |
KR101032509B1 true KR101032509B1 (en) | 2011-05-04 |
Family
ID=43929372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090077580A KR101032509B1 (en) | 2009-08-21 | 2009-08-21 | System and method of estimating real-time foot motion using kalman filter |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101032509B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9235895B2 (en) * | 2011-12-13 | 2016-01-12 | Hitachi, Ltd. | Method for estimating direction of person standing still |
GB2509783B (en) * | 2013-01-15 | 2017-07-05 | Holition Ltd | Foot tracking |
US9684928B2 (en) | 2014-01-15 | 2017-06-20 | Holition Limited | Foot tracking |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030068444A (en) * | 2002-02-12 | 2003-08-21 | 일본국(동경대학장소관) | Method of processing passive optical motion capture data |
-
2009
- 2009-08-21 KR KR1020090077580A patent/KR101032509B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030068444A (en) * | 2002-02-12 | 2003-08-21 | 일본국(동경대학장소관) | Method of processing passive optical motion capture data |
Non-Patent Citations (2)
Title |
---|
"구조적 칼만 필터를 이용한 이동 물체의 추적", 정보과학회논문지: 소프트웨어 및 응용 제29권 제5·6호, pp. 319-325, 2002.6. |
"모션 캡쳐를 위한 다시점 영상의 효율적인 분석법", 전자공학회논문지-SP, pp. 44-56, 2008.11. |
Also Published As
Publication number | Publication date |
---|---|
KR20110019948A (en) | 2011-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101776622B1 (en) | Apparatus for recognizing location mobile robot using edge based refinement and method thereof | |
EP2671384B1 (en) | Mobile camera localization using depth maps | |
KR101776621B1 (en) | Apparatus for recognizing location mobile robot using edge based refinement and method thereof | |
KR101776620B1 (en) | Apparatus for recognizing location mobile robot using search based correlative matching and method thereof | |
KR101725060B1 (en) | Apparatus for recognizing location mobile robot using key point based on gradient and method thereof | |
JP6198230B2 (en) | Head posture tracking using depth camera | |
TWI536318B (en) | Depth measurement quality enhancement | |
JP4967062B2 (en) | A method to estimate the appropriate motion of an object using optical flow, kinematics and depth information | |
JP2006509211A (en) | Dynamic depth restoration from multiple synchronized video streams | |
JP6349418B2 (en) | Object positioning by high-precision monocular movement | |
KR102455632B1 (en) | Mehtod and apparatus for stereo matching | |
KR20120011653A (en) | Image processing apparatus and method | |
KR20210058686A (en) | Device and method of implementing simultaneous localization and mapping | |
KR101032509B1 (en) | System and method of estimating real-time foot motion using kalman filter | |
JP2012181710A (en) | Object tracking device, method and program | |
KR101626057B1 (en) | Method and device for disparity estimation from three views | |
JP5656018B2 (en) | Sphere detection method | |
KR101896183B1 (en) | 3-d straight lines detection method for camera motion estimation | |
KR101828710B1 (en) | Apparatus and method for object occlusion detection | |
KR101035793B1 (en) | System and method of estimating foot motion | |
WO2018134866A1 (en) | Camera calibration device | |
An et al. | Tracking an RGB-D camera on mobile devices using an improved frame-to-frame pose estimation method | |
Pietzsch | Planar features for visual slam | |
KR101034675B1 (en) | Method of estimating human pose using unscented kalman filter based on numerical inverse kinematics, computer readable medium and server system | |
KR102555269B1 (en) | Posture estimation fusion method and system using omnidirectional image sensor and inertial measurement sensor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140326 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150417 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160325 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |