The present invention relates to a generation method and the like.
Scoring support for sports, various types of training support, and the like have been provided by performing skeleton recognition on measurement results of a subject sensed by a sensor and displaying a three-dimensional (3D) model obtained from each joint position. The skeleton recognition is for determining each joint position of the subject.
There is a fitting process as one of methods of the skeleton recognition.
Examples of the relates art include: International Publication Pamphlet No. WO 2018/207282, and M. Ye and R. Yang, “Real-time Simultaneous Pose and Shape Estimation for Articulated Objects Using a Single Depth Camera” in CVPR (2014).
According to an aspect of the embodiments, there is provided a generation method implemented by a computer. In an example, the generation method includes: obtaining three-dimensional (3D) point group data on the basis of a measurement result of a 3D sensor that three-dimensionally measures a subject; evaluating an influence of noise on the measurement result on the basis of a result obtained by applying a cylinder model that expresses individual parts of a human body with a plurality of cylinders to the 3D point group data for each of the parts; repeatedly executing a process in which a point group in a cylinder model periphery that corresponds to a part in which the influence of noise is determined to be equal to or higher than a predetermined level is excluded from the 3D point group data and the cylinder model is applied again to the 3D point group data from which the point group is excluded; generating a skeleton recognition result of the subject on the basis of a result obtained by applying the cylinder model to the 3D point group data of a case where the influence of noise on each of the parts is lower than the predetermined level; and outputting the skeleton recognition result.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.
However, when the fitting process is carried out in a state where noise is included in the point group data, the cylindrical model data may be applied to a noise-derived point group instead of a subject-derived point group.
In one aspect, it is an object of the present invention to provide a generation method, a generation program, and an information processing system capable of suppressing a decrease in accuracy of a skeleton recognition result derived from erroneous fitting caused by noise.
Hereinafter, an embodiment of a generation method, a generation program, and an information processing system disclosed in the present application will be described in detail with reference to the drawings. Note that the embodiment does not limit the present invention.
The information processing apparatus executes a fitting process for applying cylindrical model data 40 of the subject 5 to the three-dimensional point group data 5a. The cylindrical model data 40 is a model in which a length and thickness of each part of the subject 5 are approximated by radii and lengths of a plurality of cylinders.
The information processing apparatus evaluates an influence of noise on the basis of a result of the fitting process. For example, the process of evaluating the influence of noise is a process in which, for each cylinder of the cylindrical model data 40, the number of points included in a point group around the cylinder is counted and whether or not the number of counted points is less than expected (less than a predetermined number) is specified. The information processing apparatus determines that the influence of noise is equal to or higher than a certain level in a case where the number of points around any of the cylinders is less than expected. The predetermined number is a value set for each part. For example, the predetermined number is set on the basis of surface area and resolution of the cylinder of each part.
In the example illustrated in
The information processing apparatus repeatedly executes the fitting process by excluding the point group around the cylinder to be subject to the influence of noise until the influence of noise becomes lower than the certain level, and specifies a posture of the final cylindrical model data 40. Then, the information processing apparatus specifies skeleton model data 6 based on the posture of the final cylindrical model data 40. The skeleton model data 6 corresponds to a skeleton recognition result of the subject 5.
Here, a relationship between the number of points around the cylinder and the influence of noise will be described. While there are various types of noise caused by various causes, for example, edge noise will be considered. The edge noise is noise that occurs when points originally expected to be observed at contour positions of the subject are observed at positions away from the point group corresponding to the subject on the opposite side of the sensor in a fluttered manner as a result of laser light having grazed the subject contour. In the case of the subject having an irradiation area of equal to or more than a certain level, noise including the edge noise has density of the point group lower than density of the point group (subject-derived point group) corresponding to the observation result with the laser light emitted to the subject. Accordingly, if it is erroneously applied to the noise-derived point group as a result of the fitting process, the number of points around the cylinder is less than that of the case of being applied to the subject-derived point group. Therefore, in a case where the number of points around the cylinder is less than a predetermined number, it is possible to notice that erroneous fitting to the noise-derived point group has been carried out, and to carry out updating to three-dimensional point group data in which the influence of noise is reduced by removing the noise-derived point group. Moreover, it is possible to sequentially remove the noise-derived point groups according to the present embodiment by repeating the updating of the three-dimensional point group data and the fitting process using the updated three-dimensional point group data. Furthermore, according to the present embodiment, it is possible to ultimately suppress a decrease in accuracy of the skeleton recognition result derived from the erroneous fitting caused by noise while reducing the influence of noise by removing the noise-derived point group.
The sensor 10 is a depth sensor that measures distance image data of the subject 5. The sensor 10 outputs the distance image data to the information processing apparatus 100 at predetermined frames per second (FPS).
As described with reference to
Each time the information processing apparatus 100 obtains the distance image data from the sensor 10, it repeatedly executes a process of specifying the skeleton model data. The information processing apparatus 100 recognizes a motion of the subject 5 on the basis of the time-series skeleton model data. For example, an element included in a performance in a scoring competition is recognized as a motion, and screen information including a recognition result, a score of the performance, and the like is generated and displayed.
While descriptions will be given on the assumption that the subject 5 is a gymnast who performs a gymnastics routine in the present embodiment as an example, it is not limited to this, and is applicable to other scoring competitions. Other scoring competitions include trampoline, swim diving, figure skating, karate style, ballroom dance, snowboarding, skateboarding, ski aerial, and surfing. Furthermore, it may be applied to form check or the like of classical ballet, ski jump, mogul air and turn, baseball, and basketball. Furthermore, it may be applied to competitions such as kendo, judo, wrestling, and sumo. Moreover, it may also be used to evaluate whether or not a weight lifting barbell has been lifted.
The communication unit 110 is a processing unit that performs data communication with an external device, such as the sensor 10, via a network. The control unit 150 to be described later exchanges data with an external device via the communication unit 110. The communication unit 110 is an exemplary communication device.
The input unit 120 is an input device that inputs various types of information to the control unit 150 of the information processing apparatus 100. The input unit 120 corresponds to a keyboard, a mouse, a touch panel, or the like. For example, a user operates the input unit 120 to request display of the screen information or the like.
The display unit 130 is a display device that displays information output from the control unit 150. For example, the display unit 130 displays screen information such as element approval and scoring results of various competitions. The display unit 130 corresponds to a liquid crystal display, an organic electro-luminescence (EL) display, a touch panel, or the like.
The storage unit 140 includes the cylindrical model data 40, a distance image table 141, and skeleton model table 142. The storage unit 140 corresponds to a semiconductor memory element such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk drive (HDD).
The cylindrical model data 40 is data of a model that expresses a part of a human body (subject) with a cylinder.
The description returns to
The skeleton model table 142 is a table that stores the skeleton model data described with reference to
The control unit 150 includes an acquisition unit 151, a fitting processing unit 152, a generation unit 153, and an element recognition unit 154. The control unit 150 is implemented by a central processing unit (CPU), a micro processing unit (MPU), hard-wired logic such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA), or the like.
The acquisition unit 151 is a processing unit that obtains distance image data from the sensor 10. The acquisition unit 151 registers the distance image data from the sensor 10 in the distance image table 141.
The acquisition unit 151 converts the distance image data into three-dimensional point group data on the basis of a conversion table (not illustrated). The conversion table is a table that defines a relationship between a pixel position and distance of the distance image data and three-dimensional coordinates. The acquisition unit 151 outputs the three-dimensional point group data to the fitting processing unit 152.
The acquisition unit 151 repeatedly executes the process described above each time the distance image data is obtained from the sensor 10.
The fitting processing unit 152 evaluates an influence of noise on the three-dimensional point group data on the basis of a result of the fitting of the cylindrical model data 40. The fitting processing unit 152 repeatedly executes the process of excluding the point group around the cylindrical model data 40 from the three-dimensional point group data and applying the cylindrical model data 40 to the three-dimensional point group data from which the point group is excluded again until the influence of noise becomes lower than a certain level. The fitting processing unit 152 outputs, to the generation unit 153, final fitting result data when the influence of noise becomes lower than the certain level.
Here, the fitting processing unit 152 executes a process of specifying an initial value of a parameter, a process of calculating a parameter using an expectation maximization (EM) algorithm, and a process of evaluating an influence of noise. The “parameter” indicates each of joint angles connecting the individual cylinders of the cylindrical model data 40.
An example of the process in which the fitting processing unit 152 specifies the initial value of the parameter will be described. The fitting processing unit 152 uses the result of the fitting process for the (n−1)-th three-dimensional point group data as an initial value of the parameter of the n-th three-dimensional point group data.
In a case where there is no result of the fitting process for the (n−1)-th three-dimensional point group data, the fitting processing unit 152 executes the following process. The fitting processing unit 152 may match the barycenter of the cylindrical model data 40 with the barycenter of the three-dimensional point group data, calculate a degree of coincidence between the cylindrical model data 40 and the three-dimensional point group data for a plurality of predetermined parameters, and use the parameter with the highest degree of coincidence as an initial value.
Furthermore, the fitting processing unit 152 may input the three-dimensional point group data to a geometric model to calculate the initial value of the parameter. The method disclosed in International Publication Pamphlet No. WO 2018/207282 may be used as a method of calculating the initial value using the geometric model.
Subsequently, an example of the process in which the fitting processing unit 152 calculates the parameter using the EM algorithm will be described. The fitting processing unit 152 compares the cylindrical model data 40 in an initial posture with the three-dimensional point group data to calculate posterior distribution pnm of the point group. The cylindrical model data 40 in the initial posture is obtained by setting the initial value in the cylindrical model data 40.
The posterior distribution pnm is defined by the formula (1). The reference “n” included in the formula (1) indicates a point included in a point group frame, and n=1 to na when na points are included in the point group frame. The reference M indicates each cylinder (part) of the cylindrical model data 40, and m=1 to 14 (Md1 to Md14) in a case where there are 14 parts identified by the respective pieces of part identification information Md1 to Md14 as illustrated in
The reference εm included in the formula (1) indicates a surface residual, and is assumed to be a Gaussian distribution. The surface residual indicates a difference in a vertical direction between a point group and a surface of an m-th cylinder. For example, a first cylinder indicates a cylinder with a part identification number Md1. The surface residual εm is specified by xn and σ2. The reference xn indicates three-dimensional coordinates of an n-th point. The reference σ indicates variance of the three-dimensional coordinates of the point group included in the point group frame.
After calculating the posterior distribution pnm, the fitting processing unit 152 updates an evaluation function Q defined by the formula (2). In the formula (2), the reference P indicates a total sum of pnm.
The fitting processing unit 152 calculates a change amount Δθ of the cylindrical parameter that minimizes the likelihood of the evaluation function Q using the Levenberg-Marquardt (LM) method. For example, the fitting processing unit 152 calculates the change amount Δθ on the basis of the formulae (3) and (4). The fitting processing unit 152 may generate the change amount Δθ randomly, not limited to the LM method.
The fitting processing unit 152 repeatedly executes the process of generating the change amount Δθ, updating the parameter, and calculating the likelihood of the evaluation function Q until a predetermined convergence condition is satisfied. For example, in a case where the change amount Δθ is less than a predetermined change amount, the fitting processing unit 152 may determine that the convergence condition is satisfied when the likelihood of the evaluation function Q is less than a threshold value. The cylindrical model data 40 of the parameter (posture) that satisfies the convergence condition will be referred to as “cylindrical model data 40 of a fitting processing result”.
Subsequently, an example of the process in which the fitting processing unit 152 evaluates the influence of noise will be described. The fitting processing unit 152 selects a part of the cylindrical model data 40 of the fitting processing result, and evaluates an influence of noise on the selected part.
In a case where the number of counted points is less than a predetermined number, the fitting processing unit 152 determines that the influence of noise is equal to or higher than a certain level. In the case where the number of counted points is less than the predetermined number, the fitting processing unit 152 treats the point group around the cylinder as noise.
On the other hand, in a case where the number of counted points is equal to or more than the predetermined number, the fitting processing unit 152 determines that the influence of noise is lower than the certain level. In the case where the number of counted points is equal to or more than the predetermined number, the fitting processing unit 152 treats the point group around the cylinder as a point group derived from the subject 5.
In a case where the fitting processing unit 152 determines that the influence of noise is equal to or higher than the certain level, it excludes the point group included in the cylinder periphery A13. The fitting processing unit 152 also evaluates the influence of noise on parts other than the cylinder Md13, and excludes the point group around the cylinder in a case where the influence of noise is equal to or higher than the certain level. On the other hand, the fitting processing unit 152 does not exclude the point group from the periphery of the selected cylinder in a case where the influence of noise is lower than the certain level.
The fitting processing unit 152 updates the three-dimensional point group data to be subject to the fitting process by executing the process described above. The fitting processing unit 152 repeatedly perform the process of specifying the initial value, the process of calculating the parameter, and the process of evaluating the influence of noise on the updated three-dimensional point group data until the influence of noise becomes lower than the certain level for all parts.
In step S10, the fitting processing unit 152 performs a process of specifying an initial value and calculating a parameter on the three-dimensional point group data from which the point groups around the cylinders of the cylinders Md9 and Md13 are excluded, and obtains the cylindrical model data 40 of the fitting processing result. The fitting processing unit 152 determines that the influence of noise on the cylinder Md9 is equal to or higher than a certain level, and excludes the point group around the cylinder of the cylinder Md9. The fitting processing unit 152 determines that the influence of noise on the cylinder Md13 is equal to or higher than the certain level, and excludes the point group around the cylinder of the cylinder Md13. As a result, the point groups around the cylinders of the cylinders Md9 and Md13 are excluded from the three-dimensional point group data (step S11).
In step S11, the fitting processing unit 152 performs the process of specifying an initial value and calculating a parameter on the three-dimensional point group data from which the point groups around the cylinders of the cylinders Md9 and Md13 are excluded, and obtains the cylindrical model data 40 of the fitting processing result. The fitting processing unit 152 determines that the influence of noise on the cylinder Md9 is lower than the certain level. The fitting processing unit 152 determines that the influence of noise on the cylinder Md13 is lower than the certain level. As a result, the final parameter of the cylindrical model data 40 is specified (step S12).
The fitting processing unit 152 executes the process described above until the influence of noise on the fitting processing result previously executed becomes lower than the certain level, thereby specifying the final parameter of the cylindrical model data 40. The fitting processing unit 152 outputs the final parameter to the generation unit 153.
The description proceeds to
The generation unit 153 repeatedly executes the process described above each time the final parameter is obtained from the fitting processing unit 152.
The element recognition unit 154 obtains each of the skeleton model data in the skeleton model table 142, and specifies a time-series change of each joint coordinates on the basis of successive skeleton model data. The element recognition unit 154 compares a time-series change of each joint position with an element recognition table (not illustrated) to specify a type of the element. Furthermore, the element recognition unit 154 compares a combination of element types with the element recognition table to calculate a score of the performance of the subject 5.
For example, the element recognition table is a table that associates a time-series change of each joint position included in individual skeleton recognition results with an element type. Furthermore, the element recognition table associates a combination of element types with a score. A score is calculated by adding a difficulty (D) score and an execution (E) score. For example, a D-score is a score calculated on the basis of success/unsuccess of an element. An E-score is a score calculated by a point-deduction system according to a perfection level of an element.
The element recognition unit 154 outputs, to a screen information output control unit 155, a type of an element included in a performance, a score of the performance, skeleton model data from the start to the end of the performance, and the like.
The screen information output control unit 155 generates screen information on the basis of the score of the performance and the skeleton model data from the start to the end of the performance. The screen information output control unit 155 outputs the generated screen information to the display unit 130, and causes it to be displayed.
Next, an exemplary processing procedure of the information processing apparatus 100 according to the present embodiment will be described.
The fitting processing unit 152 of the information processing apparatus 100 executes a noise evaluation process (step S103). The generation unit 153 of the information processing apparatus 100 generates skeleton model data on the basis of a result of a fitting process, and stores it in the skeleton model table 142 (step S104).
If the performance is not complete (No in step S105), the information processing apparatus 100 proceeds to step S101 again. On the other hand, if the performance is complete (Yes in step S105), the information processing apparatus 100 proceeds to step S106.
The element recognition unit 154 of the information processing apparatus 100 refers to the skeleton model table 142 to execute element recognition, and specifies an element type and a performance score (step S106). The screen information output control unit 155 of the information processing apparatus 100 generates screen information (step S107). The screen information output control unit 155 causes the display unit 130 to display the screen information (step S108). Note that, while the element recognition is carried out when the performance is complete in the present embodiment, it is not limited to this. For example, the information processing apparatus 100 sequentially carries out the skeleton recognition according to the output from the sensor. Then, the information processing apparatus 100 may sequentially carry out the element recognition using the skeleton recognition results in a collective unit among the skeleton recognition results sequentially carried out. Moreover, independently of the element recognition, the information processing apparatus 100 may generate a three-dimensional model animation based on the corresponding skeleton model data to display it on the screen each time the skeleton recognition result is obtained.
Next, a processing procedure of the noise evaluation process indicated in step S103 in
Next, the fitting processing unit 152 sets 1 to i (step S202). The fitting processing unit 152 counts point groups around a cylinder of a part Mdi (step S203). If the number of point groups is less than a predetermined number (No in step S204), the fitting processing unit 152 proceeds to step S206. Note that the predetermined number is a value set for each of individual cylinders.
If the number of point groups is less than the predetermined number (Yes in step S204), the fitting processing unit 152 proceeds to step S205. The fitting processing unit 152 excludes the point group around the part Mdi (step S205).
If the value of i is 14 (Yes in step S206), the fitting processing unit 152 proceeds to step S208. Note that an exemplary case where the number of parts is 14 is described in the present embodiment. If the value of i is not 14 (No in step S206), the fitting processing unit 152 proceeds to step S207. The fitting processing unit 152 adds 1 to the value of i (step S207), and proceeds to step S203.
The fitting processing unit 152 determines whether or not there is a part in which the number of point groups around the cylinder is less than a predetermined number (step S208). If there is a part (Yes in step S209), the fitting processing unit 152 proceeds to step S201. On the other hand, if there is no part (No in step S209), the fitting processing unit 152 proceeds to step S210. In this manner, the fitting processing unit 152 repeatedly executes the fitting process while updating the three-dimensional point group data to be processed until the influence of noise becomes lower than a certain level for all parts. Specifically, if the number of point groups around the cylinder corresponding to a certain part is less than the predetermined number in the previously executed fitting result, the fitting processing unit 152 determines that the previously executed fitting is affected by noise. For example, it is determined that the previously executed fitting is affected by the noise more than a certain level, and that the fitting needs to be executed again. Then, the fitting processing unit 152 performs the fitting process again on the updated three-dimensional point group data in which a part of the point groups is deleted by the previous noise evaluation process. In this manner, the fitting processing unit 152 determines that the influence of noise on the previous fitting processing result is lower than the certain level when there is no part in which the number of point groups around the cylinder of each part is less than the predetermined number.
The fitting processing unit 152 outputs the result of the fitting process to the generation unit 153 (step S210).
Next, a processing procedure of the fitting process indicated in step S201 in
The fitting processing unit 152 specifies an initial value of the cylindrical model data 40 (step S302). The fitting processing unit 152 calculates prior distribution pnm (step S303).
The fitting processing unit 152 calculates a parameter change amount Δθ (step S304). The fitting processing unit 152 updates the parameter (θ=θ+Δθ) (step S305).
The fitting processing unit 152 calculates the likelihood using the evaluation function Q (step S306). If a convergence condition is not satisfied (No in step S307), the fitting processing unit 152 proceeds to step S303. On the other hand, if the convergence condition is satisfied (Yes in step S307), the fitting processing unit 152 proceeds to step S308.
The fitting processing unit 152 determines whether or not the fitting has succeeded (step S308). For example, if the sum of the prior distribution pnm is equal to or greater than a preset threshold value, the fitting processing unit 152 determines that the fitting has succeeded.
If the fitting has not succeeded (No in step S308), the fitting processing unit 152 proceeds to step S302. On the other hand, if the fitting has succeeded (Yes in step S308), the fitting processing unit 152 proceeds to step S309. The fitting processing unit 152 outputs a fitting result (step S309).
Next, effects of the information processing apparatus 100 according to the present embodiment will be described. The information processing apparatus 100 repeatedly executes the fitting process by excluding the point group around the cylinder to be subject to the influence of noise until the influence of noise becomes lower than a certain level, and specifies a posture of the final cylindrical model data 40. Then, the information processing apparatus specifies skeleton model data 6a based on the posture of the final cylindrical model data 40. As a result, it becomes possible to suppress a decrease in accuracy of the skeleton model data derived from the erroneous fitting caused by noise.
For example, in the example described with reference to
The information processing apparatus 100 counts the number of points included in the point group around the cylinder, and repeatedly executes the process of applying the cylindrical model data 40 again until the number of points becomes equal to or more than a predetermined number. As a result, it becomes possible to exclude the noise-derived point group included in the three-dimensional point group data. Furthermore, the cylindrical model data is applied to the three-dimensional point group data from which the noise-derived point group is excluded, whereby it becomes possible to suppress allocation of a part of the cylindrical model data 40 to the noise.
Meanwhile, the process of the information processing apparatus 100 described above is an example, and the information processing apparatus 100 may execute another process. For example, while the fitting processing unit 152 of the information processing apparatus 100 counts the number of point groups (number of points included in point groups) included in the cylinder periphery with the range of the cylinder periphery fixed to the “range from the cylinder surface to r/10” to exclude the point group included in the cylinder periphery in a case where the influence of noise is equal to or higher than a certain level, it is not limited to this.
The fitting processing unit 152 may gradually increase the range of the cylinder periphery. In a case where the fitting processing unit 152 selects a certain part and evaluates the influence of noise on the selected part for the first time, it sets the range of the cylinder periphery to r/10 from the cylinder surface. In a case where the fitting processing unit 152 evaluates the influence of noise for the second time, it sets the range of the cylinder periphery to r/9 from the cylinder surface. In a case where the fitting processing unit 152 evaluates the influence of noise for the third and subsequent times, it sets the range of the cylinder periphery to r/8 from the cylinder periphery.
In this manner, the fitting processing unit 152 gradually increases the range of the cylinder periphery, whereby it becomes possible to gradually increase the number of point groups to be excluded from the three-dimensional point group data.
Next, an exemplary hardware configuration of a computer that implements functions similar to those of the information processing apparatus 100 described in the above embodiment will be described.
As illustrated in
The hard disk device 207 includes an acquisition program 207a, a fitting processing program 207b, a generation program 207c, an element recognition program 207d, and a screen information output control program 207e. The CPU 201 reads the acquisition program 207a, the fitting processing program 207b, the generation program 207c, the element recognition program 207d, and the screen information output control program 207e to load them in the RAM 206.
The acquisition program 207a functions as an acquisition process 206a. The fitting processing program 207b functions as a fitting processing process 206b. The generation program 207c functions as a generation process 206c. The element recognition program 207d functions as an element recognition process 206d. The screen information output control program 207e functions as a screen information output control process 206e.
Processing of the acquisition process 206a corresponds to the processing of the acquisition unit 151. Processing of the fitting processing process 206b corresponds to the processing of the fitting processing unit 152. Processing of the generation process 206c corresponds to the processing of the generation unit 153. Processing of the element recognition process 206d corresponds to the processing of the element recognition unit 154. Processing of the screen information output control process 206e corresponds to the processing of the screen information output control unit 155.
Note that the individual programs 207a to 207e may not necessarily be stored in the hard disk device 207 beforehand. For example, each of the programs is stored in a “portable physical medium” such as a flexible disk (FD), a compact disc read only memory (CD-ROM), a digital versatile disc (DVD), a magneto-optical disk, or an integrated circuit (IC) card to be inserted in the computer 200. Then, the computer 200 may read and execute each of the programs 207a to 207e.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation application of International Application PCT/JP2019/048515 filed on Dec. 11, 2019 and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2019/048515 | Dec 2019 | US |
Child | 17741824 | US |