WO2024009503A1 - 姿勢推定プログラム、装置、及び方法 - Google Patents

姿勢推定プログラム、装置、及び方法 Download PDF

Info

Publication number
WO2024009503A1
WO2024009503A1 PCT/JP2022/027115 JP2022027115W WO2024009503A1 WO 2024009503 A1 WO2024009503 A1 WO 2024009503A1 JP 2022027115 W JP2022027115 W JP 2022027115W WO 2024009503 A1 WO2024009503 A1 WO 2024009503A1
Authority
WO
WIPO (PCT)
Prior art keywords
posture
frame
estimation
person
fitting process
Prior art date
Application number
PCT/JP2022/027115
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 富士通株式会社
Priority to PCT/JP2022/027115 priority Critical patent/WO2024009503A1/ja
Publication of WO2024009503A1 publication Critical patent/WO2024009503A1/ja

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures

Definitions

  • the disclosed technology relates to a posture estimation program, a posture estimation device, and a posture estimation method.
  • a technique for estimating a person's posture there is a technique for estimating skeletal information such as joint positions of a person from information on a plurality of points on the surface of the person obtained from a three-dimensional sensor, that is, from a three-dimensional point group.
  • this technology fits a 3D point cloud with a 3D geometric model representing the skeletal information of the human body (hereinafter referred to as the "human body model"), that is, fits the 3D point cloud with the human body model.
  • the human body model 3D geometric model representing the skeletal information of the human body
  • an information processing device acquires three-dimensional point cloud data based on the measurement results of a 3D sensor that three-dimensionally measures a subject.
  • This information processing device evaluates the influence of noise on measurement results for each part based on the results of applying a cylindrical model in which each part of the human body is represented by multiple cylinders to three-dimensional point cloud data.
  • this information processing device excludes the point cloud around the cylindrical model corresponding to the part where the influence of noise is determined to be more than a predetermined value from the 3D point cloud data, and Then, the process of refitting the cylindrical model is repeated. Then, this information processing device generates a skeleton recognition result of the subject based on the result of fitting the cylindrical model to the three-dimensional point cloud data when the influence of noise for each part is less than a predetermined value, Output the skeleton recognition results.
  • Conventional posture estimation technology uses the posture estimated in the previous frame as an initial value when fitting a human body model to a 3D point group for each frame obtained by a 3D sensor. Therefore, if the accuracy of pose estimation deteriorates due to point cloud noise that remains in a 3D sensor, the presence of objects other than the person to be estimated, etc., the accuracy of pose estimation in subsequent frames will deteriorate. There is a problem of continuing.
  • the person to be estimated is a gymnast, a posture with hands and feet close together, a twisted posture, etc. often occur. If any frame includes such an orientation, erroneous estimation may occur in which the orientation is estimated upside down or horizontally reversed in subsequent frames.
  • the disclosed technology aims to improve estimation accuracy when estimating a person's posture by fitting a human body model to a three-dimensional point group.
  • the disclosed technique provides a first method using a three-dimensional model representing skeletal information of a person for a three-dimensional point group included in each of the time-series frames, each frame including a three-dimensional point group of the person.
  • the posture of the person is estimated for each frame based on the fitting process.
  • the disclosed technique stores information identifying a first frame in which it is detected that the estimated orientation is the first orientation in the storage unit.
  • the disclosed technique provides, when it is detected that the posture of the person estimated from the second frame after the first frame is the second posture, from the information stored in the storage unit, Each target frame from the first frame to the second frame is identified.
  • the disclosed technology then provides an estimation result that is corrected based on a second fitting process using the three-dimensional model for a three-dimensional point group included in the target frame, as a result of estimating the posture of the person for each target frame. Use the results.
  • One aspect is that the estimation accuracy when estimating a person's posture can be improved by fitting a human body model to a three-dimensional point group.
  • FIG. 3 is a diagram showing an example of a three-dimensional point group of a person.
  • FIG. 2 is a diagram showing an example of a human body model.
  • FIG. 3 is a diagram for explaining fitting of a human body model to a three-dimensional point group.
  • FIG. 3 is a diagram for explaining an error in posture estimation.
  • FIG. 3 is a diagram for explaining an error in posture estimation.
  • FIG. 7 is a diagram for explaining a specific example of an error in posture estimation.
  • FIG. 2 is a functional block diagram of a posture estimation device. It is a figure showing an example of estimation result DB.
  • FIG. 6 is a diagram for explaining determination of a vertically inverted posture.
  • FIG. 4 is a diagram for explaining determination of a spread leg posture.
  • FIG. 1 is a diagram showing an example of a three-dimensional point group of a person.
  • FIG. 2 is a diagram showing an example of a human body model.
  • FIG. 3 is a diagram for explaining fitting of
  • FIG. 3 is a diagram for explaining determination of point group shift.
  • FIG. 3 is a diagram for explaining determination of point group shift.
  • FIG. 3 is a diagram for explaining determination of point group shift.
  • FIG. 6 is a diagram for explaining determination of a left-right reversal posture.
  • FIG. 6 is a diagram for explaining determination of a left-right reversal posture.
  • FIG. 6 is a diagram for explaining determination of a reversely warped posture.
  • FIG. 6 is a diagram for explaining determination of a C-type posture.
  • FIG. 3 is a diagram for explaining updating of estimation results.
  • FIG. 1 is a block diagram showing a schematic configuration of a computer functioning as a posture estimation device. 3 is a flowchart illustrating an example of posture estimation processing.
  • FIG. 6 is a diagram showing a case where a first fitting process and a second fitting process are executed simultaneously.
  • FIG. 6 is a diagram showing a case where a first fitting process and a second fitting process are executed in
  • FIG. 1 shows an example of a three-dimensional point group 30 of a person.
  • the three-dimensional point group 30 is a set of three-dimensional coordinates of each of a plurality of points on the surface of the object measured by the three-dimensional sensor.
  • the three-dimensional point group 30 is measured by a three-dimensional sensor at a predetermined frame rate. That is, time-series frames in which each frame includes a three-dimensional point group 30 of a person are acquired by the three-dimensional sensor.
  • the human body model 32 in this embodiment is a three-dimensional geometric model representing skeletal information of a person.
  • the human body model 32 is a collection of part models that represent each part of the human body in a simple geometric shape.
  • the human body model 32 also includes information on parameters such as the axial length, the radius of the bottom surface, and the major axis and minor axis of the bottom surface, depending on the shape of each part model (for example, a cylinder, an elliptical cylinder, etc.).
  • the human body model 32 also includes constraint information such as connection relationships between parts, rotation angles and rotation directions with respect to other connected parts.
  • the site model of site X will also be referred to as "X model.”
  • the part models of the human body model 32 include a head model, a neck model, an upper arm model, a lower arm model, a chest model, a waist model, a thigh model, a shin model, and a foot model.
  • the upper arm model, lower arm model, thigh model, shin model, and foot model are each composed of left and right part models.
  • the parts of the human body corresponding to the upper arm model and the lower arm model are collectively referred to as an "arm”
  • the parts of the human body corresponding to the thigh model, shin model, and foot model are collectively referred to as a "leg.”
  • Estimating the posture of a person using the 3D point group 30 and the human body model 32 involves fitting the human body model 32 so that the degree of conformity of each frame to the 3D point group 30 is the highest, as shown in FIG. This is done by Specifically, an objective function representing the degree of compatibility between the three-dimensional point group 30 and the human body model 32 is optimized, and the arrangement of each part model of the human body model 32 that fits the three-dimensional point group 30 is estimated. Then, based on the estimated arrangement of each part model, the position of the part corresponding to each part model is specified, thereby estimating the posture of the person.
  • the position of each part is specified, for example, as a predetermined position such as the center position of the bottom surface of each corresponding part model.
  • the position of a part includes the position of a joint such as a shoulder, a knee, a base of the thigh, a wrist, an ankle, etc., which are connection points between parts.
  • part model 32A solid line
  • part model 32B broken line
  • a thigh model or a shin model may be fitted to the arm portion of the three-dimensional point group 30, and an upper arm model or a lower arm model may be fitted to the leg portion of the three-dimensional point group 30.
  • each part model does not have a front-back orientation feature, so even if the fitting is incorrect in a certain frame and the estimated posture is distorted, the frame It is sometimes difficult to determine errors in pose estimation.
  • the accuracy of pose estimation is improved by avoiding the continued deterioration of the accuracy of pose estimation due to the poor accuracy of the initial values in fitting, and by restoring the correct pose and executing pose estimation.
  • the posture estimation device according to this embodiment will be described in detail below.
  • the posture estimation device 10 functionally includes a first estimation section 12, a first detection section 14, a second estimation section 16, and a second detection section 18. Furthermore, an estimation result DB (Database) 20 is stored in a predetermined storage area of the posture estimation device 10.
  • the second estimation unit 16 and the second detection unit 18 are an example of the “second estimation unit” of the disclosed technology.
  • the first estimation unit 12 estimates the posture of the person for each frame based on a first fitting process using the human body model 32 for the three-dimensional point group 30 input to the posture estimation device 10.
  • the first fitting process is a process in which the human body model 32 is fitted using the first initial value so that the degree of fit to the three-dimensional point group 30 is the highest.
  • the first initial value is a value indicating the posture of the person, which is the estimation result for the frame before the frame to be processed in the time-series frames.
  • the fitting process the technology described in Patent Document 1 and the like may be applied, so a detailed explanation will be omitted.
  • the first estimation unit 12 stores the estimation result for each frame in the estimation result DB 20 in association with information that specifies the frame.
  • FIG. 8 shows an example of the estimation result DB 20.
  • the estimation result DB 20 stores a "frame number”, "estimation result”, “target frame flag”, and "estimation result candidate" for each frame.
  • the frame number is an example of information that identifies a frame. In this embodiment, a case will be described in which a frame number is used as information for identifying a frame, but other information such as frame time information may also be used.
  • the first estimation unit 12 stores the estimation result for each frame in the "estimation result” column.
  • the "target frame flag" and "estimation result candidate" in FIG. 8 will be described later.
  • the first detection unit 14 determines the first posture using characteristics of the human body structure and technique (movement) represented by time-series information of joint positions and angles of the person.
  • the first posture includes, for example, a vertically inverted posture in which the head of the person is located below the legs, an unnatural posture that meets predetermined conditions, and a rotation (twist) about the vertical direction of the person. This is a horizontally inverted posture that indicates that an accompanying movement has been or will be performed. A method of determining an example of these first postures will be described below.
  • the first detection unit 14 calculates the straight-line distance between the positions of the feet, shins, thighs, abdomen, chest, neck, and shoulders indicated by the estimation results stored in the estimation result DB 20 and the horizontal bar. Specifically, as shown in FIG. 9, the first detection unit 14 detects, for example, an iron bar vector whose starting point is a predetermined position such as an end point of the iron rod, and whose direction is along the axial direction of the iron rod, and each part from the starting point of the iron rod. Calculate the cross product vector with the vector to .
  • the first detection unit 14 calculates the magnitude of the calculated cross product vector, that is, the length of the perpendicular line, as the straight-line distance between each part and the iron bar. In addition, the first detection unit 14 may calculate the straight-line distance for a portion where left and right sides exist, such as the left shoulder and the right shoulder, using the average position of the positions of the left and right portions. Then, the first detection unit 14 determines that the person is in an inverted posture when the person is located below the horizontal bar and the part closest to the horizontal bar is the foot.
  • the first detection unit 14 detects that the parts are inverted vertically. It may be determined that the posture is as follows.
  • the pose may be estimated as being in the open position even though it is not in the open position, and in that case, the estimation accuracy in subsequent frames will deteriorate.
  • the split-legged posture is treated as the first posture, which is an unnatural posture.
  • the first detection unit 14 calculates a direction vector of the horizontal bar indicating the axial direction of the horizontal bar, a left and right vector of the pelvis, and a vector of both knees. For example, the first detection unit 14 calculates a vector connecting the positions of the bases of the left and right thighs indicated by the estimation result of the first estimation unit 12 as the left and right vectors of the pelvis. Further, the first detection unit 14 calculates a vector connecting the positions of the left and right knees indicated by the estimation result of the first estimation unit 12 as a both-knee vector. Then, the first detection unit 14 determines that the posture is a spread-legged posture when the following three conditions are simultaneously satisfied.
  • the shortest distance between the foot and the horizontal bar is smaller than the threshold.
  • the inner product of the left and right vectors of the pelvis and both knee vectors is greater than or equal to the threshold value3.
  • the inner product of the horizontal bar direction vector and both knee vectors is greater than or equal to the threshold.
  • Condition 1 above is that your feet are close to the horizontal bar
  • condition 2 is that your legs are spread apart
  • condition 3 is that your feet are in the axial direction of the horizontal bar. This is the condition for determining that the legs are spread along the .
  • an unnatural posture may be estimated due to the 3D point cloud 30 containing noise, so the posture estimated based on the 3D point cloud 30 containing noise is detected as a point cloud shift. It is something to do.
  • the first detection unit 14 compares the shortest distance to the human body model 32 with a threshold value for each point (black circle in FIG. 11) included in the three-dimensional point group 30, and Determine whether a point is far from or close to. Then, the first detection unit 14 calculates the ratio of distant points to the total number of points included in the three-dimensional point group 30, and determines whether the ratio is equal to or greater than a threshold value.
  • the first detection unit 14 calculates the direction vector e of the horizontal bar and the perpendicular vector b from the waist position to the horizontal bar.
  • the first detection unit 14 calculates a vector a, which is obtained by rotating a vector connecting the midpoints of both legs from the waist position so as to be parallel to the vector e around the waist position, and extending the vector by a threshold value.
  • the first detection unit 14 rotates the vector b around the waist position so that it is parallel to the direction of the cross product vector (e x b) of the vector e and the vector b, and extends the vector c by the threshold value. calculate. Further, as shown in FIG.
  • the first detection unit 14 has three sides in each direction of vectors a, b, and c, with the waist position as the center, and vectors a, -a, b, -b, A rectangular parallelepiped (dotted chain line in FIG. 13) that minimally covers c and -c is calculated.
  • the first detection unit 14 sets a vertical direction as a vector h, and generates a rectangular parallelepiped (in FIG. (dashed line) is calculated.
  • the first detection unit 14 determines whether each point (black circle in FIG. 13) included in the three-dimensional point group 30 is an internal point included in the calculated rectangular parallelepiped (broken line) or an external point. .
  • the purpose of determining whether a point is an internal point or an external point based on the rectangular parallelepiped (broken line) is to facilitate calculation processing, and the determination may be made based on the rectangular parallelepiped (dotted chain line).
  • the first detection unit 14 calculates the ratio of external points to the total number of points included in the three-dimensional point group 30, and determines whether the ratio is equal to or greater than a threshold value.
  • the first detection unit 14 determines that there is a point group shift when the above-mentioned ratio of distant points is equal to or higher than the threshold and the ratio of external points is equal to or higher than the threshold.
  • the first detection unit 14 calculates the orientation of the person based on the orientation estimated from each frame. For example, the first detection unit 14 may calculate the angle between a direction vector orthogonal to the axial direction of the waist model and a direction vector of the horizontal bar as the orientation of the person. Note that if there is no comparison object such as a horizontal bar, the direction of the person may be calculated based on the measurement direction of the three-dimensional sensor. Then, as shown in FIG. 14, the first detection unit 14 detects the difference between the orientation tn of the person in the current frame n and the orientation of the person in each frame up to a predetermined number (k) frames before. Calculate the rotation angle backwards.
  • k predetermined number
  • the first detection unit 14 detects that the rotation angle is monotonically increasing or decreasing, and that the rotation angle
  • the first detection unit 14 may determine the horizontally inverted posture when the arms are crossed. Specifically, as shown in FIG. 15, the first detection unit 14 calculates a vector s connecting the positions of both shoulders indicated by the estimation result of the first estimation unit 12, and a vector u connecting the tips of both hands. . Then, the first detection unit 14 determines that the arms are crossed when the signs of the components of the vector s and the vector u in the direction of the direction vector e of the horizontal bar are different.
  • the first detection unit 14 determines whether the estimated orientation of each frame is the first orientation, and when the first detection unit 14 detects the first frame determined to be the first orientation. , the frame is registered in the estimation result DB 20 as a target frame. For example, as shown in FIG. 8, the first detection unit 14 sets a flag ("1" in the example of FIG. 8) in the "target frame flag” column corresponding to the relevant frame number in the estimation result DB 20. The first detection unit 14 also sets a flag in the “target frame flag” column for each subsequent frame until a second detection unit 18 (described later) detects a frame in the second orientation.
  • the second estimating unit 16 performs, for each target frame flagged in the "target frame flag" column in the estimation result DB 20, based on a second fitting process using the human body model 32 for the three-dimensional point group 30. Estimate the pose of a person.
  • the second fitting process uses a second initial value different from the first initial value in the first fitting process to fit the human body model 32 so that the degree of fit to the three-dimensional point group 30 is highest. It is processing.
  • the second estimation unit 16 generates a second initial value by changing the first initial value.
  • changing the initial value also includes changing constraints such as rotation angles of joints in the human body model 32.
  • the second initial value is at least one of the following: a vertically or horizontally inverted orientation of the orientation indicated by the first initial value, a predetermined standard orientation, and an orientation obtained by changing the orientation indicated by the first initial value by a predetermined value. It may be a value indicating one attitude.
  • the second estimation unit 16 may obtain a plurality of estimation results of the person's posture for each target frame using each of the plurality of second initial values.
  • the second estimation unit 16 stores the estimation result for each target frame in the "estimation result candidate" column of the estimation result DB 20.
  • the example in FIG. 8 shows an example in which frames with frame numbers 12 to 20 are specified as target frames. Furthermore, the example in FIG. 8 shows an example in which the second estimation unit 16 uses two types of second initial values to obtain two types of estimation results.
  • the second detection unit 18 detects a second frame in which the orientation estimated by the first estimation unit 12 is a second orientation predetermined as accuracy degradation
  • the second detection unit 18 detects the target frame stored in the estimation result DB 20.
  • the estimation results for are corrected based on the second fitting process.
  • the second posture is a reverse posture in which the legs are bent toward the back side of the person by more than a threshold value with respect to the waist of the person, and the direction in which the arms of the person are stretched toward the back side and the direction in which the legs are stretched toward the back side are the same.
  • the second detection unit 18 calculates a vector in the back direction, an abdominal vector, a thigh vector, and a shoulder vector. For example, the second detection unit 18 calculates a vector connecting the waist position and the chest position as an antinode vector. Further, the second detection unit 18 calculates the left and right vectors from the position of the base of the thigh to the position of the knee as left and right thigh vectors. Further, the second detection unit 18 calculates a vector connecting the positions of both shoulders as a shoulder vector. In addition, the second detection unit 18 calculates a vector in a direction perpendicular to the antinode vector from the front to the back of the person identified from the direction of the shoulder vector as a vector in the back direction.
  • the second detection unit 18 also detects the angle formed by the projected vector of the thigh vector and the belly vector projected onto a plane whose normal is the shoulder vector, and the thigh vector projected onto a plane whose normal is a vector in the back direction. Calculate two angles (total of four on the left and right) between the projection vector of and the shoulder vector. The second detection unit 18 compares the calculated angle with a threshold value, and determines that the posture is in a reverse curvature if the legs are bent in the back direction and the left and right legs are not spread forward or backward. do.
  • the second detection unit 18 calculates a vector in the back direction, a shoulder vector, a chest vector, an arm vector, and a leg vector. For example, the second detection unit 18 calculates a vector connecting the chest position and the neck position as the chest vector. Further, the second detection unit 18 calculates a vector in a direction perpendicular to the chest vector and from the front to the back of the person identified from the direction of the shoulder vector as a vector in the back direction. Note that the second detection unit 18 may calculate a vector in the back direction similar to that used when determining the above-mentioned reverse warpage posture.
  • the second detection unit 18 calculates the sum of left and right vectors connecting the shoulder position to the wrist position as an arm vector. Further, the second detection unit 18 calculates the sum of left and right vectors from the position of the base of the thigh to the position of the ankle as a leg vector.
  • the second detection unit 18 determines that the posture is C-shaped when the angle between the arm vector and the vector in the back direction is an acute angle, and the angle between the leg vector and the vector in the back direction is an acute angle. .
  • the second detection unit 18 determines whether the angle is an acute angle or not based on whether the angle is less than or equal to a threshold value.
  • the second detection unit 18 determines whether the posture estimated for each target frame is the second posture, as in each of the above examples. When the second detection unit 18 detects the second frame determined to be in the second posture, the second detection unit 18 instructs the first detection unit 14 to set the target frame flag for frames subsequent to the target frame. Instruct.
  • the second detection unit 18 also detects, for each target frame, the three-dimensional point group 30 among the plurality of estimation results obtained by using each of the first initial value and one or more second initial values.
  • the estimation result with the highest degree of fitness for the human body model 32 is selected, and the estimation result DB 20 is updated.
  • the “estimation result” that is, the estimation result using the first initial value
  • the “estimation result candidates” that is, the estimation results using the second initial value are "P12_2" and "P12_3”.
  • the fitness for each estimation result is higher in the order of P12_2, P12_3, and P12_1.
  • the second detection unit 18 updates the "estimation result" of the frame with frame number 12 to "P12_2", as shown in FIG. 18.
  • the second detection unit 18 updates the estimation result in the estimation result DB 20, or when the number of target frames exceeds a predetermined number without detecting the second frame by the second detection unit 18, the second detection unit 18 updates the estimation result DB 20. Clear the "Target Frame” column and the "Estimation Result Candidate" column.
  • the posture estimation device 10 may be realized, for example, by a computer 40 shown in FIG. 19.
  • the computer 40 includes a CPU (Central Processing Unit) 41, a memory 42 as a temporary storage area, and a nonvolatile storage device 43.
  • the computer 40 also includes an input/output device 44 such as an input device and a display device, and an R/W (Read/Write) device 45 that controls reading and writing of data to and from a storage medium 49 .
  • the computer 40 also includes a communication I/F (Interface) 46 connected to a network such as the Internet.
  • the CPU 41, memory 42, storage device 43, input/output device 44, R/W device 45, and communication I/F 46 are connected to each other via a bus 47.
  • the storage device 43 is, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), a flash memory, or the like.
  • a posture estimation program 50 for causing the computer 40 to function as the posture estimation device 10 is stored in the storage device 43 as a storage medium.
  • the posture estimation program 50 includes a first estimation process control instruction 52 , a first detection process control instruction 54 , a second estimation process control instruction 56 , and a second detection process control instruction 58 .
  • the storage device 43 has an information storage area 60 in which information forming the estimation result DB 20 is stored.
  • the CPU 41 reads the posture estimation program 50 from the storage device 43, expands it into the memory 42, and sequentially executes the control commands included in the posture estimation program 50.
  • the CPU 41 operates as the first estimation unit 12 shown in FIG. 7 by executing the first estimation process control instruction 52. Further, the CPU 41 operates as the first detection unit 14 shown in FIG. 7 by executing the first detection process control command 54. Further, the CPU 41 operates as the second estimation unit 16 shown in FIG. 7 by executing the second estimation process control instruction 56. Further, the CPU 41 operates as the second detection unit 18 shown in FIG. 7 by executing the second detection process control command 58. Further, the CPU 41 reads information from the information storage area 60 and develops the estimation result DB 20 in the memory 42 . As a result, the computer 40 that has executed the posture estimation program 50 functions as the posture estimation device 10. Note that the CPU 41 that executes the program is hardware.
  • the functions realized by the posture estimation program 50 may be realized by, for example, a semiconductor integrated circuit, more specifically, an ASIC (Application Specific Integrated Circuit), an FPGA (Field-Programmable Gate Array), or the like.
  • the posture estimation device 10 executes the posture estimation process shown in FIG. 20.
  • the posture estimation process is an example of the posture estimation method of the disclosed technology.
  • step S10 the first estimation unit 12 sets a variable i indicating the frame number to 1.
  • frame i the frame with frame number i
  • step S12 the first estimation unit 12 acquires the frame i, and performs a first fitting process on the three-dimensional point group 30 included in the frame i using the human body model 32 and the first initial value. Then, the pose of the person is estimated.
  • the first estimation unit 12 stores the posture estimation result in the "estimation result" column of the estimation result DB 20 in association with the frame number i.
  • step S14 the first detection unit 14 determines whether the posture estimated for frame i is a first posture predetermined as a posture that is likely to lead to deterioration in the accuracy of posture estimation. If it is the first attitude, the process moves to step S18, and if it is not the first attitude, the process moves to step S16. In step S16, the first estimation unit 12 increments i by 1 and returns to step S12. In subsequent step S12, the first estimation unit 12 executes the first fitting process for frame i, using the orientation indicated by the estimation result of frame i-1 as the first initial value.
  • step S18 the first detection unit 14 sets a flag indicating that frame i is the target frame in the "target frame flag” column corresponding to frame number i in the estimation result DB 20.
  • the estimation result DB 20 among the frame numbers flagged in the "target frame flag” column, the smallest frame number is "n".
  • step S20 the second estimating unit 16 generates a second estimator for the second fitting process based on the orientation obtained by vertically or horizontally inverting the orientation indicated by the currently set first initial value. Generate the initial value of .
  • step S22 the second estimation unit 16 increments i by 1.
  • step S24 the second estimation unit 16 determines whether i is less than or equal to n+N, that is, within a predetermined number of frames (N) after the frame in the first orientation was detected in the process of the most recent step S14. Determine whether or not. If i ⁇ n+N, the process moves to step S26, and if i>n+N, the process moves to step S32.
  • step S26 the first detection unit 14 sets a flag in the "target frame flag" column corresponding to frame number i in the estimation result DB 20, indicating that frame i is the target frame. Further, the first estimating unit 12 estimates the posture of the person by performing a first fitting process on the frame i using the first initial value, and stores the estimation result in the "estimation result” column of the estimation result DB 20.
  • the second estimation unit 16 executes a second fitting process using the second initial value for frame i to estimate the posture of the person, and stores the estimation result in the "Estimation Result Candidate" column of the estimation result DB 20. to be memorized.
  • step S28 the second detection unit 18 determines whether the posture estimated for frame i is a second posture predetermined as accuracy deterioration, or whether the human body model 32 is adapted to the three-dimensional point group 30. It is determined whether the degree is less than or equal to a threshold value. If the second posture or the degree of conformity is less than or equal to the threshold value, the process moves to step S30, and if neither of them is the case, the process returns to step S22.
  • step S30 the second detection unit 18 selects a human body model for the three-dimensional point group 30 from among the estimation results stored in the "estimation result" and "estimation result candidate" columns for each target frame in the estimation result DB 20. 32, the estimation result with the highest degree of fitness is selected. Then, the second detection unit 18 updates the "estimation result" column of the estimation result DB 20 with the selected estimation result for each target frame.
  • step S32 the second detection unit 18 clears the "target frame flag” column and the "estimation result candidate” column of the estimation result DB 20, and returns to step S14.
  • the posture estimation device performs first fitting using a human body model to a three-dimensional point group included in each of the time-series frames, each frame including a three-dimensional point group of a person. Based on the processing, the pose of the person is estimated for each frame. Further, the posture estimation device stores in the storage unit information specifying the first frame in which it is detected that the estimated posture is the first posture. Further, when it is detected that the posture of the person estimated from the second frame after the first frame is the second posture, the posture estimation device calculates the first posture from the information stored in the storage unit. Each target frame from frame to the second frame is identified.
  • the posture estimation device uses, as the estimation result of the person's posture for each target frame, the estimation result corrected based on the second fitting process using the human body model for the three-dimensional point group included in the target frame. Thereby, it is possible to improve estimation accuracy when estimating a person's posture by fitting a human body model to a three-dimensional point group.
  • the posture estimation device may use a first initial value in the first fitting process, and may use a second initial value different from the first initial value in the second fitting process. Thereby, it is possible to suppress deterioration in accuracy of posture estimation due to defective initial values.
  • the posture estimation device may set the first initial value to a value indicating the posture of the person indicated by the estimation result of the previous frame.
  • the posture estimation device sets the second initial value to a posture obtained by vertically or horizontally inverting the posture indicated by the first initial value, a predetermined standard posture, and a predetermined posture indicating the first initial value. It may be a value indicating at least one of the postures changed by the value.
  • the posture estimation device may set the second posture to be a posture predetermined as a posture that causes accuracy deterioration, and may set the first posture to be a posture predetermined as a posture that may lead to accuracy deterioration. Thereby, it is possible to execute the second fitting process assuming accuracy deterioration that may occur.
  • the posture estimation device executes the first fitting process and the second fitting process in parallel for the target frame after the frame in the first posture is detected. That is, as shown in FIG. 21, when it is detected that there is a possibility that the accuracy of posture estimation will deteriorate, the posture estimation device performs the fitting process of pattern A and the fitting process of pattern B whose initial value has been changed to improve the accuracy. They are executed simultaneously until deterioration is detected. In this case, at the stage when accuracy deterioration is detected, it is only necessary to select and update one of the plural estimation result candidates that have already been obtained, so that the estimation result can be updated immediately.
  • the pose estimation device is not limited to the above example, and the pose estimation device executes the first fitting process on the target frame, and when the second frame is detected, executes the second fitting process on the target frame. You may also do so. That is, as shown in FIG. 22, the posture estimation device executes only the fitting process of pattern A even after the possibility of accuracy deterioration is detected. Then, when accuracy deterioration is detected, the posture estimation device may perform refitting processing on the target frame using pattern B, and select one of the estimation result candidates. In this case, the refitting process is executed when accuracy deterioration is detected, so the estimation results cannot be updated immediately, but if accuracy deterioration is not detected, unnecessary estimation processing does not need to be performed. Therefore, the amount of calculation can be reduced.
  • the target of posture estimation is not limited to this.
  • the disclosed technology is also effective when applied to other scoring events such as swimming diving, figure skating, snowboarding, and skateboarding. Further, the disclosed technology can also be applied to checking the form of baseball or golf. Further, the disclosed technology is applicable not only to sports but also to estimation of various human movements.
  • the posture estimation program is stored (installed) in the storage device in advance, but the present invention is not limited to this.
  • the program according to the disclosed technology may be provided in a form stored in a storage medium such as a CD-ROM, DVD-ROM, or USB memory.

Abstract

姿勢推定装置は、各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、フレーム毎に人物の姿勢を推定し、推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶し、第1のフレームより後の第2のフレームから推定された人物の姿勢が第2の姿勢であることが検知された場合、記憶部に記憶した情報から特定される第1のフレームから第2のフレームに至るまでの各対象フレームについての人物の姿勢の推定結果として、対象フレームに含まれる3次元点群に対する、3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる。

Description

姿勢推定プログラム、装置、及び方法
 開示の技術は、姿勢推定プログラム、姿勢推定装置、及び姿勢推定方法に関する。
 人物の姿勢推定技術として、3次元センサから得られる人物の表面上の複数の点の情報、すなわち3次元点群から、人物の関節位置等の骨格情報を推定する技術が存在する。具体的には、この技術は、3次元点群に、人体の骨格情報を表す3次元の幾何モデル(以下、「人体モデル」という)をフィッティング、すなわち、3次元点群と人体モデルとの適合度合いを表す目的関数を最適化し、人体モデルに基づいて関節位置等を推定する。目的関数の最適化は、3次元点群と人体モデルとの距離を最小化することで行われる。
 例えば、被写体を3次元計測する3Dセンサの計測結果を基にして、3次元点群データを取得する情報処理装置が提案されている。この情報処理装置は、3次元点群データに対して、人体の各部位を複数の円筒で表現した円筒モデルを当てはめた結果を基にして、計測結果におけるノイズの影響を、部位毎に評価する。また、この情報処理装置は、ノイズの影響が所定以上と判断された部位に対応する円筒モデル周辺の点群を3次元点群データから除外し、点群を除外した3次元点群データに対して、円筒モデルを再度当てはめる処理を繰り返し実行する。そして、この情報処理装置は、部位毎のノイズの影響が所定未満となった場合の3次元点群データに対して円筒モデルの当てはめた結果を基にして、被写体の骨格認識結果を生成し、骨格認識結果を出力する。
国際公開第2021/117165号
 従来の姿勢推定技術は、3次元センサで得られるフレーム毎の3次元点群に対して人体モデルをフィッティングさせる際に、前のフレームで推定された姿勢を初期値として利用している。そのため、3次元センサにおいて原理的に残ってしまう点群ノイズ、推定対象の人物以外のオブジェクトの存在等が原因で姿勢推定の精度が劣化した場合、それ以降のフレームにおける姿勢推定の精度が劣化し続けるという問題が存在する。
 例えば、推定対象の人物が体操競技の選手の場合、手と足とが近い姿勢、ひねり姿勢等が発生することが多い。いずれかのフレームにこのような姿勢が含まれる場合、以降のフレームにおいて、姿勢が上下又は左右反転して推定されるという、誤推定が生じる場合がある。
 一つの側面として、開示の技術は、3次元点群に対する人体モデルのフィッティングにより人物の姿勢を推定する際の推定精度を向上させることを目的とする。
 一つの態様として、開示の技術は、各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、前記フレーム毎に人物の姿勢を推定する。また、開示の技術は、推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶する。また、開示の技術は、前記第1のフレームより後の第2のフレームから推定された前記人物の姿勢が第2の姿勢であることが検知された場合、前記記憶部に記憶した情報から、前記第1のフレームから第2のフレームに至るまでの各対象フレームを特定する。そして、開示の技術は、各対象フレームについての人物の姿勢の推定結果として、前記対象フレームに含まれる3次元点群に対する、前記3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる。
 一つの側面として、3次元点群に対する人体モデルのフィッティングにより人物の姿勢を推定する際の推定精度を向上させることができる、という効果を有する。
人物の3次元点群の一例を示す図である。 人体モデルの一例を示す図である。 3次元点群に対する人体モデルのフィッティングを説明するための図である。 姿勢推定の誤りを説明するための図である。 姿勢推定の誤りを説明するための図である。 姿勢推定の誤りの具体例を説明するための図である。 姿勢推定装置の機能ブロック図である。 推定結果DBの一例を示す図である。 上下反転の姿勢の判定を説明するための図である。 開脚姿勢の判定を説明するための図である。 点群ずれの判定を説明するための図である。 点群ずれの判定を説明するための図である。 点群ずれの判定を説明するための図である。 左右反転の姿勢の判定を説明するための図である。 左右反転の姿勢の判定を説明するための図である。 逆反りの姿勢の判定を説明するための図である。 C型の姿勢の判定を説明するための図である。 推定結果の更新を説明するための図である。 姿勢推定装置として機能するコンピュータの概略構成を示すブロック図である。 姿勢推定処理の一例を示すフローチャートである。 第1のフィッティング処理と第2のフィッティング処理とを同時に実行する場合を示す図である。 第1のフィッティング処理と第2のフィッティング処理とを順に実行する場合を示す図である。
 以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。なお、本実施形態では、姿勢推定の対象の人物が体操の競技者である場合を例に説明する。
 まず、3次元点群と人体モデルとを用いた人物の姿勢推定の概要、及びその問題点について説明する。
 図1に、人物の3次元点群30の一例を示す。3次元点群30は、3次元センサにより計測される対象物表面の複数の点の各々の3次元座標の集合である。3次元点群30は、3次元センサにより所定のフレームレートで計測される。すなわち、各フレームが人物の3次元点群30を含む、時系列のフレームが3次元センサにより取得される。
 図2に示すように、本実施形態における人体モデル32は、人物の骨格情報を表す3次元の幾何モデルである。例えば、人体モデル32は、人体の各部位を簡易な幾何形状で表した部位モデルの集合である。また、人体モデル32は、各部位モデルの形状(例えば、円柱、楕円柱等)に応じた軸方向の長さ、底面の半径、底面の長径及び短径等のパラメータの情報を含む。また、人体モデル32は、各部位の接続関係、接続される他の部位に対する回転角度、回転の向き等の制約情報も含む。以下、部位Xの部位モデルを「Xモデル」ともいう。なお、本実施形態では、人体モデル32の部位モデルとして、頭モデル、首モデル、上腕モデル、下腕モデル、胸モデル、腰モデル、腿モデル、脛モデル、及び足モデルが含まれるものとする。また、上腕モデル、下腕モデル、腿モデル、脛モデル、及び足モデルについては、左右それぞれの部位モデルで構成されるものとする。また、本実施形態では、上腕モデル及び下腕モデルに対応する人体の部位をまとめて「腕」、腿モデル、脛モデル、及び足モデルに対応する人体の部位をまとめて「脚」ともいう。
 3次元点群30と人体モデル32とを用いた人物の姿勢推定は、図3に示すように、各フレームの3次元点群30に対する適合度が最も高くなるように人体モデル32をフィッティングさせることにより行われる。具体的には、3次元点群30と人体モデル32との適合度合いを表す目的関数を最適化して、3次元点群30に適合する人体モデル32の各部位モデルの配置が推定される。そして、推定された各部位モデルの配置に基づいて、各部位モデルに対応する部位の位置を特定することで、人物の姿勢が推定される。各部位の位置は、例えば、対応する各部位モデルの底面の中心位置等の所定位置として特定される。また、部位の位置には、部位同士の接続点である肩、膝、腿の付け根、手首、足首等の関節の位置も含まれる。
 上記のような姿勢推定を行う場合、各フレームにおいて、前のフレームで推定された姿勢が初期値として利用される。そのため、初期値の精度不良による姿勢推定の精度劣化が生じる場合がある。また、あるフレームでの姿勢推定の精度が劣化した場合、それ以降のフレームにおける姿勢推定の精度が劣化し続ける。図4を参照してより具体的に説明する。なお、図4において、人体モデル32の部位モデル32A(実線)と部位モデル32B(破線)とは、対応する人体の部位が異なることを表している。
 図4に示すように、同じ3次元点群30に対する人体モデル32のフィッティングにおいて、誤った初期値(1)が与えられた場合と、正しい初期値(2)が与えられた場合とについて説明する。この場合、図5に示すように、目的関数の最適化において、正しい初期値(2)からスタートして目的関数を最適化する場合、正しい推定結果(2)が得られる可能性が高い。一方、誤った初期値(1)からスタートして目的関数を最適化する場合、初期値の違いによって収束位置が変わってしまい、誤った推定結果(1)が得られてしまう可能性が高まる。図4の例では、正しい初期値(2)に対する推定結果(2)と、誤った初期値(1)に対する推定結果(1)とでは、部位モデル32Aと部位モデル32Bとの配置が反転している。これは、人物の姿勢が上下又は左右に反転して推定されることを表す。また、いったん推定結果に誤りが生じると、その姿勢を初期値として次のフレームの姿勢が推定されるため、姿勢推定の精度が劣化し続ける。
 特に、推定対象の人物が体操の競技者の場合、腕と脚とが近い姿勢が取られる場合も多い。そのため、3次元点群30の腕の部分に腿モデルや脛モデルがフィッティングし、3次元点群30の脚の部分に上腕モデルや下腕モデルがフィッティングする場合がある。図2に示すような幾何形状の人体モデル32は、各部位モデルが前後の向きの特徴を持たないため、あるフレームでフィッティングを誤り、推定された姿勢に崩れが生じているとしても、そのフレームで姿勢推定の誤りを判断することが難しい場合がある。
 例えば、図6に示すように、競技種目が鉄棒の場合、鉄棒に対して足及び手首が共に近い姿勢が取られる場合があり、フィッティングにより、上記のように腕と脚とが逆に推定されてしまう場合がある。ただし、特に体操競技ではアクロバティックな姿勢が取られることが多く、この段階では、誤った姿勢か否かを見分けることは困難である。そのため、その誤った姿勢を次フレームの初期値として処理が継続されてしまう。そして、以降のフレームにおいても腕と脚とが逆に推定され、所定フレーム後には、上下が反転した逆さまの姿勢が推定され、この時点で姿勢推定が誤っていると判断される。
 本実施形態では、このような、フィッティングでの初期値の精度不良による、姿勢推定の精度劣化の継続を回避し、正しい姿勢へ復元して姿勢推定を実行することにより、姿勢推定の精度を向上させる。以下、本実施形態に係る姿勢推定装置について詳述する。
 図7に示すように、姿勢推定装置10は、機能的には、第1推定部12と、第1検知部14と、第2推定部16と、第2検知部18とを含む。また、姿勢推定装置10の所定の記憶領域には、推定結果DB(Database)20が記憶される。第2推定部16及び第2検知部18は、開示の技術の「第2推定部」の一例である。
 第1推定部12は、姿勢推定装置10に入力される3次元点群30に対する人体モデル32を用いた第1のフィッティング処理に基づいて、フレーム毎に人物の姿勢を推定する。第1のフィッティング処理は、第1の初期値を用いて、3次元点群30に対する適合度が最も高くなるように人体モデル32をフィッティングさせる処理である。第1の初期値は、時系列のフレームにおいて、処理対象のフレームの前フレームについての推定結果である人物の姿勢を示す値である。フィッティング処理については、特許文献1等に記載の技術を適用してよいため、詳細な説明を省略する。
 第1推定部12は、フレーム毎の推定結果を、そのフレームを特定する情報と対応付けて、推定結果DB20に記憶する。図8に、推定結果DB20の一例を示す。図8の例では、推定結果DB20には、フレーム毎に、「フレーム番号」、「推定結果」、「対象フレームフラグ」、及び「推定結果候補」が記憶されている。フレーム番号は、フレームを特定する情報の一例である。本実施形態では、フレームを特定する情報として、フレーム番号を用いる場合について説明するが、フレームの時間情報等、他の情報を用いてもよい。第1推定部12は、フレーム毎の推定結果を、「推定結果」欄に記憶する。図8における「対象フレームフラグ」及び「推定結果候補」については後述する。
 第1検知部14は、第1推定部12により推定された姿勢が、姿勢推定の精度劣化に至る可能性がある姿勢として予め定めた第1の姿勢である第1のフレームを検知した場合、第1のフレームを特定する情報を推定結果DB20に記憶する。第1検知部14は、人物の関節位置及び角度の時系列情報等が表す人体構造や技(運動)の特徴を用いて、第1の姿勢を判定する。第1の姿勢は、例えば、人物の頭部が脚部より下に位置する上下反転の姿勢、予め定めた条件に該当する不自然な姿勢、人物の上下方向を軸とした回転(ひねり)を伴う運動が行われた又は行われることを表す左右反転の姿勢等である。以下、これらの第1の姿勢の一例についての判定方法を説明する。
 まず、上下反転の姿勢の判定方法について説明する。第1検知部14は、推定結果DB20に記憶された推定結果が示す足、脛、腿、腹、胸、首、及び肩の各部位の位置と鉄棒との直線距離を算出する。具体的には、図9に示すように、第1検知部14は、例えば、鉄棒の端点等の所定位置を起点とし、方向が鉄棒の軸方向に沿う鉄棒ベクトルと、鉄棒の起点から各部位へのベクトルとの外積ベクトルを算出する。第1検知部14は、算出した外積ベクトルの大きさ、すなわち垂線の長さを、各部位と鉄棒との直線距離として算出する。また、第1検知部14は、左肩及び右肩のように左右が存在する部位については、左右の部位の位置の平均位置を用いて直線距離を算出してよい。そして、第1検知部14は、人物が鉄棒より下に位置し、かつ鉄棒に最も近い部位が足である場合に、上下反転の姿勢であると判定する。
 また、第1検知部14は、各部位と鉄棒との直線距離を大きい順に並べた場合に、足、脛、腿、腹、胸、首、及び肩の順番で並んでいない場合に、上下反転の姿勢であると判定してもよい。
 次に、不自然な姿勢の一例として、開脚姿勢の判定方法について説明する。3次元点群30にノイズ等が含まれることにより、開脚姿勢ではないにもかかわらず開脚姿勢のように推定される場合があり、その場合、後続のフレームでの推定精度が劣化するため、開脚姿勢を第1の姿勢である不自然な姿勢として扱うものである。
 第1検知部14は、図10に示すように、鉄棒の軸方向を示す鉄棒の方向ベクトル、骨盤の左右ベクトル、及び両膝ベクトルを算出する。例えば、第1検知部14は、第1推定部12の推定結果が示す左右の腿の付け根の位置を結ぶベクトルを骨盤の左右ベクトルとして算出する。また、第1検知部14は、第1推定部12の推定結果が示す左右の膝の位置を結ぶベクトルを両膝ベクトルとして算出する。そして、第1検知部14は、以下の3つの条件が同時に成立する場合に、開脚姿勢であると判定する。
1.足と鉄棒との最短距離が閾値より小さい
2.骨盤の左右ベクトルと両膝ベクトルとの内積が閾値以上
3.鉄棒の方向ベクトルと両膝ベクトルとの内積が閾値以上
 上記1の条件は、足が鉄棒に近いこと、上記2の条件は、開脚していること、上記3の条件は、鉄棒の軸方向に沿って脚を開いていることを判定するための条件である。
 次に、不自然な姿勢の他の例として、点群ずれの判定方法について説明する。上述したように、3次元点群30がノイズを含むことにより不自然な姿勢が推定される場合があるため、ノイズを含む3次元点群30に基づいて推定された姿勢を点群ずれとして検知するものである。
 第1検知部14は、図11に示すように、3次元点群30に含まれる各点(図11中の黒丸)について、人体モデル32との最短距離と閾値とを比較し、人体モデル32から離れた点か近い点かを判定する。そして、第1検知部14は、3次元点群30に含まれる点の全体に対する、離れた点の割合を算出し、割合が閾値以上か否かを判定する。
 また、第1検知部14は、図12に示すように、鉄棒の方向ベクトルe、及び腰の位置から鉄棒への垂線ベクトルbを算出する。また、第1検知部14は、腰の位置から両足の中点を結んだベクトルを、腰の位置を中心にベクトルeと平行になるように回転して閾値分伸ばしたベクトルaを算出する。また、第1検知部14は、ベクトルbを腰の位置を中心にベクトルeとベクトルbとの外積ベクトル(e×b)の方向と平行になるように回転して閾値分伸ばしたベクトルcを算出する。また、第1検知部14は、図13に示すように、腰の位置を中心として、ベクトルa、b、及びcの各方向に3辺を持ち、ベクトルa、-a、b、-b、c、及び-cを最小に覆う直方体(図13中の一点鎖線)を算出する。また、第1検知部14は、鉛直方向をベクトルhとおき、生成した直方体(一点鎖線)を最小に覆う、ベクトルe、h、e×hの各方向を3辺に持つ直方体(図13中の破線)を算出する。
 そして、第1検知部14は、3次元点群30に含まれる各点(図13中の黒丸)について、算出した直方体(破線)内に含まれる内部の点か、外部の点かを判定する。なお、直方体(破線)に基づいて、内部の点か外部の点かを判定するのは、計算処理を容易にするためであり、直方体(一点鎖線)に基づいて判定してもよい。第1検知部14は、3次元点群30に含まれる点の全体に対する、外部点の割合を算出し、割合が閾値以上か否かを判定する。第1検知部14は、上述した離れた点の割合が閾値以上、かつ外部の点の割合が閾値以上の場合に、点群ずれであると判定する。
 次に、左右反転の姿勢の判定について説明する。第1検知部14は、各フレームから推定された姿勢に基づいて、人物の向きを算出する。例えば、第1検知部14は、腰モデルの軸方向に直交する方向ベクトルと、鉄棒の方向ベクトルとのなす角を人物の向きとして算出してよい。なお、鉄棒のような比較対象物が存在しない場合には、3次元センサの計測方向を基準として人物の向きを算出してもよい。そして、第1検知部14は、図14に示すように、現在フレームnの人物の向きtnと、所定数(k)前のフレームまでの各フレームでの人物の向きとの差で表される回転角度を遡って計算する。第1検知部14は、回転角度が単調増加又は単調減少するように変化しており、かつ現在フレームnとフレームn-kとの間の回転角度|tn-t(n-k)|が閾値以上の場合に、回転(ひねり)運動に伴う左右反転の姿勢として判定する。
 また、第1検知部14は、腕がクロスしている場合に、左右反転の姿勢を判定してもよい。具体的には、第1検知部14は、図15に示すように、第1推定部12の推定結果が示す両肩の位置を結んだベクトルs、及び両手先を結んだベクトルuを算出する。そして、第1検知部14は、ベクトルs及びベクトルuの各々の、鉄棒の方向ベクトルeの方向についての成分の符号が異なる場合に、腕がクロスしていると判定する。
 第1検知部14は、上記各例のように、各フレームについて推定された姿勢が第1の姿勢か否かを判定し、第1の姿勢であると判定した第1のフレームを検知した場合、そのフレームを対象フレームとして推定結果DB20に登録する。例えば、第1検知部14は、図8に示すように、推定結果DB20において、該当のフレーム番号に対応する「対象フレームフラグ」欄にフラグ(図8の例では「1」)を立てる。第1検知部14は、後述する第2検知部18により第2の姿勢のフレームが検知されるまで、後続のフレームの各々についても、「対象フレームフラグ」欄にフラグを立てる。
 第2推定部16は、推定結果DB20において、「対象フレームフラグ」欄にフラグが立っている各対象フレームについて、3次元点群30に対する人体モデル32を用いた第2のフィッティング処理に基づいて、人物の姿勢を推定する。第2のフィッティング処理は、第1のフィッティング処理における第1の初期値とは異なる第2の初期値を用いて、3次元点群30に対する適合度が最も高くなるように人体モデル32をフィッティングさせる処理である。
 第2推定部16は、第1の初期値を変更した第2の初期値を生成する。なお、初期値の変更には、人体モデル32における関節の回転角度等の制約条件の変更も含まれる。第2の初期値は、第1の初期値が示す姿勢を上下又は左右に反転させた姿勢、予め定めた標準の姿勢、及び第1の初期値が示す姿勢を所定値分変更した姿勢の少なくとも1つの姿勢を示す値としてよい。第2推定部16は、複数の第2の初期値の各々を用いて、各対象フレームについての人物の姿勢の推定結果を複数取得してもよい。
 第2推定部16は、対象フレーム毎の推定結果を、推定結果DB20の「推定結果候補」欄に記憶する。図8の例では、フレーム番号12~20のフレームが対象フレームとして特定された例を示している。また、図8の例では、第2推定部16において、2種類の第2の初期値を用いて、2種類の推定結果を得ている例を示している。
 第2検知部18は、第1推定部12により推定された姿勢が、精度劣化として予め定めた第2の姿勢である第2のフレームを検知した場合、推定結果DB20に記憶されている対象フレームについての推定結果を第2のフィッティング処理に基づいて修正する。第2の姿勢は、人物の腰部に対して脚部が背面側へ閾値以上屈折した逆反りの姿勢、人物の腕部の背面側への延伸方向と脚部の背面側への延伸方向との平行度が閾値以上となるC型の姿勢、人体モデル32との適合度が閾値以下となる姿勢等である。以下、これらの第2の姿勢の一例についての判定方法を説明する。
 まず、逆反りの姿勢の判定方法について説明する。第2検知部18は、図16に示すように、背面方向のベクトル、腹ベクトル、腿ベクトル、及び肩ベクトルを算出する。例えば、第2検知部18は、腰の位置と胸の位置とを結ぶベクトルを腹ベクトルとして算出する。また、第2検知部18は、腿の付け根の位置から膝の位置までの左右のベクトルを左右の腿ベクトルとして算出する。また、第2検知部18は、両肩の位置を結んだベクトルを肩ベクトルとして算出する。また、第2検知部18は、腹ベクトルに直交する方向であって、肩ベクトルの向きから特定される人物の前面から背面に向かう方向のベクトルを背面方向のベクトルとして算出する。
 また、第2検知部18は、肩ベクトルを法線とする平面上に射影した腿ベクトルの射影ベクトルと腹ベクトルとのなす角、及び、背面方向のベクトルを法線とする平面に射影した腿ベクトルの射影ベクトルと肩ベクトルとのなす角の2つ(左右で計4つ)を算出する。第2検知部18は、算出した角度と閾値とを比較し、脚が背面方向に屈折しており、かつ左右の脚が前後に開脚していない場合に、逆反りの姿勢であると判定する。
 次に、C型の姿勢の判定について説明する。第2検知部18は、図17に示すように、背面方向のベクトル、肩ベクトル、胸ベクトル、腕ベクトル、及び脚ベクトルを算出する。例えば、第2検知部18は、胸の位置と首の位置とを結ぶベクトルを胸ベクトルとして算出する。また、第2検知部18は、胸ベクトルに直交する方向であって、肩ベクトルの向きから特定される人物の前面から背面に向かう方向のベクトルを背面方向のベクトルとして算出する。なお、第2検知部18は、上記の逆反りの姿勢の判定時と同様の背面方向のベクトルを算出してもよい。また、第2検知部18は、肩の位置から手首の位置までを結んだ左右ベクトルの和を腕ベクトルとして算出する。また、第2検知部18は、腿の付け根の位置から足首の位置までの左右ベクトルの和を脚ベクトルとして算出する。
 そして、第2検知部18は、腕ベクトルと背面方向のベクトルとのなす角が鋭角、かつ脚ベクトルと背面方向のベクトルとのなす角が鋭角の場合に、C型の姿勢であると判定する。第2検知部18は、鋭角か否かを、なす角が閾値以下か否かにより判定する。
 第2検知部18は、上記各例のように、各対象フレームについて推定された姿勢が第2の姿勢か否かを判定する。そして、第2検知部18は、第2の姿勢であると判定した第2のフレームを検知した場合、その対象フレーム以降のフレームについて、対象フレームのフラグを立てないように第1検知部14に指示する。
 また、第2検知部18は、各対象フレームについて、第1の初期値及び1又は複数の第2の初期値の各々を用いた場合の複数の推定結果の中で、3次元点群30に対する人体モデル32の適合度が最も高い推定結果を選択し、推定結果DB20を更新する。例えば、図18に示すように、フレーム番号12の対象フレームについて、「推定結果」、すなわち第1の初期値を用いた推定結果が「P12_1」であったとする。また、「推定結果候補」、すなわち第2の初期値を用いた推定結果が「P12_2」及び「P12_3」であったとする。さらに、各推定結果についての適合度がP12_2、P12_3、P12_1の順で高いとする。この場合、第2検知部18は、図18に示すように、フレーム番号12のフレームの「推定結果」を「P12_2」に更新する。
 第2検知部18は、推定結果DB20の推定結果を更新した場合、又は、第2検知部18による第2のフレームが検知されないまま対象フレーム数が所定数を超えた場合には、推定結果DB20の「対象フレーム」欄及び「推定結果候補」欄をクリアする。
 姿勢推定装置10は、例えば図19に示すコンピュータ40で実現されてよい。コンピュータ40は、CPU(Central Processing Unit)41と、一時記憶領域としてのメモリ42と、不揮発性の記憶装置43とを備える。また、コンピュータ40は、入力装置、表示装置等の入出力装置44と、記憶媒体49に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)装置45とを備える。また、コンピュータ40は、インターネット等のネットワークに接続される通信I/F(Interface)46を備える。CPU41、メモリ42、記憶装置43、入出力装置44、R/W装置45、及び通信I/F46は、バス47を介して互いに接続される。
 記憶装置43は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等である。記憶媒体としての記憶装置43には、コンピュータ40を、姿勢推定装置10として機能させるための姿勢推定プログラム50が記憶される。姿勢推定プログラム50は、第1推定プロセス制御命令52と、第1検知プロセス制御命令54と、第2推定プロセス制御命令56と、第2検知プロセス制御命令58とを有する。また、記憶装置43は、推定結果DB20を構成する情報が記憶される情報記憶領域60を有する。
 CPU41は、姿勢推定プログラム50を記憶装置43から読み出してメモリ42に展開し、姿勢推定プログラム50が有する制御命令を順次実行する。CPU41は、第1推定プロセス制御命令52を実行することで、図7に示す第1推定部12として動作する。また、CPU41は、第1検知プロセス制御命令54を実行することで、図7に示す第1検知部14として動作する。また、CPU41は、第2推定プロセス制御命令56を実行することで、図7に示す第2推定部16として動作する。また、CPU41は、第2検知プロセス制御命令58を実行することで、図7に示す第2検知部18として動作する。また、CPU41は、情報記憶領域60から情報を読み出して、推定結果DB20をメモリ42に展開する。これにより、姿勢推定プログラム50を実行したコンピュータ40が、姿勢推定装置10として機能することになる。なお、プログラムを実行するCPU41はハードウェアである。
 なお、姿勢推定プログラム50により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等で実現されてもよい。
 次に、本実施形態に係る姿勢推定装置10の動作について説明する。姿勢推定装置10に、各フレームが人物の3次元点群30を含む、時系列のフレームの入力が開始されると、姿勢推定装置10において、図20に示す姿勢推定処理が実行される。なお、姿勢推定処理は、開示の技術の姿勢推定方法の一例である。
 ステップS10で、第1推定部12が、フレーム番号を示す変数iに1を設定する。以下、フレーム番号iのフレームを「フレームi」という。また、第1推定部12が、フィッティング処理の第1の初期値として、予め定めた姿勢を示す値を設定する。次に、ステップS12で、第1推定部12が、フレームiを取得し、フレームiに含まれる3次元点群30に対する人体モデル32及び第1の初期値を用いた第1のフィッティング処理に基づいて、人物の姿勢を推定する。第1推定部12は、姿勢の推定結果を、フレーム番号iと対応付けて、推定結果DB20の「推定結果」欄に記憶する。
 次に、ステップS14で、第1検知部14が、フレームiについて推定された姿勢が、姿勢推定の精度劣化に至る可能性がある姿勢として予め定めた第1の姿勢か否かを判定する。第1の姿勢の場合には、ステップS18へ移行し、第1の姿勢ではない場合には、ステップS16へ移行する。ステップS16では、第1推定部12が、iを1インクリメントしてステップS12に戻る。以降のステップS12では、第1推定部12は、フレームi-1の推定結果が示す姿勢を第1の初期値として、フレームiに対する第1のフィッティング処理を実行する。
 ステップS18では、第1検知部14が、推定結果DB20において、フレーム番号iに対応する「対象フレームフラグ」欄に、フレームiが対象フレームであることを示すフラグを立てる。推定結果DB20において、「対象フレームフラグ」欄にフラグが立っているフレーム番号のうち、最小のフレーム番号を「n」とする。
 次に、ステップS20で、第2推定部16が、現在設定されている第1の初期値が示す姿勢を上下又は左右に反転させた姿勢等に基づいて、第2のフィッティング処理用の第2の初期値を生成する。次に、ステップS22で、第2推定部16が、iを1インクリメントする。次に、ステップS24で、第2推定部16が、iがn+N以下か否か、すなわち、直近のステップS14の処理で第1の姿勢であるフレームが検知されてから所定フレーム数(N)以内か否かを判定する。i≦n+Nの場合には、ステップS26へ移行し、i>n+Nの場合には、ステップS32へ移行する。
 ステップS26では、第1検知部14が、推定結果DB20において、フレーム番号iに対応する「対象フレームフラグ」欄に、フレームiが対象フレームであることを示すフラグを立てる。また、第1推定部12が、フレームiについて、第1の初期値を用いた第1のフィッティング処理を実行して人物の姿勢を推定し、推定結果を推定結果DB20の「推定結果」欄に記憶する。また、第2推定部16が、フレームiについて、第2の初期値を用いた第2のフィッティング処理を実行して人物の姿勢を推定し、推定結果を推定結果DB20の「推定結果候補」欄に記憶する。
 次に、ステップS28で、第2検知部18が、フレームiについて推定された姿勢が、精度劣化として予め定めた第2の姿勢か否か、又は、3次元点群30に対する人体モデル32の適合度が閾値以下か否かを判定する。第2の姿勢又は適合度が閾値以下の場合には、ステップS30へ移行し、いずれでもない場合には、ステップS22に戻る。ステップS30では、第2検知部18が、推定結果DB20において、対象フレーム毎に、「推定結果」及び「推定結果候補」欄に記憶された推定結果の中で、3次元点群30に対する人体モデル32の適合度が最も高い推定結果を選択する。そして、第2検知部18が、対象フレーム毎に、選択した推定結果で推定結果DB20の「推定結果」欄を更新する。
 次に、ステップS32で、第2検知部18が、推定結果DB20の「対象フレームフラグ」欄及び「推定結果候補」欄をクリアし、ステップS14に戻る。
 以上説明したように、本実施形態に係る姿勢推定装置は、各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する人体モデルを用いた第1のフィッティング処理に基づいて、フレーム毎に人物の姿勢を推定する。また、姿勢推定装置は、推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶する。また、姿勢推定装置は、第1のフレームより後の第2のフレームから推定された人物の姿勢が第2の姿勢であることが検知された場合、記憶部に記憶した情報から、第1のフレームから第2のフレームに至るまでの各対象フレームを特定する。そして、姿勢推定装置は、各対象フレームについての人物の姿勢の推定結果として、対象フレームに含まれる3次元点群に対する人体モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる。これにより、3次元点群に対する人体モデルのフィッティングにより人物の姿勢を推定する際の推定精度を向上させることができる。
 また、姿勢推定装置は、第1のフィッティング処理では、第1の初期値を用い、第2のフィッティング処理では、第1の初期値とは異なる第2の初期値を用いてもよい。これにより、初期値不良による姿勢推定の精度劣化を抑制することができる。
 また、姿勢推定装置は、第1の初期値を、前フレームの推定結果が示す人物の姿勢を示す値としてもよい。また、姿勢推定装置は、第2の初期値を、第1の初期値が示す姿勢を上下又は左右に反転させた姿勢、予め定めた標準の姿勢、及び第1の初期値が示す姿勢を所定値分変更した姿勢の少なくとも1つの姿勢を示す値としてもよい。これにより、姿勢推定に誤りが生じ易い姿勢の場合でも、他の初期値を用いた推定結果の候補により推定結果を修正することができるため、姿勢推定の精度を向上させることができる。また、第2の初期値を複数用いた場合には、その候補のバリエーションが増えるため、より適切な候補で推定結果を修正することができる。
 また、姿勢推定装置は、第2の姿勢を、精度劣化として予め定めた姿勢とし、第1の姿勢を、精度劣化に至る可能性がある姿勢として予め定めた姿勢としてよい。これにより、発生する可能性がある精度劣化を想定した第2のフィッティング処理を実行することができる。
 なお、上記実施形態に係る姿勢推定装置は、第1の姿勢であるフレームが検知された後の対象フレームについて、第1のフィッティング処理と第2のフィッティング処理とを並列に実行している。すなわち、図21に示すように、姿勢推定装置は、姿勢推定の精度劣化に至る可能性が検知されると、パターンAのフィッティング処理と、初期値を変更したパターンBのフィッティング処理とを、精度劣化が検知されるまで同時に実行している。この場合、精度劣化が検知された段階で、既に取得されている複数の推定結果の候補からいずれかを選択して更新すればよいため、即時に推定結果を更新することができる。
 ただし、上記の例に限定されず、姿勢推定装置は、対象フレームについて、第1のフィッティング処理を実行し、第2のフレームが検知された場合に、対象フレームについて、第2のフィッティング処理を実行するようにしてもよい。すなわち、図22に示すように、姿勢推定装置は、精度劣化に至る可能性が検知された後もパターンAのフィッティング処理のみを実行する。そして、姿勢推定装置は、精度劣化が検知された場合に、対象フレームについて、パターンBで再フィッティング処理を実行し、推定結果の候補からいずれかを選択するようにしてもよい。この場合、精度劣化が検知された段階で再フィッティング処理を実行するため、即時に推定結果を更新することはできないが、精度劣化が検知されない場合には、不要な推定処理を実行しなくてよいため、計算量を削減することができる。
 また、上記実施形態では、体操競技の選手の姿勢を推定する場合を例に説明したが、姿勢推定の対象はこれに限定されない。開示の技術は、水泳の飛び込み、フィギュアスケート、スノーボード、スケートボード等の他の採点競技に適用した場合にも有効である。また、開示の技術は、野球やゴルフのフォームのチェック等にも適用可能である。また、開示の技術は、スポーツに限らず、人物の様々な動作の推定等にも適用可能である。
 また、上記実施形態では、姿勢推定プログラムが記憶装置に予め記憶(インストール)されているが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。
10   姿勢推定装置
12   第1推定部
14   第1検知部
16   第2推定部
18   第2検知部
20   推定結果DB
30   3次元点群
32   人体モデル
32A、32B       部位モデル
40   コンピュータ
41   CPU
42   メモリ
43   記憶装置
44   入出力装置
45   R/W装置
46   通信I/F
47   バス
49   記憶媒体
50   姿勢推定プログラム
52   第1推定プロセス制御命令
54   第1検知プロセス制御命令
56   第2推定プロセス制御命令
58   第2検知プロセス制御命令
60   情報記憶領域

Claims (20)

  1.  各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、前記フレーム毎に人物の姿勢を推定し、
     推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶し、
     前記第1のフレームより後の第2のフレームから推定された前記人物の姿勢が第2の姿勢であることが検知された場合、前記記憶部に記憶した情報から特定される前記第1のフレームから第2のフレームに至るまでの各対象フレームについての人物の姿勢の推定結果として、前記対象フレームに含まれる3次元点群に対する、前記3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる、
     ことを含む処理をコンピュータに実行させるための姿勢推定プログラム。
  2.  前記第1のフィッティング処理は、第1の初期値を用いて、前記3次元点群に対する適合度が最も高くなるように前記3次元モデルをフィッティングさせる処理であり、
     前記第2のフィッティング処理は、前記第1の初期値とは異なる第2の初期値を用いて、前記3次元点群に対する適合度が最も高くなるように前記3次元モデルをフィッティングさせる処理である、
     請求項1に記載の姿勢推定プログラム。
  3.  前記第1の初期値は、前フレームの推定結果が示す人物の姿勢を示す値であり、
     前記第2の初期値は、前記第1の初期値が示す姿勢を上下又は左右に反転させた姿勢、予め定めた標準の姿勢、及び前記第1の初期値が示す姿勢を所定値分変更した姿勢の少なくとも1つの姿勢を示す値である、
     請求項2に記載の姿勢推定プログラム。
  4.  複数の前記第2の初期値の各々を用いて、前記対象フレームについての前記人物の姿勢の推定結果を複数取得し、前記第1の初期値及び複数の前記第2の初期値の各々を用いた場合の複数の推定結果の中で、前記3次元点群に対する前記3次元モデルの適合度が最も高い推定結果を、前記修正した推定結果として選択する請求項2又は請求項3に記載の姿勢推定プログラム。
  5.  前記第1のフレームより後のフレームについて、前記第1のフィッティング処理と前記第2のフィッティング処理とを並列に実行し、
     前記第2のフレームが検知された場合に、前記対象フレームについて、前記第1のフィッティング処理の推定結果及び前記第2のフィッティング処理の推定結果から、前記適合度が最も高い推定結果を選択する、
     請求項4に記載の姿勢推定プログラム。
  6.  前記第1のフレームより後のフレームについて、前記第1のフィッティング処理を実行し、
     前記第2のフレームが検知された場合に、前記対象フレームについて、前記第2のフィッティング処理を実行し、前記第1のフィッティング処理の推定結果及び前記第2のフィッティング処理の推定結果から、前記適合度が最も高い推定結果を選択する、
     請求項4に記載の姿勢推定プログラム。
  7.  前記第2の姿勢は、精度劣化として予め定めた姿勢であり、
     前記第1の姿勢は、前記精度劣化に至る可能性がある姿勢として予め定めた姿勢である、
     請求項1~請求項3のいずれか1項に記載の姿勢推定プログラム。
  8.  前記第1の姿勢は、人物の頭部が脚部より下に位置する上下反転の姿勢、人物の上下方向を軸とした回転を伴う運動が行われた又は行われることを表す左右反転の姿勢、又は、予め定めた条件に該当する不自然な姿勢である請求項7に記載の姿勢推定プログラム。
  9.  前記第2の姿勢は、人物の腰部に対して脚部が背面側へ閾値以上屈折した逆反りの姿勢、人物の腕部の背面側への延伸方向と脚部の背面側への延伸方向との平行度が閾値以上となるC型の姿勢、又は、前記3次元モデルとの適合度が閾値以下となる姿勢である請求項7に記載の姿勢推定プログラム。
  10.  各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、前記フレーム毎に人物の姿勢を推定する第1推定部と、
     推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶する第1検知部と、
     前記第1のフレームより後の第2のフレームから推定された前記人物の姿勢が第2の姿勢であることが検知された場合、前記記憶部に記憶した情報から特定される前記第1のフレームから第2のフレームに至るまでの各対象フレームについての人物の姿勢の推定結果として、前記対象フレームに含まれる3次元点群に対する、前記3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる第2推定部と、
     を含む姿勢推定装置。
  11.  前記第1のフィッティング処理は、第1の初期値を用いて、前記3次元点群に対する適合度が最も高くなるように前記3次元モデルをフィッティングさせる処理であり、
     前記第2のフィッティング処理は、前記第1の初期値とは異なる第2の初期値を用いて、前記3次元点群に対する適合度が最も高くなるように前記3次元モデルをフィッティングさせる処理である、
     請求項10に記載の姿勢推定装置。
  12.  前記第1の初期値は、前フレームの推定結果が示す人物の姿勢を示す値であり、
     前記第2の初期値は、前記第1の初期値が示す姿勢を上下又は左右に反転させた姿勢、予め定めた標準の姿勢、及び前記第1の初期値が示す姿勢を所定値分変更した姿勢の少なくとも1つの姿勢を示す値である、
     請求項11に記載の姿勢推定装置。
  13.  前記第2推定部は、複数の前記第2の初期値の各々を用いて、前記対象フレームについての前記人物の姿勢の推定結果を複数取得し、前記第1の初期値及び複数の前記第2の初期値の各々を用いた場合の複数の推定結果の中で、前記3次元点群に対する前記3次元モデルの適合度が最も高い推定結果を、前記修正した推定結果として選択する請求項11又は請求項12に記載の姿勢推定装置。
  14.  前記第1推定部及び前記第2推定部は、前記第1のフレームより後のフレームについて、前記第1のフィッティング処理と前記第2のフィッティング処理とを並列に実行し、
     前記第2推定部は、前記第2のフレームが検知された場合に、前記対象フレームについて、前記第1のフィッティング処理の推定結果及び前記第2のフィッティング処理の推定結果から、前記適合度が最も高い推定結果を選択する、
     請求項13に記載の姿勢推定装置。
  15.  前記第1推定部は、前記第1のフレームより後のフレームについて、前記第1のフィッティング処理を実行し、
     前記第2推定部は、前記第2のフレームが検知された場合に、前記対象フレームについて、前記第2のフィッティング処理を実行し、前記第1のフィッティング処理の推定結果及び前記第2のフィッティング処理の推定結果から、前記適合度が最も高い推定結果を選択する、
     請求項13に記載の姿勢推定装置。
  16.  前記第2の姿勢は、精度劣化として予め定めた姿勢であり、
     前記第1の姿勢は、前記精度劣化に至る可能性がある姿勢として予め定めた姿勢である、
     請求項10~請求項12のいずれか1項に記載の姿勢推定装置。
  17.  前記第1の姿勢は、人物の頭部が脚部より下に位置する上下反転の姿勢、人物の上下方向を軸とした回転を伴う運動が行われた又は行われることを表す左右反転の姿勢、又は、予め定めた条件に該当する不自然な姿勢である請求項16に記載の姿勢推定装置。
  18.  前記第2の姿勢は、人物の腰部に対して脚部が背面側へ閾値以上屈折した逆反りの姿勢、人物の腕部の背面側への延伸方向と脚部の背面側への延伸方向との平行度が閾値以上となるC型の姿勢、又は、前記3次元モデルとの適合度が閾値以下となる姿勢である請求項16に記載の姿勢推定装置。
  19.  各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、前記フレーム毎に人物の姿勢を推定し、
     推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶し、
     前記第1のフレームより後の第2のフレームから推定された前記人物の姿勢が第2の姿勢であることが検知された場合、前記記憶部に記憶した情報から特定される前記第1のフレームから第2のフレームに至るまでの各対象フレームについての人物の姿勢の推定結果として、前記対象フレームに含まれる3次元点群に対する、前記3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる、
     ことを含む処理をコンピュータが実行する姿勢推定方法。
  20.  各フレームが人物の3次元点群を含む時系列のフレームの各々に含まれる3次元点群に対する、人物の骨格情報を表す3次元モデルを用いた第1のフィッティング処理に基づいて、前記フレーム毎に人物の姿勢を推定し、
     推定された姿勢が第1の姿勢であることが検知された第1のフレームを特定する情報を記憶部に記憶し、
     前記第1のフレームより後の第2のフレームから推定された前記人物の姿勢が第2の姿勢であることが検知された場合、前記記憶部に記憶した情報から特定される前記第1のフレームから第2のフレームに至るまでの各対象フレームについての人物の姿勢の推定結果として、前記対象フレームに含まれる3次元点群に対する、前記3次元モデルを用いた第2のフィッティング処理に基づいて修正した推定結果を用いる、
     ことを含む処理をコンピュータに実行させるための姿勢推定プログラムを記憶した非一時的記憶媒体。
PCT/JP2022/027115 2022-07-08 2022-07-08 姿勢推定プログラム、装置、及び方法 WO2024009503A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/027115 WO2024009503A1 (ja) 2022-07-08 2022-07-08 姿勢推定プログラム、装置、及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/027115 WO2024009503A1 (ja) 2022-07-08 2022-07-08 姿勢推定プログラム、装置、及び方法

Publications (1)

Publication Number Publication Date
WO2024009503A1 true WO2024009503A1 (ja) 2024-01-11

Family

ID=89452916

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/027115 WO2024009503A1 (ja) 2022-07-08 2022-07-08 姿勢推定プログラム、装置、及び方法

Country Status (1)

Country Link
WO (1) WO2024009503A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014522058A (ja) * 2012-06-14 2014-08-28 ソフトキネティック ソフトウェア 三次元オブジェクトのモデリング、フィッティング、およびトラッキング
JP2015219868A (ja) * 2014-05-21 2015-12-07 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
WO2017187641A1 (ja) * 2016-04-28 2017-11-02 富士通株式会社 骨格推定装置、骨格推定方法および骨格推定プログラム
JP2019197278A (ja) * 2018-05-07 2019-11-14 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014522058A (ja) * 2012-06-14 2014-08-28 ソフトキネティック ソフトウェア 三次元オブジェクトのモデリング、フィッティング、およびトラッキング
JP2015219868A (ja) * 2014-05-21 2015-12-07 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
WO2017187641A1 (ja) * 2016-04-28 2017-11-02 富士通株式会社 骨格推定装置、骨格推定方法および骨格推定プログラム
JP2019197278A (ja) * 2018-05-07 2019-11-14 キヤノン株式会社 画像処理装置、画像処理装置の制御方法およびプログラム

Similar Documents

Publication Publication Date Title
JP7067561B2 (ja) 採点方法、採点プログラムおよび採点装置
US11176359B2 (en) Motion recognition device and motion recognition method
US8175326B2 (en) Automated scoring system for athletics
US9870622B1 (en) Systems and methods for analyzing a motion based on images
US8565476B2 (en) Visual target tracking
US9842405B2 (en) Visual target tracking
JP6943294B2 (ja) 技認識プログラム、技認識方法および技認識システム
US7404774B1 (en) Rule based body mechanics calculation
US20100197391A1 (en) Visual target tracking
US20220198834A1 (en) Skeleton recognition method, storage medium, and information processing device
US20100197392A1 (en) Visual target tracking
JP7427188B2 (ja) 3dポーズ取得方法及び装置
WO2021064963A1 (ja) 運動認識方法、運動認識プログラムおよび情報処理装置
JP6834590B2 (ja) 3次元データ取得装置及び方法
JP2019219989A (ja) 姿勢推定装置、姿勢推定方法、およびプログラム
WO2024009503A1 (ja) 姿勢推定プログラム、装置、及び方法
JP2019045967A (ja) 姿勢推定装置、方法、及びプログラム
US11222428B2 (en) Determining golf swing characteristics
WO2018207388A1 (ja) モーションキャプチャに関するプログラム、装置および方法
CN113158910A (zh) 一种人体骨架识别方法、装置、计算机设备及存储介质
US20220301352A1 (en) Motion recognition method, non-transitory computer-readable storage medium for storing motion recognition program, and information processing device
KR102636103B1 (ko) 동작 분석 방법 및 장치
Hiley et al. Determining the solution space for a coordinated whole body movement in a noisy environment: Application to the upstart in gymnastics
JPWO2022149190A5 (ja)
Jiang et al. Scale resilient, rotation invariant articulated object matching

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: 22950297

Country of ref document: EP

Kind code of ref document: A1