WO2019205238A1 - 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 - Google Patents

骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 Download PDF

Info

Publication number
WO2019205238A1
WO2019205238A1 PCT/CN2018/090785 CN2018090785W WO2019205238A1 WO 2019205238 A1 WO2019205238 A1 WO 2019205238A1 CN 2018090785 W CN2018090785 W CN 2018090785W WO 2019205238 A1 WO2019205238 A1 WO 2019205238A1
Authority
WO
WIPO (PCT)
Prior art keywords
posture information
extremity
information
joint
angle
Prior art date
Application number
PCT/CN2018/090785
Other languages
English (en)
French (fr)
Inventor
长坂友裕
赵颖
许秋子
Original Assignee
深圳市瑞立视多媒体科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 深圳市瑞立视多媒体科技有限公司 filed Critical 深圳市瑞立视多媒体科技有限公司
Publication of WO2019205238A1 publication Critical patent/WO2019205238A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30004Biomedical image processing
    • G06T2207/30008Bone

Definitions

  • the invention relates to a motion capture technology, in particular to a skeleton attitude calculation method, a character virtual model driving method and a storage medium.
  • Motion capture refers to the setting of a tracker in the key parts of a moving object.
  • the position of the tracker is captured by the motion capture system, and then processed by a computer to obtain the data of the three-dimensional space coordinates.
  • the three-dimensional coordinate data is recognized by the computer, it can be applied in animation, gait analysis, biomechanics, ergonomics and other fields.
  • the live-action images captured by multiple cameras are replaced by digital models, capturing and recording the actions of the actors during the performance, and then synchronizing these actions to the virtual characters in the computer, so that the virtual characters move and the real person No difference, to achieve a realistic, natural effect.
  • the motion capture technology itself has many classifications. Commonly, there are mechanical dynamic capture systems, acoustic motion capture systems, electromagnetic motion capture systems, optical motion capture systems, and inertial motion capture systems. Among them, optical motion capture has become the most widely used and well-developed motion capture technology at this stage by virtue of its high acquisition accuracy and real-time feedback.
  • the common optical motion capture is mostly based on the principle of computer vision.
  • a typical optical motion capture system typically uses 6-8 cameras to arrange around the performance field.
  • the overlapping areas of the camera's field of view are the range of motion of the performer.
  • the performer is required to wear a monochrome costume in the body. Key points such as joints, hips, elbows, wrists, etc.
  • Marker some visual system identifiable signs or light points (ie, Marker), and the camera is continuously photographed at a shooting rate of 60 frames per second or more, and images are taken.
  • the sequence is saved, then analyzed and processed, the marker points are identified, and its spatial position at each instant is calculated to obtain its accurate motion trajectory.
  • Optical motion capture systems are widely used in games and movies, and the task of motion capture is accomplished by monitoring and tracking specific light spots on the target (such as capturing balls or fluorescent dots), since each light spot corresponds to one. Capturing the special part of the target, so the movement of the spot can be mapped to the segmental displacement of the target, even a very complex target (such as the human body), and the target can be constructed based on the number of high-light points and high positioning accuracy. The movement of each fine joint.
  • specific light spots on the target such as capturing balls or fluorescent dots
  • the virtual model In the application of game animation or film special effects, the virtual model usually uses a set of rigid skeletons, and the two bones are connected by joints. Therefore, when a change angle of each joint is given, a forward kinematics method (a method of calculating the position of the end effector from the value specified by the joint parameter) can be applied to obtain the extremity position of the virtual model.
  • a forward kinematics method a method of calculating the position of the end effector from the value specified by the joint parameter
  • inverse kinematics Inverse Kinematics
  • IK refers to the way in which the joint angles of the joints are determined by the position and attitude of the given extremities and the fixed ends.
  • a rigid body or a catching ball configured with a plurality of reflective marking points is usually placed at the end of a limb of a moving target (such as a human body), and a plurality of optical cameras are used to photograph the moving target at high speed.
  • the analytical method directly uses the formula to calculate the position and rotation direction of the intermediate joint between the ends of the limb, and the calculation speed is fast, but has a problem that the application situation is limited and the distortion is high.
  • the iterative method includes a cyclic coordinate descent method (CCD), a pseudo inverse method, and a nonlinear optimization method.
  • the CCD method is a heuristic type of iterative search method, which adjusts the angle of each joint on the limb from the end of the limb to the other end, and each adjustment makes the other end of the limb approach the target position, and the adjustment process is It is the iterative solution process of CCD, which is carried out in the iterative process. It has certain limitations on the iterative solution process: if the number of iterations does not exceed the agreed number of times, and the distance between the other end of the limb and the target position is within the allowable range of error.
  • the adjustment is successful (that is, the iterative solution is successful), otherwise the adjustment is unsuccessful (ie, no solution);
  • the pseudo-inverse method refers to the method of obtaining the final result by constructing the Jacobian matrix stepwise iteration;
  • the nonlinear optimization method is Taking the joint angle as an independent variable, the distance between the end position of the limb and the restrained position is taken as the objective function and optimized by the modified BFGS algorithm.
  • the general problem of the above iterative method is: The iterative calculation process is complicated, on the one hand, it requires many iterations to obtain the final result, and it is easy to be unable to solve the situation, and on the other hand, the operation speed is slow and cannot be further. Improve the real-time nature of the motion capture process.
  • the technical problem mainly solved by the present invention is how to optimize the iterative operation method in the calculation of the motion skeleton posture, so as to obtain the solution result accurately and quickly, and enhance the real-time performance in the motion capture process.
  • an embodiment provides an inverse kinematics-based skeletal posture calculation method, including the following steps:
  • the theoretical target posture information of the extremity is calculated according to the forward kinematics
  • the forward kinematics method calculates the theoretical target posture information of the extremity until the theoretical target posture information of the extremity approaches the actual target posture information of the extremity.
  • the human skeleton chain includes a root node, a limb end, and an intermediate joint, and the method further includes:
  • the initial posture information includes: initial posture information of the root node, angle information of the intermediate joint, bone length of each bone, and initial posture information of the extremity; and acquiring an actual target posture of the root node Information, as well as the actual purpose posture information of the extremities.
  • the theoretical target posture information of the extremity is calculated according to the forward kinematics, including: calculating the limb based on the initial posture information of the root node, the angle information of the intermediate joint, and the skeleton length of each bone.
  • the theoretical purpose of the end is the attitude information.
  • the updating the initial posture information of the human skeleton chain according to the calculated amount of change in the joint angle of the intermediate joint including:
  • the initial posture information of the root node is updated according to the initial posture information of the root node and the actual destination posture information of the root node and the preset number of loops.
  • Updating the initial posture information of the human skeleton chain according to the calculated joint angle change amount of the intermediate joint further comprising: after the current number of loops reaches a set value, according to the current bone length of each bone and its preset The amount of bone length change updates the bone length of the bone.
  • Updating the posture information change amount of the extremity according to the calculated theoretical target posture information of the extremity includes: updating the posture information of the extremity according to the calculated theoretical target posture information of the extremity, the remaining number of cycles, and the actual target posture information of the extremity The amount of change.
  • Obtaining the change amount of the posture information of the extremity comprises: acquiring the change amount of the posture information of the extremity according to the initial posture information of the extremity, the preset number of cycles, and the actual target posture information of the extremity; or acquiring the posture of the new extremity Information changes traffic.
  • the posture information includes: position information and angle information; and determining whether the theoretical target posture information of the extremity is close to the actual target posture information of the extremity includes:
  • the calculating the amount of change in the joint angle of the middle joint of the human skeleton chain according to the amount of change in the posture information of the extremity includes: calculating the amount of change in the joint angle of the intermediate joint by using a tapenade tool.
  • the use of the tapenade tool to inversely calculate the joint angle change amount of the intermediate joint includes: setting the angle change priority of each intermediate joint; changing the priority according to the set angle, and using the tapenade tool to inversely calculate the joint angle change amount of the intermediate joint.
  • the method further includes: determining whether the gradient value corresponding to the angle information of each intermediate joint is zero, and if so, correcting the angle information of the intermediate joint to make The corresponding gradient value is not zero, and conversely, the gradient value corresponding to the angle information of the intermediate joint is maintained.
  • an embodiment provides a character virtual model driving method, including the following steps:
  • the information acquisition step setting initial posture information of the limb, and acquiring actual target posture information of the extremity;
  • the limb includes a human skeleton chain, the human skeleton chain including a root node, an extremity and an intermediate joint, and the initial posture information includes a root Initial posture information of the node, angle information of the intermediate joint, bone length of each bone, and initial posture information of the extremity;
  • Computation processing step performing the skeleton posture calculation method described in the first aspect
  • Model-driven step when the theoretical target posture information of the extremity is close to the actual target posture information of the extremity, the theoretical target angle information of the intermediate joint of the human skeleton chain is obtained, and the actual target posture information according to the extremity and the intermediate joint of the acquired human skeleton chain are obtained.
  • the theoretical purpose angle information is to drive the character virtual model.
  • an embodiment provides a computer readable storage medium, comprising a program executable by a processor to implement the method of the second aspect.
  • a skeleton posture calculation method a character virtual model driving method, and a storage medium, wherein the skeleton posture calculation method is a key step of the character virtual model driving method, and the method mainly calculates the theoretical purpose of the extremity according to the forward kinematics method.
  • the posture information is used to calculate the skeletal attitude iterative calculation method based on inverse kinematics when the theoretical target posture information of the extremity is not close to the actual target posture information of the extremity.
  • the amount of joint angle change of the middle joint of the human skeleton chain is inversely calculated according to the change amount of the posture information of the extremity, so that the joint angles are close to the optimal value after each iteration, which effectively guarantees It simulates the smooth gradual effect of limb movements, satisfies the application requirements of realistically simulating limb movements; at the same time, it also makes the position of the extremity closer to the target position, thus ensuring the iterative calculation requirement of stepwise gradient descent in the calculation process.
  • the theoretical target posture information that can satisfy the extremity is close to the actual target posture information of the extremity, and the practical application requirements are met.
  • the iterative calculation process adopts multiple judgment mechanisms for limiting the number of cycles, comparing the target position of the extremities and comparing the angle information of the extremities, and can update the joint angle change and the theoretical target posture information of the extremities to the next time.
  • the judgment process is simplified and the validity of the iterative loop is ensured, which is beneficial to improve the calculation speed of the system while ensuring the correct calculation result, and can enhance the real-time behavior of the limb motion capture process.
  • FIG. 1 is a schematic structural diagram of a character virtual model
  • FIG. 2 is a schematic view showing the movement of a bone chain of a limb of an embodiment
  • FIG. 3 is a flow chart of a method for driving a character virtual model
  • FIG. 4 is a flow chart of a method for calculating a skeleton posture
  • FIG. 5 is a flow chart of obtaining the theoretical target posture information of the extremity according to an embodiment
  • FIG. 6 is a flow chart showing a comparison of target posture information of an extremity according to an embodiment
  • Figure 7 is a flow chart for calculating the amount of change in joint angle in an embodiment
  • Figure 8 is a flow chart of updating information of an embodiment
  • FIG. 9 is a flow chart of updating initial posture information of a human skeleton chain according to an embodiment
  • FIG. 10 is a schematic structural view of an embodiment of a limb motion capturing device
  • FIG. 11 is a structural diagram of a character virtual model driving system of an embodiment.
  • the movement process of the character virtual model is often represented by the action of multiple limb skeleton chains, as shown in Figure 1.
  • the initial posture information of the human skeleton chain can be preset, then the movement process of the right leg in the virtual model of the character can be regarded as the process of changing the limb L1 to L1'.
  • the method will be specifically described by taking the variation process of the limb L1 as an example.
  • Limb L1 includes a complete skeletal chain, as shown in Figure 2, which includes n-segment bones including hip, femur, tibia, tibia, and foot bone, each of which uses nodes P 1 , P 2 ... P n -1 and P n are used to indicate that a certain degree of attitude change is achieved by joints between the bones.
  • P n-1 are called intermediate joints, and the root nodes are
  • the node P 1 also called the starting bone
  • the remaining bones will be changed in the form of the joint motion
  • the extremities such as the node P n , also called the node P n ) end of the bone
  • the present application discloses a method for driving a character virtual model, including steps A01 to A03, which are respectively described below.
  • Step A01 may be referred to as an information acquisition step, and mainly acquires initial posture information of the limb and actual target posture information of the extremity.
  • the limb L1 includes a human skeleton chain including: a root node P 1 , an extremity P n , and an intermediate joint corresponding to the nodes P 1 , P 2 . . . , P n-1 respectively.
  • the initial posture the limb L1 information includes a root node P 1 of the initial posture information, the node P 1, the angle information P 2 ... P n-1 respectively corresponding to the middle joint, the node P 1, P 2 ...
  • the initial attitude information human skeletal chain may be produced by a preset manner, i.e., the root node P 1 of the initial posture information, the initial posture information extremity P n, the node P 1, P 2 ... P n -1 corresponding respectively
  • the angle information of the intermediate joint, and the length of the bone corresponding to the bones of the nodes P 1 , P 2 ... P n-1 respectively can be generated by the technician directly through the setting.
  • Step A02 may be referred to as an iterative calculation step, which is a core part of the character virtual model driving method, and specifically relates to a bone kinematics calculation method based on inverse kinematics, which will be specifically described below.
  • Step A03 which may be referred to as a model driving step
  • step A02 when the theoretical target posture information of the extremity is close to the actual target posture information of the extremity (ie, the difference between the theoretical target posture information of the extremity and the actual target posture information is within a certain error range In the inner time), the theoretical purpose angle information of the middle joint of the human skeleton chain at this time is calculated, then, in step A03, the theoretical target angle information of the middle joint of the human skeleton chain can be directly obtained, and then the actual target posture according to the extremity can be obtained.
  • the information and the theoretical purpose angle information of the intermediate joint of the acquired human skeleton chain are used to drive the character virtual model.
  • the theoretical purpose angle information refers to the actual target posture information of the theoretical target posture information of the extremity close to the extremity, and corresponds to the final angle information of the intermediate joint.
  • the angle information in the initial posture information of the extremity and the angle information variable of the intermediate joint obtained in each iterative calculation in step A02 can be obtained.
  • the actual target posture information of the extremity Pn and the calculated target angle information of the intermediate joint corresponding to the nodes P1, P2, . . . Pn-1 respectively can be input to a character virtual
  • the model-driven system performs smooth motion changes by driving the corresponding limbs of the character virtual model.
  • the inverse kinematics-based skeleton posture calculation method disclosed in the above step A02 may include steps S100-S500, which are respectively described below.
  • step S100 according to the initial posture information of the human skeleton chain, the theoretical target posture information of the extremity is calculated according to the forward kinematics.
  • the step S100 may include steps S110-S120, which are specifically described as follows.
  • Step S110 the In one embodiment, the obtaining of the preset initial posture information of L1 limb skeletal chain, which includes an intermediate root node P 1 of the initial posture information, the node P 1, P 2 ... P respectively corresponding to the n-1
  • the angle information of the joint, the nodes P 1 , P 2 ... P n-1 , P n respectively correspond to the bone length of the bone and the initial posture information of the extremity P n ; in addition, the limb P n can also be acquired by the dynamic capture system
  • the actual target attitude information, the method of acquiring the attitude information by using the motion capture system includes rigid body capture, capture ball capture, image recognition and other technical means, which are not limited and detailed herein.
  • step S100 when the step S100 is performed next time, the initial posture information of the skeleton chain of the limb L1 is updated.
  • step S400 For the specific process, refer to step S400.
  • Step S120 the step S110 to obtain the initial posture information of the input L1 limb bones in the chain to the forward kinematics calculation formula to obtain the theoretical object pose information P n of the extremities.
  • y represents the theoretical target pose information of the extremity P n ;
  • Length i represents the vector of the skeleton length of the bone corresponding to the node P i ;
  • Tran 1 represents the initial pose information of the root node P 1 ;
  • Rot i represents the node P i corresponding to
  • the angle information of the intermediate joint is mainly a rotating 3*3 matrix composed of the three-dimensional corner x i of the intermediate joint corresponding to the node P i . It should be noted that i here is an arbitrary integer in the range of 1 to n, where n represents the number of nodes.
  • step S200 it is determined whether the theoretical target posture information of the extremity is close to the actual target posture information of the extremity.
  • the proximity refers to the theoretical purpose posture information and the actual destination posture information within a certain error range.
  • the posture information here includes: position information and angle information, and therefore, when the step S200 is performed, the position information and the angle information should be separately judged.
  • the step S200 may include steps S210-S260, which are specifically described as follows.
  • a preset cycle number K0 may be set (the preset cycle number K0 is set by the user according to the test experience) Set an experience value).
  • the number of cycles is automatically incremented by one. If the current number of cycles k is within the preset number of cycles K0, the process proceeds to step S220. Otherwise, the process proceeds to step S260.
  • the steps S210 and S260 omitted, so that the iterative calculation process continues until the object of theoretical extremity P n posture information object close to the actual pose information extremity P n.
  • Step S220 the position of the object P is determined theoretical difference between the actual position information of the object information and the extremity P n n extremity is within the error range, and if yes, the process proceeds to step S230, the contrary, the process proceeds to step S240.
  • the error range of the location information is set by the user, and no specific limitation is made here.
  • the posture information includes the position information and the angle information
  • the theoretical target posture information of the extremity P n calculated in step S120 can be information split, thereby obtaining the theoretical destination position information of the extremity P n .
  • the theoretical purpose angle information of the extremity P n can be information split, thereby obtaining the theoretical destination position information of the extremity P n .
  • Step S230 the determined difference between the actual object of the theory of angular information object angle limb extremity P n and P n information whether the error range, and if yes, the process proceeds to step S250, the contrary, the process proceeds to step S240.
  • the error range of the angle information is set by the user, and no specific limitation is made here.
  • Step S240 the result of the judgment that the extremity P n theoretical actual object pose information object position information P n is not close to the extremity, the need to continue to perform iterative calculations, then the time, may proceed to step S300.
  • Step S250 the result of the judgment, the difference between the actual position of the object at the theoretical position information of the object information and the extremity P n P n extremity within the error range, and the object of the extremities theoretical angle information P n and P n extremity of if the difference between the actual angle information of the object is within the error range, the object of the theory that the extremity P n posture information object close to the actual pose information extremity P n of the iterative calculation required to achieve the application, may enter step S500.
  • the process has no solution, including forced end of iterative calculation, error alarm and other processing methods.
  • Step S300 acquiring the change amount of the posture information of the extremity (the change amount of the posture information herein refers to the change amount of the posture information between the two iterative calculations), and calculating the middle joint of the human skeleton chain according to the change amount of the posture information of the extremity The amount of joint angle change.
  • the step S300 includes steps S310-S340, which are respectively described below.
  • Step S310 the amount of change in posture information acquiring extremities, in one embodiment, the extremity P n according to the initial posture information, the preset number of cycles and the actual object pose information K0 extremities of P n, P n is acquired extremities
  • the posture information change amount ⁇ y which can be understood as the initial posture information change amount of the extremity P n .
  • the attitude information change amount ⁇ y can be expressed by a formula as
  • ⁇ y (actual target posture information of the extremities - initial posture information of the extremities) / K0
  • ⁇ y includes the amount of change in the position information of the extremity and the amount of change in the angle information of the extremity
  • K0 represents the preset number of cycles. It should be noted that, in practical applications, the amount of change in the posture information of the extremity P n may not be a uniform change state represented by the formula, and may be a modified non-uniform change state based on the formula.
  • the amount of change in posture information of the extremity P n can be expressed by a formula as
  • ⁇ y (actual target posture information of the extremity - theoretical target posture information of the extremity) /(K0-k);
  • ⁇ y at this time can be understood as the amount of change in the posture information of the updated extremity P n , and the amount of change in the posture information of the acquired extremity P n .
  • the amount of posture information change of the initial extremity P n and the amount of change of the posture information of the updated extremity P n are included.
  • the process of updating the amount of change in the posture information of the extremity P n is specifically described in step S400.
  • Step S320 which may be referred to as a gradient pre-processing step, is to accurately obtain the joint angle change amount of the intermediate joint of the human skeleton chain (the joint angle change amount herein refers to the change amount of the joint angle between adjacent iteration calculations), and needs to be
  • the gradient values corresponding to the joint angle variation of each intermediate joint in the calculation process are corrected so that the gradient values are not zero to ensure the validity of the calculation process.
  • step S330 it is sequentially determined whether the gradient value corresponding to the joint angle change amount of each intermediate joint is zero.
  • Step S330 in the range of the error tolerance, correct the angle information of the intermediate joint so that the gradient value corresponding to the intermediate joint is not zero, and after the correction processing, the gradient value corresponding to the joint angle change amount of each intermediate joint is If it is not zero, the process proceeds to step S340.
  • step S340 in order to improve the accuracy in calculating the amount of change in the joint angle, the angle change priority of each intermediate joint is also set.
  • the angle information of the intermediate joint corresponding to the nodes P 1 , P 2 . . . , P n-1 can be assigned different weight values to determine the angle change priority of each intermediate joint, for example, close to The intermediate joint corresponding to the node of the extremity P n is set with a larger weight value to preferentially adjust the amount of change in the joint angle of the intermediate joint.
  • step S350 the joint angle change amount of each intermediate joint is inversely calculated by the tapenade tool, which is a program module based on inverse kinematics, which is obtained by the forward kinematics formula in step S120.
  • the forward kinematics equation defined as y f (x), where, y represents a theoretical object pose information of the extremity P n, x indicates the node P 1, The angle information of the intermediate joint corresponding to P 2 ... P n-1 respectively.
  • ⁇ x is a set of joint angle change amounts of the respective intermediate joints (it is considered that ⁇ x includes n sub-joint angle change amounts, respectively ⁇ x 1 , ⁇ x 2 ... ⁇ x i , ⁇ x n ); Is a gradient value of ⁇ x, which includes sub-gradient values corresponding to one-to-one angular variation variables of n sub-joints in ⁇ x, and gradient values have been added in steps S320-S330 A correction is made to ensure that each sub-gradient value is not zero.
  • step S400 the initial posture information of the human skeleton chain is updated according to the calculated joint angle change amount of each intermediate joint, and the posture information change amount of the extremity is updated according to the calculated theoretical target posture information of the extremity.
  • the step S400 may include steps S410-S420, which are respectively described below.
  • step S410 the initial posture information of the human skeleton chain is updated.
  • the step S410 may include steps S411-S413, which are specifically described below.
  • actual root object pose information P 1 i.e., the node P 1 'position illustrated pose information, refer to the actual acquisition extremity P n process object pose information
  • a preset number of cycles K0 update the root node P 1 of the initial posture information
  • the root node P changes the posture information of the amount by equation 1:
  • the amount of change in the posture information of the root node (the actual target posture information of the root node - the initial posture information of the root node) / K0
  • K0 represents the preset number of cycles. Then, the root node P changes the posture information of the amount of the root node P 1 is updated initial pose a summation result information to the root node P 1 of the initial posture information.
  • step S412 it is determined whether the current number of cycles reaches the set value. Preferably, it can be determined whether the current cycle number k reaches the set value of 0.9*K0. When k reaches 0.9*K0, the process proceeds to step S413, otherwise to step S420. .
  • the purpose of this step is to adjust the bone length of each bone from 0.9*K0 times to ensure that there is a solution within the preset number of cycles.
  • step S412 may be eliminated such that the bone length is updated each iteration of the calculation.
  • Step S413 updating the skeleton length of the skeleton according to the skeleton length l i of the bone corresponding to each node P i and its preset bone length variation ⁇ l i , that is, updating the summation result of l i + ⁇ l i to l i .
  • the change in the length of the bone length ⁇ l i is set by the user.
  • updating the bone length of each bone helps to improve the accuracy of the theoretical target posture information of the limb P n and reduce the number of cycles, thereby improving the operation. speed.
  • the process of updating the length of the bone includes the stretching process of the bone length and the bending deformation process of the bone shape, but in this embodiment, in order to reduce the computational complexity, the process of updating the length of the bone mainly refers to the length of the bone.
  • the stretching process in order to reduce the computational complexity, the process of updating the length of the bone mainly refers to the length of the bone.
  • Step S410 includes only step S411.
  • Step S420 updating the posture information change amount of the extremity according to the calculated theoretical target posture information of the extremity.
  • a theoretical object posture information calculated extremity P n, the remaining number of cycles K0-k and an actual object's pose information extremity P n, P n extremities update the change amount of the posture information, the formula Expressed as:
  • ⁇ y' (actual target posture information of the extremities - theoretical target posture information of the extremities) /(K0-k)
  • the obtained ⁇ y' is updated to the posture information change amount ⁇ y in step S310.
  • step S400 the process proceeds to step S100, and the next iterative calculation is performed until it is determined in step S200 that the theoretical target posture information of the extremity is close to the actual target posture information, and the process proceeds to step S500.
  • Step S500 the information output process, the initial posture of the human skeleton information obtained by iterative calculation chain outputs, including the latest update of the root node P 1 of the initial posture information, the latest updated node P 1, P 2 ... P n -1
  • the angle information of the corresponding intermediate joints, the newly updated nodes P 1 , P 2 ... P n-1 , P n respectively correspond to the skeleton length of the bone, and the initial posture information of the newly updated limb P n .
  • the next step of step S500 is step A03, then the angle information of the intermediate joint corresponding to the newly updated nodes P 1 , P 2 ... P n-1 is mainly output, according to step A03.
  • the actual target posture information of the extremity P n acquisition process may refer to step S110
  • the angle information of the intermediate joint corresponding to the nodes P 1 , P 2 ... P n-1 finally obtained by the iterative calculation are input to a character
  • the virtual model drive system performs smooth motion changes by driving the corresponding limbs of the character virtual model.
  • the present application further protects a character virtual model driving system, which includes an information acquiring device 601, an iterative computing device 602, and a model driving device 603, which are respectively described below.
  • the information acquisition device 601 is configured to set initial posture information of the limb and acquire actual target posture information of the extremity. Seen in Figure 2, where L1 includes the physical chain of human bone, human bone chain 2 ... P n-1, respectively, the intermediate joint comprising a root node corresponding to P 1, P n and extremities nodes P 1, P, then the initial limb L1 attitude information comprises a root node P 1 of the initial posture information, the node P 1, respectively corresponding to the angle information P 2 ... P n-1 intermediate joints, the node P 1, P 2 ... P n -1, P n respectively corresponding The skeleton length of the skeleton, as well as the initial posture information of the extremity P n .
  • L1 is the initial body posture information may be generated by a predetermined manner, the prior art provided the root node P 1 is the initial posture information directly in the system, the initial posture information extremity P n, the node P 1, P 2 ... P n- an angle information corresponding to each of the middle joint, and the node P 1, P 2 ... P n -1 respectively corresponding to the length of the bone the bone, then the information is read by the system for the purpose of acquisition.
  • the iterative computing device 602 is used for iteratively calculating the theoretical target posture information of the extremity.
  • the theoretical target posture information of the extremity is close to the actual target posture information of the extremity, the actual target posture information of the output extremity and the theoretical purpose of the intermediate joint of the human skeleton chain are used.
  • Angle information is used.
  • the iterative computing device 602 is actually a skeletal posture computing device, which includes a posture information calculating unit 6021, a posture information determining unit 6022, a posture information updating unit 6023, and an iterative computing control unit 6024. The specific description of each unit is as follows:
  • the 6021 attitude information calculation unit 601 and the communication connection information acquiring means for acquiring the information receiving apparatus 601 outputs information of the initial posture of the human skeleton chain (specifically including the root node P 1 of the initial posture information, the node P 1, P 2 ... P n Angle information of the intermediate joint corresponding to -1 , the skeleton length of the bone corresponding to the nodes P 1 , P 2 ... P n-1 , P n , and the initial posture information of the extremity P n ), and then the posture
  • the information calculation unit 6021 calculates the theoretical target posture information of the extremity according to the initial kinematics of the human skeleton chain. For details, refer to step S100.
  • the posture information judging unit 6022 is communicably connected to the posture information calculating unit 6021, and is configured to receive the theoretical target posture information of the extremity outputted by the posture information calculating unit 6021, and determine whether the theoretical target posture information of the extremity is close to the actual target posture information of the extremity, according to The judgment result selection is in communication with the posture information updating unit 6023 or the model driving device 603. For details, refer to step S200.
  • the posture information updating unit 6023 is communicably connected to the posture information determining unit 6021, and is configured to acquire the posture information change amount of the extremity output by the posture information determining unit 6022 when the determination result of the posture information determining unit 6022 is NO, and according to the posture information of the extremity
  • the amount of change calculates the amount of joint angle change of the middle joint of the human skeleton chain; updates the initial posture information of the human skeleton chain according to the calculated joint angle change of the intermediate joint, and updates the posture information of the extremity according to the calculated theoretical target posture information of the extremity The amount of change. For details, refer to step S300.
  • the iterative calculation control unit 6024 is in communication with the posture information calculation unit 6021, the posture information determination unit 6022, and the posture information update unit 6023, respectively, for controlling the iterative calculation process in which the respective units coordinately perform posture information.
  • the iterative calculation control unit 6024 inputs the posture information change amount of the limbs updated in the posture information update unit 6023 to the posture information calculation module 6021, and the control posture information calculation unit 6021 follows the forward motion information according to the initial posture information of the human skeleton chain.
  • the method calculates the theoretical target posture information of the extremity; then, the iterative calculation control unit 6024 controls the posture information calculation module 6021 to input the latest target theoretical target posture information into the posture information determining unit 6022; next, iteratively calculates the control unit
  • the 6024 control posture information determining unit 6022 determines the theoretical target posture information of the input extremities, and determines whether the theoretical target posture information of the extremity is close to the actual target posture information of the extremity, and if not, continues to output the posture information change amount of the extremity to
  • the posture information updating unit 6023 performs the next iterative process. If it is close, the actual target posture information of the extremity and the theoretical target angle information of the intermediate joint of the human skeleton chain are output to the model driving device 603.
  • step S400 For specific embodiments, reference may be made to step S400.
  • the model driving device 603 is communicably connected to the posture information determining unit 6022.
  • the posture information determining unit 6022 determines that the theoretical target posture information of the extremity is close to the actual target posture information of the extremity
  • the model driving unit 603 receives the actual extremity output by the posture information determining unit 6022.
  • the target posture information and the theoretical target angle information of the intermediate joint of the human skeleton chain; the model driving device 603 drives the character virtual model according to the actual target posture information of the extremity and the theoretical target angle information of the intermediate joint of the acquired human skeleton chain.
  • the present application also protects the limb capture and capture device, as shown in FIG. 10, which includes the memory 501 and the processor. 502, and a computer program 503 for storing a computer program 503, which when executed by the processor 502, is capable of implementing the steps A01-A03 above, and the methods shown in steps S100-S500.
  • the program may be stored in a computer readable storage medium, and the storage medium may include: a read only memory, a random access memory, a magnetic disk, an optical disk, a hard disk, etc.
  • the computer executes the program to implement the above functions.
  • the program is stored in the memory of the device, and when the program in the memory is executed by the processor, all or part of the above functions can be realized.
  • the program may also be stored in a storage medium such as a server, another computer, a magnetic disk, an optical disk, a flash disk or a mobile hard disk, and may be saved by downloading or copying.
  • the system is updated in the memory of the local device, or the system of the local device is updated.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

一种骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质,其中骨骼姿态计算方法是人物虚拟模型驱动方法的关键步骤,该方法包括基于反向运动学的骨骼姿态迭代计算过程,根据肢端的姿态信息变化量来逆向计算人体骨骼链的中间关节的关节角度变化量,使得每次迭代之后各个关节角度都接近最佳值,有效保证模拟肢体动作时的平滑渐变效果,满足逼真地模拟肢体动作的应用需求。此外,迭代计算过程中采取了多重判断机制,能够将各个关节角度变化量以及肢端的姿态信息变化量及时地更新至下一次的迭代计算之中,简化了判断过程并确保了迭代循环的有效性,利于在确保计算结果正确的情形下提高系统的计算速度,可增强肢体动作捕捉过程的实时性。

Description

骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 技术领域
本发明涉及运动捕捉技术,具体涉及骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质。
背景技术
运动捕捉技术(Motion capture,简称Mocap)是指在运动物体的关键部位设置跟踪器,由动捕系统捕捉跟踪器位置,再经过计算机处理后得到三维空间坐标的数据。当三维空间坐标数据被计算机识别后,可以应用在动画制作、步态分析、生物力学、人机工程等领域。特别是在电影特效领域,将多个摄影机捕捉到的真人影像换为数字模型,捕捉并记录演员表演时的动作,然后把这些动作同步到电脑中的虚拟角色上,使虚拟角色的动作和真人毫无差别,以达到逼真、自然的效果。
根据设备运行原理的不同,运动捕捉技术本身也有着诸多分类,常见的有机械式动捕系统、声学式动捕系统、电磁式动捕系统、光学式动捕系统以及惯性动捕系统。其中,光学式动作捕捉凭借着采集精度高、可实时反馈等优势成为现阶段应用最为广泛、发展较为成熟的运动捕捉技术。
常见的光学式运动捕捉大多基于计算机视觉原理,从理论上说,对于空间中的一个点,只要它能同时为两部相机所见,则根据同一时刻两部相机所拍摄的图像和相机参数,可以确定这一时刻该点在空间中的位置,而当相机以足够高的速率连续拍摄时,从图像序列中就可以得到该点的运动轨迹。典型的光学式运动捕捉系统通常使用6-8个相机在表演场进行环绕排列,这些相机的视野重叠区域就是表演者的动作范围,为了便于处理,要求表演者穿上单色的服装,在身体诸如关节、髋部、肘、腕等关键部位贴上一些视觉系统可识别的标志或发光点(即Marker),使用相机以每秒60帧以上拍摄速率连续地拍摄表演者的动作,并将图像序列保存下来,然后再进行分析和处理,识别其中的标志点,并计算其在每一瞬间的空间位置,进而得到其准确的运动轨迹。
光学式动捕系统在游戏和电影领域运用都比较广泛,通过对目标上特定光点(比如捕捉球或荧光贴点)的监视和跟踪来完成运动捕捉的任务,由于每一个光点都对应一个捕捉目标的特殊部位,所以光点的移动 就可以映射成为目标的分段位移,甚至结构非常复杂的目标(比如人体),在高光点数量、高定位精度的基础下,也能够构建出目标物每一个细致关节的移动。
在游戏动画制作或者电影特效制作的应用中,虚拟模型通常用一组刚体表示的骨骼构架,两骨骼之间由关节连接。因此,当给定各个关节的变化角度时,可以应用正向运动学方法(是指从关节参数指定的值计算端部执行器的位置的方法)得到虚拟模型的肢端位置。然而,在交互式操作、轨迹控制等应用功能中往往需要根据虚拟模型某一肢体末端骨骼的位置反求同一肢体上各个关节的旋转角度,此时,需要采用反向运动学(Inverse Kinematics,简称IK,是指给定肢端和固定端的位置姿态求运动链上各关节转角)的方式对相关关节转角进行求解。
在采用反向运动学求解的实际应用中,通常将配置有多个反光标记点的刚体(或者捕捉球)设置于运动目标(比如人体)的肢体端部,运用多个光学相机高速拍摄运动目标的动作,获取刚体(或者捕捉球)的位置信息,借助生物学上的人体模型,并通过反向运动方式的求解方式模拟出该肢体上端部之间的各个关节的旋转角度,进而准确地模拟出拍摄时间间隔内运动目标的连续运动轨迹。
在通过反向运动学方式求解一肢体(或关节链)上各个关节的旋转角度(或者与关节相连的两骨骼之间的变化角度)时,目前主要有两类方法,即解析法和迭代法。解析法是直接利用公式来计算肢体端部之间的中间关节的位置和旋转方向,计算速度快,但具有应用情形受限、失真度较高的问题。迭代法包括循环坐标下降方法(CCD)、伪逆方法以及非线性优化方法。其中,CCD方法是一种启发式的迭代搜索方法,该方法通关过从肢体末端开始向另一端依次调整该肢体上各个关节的角度,每次调整都使肢体另一端接近目标位置,调整过程即是CCD的迭代求解过程,是在反复迭代过程中进行的,它对于迭代求解过程有一定的限定:如果迭代的循环次数没有超过约定次数,且肢体另一端和目标位置的距离在误差允许范围之内时,则认为调整成功(即迭代求解成功),反之则认为调整不成功(即无解);伪逆方法是指通过构造雅可比矩阵逐步迭代来获取最终结果的方法;非线性优化方法是将关节角度作为自变量,把肢体端部位置和约束位置之间的距离作为目标函数并使用修正的BFGS算法优化求解。现有技术中,上述的迭代法普遍存在的问题是: 迭代计算过程复杂,一方面致使需要很多次迭代才能得到最终结果,还容易出现无法求解的情况,另一方面致使运算速度慢,无法进一步提高运动捕捉过程的实时性。
发明内容
本发明主要解决的技术问题是如何优化运动骨骼姿态计算中的迭代运算方法,以准确、快速地获取求解结果,增强运动捕捉过程中的实时性。
根据第一方面,一种实施例中提供一种基于反向运动学的骨骼姿态计算方法,包括以下步骤:
根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息;
判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息,若判断结果为否,则获取肢端的姿态信息变化量,并根据肢端的姿态信息变化量计算所述人体骨骼链的中间关节的关节角度变化量;
根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量,并进入根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息的步骤,直到肢端的理论目的姿态信息接近肢端的实际目的姿态信息为止。
所述人体骨骼链包括根节点、肢端和中间关节,所述方法还包括:
获取所述人体骨骼链的初始姿态信息,所述初始姿态信息包括:根节点的初始姿态信息、中间关节的角度信息、各个骨骼的骨骼长度以及肢端的初始姿态信息;获取根节点的实际目的姿态信息,以及肢端的实际目的姿态信息。
所述根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息,包括:基于根节点的初始姿态信息、中间关节的角度信息以及各个骨骼的骨骼长度,计算肢端的理论目的姿态信息。
所述根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,包括:
将每个中间关节的角度信息与计算出的对应的关节角度变化量求和,并将求和得到的角度值更新为该中间关节的角度信息;
根据根节点的初始姿态信息以及根节点的实际目的姿态信息和预设 的循环次数,更新根节点的初始姿态信息。
所述根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,还包括:在当前的循环次数达到一设定值之后,根据每个骨骼当前的骨骼长度和其预设的骨骼长度变化量更新该骨骼的骨骼长度。
所述根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量,包括:根据计算出的肢端的理论目的姿态信息、剩余的循环次数以及肢端的实际目的姿态信息,更新肢端的姿态信息变化量。
所述获取肢端的姿态信息变化量,包括:根据肢端的初始姿态信息、预设的循环次数以及肢端的实际目的姿态信息,获取肢端的姿态信息变化量;或,获取已跟新的肢端的姿态信息变化流量。
所述姿态信息包括:位置信息和角度信息;所述判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息,包括:
先判断是否在预设的循环次数之内,若在循环次数之内,则接着判断肢端的理论目的位置信息与实际目的位置信息之差是否在误差范围内,以及判断肢端的理论目的角度信息与实际目的角度信息之差是否在误差范围内,若判断结果均为是,则认为肢端的理论目的姿态信息接近肢端的实际目的姿态信息。
所述根据肢端的姿态信息变化量计算所述人体骨骼链中间关节的关节角度变化量,包括:用tapenade工具反向计算中间关节的关节角度变化量。
所述用tapenade工具反向计算中间关节的关节角度变化量,包括:设置各个中间关节的角度变化优先级;按照设置的角度变化优先级,用tapenade工具反向计算中间关节的关节角度变化量。
在用tapenade工具反向计算中间关节的关节角度变化量之前,还包括:判断每个中间关节的角度信息所对应的梯度值是否为零值,若是,则修正该中间关节的角度信息,使其对应的梯度值不为零,反之,则保持该中间关节的角度信息对应的梯度值。
根据第二方面,一种实施例中提供一种人物虚拟模型驱动方法,包括以下步骤:
信息获取步骤:设置肢体的初始姿态信息,以及获取肢端的实际目的姿态信息;所述肢体包括人体骨骼链,所述人体骨骼链包括根节点、 肢端和中间关节,所述初始姿态信息包括根节点的初始姿态信息、中间关节的角度信息、各个骨骼的骨骼长度以及肢端的初始姿态信息;
计算处理步骤:执行第一方面所述的骨骼姿态计算方法;
模型驱动步骤:当肢端的理论目的姿态信息接近肢端的实际目的姿态信息时,获取人体骨骼链的中间关节的理论目的角度信息,并根据肢端的实际目的姿态信息以及获取的人体骨骼链的中间关节的理论目的角度信息来驱动人物虚拟模型。
根据第三方面,一种实施例中提供一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现第二方面所述的方法。
本申请的有益效果是:
依据上述实施例的一种骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质,其中骨骼姿态计算方法是人物虚拟模型驱动方法的关键步骤,该方法主要按照正向运动学方式计算肢端的理论目的姿态信息,在计算得到肢端的理论目的姿态信息未接近肢端的实际目的姿态信息时,启用基于反向运动学的骨骼姿态迭代计算方法。由于在迭代计算过程中使用逆向推导的思想,根据肢端的姿态信息变化量来逆向计算人体骨骼链的中间关节的关节角度变化量,使得每次迭代之后各个关节角度都接近最佳值,有效保证模拟肢体动作时的平滑渐变效果,满足逼真地模拟肢体动作的应用需求;同时,也使得肢端的位置进一步地接近目的位置,从而保证了计算过程中逐步梯度下降的迭代计算需求,在经过多次迭代之后,可满足肢端的理论目的姿态信息接近于肢端的实际目的姿态信息,达到实际应用要求。此外,迭代计算过程中采取了限制循环次数、比较肢端目的位置信息和比较肢端目的角度信息的多重判断机制,能够将各个关节角度变化量以及肢端的理论目的姿态信息及时地更新至下一次的迭代计算之中,简化了判断过程并确保了迭代循环的有效性,利于在确保计算结果正确的情形下提高系统的计算速度,可增强肢体动作捕捉过程的实时性。
附图说明
图1为人物虚拟模型的结构示意图;
图2为一实施例肢体的骨骼链运动示意图;
图3为人物虚拟模型驱动方法的流程图;
图4为骨骼姿态计算方法的流程图;
图5为一实施例获取肢端的理论目的姿态信息的流程图;
图6为一实施例肢端的目的姿态信息比较的流程图;
图7为一实施例计算关节角度变化量的流程图;
图8为一实施例更新信息的流程图;
图9为一实施例更新人体骨骼链的初始姿态信息的流程图;
图10为一实施例肢体动作捕捉装置的结构示意图;
图11为一实施例人物虚拟模型驱动系统的结构图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
在游戏动画制作、电影特效制作等应用中,常常通过多个肢体骨骼链的动作来表示人物虚拟模型的运动过程,详见图1。其中,人体骨骼链的初始姿态信息可以预设,那么人物虚拟模型中右腿的运动过程即可认为是肢体L1变化至L1′的过程。为便于理解本申请公开的人物虚拟模型驱动方法,将以肢体L1的变化过程为例对该方法进行具体说明。
肢体L1包括一条完整的骨骼链,可见图2,该骨骼链上包括髋骨、 股骨、胫骨、腓骨、足骨在内的n段骨骼,各段骨骼分别使用节点P 1、P 2…P n-1、P n来表示,骨骼之间通过关节来实现一定幅度的姿态改变,节点P 1、P 2…P n-1所对应的骨骼端部位置的关节称为中间关节,当根节点(比如节点P 1,也称始端骨骼)由初始姿态改变至节点P 1′示意的目的姿态时,将通过连带运动的形式带动其余骨骼产生姿态改变,最终引导肢端(比如节点P n,也称末端骨骼)由节点P n处示意的初始姿态改变至节点P n′处示意的目的姿态。当仅设置根节点P 1和肢端P n的初始姿态、目的姿态时,为使得骨骼链的姿态变化过程具有平滑运动效果,需要获取肢端P n由初始姿态变化至目的姿态的过程中中间节点P 1、P 2…P n-1所对应的各个中间关节的关节角度信息,从而将各个中间关节的关节角度信息输入以驱动人物虚拟模型来模拟肢体的运动轨迹,最终达到较为逼真的肢体运动效果。下面将依据肢体L1来对人物虚拟模型驱动方法进行具体说明。
请参考图3,本申请公开了一种人物虚拟模型驱动方法,包括步骤A01~A03,下面分别说明。
步骤A01,可称为信息获取步骤,主要获取肢体的初始姿态信息和肢端的实际目的姿态信息。在一实施例中,见图2,肢体L1包括人体骨骼链,该人体骨骼链包括:根节点P 1、肢端P n和节点P 1、P 2…P n-1分别对应的中间关节,那么,肢体L1的初始姿态信息包括根节点P 1的初始姿态信息,节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,节点P 1、P 2…P n-1、P n所分别对应的骨骼的骨骼长度,以及肢端P n的初始姿态信息。其中,人体骨骼链的初始姿态信息可以通过预设方式产生,即根节点P 1的初始姿态信息、肢端P n的初始姿态信息、节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,以及节点P 1、P 2…P n-1所分别对应骨骼的骨骼长度可由技术人员直接通过设置的方式产生。
步骤A02,可称为迭代计算步骤,该步骤是人物虚拟模型驱动方法的核心环节,具体涉及一种基于反向运动学的骨骼姿态计算方法,将在下文中进行具体说明。
步骤A03,可称为模型驱动步骤,在步骤A02中,当肢端的理论目的姿态信息接近肢端的实际目的姿态信息时(即肢端的理论目的姿态信息与实际目的姿态信息的差值在一定误差范围内时),会计算此时人体骨骼链的中间关节的理论目的角度信息,那么,在步骤A03中,可直接获 取人体骨骼链的中间关节的理论目的角度信息,然后可根据肢端的实际目的姿态信息以及获取的人体骨骼链的中间关节的理论目的角度信息来驱动人物虚拟模型。
其中,理论目的角度信息指的是肢端的理论目的姿态信息接近肢端的实际目的姿态信息,对应中间关节的最终角度信息。在具体实现时,可根据肢端的初始姿态信息中的角度信息,以及步骤A02每一次迭代计算过程中得到的中间关节的角度信息变量求和得到。
在驱动人物虚拟模型时,在一实施例中,可以将肢端Pn的实际目的姿态信息和计算得到的节点P1、P2…Pn-1所分别对应的中间关节的目的角度信息输入至一人物虚拟模型驱动系统,以驱动人物虚拟模型的相应肢体完成平滑的动作改变。
请参考图4,上述的步骤A02公开的基于反向运动学的骨骼姿态计算方法可包括步骤S100-S500,下面分别说明。
步骤S100,根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息。在一实施例中,见图5,该步骤S100可包括步骤S110-S120,具体说明如下。
步骤S110,在一实施例中,获取预设的肢体L1的骨骼链的初始姿态信息,其包括根节点P 1的初始姿态信息,节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,节点P 1、P 2…P n-1、P n所分别对应骨骼的骨骼长度,以及肢端P n的初始姿态信息;此外,还可以通过动捕系统获取肢端P n的实际目的姿态信息,采用动捕系统获取姿态信息的方式包括刚体捕捉、捕捉球捕捉、图像识别等技术手段,这里不再对其进行限制和详细说明。
需要说明的是,下一次执行步骤S100时,肢体L1的骨骼链的初始姿态信息将被更新,具体过程可参考步骤S400。
步骤S120,将步骤S110中获取肢体L1中骨骼链的初始姿态信息输入至正向运动学的计算公式中,得到肢端P n的理论目的姿态信息。
Figure PCTCN2018090785-appb-000001
其中,y表示肢端P n的理论目的姿态信息;Length i表示节点P i所对应骨骼的骨骼长度的矢量;Tran 1表示根节点P 1的初始姿态信息;Rot i表示节点P i所对应的中间关节的角度信息,主要为旋转3*3矩阵,该矩 阵由节点P i所对应的中间关节的三维转角x i组成。需要说明的是,这里的i是1~n范围内的任意整数,其中n表示节点个数。
步骤S200,判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息。这里的接近,指的是理论目的姿态信息与实际目的姿态信息在一定误差范围内。这里的姿态信息包括:位置信息和角度信息,因此,在执行该步骤S200时,应当对位置信息和角度信息分别进行判断。在一实施例中,见图6,该步骤S200可包括步骤S210-S260,具体说明如下。
步骤S210,在一具体实施例中,为保证步骤A02中迭代计算过程的有效性且快速求解结果,可设定一预设的循环次数K0(该预设的循环次数K0由用户根据测试经验设定一经验值)。每经过一次步骤S100,则自动为循环次数k数累加1,若当前的循环次数k在预设的循环次数K0内时,则进入步骤S220,反之,则进入步骤S260。
在另一个具体的实施例中,可省略该步骤S210和S260,使得系统持续进行迭代计算过程,直到肢端P n的理论目的姿态信息接近肢端P n的实际目的姿态信息。
步骤S220,判断肢端P n的理论目的位置信息与肢端P n的实际目的位置信息之差是否在误差范围内,若是,则进入步骤S230,反之,则进入步骤S240。需要说明的是,位置信息的误差范围由用户进行设定,这里不做具体限制。
需要说明的是,由于姿态信息包括位置信息和角度信息,那么,可对步骤S120中计算得到的肢端P n的理论目的姿态信息进行信息拆分,从而获得肢端P n的理论目的位置信息和肢端P n的理论目的角度信息。
步骤S230,判断肢端P n的理论目的角度信息与肢端P n的实际目的角度信息之差是否在误差范围,若是,则进入步骤S250,反之,则进入步骤S240。需要说明的是,角度信息的误差范围由用户进行设定,这里不做具体限制。
步骤S240,根据判断结果,认为肢端P n的理论目的姿态信息未接近肢端P n的实际目的位置信息,需要继续执行迭代计算,那么此时,可进入步骤S300。
步骤S250,根据判断结果,在肢端P n的理论目的位置信息与肢端P n的实际目的位置信息之差在误差范围内,且肢端P n的理论目的角度信 息与肢端P n的实际目的角度信息之差是否在误差范围内时,则认为肢端P n的理论目的姿态信息接近肢端P n的实际目的姿态信息,达到迭代计算的应用要求,可进入步骤S500。
步骤S260,在经过多次迭代计算之后,肢端P n的理论目的姿态信息仍未接近肢端P n的实际目的姿态信息时,为避免占用过多的计算时间,此时,可对迭代计算过程进行无解处理,包括强行结束迭代计算、错误报警等处理方式。
步骤S300,获取肢端的姿态信息变化量(这里的姿态信息变化量是指相邻两次迭代计算之间的姿态信息的改变量),并根据肢端的姿态信息变化量计算人体骨骼链的中间关节的关节角度变化量。在一实施例中,见图7,该步骤S300包括步骤S310-S340,分别说明如下。
步骤S310,获取肢端的姿态信息变化量,在一实施例中,根据肢端P n的初始姿态信息、预设的循环次数K0以及肢端P n的实际目的姿态信息,获取肢端P n的姿态信息变化量△y,该姿态信息变化量可以理解为肢端P n初始的姿态信息变化量。在一具体实施例中,姿态信息变化量△y可用公式表示为
△y=(肢端的实际目的姿态信息—肢端的初始姿态信息)/K0
其中,△y包括肢端的位置信息变化量和肢端的角度信息变化量;K0表示预设的循环次数。需要说明的是,在实际应用中,肢端P n的姿态信息变化量可不是该公式表示的均匀变化状态,可能是基于该公式的经过修正的非均匀变化状态。
在另一个具体实施例中,肢端P n的姿态信息变化量可用公式表示为
△y=(肢端的实际目的姿态信息—肢端的理论目的姿态信息)/(K0-k);
其中,k表示当前的循环次数,K0-k表示剩余的循环次数,此时的△y可以理解为已更新的肢端P n的姿态信息变化量,在获取肢端P n的姿态信息变化量时,包括获取初始的肢端P n的姿态信息变化量以及已更新的肢端P n的姿态信息变化量。更新肢端P n的姿态信息变化量的过程具体说明可见步骤S400。
步骤S320,可称为梯度预处理步骤,为准确获得人体骨骼链的中间关节的关节角度变化量(这里的关节角度变化量是指相邻迭代计算之间的关节角度的改变量),需要对计算过程中各个中间关节的关节角度变化 量对应的梯度值进行修正处理,以使得各梯度值不为零,以确保计算过程的有效性。
在一实施例中,依次判断每个中间关节的关节角度变化量对应的梯度值是否为零,当有判断结果为是时,则进入步骤S330,当有判断结果为否时,则保持该梯度值,并进入步骤S340。
步骤S330,在误差允许的范围内,修正中间关节的角度信息,以使该中间关节对应的梯度值不为零,当通过修正处理之后,各个中间关节的关节角度变化量对应的梯度值是均不为零时,则进入步骤S340。
步骤S340,为提高计算关节角度变化量时的准确性,还设置各个中间关节的角度变化优先级。在一具体实施例中,可为节点P 1、P 2…P n-1所分别对应的中间关节的角度信息赋予不同的权重值,以决定各个中间关节的角度变化优先级,例如,为靠近肢端P n的节点所对应的中间关节设置较大的权重值,以优先调整中间关节的关节角度变化量。
步骤S350,用tapenade工具反向计算各个中间关节的关节角度变化量,该tapenade工具即为基于反向运动学的程序模块,由步骤S120中的正向运动学公式得到。为了清楚地说明tapenade工具的应用原理,这里将步骤S120中的正向运动学公式定义为y=f(x),其中,y表示肢端P n的理论目的姿态信息,x表示节点P 1、P 2…P n-1所分别对应的中间关节的角度信息。
那么,根据y=f(x)即可得到△y和△x之间的关系
Figure PCTCN2018090785-appb-000002
其中,△y可由步骤S310中获知,△x为各个中间关节的关节角度变化量的集合(可认为△x包括n个子关节角度变化量,分别为△x 1、△x 2…△x i、△x n);
Figure PCTCN2018090785-appb-000003
为△x的梯度值,其包括与△x中n个子关节角度变化变量一一对应的子梯度值,在步骤S320-S330中已对梯度值
Figure PCTCN2018090785-appb-000004
进行修正,确保了每个子梯度值均不为零。
本领域的技术人员应当理解,公式
Figure PCTCN2018090785-appb-000005
是tapenade工具的核心算法,属于现有技术,当调动tapenade工具时,容易计算得到△x, 即计算得到任意节点P i所对应的中间关节的关节角度变化量△x i
步骤S400,根据计算出的各中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量。见图8,该步骤S400可包括步骤S410-S420,分别说明如下。
步骤S410,更新人体骨骼链的初始姿态信息,在一实施例中,见图9,该步骤S410可包括步骤S411-S413,下面具体说明。
步骤S411,将每个中间关节的角度信息x i与步骤S350中得到的关节角度变化量△x i求和,得到角度值x i′=x i+△x i,将角度值x i′更新至节点P i所对应的中间关节的角度信息x i
在另一个实施例中,还需根据根节点P 1的初始姿态信息、根节点P 1的实际目的姿态信息(即节点P 1′所示意位置的姿态信息,可参考获取肢端P n的实际目的姿态信息的过程)以及预设的循环次数K0,更新根节点P 1的初始姿态信息,在一具体实施例中,可通过公式得到根节点P 1的姿态信息变化量:
根节点的姿态信息变化量=(根节点的实际目的姿态信息—根节点的初始姿态信息)/K0
其中,K0表示预设的循环次数。然后,将根节点P 1的姿态信息变化量与根节点P 1的初始姿态信息求和结果更新至根节点P 1的初始姿态信息。
步骤S412,判断当前的循环次数是否达到设定值,优选地,可判断当前的循环次数k是否达到设定值0.9*K0,当k达到0.9*K0时,则进入步骤S413,反之进入步骤S420。该步骤的目的是从0.9*K0次时,对各个骨骼的骨骼长度进行调整,以保证在预设循环次数内能够有解。
在另一个实施例中,可取消步骤S412,使得每次迭代计算时都对骨骼长度进行更新。
步骤S413,根据每个节点P i所对应骨骼的骨骼长度l i和其预设的骨骼长度变化量△l i更新该骨骼的骨骼长度,即将l i+△l i的求和结果更新至l i。其中骨骼长度变化量△l i由用户进行设定,每次迭代计算时,更新各个骨骼的骨骼长度有助于提高肢端P n的理论目的姿态信息的准确度,减少循环次数,从而提高运算速度。
需要说明的是,更新骨骼长度的过程包括骨骼长度的拉伸过程和骨 骼形状的弯曲变形过程,但在该实施例中,为了减小计算的复杂度,更新骨骼长度的过程主要是指骨骼长度的拉伸过程。
在另一个实施例中,认为肢体L1在运动过程中,节点P 1、P 2…P n-1、P n所分别对应骨骼的骨骼长度骨保持不变,那么可忽略步骤S412-S413,即步骤S410仅包括步骤S411。
步骤S420,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量。在一实施例中,根据计算出的肢端P n的理论目的姿态信息、剩余的循环次数K0-k以及肢端P n的实际目的姿态信息,更新肢端P n的姿态信息变化量,公式表示为:
△y′=(肢端的实际目的姿态信息—肢端的理论目的姿态信息)/(K0-k)
将得到的△y′更新至步骤S310中的姿态信息变化量△y。
请参考图4,在步骤S400完成之后,进入步骤S100,进行下一次的迭代计算,直至通过步骤S200判断得到肢端的理论目的姿态信息接近实际目的姿态信息,从而进入步骤S500。
步骤S500,信息输出处理,将迭代计算得到的人体骨骼链的初始姿态信息进行输出,主要包括最新更新的根节点P 1的初始姿态信息,最新更新的节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,最新更新的节点P 1、P 2…P n-1、P n所分别对应骨骼的骨骼长度,以及最新更新的肢端P n的初始姿态信息。
在一实施例中,步骤S500的下一个步骤是步骤A03,那么,主要将最新更新的节点P 1、P 2…P n-1所分别对应的中间关节的角度信息进行输出,按照步骤A03的内容,将肢端P n的实际目的姿态信息(获取过程可参考步骤S110)和迭代计算最终得到的节点P 1、P 2…P n-1所分别对应的中间关节的角度信息输入至一人物虚拟模型驱动系统,以驱动人物虚拟模型的相应肢体完成平滑的动作改变。
相应地,请参考图11,本申请还保护一种人物虚拟模型驱动系统,其包括信息获取装置601、迭代计算装置602和模型驱动装置603,下面分别说明。
信息获取装置601用于设置肢体的初始姿态信息,以及获取肢端的实际目的姿态信息。可见图2,这里的肢体L1包括人体骨骼链,人体骨骼链包括根节点P 1、肢端P n和节点P 1、P 2…P n-1分别对应的中间关节, 那么,肢体L1的初始姿态信息包括根节点P 1的初始姿态信息,节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,节点P 1、P 2…P n-1、P n所分别对应的骨骼的骨骼长度,以及肢端P n的初始姿态信息。肢体L1的初始姿态信息可以通过预设方式产生,现有技术人员在系统中直接设置根节点P 1的初始姿态信息、肢端P n的初始姿态信息、节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,以及节点P 1、P 2…P n-1所分别对应骨骼的骨骼长度,然后由系统读取这些信息以达到获取的目的。
迭代计算装置602用于迭代计算肢端的理论目的姿态信息,在肢端的理论目的姿态信息接近于肢端的实际目的姿态信息时,输出肢端的实际目的姿态信息,和人体骨骼链的中间关节的理论目的角度信息。该迭代计算装置602实际上为一骨骼姿态计算装置,其包括姿态信息计算单元6021、姿态信息判断单元6022、姿态信息更新单元6023和迭代计算控制单元6024,各个单元的具体说明如下:
姿态信息计算单元6021与信息获取装置601通信连接,用于接收信息获取装置601输出的人体骨骼链的初始姿态信息(具体包括根节点P 1的初始姿态信息,节点P 1、P 2…P n-1所分别对应的中间关节的角度信息,节点P 1、P 2…P n-1、P n所分别对应的骨骼的骨骼长度,以及肢端P n的初始姿态信息),然后,该姿态信息计算单元6021根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息。具体实施方式可参考步骤S100。
姿态信息判断单元6022与姿态信息计算单元6021通信连接,用于接收姿态信息计算单元6021输出的肢端的理论目的姿态信息,并判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息,以根据判断结果选择与姿态信息更新单元6023或者模型驱动装置603通信。具体实施方式可参考步骤S200。
姿态信息更新单元6023与姿态信息判断单元6021通信连接,用于在姿态信息判断单元6022的判断结果为否时,获取姿态信息判断单元6022输出的肢端的姿态信息变化量,并根据肢端的姿态信息变化量计算人体骨骼链的中间关节的关节角度变化量;根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量。具体实施方式可参考步骤S300。
迭代计算控制单元6024分别与姿态信息计算单元6021、姿态信息判断单元6022和姿态信息更新单元6023通信连接,用于控制各个单元协调执行姿态信息的迭代计算过程。首先,迭代计算控制单元6024将姿态信息更新单元6023中更新的肢端的姿态信息变化量输入至姿态信息计算模块6021,控制姿态信息计算单元6021根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息;然后,迭代计算控制单元6024控制姿态信息计算模块6021以将最新的肢端的理论目的姿态信息输入至姿态信息判断单元6022之中;接下来,迭代计算控制单元6024控制姿态信息判断单元6022对输入的肢端的理论目的姿态信息进行判断,判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息,若不接近,则继续将肢端的姿态信息变化量输出至姿态信息更新单元6023,以进行下一次的迭代过程,若接近,则将肢端的实际目的姿态信息,以及人体骨骼链的中间关节的理论目的角度信息输出至模型驱动装置603。具体实施例方式可参考步骤S400。
模型驱动装置603与姿态信息判断单元6022通信连接,姿态信息判断单元6022判断得到肢端的理论目的姿态信息接近肢端的实际目的姿态信息时,模型驱动单元603接收姿态信息判断单元6022输出的肢端的实际目的姿态信息,以及人体骨骼链的中间关节的理论目的角度信息;模型驱动装置603根据肢端的实际目的姿态信息,以及获取的人体骨骼链的中间关节的理论目的角度信息驱动人物虚拟模型。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,那么,可知本申请还保护肢体动捕捕捉装置,见图10,其包括存储器501和处理器502,以及计算机程序503,该存储器501用于存储计算机程序503,该计算机程序503在被处理器502执行时能够实现上文步骤A01-A03,以及步骤S100-S500所示的方法。
也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

Claims (15)

  1. 一种基于反向运动学的骨骼姿态计算方法,其特征在于,包括以下步骤:
    根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息;
    判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息;若判断结果为否,则获取肢端的姿态信息变化量,并根据肢端的姿态信息变化量计算所述人体骨骼链的中间关节的关节角度变化量;
    根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量,并进入根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息的步骤,直到判断肢端的理论目的姿态信息接近肢端的实际目的姿态信息为止。
  2. 如权利要求1所述的骨骼姿态计算方法,其特征在于,所述人体骨骼链包括根节点、肢端和中间关节,所述方法还包括:
    获取所述人体骨骼链的初始姿态信息,所述初始姿态信息包括:根节点的初始姿态信息、中间关节的角度信息、各个骨骼的骨骼长度以及肢端的初始姿态信息;
    获取根节点的实际目的姿态信息,以及肢端的实际目的姿态信息。
  3. 如权利要求2所述的骨骼姿态计算方法,其特征在于,所述根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息,包括:
    基于根节点的初始姿态信息、中间关节的角度信息以及各个骨骼的骨骼长度,计算肢端的理论目的姿态信息。
  4. 如权利要求2所述的骨骼姿态计算方法,其特征在于,所述根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,包括:
    将每个中间关节的角度信息与计算出的对应的关节角度变化量求和,并将求和得到的角度值更新为该中间关节的角度信息;
    根据根节点的初始姿态信息、根节点的实际目的姿态信息以及预设的循环次数,更新根节点的初始姿态信息。
  5. 如权利要求4所述的骨骼姿态计算方法,其特征在于,所述根据 计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,还包括:
    在当前的循环次数达到一设定值之后,根据每个骨骼当前的骨骼长度和其预设的骨骼长度变化量更新该骨骼的骨骼长度。
  6. 如权利要求2所述的骨骼姿态计算方法,其特征在于,所述根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量,包括:
    根据计算出的肢端的理论目的姿态信息、剩余的循环次数以及肢端的实际目的姿态信息,更新肢端的姿态信息变化量。
  7. 如权利要求6所述的骨骼姿态计算方法,其特征在于,所述获取肢端的姿态信息变化量,包括:
    根据肢端的初始姿态信息、预设的循环次数以及肢端的实际目的姿态信息,获取肢端的姿态信息变化量;或,
    获取已更新的肢端的姿态信息变化量。
  8. 如权利要求1所述的骨骼姿态计算方法,其特征在于,所述姿态信息包括:位置信息和角度信息;所述判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息,包括:
    先判断是否在预设的循环次数之内,若在循环次数之内,则接着判断肢端的理论目的位置信息与实际目的位置信息之差是否在误差范围内,以及判断肢端的理论目的角度信息与实际目的角度信息之差是否在误差范围内,若判断结果均为是,则认为肢端的理论目的姿态信息接近肢端的实际目的姿态信息。
  9. 如权利要求1所述的骨骼姿态计算方法,其特征在于,所述根据肢端的姿态信息变化量计算所述人体骨骼链中间关节的关节角度变化量,包括:
    用tapenade工具反向计算中间关节的关节角度变化量。
  10. 如权利要求9所述的骨骼姿态计算方法,其特征在于,所述用tapenade工具反向计算中间关节的关节角度变化量,包括:
    设置各个中间关节的角度变化优先级;按照设置的角度变化优先级,用tapenade工具反向计算中间关节的关节角度变化量。
  11. 如权利要求10所述的骨骼姿态计算方法,其特征在于,在用tapenade工具反向计算中间关节的关节角度变化量之前,还包括:
    判断每个中间关节的角度信息所对应的梯度值是否为零,若是,则 修正该中间关节的角度信息,使其对应的梯度值不为零,反之,则保持该中间关节的角度信息对应的梯度值。
  12. 一种人物虚拟模型驱动方法,其特征在于,包括以下步骤:
    信息获取步骤:设置肢体的初始姿态信息,以及获取肢端的实际目的姿态信息;所述肢体包括人体骨骼链,所述人体骨骼链包括根节点、肢端和中间关节,所述初始姿态信息包括根节点的初始姿态信息、中间关节的角度信息、各个骨骼的骨骼长度以及肢端的初始姿态信息;
    迭代计算步骤:执行权利要求1-11任一项所述的骨骼姿态计算方法;
    模型驱动步骤:当肢端的理论目的姿态信息接近肢端的实际目的姿态信息时,获取人体骨骼链的中间关节的理论目的角度信息,并根据肢端的实际目的姿态信息,以及获取的人体骨骼链的中间关节的理论目的角度信息驱动人物虚拟模型。
  13. 一种基于反向运动学的骨骼姿态计算装置,其特征在于,包括:
    姿态信息计算单元,用于根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息;
    姿态信息判断单元,用于判断肢端的理论目的姿态信息是否接近肢端的实际目的姿态信息;
    姿态信息更新单元,用于在所述姿态信息判断单元的判断结果为否时,获取肢端的姿态信息变化量,并根据肢端的姿态信息变化量计算所述人体骨骼链的中间关节的关节角度变化量;根据计算出的中间关节的关节角度变化量更新人体骨骼链的初始姿态信息,根据计算出的肢端的理论目的姿态信息更新肢端的姿态信息变化量;
    迭代计算控制单元,用于将所述姿态信息更新单元中更新的肢端的姿态信息变化量输入至所述姿态信息计算单元,根据人体骨骼链的初始姿态信息,按照正向运动学方式计算出肢端的理论目的姿态信息;所述迭代计算控制单元控制所述姿态信息计算单元以将最新的肢端的理论目的姿态信息输入至所述姿态信息判断单元,直到判断肢端的理论目的姿态信息接近肢端的实际目的姿态信息为止。
  14. 一种人物虚拟模型驱动系统,其特征在于,包括:
    信息获取装置,用于设置肢体的初始姿态信息,以及获取肢端的实际目的姿态信息;所述肢体包括人体骨骼链,所述人体骨骼链包括根节 点、肢端和中间关节,所述初始姿态信息包括根节点的初始姿态信息、中间关节的角度信息、各个骨骼的骨骼长度以及肢端的初始姿态信息;
    迭代计算装置,包括权利要求13的骨骼姿态计算装置;
    模型驱动装置,用于当肢端的理论目的姿态信息接近肢端的实际目的姿态信息时,获取人体骨骼链的中间关节的理论目的角度信息,并根据肢端的实际目的姿态信息,以及获取的人体骨骼链的中间关节的理论目的角度信息驱动人物虚拟模型。
  15. 一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求12所述的方法。
PCT/CN2018/090785 2018-04-28 2018-06-12 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质 WO2019205238A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810403604.9A CN108876815B (zh) 2018-04-28 2018-04-28 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质
CN201810403604.9 2018-04-28

Publications (1)

Publication Number Publication Date
WO2019205238A1 true WO2019205238A1 (zh) 2019-10-31

Family

ID=64326887

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/090785 WO2019205238A1 (zh) 2018-04-28 2018-06-12 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质

Country Status (2)

Country Link
CN (1) CN108876815B (zh)
WO (1) WO2019205238A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111571586A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种反向动力学自由度的动态约束方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347255B (zh) * 2019-07-03 2023-06-13 灶灶科技有限公司 一种基于3d动态模拟技术的体感交互系统
CN110675474B (zh) * 2019-08-16 2023-05-02 咪咕动漫有限公司 虚拟角色模型的学习方法、电子设备和可读存储介质
CN110531866B (zh) * 2019-10-29 2020-03-13 深圳市瑞立视多媒体科技有限公司 基于改进的反向运动学进行姿态解算的方法及相关设备
CN112950751B (zh) * 2019-12-11 2024-05-14 阿里巴巴集团控股有限公司 姿态动作的展示方法及装置、存储介质、系统
CN111080755B (zh) * 2019-12-31 2023-11-14 上海米哈游天命科技有限公司 一种运动解算方法、装置、存储介质及电子设备
CN111494911A (zh) * 2020-04-21 2020-08-07 江苏省人民医院(南京医科大学第一附属医院) 一种基于激光式动作捕捉系统的传统功法评估系统
CN112215898B (zh) * 2020-09-18 2024-01-30 深圳市瑞立视多媒体科技有限公司 多相机间帧数据均衡控制方法、装置和计算机设备
CN112037312B (zh) * 2020-11-04 2021-02-09 成都市谛视科技有限公司 实时人体姿态逆向运动学求解方法及装置
CN112348931B (zh) * 2020-11-06 2024-01-30 网易(杭州)网络有限公司 脚部反向运动控制方法、装置、设备及存储介质
CN112486331A (zh) * 2020-12-18 2021-03-12 清华大学 基于imu的三维空间手写输入方法和装置
CN112819971B (zh) * 2021-01-26 2022-02-25 北京百度网讯科技有限公司 虚拟形象的生成方法、装置、设备和介质
CN114474066B (zh) * 2022-03-04 2024-02-20 全爱科技(上海)有限公司 一种智能人形机器人控制系统和方法
CN116977501A (zh) * 2022-04-22 2023-10-31 北京字跳网络技术有限公司 虚拟形象的控制方法、装置、设备及存储介质
CN114821006B (zh) 2022-06-23 2022-09-20 盾钰(上海)互联网科技有限公司 交互式间接推理的孪生体态检测方法及系统
CN117542123B (zh) * 2024-01-09 2024-04-26 轻威科技(绍兴)有限公司 基于稀疏6节点的人体骨骼解算方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406989B1 (en) * 2009-02-13 2013-03-26 Hrl Laboratories, Llc Method for adaptive obstacle avoidance for articulated redundant robot arm
CN104517310A (zh) * 2014-10-21 2015-04-15 无锡梵天信息技术股份有限公司 利用反向动力学仿真的机器人动画方法
CN104658038A (zh) * 2015-03-12 2015-05-27 南京梦宇三维技术有限公司 基于动作捕捉的三维数字内容智能制作方法及制作系统
CN107553496A (zh) * 2017-09-29 2018-01-09 南京阿凡达机器人科技有限公司 机械臂逆运动学求解方法误差的确定及校正方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040087787A (ko) * 2003-04-09 2004-10-15 (주)오즈인터미디어 3차원 온라인 게임을 위한 아바타 체형 변형 시스템
US9911219B2 (en) * 2015-05-13 2018-03-06 Intel Corporation Detection, tracking, and pose estimation of an articulated body
CN107491506B (zh) * 2017-07-31 2020-06-16 西安蒜泥电子科技有限责任公司 批量模型姿势变换方法
CN107685330B (zh) * 2017-10-18 2018-12-18 佛山华数机器人有限公司 一种六自由度手腕偏置串联机器人的运动学逆解求解方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8406989B1 (en) * 2009-02-13 2013-03-26 Hrl Laboratories, Llc Method for adaptive obstacle avoidance for articulated redundant robot arm
CN104517310A (zh) * 2014-10-21 2015-04-15 无锡梵天信息技术股份有限公司 利用反向动力学仿真的机器人动画方法
CN104658038A (zh) * 2015-03-12 2015-05-27 南京梦宇三维技术有限公司 基于动作捕捉的三维数字内容智能制作方法及制作系统
CN107553496A (zh) * 2017-09-29 2018-01-09 南京阿凡达机器人科技有限公司 机械臂逆运动学求解方法误差的确定及校正方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111571586A (zh) * 2020-05-07 2020-08-25 江苏原力数字科技股份有限公司 一种反向动力学自由度的动态约束方法

Also Published As

Publication number Publication date
CN108876815B (zh) 2021-03-30
CN108876815A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
WO2019205238A1 (zh) 骨骼姿态计算方法、人物虚拟模型驱动方法及存储介质
JP7273880B2 (ja) 仮想オブジェクト駆動方法、装置、電子機器及び可読記憶媒体
CN111402290B (zh) 一种基于骨骼关键点的动作还原方法以及装置
CN110827383B (zh) 三维模型的姿态模拟方法、装置、存储介质和电子设备
US20170185141A1 (en) Hand tracking for interaction feedback
US11417095B2 (en) Image recognition method and apparatus, electronic device, and readable storage medium using an update on body extraction parameter and alignment parameter
CN107833271A (zh) 一种基于Kinect的骨骼重定向方法及装置
CN112602090A (zh) 用于插值不同输入的方法和系统
Labbé et al. Single-view robot pose and joint angle estimation via render & compare
JP2021000678A (ja) 制御システムおよび制御方法
US11104001B2 (en) Motion transfer of highly dimensional movements to lower dimensional robot movements
JPH10149445A (ja) 身体動作解析可視化装置
CN111311714A (zh) 一种三维动画的姿态预测方法和系统
WO2024094227A1 (zh) 一种基于卡尔曼滤波和深度学习的手势姿态估计方法
KR20200115729A (ko) 골프 동작 분석 방법 및 장치
CN110807833A (zh) 一种网状拓扑获得方法、装置、电子设备及存储介质
KR101844278B1 (ko) 관절식 객체의 자세를 추정하기 위한 파라미터 학습 방법 및 관절식 객체의 자세 추정 방법
CN113433948B (zh) 一种基于辅助向量校正的移动机器人连续视觉归航方法、存储介质及电子装置
Dang et al. Imitation learning-based algorithm for drone cinematography system
KR101635684B1 (ko) 보행 동작 생성 및 제어 방법, 보행 컨트롤러
Wang et al. A Generative Human-Robot Motion Retargeting Approach Using a Single RGBD Sensor.
US20230285802A1 (en) Method, device, and non-transitory computer-readable recording medium for estimating information on golf swing
Su et al. Leveraging Symmetry in RL-based Legged Locomotion Control
CN114546125B (zh) 键盘跟踪方法及跟踪系统
CN116638512A (zh) 基于视频驱动数字人肢体动作的方法、装置及设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18916383

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18916383

Country of ref document: EP

Kind code of ref document: A1