A method for generating a human body motion posture dataset based on a virtual character model
Through the data set generation method based on the virtual character model, the cost of collecting human motion posture data sets is solved, and the high-precision and extensive data set generation is achieved, which improves the adaptability and prediction effect of the bone posture prediction network.
Patent Information
- Application Number
- CN202210767092.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-30
- Publication Date
- 2025-07-25
- Estimated Expiration
- 2042-06-30
AI Technical Summary
The prior art has problems such as high cost, limited movement of the collector, low movement breadth, difficulty in data alignment, and easy interference in the collection of human motion posture data sets.
The human body motion posture data set generation method based on the virtual character model is adopted. By playing skeletal animations that conform to human anatomy, the actions are corrected using reverse kinematics algorithms, and the virtual inertial measurement unit is set to record the action sequence, the virtual coordinate system data is converted to the real human body coordinate system, and time smoothing and data integration are performed.
It effectively solves the acquisition limitation and interference problems of traditional methods, improves the acquisition accuracy and breadth of the data set, realizes flexible alignment of data coordinates, reduces acquisition costs, and improves the adaptability and prediction accuracy of the skeletal attitude prediction network.
Smart Images

Figure CN115018962B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technologies of inertial motion capture and human motion posture prediction, and particularly relates to the technology for generating a human body motion posture data set based on a virtual character model. Background Art
[0002] Human body motion posture estimation refers to the technology of obtaining human body motion data by using devices such as mechanical devices, optics, acoustics, electromagnetics or inertial sensors and reproducing the motion postures. The development of the human body motion posture and position estimation technology relying on this technology is based on the theoretical research of multiple disciplines such as sensor science, kinematics, navigation, human anatomy and physics, and combines interdisciplinary cross problems such as the somatosensory network and virtual reality, which has high scientific research value and commercial value.
[0003] As an application of deep learning in the field of human body motion posture estimation, the human body posture prediction network can realize functions such as sensor-free bound bone posture prediction, human behavior activity recognition, and user identity authentication according to information such as the rotation posture and spatial position of the human body bone action sequence. Obtaining human body action data for training the human body posture prediction network is one of the difficulties in the research of this field. How to obtain a human body motion posture data set with extensive action characteristics has become a research topic worthy of study in the field of human body motion posture prediction. The virtual character model can drive the actions of each bone of the character model through bone animation, and can simulate the required real human body actions to a certain extent. The bone actions of the virtual character model can replace the real human body actions as the action source of the human body motion posture data set, reducing the acquisition cost of the human body motion posture data set while improving the acquisition accuracy of the collected motion posture data set.
[0004] The current method for collecting human motion posture datasets collects real human motions through sensors. Collecting real human motions using sensors is restricted by the collection equipment and the collection site, and it is impossible to conduct large-scale data collection. On the other hand, limited by the physical strength and technical level of the motion collectors, it is difficult to collect long and complex motions. In particular, when motions that can only be performed outdoors, such as rock climbing and skiing, or motions with long-distance displacements need to be collected, additional adaptation is required when using traditional real data collection methods, increasing the cost of motion collection. Since a single collector has motion habits, a large number of repeated motions are likely to occur when using a single real human for collection. Therefore, different collectors are required to collect motions, which limits the motion breadth of the collected dataset. Additionally, traditional motion data collection methods need to determine the human motion coordinate system before collection. When using this data in different coordinate systems, additional coordinate system conversions are required. When the collection coordinates are unknown, it is difficult to align the data coordinates. Finally, traditional real data collection methods are easily affected by factors such as light, electromagnetic waves, and obstacles, resulting in problems such as a decrease in the frame rate and motion distortion of the collected motions. In summary, the current methods for collecting human motion datasets have problems such as high costs, being restricted by the motions of the collectors, low motion breadth, difficult data coordinate alignment, and being easily interfered with. Summary of the Invention
[0005] The technical problem to be solved by the present invention is to provide a method for extracting training data required by a human pose prediction network from virtual character motions in order to reduce the scale of real human motion data required for training a human motion posture prediction network and enhance the adaptability of the bone pose prediction network.
[0006] The technical solution adopted by the present invention to solve the above technical problem is a method for generating a human motion posture dataset based on virtual character motion data, including the steps of:
[0007] Step 1: Obtain a character model that conforms to human anatomy from the played bone animation;
[0008] Step 2: Correct the motions of the virtual character model according to the three-dimensional scene using the inverse kinematics algorithm;
[0009] Step 3: Set up a virtual inertial measurement unit to record the motion sequence of the virtual character model;
[0010] Step 4: Convert the virtual coordinate system data in the motion sequence of the virtual character model into the coordinate system data of the real human body;
[0011] Step 5: Perform time smoothing and data integration on the coordinate system data of the real human body to obtain a human motion posture dataset;
[0012] The virtual character model of the present invention replaces the real human body as the data source, effectively solving the problems of the traditional motion data acquisition method being restricted by the actions of the acquisition personnel and being easily interfered during the acquisition process; and uses the inverse kinematics bone motion correction means, so that the bone motion of the character model can be corrected differently according to different virtual scene environments on the premise of conforming to human anatomy, solving the problem of insufficient motion breadth of the data collected by the traditional motion data acquisition method.
[0013] Furthermore, the present invention provides a virtual reality coordinate conversion method, which realizes the conversion of virtual coordinate system data to data in any coordinate system where the real human body is located by aligning the standard actions in the virtual coordinate system with the standard actions in the coordinate system where the real human body is located, solving the problem of flexible alignment of data coordinates.
[0014] The beneficial effects of the present invention are that it solves the problems of high cost, being restricted by the actions of the acquisition personnel, low motion breadth, difficult alignment of data coordinates, and being easily interfered during the acquisition process of human motion postures, has good generalization ability, and is convenient for engineering implementation. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Figure 1 is the algorithm structure diagram of the present invention;
[0016] Figure 2 is the human bone tree model;
[0017] Figure 3 is the action flow chart of the inverse kinematics corrected character model;
[0018] Figure 4 is the structure diagram of converting virtual coordinate system data to data in the coordinate system where the real human body is located;
[0019] Figure 5 is the schematic diagram of the rotation quaternion principle. DETAILED DESCRIPTION OF THE INVENTION
[0020] In order to make the purpose, technical solutions and effects of the present invention clearer and easier to understand, the technical solutions of the present invention will be further described in detail below with reference to the drawings and embodiments. The following specific embodiments are used to explain the present invention and are not used to limit the scope of the present invention.
[0021] As Figure 1 shown, it is the algorithm structure diagram of the present invention, which includes modules such as a bone animation pool, inverse kinematics correction, a virtual character model, and mapping of the virtual coordinate system to the coordinate system where the real human body is located.
[0022] According to Figure 1 , it is summarized into 5 main parts:
[0023] Step 1: The character model plays the bone animation A(i) that conforms to human anatomy;
[0024] Step 2: Modify the model actions according to the 3D scene using the inverse kinematics algorithm;
[0025] Step 3: Set up a virtual IMU to record the action sequence data M(t) of the virtual human model;
[0026] Step 4: Convert the virtual coordinate system data in the action sequence M(t) into the coordinate system data of the real human body;
[0027] Step 5: Smooth the time and integrate the data of the coordinate system of the real human body to obtain the human body motion posture dataset Data.
[0028] The detailed process is as follows:
[0029] Step 1: Create a bone animation that conforms to human anatomy and play it on the virtual human model. The bone animation A(i) of the human model that conforms to human anatomy is stored in the FBX format. The model it describes is composed of interconnected bones. As Figure 2 shown, each bone has zero or more sub-bones, and the connection relationships between the bones form a bone tree. Animations are generated for the model by changing the rotation and position of the bones relative to their parent bones. Before adding the bone animation to the bone animation pool, it is necessary to verify that the bone animation conforms to human anatomy constraints:
[0030] Using Euler angles described by rotation in the self-coordinate system is more suitable for describing human anatomy constraints than Euler angles described by rotation in the static coordinate system. Convert the Euler angles of the bones rotated in the static coordinate system to Euler angles rotated in the self-coordinate system:
[0031]
[0032] where roll dyn (k), pitch dyn (k), yaw dyn (k) respectively represent the angles by which the k-th rotated bone rotates around the X-axis, Y-axis, and Z-axis of its own coordinate system with the posture of the parent bone as the initial posture. roll static (k), pitch static (k), yaw static (k) respectively represent the angles by which the k-th rotated bone rotates around the X-axis, Y-axis, and Z-axis of the parent bone coordinate system with the posture of the parent bone as the initial posture.
[0033] It is necessary to verify the angle limits of roll dyn (k), pitch dyn (k), yaw dyn (k):
[0034]
[0035] Among them, roll max (k) and roll min (k) respectively represent the minimum and maximum angle limits of the current bone around its own X-axis coordinate system. pitch max (k) and pitch min (k) respectively represent the minimum and maximum angle limits of the current bone around its own Y-axis coordinate system. yaw max (k) and yaw min (k) respectively represent the minimum and maximum angle limits of the current bone around its own Z-axis coordinate system. This part of the data is obtained by actual measurement.
[0036] Step 2: Based on the virtual character model, randomly play the bone animation A(i) and use the inverse kinematics algorithm to obtain the corrected bone actions of the character model The corrected bone actions of the character model obtained by using the inverse kinematics algorithm In this process, the limbs of the character model are regarded as a bone chain Bone and a joint set Joint with rotational constraints. As Figure 3 shown, taking A(i) as the pre-action of the character model, calculate the overlapping points of the current bone chain and the virtual scene. If there are overlapping points, take the point closest to the root joint Joint root among the overlapping points as the target point Target, and take Target as the target and the end joint Joint end as the end effector Effector to execute the following steps:
[0037] (1) Set the end bone as the current rotating bone Bone current .
[0038] (2) Set the joint near the root joint of Bone current as the current joint Joint current .
[0039] (3) Calculate the angle Eular current rotated by Target through Joint bone to Effector.
[0040] (4) If the rotation of each axis of Eular bone satisfies the bone rotation limit of Bone current then apply the rotation Eular current to Bone bone otherwise rotate Bone current to the limit angle as close as possible to Eular bone .
[0041] (5) If Bone current is not the root bone, then set Bone current as its parent bone and jump to (2). If Bone current is the root bone, then determine whether the Euclidean distance between the Effector and the Target meets the error limit. If it does, the algorithm ends. If it does not, set Bone current as the end bone and jump to (2).
[0042] Step 3: First, set a virtual IMU on the bones of the virtual human model. Use the attitude angles of the virtual IMU as the set bone attitude angles and the acceleration of the virtual IMU as the set bone joint accelerations. Then record the action sequence M T (t) of the human model. In the data record of the sequence M T (t) of the virtual human model actions, T is the sampling time interval of the real-world human action data, and t is the time stamp of the current action of the human model. The algorithm structure for extracting the quaternion of the real-world attitude and joint acceleration of a certain bone from the current time stamp t is as Figure 4 shown.
[0043] The joint accelerations of the virtual human are approximately calculated from the joint positions of the human model:
[0044]
[0045] where represents the position of the k-th joint of the human model at time t.
[0046] Step 4: Convert the attitude angles in the action sequence M(t) into rotation quaternions, and use the rotation quaternions to convert the virtual coordinate system data in the action sequence M(t) into the data in the coordinate system where the real human body is located.
[0047] Step 4-1: Map the Euler angles and accelerations of the bones of the human model in the virtual coordinate system to the human body attitude quaternions and accelerations in the coordinate system where the real human body is located. The rotation described by the bone attitude angle in the virtual coordinate system is to keep the virtual coordinate system stationary, and the bone model rotates by the corresponding angles around the X-axis, Y-axis, and Z-axis in sequence.
[0048] The bone attitude angle of the virtual coordinate system is calculated using the quaternion transformation formula to obtain the quaternion
[0049]
[0050] where roll k is the angle of rotation around the X-axis ink is the angle of rotation about the Y axis in, yaw k is the angle of rotation about the Z axis in.
[0051] Step 4-2: First, establish the projection of the virtual coordinate system in the coordinate system where the real human body is located. Select the positive direction of the Y axis as the front direction of the standard human body in the real world, the top direction as the positive direction of the Z axis, and the direction pointed by the left finger as the positive direction of the X axis as the projection coordinate system. The rotation and coordinates of this coordinate system are the same as those in the virtual coordinate system. Then, calculate the rotation quaternion q trans of the virtual coordinate system. For a quaternion in a virtual coordinate system, decompose this rotation quaternion into the form of a rotation axis and a rotation angle:
[0052] θ virtual = 2arccos(w virtual )
[0053]
[0054] where w virtual represents the w-axis component of the quaternion , x virtual represents the x-axis component of the quaternion , y virtual represents the y-axis component of the quaternion , z virtual represents the z-axis component of the quaternion .
[0055] (x virtual , y virtual , z virtual ) represents the rotation axis of the quaternion in the virtual coordinate system, and θ virtual represents the rotation angle of the quaternion about this rotation axis, as shown in Figure 5 .
[0056] Convert the rotation axis (x virtual , y virtual , z virtual ) in the virtual coordinate system to the rotation axis (x Projection , y Projection , z Projection ) in the projection coordinate system, and then transform (x trans Projection , y Projection , z Projection ) into the rotation axis in the coordinate system where the real human body is located through the rotation quaternion q) of the coordinate system where the real human body is located to the projection coordinate system:
[0057]
[0058]
[0059]
[0060] Among them, q axis is the result of converting the extended quaternion (x Projection , y Projection , z Projection ) to the real coordinates. w axis , x axis , y axis , z axis are the components of q axis on the w, x, y, and z axes respectively,
[0061] (x real_axis , y real_axis , z real_axis ) is the observation result of the rotation axis of the virtual coordinate system in the coordinate system where the real human body is located. During the mapping process from the virtual world to the real world, the rotation angle of the virtual world quaternion around the rotation axis remains unchanged. By combining the rotation axis and rotation angle in the coordinate system where the real human body is located, the mapping of the virtual world quaternion in the real world is obtained:
[0062] θ real = θ virtual
[0063]
[0064] Among them, θ real represents the rotation angle of the quaternion mapped to the real world around (x real_axis , y real_axis , z real_axis ), and q k (t) represents the mapping of the quaternion in the virtual coordinates in the coordinate system where the real human body is located.
[0065] Step 4-3: Convert the acceleration from the virtual coordinate system to the coordinate system where the real human body is located. First, establish the projection of the virtual coordinate system in the coordinate system where the real human body is located. To ensure the consistency of the coordinate systems of the acceleration data and rotation data, select the positive direction of the Y-axis as the front direction of the standard human body in the real world, the top direction as the positive direction of the Z-axis, and the direction pointed by the left finger as the positive direction of the X-axis. Then, calculate the rotation quaternion q trans .
[0066] The vector coordinates in the virtual coordinate system are directly mapped to the projection coordinate system. By converting the coordinates of the vector in the projection coordinate system to the coordinates in the coordinate system where the real human body is located, the conversion of the vector from the virtual coordinate system to the vector in the coordinate system where the real human body is located is realized. Therefore, for a virtual acceleration data, there is:
[0067]
[0068]
[0069]
[0070] Among them, represents the mapping of the virtual coordinate acceleration in the projection coordinate system, represents the acceleration in the projection system extended quaternion of, α k (t) represents the acceleration of the real human body coordinate system corresponding to the acceleration of the virtual coordinate system.
[0071] Finally, the rotation quaternion q of the real human body coordinate system k (t) and α k (t) are integrated to obtain the data of the real human body coordinate system corresponding to the virtual coordinate system data.
[0072] Step 5: Combine the smoothed q k (t) and α k (t) into the training data Data required by the human pose prediction network.
[0073] Step 5-1: Smooth the recorded continuous action quaternion q k (t) in time. Since the quaternion represents the definition of a rotation, using the quaternion to record continuous actions may be discontinuous in data. A rotation quaternion can represent the process of an object rotating a certain angle around the rotation axis, as shown in Figure 5 . According to the geometric meaning formula of the rotation defined by the quaternion:
[0074]
[0075] Among them represents a unit rotation quaternion q, represents the unit vector around which the rotation occurs, and θ represents the angle of rotation around the unit vector. When the object rotates 360 degrees around the rotation axis, that is the pose of the object remains unchanged but there is This may cause mutations in the quaternions obtained from a continuous motion record. According to the geometric meaning of the quaternion dot product, by taking the dot product of two unit quaternions, the closer the result is to 1, the closer the rotations represented by these two quaternions are. By taking the dot product of the quaternion data of the front and rear frames, it is determined whether to correct the obtained quaternion data:
[0076] value = q k (t)·q k (t - 1)
[0077]
[0078] where q k (t) represents the original quaternion data of the kth bone at timestamp t, value represents the dot product result of the front and rear frames of this bone, represents the quaternion data of the kth bone after continuity correction at timestamp t.
[0079] Step 5 - 2: Concatenate the corrected quaternion with the acceleration data α k (t):
[0080]
[0081] where Data(t) represents the data concatenation result at timestamp t, and the dataset Data arranged in timestamp order is the dataset obtained for training the human pose prediction network.
[0082] The benefits of the present invention are further illustrated below with experiments.
[0083] 1. Experimental conditions:
[0084] The hardware platform for the operation of the present invention is AMD Ryzen 7 5800 + NVIDIA RTX3060 + 16G DDR4 RAM. The inertial sensor used is BWT901CL5.0 of VIT Intelligent. The software environment is Windows 10 + CUDA 11.1 + PyTorch1.7 + Python 3.7. The PyCharm development tool is used for algorithm development work.
[0085] 2. Experimental content:
[0086] To verify the effectiveness of the dataset collected by the present invention, based on the sparse skeleton prediction algorithm of the bidirectional recurrent neural network, the training and testing effects of the real action dataset and the dataset collected by the present invention are compared. In the sparse skeleton prediction algorithm of the bidirectional recurrent neural network, the head, body, left and right forearms, and left and right calves in human actions are used as key nodes, and the rotation quaternions and acceleration sequences of the key nodes are used as inputs to predict the rotation quaternions of non-key nodes such as the left and right upper arms and left and right thighs.
[0087] In this experiment, the virtual action dataset and the real action dataset collected by the present invention are used as the training set of the prediction network, and the virtual action dataset, the real action dataset, and the action dataset that does not conform to human anatomical constraints collected by the present invention are used as the test set for comparison. The real action dataset is collected by binding inertial sensors to real human limbs, and the action dataset that does not conform to human anatomical constraints is collected by randomly moving inertial sensors. The mean square error between the network prediction result and the rotation quaternion of the non-key node is used as the dataset evaluation index.
[0088] Table 1: Comparison of mean square errors of network predictions between the dataset collected by the present invention and the real action dataset
[0089]
[0090] As can be seen from Table 1:
[0091] (1) When using the real action dataset as the training set of the prediction network, the virtual action dataset and the real action dataset collected by the present invention are used as the test sets to complete action prediction, and the mean square errors of the prediction results are close. However, when using the real action dataset that does not conform to human anatomical constraints as the test set, the mean square error of the network prediction result is larger. It is proved that the network trained with the real action dataset can predict the actions in the virtual action dataset collected by the present invention, and the prediction effect is close to the test effect using the real action dataset.
[0092] (2) When using the virtual action dataset collected by the present invention as the training set of the prediction network, the real action dataset and the virtual action dataset collected by the present invention are used as the test sets to complete action prediction, and the mean square errors of the prediction results are close. However, when using the real action dataset that does not conform to human anatomical constraints as the test set, the mean square error of the prediction result is larger. It is proved that the virtual action dataset collected by the present invention can be used as the training set to predict real actions, verifying the effectiveness of the data collected by the present invention.
[0093] (3) When comparing the virtual action dataset and the real action dataset collected by the present invention as the training set of the prediction network and using the same real action dataset as the test set, the mean square error of network prediction using the dataset collected by the present invention as the training set is reduced by 27.3% compared with using the real action dataset. When using the same virtual action data as the test set, the mean square error of network prediction using the dataset collected by the present invention as the training set is reduced by 52.6% compared with using the real action dataset. The above results show that the dataset collected by the present invention contains more effective actions compared with the real action dataset, which can improve the adaptability and prediction accuracy of the prediction network for actions.
[0094] In summary, the embodiment of the present application provides a method for generating a human body motion posture dataset based on a virtual character model. This dataset generation method uses the character model in the virtual scene instead of the real human body as the data source. First, it uses a skeletal animation that conforms to human anatomy to drive the character model, and corrects the actions of the character model according to the three-dimensional scene using the inverse kinematics algorithm. Then, it sets virtual IMUs on the bones of the character model where data needs to be collected, records the action sequence data of the character model through the virtual IMUs, and converts the data in the virtual coordinate system in the action sequence to the coordinate system where the real human body is located through the method of standard posture alignment. Finally, it smooths the data in the time domain and integrates the data in the coordinate system where the real human body is located to obtain the human body motion posture dataset. The skeletal posture prediction network using the dataset generated by this method as the training set can learn more extensive human action features, has a better prediction effect on complex actions, and has higher prediction accuracy and applicability.
Claims
1. A method for generating a human body motion posture data set based on a virtual character model, comprising the following steps: Step 1: Obtain a character model that conforms to human anatomy from the played skeletal animation; Step 2: Use the inverse kinematics algorithm to correct the actions of the virtual character model according to the three-dimensional scene; Step 3: Set up a virtual inertial measurement unit to record the action sequence of the virtual character model; Step 4: Convert the virtual coordinate system data in the action sequence of the virtual character model into the coordinate system data where the real human body is located; Step 5: Perform time smoothing and data integration on the coordinate system data where the real human body is located to obtain a human body motion posture data set; wherein, Step 2 specifically includes: First, model the limb bone actions of the virtual character model as a bone chain and joint set with rotation constraints; Then, use the skeletal animation as the pre-action of the virtual character model, calculate the overlapping points between the current bone chain and the virtual scene, and if there are overlapping points, use the point closest to the root joint in the overlapping points as the target point; After that, with the target point as the target and the end joint as the end effector, perform the following steps: (1) Set the end bone in the bone chain as the current rotating bone; (2) Set the root joint closest to the current rotating bone in the joint set as the current joint; (3) Calculate the Euler rotation angle of the target point through the current joint to the end effector bone ; (4) Correct the current rotating bone: Determine whether the rotation angle Eular bone meets the bone rotation limit of the current rotating bone. If so, apply the rotation angle Eular to the current rotating bone bone for correction. If not, apply the maximum angle closest to the rotation angle Eular within the bone rotation limit to the current rotating bone bone for correction; (5) Determine whether the current rotating bone is the root bone. If not, set the current rotating bone as its parent bone and return to step (2). If so, determine whether the Euclidean distance between the end effector and the target point meets the error limit. If the error limit is not met, set the current rotating bone as the end bone and return to step (2). If the error limit is met, complete the correction of the limb bone actions, and mix the corrected limb bone actions and the pre-action according to the bone layer to obtain the corrected actions of the virtual character model.
2. The method according to claim 1, wherein Step 3 specifically includes: First, set data recording points on the head, torso, left upper arm, right upper arm, left forearm, right forearm, left thigh, right thigh, left calf, and right calf of the virtual character model as the attachment points of the virtual inertial measurement unit; Then, during the movement of the virtual character model, record the action data of the virtual character model at the sampling moment at time interval T to form an action sequence of the virtual character model. Each action data of the virtual character model is obtained by splicing the virtual coordinate system acceleration and the virtual coordinate system rotation quaternion.
3. The method according to claim 2, wherein Step 4 specifically includes: 4-1) Convert the rotation quaternion from the virtual coordinate system to the coordinate system where the real human body is located: First, establish the projection of the virtual coordinate system in the coordinate system where the real human body is located; select the positive front direction of the standard human body in the real world as the positive direction of the Y-axis, the direction of the top of the head as the positive direction of the Z-axis, and the direction pointed by the left finger as the positive direction of the X-axis as the projection coordinate system, and the rotation and coordinates of this coordinate system are the same as those in the virtual coordinate system; then, calculate the rotation quaternion q of the projection coordinate system in the coordinate system where the real human body is located trans ; for a quaternion in a virtual coordinate system Decompose this rotation quaternion into the form of a rotation axis and a rotation angle: θ virtual = 2 arccos(w virtual ) Among them, w virtual represents the w-axis component of the quaternion , x virtual represents the x-axis component of the quaternion , y virtual represents the y-axis component of the quaternion , z virtual represents the z-axis component of the quaternion . (x virtual , y virtual , z virtual ) represents a quaternion which is the rotation axis in the virtual coordinate system, and θ virtual represents a quaternion which is the rotation angle around this rotation axis; Convert the rotation axes (x virtual , y virtual , z virtual ) in the virtual coordinate system to the rotation axes (x Projection , y Projection , z Projection ) in the projection coordinate system, and then transform (x trans , y Projection , z Projection , z Projection ) into the rotation axes in the coordinate system where the real human body is located through the rotation quaternion q trans : where q axis is the result of converting the extended quaternion (x Projection , y Projection , z Projection ) to real coordinates; w axis , x axis , y axis , z axis are the components of q axis on the w, x, y, and z axes respectively, (x real_axis , y real_axis , z real_axis ) is the observation result of the rotation axis of the virtual coordinate system in the coordinate system where the real human body is located; during the mapping process from the virtual world to the real world, the rotation angle of the virtual world quaternion around the rotation axis remains unchanged, and the virtual world quaternion is obtained by combining the rotation axis and the rotation angle in the coordinate system where the real human body is located, and its mapping in the real world is as follows: θ real = θ virtual Among them, θ real represents the rotation angle of the quaternion mapped to the real world around (x real_axis , y real_axis , z real_axis ), q k (t) represents the mapping of the quaternion in the virtual coordinates in the coordinate system where the real human body is located; 4-2) Convert the virtual coordinate system acceleration to the coordinate system where the real human body is located: First, establish the projection of the virtual coordinate system in the real coordinate system; to ensure the consistency of the coordinate systems of the acceleration data and the rotation data, select the positive direction of the Y-axis as the front of the standard human body in the real world, the direction of the top of the head as the positive direction of the Z-axis, and the direction pointed by the left finger as the positive direction of the X-axis to form the projection coordinate system; then, calculate the rotation quaternion q of the projection coordinate system in the coordinate system where the real human body is located trans ; The vector coordinates in the virtual coordinate system are directly mapped to the projection coordinate system, and by converting the coordinates of the vector in the projection coordinate system to the coordinates in the real coordinate system, the conversion of the vector from the virtual coordinate system to the real coordinate system is realized; therefore, for a virtual acceleration data, there is: Among them, represents the mapping of the virtual coordinate acceleration in the projection coordinate system, represents the projection system acceleration The extended quaternion of, α k (t) represents the acceleration of the real human body in the coordinate system corresponding to the virtual coordinate system acceleration; Finally, integrate the rotation quaternion q k (t) mapped to the coordinate system where the real human body is located and α k (t) to obtain the data of the real-world coordinate system corresponding to the virtual coordinate system data.
4. The method according to claim 3, wherein When performing data integration on the coordinate system data where the real human body is located after time smoothing in Step 5, continuity correction is also performed on the rotation quaternion of the real human body action: Take the dot product of the rotation quaternion of the real human motion at the current moment and the rotation quaternion of the real human motion at the previous moment to obtain the dot product result. When the dot product result is greater than -0.5, use the rotation quaternion of the real human motion at the current moment as the corrected rotation quaternion. When the dot product result is less than or equal to -0.5, use the negative value of the rotation quaternion of the real human motion at that moment as the corrected rotation quaternion.
Citation Information
Patent Citations
Motion capturing method and device based on inertial sensor and fabric electronics
CN113268141A
Sparse IMU real-time human motion capture method, device and equipment
CN114413897A
Method and apparatus for controlling virtual object, and storage medium and electronic apparatus
WO2022021686A1
KR20200005243A