WO2018188116A1 - 一种手势识别方法、装置及系统 - Google Patents
一种手势识别方法、装置及系统 Download PDFInfo
- Publication number
- WO2018188116A1 WO2018188116A1 PCT/CN2017/081850 CN2017081850W WO2018188116A1 WO 2018188116 A1 WO2018188116 A1 WO 2018188116A1 CN 2017081850 W CN2017081850 W CN 2017081850W WO 2018188116 A1 WO2018188116 A1 WO 2018188116A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- knuckle
- fingertip
- angle
- coordinate
- value
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
Definitions
- the invention belongs to the technical field of motion capture, and in particular relates to a gesture recognition method, device and system.
- the inertial motion capture technology is a motion capture technology based on an inertial sensor motion capture device.
- an accelerometer, a gyroscope, and a nine-axis inertial sensor of a magnetometer By using an accelerometer, a gyroscope, and a nine-axis inertial sensor of a magnetometer, the posture and relative position of each node are measured to capture the motion change of the hand, but Due to the relatively low measurement accuracy of the inertial sensor, a large number of inertial sensors are required for position calibration and compensation when performing complex hand motion capture, that is, an inertial sensor is required at each node or joint of the finger to obtain an accurate
- the gesture information is used to realize the recognition of the gesture.
- the data glove is difficult to manufacture, the cost is high, and the portability is not high, and the user experience is poor.
- an embodiment of the present invention provides a gesture recognition method, apparatus, and system, which solve the problem in the prior art that the number of inertial sensors used is large, resulting in difficulty in manufacturing data gloves, high cost, and wearing Convenient portability is not high, making the user experience less problematic.
- a first aspect of the embodiments of the present invention provides a gesture recognition method, including:
- x and y are the x and y values in the coordinate values of the fingertip relative to the third knuckle joint
- a 2 is the length of the knuckle between the third knuckle and the second knuckle joint
- a 3 is the second finger
- a 4 is the length of the knuckle between the first knuckle and the fingertip
- ⁇ 1 is the bending angle of the third knuckle to be resolved relative to the back of the hand
- ⁇ 2 The bending angle of the second knuckle relative to the third knuckle joint
- ⁇ 3 is the bending angle of the fingertip to be solved relative to the second knuckle joint
- the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 are solved by a preset approximate solution formula, and the approximate solution formula is:
- the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 are sent to a preset three-dimensional model to generate a corresponding gesture.
- a second aspect of the embodiments of the present invention provides a gesture recognition apparatus, including:
- a coordinate value calculation unit configured to acquire coordinate information of the fingertip and the third knuckle joint
- x and y are the x and y values in the coordinate values of the fingertip relative to the third knuckle joint
- a 2 is the length of the knuckle between the third knuckle and the second knuckle joint
- a 3 is the second finger
- a 4 is the length of the knuckle between the first knuckle and the fingertip
- ⁇ 1 is the bending angle of the third knuckle to be resolved relative to the back of the hand
- ⁇ 2 The bending angle of the second knuckle relative to the third knuckle joint
- ⁇ 3 is the bending angle of the fingertip to be solved relative to the second knuckle joint
- An angle approximation solution unit for solving the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 by a preset approximate solution formula, wherein the approximate solution formula is:
- a gesture generating unit configured to send the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 to the preset three-dimensional model to generate a corresponding gesture.
- a third aspect of the embodiments of the present invention provides a gesture recognition system, including:
- a communication interface for communicating with an inertial sensor
- program comprises:
- the coordinate value calculation unit is configured to acquire coordinate information of the fingertip and the third knuckle in the world space coordinate system, and calculate a coordinate value of the fingertip relative to the third knuckle joint.
- the equations establishing unit is configured to solve the equations of the knuckle bending angle of the fingertip relative to the third joint joint coordinate system.
- An angle approximation solving unit for solving the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 by a preset approximate solution formula.
- a gesture generating unit configured to send the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 to the preset three-dimensional model to generate a corresponding gesture.
- the embodiment of the present invention has the beneficial effects that the accurate bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 can be obtained with high efficiency by means of a mathematical model for solving the bending angle by the coordinate information.
- Information reduces the number of inertial sensors required in traditional gesture recognition methods, greatly reducing the structure of gesture recognition products, such as the structure of data gloves, and at the same time, the number of inertial sensors is reduced, making data gloves The portability and operability are greatly improved, and the manufacturing difficulty and cost of the data glove are reduced, and the user experience is better.
- FIG. 1 is a flowchart of an implementation of a gesture recognition method according to an embodiment of the present invention
- FIG. 2 is a flowchart of an implementation of a method for calculating a coordinate value of a fingertip relative to a third knuckle joint according to an embodiment of the present invention
- FIG. 3 is a specific implementation flowchart of a method for solving an angle value of a finger in a z-axis direction according to an embodiment of the present invention
- FIG. 5 is a flowchart of a specific implementation of a method for correspondingly adjusting values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 according to the error value according to an embodiment of the present disclosure
- FIG. 6 is a schematic diagram of relationship between coordinate information and an error adjustment angle according to an embodiment of the present invention.
- FIG. 7 is a structural block diagram of a gesture recognition apparatus according to an embodiment of the present invention.
- FIG. 8 is a schematic diagram of a gesture recognition system according to an embodiment of the present invention.
- FIG. 1 is a flowchart showing an implementation process of a gesture recognition method according to an embodiment of the present invention, which is described in detail as follows:
- step S101 coordinate information of the fingertip and the third knuckle in the world space coordinate system is acquired, and coordinate values of the fingertip with respect to the third knuckle joint are calculated.
- the world space coordinate system is an absolute coordinate system, and the coordinates of all points in the space are determined by the origin of the coordinate system.
- the coordinate information of the fingertip and the third knuckle in the world space that is, the coordinate information of the fingertip and the third knuckle in the world space coordinate system, is acquired by the inertial sensor.
- an inertial sensor is respectively disposed on the fingertip of the user and the third knuckle, wherein the inertial sensor disposed on the third knuckle has a positioning function.
- the inertial sensor provided at the fingertip may also have a positioning function, so that the acquired coordinate information is more accurate.
- the inertial sensors may be provided independently of each other on the user's fingertip and the third knuckle.
- the inertial sensor is disposed on the data glove worn by the user, specifically: an inertial sensor is disposed at the fingertip position and the third knuckle position of the data glove respectively, wherein the inertial sensor disposed at the third knuckle position has a positioning function
- the specific shape of the data glove is not specifically limited, and for example, it may be a finger-closed or semi-closed type.
- the acquiring coordinate information of the fingertip and the third knuckle is specifically: acquiring coordinate information collected by an inertial sensor provided at the fingertip, and acquiring coordinate information collected by an inertial sensor provided at the third knuckle joint, That is, the acquired coordinate information of the fingertip and the third knuckle are directly obtained by the inertial sensor.
- the inertial sensor it is necessary to set an inertial sensor at each fingertip and third knuckle of each finger, thus requiring 10 sensors, compared with the conventional data glove, the use of inertial sensors The amount is greatly reduced, making the data glove more portable and the product structure simpler.
- the inertial sensor disposed at the center of the back of the hand can be used instead of the inertial sensor disposed at the third knuckle, and the inertial sensor is further The number of the number is reduced to six, that is, only one inertial sensor is disposed in each of the five fingertip positions in the hand and the center of the back of the hand, wherein the inertial sensor disposed at the center of the back of the hand has a positioning function so as to obtain relatively accurate coordinates. information.
- the angle value collected by the inertial sensor provided at the center of the back of the hand can be regarded as the angle value collected by the inertial sensors provided at the third knuckle joint.
- This angle value is also called the absolute angle value in the world space. .
- the inertial sensor located at the center of the back of the hand is called a central sensor.
- the coordinate value of each third knuckle is only different from the coordinate value of the central sensor by a special vector.
- the special vector is based on the coordinate value of the third knuckle.
- the vector of the center sensor calculates the vector, and these special vectors are fixed on the palm plane.
- the corresponding transformation matrix can be established according to the coordinate information and angle information of the center sensor, and these special vectors can be converted to world space.
- the converted special vector plus the coordinate value of the center sensor obtains the coordinates of each third knuckle in world space.
- step S101 a specific implementation process of the method for calculating the coordinate value of the fingertip relative to the third knuckle joint in step S101 is as shown in FIG. 2:
- step S201 an absolute angle value of the third knuckle in the world space coordinate system is acquired.
- the absolute angle value of the third knuckle in the world space coordinate system is the angle value collected by the inertial sensor of the third knuckle joint.
- the absolute angle value of the third knuckle in the world space coordinate system is an angle value collected by an inertial sensor disposed at the center of the back of the hand, that is, an angle value collected by the center sensor.
- the center sensor may be an inertial sensor disposed at any position on the back of the hand of the hand, and is not specifically limited herein.
- the coordinate value of the third knuckle and the coordinate value of the center sensor are only different by a special vector.
- the representations x, y, and z of the three unit axis vectors of the third joint joint coordinate system in the world space coordinate system are calculated according to the coordinate information and the absolute angle value, and a transformation matrix is established.
- step S203 Calculate the coordinate value of the fingertip relative to the third knuckle joint.
- the coordinates of the fingertip coordinates in the world space are P 1
- the coordinates of the third finger joint in the world space are P 0
- the coordinates of the third finger joint in the world space may be
- the coordinates acquired by the inertial sensor of the third knuckle may also be the coordinates of the position of the third knuckle calculated by the coordinates acquired by the inertial sensor provided at the center of the hand back of the hand, then P 1 is used.
- Subtract P 0 to obtain the vector P 2 from the third knuckle to the fingertip, and then obtain the three unit axis vectors of the third knuckle coordinate system according to the absolute angle value of the third knuckle in the world space coordinate system.
- the coordinates of the fingertip and the third knuckle in the coordinate information of the world space coordinates are coordinates containing the unknown number, for example, the coordinates of the index finger tip are (1b, 0, 2b), where b is Unknown number, through matrix transformation formula You can ask for the coordinate value of the third finger joint corresponding to the fingertip.
- the coordinate value is a coordinate value of a relatively certain value, such as the coordinate value (1, 0, 2), which corresponds to the value of x, y, z.
- the coordinates of the fingertip and the third knuckle in the world space coordinate system are converted into the coordinate values of the fingertip relative to the third knuckle joint, so as to establish the coordinate value of the fingertip relative to the third knuckle joint.
- the fingertip is compared with the knuckle bending angle of the third knuckle coordinate system to obtain a system of equations to solve the relative bending angle between the fingertip and the knuckle, and the corresponding gesture is determined by the bending angle.
- step S102 a set of equations is established for the knuckle bending angle of the fingertip relative to the third knuckle coordinate system:
- x and y are the x and y values in the coordinate values of the fingertip relative to the third knuckle joint
- a 2 is the length of the knuckle between the third knuckle and the second knuckle joint
- a 3 is the second finger
- a 4 is the length of the knuckle between the first knuckle and the fingertip
- ⁇ 1 is the bending angle of the third knuckle to be resolved relative to the back of the hand
- ⁇ 2 The bending angle of the second knuckle relative to the third knuckle that is to be solved
- ⁇ 3 is the bending angle of the fingertip to be solved relative to the second knuckle.
- the value ⁇ 2 and ⁇ 3 are approximate, and thus set equal to ⁇ 2 and ⁇ 3.
- the lengths of the three knuckles a 2 , a 3 , and a 4 are known, and the corresponding parameters can be set according to users of different genders or age groups, but therefore we only need to solve the knuckle bending angle solution ⁇ 1 and ⁇ 2 in the system of equations determine the corresponding gesture by the change in the values of the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 .
- the third knuckle coordinate system is a coordinate system established by taking the plane of the back of the hand as the coordinate origin.
- step S103 the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 are solved by a preset approximate solution formula, and the approximate solution formula is:
- the bending angle ⁇ 1 , ⁇ in the knuckle bending angle equation group of the fingertip in the finger relative to the third knuckle coordinate system is solved by the approximate solution formula. 2 , ⁇ 3 , based on the same principle, can calculate the bending angle of the other four fingers.
- a 4 and ⁇ 3 can be set equal to zero to establish a simplified knuckle bending angle of the thumb to solve the equations:
- x and y are the coordinate values of the thumb fingertip relative to the second knuckle coordinate system
- ⁇ 1 is the bending angle of the second knuckle of the thumb to be solved relative to the back of the hand
- ⁇ 2 is the bending angle of the fingertip of the thumb to be solved relative to the second joint.
- step S104 the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 are transmitted to a preset three-dimensional model to generate a corresponding gesture.
- the preset three-dimensional model is a pre-built three-dimensional hand model, and the related information including the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 is sent to the preset three-dimensional model, according to the bending angle.
- a change in the values of ⁇ 1 , ⁇ 2 , ⁇ 3 generates a corresponding gesture.
- step S301 the angle ⁇ z of the finger in the z-axis direction in the world space coordinate system is solved by a preset trigonometric function formula.
- the preset trigonometric function formula is specifically as follows:
- step S302 the values of the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 and the value of the angle ⁇ z of the finger in the z-axis direction are transmitted to a preset three-dimensional model.
- the curved shape of the simulated finger is more full, the richer interactive action is satisfied, and the generated gesture is more accurate.
- step S401 the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 are substituted into the knuckle bending angle solving equation group, and the simulated coordinate values of the fingertips are calculated.
- the original data of the fingertip coordinates are x 0 and y 0
- the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 of the finger are calculated according to the original data x 0 and y 0
- the bending angle is further calculated.
- ⁇ 1 , ⁇ 2 , ⁇ 3 are substituted into the equations of the knuckle bending angle of the original fingertip relative to the third finger joint coordinate system:
- the calculated x and y are the simulated coordinate values of the fingertip.
- step S402 a distance value between the simulated coordinate value of the fingertip and the coordinate information of the fingertip is calculated by a preset distance function to determine an error between the two.
- the error between the simulated coordinate value of the fingertip and the original data of the fingertip coordinate can be measured by the distance value I between the simulated value and the coordinate position of the true value.
- the preset distance function is as follows:
- the smaller the distance value I the smaller the error between the analog value and the real value; the larger the distance value I, the larger the error between the analog value and the real value; when I is zero, the analog value is The true values are equal, and the calculated bending angle value can accurately reflect the bending state of the finger.
- the bending angle value is sent to the preset three-dimensional model, The generated gesture exactly matches the user's current gesture.
- step S403 it is determined whether the distance value exceeds a preset distance threshold.
- the influence of the slight difference of the bending angle on the gesture recognition is not very large within the error tolerance range.
- step S404 when the distance value exceeds the preset distance threshold, the error adjustment angle is calculated according to the simulated coordinate value of the fingertip and the coordinate information of the fingertip.
- step S501 the point at which the simulated coordinate value of the fingertip is located and the length a and b of the point where the coordinate information of the fingertip is located to the coordinate origin, and the point where the simulated coordinate value of the fingertip is located are obtained by vector calculation.
- the point of the coordinate information of the fingertip is (x 0 , y 0 ), and the point of the simulated coordinate value of the fingertip is (x, y), and the point (x 0 , y 0 )
- the length to the origin of the coordinate is b
- the length of the point (x, y) to the origin of the coordinate is a
- the length of the point (x 0 , y 0 ) to the point (x, y) is c.
- step S502 coordinate information of where analog solving coordinate values of the point where the fingertip of the fingertip point to the angle ⁇ c between the origin of coordinates by a predetermined trigonometric formula; the preset cam
- the function formula is:
- the angle ⁇ c between the point where the simulated coordinate value of the fingertip is located and the point where the coordinate information of the fingertip is located to the coordinate origin is the point (x 0 , y 0 ) and the point (x, y) to the angle ⁇ c between the origins of the coordinates.
- step S503 the included angle ⁇ c is set as an error adjustment angle.
- the angle ⁇ c is an error angle generated by an error between the simulated coordinate value of the fingertip and the original coordinate information of the fingertip to the coordinate origin. Therefore, the angle ⁇ c is set to The error adjustment angle is correspondingly processed according to the error adjustment angle.
- the angle ⁇ c has a positive or negative angle.
- step S405 according to the adjustment error to adjust the bending angle corresponding to angle ⁇ 1, ⁇ 2, the ⁇ 3 ⁇ 1.
- the error adjustment angle ⁇ c is an error angle generated by an error between the simulated coordinate value of the fingertip and the original coordinate information of the fingertip to the coordinate origin, that is, the bending angles ⁇ 1 , ⁇ 2 ⁇ 1 in ⁇ 3 has an error.
- the bending angle to be adjusted is the bending angle ⁇ 1 .
- the error adjustment angle ⁇ c and the bending angle ⁇ are calculated by calculating the simulated coordinate value of the fingertip and the error adjustment angle ⁇ c of the coordinate information of the fingertip with respect to the third finger joint coordinate origin.
- 1, ⁇ 2, ⁇ 3 is ⁇ 1 for adding the adjustment, can be obtained relatively accurate bending angle ⁇ 1, ⁇ 2, ⁇ 3 .
- the number of inertial sensors required to be used is reduced to 10, and the number of inertial sensors required to be used can be further reduced to 6 and accurate. Bending angles to create relatively precise gestures.
- the coordinate information of the fingertip and the third knuckle joint is obtained by the inertial sensor provided on the fingertip and the third knuckle joint, and the established fingertip is obtained according to the preset approximate solution formula.
- the knuckle bending angle of the knuckle coordinate system is solved by the equations, and the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 are obtained , and the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 are sent to the preset three-dimensional model to generate corresponding gestures.
- the mathematical model of the bending angle is solved inversely by means of the fingertip coordinate information, and the relevant information of the precise bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 can be calculated efficiently, which reduces the need for the traditional gesture recognition method.
- the number of inertial sensors used greatly reduces the structure of the gesture recognition product, such as the structure of the data glove, and at the same time, the number of inertial sensors is reduced, making the data glove more portable and operability, and reducing the data. The difficulty and cost of manufacturing gloves and the user experience are better.
- FIG. 7 is a structural block diagram of a gesture recognition apparatus according to an embodiment of the present invention. For convenience of description, only parts related to the embodiment of the present invention are shown.
- the gesture recognition includes:
- the coordinate value calculation unit 71 is configured to acquire coordinate information of the fingertip and the third knuckle in the world space coordinate system, Calculating the coordinate value of the fingertip relative to the third knuckle;
- the equations establishing unit 72 is configured to solve the equations of the knuckle bending angle of the fingertip relative to the third joint joint coordinate system:
- x and y are the x and y values in the coordinate values of the fingertip relative to the third knuckle joint
- a 2 is the length of the knuckle between the third knuckle and the second knuckle joint
- a 3 is the second finger
- a 4 is the length of the knuckle between the first knuckle and the fingertip
- ⁇ 1 is the bending angle of the third knuckle to be resolved relative to the back of the hand
- ⁇ 2 The bending angle of the second knuckle relative to the third knuckle joint
- ⁇ 3 is the bending angle of the fingertip to be solved relative to the second knuckle joint
- the angle approximation solving unit 73 is configured to solve the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 by a preset approximate solution formula, and the approximate solution formula is:
- the gesture generating unit 74 is configured to send the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 into a preset three-dimensional model to generate a corresponding gesture.
- the coordinate value calculation unit includes:
- An absolute angle value obtaining subunit configured to obtain an absolute angle value of the third knuckle in a world space coordinate system
- an axis vector calculation subunit configured to calculate, according to the coordinate information and the absolute angle value, x, y, and z of the three unit axis vectors of the third joint joint coordinate system in a world space coordinate system, and establish a transformation matrix
- a coordinate value calculation subunit for passing the transformation matrix Calculate the coordinate value of the fingertip relative to the third knuckle joint.
- the device further includes:
- the z-axis angle solving unit is configured to solve the angle ⁇ z of the finger in the z-axis direction of the world space coordinate system by a preset trigonometric function formula
- the angle value transmitting unit is configured to transmit the values of the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 and the value of the angle ⁇ z of the finger in the z-axis direction to a preset three-dimensional model.
- the device further includes:
- An analog coordinate value calculation unit configured to substitute values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 into the knuckle bending angle solving equation group, and calculate simulated coordinate values of the fingertips;
- a distance value calculation unit configured to calculate a distance value between the simulated coordinate value of the fingertip and the coordinate information of the fingertip by a preset distance function to determine an error between the two;
- a distance determining unit configured to determine whether the distance value exceeds a preset distance threshold
- the error adjustment angle calculation unit is configured to calculate an error adjustment angle ⁇ c according to the simulated coordinate value of the fingertip and the coordinate information of the fingertip when the distance value exceeds the preset distance threshold;
- Angle adjusting means for adjusting the bend angle [theta] corresponding to the error according to the adjustment angle ⁇ c 1, ⁇ 2, the ⁇ 3 ⁇ 1.
- the angle adjustment unit includes:
- a length calculation subunit configured to obtain, by vector calculation, a point at which the simulated coordinate value of the fingertip is located, a length a and b of the coordinate information point of the fingertip to the coordinate origin, and an analog coordinate value of the fingertip Pointing to the length c of the point where the coordinate information of the fingertip is located;
- the angle solving subunit is configured to solve an angle ⁇ c between a point where the simulated coordinate value of the fingertip is located and a point where the coordinate information of the fingertip is located to the coordinate origin by a preset trigonometric function formula;
- the trigonometric formula is:
- An angle setting unit configured to set the included angle ⁇ c to an error adjustment angle.
- an embodiment of the present invention provides a schematic diagram of a gesture recognition system.
- the gesture recognition system 8 may be a host server that includes computing power, or a personal computer PC, or a portable computer or terminal that can be carried.
- the embodiment of the present invention does not limit the specific implementation of the gesture recognition system.
- the gesture recognition system includes:
- a processor 810 a communications interface 820, a memory 830, and a bus 840.
- the processor 810, the communication interface 820, and the memory 830 complete communication with each other via the bus 840.
- the communication interface 820 is configured to communicate with an inertial sensor.
- the processor 810 is configured to execute the program 832.
- program 832 can include program code, the program code including computer operating instructions.
- the processor 810 may be a central processing unit CPU, or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement embodiments of the present invention.
- CPU central processing unit
- ASIC Application Specific Integrated Circuit
- the memory 830 is configured to store the program 832.
- the memory 830 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
- the program 832 includes:
- the coordinate value calculation unit 71 is configured to acquire coordinate information of the fingertip and the third knuckle in the world space coordinate system, and calculate coordinate values of the fingertip with respect to the third knuckle joint.
- a system of equations is established 72 for establishing a set of equations for the knuckle bending angle of the fingertip relative to the third knuckle coordinate system.
- the angle approximation solving unit 73 is configured to solve the bending angles ⁇ 1 , ⁇ 2 , ⁇ 3 by a preset approximate solution formula.
- the gesture generating unit 74 is configured to send the values of the bending angles ⁇ 1 , ⁇ 2 , and ⁇ 3 into a preset three-dimensional model to generate a corresponding gesture.
- each unit in the program 832 refers to the corresponding unit in the embodiment shown in FIG. 7, and details are not described herein.
- each functional unit and module described above is exemplified. In practical applications, the above functions may be assigned to different functional units as needed.
- the module is completed by dividing the internal structure of the device into different functional units or modules to perform all or part of the functions described above.
- Each functional unit and module in the embodiment may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit, and the integrated unit may be hardware.
- Formal implementation can also be implemented in the form of software functional units.
- the specific names of the respective functional units and modules are only for the purpose of facilitating mutual differentiation, and are not intended to limit the scope of protection of the present application.
- For the specific working process of the unit and the module in the foregoing system reference may be made to the corresponding process in the foregoing method embodiment, and details are not described herein again.
- the disclosed apparatus and method may be implemented in other manners.
- the system embodiment described above is merely illustrative.
- the division of the module or unit is only a logical function division.
- there may be another division manner for example, multiple units or components may be used. Combinations can be integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the medium includes instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) or a processor to perform various embodiments of the present invention. All or part of the steps of the method described in the examples.
- the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like. .
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种手势识别方法、装置及系统,包括:通过设于指尖和第三指关节的惯性传感器获取指尖和第三指关节在世界空间坐标系下的坐标信息,根据预设的近似求解公式求取所建立的指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组,将计算得到的弯曲角度θ1、θ2、θ3发送至预设三维模型中,生成相应的手势。借助于通过坐标信息反向求解弯曲角度的数学模型,能够高效率的计算得到精准的弯曲角度的相关信息,减少了传统的手势识别方法中所需用到的惯性传感器的数量,极大地精简了手势识别产品的结构,例如数据手套的结构,同时,由于惯性传感器的使用数量减少,使得数据手套的便携性和操作性大大提高,并降低了数据手套的制造难度和成本,用户体验更好。
Description
本发明属于动作捕捉技术领域,尤其涉及一种手势识别方法、装置及系统。
惯性式动作捕捉技术是基于惯性传感器动作捕捉设备的动作捕捉技术,通过利用加速度计、陀螺仪与磁力计的九轴惯性传感器,测定各个节点的姿态和相对位置来捕捉手部的动作变化,但是,由于惯性传感器的测量精度相对较低,在进行复杂的手部动作捕捉时,需要大量的惯性传感器进行位置校准和补偿,即在手指的各个节点或关节处均需要设置有惯性传感器以获取精确的姿态信息,从而实现手势的识别,这样,由于所使用的惯性传感器数量较多,导致数据手套的制造困难,成本较高,而且在佩戴方便的便携性不高,使得用户体验较差。
发明内容
有鉴于此,本发明实施例提供了一种手势识别方法、装置及系统,以解决现有技术中由于所使用的惯性传感器数量较多,导致数据手套的制造困难,成本较高,而且在佩戴方便的便携性不高,使得用户体验较差的问题。
本发明实施例的第一方面提供了一种手势识别方法,包括:
获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值;
建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:
x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)
y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)
其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所
需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度;
通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:
θ3=θ2
其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);
将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
本发明实施例的第二方面提供了一种手势识别装置,包括:
坐标值计算单元,用于获取指尖和第三指关节的坐标信息;
方程组建立单元,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:
x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)
y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)
其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度;
角度近似求解单元,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:
θ3=θ2
其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);
手势生成单元,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
本发明实施例的第三方面提供了一种手势识别系统,包括:
处理器(processor),通信接口(Communications Interface),存储器(memory),总线;
处理器,通信接口,存储器通过总线完成相互间的通信;
通信接口,用于与惯性传感器通信;
处理器,用于执行程序;
其中,所述程序包括:
坐标值计算单元,用于获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值。
方程组建立单元,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组。
角度近似求解单元,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3。
手势生成单元,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
本发明实施例与现有技术相比存在的有益效果是:借助于通过坐标信息反向求解弯曲角度的数学模型,能够高效率的计算得到精准的弯曲角度θ1、θ2、θ3的相关信息,减少了传统的手势识别方法中所需用到的惯性传感器的数量,极大地精简了手势识别产品的结构,例如数据手套的结构,同时,由于惯性传感器的使用数量减少,使得数据手套的便携性和操
作性大大提高,并降低了数据手套的制造难度和成本,用户体验更好。
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种手势识别方法的实现流程图;
图2是本发明实施例提供的一种计算指尖相对于第三指关节的坐标值的方法的实现流程图;
图3是本发明实施例提供的一种求解手指在z轴方向的角度值的方法的具体实现流程图;
图4是本发明实施例提供的一种进行误差调整角度的方法的具体实现流程图;
图5是本发明实施例提供的一种根据所述误差值对所述弯曲角度θ1、θ2、θ3的值进行相应调整的方法的具体实现流程图;
图6是本发明实施例提供的一种坐标信息与误差调整角度的关系示意图;
图7是本发明实施例提供的一种手势识别装置的结构框图;
图8是本发明实施例提供的一种手势识别系统的示意图。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明实施例提供的一种手势识别方法的实现流程,详述如下:
在步骤S101中,获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值。
在本发明实施例中,世界空间坐标系为绝对坐标系,处于该空间内的所有点的坐标都是以该坐标系的原点来确定各自的位置的。在这里,由惯性传感器采集指尖和第三指关节在世界空间内的坐标信息,即指尖和第三指关节在世界空间坐标系下的坐标信息。
具体地,在用户的指尖和第三指关节上分别设有一个惯性传感器,其中设于第三指关节的惯性传感器还具有定位功能。优选的,设于指尖的惯性传感器也可以具有定位功能,使得所获取的坐标信息更加精确。在这里,惯性传感器可以是相互独立设于用户指尖和第三指关节上的。
或者,惯性传感器设于用户所穿戴的数据手套上,具体为:分别在数据手套的指尖位置和第三指关节位置设有惯性传感器,其中设于第三指关节位置的惯性传感器具有定位功能,在这里,对于数据手套的具体形状并不做具体限定,例如,可以是手指全封闭式或半封闭式。
在这里,所述获取指尖和第三指关节的坐标信息具体为,获取由设于指尖的惯性传感器采集的坐标信息,和获取由设于第三指关节的惯性传感器采集的坐标信息,即所获取的指尖和第三指关节的坐标信息均通过惯性传感器直接获取。这样,要记录手掌中五根手指的坐标信息,需要在各手指的指尖和第三指关节处各设置一个惯性传感器,这样就需要10个传感器,相对于传统的数据手套,惯性传感器的使用量大大降低,使得数据手套的便携性更高,产品结构更简单。
优选的,由于各手指的第三指关节位于同一固定平面上(拇指除外),这样,可以用设于手背中心的一个惯性传感器代替各设于第三指关节处的惯性传感器,进一步将惯性传感器的数量减少到6个,即只需在手部中的5个指尖位置和手背中心位置各设置一个惯性传感器,其中设于手背中心的惯性传感器具有定位功能,以便于能获得相对精准的坐标信息。这时,由设于手背中心的惯性传感器所采集的角度值可以认为是各设于第三指关节的惯性传感器所采集的角度值,这一角度值也称为在世界空间内的绝对角度值。
将设于手背中心的惯性传感器称为中心传感器,这时,各第三指关节的坐标值与中心传感器的坐标值只相差一个特殊向量,这一特殊向量为根据第三指关节的坐标值与中心传感器的坐标值计算得到的向量,而这些特殊向量在手掌平面上是固定的,这样,可根据中心传感器的坐标信息和角度信息建立对应的转换矩阵,将这些特殊向量转换至世界空间,将转换后的特殊向量加上中心传感器的坐标值,得到各第三指关节在世界空间的坐标。对于这些特殊向量,不同人的手掌会有细微差别,可以按照数据手套的大小设定固定值,再根据用户的使用效果进行微调,以得到更高的精度。
具体地,步骤S101中的一种计算指尖相对于第三指关节的坐标值的方法的具体实现流程如图2所示:
在步骤S201中,获取所述第三指关节在世界空间坐标系下的绝对角度值。
在本发明实施例中,第三指关节在世界空间坐标系下的绝对角度值为设于第三指关节的惯性传感器所采集到的角度值。
优选的,第三指关节在世界空间坐标系下的绝对角度值为设于手部的手背中心的惯性传感器所采集到的角度值,即中心传感器所采集到的角度值。
在这里,中心传感器可以为设于手部的手背任意位置的惯性传感器,这里不做具体限定,这时第三指关节的坐标值与中心传感器的坐标值也仅相差一个特殊向量。在步骤S202中,根据所述坐标信息和所述绝对角度值计算第三指关节坐标系的三个单位轴向量在世界空间坐标系中的表示x、y、z,建立变换矩阵
在本发明实施例中,假设指尖坐标在世界空间内的坐标为P1,第三指关节在世界空间内的坐标为P0,其中,第三指关节在世界空间内的坐标可以为由设于第三指关节的惯性传感器采集得到的坐标,也可以为由根据设于手部的手背中心的惯性传感器采集到的坐标计算得到的第三指关节的所在位置的坐标,那么用P1减去P0得到第三指关节到指尖的向量P2,再根据第三指关节在世界空间坐标系下的绝对角度值,得到第三指关节坐标系的三个单位轴向量在世界空间坐标系中的表示:x、y、z,并建立变换矩阵通过矩阵变换公式:求解得到指尖相对于第三指关节的坐标值。
在一个应用场景中,指尖和第三指关节在世界空间坐标下的坐标信息中的坐标为包含未知数的坐标,比如,食指指尖的坐标为(1b,0,2b),其中,b为未知数,通过矩阵变换公式可以求教得到指尖相对应第三指关节的坐标值,该坐标值为一个相对确定数值的坐标值,比如坐标值(1,0,2),其对应为x,y,z的值。
在这里,通过将指尖和第三指关节在世界空间坐标系下的坐标转换为指尖相对于第三指关节的坐标值,以便于通过该指尖相对于第三指关节的坐标值建立指尖相对于第三指关节坐标系的指关节弯曲角度求取方程组,以求解指尖和指关节之间相对的弯曲角度,通过该弯曲角度确定相应的手势。
在步骤S102中,建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:
x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)
y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)
其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度。
在本发明实施例中,由于人的手指在自然运动时,θ2和θ3的值是近似的,因而设定θ2和θ3相等。在这里,a2、a3、a4这三个指节长度是已知的,可以根据不同性别或年龄段的用户而设置相应的参数,但因而我们只需求解所述指关节弯曲角度求解方程组中的θ1和θ2,通过弯曲角度θ1、θ2、θ3的值的变化,确定相应的手势。
在这里,第三指关节坐标系为以手背所在平面为坐标原点所建立的坐标系。
在步骤S103中,通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:
θ3=θ2
其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0
时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);
在本发明实施例中,仅以一根手指为分析对象,通过近似求解公式求解该手指中的指尖相对于第三指关节坐标系的指关节弯曲角度方程组中的弯曲角度θ1、θ2、θ3,基于同样的原理,可以计算其他四根手指的弯曲角度。
在这里,由于拇指的结构与其他手指的结构并不相同,可以设置a4和θ3等于零,以建立拇指的简化指关节弯曲角度求解方程组:
x=a3*sin(θ1+θ2)+a2*sin(θ1)
y=a3*cos(θ1+θ2)+a2*cos(θ1)
在该简化指关节弯曲角度求解方程组中,x、y为拇指指尖相对于第二指关节坐标系的坐标值,θ1为所需求解的拇指的第二指关节相对于手背的弯曲角度、θ2为所需求解的拇指的指尖相对于第二关节的弯曲角度,对于拇指中的弯曲角度θ1和θ2的求解,可以用上述的近似求解公式来求解,只需要将a4设为0就可以求解得到对应的弯曲角度θ1和θ2。
在步骤S104中,将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
在本发明实施例中,预设三维模型为预先构建的三维手部模型,将包含所述弯曲角度θ1、θ2、θ3的值的相关信息发送至预设三维模型后,根据弯曲角度θ1、θ2、θ3的值的变化,生成相应的手势。
进一步地,在虚拟现实中,仅模拟手指的弯曲并不能完全的完成手势的识别,还需要实现手指的张合以满足更丰富的交互动作,这样,在所述将所述相对弯曲角度θ1、θ2、θ3的值发送至预设三维模型中的步骤之前,还包括如图3所示的求解手指在z轴方向的角度值的方法的具体实现流程:
在步骤S301中,通过预设的三角函数公式求解手指在世界空间坐标系下z轴方向的角度θz。
在本发明实施例中,预设的三角函数公式具体如下:
在步骤S302中,将所述弯曲角度θ1、θ2、θ3的值和所述手指在z轴方向的角度θz的值,发送至预设三维模型中。
在本发明实施例中,通过求解手指在z轴方向的角度值,使得所模拟的手指的弯曲更加丰满,满足更丰富的交互动作,并使得所生成的手势更加精准。
进一步地,为了进一步提高所生成的手势的精度,使得手势识别更加准确,在所述将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中的步骤之前,还包括如图4所示的一种进行误差调整角度的方法的具体实现流程:
在步骤S401中,将所述弯曲角度θ1、θ2、θ3的值代入所述指关节弯曲角度求解方程组中,计算指尖的模拟坐标值。
在本发明实施例中,假设指尖坐标的原始数据为x0和y0,根据该原始数据x0和y0计算得到手指的弯曲角度θ1、θ2、θ3,再将该弯曲角度θ1、θ2、θ3代入原指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组中:
x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)
y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)
所计算得到的x和y为指尖的模拟坐标值。
在步骤S402中,通过预设的距离函数计算所述指尖的模拟坐标值与所述指尖的坐标信息的距离值以确定两者之间的误差。
在本发明实施例中,指尖的模拟坐标值与指尖坐标的原始数据的误差,即模拟值与真实值之间的误差,可以通过模拟值与真实值的坐标位置的距离值I来衡量,预设的距离函数如下:
显然,距离值I越小,表示模拟值与真实值之间的误差越小;距离值I越大,表示模拟值与真实值之间的误差越大;当I为零时,表示模拟值与真实值相等,这时所计算得到的弯曲角度值能够精确地反应手指的弯曲状态,当将该弯曲角度值发送至预设三维模型时,所
生成的手势与用户当前进行的手势完全吻合。
在步骤S403中,确定所述距离值是否超过预设距离阈值。
在本发明实施例中,在误差允许范围内,弯曲角度的细微差别对手势识别的影响并不是很大,为了减少计算量,进一步提高手势识别的效率,可以通过确定所述距离值是否超过预设距离阈值来进行相应的处理。
在步骤S404中,当所述距离值超过预设距离阈值时,根据所述指尖的模拟坐标值与所述指尖的坐标信息计算误差调整角度。
具体地,结合图6中坐标信息与误差调整角度的关系示意图对图5中的一种计算误差调整角度的方法具体实现流程进行详细描述:
在步骤S501中,通过矢量计算得到所述指尖的模拟坐标值所在点和所述指尖的坐标信息所在点到坐标原点的长度a和b,以及所述指尖的模拟坐标值所在点到所述指尖的坐标信息所在点的长度c。
在本发明实施例中,所述指尖的坐标信息所在点为(x0,y0),所述指尖的模拟坐标值所在点为(x,y),点(x0,y0)到坐标原点的长度为b,点(x,y)到坐标原点的长度为a,点(x0,y0)到点(x,y)的长度为c。
在步骤S502中,通过预设的三角函数公式求解所述指尖的模拟坐标值所在点与所述指尖的坐标信息所在点到坐标原点之间的夹角θc;所述预设的三角函数公式为:
在本发明实施例中,所述指尖的模拟坐标值所在点与所述指尖的坐标信息所在点到坐标原点之间的夹角θc,即为点(x0,y0)和点(x,y)到坐标原点之间的夹角θc。
在步骤S503中,将所述夹角θc设定为误差调整角度。
在本发明实施例中,夹角θc是由于指尖的模拟坐标值与指尖的原始坐标信息到坐标原点之间存在误差而产生的误差角度,因此,将该夹角θc设定为误差调整角度,根据该误差调整角度对计算得到的弯曲角度进行相应处理。在这里,夹角θc会有正负之分。
在步骤S405中,根据所述误差调整角度相应调整所述弯曲角度θ1、θ2、θ3中的θ1。
在本发明实施例中,因为误差调整角度θc是指尖的模拟坐标值与指尖的原始坐标信息到坐标原点之间存在误差而产生的误差角度,也就是说弯曲角度θ1、θ2、θ3中的θ1存在了误差,这时,所需要调整的弯曲角度就是弯曲角度θ1,在这里,我们将误差调整角度θc与原计算得到的弯曲角度θ1进行相加处理得到相对精准的弯曲角度θ1。
在这里,通过根据误差调整角度对弯曲角度θ1、θ2、θ3中的θ1进行调整后,使得所计算得到的θ1更精确,从而使得所计算得到的θ2、θ3也相对精准。
在本发明实施例中,通过计算出指尖的模拟坐标值与所述指尖的坐标信息相对于第三指关节坐标原点的误差调整角度θc,将该误差调整角度θc与弯曲角度θ1、θ2、θ3中的θ1进行相加调整,就可以得到相对精准的弯曲角度θ1、θ2、θ3。
在本发明实施例中,通过采用上述方法,使得所需要用到的惯性传感器的数量减少到10个,甚至可以进一步使得所需要用到的惯性传感器的数量减少到6个,并且能够获得精准的弯曲角度,生成相对精准的手势。
在本发明实施例中,通过设于指尖和第三指关节的惯性传感器获取指尖和第三指关节的坐标信息,根据预设的近似求解公式求取所建立的指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组,得到弯曲角度θ1、θ2、θ3,将该弯曲角度θ1、θ2、θ3发送至预设三维模型中,生成相应的手势。在这里,借助于指尖坐标信息反向求解弯曲角度的数学模型,能够高效率的计算得到精准的弯曲角度θ1、θ2、θ3的相关信息,减少了传统的手势识别方法中所需用到的惯性传感器的数量,极大地精简了手势识别产品的结构,例如数据手套的结构,同时,由于惯性传感器的使用数量减少,使得数据手套的便携性和操作性大大提高,并降低了数据手套的制造难度和成本,用户体验更好。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的手势识别方法,图7示出了本发明实施例提供的一种手势识别装置的结构框图,为了便于说明,仅示出了与本发明实施例相关的部分。
参照图7,在本发明实施例中,手势识别置包括:
坐标值计算单元71,用于获取指尖和第三指关节在世界空间坐标系下的坐标信息,计
算指尖相对于第三指关节的坐标值;
方程组建立单元72,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:
x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)
y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)
其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度;
角度近似求解单元73,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:
θ3=θ2
其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);
手势生成单元74,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
进一步地,所述坐标值计算单元包括:
绝对角度值获取子单元,用于获取所述第三指关节在世界空间坐标系下的绝对角度值;
进一步地,所述装置还包括:
z轴角度求解单元,用于通过预设的三角函数公式求解手指在世界空间坐标系下z轴方向的角度θz;
角度值发送单元,用于将所述弯曲角度θ1、θ2、θ3的值和所述手指在z轴方向的角度θz的值,发送至预设三维模型中。
进一步地,所述装置还包括:
模拟坐标值计算单元,用于将所述弯曲角度θ1、θ2、θ3的值代入所述指关节弯曲角度求解方程组中,计算指尖的模拟坐标值;
距离值计算单元,用于通过预设的距离函数计算所述指尖的模拟坐标值与所述指尖的坐标信息的距离值以确定两者之间的误差;
距离值确定单元,用于确定所述距离值是否超过预设距离阈值;
误差调整角度计算单元,用于当所述距离值超过预设距离阈值时,根据所述指尖的模拟坐标值与所述指尖的坐标信息计算误差调整角度θc;
角度调整单元,用于根据所述误差调整角度θc相应调整所述弯曲角度θ1、θ2、θ3中的θ1。
进一步地,所述角度调整单元包括:
长度计算子单元,用于通过矢量计算得到所述指尖的模拟坐标值所在点和所述指尖的坐标信息所在点到坐标原点的长度a和b,以及所述指尖的模拟坐标值所在点到所述指尖的坐标信息所在点的长度c;
夹角求解子单元,用于通过预设的三角函数公式求解所述指尖的模拟坐标值所在点与
所述指尖的坐标信息所在点到坐标原点之间的夹角θc;所述预设的三角函数公式为:
角度设定单元,用于将所述夹角θc设定为误差调整角度。
请参考图8,本发明实施例提供了一种手势识别系统的示意图。手势识别系统8可能是包含计算能力的主机服务器,或者个人计算机PC,或者是可携带的便携式计算机或终端等等,本发明实施例并不对手势识别系统的具体实现做限定。手势识别系统包括:
处理器(processor)810,通信接口(Communications Interface)820,存储器(memory)830,总线840。
处理器810,通信接口820,存储器830通过总线840完成相互间的通信。
通信接口820,用于与惯性传感器通信。
处理器810,用于执行程序832。
具体地,程序832可以包括程序代码,所述程序代码包括计算机操作指令。
处理器810可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器830,用于存放程序832。存储器830可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
其中,所述程序832,包括:
坐标值计算单元71,用于获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值。
方程组建立单元72,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组。
角度近似求解单元73,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3。
手势生成单元74,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
程序832中各单元的具体实现参见图7所示实施例中的相应单元,在此不赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、
模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个
实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
- 一种手势识别方法,其特征在于,包括:获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值;建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度;通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:θ3=θ2其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
- 如权利要求1所述的手势识别方法,其特征在于,在所述将所述相对弯曲角度θ1、θ2、θ3的值发送至预设三维模型中的步骤之前,还包括:通过预设的三角函数公式求解手指在世界空间坐标系下z轴方向的角度θz;将所述弯曲角度θ1、θ2、θ3的值和所述手指在z轴方向的角度θz的值,发送至预设三维模型中。
- 如权利要求1所述的手势识别方法,其特征在于,在所述将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中的步骤之前,还包括:将所述弯曲角度θ1、θ2、θ3的值代入所述指关节弯曲角度求解方程组中,计算指尖的模拟坐标值;通过预设的距离函数计算所述指尖的模拟坐标值与所述指尖的坐标信息的距离值以确定两者之间的误差;确定所述距离值是否超过预设距离阈值;当所述距离值超过预设距离阈值时,根据所述指尖的模拟坐标值与所述指尖的坐标信息计算误差调整角度θc;根据所述误差调整角度θc相应调整所述弯曲角度θ1、θ2、θ3中的θ1。
- 一种手势识别装置,其特征在于,包括:坐标值计算单元,用于获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值;方程组建立单元,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组:x=a4*sin(θ1+θ2+θ3)+a3*sin(θ1+θ2)+a2*sin(θ1)y=a4*cos(θ1+θ2+θ3)+a3*cos(θ1+θ2)+a2*cos(θ1)其中,x、y为指尖相对于第三指关节的坐标值中的x值和y值,a2为第三指关节到第二指关节之间的指节长度,a3为第二指关节到第一指关节之间的指节长度,a4为第一指关节到指尖之间的指节长度,θ1为所需求解的第三指关节相对于手背的弯曲角度、θ2为所需求解的第二指关节相对于第三指关节的弯曲角度、θ3为所需求解的指尖相对于第二指关节的弯曲角度;角度近似求解单元,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3,所述近似求解公式为:θ3=θ2其中,alpha与y正相关,当y>0时,alpha=1;当y=0时,alpha=0;当y<0 时,alpha=-1;V=a2+a3*cos(θ2)+a4*cos(2*θ2);W=a3*sin(θ2)+a4*sin(2*θ2);手势生成单元,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
- 如权利要求6所述的手势识别装置,其特征在于,所述装置还包括:z轴角度求解单元,用于通过预设的三角函数公式求解手指在世界空间坐标系下z轴方向的角度θz;角度值发送单元,用于将所述弯曲角度θ1、θ2、θ3的值和所述手指在z轴方向的角度θz的值,发送至预设三维模型中。
- 如权利要求6所述的手势识别装置,其特征在于,所述装置还包括:模拟坐标值计算单元,用于将所述弯曲角度θ1、θ2、θ3的值代入所述指关节弯曲角度求解方程组中,计算指尖的模拟坐标值;距离值计算单元,用于通过预设的距离函数计算所述指尖的模拟坐标值与所述指尖的坐标信息的距离值以确定两者之间的误差;距离值确定单元,用于确定所述距离值是否超过预设距离阈值;误差调整角度计算单元,用于当所述距离值超过预设距离阈值时,根据所述指尖的模拟坐标值与所述指尖的坐标信息计算误差调整角度θc;角度调整单元,用于根据所述误差调整角度θc相应调整所述弯曲角度θ1、θ2、θ3中的θ1。
- 一种手势识别系统,其特征在于,包括:处理器,通信接口,存储器和总线;处理器,通信接口和存储器通过总线完成相互间的通信;通信接口,用于与惯性传感器通信;处理器,用于执行程序;其中,所述程序包括:坐标值计算单元,用于获取指尖和第三指关节在世界空间坐标系下的坐标信息,计算指尖相对于第三指关节的坐标值。方程组建立单元,用于建立指尖相对于第三指关节坐标系的指关节弯曲角度求解方程组。角度近似求解单元,用于通过预设的近似求解公式求解所述弯曲角度θ1、θ2、θ3。手势生成单元,用于将所述弯曲角度θ1、θ2、θ3的值发送至预设三维模型中,生成相应的手势。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201710237212.5A CN108693958B (zh) | 2017-04-12 | 2017-04-12 | 一种手势识别方法、装置及系统 |
| CN201710237212.5 | 2017-04-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2018188116A1 true WO2018188116A1 (zh) | 2018-10-18 |
Family
ID=63793025
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2017/081850 Ceased WO2018188116A1 (zh) | 2017-04-12 | 2017-04-25 | 一种手势识别方法、装置及系统 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN108693958B (zh) |
| WO (1) | WO2018188116A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111401334A (zh) * | 2020-04-29 | 2020-07-10 | 北京智宸天驰科技有限公司 | 一种利用传感器进行非接触映射式动作识别设备及方法 |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2021000327A1 (zh) * | 2019-07-04 | 2021-01-07 | 深圳市瑞立视多媒体科技有限公司 | 手部模型生成方法、装置、终端设备及手部动作捕捉方法 |
| CN112904994B (zh) * | 2019-11-19 | 2023-09-22 | 深圳岱仕科技有限公司 | 手势识别方法、装置、计算机设备和存储介质 |
| CN111158478B (zh) * | 2019-12-26 | 2023-02-03 | 维沃移动通信有限公司 | 响应方法及电子设备 |
| CN111142663B (zh) * | 2019-12-27 | 2024-02-02 | 恒信东方文化股份有限公司 | 一种手势识别方法及手势识别系统 |
| CN114690900B (zh) * | 2022-03-16 | 2023-07-18 | 中数元宇数字科技(上海)有限公司 | 一种虚拟场景中的输入识别方法、设备及存储介质 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102363301A (zh) * | 2011-10-19 | 2012-02-29 | 浙江工业大学 | 机器人拟人手指自适应指尖力跟踪控制方法 |
| WO2016044035A1 (en) * | 2014-09-17 | 2016-03-24 | Microsoft Technology Licensing, Llc | Smart ring |
| CN105818129A (zh) * | 2016-04-12 | 2016-08-03 | 华南理工大学 | 一种基于数据手套的仿人机械手控制系统 |
| CN105868715A (zh) * | 2016-03-29 | 2016-08-17 | 苏州科达科技股份有限公司 | 一种手势识别方法、装置及手势学习系统 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105677036B (zh) * | 2016-01-29 | 2018-04-10 | 清华大学 | 一种交互式数据手套 |
-
2017
- 2017-04-12 CN CN201710237212.5A patent/CN108693958B/zh not_active Expired - Fee Related
- 2017-04-25 WO PCT/CN2017/081850 patent/WO2018188116A1/zh not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102363301A (zh) * | 2011-10-19 | 2012-02-29 | 浙江工业大学 | 机器人拟人手指自适应指尖力跟踪控制方法 |
| WO2016044035A1 (en) * | 2014-09-17 | 2016-03-24 | Microsoft Technology Licensing, Llc | Smart ring |
| CN105868715A (zh) * | 2016-03-29 | 2016-08-17 | 苏州科达科技股份有限公司 | 一种手势识别方法、装置及手势学习系统 |
| CN105818129A (zh) * | 2016-04-12 | 2016-08-03 | 华南理工大学 | 一种基于数据手套的仿人机械手控制系统 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111401334A (zh) * | 2020-04-29 | 2020-07-10 | 北京智宸天驰科技有限公司 | 一种利用传感器进行非接触映射式动作识别设备及方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN108693958A (zh) | 2018-10-23 |
| CN108693958B (zh) | 2020-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2018188116A1 (zh) | 一种手势识别方法、装置及系统 | |
| US10043308B2 (en) | Image processing method and apparatus for three-dimensional reconstruction | |
| CN111433783B (zh) | 手部模型生成方法、装置、终端设备及手部动作捕捉方法 | |
| CN108268129B (zh) | 对动作捕捉手套上的多个传感器进行校准的方法和装置及动作捕捉手套 | |
| WO2021103648A1 (zh) | 手部关键点检测方法、手势识别方法及相关装置 | |
| CN113119104B (zh) | 机械臂控制方法、机械臂控制装置、计算设备及系统 | |
| CN112904994B (zh) | 手势识别方法、装置、计算机设备和存储介质 | |
| CN109739358B (zh) | 基于裸眼3d的手势碰撞检测方法及设备 | |
| CN113084791B (zh) | 机械臂控制方法、机械臂控制装置及终端设备 | |
| CN115546365A (zh) | 一种虚拟人驱动方法及系统 | |
| CN107368820A (zh) | 一种精细化手势识别方法、装置及设备 | |
| CN111506199A (zh) | 基于Kinect的高精度无标记全身运动追踪系统 | |
| CN110956666A (zh) | 运动数据标定方法、装置、终端设备及存储介质 | |
| CN108073283A (zh) | 手部关节的计算方法及手套 | |
| CN109871857B (zh) | 用于识别手势的方法和装置 | |
| CN115919250B (zh) | 一种人体动态关节角测量系统 | |
| CN109871116B (zh) | 用于识别手势的装置和方法 | |
| CN113496165B (zh) | 用户手势识别方法、装置、手部智能穿戴设备及存储介质 | |
| Chang et al. | Real-time arm motion tracking and hand gesture recognition based on a single inertial measurement unit | |
| CN115798031A (zh) | 基于李群的手势识别方法、装置、电子设备和存储介质 | |
| US20240355026A1 (en) | Skeleton correction method of avatar, virtual reality system, and computer-readable medium | |
| CN118135604A (zh) | 一种3d手势姿态估计方法及装置 | |
| CN116994326A (zh) | 可穿戴系统的手势识别方法、装置、系统及可读存储介质 | |
| CN118034483A (zh) | 手势姿态识别方法、装置、设备、存储介质和程序产品 | |
| CN110175629B (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: 17905632 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: 17905632 Country of ref document: EP Kind code of ref document: A1 |







