WO2023062757A1 - 情報処理プログラム、情報処理方法、および情報処理装置 - Google Patents

情報処理プログラム、情報処理方法、および情報処理装置 Download PDF

Info

Publication number
WO2023062757A1
WO2023062757A1 PCT/JP2021/037946 JP2021037946W WO2023062757A1 WO 2023062757 A1 WO2023062757 A1 WO 2023062757A1 JP 2021037946 W JP2021037946 W JP 2021037946W WO 2023062757 A1 WO2023062757 A1 WO 2023062757A1
Authority
WO
WIPO (PCT)
Prior art keywords
skeleton
data
smoothing
information processing
estimation
Prior art date
Application number
PCT/JP2021/037946
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 JP2023553829A priority Critical patent/JPWO2023062757A1/ja
Priority to PCT/JP2021/037946 priority patent/WO2023062757A1/ja
Publication of WO2023062757A1 publication Critical patent/WO2023062757A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis

Definitions

  • the present invention relates to an information processing program, an information processing method, and an information processing apparatus.
  • a skeleton tracking signal indicating the shape of the skeleton of the person being watched over, which is detected from a two-dimensional image that is a captured image of the person being watched over.
  • a technique for estimating a three-dimensional posture of a person by using a skeleton model is also a technique for estimating a three-dimensional posture of a person by using a skeleton model.
  • the present invention aims to improve the accuracy of skeleton estimation.
  • skeletal data representing the skeleton of the recognized object in time series based on sensor data of the object is acquired, and based on the acquired skeletal data, each part of the skeleton of the object is acquired.
  • an information processing program for calculating a feature amount representing a temporal change in movement of the body, and specifying a target part of the skeleton represented by the skeleton data to be smoothed based on the calculated feature amount.
  • FIG. 1 is an explanatory diagram of an example of an information processing method according to an embodiment.
  • FIG. 2 is an explanatory diagram showing an example of skeleton recognition processing.
  • FIG. 3 is an explanatory diagram showing a system configuration example of the information processing system 300.
  • FIG. 4 is a block diagram showing a hardware configuration example of the skeleton estimation device 301.
  • FIG. 5 is an explanatory diagram showing an example of joint points forming a skeleton.
  • FIG. 6 is an explanatory diagram showing an example of the data structure of skeleton data.
  • FIG. 7 is a block diagram showing a functional configuration example of the skeleton estimation device 301.
  • FIG. 8 is an explanatory diagram showing an example of the parts of the skeleton.
  • FIG. 9 is an explanatory diagram showing an example of the contents of the edge data table 900.
  • FIG. 10 is an explanatory diagram showing an example of the contents stored in the relative angle table 1000.
  • FIG. 11 is an explanatory diagram showing an example of the contents of the angular velocity table 1100.
  • FIG. 12 is an explanatory diagram showing an example of the contents stored in the angular acceleration table 1200.
  • FIG. 13 is an explanatory diagram (part 1) showing an example of a smoothing filter.
  • FIG. 14 is an explanatory diagram (part 2) showing an example of the smoothing filter.
  • FIG. 15 is a flowchart showing an example of a skeleton estimation processing procedure of the skeleton estimation device 301.
  • FIG. 16 is a flowchart illustrating an example of a specific processing procedure for edge data calculation processing.
  • FIG. 17 is a flowchart (part 1) illustrating an example of a specific processing procedure of feature amount calculation processing.
  • FIG. 18 is a flowchart (part 2) showing an example of a specific processing procedure of feature amount calculation processing.
  • FIG. 19 is a flowchart (part 3) showing an example of a specific processing procedure of feature amount calculation processing.
  • FIG. 20 is a flowchart (Part 1) showing an example of a specific processing procedure of the smoothing degree determination process.
  • FIG. 21 is a flowchart (part 2) showing an example of a specific processing procedure of the smoothing degree determination process.
  • FIG. 22 is an explanatory diagram showing an example of an estimation result of the skeleton of a performer (balance beam).
  • FIG. 23A is an explanatory diagram (Part 1) showing an example of the result of estimating the skeleton of the performer (the ring).
  • FIG. 23B is an explanatory diagram (part 2) showing an example of the result of estimating the skeleton of the performer (the ring).
  • FIG. 24 is an explanatory diagram showing the time change of the z-coordinate of the tip of the left foot.
  • FIG. 25 is an explanatory diagram showing a specific example of the technique recognition result.
  • FIG. 1 is an explanatory diagram of an example of an information processing method according to an embodiment.
  • an information processing apparatus 101 is a computer that specifies a target portion to be smoothed out of skeleton data representing the skeleton of an object.
  • the object is, for example, a person whose skeleton is to be estimated.
  • the target object may be an animal other than a human such as a gorilla or a monkey, or may be a robot.
  • Skeleton estimation is a technology that estimates the skeleton of an object by recognizing the skeleton based on sensor data about the object.
  • a skeleton is a skeleton that supports an object, and is a structure formed by, for example, a plurality of bones connected by joints.
  • a joint is a movable joint that connects bone to bone.
  • the need for skeletal estimation is increasing, for example, in fields such as sports, healthcare, and entertainment.
  • skeletal estimation technology techniques can be recognized based on the results of skeletal estimation, and the performance can be scored.
  • FIG. 2 is an explanatory diagram showing an example of skeleton recognition processing.
  • skeleton recognition processing 200 includes human detection processing 201 , 2Dpose estimation processing 202 and 3Dpose estimation processing 203 .
  • Human detection processing 201 detects a human area from a plurality of images 210 .
  • a plurality of images 210 are images (multi-viewpoint images) obtained by photographing a person (object) from multiple viewpoints.
  • the 2D pose estimation process 202 identifies joint positions from the human area detected by the human detection process 201 .
  • the 2D pose estimation process 202 generates a 2D heatmap 220 .
  • the 2D heat map 220 represents, for example, the probability that the location is a joint for each pixel on each image of the plurality of images 210 .
  • the 3D pose estimation processing 203 integrates the 2D heat map 220 and the camera placement information 230 to identify the positions (coordinates) of the human joints in the three-dimensional space.
  • the camera placement information 230 indicates the placement position of each camera that captured the multiple images 210 .
  • Skeletal data 240 is generated in the 3D pose estimation process 203 .
  • the skeleton data 240 is information representing a human skeleton (skeletal shape), and indicates the positions of joints forming the skeleton in a three-dimensional space.
  • skeletal recognition processing 200 for example, time-series images of a person are processed, and skeletal data 240 (time-series data) representing temporal changes in the position of each joint in a three-dimensional space is generated. generated.
  • the skeleton data 240 is a set of frames indicating the position of each joint in the three-dimensional space at each point in time.
  • a filter called a Savitzky-Golay smoothing filter may be applied.
  • the Savitzky-Golay smoothing filter is an example of a filter used to smooth a signal with a wide frequency range of noisy but noise-free parts.
  • the Savitzky-Golay smoothing filter approximates time-series data with a polynomial within a window of a certain frame, and uses the polynomial output as a value after smoothing.
  • the Savitzky-Golay smoothing filter for example, the following non-patent document can be referred to.
  • Mendez, C. G. M. Mendez, S. H. , Solis, A. L. , Figueroa, H. V. R. , Hernandez, A. M. : The effects of using a noise filter and feature selection in action recognition: an empirical study. In: International Conference on Mechanicals, Electronics and Automotive Engineering (ICMEAE), pp. 43-48 (2017)
  • the characteristics of the smoothing filter be variable according to human motion. For example, if a person moves slowly, it may be desirable to smooth the noise over a long period of time to remove as much noise as possible. Taking the ring event in gymnastics as an example, if noise is introduced into the stationary technique, there is a possibility that the stationary determination related to the score cannot be performed normally.
  • the leg angle is important for hoop jumps and split leg jumps. For this reason, for example, if smoothing is not removed at the toe joints, the angle may appear smaller than before smoothing, which may be disadvantageous to the athlete at the time of scoring.
  • the allowable amount of shake may differ.
  • the cross suspension results in a smaller amount of shaking. For this reason, if the standard of cross suspension is met, it is not possible to properly determine whether the leg is horizontally supported or not, and it is not possible to perform technique recognition determination or the like normally.
  • the accuracy of skeletal estimation is improved by controlling the parts of the skeleton represented by the skeleton data to be smoothed according to the time change of the movement of each part of the skeleton of the object.
  • the information processing device 101 acquires skeleton data representing the skeleton of the object recognized based on the sensor data of the object in time series.
  • the skeleton data is, for example, time-series data that indicates temporal changes in the positions of joint points forming the skeleton of the object in a three-dimensional space.
  • a joint point indicates, for example, a joint, a head, or the like.
  • Sensor data includes, for example, an image of a target object.
  • Skeleton data is generated, for example, by skeleton recognition processing 200 as shown in FIG.
  • the sensor data may also include 3D motion sensor information.
  • a 3D motion sensor is attached to, for example, a joint, head, or the like of an object, and can detect the position of the attached portion.
  • skeleton data may be generated, for example, by the information processing apparatus 101, or may be generated by another computer different from the information processing apparatus 101.
  • a specific example of skeleton data will be described later with reference to FIG.
  • skeleton data 110 representing the skeleton of actor 102 is obtained.
  • Actor 102 is a gymnast.
  • Skeleton data 110 represents the skeleton of actor 102 recognized based on a plurality of images I of actor 102 .
  • the skeletal data 110 is a set of frames indicating the position of each joint point of the actor 102 at each point in time in the three-dimensional space.
  • a frame 110-1 shows the position of each joint point (white circle in FIG. 1) of the actor 102 at a certain point in time in the three-dimensional space.
  • a white circle 110-1-1 indicates the joint point of the tip of the right foot.
  • a white circle 110-1-2 indicates the joint point of the right pelvis.
  • a white circle 110-1-3 indicates the joint point of the tip of the left foot.
  • a white circle 110-1-4 indicates the joint point of the left pelvis.
  • the information processing apparatus 101 calculates a feature quantity representing the temporal change in movement of each part of the skeleton of the object.
  • the parts are, for example, the head, right arm, left arm, right leg, left leg, and the like. It is possible to arbitrarily set which part of the skeleton of the object to focus on.
  • the right leg of the performer 102 corresponds to the portion from the tip of the right leg to the right pelvis.
  • the left leg of the performer 102 corresponds to the portion from the tip of the left leg to the left pelvis.
  • a feature value is information for capturing the movement of each part included in the skeleton of an object.
  • the feature quantity includes, for example, the angular acceleration between parts based on the time change of the relative angle between parts of the skeleton of the object.
  • the inter-part angular acceleration represents the rate of change per unit time of the inter-part angular velocity, and can be said to be an index value capable of capturing the instantaneous movement of each part.
  • the feature quantity 120 representing the time change of the movement of the skeleton of the performer 102 is calculated.
  • the feature quantity 120 includes angular acceleration based on changes over time in relative angles between parts of the actor 102 .
  • the feature quantity 120 includes, for example, the angular acceleration based on the time change of the relative angle between the left leg 131 and the right leg 132.
  • the angular acceleration between the left leg 131 and the right leg 132 is an index value that can capture the instantaneous movement of each leg 131 and 132 .
  • the information processing apparatus 101 identifies a target part to be smoothed in the skeleton represented by the skeleton data based on the calculated feature amount. In other words, the information processing apparatus 101 identifies a portion of the skeleton represented by the skeleton data to be excluded from smoothing targets. Specifically, for example, the information processing apparatus 101 specifies, of the skeleton represented by the skeleton data, parts other than parts whose angular acceleration is greater than or equal to the first threshold as target parts to be smoothed. may
  • the first threshold can be set arbitrarily.
  • the first threshold is set to a value at which it can be determined that the movement of that part is instantaneous when the angular acceleration between the parts is greater than or equal to the first threshold. It can be said that a portion determined to have an instantaneous movement is a portion that should be unsmoothed so that, for example, a performance that should be recognized is not recognized and is not disadvantageous to the player. For this reason, the information processing apparatus 101 excludes the part whose angular acceleration is greater than or equal to the first threshold from the smoothing target.
  • the information processing apparatus 101 identifies, for example, a part of the skeleton represented by the skeleton data 110 that is different from the left leg 131 and the right leg 132 as the target part.
  • the accuracy of skeleton estimation is improved by controlling the parts of the skeleton represented by the skeleton data to be smoothed in accordance with the time change of the movement of each part of the skeleton of the object.
  • the information processing apparatus 101 excludes the left leg 131 and the right leg 132 from the skeleton of the performer 102 to be smoothed, and treats other parts as target parts. Specifically, for example, when the information processing apparatus 101 performs smoothing processing on the skeleton data 110, the information processing apparatus 101 smoothes the left leg 131 and the right leg 132 for a certain frame period before and after the frame 110-1. Exclude from the target.
  • System configuration example of information processing system 300 Next, a system configuration example of an information processing system 300 including the information processing apparatus 101 shown in FIG. 1 will be described. Here, a case where the information processing apparatus 101 shown in FIG. 1 is applied to the skeleton estimation apparatus 301 in the information processing system 300 will be described as an example.
  • the information processing system 300 is applied, for example, to a system that supports scoring in sports such as gymnastics and artistic swimming.
  • the "actor” is taken as an example of the target object for skeletal estimation.
  • FIG. 3 is an explanatory diagram showing a system configuration example of the information processing system 300.
  • an information processing system 300 includes a skeleton estimation device 301 , a client device 302 and a plurality of camera terminals 303 .
  • the skeleton estimation device 301 , the client device 302 and the camera terminal 303 are connected via a wired or wireless network 310 .
  • the network 310 is, for example, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), or the like.
  • the skeleton estimation device 301 is a computer that estimates the actor's skeleton.
  • the performer is, for example, a gymnastics performer.
  • Skeleton estimation device 301 is, for example, a server.
  • a client device 302 is a computer used by a user.
  • the user is, for example, a referee who scores the target competition, or a person who assists the referee in scoring.
  • the client device 302 is, for example, a PC (Personal Computer), a tablet PC, or the like.
  • the camera terminal 303 is an imaging device that captures an image (still image or moving image) and outputs image data.
  • a plurality of camera terminals 303 are installed, for example, at different positions in the stadium, and are capable of photographing performers during performance from multiple viewpoints.
  • skeleton estimation device 301 and the client device 302 are separately provided here, the present invention is not limited to this.
  • skeleton estimation device 301 may be realized by client device 302 .
  • the information processing system 300 may also include multiple client devices 302 .
  • FIG. 4 is a block diagram showing a hardware configuration example of the skeleton estimation device 301.
  • skeleton estimation apparatus 301 includes CPU (Central Processing Unit) 401, memory 402, disk drive 403, disk 404, communication I/F (Interface) 405, and portable recording medium I/F 406. , and a portable recording medium 407 . Also, each component is connected by a bus 400 .
  • the CPU 401 controls the entire skeleton estimation device 301 .
  • the CPU 401 may have multiple cores.
  • the memory 402 has, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash ROM, and the like.
  • the flash ROM stores the OS program
  • the ROM stores the application program
  • the RAM is used as a work area for the CPU 401 .
  • a program stored in the memory 402 is loaded into the CPU 401 to cause the CPU 401 to execute coded processing.
  • the disk drive 403 controls data read/write with respect to the disk 404 under the control of the CPU 401 .
  • Disk 404 stores data written under the control of disk drive 403 .
  • Examples of the disk 404 include a magnetic disk and an optical disk.
  • the communication I/F 405 is connected to the network 310 through a communication line, and is connected to an external computer (for example, the client device 302 and camera terminal 303 shown in FIG. 3) via the network 310.
  • a communication I/F 405 serves as an interface between the network 310 and the inside of the apparatus, and controls input/output of data from an external computer.
  • a modem, a LAN adapter, or the like can be adopted for example.
  • the portable recording medium I/F 406 controls reading/writing of data from/to the portable recording medium 407 under the control of the CPU 401 .
  • the portable recording medium 407 stores data written under control of the portable recording medium I/F 406 .
  • Examples of the portable recording medium 407 include CD (Compact Disc)-ROM, DVD (Digital Versatile Disk), USB (Universal Serial Bus) memory, and the like.
  • the skeleton estimation device 301 may have, for example, an input device, a display, etc., in addition to the components described above.
  • the client device 302 has, for example, an input device and a display in addition to the components described above.
  • the camera terminal 303 has, for example, a camera, an input device, a display, etc., in addition to the components described above.
  • FIG. 5 is an explanatory diagram showing an example of joint points forming a skeleton.
  • a skeleton 500 represents the skeleton of an actor and includes a plurality of indirect points and links.
  • Joint points are key points such as joints and heads.
  • a link is a connection between joint points.
  • joint points are represented by solid-line circles or dotted-line circles. Links are represented by solid lines.
  • the number inside the solid line circle is the joint ID that identifies the joint point.
  • a solid circle with joint ID “0” indicates the center of the pelvis (waist).
  • a solid circle with joint ID “1” indicates the spine.
  • a solid circle with joint ID “2” indicates the center of the shoulder.
  • a solid circle with joint ID “3” indicates the head.
  • a solid circle with joint ID “4” indicates the left shoulder.
  • a solid circle with joint ID “5” indicates the left elbow.
  • a solid circle with joint ID “6” indicates the left wrist.
  • a solid circle with joint ID “7” indicates the right shoulder.
  • a solid circle with joint ID “8” indicates the right elbow.
  • the solid circle with joint ID “9” indicates the right wrist.
  • a solid circle with joint ID “10” indicates the left pelvis.
  • a solid circle with joint ID “11” indicates the left knee.
  • a solid circle with joint ID “12” indicates the left ankle.
  • a solid circle with joint ID “13” indicates the tip of the left foot.
  • a solid circle with joint ID “14” indicates the right pelvis.
  • a solid circle with joint ID “15” indicates the right knee.
  • a solid circle with joint ID “16” indicates the right ankle.
  • a solid circle with joint ID “17” indicates the tip of the right foot.
  • a dotted circle 511 indicates the neck.
  • a dotted circle 512 indicates the left hand.
  • a dotted circle 513 indicates the left thumb.
  • a dotted circle 514 indicates the left hand.
  • Dotted circle 515 indicates the right hand.
  • Dotted circle 516 indicates the right thumb.
  • a dotted circle 517 indicates the right hand.
  • FIG. 6 is an explanatory diagram showing an example of the data structure of skeleton data.
  • skeleton data PD is information representing the skeleton of an actor (object) in time series, and includes frames F1 to Fn (n is a natural number of 2 or more).
  • Frames F1 to Fn are time-series data showing changes over time in the positions of joint points forming the skeleton of the actor at each time point t1 to tn in the three-dimensional space.
  • Frame Fi indicates the position on the three-dimensional space of each joint point forming the skeleton of the actor at time ti.
  • Frame Fi includes joint point data 600-1 to 600-18.
  • Each joint point data 600-1 to 600-18 has items of time point, joint ID, x, y and z.
  • a time point is information that identifies at what time point the joint point is.
  • the point in time corresponds to, for example, the date and time when the performer was photographed by the camera terminal 303 (see FIG. 3).
  • the joint ID is an identifier that identifies joint points that form the skeleton of the actor.
  • the joint IDs correspond to the joint IDs "0" to "17" shown in FIG. x, y, and z are coordinates indicating the position in the three-dimensional space of the joint point identified by the joint ID.
  • the joint point data 600-1 is the position "x0(i), y0(i), z0(i )”.
  • the skeleton data PD includes, for example, information on links connecting joint points.
  • FIG. 7 is a block diagram showing a functional configuration example of the skeleton estimation device 301.
  • skeleton estimation apparatus 301 includes acquisition section 701 , calculation section 702 , identification section 703 , determination section 704 , execution control section 705 , and output section 706 .
  • Acquisition unit 701 to output unit 706 are functions of a control unit. or by the communication I/F 405, the function is realized.
  • the processing results of each functional unit are stored in a storage device such as the memory 402 or disk 404, for example.
  • the acquisition unit 701 acquires skeleton data representing the skeleton of the actor (object) in time series.
  • a performer's skeleton is a recognized skeleton based on sensor data about the actor.
  • the sensor data includes, for example, images (multi-viewpoint images) of an actor photographed by a plurality of camera terminals 303 shown in FIG.
  • the acquisition unit 701 acquires the received skeleton data PD by receiving the skeleton data PD as shown in FIG. 6 from the client device 302 shown in FIG.
  • the acquisition unit 701 may generate the skeleton data PD by performing skeleton recognition processing based on sensor data about the performer.
  • the acquisition unit 701 receives sensor data including an image (multi-viewpoint image) of an actor captured from the client device 302 .
  • the acquisition unit 701 may directly receive the images of the performer from each of the plurality of camera terminals 303 .
  • Acquisition unit 701 performs skeleton recognition processing 200 as shown in FIG. 2 based on the received sensor data (multi-viewpoint image) to generate skeleton data PD. You may choose to acquire it.
  • skeletal data PD (see FIG. 6) will be taken as an example of skeleton data representing the skeleton of an actor (object) in chronological order.
  • the calculation unit 702 calculates a feature quantity representing the temporal change in movement of each part of the actor's skeleton based on the acquired skeleton data PD.
  • a portion of the skeleton is a portion of the skeleton.
  • a part includes a plurality of joint points among joint point groups that form the skeleton of an actor. It is possible to arbitrarily set which part of the actor's skeleton is to be processed.
  • the parts to be processed are set in consideration of how the person whose skeleton is to be estimated moves.
  • the skeleton of the performer is divided into parts such as the head, right arm, left arm, right leg, and left leg.
  • the division may be performed so as to cover all of the joint point groups forming the skeleton, or may not cover all of them.
  • a feature value is, for example, information for capturing the instantaneous movement or stillness of each part.
  • the feature amount may include, for example, the angular velocity between parts based on the time change of the relative angle between the parts of the skeleton of the actor (object).
  • the feature amount may include, for example, the angular acceleration between parts based on the time change of the relative angle between the parts of the skeleton of the performer (object).
  • each part includes a plurality of joint points, each part may be referred to as a "part group".
  • FIG. 8 is an explanatory diagram showing an example of a skeletal part.
  • site groups G1 to G5 (five sites) included in skeleton 500 are shown.
  • the part group G1 corresponds to the part “head” and includes the joint point with the joint ID “2" and the joint point with the joint ID “3”.
  • the part group G2 corresponds to the part “right arm” and includes joint points with joint ID “7”, joint points with joint ID “8”, and joint points with joint ID “9”.
  • the part group G3 corresponds to the part “left arm” and includes a joint point with joint ID "4", a joint point with joint ID "5", and a joint point with joint ID "6".
  • the part group G4 corresponds to the part “right leg”, and includes the joint point with the joint ID "14", the joint point with the joint ID "15”, the joint point with the joint ID "16", and the joint point with the joint ID "17”. include.
  • the part group G5 corresponds to the part "left leg”, and includes the joint point with the joint ID "10", the joint point with the joint ID "11", the joint point with the joint ID "12", and the joint point with the joint ID "13”. include.
  • the calculation unit 702 defines the orientation of each part group G1 to G5 (parts).
  • the orientation of the part group G1 is assumed to be the orientation from the joint point (head) of joint ID "3" to the joint point (shoulder center) of joint ID "2".
  • the orientation of the part group G2 be the orientation from the joint point with the joint ID “9” (right wrist) to the joint point with the joint ID “7” (right shoulder).
  • the orientation of the part group G3 be the orientation from the joint point with joint ID "6" (left wrist) to the joint point with joint ID "4" (left shoulder).
  • the direction of the part group G4 be the direction from the joint point with joint ID "17" (right foot) to the joint point with joint ID "14” (right pelvis).
  • the direction of the part group G5 be the direction from the joint point with joint ID "13" (left foot) to the joint point with joint ID "10" (left pelvis).
  • the calculation unit 702 calculates the orientation of each part (part groups G1 to G5) of the actor's skeleton. Specifically, for example, the calculation unit 702 calculates the orientation (e ⁇ x , e ⁇ y , e ⁇ z ) of each of the part groups G1 to G5 using the following formula (1) based on the skeleton data PD. can be calculated.
  • x1 indicates the x-coordinate of the starting point of each orientation.
  • x2 indicates the x-coordinate of the end point of each orientation.
  • y 1 indicates the y-coordinate of the starting point of each orientation.
  • y 2 indicates the y-coordinate of the end point of each orientation.
  • z 1 indicates the z-coordinate of the starting point of each orientation.
  • z2 indicates the z-coordinate of the end point of each orientation.
  • e is represented by the following formula (2).
  • indicates a hat symbol above e.
  • the orientation of each part group G1 to G5 is calculated, for example, for each frame Fi at each time point ti included in the skeleton data PD. As a result, the orientation of each part group G1 to G5 is calculated for each time point ti.
  • the calculated orientation of each part group G1 to G5 is stored, for example, in an edge data table 900 as shown in FIG.
  • the edge data table 900 is realized by storage devices such as the memory 402 and the disk 404, for example.
  • FIG. 9 is an explanatory diagram showing an example of the contents of the edge data table 900.
  • the edge data table 900 has fields of time point, group ID, e ⁇ x , e ⁇ y and e ⁇ z , and edge data 900-1 to 900- Store 5 as a record.
  • the time point indicates the time point corresponding to the edge data (for example, the date and time when the actor was photographed by the camera terminal 303).
  • a group ID is an identifier that identifies a site group (site).
  • e ⁇ x denotes the x-component of the orientation of the site group.
  • e ⁇ y indicates the y-component of the orientation of the site group.
  • e ⁇ z indicates the z-component of the orientation of the site group.
  • the edge data 900-1 indicates the orientation "e x 1(i), e y 1(i), e z 1(i)" of the part group G1 at time ti.
  • the calculation unit 702 calculates the relative angle between parts based on the calculated orientation between parts (between part groups).
  • the relative angle between parts corresponds to, for example, the angle formed by the orientation of one part and the orientation of another part.
  • the calculation unit 702 refers to the edge data table 900 at each point in time ti as shown in FIG. be able to.
  • ⁇ p,q indicates the relative angle between the site groups.
  • e ⁇ x,p indicates the x component in the direction of one site group Gp.
  • e ⁇ x,q indicates the x-component in the direction of the other site group Gq.
  • e ⁇ y,p indicates the y component in the direction of one site group Gp.
  • e ⁇ y,q indicates the y-component of the direction of the other site group Gq.
  • êz ,p indicates the z component in the direction of one site group Gp.
  • e ⁇ z,q indicates the z component in the direction of the other site group Gq.
  • the relative angle between the part groups at each time point ti is calculated, for example, for each combination of part groups.
  • the site groups G1 to G5 there are 10 combinations of the site groups (G1-G2, G1-G3, G1-G4, G1-G5, G2-G3, G2-G4, G2-G5, G3- G4, G3-G5, G4-G5).
  • the calculated relative angles between the part groups are stored, for example, in a relative angle table 1000 as shown in FIG.
  • the relative angle table 1000 is implemented by a storage device such as the memory 402 and disk 404, for example.
  • FIG. 10 is an explanatory diagram showing an example of the contents stored in the relative angle table 1000.
  • the relative angle table 1000 has fields of time point, combination ID, and relative angle. By setting information in each field, relative angle data 1000-1 to 1000-10 are stored as records.
  • the time point indicates the time point corresponding to the relative angle data.
  • a combination ID indicates a combination of part groups.
  • Relative angles indicate relative angles between site groups.
  • relative angle data 1000-1 indicates the relative angle ⁇ 1,2 (i) between part group G1 and part group G2 at time ti.
  • the calculation unit 702 calculates angular velocities between parts based on the calculated relative angles between parts (between part groups).
  • the angular velocity between parts corresponds to the angle by which the parts rotate per unit time, and can be said to be one of the index values for capturing the movement of the parts.
  • the calculation unit 702 refers to the relative angle table 1000 at each point in time ti as shown in FIG. can be done.
  • ⁇ p,q (t) indicates the angular velocity between group Gp and group Gq at time ti.
  • ⁇ p,q (t) denotes the relative angle between group Gp and group Gq at time ti.
  • ⁇ p,q (t ⁇ 1) denotes the relative angle between group Gp and group Gq at time t(i ⁇ 1).
  • the angular velocity between the part groups is calculated for each combination of the part groups, for example, for each time ti from time t2 to tn.
  • the calculated angular velocities between the part groups are stored in an angular velocity table 1100 as shown in FIG. 11, for example.
  • Angular velocity table 1100 is realized by a storage device such as memory 402 and disk 404, for example.
  • FIG. 11 is an explanatory diagram showing an example of the contents stored in the angular velocity table 1100.
  • the angular velocity table 1100 has fields of time, combination ID, and angular velocity, and by setting information in each field, angular velocity data 1100-1 to 1100-10 are stored as records.
  • the time points indicate the time points corresponding to the angular velocity data.
  • a combination ID indicates a combination of part groups.
  • Angular velocities indicate angular velocities between site groups.
  • angular velocity data 1100-1 indicates acceleration ⁇ 1,2 (i) between part group G1 and part group G2 at time ti.
  • the calculation unit 702 calculates the angular acceleration between parts based on the calculated angular velocities between parts (between part groups).
  • the angular acceleration between parts corresponds to a change in angular velocity per unit time, and can be said to be one of the index values for capturing the movement of parts.
  • the calculation unit 702 refers to the angular velocity table 1100 at each point in time ti as shown in FIG. can be done.
  • ⁇ p,q (t) represents the angular acceleration between group Gp and group Gq at time ti.
  • ⁇ p,q (t) denotes the angular velocity between group Gp and group Gq at time ti.
  • ⁇ p,q (t ⁇ 1) denotes the angular velocity between group Gp and group Gq at time t(i ⁇ 1).
  • the angular acceleration between the part groups is calculated for each combination of the part groups, for example, for each time ti from time t2 to tn.
  • the calculated angular accelerations between part groups are stored, for example, in an angular acceleration table 1200 as shown in FIG.
  • Angular acceleration table 1200 is realized by a storage device such as memory 402 and disk 404, for example.
  • FIG. 12 is an explanatory diagram showing an example of the contents stored in the angular acceleration table 1200.
  • the angular acceleration table 1200 has fields of time point, combination ID and angular acceleration, and by setting information in each field, angular acceleration data 1200-1 to 1200-10 are stored as records.
  • the time points indicate the time points corresponding to the angular acceleration data.
  • a combination ID indicates a combination of part groups.
  • Angular acceleration indicates the angular acceleration between part groups.
  • angular acceleration data 1200-1 indicates angular acceleration ⁇ 1,2 (i) between part group G1 and part group G2 at time ti.
  • the identifying unit 703 identifies the target part to be smoothed in the skeleton represented by the skeleton data PD based on the calculated feature amount. Specifically, for example, the specifying unit 703 specifies, as the target part, a part of the skeleton represented by the skeleton data PD other than the part for which the calculated angular acceleration is greater than or equal to the first threshold value Th1.
  • the specifying unit 703 specifies, of the skeleton represented by the skeleton data PD, a part for which the calculated angular acceleration is equal to or greater than the first threshold value Th1 as a part not to be smoothed.
  • the first threshold value Th1 can be arbitrarily set, and is set to a value at which, for example, when the angular acceleration becomes greater than or equal to the first threshold value Th1, it can be determined that the movement is instantaneous.
  • the identifying unit 703 refers to the angular acceleration table 1200 at each time point ti as shown in FIG. 12 to identify the target part.
  • the target part is specified, for example, by specifying the time point ti and the part to be smoothed in the skeleton represented in time series by the skeleton data PD.
  • angular acceleration ⁇ 4,5 (i) indicated by angular acceleration data 1200-10 in angular acceleration table 1200 is greater than or equal to first threshold value Th1.
  • angular accelerations ⁇ 1,3 (i) to ⁇ 3,5 (i) indicated by the angular acceleration data 1200-1 to 1200-9 in the angular acceleration table 1200 are less than the first threshold value Th1. .
  • the combination of part groups specified from the combination ID indicated by the angular acceleration data 1200-10 is the part group G4 and the part group G5.
  • the specifying unit 703 specifies, as target parts, parts other than the part groups G4 and G5 for the time ti among the skeletons represented in time series by the skeleton data PD.
  • the part group G4 is a part (right leg) including the joint point with the joint ID "14", the joint point with the joint ID "15”, the joint point with the joint ID "16", and the joint point with the joint ID "17”.
  • the part group G5 is a part (left leg) including the joint point with the joint ID "10", the joint point with the joint ID "11”, the joint point with the joint ID "12”, and the joint point with the joint ID "13”. .
  • the identifying unit 703 identifies parts other than the right and left legs of the actor's skeleton as target parts at time ti. In this manner, the identifying unit 703 identifies the target site at each time point (for example, time points t2 to tn). As a result, of the skeleton represented in time series by the skeleton data PD, parts of the skeleton that move instantaneously can be excluded from smoothing targets.
  • the identification unit 703 determines the part groups Gp and Gq (for example, part Groups G4 and G5) may be excluded from smoothing targets.
  • the fixed period before and after can be arbitrarily set, and is set, for example, to a period of about one second before and after (fixed frames before and after the target frame Fi).
  • the specifying unit 703 smoothes the part groups Gp and Gq in the target frame Fi at time ti and a certain number of frames before and after the target frame Fi. excluded from the scope of As a result, it is possible to exclude a part where an instantaneous movement is detected from smoothing targets for a certain period of time before and after the movement.
  • the determining unit 704 determines the degree of smoothing to be applied to the target part based on the calculated feature amount.
  • the target part is, for example, the target part specified by the specifying unit 703 .
  • the target parts may be all parts included in the actor's skeleton (for example, the part groups G1 to G5).
  • the determination unit 704 may determine the degree of smoothing to be applied to the target part based on the average value of the angular velocities per certain section included in the calculated feature amount.
  • the certain interval can be arbitrarily set, and is, for example, a period of about several seconds before and after the target time ti.
  • the target time point ti is a time point that is used as a reference when specifying a certain interval, and can be set arbitrarily.
  • the target time ti may be set for each section length of a certain section so that the certain sections do not overlap each other.
  • the target time ti may be set such that certain intervals partially overlap each other.
  • the determining unit 704 refers to the angular velocity table 1100 at each point in time as shown in FIG. Calculate the average value of the angular velocity per The angular velocity is the angular velocity between parts (between part groups) including the target part.
  • ⁇ p,q (t) ave indicates the average value of the angular velocities at the target time ti.
  • w indicates the window size.
  • ⁇ p,q (t20) ave is the average of the angular velocities ⁇ p,q (t10) to ⁇ p, q (t30) between time points t10 to t30 between the part groups Gp and Gq.
  • determination unit 704 determines the degree of smoothing applied to a portion of the skeleton represented by skeleton data PD for which the calculated average angular velocity value is equal to or lower than the second threshold value Th2. It may also be determined to be stronger than the portion larger than the threshold value Th2 of 2.
  • the degree of smoothing is represented by any value of "0", “1", or “2".
  • the degree of smoothing increases as the value increases. For example, a degree of "0” indicates no smoothing. A degree of "1” indicates weak smoothing. A degree of "2" indicates strong smoothing.
  • the determining unit 704 determines the degree of smoothing to be applied to parts other than the specified target part (the point ti and the part at which smoothing is not performed) of the skeleton of the actor to be "0". Further, the determining unit 704 determines the degree of smoothing to be applied to a portion (the portion at the target time ti) having an average angular velocity larger than the second threshold value Th2 among the specified target portions to be “1”. . In addition, the determination unit 704 determines the degree of smoothing to be applied to a portion having an average angular velocity equal to or smaller than the second threshold value Th2 (the portion at the target time ti) among the identified target portions to be “2”. .
  • the determination unit 704 determines that the average value of the angular velocities of all the parts included in the skeleton of the actor is the first
  • the degree of smoothing to be applied to a portion larger than the threshold value Th2 of 2 may be determined to be "1". Further, the determining unit 704 may determine the degree of smoothing to be applied to a portion having an average angular velocity equal to or smaller than the second threshold value Th2 among all the portions to be “2”.
  • the determining unit 704 may specify coefficients of a smoothing filter to be applied to the skeletal part represented by the skeletal data PD, based on the calculated feature amount.
  • a smoothing filter is a filter for smoothing by an averaging process for removing noise.
  • the smoothing filter is, for example, a Savitzky-Golay smoothing filter (SG filter).
  • the SG filter has the characteristic of smoothing motion while leaving high frequency components.
  • the coefficient of the smoothing filter is the coefficient that is applied to the value of the target part of each frame when performing the smoothing process on the skeleton data PD.
  • the value of the target part is the position (x, y, z) of each joint point included in the target part.
  • the coefficient of the smoothing filter is specified, for example, according to the degree of smoothing determined based on the feature quantity (average value of angular velocities).
  • FIG. 13 is an explanatory diagram (Part 1) showing an example of a smoothing filter.
  • the numbers "-4 to 4" are numbers for specifying the frames to be smoothed with reference to the frame number "0".
  • the number "0" indicates the frame at the target time ti.
  • the number “-1” indicates the frame immediately before the target time ti.
  • the number “-2” indicates the frame two frames before the target time ti.
  • the number “-3” indicates the frame three frames before the target time ti.
  • the number "-4" indicates the frame four frames before the target time ti.
  • the number “1” indicates the frame after the target time ti.
  • the number “2” indicates the frame two after the target time ti.
  • the number “3” indicates the frame three after the target time ti.
  • the number "4" indicates the frame four frames after the target time ti.
  • the coefficient indicates the coefficient by which the value of the target part of the frame corresponding to each number is multiplied.
  • the coefficient "0.417" of the number "0" indicates the coefficient to be multiplied by the value of the target part of the frame (target frame Fi) corresponding to the number "0".
  • each component x, y, z of the position of each joint point included in the target part is multiplied by a coefficient "0.417".
  • the coefficient "0.034" of the number "-4" indicates the coefficient to be multiplied by the value of the target part of the frame (target frame F(i-4)) corresponding to the number "-4".
  • each component x, y, z of the position of each joint point included in the target part is multiplied by a coefficient "0.034".
  • FIG. 14 is an explanatory diagram (part 2) showing an example of a smoothing filter.
  • the number "-10 to 10" is a number for specifying the frame to be smoothed with reference to the frame numbered "0".
  • the number “0” indicates the frame at the target time ti.
  • the number “-1” indicates the frame immediately before the target time ti.
  • the number “-10” indicates the frame ten years before the target time ti.
  • the number “1” indicates the frame one after the target time ti.
  • the number “10” indicates the frame ten years after the target time ti.
  • the coefficient indicates the coefficient by which the value of the target part of the frame corresponding to each number is multiplied.
  • the coefficient "0.169" of the number "0" indicates the coefficient to be multiplied by the value of the target part of the frame (target frame Fi) corresponding to the number "0".
  • each component x, y, z of the position of each joint point included in the target part is multiplied by a coefficient "0.169".
  • the coefficient "0.044" of the number "-10” indicates the coefficient to be multiplied by the value of the target part of the frame (target frame F(i-10)) corresponding to the number "-10".
  • each component x, y, z of the position of each joint point included in the target part is multiplied by a coefficient "0.044".
  • the determining unit 704 sets the coefficient of the smoothing filter applied to the target part to to identify the coefficients of the smoothing filter 1300 shown in FIG. Further, when the degree of smoothing applied to the target part is "2" when executing the smoothing process on the skeleton data PD, the determining unit 704 selects the coefficients of the smoothing filter applied to the target part as shown in FIG. Identify the coefficients of the smoothing filter 1400 shown.
  • the execution control unit 705 performs smoothing processing on the skeleton data PD.
  • the execution control unit 705 for example, smoothes the specified target part of the skeleton represented by the skeleton data PD.
  • a predetermined smoothing filter eg, smoothing filter 1300 may be used for smoothing the target region.
  • the execution control unit 705 may perform smoothing to a determined degree on the target part of the skeleton represented by the skeleton data PD. . Specifically, for example, the execution control unit 705 performs smoothing on the target part using the smoothing filter coefficient specified according to the degree of smoothing.
  • the execution control unit 705 uses the specified smoothing filter 1300 when the degree of smoothing applied to the target part is "1". is used to smooth the target region.
  • the execution control unit 705 may not perform smoothing on the target part at that time.
  • the execution control unit 705 uses the specified smoothing filter 1400 to smooth the target part if the degree of smoothing to be applied to the target part is "2". smoothing. However, there are cases where the time point excluded from the smoothing target is included in the range in which the smoothing filter 1400 is applied to the target part. In this case, the execution control unit 705 may not perform smoothing on the target part at that time.
  • the output unit 706 outputs the smoothed skeleton data PD.
  • the output format of the output unit 706 includes, for example, storage in a storage device such as the memory 402 and the disk 404, transmission to another computer via the communication I/F 405, display on a display (not shown), and output to a printer (not shown). print output, etc.
  • the output unit 706 may transmit the smoothed filtered skeleton data PD to the client device 302 . This allows the user to obtain the smoothed 3D joint coordinates of, for example, an athlete in gymnastics.
  • skeleton estimation device 301 the functional units (acquisition unit 701 to output unit 706) of skeleton estimation device 301 described above are realized by a plurality of computers (for example, skeleton estimation device 301 and client device 302) in information processing system 300. good too.
  • the skeleton estimation apparatus 301 may not have the determination section 704 among the acquisition section 701 to the output section 706 .
  • the execution control unit 705 uses, for example, a predetermined smoothing filter (for example, the smoothing filter 1300) to smooth the specified target part of the skeleton represented by the skeleton data PD.
  • the skeleton estimation device 301 may not have the specifying unit 703 among the acquisition unit 701 to the output unit 706.
  • the execution control unit 705 smoothes each part (target part) included in the skeleton represented by the skeleton data PD to the degree determined for each part.
  • FIG. 15 is a flowchart showing an example of the skeleton estimation processing procedure of the skeleton estimation device 301.
  • the skeleton estimation device 301 acquires skeleton data PD representing the skeleton of the actor (object) in time series (step S1501).
  • the skeleton estimation apparatus 301 then executes edge data calculation processing based on the acquired skeleton data PD (step S1502).
  • a specific processing procedure of the edge data calculation processing will be described later with reference to FIG. 16 .
  • the skeleton estimation device 301 executes feature amount calculation processing based on the calculated edge data (step S1503). A specific processing procedure of the feature amount calculation processing will be described later with reference to FIGS. 17 to 19. FIG. Then, the skeleton estimation apparatus 301 executes smoothing degree determination processing based on the calculated feature amount (step S1504). A specific processing procedure of the smoothing degree determination processing will be described later with reference to FIGS. 20 and 21. FIG.
  • the skeleton estimation device 301 executes smoothing processing on the skeleton data PD (step S1505).
  • the skeleton estimation apparatus 301 smoothes each part of the actor (each part group G1 to G5) according to the degree determined in step S1504.
  • the skeleton estimation device 301 outputs the smoothed skeleton data PD (step S1506), and ends the series of processing according to this flowchart.
  • smoothed 3D joint coordinates of a performer in gymnastics can be output.
  • the body part groups G1 to G5 shown in FIG. 8 are taken as examples of body parts included in the skeleton of the actor.
  • FIG. 16 is a flowchart showing an example of a specific processing procedure for edge data calculation processing.
  • the skeleton estimation device 301 selects an unselected part group that has not been selected from the part groups G1 to G5 (step S1603). Skeleton estimation apparatus 301 then calculates the orientation of the selected part group based on the selected frame Fi (step S1604).
  • the skeleton estimation device 301 determines whether there is an unselected part group that has not been selected from the part groups G1 to G5 (step S1605). Here, if there is an unselected part group (step S1605: Yes), skeleton estimation apparatus 301 returns to step S1603.
  • step S1605 if there is no unselected part group (step S1605: No), skeleton estimation apparatus 301 increments "i" (step S1606) and determines whether "i" is greater than "n”. (step S1607). Here, if "i" is equal to or less than "n” (step S1607: No), the skeleton estimation device 301 returns to step S1602.
  • step S1607 Yes
  • the skeleton estimation device 301 returns to the step that called the edge data calculation process.
  • each part (part groups G1 to G5) included in the actor's skeleton can be calculated.
  • the calculated orientation of each part (part groups G1 to G5) is stored in an edge data table 900 as shown in FIG. 9, for example.
  • FIGS. 17 to 19 are flowcharts showing an example of a specific processing procedure of the feature amount calculation process.
  • skeleton estimation apparatus 301 selects a combination of unselected part groups among part groups G1 to G5 for time ti (step S1702).
  • the skeleton estimation device 301 then refers to the edge data table 900 at time ti to calculate the relative angle between the selected part groups (step S1703). Next, skeleton estimation apparatus 301 determines whether there is a combination of unselected part groups among part groups G1 to G5 at time ti (step S1704).
  • step S1704 if there is a combination of unselected part groups (step S1704: Yes), the skeleton estimation device 301 returns to step S1702. On the other hand, if there is no combination of unselected part groups (step S1704: No), skeleton estimation apparatus 301 increments "i" (step S1705).
  • the skeleton estimation device 301 determines whether "i" is greater than “n” (step S1706). Here, if “i” is equal to or less than "n” (step S1706: No), the skeleton estimation device 301 returns to step S1702.
  • step S1706 Yes
  • the skeleton estimation device 301 proceeds to step S1801 shown in FIG.
  • the calculated relative angles between the part groups are stored, for example, in a relative angle table 1000 as shown in FIG.
  • the skeleton estimation device 301 then refers to the relative angle table 1000 at time ti,t(i-1) to calculate the angular velocities of the selected part groups (step S1803). However, if the information for calculating the angular velocity is not complete, the skeleton estimation apparatus 301 skips step S1803.
  • skeleton estimation device 301 determines whether there is a combination of unselected part groups among part groups G1 to G5 at time ti (step S1804). Here, if there is a combination of unselected part groups (step S1804: Yes), skeleton estimation apparatus 301 returns to step S1802.
  • step S1804 determines whether or not "i" is greater than "n” (step S1806).
  • step S1806: No if “i" is equal to or less than “n” (step S1806: No), the skeleton estimation device 301 returns to step S1802. On the other hand, if "i" is greater than "n” (step S1806: Yes), the skeleton estimation apparatus 301 proceeds to step S1901 shown in FIG. Note that the calculated angular velocities between the part groups are stored, for example, in an angular velocity table 1100 as shown in FIG.
  • skeleton estimation apparatus 301 selects a combination of unselected part groups among part groups G1 to G5 for time ti (step S1902).
  • the skeleton estimation device 301 then refers to the angular velocity table 1100 at time ti,t(i-1) to calculate the angular accelerations between the selected part groups (step S1903). However, if the information for calculating the angular acceleration is not complete, the skeleton estimation device 301 skips step S1903.
  • skeleton estimation device 301 determines whether there is a combination of unselected part groups among part groups G1 to G5 at time ti (step S1904). Here, if there is a combination of unselected part groups (step S1904: Yes), the skeleton estimation apparatus 301 returns to step S1902.
  • step S1904 determines whether or not "i" is greater than "n” (step S1906).
  • step S1906: No if “i" is equal to or less than “n” (step S1906: No), the skeleton estimation device 301 returns to step S1902. On the other hand, if "i" is greater than "n” (step S1906: YES), the skeleton estimation device 301 returns to the step that invoked the feature quantity calculation process.
  • the calculated angular accelerations between the part groups are stored, for example, in an angular acceleration table 1200 as shown in FIG.
  • FIGS. 20 and 21 are flowcharts showing an example of a specific processing procedure of the smoothing degree determination process.
  • skeleton estimation apparatus 301 selects a combination of unselected part groups among part groups G1 to G5 for time ti (step S2002).
  • the skeleton estimation device 301 then refers to the angular acceleration table 1200 at time ti to determine whether or not the angular acceleration between the selected part groups is greater than or equal to the first threshold value Th1 (step S2003). Here, if the angular acceleration is less than the first threshold value Th1 (step S2003: No), the skeleton estimation device 301 proceeds to step S2006.
  • step S2003 if the angular acceleration is greater than or equal to the first threshold value Th1 (step S2003: Yes), the skeleton estimation device 301 identifies a part group included in the combination of the selected part groups (step S2004).
  • the process of step S2004 corresponds to the process of identifying the parts of the skeleton represented by the skeleton data PD that are not to be smoothed.
  • the skeleton estimation apparatus 301 sets the degree of smoothing to "0" for the target frame Fi at time ti and a certain number of frames before and after the target frame Fi for the identified part group (step S2005). In step S2005, if the degree of smoothing for a certain frame has already been determined for the part group, skeleton estimation apparatus 301 does not change the degree of smoothing for that frame.
  • skeleton estimation device 301 determines whether or not there is a combination of unselected part groups among part groups G1 to G5 at time ti (step S2006). Here, if there is a combination of unselected part groups (step S2006: Yes), skeleton estimation apparatus 301 returns to step S2002.
  • step S2006 determines whether or not "i" is greater than "n” (step S2008).
  • step S2008: No if “i” is equal to or less than “n” (step S2008: No), the skeleton estimation device 301 returns to step S2002. On the other hand, if “i” is greater than “n” (step S2008: Yes), the skeleton estimation apparatus 301 proceeds to step S2101 shown in FIG.
  • the skeleton estimation device 301 first selects an unselected target time point ti from a plurality of preset target time points (step S2101). Next, skeleton estimation apparatus 301 selects a combination of unselected part groups among part groups G1 to G5 for target time ti (step S2102).
  • the skeleton estimation device 301 refers to the angular velocity table 1100 for a certain interval based on the target time ti, and calculates the average value of the angular velocities of the selected part groups for the certain interval (step S2103).
  • the skeleton estimation apparatus 301 determines whether or not the calculated average value of the angular velocities is equal to or less than the second threshold Th2 (step S2104).
  • step S2104 skeleton estimation apparatus 301 identifies a part group included in a combination of the selected part groups (step S2105).
  • the process of step S2105 corresponds to the process of specifying the target part to be smoothed in the skeleton represented by the skeleton data PD.
  • the skeleton estimation apparatus 301 determines the degree of smoothing for the identified part group in the target frame Fi at the target time ti to be "2" (step S2106), and proceeds to step S2109. In step S2106, if the degree of smoothing for the target frame Fi has already been determined for the part group, the skeleton estimation device 301 does not change the degree of smoothing for the target frame Fi.
  • step S2104 if the average value of the angular velocities is greater than the second threshold value Th2 (step S2104: No), skeleton estimation apparatus 301 identifies a part group included in the combination of the selected part groups (step S2107).
  • the process of step S2107 corresponds to the process of specifying the target part to be smoothed in the skeleton represented by the skeleton data PD.
  • the skeleton estimation device 301 determines the degree of smoothing in the target frame Fi at the target time ti to "1" for the identified part group (step S2108). In step S2108, if the degree of smoothing for the target frame Fi has already been determined for the part group, the skeleton estimation device 301 does not change the degree of smoothing for the target frame Fi.
  • skeleton estimation device 301 determines whether or not there is a combination of unselected part groups among part groups G1 to G5 at target time ti (step S2109). Here, if there is a combination of unselected part groups (step S2109: Yes), skeleton estimation apparatus 301 returns to step S2102.
  • skeleton estimation apparatus 301 determines whether or not there is an unselected target time point among a plurality of preset target time points (step S2110).
  • step S2110: Yes if there is an unselected target time point (step S2110: Yes), the skeleton estimation device 301 returns to step S2101. On the other hand, if there is no unselected target time point (step S2110: No), the skeleton estimation apparatus 301 returns to the step that called the smoothing degree determination process.
  • FIG. 22 is an explanatory diagram showing an example of the result of estimating the skeleton of a performer (balance beam).
  • estimation results 2201 and 2202 are estimation results of the skeleton of a gymnastic performer performing a hoop jump on the balance beam.
  • the referee determines that the technique is "successful”.
  • the estimation result 2201 (corresponding to the solid line) represents the skeleton after smoothing processing by the skeleton estimation device 301, and is the estimation result when the right leg portion of the actor's skeleton is not smoothed.
  • An estimation result 2202 (corresponding to a dotted line) is an estimation result when smoothing is performed on all parts of the actor's skeleton (NG example due to smoothing error).
  • the smoothing filter is not applied to the toe portion of the right leg, and the toe portion of the actual actor's right leg is accurately estimated. Therefore, if the technique recognition processing is performed on the estimation result 2201, the same result as the referee (success in jumping from the loop) can be obtained.
  • the smoothing filter is applied to the toe portion of the right leg, and the toe portion is slightly lowered compared to the actual actor's right leg. Therefore, when the technique recognition process is performed on the estimation result 2202, it is simply judged as a front-back split jump, and a result (skill failure) different from that of the referee is obtained.
  • the skeleton estimation device 301 it is possible to exclude a part in which an instantaneous movement is occurring from objects to be smoothed.
  • Figs. 23A and 23B are explanatory diagrams showing an example of the result of estimating the skeleton of the performer (the ring).
  • the estimation results 2311 to 2315 and 2321 to 2325 are the estimation results for each frame representing the skeleton of the gymnastics performer performing the horizontal support of the ring in chronological order.
  • Each estimation result 2311-2315 is an estimation result at the same point in time as each estimation result 2321-2325.
  • an estimation result 2311 and an estimation result 2321 are estimation results at the same point in time.
  • the estimation results 2311 to 2315 are estimation results when weak smoothing is performed on all parts of the actor's skeleton (NG example due to smoothing error).
  • Estimation results 2321 to 2325 represent the skeleton after smoothing processing by the skeleton estimation device 301, and are the estimation results when strong smoothing is performed on the still parts of the actor's skeleton.
  • FIG. 24 is an explanatory diagram showing changes over time in the z-coordinate of the tip of the left foot.
  • a graph 2401 corresponds to the estimation results 2311 to 2315 shown in FIG. 23, and shows the change over time of the z-coordinate of the actor's left foot when weak smoothing is applied.
  • a graph 2402 corresponds to the estimation results 2321 to 2325 shown in FIG. 23, and shows the change over time of the z-coordinate of the actor's left foot when strong smoothing is applied.
  • the horizontal axis indicates the passage of time.
  • the vertical axis indicates the z-coordinate.
  • the amount of movement of the performer is important.
  • noise is not properly removed, so the amount of movement for each frame exceeds the threshold defined by the technique recognition rule. Therefore, when technique recognition processing is performed on the estimation results 2311 to 2315, a result (still NG) different from that of the referee is obtained.
  • FIG. 25 is an explanatory diagram showing a specific example of the technique recognition result.
  • the technique recognition result 2500 indicates the technique recognition rate when technique recognition is performed on the ring ring skeleton data PD.
  • the technique recognition rate indicates the rate of obtaining the same result as the referee.
  • the technique recognition rate in this case is "89.5%”.
  • the skeleton data PD representing the skeleton of the actor (object) recognized based on the sensor data of the actor (object) in time series can be acquired. can be done. Then, according to the skeleton estimation device 301, based on the acquired skeleton data PD, a feature amount representing a time change in movement of each part of the actor's skeleton is calculated, and based on the calculated feature amount, the skeleton data PD is calculated. It is possible to specify the target part to be smoothed out of the skeleton represented by .
  • the parts of the skeleton include, for example, a plurality of joint points among joint point groups forming the actor's skeleton (eg, part groups G1 to G5).
  • the skeletal data PD is, for example, time-series data indicating temporal changes in the position of each joint point forming the skeletal structure of the actor in the three-dimensional space.
  • the skeleton estimation device 301 improves the accuracy of skeleton estimation by controlling the parts of the skeleton represented by the skeleton data PD to be smoothed according to the time change of the movement of each part of the actor's skeleton. can be achieved.
  • the skeleton estimation device 301 can capture fine movements of the actor with high accuracy by focusing on a part including a plurality of joint points in the group of joint points forming the skeleton of the actor.
  • the feature amount including the angular acceleration between parts is calculated based on the time change of the relative angle between the parts of the skeleton of the actor.
  • a part other than the part that is equal to or greater than the first threshold value Th1 can be specified as the target part.
  • the skeleton estimation device 301 can exclude parts in which instantaneous motion (high-frequency motion) occurs from objects to be smoothed. For example, when a gymnastic balance beam hoop jump or open leg jump is performed, regions including the toe joints that move vigorously can be excluded from smoothing targets.
  • a feature amount including angular velocities between parts based on the time change of the relative angle between the parts of the skeleton of the actor is calculated, and the average value of the angular velocities for a certain section included in the feature amount is calculated.
  • the degree of smoothing is applied to the target region.
  • the bone structure estimation apparatus 301 determines the degree of smoothing applied to a target portion of the skeleton represented by the bone structure data PD whose average angular velocity is equal to or less than the second threshold value Th2. Determine to a stronger degree than the larger target region.
  • the skeleton estimation device 301 can perform stronger smoothing on parts where stationary motion (low-frequency motion) occurs than on other parts. For example, strong smoothing can be applied to slowly changing parts when stationary techniques such as horizontal suspension of rings in gymnastics and cross suspension are performed. For example, when applying an SG filter, smoothing in a long-term frame has the characteristic that noise can be effectively removed. Therefore, when applying the SG filter, the skeleton estimation apparatus 301 can adjust the degree of smoothing by switching the window size.
  • the skeleton estimation device 301 when performing smoothing processing on the skeleton data PD, it is possible to perform smoothing on a specified target portion of the skeleton represented by the skeleton data PD.
  • the skeleton estimation device 301 reproduces the smooth movement of the actor through the smoothing process, and removes the smoothing at the fast-moving parts, thereby preventing the characteristic movements of the actor from being lost. can be prevented. For example, when a performance such as loop jump or open leg jump is performed, it is possible to avoid a situation in which the performance that should be recognized is not recognized by removing the smoothing of the parts including the joints of the toes. .
  • the skeleton estimation apparatus 301 when performing the smoothing process on the skeleton data PD, it is possible to perform the smoothing to the determined degree on the specified target portion of the skeleton represented by the skeleton data PD. can.
  • the skeleton estimation device 301 can effectively reduce noise by applying strong smoothing to parts that change slowly when reproducing the smooth movement of the actor through the smoothing process.
  • skeleton estimation device 301 it is possible to acquire sensor data including an image of an actor and generate skeleton data PD representing the skeleton of the actor recognized from the image included in the acquired sensor data. can.
  • the skeleton estimation device 301 can acquire the skeleton data PD representing the actor's skeleton from the image (multi-viewpoint image) of the actor captured by the camera terminal 303 or the like.
  • the skeleton estimation device 301 it is possible to obtain the skeleton data PD that chronologically represents the skeleton of the actor recognized based on the sensor data of the actor. Then, according to the skeleton estimation device 301, based on the acquired skeleton data PD, a feature amount representing a time change in movement of each part of the actor's skeleton is calculated, and based on the calculated feature amount, the skeleton data PD is calculated. It is possible to specify the coefficients of the smoothing filter applied to the skeletal region represented by .
  • the skeleton estimation device 301 can control the degree of smoothing applied to each part of the actor's skeleton by switching the coefficients of the SG filter according to the time change of the motion of each part of the actor's skeleton.
  • the skeleton estimation device 301 when estimating the actor's skeleton from an image (multi-viewpoint image) of the actor taken, smoothing is removed to follow the actor's fast movement, It is possible to accurately estimate the skeleton of the performer by effectively removing noise during static motion. As a result, it is possible to improve the accuracy of technique recognition in gymnastics and the like, and for example, it is possible to support referee scoring and realize automatic scoring by computer.
  • the information processing method described in the present embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or workstation.
  • the information processing program is recorded in a computer-readable recording medium such as a hard disk, flexible disk, CD-ROM, DVD, USB memory, etc., and is executed by being read from the recording medium by a computer.
  • the information processing program may be distributed via a network such as the Internet.
  • the information processing apparatus 101 can also be implemented by application-specific ICs such as standard cells and structured ASICs (Application Specific Integrated Circuits) and PLDs (Programmable Logic Devices) such as FPGAs. can be realized.
  • application-specific ICs such as standard cells and structured ASICs (Application Specific Integrated Circuits) and PLDs (Programmable Logic Devices) such as FPGAs.

Abstract

骨格推定装置は、演技者(対象物)の骨格を時系列に表す骨格データに基づいて、演技者の骨格の部位ごとの動きの時間変化を表す特徴量を算出する。骨格推定装置は、算出した特徴量に基づいて、骨格データが表す骨格のうち平滑化を行う対象部位を特定する。推定結果(2201,2202)は、体操競技の演技者が平均台の輪とびを演技中の骨格の推定結果である。推定結果(2201)は、骨格推定装置による平滑化処理後の骨格を表しており、演技者の骨格のうち右脚部分の平滑化が行われなかった場合の推定結果である。推定結果(2201)では、実際の演技者の右脚の足先部分が精度よく推定されている。一方、推定結果(2202)は、演技者の骨格の全部位に対して平滑化が行われた場合の推定結果である。推定結果(2202)では、右脚の足先部分に平滑化フィルタが適用されて、実際の演技者の右脚と比べて、足先部分が僅かに下がっている。

Description

情報処理プログラム、情報処理方法、および情報処理装置
 本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
 従来、3次元の人の動きを認識するための技術がある。例えば、スポーツ、ヘルスケア、エンターテインメントなどの分野において、骨格推定のニーズが高まっている。また、ディープラーニングなどの技術の向上により、画像を用いた2D(Dimension)/3D骨格認識の精度が向上しつつある。
 先行技術としては、例えば、見守り対象者の撮像画像である二次元画像より検出した見守り対象者の骨格の形状を示すスケルトントラッキング信号をもとに、見守り対象者の姿勢を特定するものがある。また、骨格モデルを用いることにより、人物の3次元姿勢を推定する技術がある。
特開2020-52867号公報 国際公開第2012/046392号
 しかしながら、従来技術では、対象物(例えば、体操競技の演技者)を撮影した画像などのセンサデータから対象物の骨格を推定する際の精度が低下する場合がある。
 一つの側面では、本発明は、骨格推定の精度の向上を図ることを目的とする。
 1つの実施態様では、対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、算出した前記特徴量に基づいて、前記骨格データが表す骨格のうち平滑化を行う対象部位を特定する、情報処理プログラムが提供される。
 本発明の一側面によれば、骨格推定の精度の向上を図ることができるという効果を奏する。
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。 図2は、骨格認識処理の一例を示す説明図である。 図3は、情報処理システム300のシステム構成例を示す説明図である。 図4は、骨格推定装置301のハードウェア構成例を示すブロック図である。 図5は、骨格を形成する関節点の一例を示す説明図である。 図6は、骨格データのデータ構造例を示す説明図である。 図7は、骨格推定装置301の機能的構成例を示すブロック図である。 図8は、骨格の部位の一例を示す説明図である。 図9は、エッジデータテーブル900の記憶内容の一例を示す説明図である。 図10は、相対角度テーブル1000の記憶内容の一例を示す説明図である。 図11は、角速度テーブル1100の記憶内容の一例を示す説明図である。 図12は、角加速度テーブル1200の記憶内容の一例を示す説明図である。 図13は、平滑化フィルタの一例を示す説明図(その1)である。 図14は、平滑化フィルタの一例を示す説明図(その2)である。 図15は、骨格推定装置301の骨格推定処理手順の一例を示すフローチャートである。 図16は、エッジデータ算出処理の具体的処理手順の一例を示すフローチャートである。 図17は、特徴量算出処理の具体的処理手順の一例を示すフローチャート(その1)である。 図18は、特徴量算出処理の具体的処理手順の一例を示すフローチャート(その2)である。 図19は、特徴量算出処理の具体的処理手順の一例を示すフローチャート(その3)である。 図20は、平滑化度合決定処理の具体的処理手順の一例を示すフローチャート(その1)である。 図21は、平滑化度合決定処理の具体的処理手順の一例を示すフローチャート(その2)である。 図22は、演技者(平均台)の骨格の推定結果の一例を示す説明図である。 図23Aは、演技者(つり輪)の骨格の推定結果の一例を示す説明図(その1)である。 図23Bは、演技者(つり輪)の骨格の推定結果の一例を示す説明図(その2)である。 図24は、左足先のz座標の時間変化を示す説明図である。 図25は、技認識結果の具体例を示す説明図である。
 以下に図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
 図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。図1において、情報処理装置101は、対象物の骨格を表す骨格データのうち平滑化を行う対象部位を特定するコンピュータである。ここで、対象物は、例えば、骨格推定の対象となる人である。また、対象物は、ゴリラや猿などの人以外の動物であってもよいし、ロボットであってもよい。
 骨格推定とは、対象物についてのセンサデータをもとに骨格を認識することによって、対象物の骨格を推定する技術である。骨格は、対象物を支える骨組みとなるものであり、例えば、関節で結合した複数の骨によって形成される構造である。関節は、骨と骨とを連接させる可動性の結合部である。
 骨格推定は、例えば、スポーツ、ヘルスケア、エンターテインメントなどの分野においてニーズが高まっている。例えば、骨格推定の技術を用いて、体操競技の演技者についてのセンサデータから、演技中の演技者の骨格を推定することによって、骨格の推定結果をもとに技認識して、演技に対する採点を支援するシステムがある。
 ここで、図2を用いて、対象物のセンサデータをもとに、対象物の骨格を認識する骨格認識処理の一例について説明する。ここでは、対象物を「人」とし、センサデータを「対象物を撮影した画像」とする。
 図2は、骨格認識処理の一例を示す説明図である。図2において、骨格認識処理200は、人検出処理201と、2Dpose推定処理202と、3Dpose推定処理203とを含む。人検出処理201は、複数の画像210から人の領域を検出する。複数の画像210は、多視点から人(対象物)を撮影した画像(多視点画像)である。
 2Dpose推定処理202は、人検出処理201によって検出された人の領域から、関節の位置を特定する。2Dpose推定処理202では、2Dヒートマップ220が生成される。2Dヒートマップ220は、例えば、複数の画像210の各画像上のピクセル単位に、その箇所が関節である確率を表したものである。
 3Dpose推定処理203は、2Dヒートマップ220とカメラ配置情報230とを統合して、3次元空間上での人の関節の位置(座標)を特定する。カメラ配置情報230は、複数の画像210を撮影した各カメラの配置位置を示す。3Dpose推定処理203では、骨格データ240が生成される。
 骨格データ240は、人の骨格(骨格の形状)を表す情報であり、骨格を形成する関節の3次元空間上での位置を示す。なお、骨格認識処理200では、例えば、人を撮影した時系列の画像に対して処理が行われ、各関節の3次元空間上での位置の時間変化を示す骨格データ240(時系列データ)が生成される。具体的には、例えば、骨格データ240は、各時点における各関節の3次元空間上での位置を示すフレームの集合である。
 ここで、フレームごとの骨格推定では、ノイズによる誤差が発生することがある。このため、スムーズな動きを推定するために、骨格推定の後段で平滑化処理を行う場合がある。例えば、体操選手の動きの周波数特性は、定量的に定義することが難しい。このような場合、Savitzky-Golay平滑化フィルタと呼ばれるフィルタが適用されることがある。
 Savitzky-Golay平滑化フィルタは、ノイズを含むがノイズのない部分の周波数範囲が広い信号の平滑化に使用されるフィルタの一例である。Savitzky-Golay平滑化フィルタは、時系列データを一定枠のウインドウ内の多項式で近似し、多項式出力を平滑化後の値とする。なお、Savitzky-Golay平滑化フィルタについては、例えば、下記非特許文献を参照することができる。
 Mendez, C.G.M., Mendez, S.H., Solis, A.L., Figueroa, H.V.R., Hernandez, A.M.: The effects of using a noise filter and feature selection in action recognition: an empirical study. In: International Conference on Mechatronics, Electronics and Automotive Engineering (ICMEAE),pp.43-48 (2017)
 しかし、骨格のノイズは、人の動きによって影響を受ける。このため、平滑化フィルタの特性は、人の動きによって可変にすることが望ましい。例えば、人の動きがゆっくりの場合、長期間のフレームでの平滑化によりノイズをできる限り落とすことが望ましい。体操競技のつり輪種目を例に挙げると、静止技にノイズが入ると、得点にかかわる静止判定が正常にできない可能性がある。
 また、人の動きが速い場合、動きの速い箇所の平滑化は行わないほうがよいことがある。例えば、体操競技の平均台種目での輪とびや開脚とびは、開脚角度が重要となる。このため、例えば、足先の関節での平滑化を外さないと、平滑化前より角度が少なく出て採点時に選手に不利になる可能性がある。
 このように、人(対象物)の骨格データ全体に対して一様に平滑化処理を実施すると、本来はあらわれるべき動きが検出されず、例えば、本来認識されるべき演技が認識されない場合がある。一方、平滑化処理を実施しなければ、ノイズにより骨格推定の精度が低下し、例えば、静止状態を精度よく判定できない場合がある。
 なお、演技者の骨格全体を表すエッジデータをフレーム間で比較して得られるブレ量をもとに、ルールベース(エッジデータの変化のしきい値)で静止判定を行うことが考えられる。しかし、単発フレームごと、あるいは、短いフレーム間の判定のため、ノイズに弱く、静止判定を適切に行うことが難しい場合がある。
 また、同じ静止技でも、許容できるブレ量が異なる場合がある。例えば、つり輪種目の開脚水平支持と十字懸垂とでは、十字懸垂のほうが、ブレ量が少なくなる。このため、十字懸垂の基準に合わせると、開脚水平支持の静止判定を適切に行うことができず、正常に技認識判定などを行うことができない。
 また、全身のエッジデータに対して、CNN(Convolutional Neural Network)モデルを用いて、静止状態と非静止状態とをラベル学習し、平滑化適用箇所であるかを判定することが考えられる。しかし、この手法では、全身のエッジデータにラベリングされるため、人の骨格の中から、平滑化をかけるべき箇所や平滑化を外すべき箇所を判別することができない。
 そこで、本実施の形態では、対象物の骨格の部位ごとの動きの時間変化に応じて、骨格データが表す骨格のうち平滑化をかける部位を制御することで、骨格推定の精度の向上を図る情報処理方法について説明する。以下、情報処理装置101の処理例について説明する。
 (1)情報処理装置101は、対象物についてのセンサデータに基づき認識された対象物の骨格を時系列に表す骨格データを取得する。ここで、骨格データは、例えば、対象物の骨格を形成する各関節点の3次元空間上での位置の時間変化を示す時系列データである。関節点は、例えば、関節、頭部などを示す。
 センサデータは、例えば、対象物を撮影した画像を含む。骨格データは、例えば、図2に示したような骨格認識処理200により生成される。また、センサデータは、3Dモーションセンサの情報を含むものであってもよい。3Dモーションセンサは、例えば、対象物の関節、頭部などに装着され、装着箇所の位置を検知可能である。
 なお、骨格データは、例えば、情報処理装置101において生成されてもよく、また、情報処理装置101とは異なる他のコンピュータにおいて生成されてもよい。骨格データの具体例については、図6を用いて後述する。
 図1の例では、演技者102の骨格を表す骨格データ110が取得された場合を想定する。演技者102は、体操競技の選手である。骨格データ110は、演技者102を撮影した複数の画像Iに基づき認識された、演技者102の骨格を表す。骨格データ110は、各時点における演技者102の各関節点の3次元空間上での位置を示すフレームの集合である。
 例えば、フレーム110-1は、ある時点における演技者102の各関節点(図1中、白丸)の3次元空間上での位置を示す。例えば、白丸110-1-1は、右足先の関節点を示す。白丸110-1-2は、右骨盤の関節点を示す。白丸110-1-3は、左足先の関節点を示す。白丸110-1-4は、左骨盤の関節点を示す。
 (2)情報処理装置101は、取得した骨格データに基づいて、対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出する。部位は、例えば、頭部、右腕、左腕、右脚、左脚などである。対象物の骨格のうちのどの部位に着目するかは、任意に設定可能である。例えば、演技者102の右脚は、右脚先から右骨盤までの部分に相当する。また、演技者102の左脚は、左脚先から左骨盤までの部分に相当する。
 特徴量は、対象物の骨格に含まれる各部位の動きを捉えるための情報である。特徴量は、例えば、対象物の骨格の部位間の相対角度の時間変化に基づく部位間の角加速度を含む。部位間の角加速度は、部位間の角速度の単位時間あたりの変化率を表しており、各部位の瞬間的な動きを捉えることができる指標値であるといえる。
 図1の例では、演技者102の骨格の動きの時間変化を表す特徴量120が算出された場合を想定する。特徴量120は、演技者102の部位間の相対角度の時間変化に基づく角加速度を含む。骨格の部位の組み合わせとして、左脚131と右脚132とを例に挙げると、特徴量120は、例えば、左脚131と右脚132との間の相対角度の時間変化に基づく角加速度を含む。左脚131と右脚132との間の角加速度は、各脚131,132の瞬間的な動きを捉えることができる指標値であるといえる。
 (3)情報処理装置101は、算出した特徴量に基づいて、骨格データが表す骨格のうち平滑化を行う対象部位を特定する。換言すれば、情報処理装置101は、骨格データが表す骨格のうち、平滑化を行う対象から除外する部位を特定する。具体的には、例えば、情報処理装置101は、骨格データが表す骨格のうち、角加速度が第1のしきい値以上となる部位以外の部位を、平滑化を行う対象部位として特定することにしてもよい。
 第1のしきい値は、任意に設定可能である。例えば、第1のしきい値は、部位間の角加速度が第1のしきい値以上となると、その部位の瞬発的な動きであると判断できる値に設定される。瞬発的な動きと判定された部位は、例えば、本来認識されるべき演技が認識されずに、選手に不利とならないように、平滑化を外すべき箇所であるといえる。このため、情報処理装置101は、角加速度が第1のしきい値以上となる部位を、平滑化を行う対象から除外する。
 図1の例では、特徴量120に含まれる演技者102の部位間の角加速度のうち、演技者102の左脚131と右脚132との間の角加速度のみが第1のしきい値以上となる場合を想定する。この場合、情報処理装置101は、例えば、骨格データ110が表す骨格のうち、左脚131と右脚132とは異なる部位を対象部位として特定する。
 このように、情報処理装置101によれば、対象物の骨格の部位ごとの動きの時間変化に応じて、骨格データが表す骨格のうち平滑化をかける部位を制御することで、骨格推定の精度の向上を図ることができる。例えば、瞬発的な動き(高周波動き)が生じている部位を、平滑化を行う対象から除外することで、体操競技などにおいて、本来認識されるべき演技が認識されずに、選手に不利となるといった事態を防ぐことができる。
 図1の例では、演技者102の左脚131と右脚132との間の角加速度が第1のしきい値以上となっており、各脚131,132の瞬発的な動きが生じているといえる。このため、情報処理装置101は、演技者102の骨格のうち、左脚131と右脚132を平滑化を行う対象から除外し、それ以外の部位を対象部位とする。具体的には、例えば、情報処理装置101は、骨格データ110に対する平滑化処理を実施する際に、左脚131と右脚132について、フレーム110-1の前後一定フレームの期間にわたって、平滑化を行う対象から除外する。
(情報処理システム300のシステム構成例)
 つぎに、図1に示した情報処理装置101を含む情報処理システム300のシステム構成例について説明する。ここでは、図1に示した情報処理装置101を、情報処理システム300内の骨格推定装置301に適用した場合を例に挙げて説明する。情報処理システム300は、例えば、体操やアーティスティックスイミングなどの競技の採点を支援するシステムに適用される。
 以下の説明では、骨格推定の対象物として「演技者」を例に挙げて説明する。
 図3は、情報処理システム300のシステム構成例を示す説明図である。図3において、情報処理システム300は、骨格推定装置301と、クライアント装置302と、複数のカメラ端末303と、を含む。情報処理システム300において、骨格推定装置301、クライアント装置302およびカメラ端末303は、有線または無線のネットワーク310を介して接続される。ネットワーク310は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)などである。
 ここで、骨格推定装置301は、演技者の骨格を推定するコンピュータである。演技者は、例えば、体操競技の演技者である。骨格推定装置301は、例えば、サーバである。
 クライアント装置302は、ユーザが使用するコンピュータである。ユーザは、例えば、対象競技の採点を行う審判員や、審判員による採点を支援する者などである。クライアント装置302は、例えば、PC(Personal Computer)、タブレットPCなどである。
 カメラ端末303は、画像(静止画または動画)を撮影して画像データを出力する撮像装置である。複数のカメラ端末303は、例えば、競技場内の異なる位置に設置され、演技中の演技者を多視点から撮影可能である。
 なお、ここでは骨格推定装置301とクライアント装置302とを別体に設けることにしたが、これに限らない。例えば、骨格推定装置301は、クライアント装置302により実現されることにしてもよい。また、情報処理システム300には、複数のクライアント装置302が含まれていてもよい。
(骨格推定装置301のハードウェア構成例)
 図4は、骨格推定装置301のハードウェア構成例を示すブロック図である。図4において、骨格推定装置301は、CPU(Central Processing Unit)401と、メモリ402と、ディスクドライブ403と、ディスク404と、通信I/F(Interface)405と、可搬型記録媒体I/F406と、可搬型記録媒体407と、を有する。また、各構成部は、バス400によってそれぞれ接続される。
 ここで、CPU401は、骨格推定装置301の全体の制御を司る。CPU401は、複数のコアを有していてもよい。メモリ402は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMがOSのプログラムを記憶し、ROMがアプリケーションプログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることで、コーディングされている処理をCPU401に実行させる。
 ディスクドライブ403は、CPU401の制御に従ってディスク404に対するデータのリード/ライトを制御する。ディスク404は、ディスクドライブ403の制御で書き込まれたデータを記憶する。ディスク404としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
 通信I/F405は、通信回線を通じてネットワーク310に接続され、ネットワーク310を介して外部のコンピュータ(例えば、図3に示したクライアント装置302、カメラ端末303)に接続される。そして、通信I/F405は、ネットワーク310と装置内部とのインターフェースを司り、外部のコンピュータからのデータの入出力を制御する。通信I/F405には、例えば、モデムやLANアダプタなどを採用することができる。
 可搬型記録媒体I/F406は、CPU401の制御に従って可搬型記録媒体407に対するデータのリード/ライトを制御する。可搬型記録媒体407は、可搬型記録媒体I/F406の制御で書き込まれたデータを記憶する。可搬型記録媒体407としては、例えば、CD(Compact Disc)-ROM、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリなどが挙げられる。
 なお、骨格推定装置301は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有することにしてもよい。また、図3に示したクライアント装置302、カメラ端末303についても、骨格推定装置301と同様のハードウェア構成により実現することができる。ただし、クライアント装置302は、上述した構成部のほかに、例えば、入力装置、ディスプレイなどを有する。また、カメラ端末303は、上述した構成部のほかに、例えば、カメラ、入力装置、ディスプレイなどを有する。
(演技者の骨格を形成する関節点)
 つぎに、演技者(対象物)の骨格を形成する関節点について説明する。
 図5は、骨格を形成する関節点の一例を示す説明図である。図5において、骨格500は、演技者の骨格を表しており、複数の間接点とリンクとを含む。関節点は、関節、頭部などのキーポイントである。リンクは、関節点間を結ぶ接続である。図5中、関節点は、実線丸印または点線丸印によって表現されている。リンクは、実線によって表現されている。
 以下の説明では、複数の関節点として、図5中の実線丸印で示す18個の関節点を例に挙げて説明する。
 実線丸印の中の数字は、関節点を識別する関節IDである。関節ID「0」の実線丸印は、骨盤(腰)中央を示す。関節ID「1」の実線丸印は、背骨を示す。関節ID「2」の実線丸印は、肩中央を示す。関節ID「3」の実線丸印は、頭を示す。関節ID「4」の実線丸印は、左肩を示す。関節ID「5」の実線丸印は、左肘を示す。関節ID「6」の実線丸印は、左手首を示す。関節ID「7」の実線丸印は、右肩を示す。関節ID「8」の実線丸印は、右肘を示す。
 関節ID「9」の実線丸印は、右手首を示す。関節ID「10」の実線丸印は、左骨盤を示す。関節ID「11」の実線丸印は、左膝を示す。関節ID「12」の実線丸印は、左足首を示す。関節ID「13」の実線丸印は、左足先を示す。関節ID「14」の実線丸印は、右骨盤を示す。関節ID「15」の実線丸印は、右膝を示す。関節ID「16」の実線丸印は、右足首を示す。関節ID「17」の実線丸印は、右足先を示す。
 なお、点線丸印511は、首を示す。点線丸印512は、左手を示す。点線丸印513は、左親指を示す。点線丸印514は、左手先を示す。点線丸印515は、右手を示す。点線丸印516は、右親指を示す。点線丸印517は、右手先を示す。
(骨格データのデータ構造例)
 つぎに、骨格データのデータ構造例について説明する。ここでは、図3に示したカメラ端末303によって演技者(対象物)を撮影した画像に基づき生成される骨格データを例に挙げて説明する。
 図6は、骨格データのデータ構造例を示す説明図である。図6において、骨格データPDは、演技者(対象物)の骨格を時系列に表す情報であり、フレームF1~Fnを含む(nは、2以上の自然数)。フレームF1~Fnは、各時点t1~tnにおける演技者の骨格を形成する各関節点の3次元空間上での位置の時間変化を示す時系列データである。
 以下の説明では、時点t1~tnのうちの任意の時点を「時点ti」と表記する場合がある(i=1,2,…,n)。
 ここで、フレームFiは、時点tiにおける演技者の骨格を形成する各関節点の3次元空間上での位置を示す。フレームFiは、関節点データ600-1~600-18を含む。各関節点データ600-1~600-18は、時点、関節ID、x、yおよびzの項目を有する。
 時点は、どの時点における関節点であるかを識別する情報である。時点は、例えば、カメラ端末303(図3参照)によって演技者が撮影された日時に対応する。関節IDは、演技者の骨格を形成する関節点を識別する識別子である。関節IDは、図5に示した「0」~「17」の関節IDに対応する。x、yおよびzは、関節IDにより識別される関節点の3次元空間上での位置を示す座標である。
 例えば、関節点データ600-1は、時点tiにおける演技者の関節ID「0」の関節点「骨盤中央」の3次元空間上での位置「x0(i),y0(i),z0(i)」を示す。なお、図示は省略するが、骨格データPDには、例えば、関節点間を結ぶリンクの情報が含まれる。
(骨格推定装置301の機能的構成例)
 図7は、骨格推定装置301の機能的構成例を示すブロック図である。図7において、骨格推定装置301は、取得部701と、算出部702と、特定部703と、決定部704と、実行制御部705と、出力部706と、を含む。取得部701~出力部706は制御部となる機能であり、具体的には、例えば、図4に示したメモリ402、ディスク404、可搬型記録媒体407などの記憶装置に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F405により、その機能を実現する。各機能部の処理結果は、例えば、メモリ402、ディスク404などの記憶装置に記憶される。
 取得部701は、演技者(対象物)の骨格を時系列に表す骨格データを取得する。演技者の骨格は、演技者についてのセンサデータに基づき認識された骨格である。センサデータは、例えば、図3に示した複数のカメラ端末303により演技者を撮影した画像(多視点画像)を含む。
 具体的には、例えば、取得部701は、図3に示したクライアント装置302から、図6に示したような骨格データPDを受信することにより、受信した骨格データPDを取得する。また、取得部701は、演技者についてのセンサデータに基づき骨格認識処理を実施することによって、骨格データPDを生成することにしてもよい。
 より詳細に説明すると、例えば、取得部701は、クライアント装置302から、演技者を撮影した画像(多視点画像)を含むセンサデータを受信する。ただし、取得部701は、複数のカメラ端末303それぞれから演技者を撮影した画像を直接受信することにしてもよい。そして、取得部701は、受信したセンサデータ(多視点画像)に基づいて、図2に示したような骨格認識処理200を実施して骨格データPDを生成することにより、生成した骨格データPDを取得することにしてもよい。
 以下の説明では、演技者(対象物)の骨格を時系列に表す骨格データとして、「骨格データPD(図6参照)」を例に挙げて説明する。
 算出部702は、取得した骨格データPDに基づいて、演技者の骨格の部位ごとの動きの時間変化を表す特徴量を算出する。骨格の部位は、骨格の一部分である。部位は、演技者の骨格を形成する関節点群のうちの複数の関節点を含む。演技者の骨格のうちのどの部位を処理対象とするかは、任意に設定可能である。
 例えば、処理対象の部位は、骨格推定の対象となる人が、どのような動きをするのかを考慮して設定される。体操競技の演技者の場合、例えば、演技者の骨格が、頭部、右腕、左腕、右脚、左脚などの部位に分けられる。なお、演技者の骨格を複数の部位に区分けするにあたり、骨格を形成する関節点群の全てを網羅するように区分けしてもよく、また、全てを網羅していなくてもよい。
 特徴量は、例えば、各部位の瞬発的な動きや静止を捉えるための情報である。特徴量は、例えば、演技者(対象物)の骨格の部位間の相対角度の時間変化に基づく部位間の角速度を含むものであってもよい。また、特徴量は、例えば、演技者(対象物)の骨格の部位間の相対角度の時間変化に基づく部位間の角加速度を含むものであってもよい。
 ここで、体操競技の演技者を例に挙げて、骨格の部位について説明する。ここでは、演技者の骨格を5つの部位に区分けする場合を例に挙げて説明する。また、各部位が複数の関節点を含むことから、各部位を「部位グループ」と表記する場合がある。
 図8は、骨格の部位の一例を示す説明図である。図8において、骨格500に含まれる部位グループG1~G5(5つの部位)が示されている。部位グループG1は、部位「頭部」に対応し、関節ID「2」の関節点と関節ID「3」の関節点を含む。部位グループG2は、部位「右腕」に対応し、関節ID「7」の関節点と関節ID「8」の関節点と関節ID「9」の関節点を含む。
 部位グループG3は、部位「左腕」に対応し、関節ID「4」の関節点と関節ID「5」の関節点と関節ID「6」の関節点を含む。部位グループG4は、部位「右脚」に対応し、関節ID「14」の関節点と関節ID「15」の関節点と関節ID「16」の関節点と関節ID「17」の関節点を含む。部位グループG5は、部位「左脚」に対応し、関節ID「10」の関節点と関節ID「11」の関節点と関節ID「12」の関節点と関節ID「13」の関節点を含む。
 ここで、図8に示した部位グループG1~G5(5つの部位)を例に挙げて、部位ごとの動きの時間変化を表す特徴量を算出する具体的な処理例について説明する。
 まず、算出部702は、各部位グループG1~G5(部位)の向きを定義する。ここでは、部位グループG1の向きを、関節ID「3」の関節点(頭)から関節ID「2」の関節点(肩中央)への向きとする。部位グループG2の向きを、関節ID「9」の関節点(右手首)から関節ID「7」の関節点(右肩)への向きとする。
 部位グループG3の向きを、関節ID「6」の関節点(左手首)から関節ID「4」の関節点(左肩)への向きとする。部位グループG4の向きを、関節ID「17」の関節点(右足先)から関節ID「14」の関節点(右骨盤)への向きとする。部位グループG5の向きを、関節ID「13」の関節点(左足先)から関節ID「10」の関節点(左骨盤)への向きとする。
 算出部702は、演技者の骨格の各部位(部位グループG1~G5)の向きを算出する。具体的には、例えば、算出部702は、骨格データPDに基づいて、下記式(1)を用いて、各部位グループG1~G5の向き(e^x,e^y,e^z)を算出することができる。ただし、x1は、各向きの始点のx座標を示す。x2は、各向きの終点のx座標を示す。y1は、各向きの始点のy座標を示す。y2は、各向きの終点のy座標を示す。z1は、各向きの始点のz座標を示す。z2は、各向きの終点のz座標を示す。eは、下記式(2)によって表される。^は、eの上のハット記号を示す。
Figure JPOXMLDOC01-appb-M000001
 各部位グループG1~G5の向きは、例えば、骨格データPDに含まれる各時点tiのフレームFiごとに算出される。これにより、時点tiごとの各部位グループG1~G5の向きが算出される。算出された各部位グループG1~G5の向きは、例えば、図9に示すようなエッジデータテーブル900に記憶される。エッジデータテーブル900は、例えば、メモリ402、ディスク404などの記憶装置により実現される。
 図9は、エッジデータテーブル900の記憶内容の一例を示す説明図である。図9において、エッジデータテーブル900は、時点、グループID、e^x、e^yおよびe^zのフィールドを有し、各フィールドに情報を設定することで、エッジデータ900-1~900-5をレコードとして記憶する。
 ここで、時点は、エッジデータに対応する時点(例えば、カメラ端末303によって演技者が撮影された日時)を示す。グループIDは、部位グループ(部位)を識別する識別子である。e^xは、部位グループの向きのx成分を示す。e^yは、部位グループの向きのy成分を示す。e^zは、部位グループの向きのz成分を示す。
 例えば、エッジデータ900-1は、時点tiにおける部位グループG1の向き「ex1(i),ey1(i),ez1(i)」を示す。
 つぎに、算出部702は、算出した部位間(部位グループ間)の向きに基づいて、部位間の相対角度を算出する。部位間の相対角度は、例えば、ある部位の向きと他の部位の向きとがなす角度に相当する。具体的には、例えば、算出部702は、図9に示したような各時点tiのエッジデータテーブル900を参照して、下記式(3)を用いて、部位グループ間の相対角度を算出することができる。
 ただし、θp,qは、部位グループ間の相対角度を示す。e^x,pは、一方の部位グループGpの向きのx成分を示す。e^x,qは、他方の部位グループGqの向きのx成分を示す。e^y,pは、一方の部位グループGpの向きのy成分を示す。e^y,qは、他方の部位グループGqの向きのy成分を示す。e^z,pは、一方の部位グループGpの向きのz成分を示す。e^z,qは、他方の部位グループGqの向きのz成分を示す。
Figure JPOXMLDOC01-appb-M000002
 各時点tiにおける部位グループ間の相対角度は、例えば、部位グループ同士の組み合わせごとに算出される。部位グループG1~G5の場合、部位グループ同士の組み合わせは、10通りとなる(G1-G2,G1-G3,G1-G4,G1-G5,G2-G3,G2-G4,G2-G5,G3-G4,G3-G5,G4-G5)。算出された部位グループ間の相対角度は、例えば、図10に示すような相対角度テーブル1000に記憶される。相対角度テーブル1000は、例えば、メモリ402、ディスク404などの記憶装置により実現される。
 図10は、相対角度テーブル1000の記憶内容の一例を示す説明図である。図10において、相対角度テーブル1000は、時点、組み合わせIDおよび相対角度のフィールドを有し、各フィールドに情報を設定することで、相対角度データ1000-1~1000-10をレコードとして記憶する。
 ここで、時点は、相対角度データに対応する時点を示す。組み合わせIDは、部位グループ同士の組み合わせを示す。相対角度は、部位グループ間の相対角度を示す。例えば、相対角度データ1000-1は、時点tiにおける部位グループG1と部位グループG2との間の相対角度θ1,2(i)を示す。
 つぎに、算出部702は、算出した部位間(部位グループ間)の相対角度に基づいて、部位間の角速度を算出する。部位間の角速度は、単位時間あたりに部位が回転する角度に相当し、部位の動きを捉えるための指標値の一つといえる。具体的には、例えば、算出部702は、図10に示したような各時点tiの相対角度テーブル1000を参照して、下記式(4)を用いて、部位グループ間の角速度を算出することができる。
 ただし、ωp,q(t)は、時点tiにおけるグループGpとグループGqとの間の角速度を示す。θp,q(t)は、時点tiにおけるグループGpとグループGqとの間の相対角度を示す。θp,q(t-1)は、時点t(i-1)におけるグループGpとグループGqとの間の相対角度を示す。
 ωp,q(t)=θp,q(t)-θp,q(t-1)  ・・・(4)
 部位グループ間の角速度は、例えば、時点t2~tnの各時点tiについて、部位グループ同士の組み合わせごとに算出される。算出された部位グループ間の角速度は、例えば、図11に示すような角速度テーブル1100に記憶される。角速度テーブル1100は、例えば、メモリ402、ディスク404などの記憶装置により実現される。
 図11は、角速度テーブル1100の記憶内容の一例を示す説明図である。図11において、角速度テーブル1100は、時点、組み合わせIDおよび角速度のフィールドを有し、各フィールドに情報を設定することで、角速度データ1100-1~1100-10をレコードとして記憶する。
 ここで、時点は、角速度データに対応する時点を示す。組み合わせIDは、部位グループ同士の組み合わせを示す。角速度は、部位グループ間の角速度を示す。例えば、角速度データ1100-1は、時点tiにおける部位グループG1と部位グループG2との間の加速度ω1,2(i)を示す。
 つぎに、算出部702は、算出した部位間(部位グループ間)の角速度に基づいて、部位間の角加速度を算出する。部位間の角加速度は、単位時間あたりの角速度の変化に相当し、部位の動きを捉えるための指標値の一つといえる。具体的には、例えば、算出部702は、図11に示したような各時点tiの角速度テーブル1100を参照して、下記式(5)を用いて、部位グループ間の角加速度を算出することができる。
 ただし、αp,q(t)は、時点tiにおけるグループGpとグループGqとの間の角加速度を示す。ωp,q(t)は、時点tiにおけるグループGpとグループGqとの間の角速度を示す。ωp,q(t-1)は、時点t(i-1)におけるグループGpとグループGqとの間の角速度を示す。
 αp,q(t)=ωp,q(t)-ωp,q(t-1)  ・・・(5)
 部位グループ間の角加速度は、例えば、時点t2~tnの各時点tiについて、部位グループ同士の組み合わせごとに算出される。算出された部位グループ間の角加速度は、例えば、図12に示すような角加速度テーブル1200に記憶される。角加速度テーブル1200は、例えば、メモリ402、ディスク404などの記憶装置により実現される。
 図12は、角加速度テーブル1200の記憶内容の一例を示す説明図である。図12において、角加速度テーブル1200は、時点、組み合わせIDおよび角加速度のフィールドを有し、各フィールドに情報を設定することで、角加速度データ1200-1~1200-10をレコードとして記憶する。
 ここで、時点は、角加速度データに対応する時点を示す。組み合わせIDは、部位グループ同士の組み合わせを示す。角加速度は、部位グループ間の角加速度を示す。例えば、角加速度データ1200-1は、時点tiにおける部位グループG1と部位グループG2との間の角加速度α1,2(i)を示す。
 特定部703は、算出された特徴量に基づいて、骨格データPDが表す骨格のうち平滑化を行う対象部位を特定する。具体的には、例えば、特定部703は、骨格データPDが表す骨格のうち、算出された角加速度が第1のしきい値Th1以上となる部位以外の部位を、対象部位として特定することにしてもよい。
 換言すれば、特定部703は、骨格データPDが表す骨格のうち、算出された角加速度が第1のしきい値Th1以上となる部位を、平滑化を行わない部位として特定する。第1のしきい値Th1は、任意に設定可能であり、例えば、角加速度が第1のしきい値Th1以上となると、瞬発的な動きであると判断できる値に設定される。
 より詳細に説明すると、例えば、特定部703は、図12に示したような各時点tiの角加速度テーブル1200を参照して、対象部位を特定する。対象部位の特定は、例えば、骨格データPDが時系列に表す骨格のうち、平滑化を行う時点tiと部位とを特定することによって行われる。
 例えば、角加速度テーブル1200内の角加速度データ1200-10が示す角加速度α4,5(i)が第1のしきい値Th1以上であるとする。また、角加速度テーブル1200内の角加速度データ1200-1~1200-9が示す角加速度α1,3(i)~α3,5(i)が第1のしきい値Th1未満であるとする。
 角加速度データ1200-10が示す組み合わせIDから特定される部位グループの組み合わせは、部位グループG4と部位グループG5である。この場合、特定部703は、骨格データPDが時系列に表す骨格のうち、時点tiについて、部位グループG4,G5以外の部位を、対象部位として特定する。
 ここで、部位グループG4は、関節ID「14」の関節点と関節ID「15」の関節点と関節ID「16」の関節点と関節ID「17」の関節点とを含む部位(右脚)である。部位グループG5は、関節ID「10」の関節点と関節ID「11」の関節点と関節ID「12」の関節点と関節ID「13」の関節点とを含む部位(左脚)である。
 このため、特定部703は、時点tiについて、演技者の骨格のうち、右脚および左脚以外の部位を対象部位として特定する。このようにして、特定部703は、各時点(例えば、時点t2~tn)について、対象部位の特定を行う。これにより、骨格データPDが時系列に表す骨格のうち、瞬発的な動きの部位を、平滑化の対象から除外することができる。
 また、特定部703は、例えば、角加速度αp,q(i)が第1のしきい値Th1以上の場合に、時点tiを基準として、前後一定期間における部位グループGp,Gq(例えば、部位グループG4,G5)を、平滑化の対象から除外することにしてもよい。前後一定期間は、任意に設定可能であり、例えば、前後1秒間程度の期間(対象フレームFiの前後一定フレーム分)に設定される。
 具体的には、例えば、特定部703は、骨格データPDが表す骨格のうち、時点tiの対象フレームFiと、対象フレームFiの前後一定数分のフレームとにおける部位グループGp,Gqを、平滑化の対象から除外する。これにより、瞬発的な動きが検知された部位について、その動きの前後一定期間、平滑化の対象から除外することができる。
 決定部704は、算出された特徴量に基づいて、対象部位にかける平滑化の度合いを決定する。対象部位は、例えば、特定部703によって特定された対象部位である。ただし、対象部位は、演技者の骨格に含まれる全部位(例えば、部位グループG1~G5)であってもよい。
 具体的には、例えば、決定部704は、算出された特徴量に含まれる一定区間あたりの角速度の平均値に基づいて、対象部位にかける平滑化の度合いを決定することにしてもよい。一定区間は、任意に設定可能であり、例えば、対象時点tiの前後数秒程度の期間である。
 対象時点tiは、一定区間を特定する際に基準とする時点であり、任意に設定可能である。例えば、対象時点tiは、一定区間同士が重複しないように、一定区間の区間長ごとに設定されてもよい。また、対象時点tiは、一定区間同士が一部重複するように設定されてもよい。
 より詳細に説明すると、例えば、決定部704は、図11に示したような各時点の角速度テーブル1100を参照して、下記式(6)を用いて、各対象時点tiを基準として、一定区間あたりの角速度の平均値を算出する。角速度は、対象部位を含む部位間(部位グループ間)の角速度である。
 ただし、ωp,q(t)aveは、対象時点tiにおける角速度の平均値を示す。wは、ウインドウサイズを示す。ウインドウサイズは、平滑化を行うウインドウの幅であり、例えば、フレーム数によって表される。wは、例えば、「w=21」である。「w=21」は、強いフィルタをかける際のウインドウサイズに相当する。
Figure JPOXMLDOC01-appb-M000003
 例えば、対象時点tiを「時点t20」とし、wを「w=21」とする。この場合、ωp,q(t20)aveは、部位グループGp,Gq同士の時点t10~t30の区間における角速度ωp,q(t10)~ωp,q(t30)の平均となる。
 そして、決定部704は、骨格データPDが表す骨格のうち、算出した角速度の平均値が第2のしきい値Th2以下となる部位にかける平滑化の度合いを、算出した角速度の平均値が第2のしきい値Th2より大きい部位よりも強い度合いに決定することにしてもよい。
 ここで、平滑化の度合いを「0」、「1」、「2」のいずれかの値によって表すとする。平滑化の度合いは、値が大きくなるほど強くなる。例えば、度合い「0」は、平滑化を行わないことを示す。度合い「1」は、弱い平滑化を行うことを示す。度合い「2」は、強い平滑化を行うことを示す。
 例えば、決定部704は、演技者の骨格のうち、特定された対象部位以外の部位(平滑化を行わない時点tiと部位)にかける平滑化の度合いを「0」に決定する。また、決定部704は、特定された対象部位のうち、角速度の平均値が第2のしきい値Th2より大きい部位(対象時点tiの部位)にかける平滑化の度合いを「1」に決定する。また、決定部704は、特定された対象部位のうち、角速度の平均値が第2のしきい値Th2以下の部位(対象時点tiの部位)にかける平滑化の度合いを「2」に決定する。
 なお、演技者の骨格に含まれる全部位(例えば、部位グループG1~G5)を対象部位とする場合、決定部704は、演技者の骨格に含まれる全部位のうち、角速度の平均値が第2のしきい値Th2より大きい部位にかける平滑化の度合いを「1」に決定することにしてもよい。また、決定部704は、全部位のうち、角速度の平均値が第2のしきい値Th2以下の部位にかける平滑化の度合いを「2」に決定することにしてもよい。
 また、決定部704は、算出された特徴量に基づいて、骨格データPDが表す骨格の部位にかける平滑化フィルタの係数を特定することにしてもよい。平滑化フィルタとは、ノイズを除去するための平均化処理などにより平滑化を行うためのフィルタである。平滑化フィルタは、例えば、Savitzky-Golay平滑化フィルタ(SGフィルタ)である。SGフィルタは、高周波成分を残しつつ、動きを滑らかにするという特徴がある。
 平滑化フィルタの係数とは、骨格データPDに対する平滑化処理を実施する際に、各フレームの対象部位の値にかける係数である。対象部位の値は、対象部位に含まれる各関節点の位置(x,y,z)である。平滑化フィルタの係数は、例えば、特徴量(角速度の平均値)に基づき決定される平滑化の度合いに応じて特定される。
 ここで、図13および図14を用いて、平滑化フィルタについて説明する。
 図13は、平滑化フィルタの一例を示す説明図(その1)である。図13において、平滑化フィルタ1300は、ウインドウサイズが「w=9」の場合のSGフィルタを示す。番号「-4~4」は、番号「0」のフレームを基準として、平滑化をかけるフレームを特定するための番号である。
 番号「0」は、対象時点tiのフレームを示す。番号「-1」は、対象時点tiの一つ前のフレームを示す。番号「-2」は、対象時点tiの二つ前のフレームを示す。番号「-3」は、対象時点tiの三つ前のフレームを示す。番号「-4」は、対象時点tiの四つ前のフレームを示す。
 番号「1」は、対象時点tiの一つ後のフレームを示す。番号「2」は、対象時点tiの二つ後のフレームを示す。番号「3」は、対象時点tiの三つ後のフレームを示す。番号「4」は、対象時点tiの四つ後のフレームを示す。係数は、各番号に対応するフレームの対象部位の値にかける係数を示す。
 例えば、番号「0」の係数「0.417」は、番号「0」に対応するフレーム(対象フレームFi)の対象部位の値にかける係数を示す。この場合、骨格データPDに対する平滑化処理において、対象部位に含まれる各関節点の位置の各成分x,y,zに係数「0.417」が乗算される。
 また、番号「-4」の係数「0.034」は、番号「-4」に対応するフレーム(対象フレームF(i-4))の対象部位の値にかける係数を示す。この場合、骨格データPDに対する平滑化処理において、対象部位に含まれる各関節点の位置の各成分x,y,zに係数「0.034」が乗算される。
 図14は、平滑化フィルタの一例を示す説明図(その2)である。図14において、平滑化フィルタ1400は、ウインドウサイズが「w=21」の場合のSGフィルタを示す。番号「-10~10」は、番号「0」のフレームを基準として、平滑化をかけるフレームを特定するための番号である。
 番号「0」は、対象時点tiのフレームを示す。例えば、番号「-1」は、対象時点tiの一つ前のフレームを示す。また、番号「-10」は、対象時点tiの十前のフレームを示す。また、番号「1」は、対象時点tiの一つ後のフレームを示す。また、番号「10」は、対象時点tiの十後のフレームを示す。係数は、各番号に対応するフレームの対象部位の値にかける係数を示す。
 例えば、番号「0」の係数「0.169」は、番号「0」に対応するフレーム(対象フレームFi)の対象部位の値にかける係数を示す。この場合、骨格データPDに対する平滑化処理において、対象部位に含まれる各関節点の位置の各成分x,y,zに係数「0.169」が乗算される。
 また、番号「-10」の係数「0.044」は、番号「-10」に対応するフレーム(対象フレームF(i-10))の対象部位の値にかける係数を示す。この場合、骨格データPDに対する平滑化処理において、対象部位に含まれる各関節点の位置の各成分x,y,zに係数「0.044」が乗算される。
 具体的には、例えば、決定部704は、骨格データPDに対する平滑化処理を実施する際に、対象部位にかける平滑化の度合いが「1」の場合、その対象部位にかける平滑化フィルタの係数として、図13に示した平滑化フィルタ1300の係数を特定する。また、決定部704は、骨格データPDに対する平滑化処理を実施する際に、対象部位にかける平滑化の度合いが「2」の場合、その対象部位にかける平滑化フィルタの係数として、図14に示した平滑化フィルタ1400の係数を特定する。
 実行制御部705は、骨格データPDに対する平滑化処理を実施する。この際、実行制御部705は、例えば、骨格データPDが表す骨格のうち、特定された対象部位に対する平滑化を行う。対象部位に対する平滑化には、例えば、予め決められた平滑化フィルタ(例えば、平滑化フィルタ1300)が用いられることにしてもよい。
 また、実行制御部705は、骨格データPDに対する平滑化処理を実施する際に、骨格データPDが表す骨格のうち、対象部位に対して、決定された度合いの平滑化を行うことにしてもよい。具体的には、例えば、実行制御部705は、平滑化の度合いに応じて特定された平滑化フィルタの係数を用いて、対象部位に対する平滑化を行う。
 より詳細に説明すると、例えば、実行制御部705は、骨格データPDに対する平滑化処理を実施する際に、対象部位にかける平滑化の度合いが「1」の場合、特定された平滑化フィルタ1300を用いて、対象部位に対する平滑化を行う。ただし、対象部位に対して平滑化フィルタ1300をかける範囲内(ウインドウサイズ分の区間)に、平滑化を行う対象から除外された時点が含まれる場合がある。この場合、実行制御部705は、対象部位について、その時点における平滑化は行わないことにしてもよい。
 また、実行制御部705は、骨格データPDに対する平滑化処理を実施する際に、対象部位にかける平滑化の度合いが「2」の場合、特定された平滑化フィルタ1400を用いて、対象部位に対する平滑化を行う。ただし、対象部位に対して平滑化フィルタ1400をかける範囲内に、平滑化を行う対象から除外された時点が含まれる場合がある。この場合、実行制御部705は、対象部位について、その時点における平滑化は行わないことにしてもよい。
 出力部706は、平滑化処理後の骨格データPDを出力する。出力部706の出力形式としては、例えば、メモリ402、ディスク404などの記憶装置への記憶、通信I/F405による他のコンピュータへの送信、不図示のディスプレイへの表示、不図示のプリンタへの印刷出力などがある。
 具体的には、例えば、出力部706は、平滑化フィルタ済みの骨格データPDを、クライアント装置302に送信することにしてもよい。これにより、ユーザは、体操競技の演技者などの平滑化後の3D関節座標を得ることができる。
 なお、上述した骨格推定装置301の機能部(取得部701~出力部706)は、情報処理システム300内の複数のコンピュータ(例えば、骨格推定装置301、クライアント装置302)により実現されることにしてもよい。
 また、骨格推定装置301は、取得部701~出力部706のうち、決定部704を有さないことにしてもよい。この場合、実行制御部705は、例えば、予め決められた平滑化フィルタ(例えば、平滑化フィルタ1300)が用いて、骨格データPDが表す骨格のうち、特定された対象部位に対する平滑化を行う。
 また、骨格推定装置301は、取得部701~出力部706のうち、特定部703を有さないことにしてもよい。この場合、実行制御部705は、例えば、骨格データPDが表す骨格に含まれる各部位(対象部位)に対して、各部位について決定された度合いの平滑化を行う。
(骨格推定装置301の骨格推定処理手順)
 つぎに、図15を用いて、骨格推定装置301の骨格推定処理手順について説明する。
 図15は、骨格推定装置301の骨格推定処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、骨格推定装置301は、演技者(対象物)の骨格を時系列に表す骨格データPDを取得する(ステップS1501)。そして、骨格推定装置301は、取得した骨格データPDに基づいて、エッジデータ算出処理を実行する(ステップS1502)。エッジデータ算出処理の具体的な処理手順については、図16を用いて後述する。
 つぎに、骨格推定装置301は、算出したエッジデータに基づいて、特徴量算出処理を実行する(ステップS1503)。特徴量算出処理の具体的な処理手順については、図17~図19を用いて後述する。そして、骨格推定装置301は、算出した特徴量に基づいて、平滑化度合決定処理を実行する(ステップS1504)。平滑化度合決定処理の具体的な処理手順については、図20および図21を用いて後述する。
 つぎに、骨格推定装置301は、骨格データPDに対する平滑化処理を実行する(ステップS1505)。この際、骨格推定装置301は、演技者の各部位(各部位グループG1~G5)について、ステップS1504において決定された度合いに応じた平滑化を行う。
 そして、骨格推定装置301は、平滑化処理後の骨格データPDを出力して(ステップS1506)、本フローチャートによる一連の処理を終了する。これにより、体操競技の演技者などの平滑化後の3D関節座標を出力することができる。
 つぎに、図16を用いて、図15に示したステップS1502のエッジデータ算出処理の具体的な処理手順について説明する。以下の説明では、演技者の骨格に含まれる部位として、図8に示した部位グループG1~G5を例に挙げて説明する。
 図16は、エッジデータ算出処理の具体的処理手順の一例を示すフローチャートである。図16のフローチャートにおいて、まず、骨格推定装置301は、時点tiの「i」を「i=1」として(ステップS1601)、骨格データPDからフレームFiを選択する(ステップS1602)。
 つぎに、骨格推定装置301は、部位グループG1~G5から選択されていない未選択の部位グループを選択する(ステップS1603)。そして、骨格推定装置301は、選択したフレームFiに基づいて、選択した部位グループの向きを算出する(ステップS1604)。
 つぎに、骨格推定装置301は、部位グループG1~G5から選択されていない未選択の部位グループがあるか否かを判断する(ステップS1605)。ここで、未選択の部位グループがある場合(ステップS1605:Yes)、骨格推定装置301は、ステップS1603に戻る。
 一方、未選択の部位グループがない場合(ステップS1605:No)、骨格推定装置301は、「i」をインクリメントして(ステップS1606)、「i」が「n」より大きくなったか否かを判断する(ステップS1607)。ここで、「i」が「n」以下の場合(ステップS1607:No)、骨格推定装置301は、ステップS1602に戻る。
 一方、「i」が「n」より大きい場合(ステップS1607:Yes)、骨格推定装置301は、エッジデータ算出処理を呼び出したステップに戻る。
 これにより、演技者の骨格に含まれる各部位(部位グループG1~G5)の向きを算出することができる。なお、算出された各部位(部位グループG1~G5)の向きは、例えば、図9に示したようなエッジデータテーブル900に記憶される。
 つぎに、図17~図19を用いて、図15に示したステップS1503の特徴量算出処理の具体的な処理手順について説明する。
 図17~図19は、特徴量算出処理の具体的処理手順の一例を示すフローチャートである。図17のフローチャートにおいて、まず、骨格推定装置301は、時点tiの「i」を「i=1」とする(ステップS1701)。つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち選択されていない未選択の部位グループ同士の組み合わせを選択する(ステップS1702)。
 そして、骨格推定装置301は、時点tiのエッジデータテーブル900を参照して、選択した部位グループ同士の相対角度を算出する(ステップS1703)。つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち未選択の部位グループ同士の組み合わせがあるか否かを判断する(ステップS1704)。
 ここで、未選択の部位グループ同士の組み合わせがある場合(ステップS1704:Yes)、骨格推定装置301は、ステップS1702に戻る。一方、未選択の部位グループ同士の組み合わせがない場合(ステップS1704:No)、骨格推定装置301は、「i」をインクリメントする(ステップS1705)。
 そして、骨格推定装置301は、「i」が「n」より大きくなったか否かを判断する(ステップS1706)。ここで、「i」が「n」以下の場合(ステップS1706:No)、骨格推定装置301は、ステップS1702に戻る。
 一方、「i」が「n」より大きい場合(ステップS1706:Yes)、骨格推定装置301は、図18に示すステップS1801に移行する。なお、算出された部位グループ同士の相対角度は、例えば、図10に示したような相対角度テーブル1000に記憶される。
 図18のフローチャートにおいて、まず、骨格推定装置301は、時点tiの「i」を「i=1」とする(ステップS1801)。つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち選択されていない未選択の部位グループ同士の組み合わせを選択する(ステップS1802)。
 そして、骨格推定装置301は、時点ti,t(i-1)の相対角度テーブル1000を参照して、選択した部位グループ同士の角速度を算出する(ステップS1803)。ただし、角速度を算出するための情報が揃っていない場合、骨格推定装置301は、ステップS1803をスキップする。
 つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち未選択の部位グループ同士の組み合わせがあるか否かを判断する(ステップS1804)。ここで、未選択の部位グループ同士の組み合わせがある場合(ステップS1804:Yes)、骨格推定装置301は、ステップS1802に戻る。
 一方、未選択の部位グループ同士の組み合わせがない場合(ステップS1804:No)、骨格推定装置301は、「i」をインクリメントする(ステップS1805)。そして、骨格推定装置301は、「i」が「n」より大きくなったか否かを判断する(ステップS1806)。
 ここで、「i」が「n」以下の場合(ステップS1806:No)、骨格推定装置301は、ステップS1802に戻る。一方、「i」が「n」より大きい場合(ステップS1806:Yes)、骨格推定装置301は、図19に示すステップS1901に移行する。なお、算出された部位グループ同士の角速度は、例えば、図11に示したような角速度テーブル1100に記憶される。
 図19のフローチャートにおいて、まず、骨格推定装置301は、時点tiの「i」を「i=1」とする(ステップS1901)。つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち選択されていない未選択の部位グループ同士の組み合わせを選択する(ステップS1902)。
 そして、骨格推定装置301は、時点ti,t(i-1)の角速度テーブル1100を参照して、選択した部位グループ同士の角加速度を算出する(ステップS1903)。ただし、角加速度を算出するための情報が揃っていない場合、骨格推定装置301は、ステップS1903をスキップする。
 つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち未選択の部位グループ同士の組み合わせがあるか否かを判断する(ステップS1904)。ここで、未選択の部位グループ同士の組み合わせがある場合(ステップS1904:Yes)、骨格推定装置301は、ステップS1902に戻る。
 一方、未選択の部位グループ同士の組み合わせがない場合(ステップS1904:No)、骨格推定装置301は、「i」をインクリメントする(ステップS1905)。そして、骨格推定装置301は、「i」が「n」より大きくなったか否かを判断する(ステップS1906)。
 ここで、「i」が「n」以下の場合(ステップS1906:No)、骨格推定装置301は、ステップS1902に戻る。一方、「i」が「n」より大きい場合(ステップS1906:Yes)、骨格推定装置301は、特徴量算出処理を呼び出したステップに戻る。なお、算出された部位グループ同士の角加速度は、例えば、図12に示したような角加速度テーブル1200に記憶される。
 これにより、演技者の骨格の各部位(部位グループG1~G5)の動きを捉えるための特徴量を算出することができる。
 つぎに、図20および図21を用いて、図15に示したステップS1504の平滑化度合決定処理の具体的な処理手順について説明する。
 図20および図21は、平滑化度合決定処理の具体的処理手順の一例を示すフローチャートである。図20のフローチャートにおいて、まず、骨格推定装置301は、時点tiの「i」を「i=1」とする(ステップS2001)。つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち選択されていない未選択の部位グループ同士の組み合わせを選択する(ステップS2002)。
 そして、骨格推定装置301は、時点tiの角加速度テーブル1200を参照して、選択した部位グループ同士の角加速度が第1のしきい値Th1以上であるか否かを判断する(ステップS2003)。ここで、角加速度が第1のしきい値Th1未満の場合(ステップS2003:No)、骨格推定装置301は、ステップS2006に移行する。
 一方、角加速度が第1のしきい値Th1以上の場合(ステップS2003:Yes)、骨格推定装置301は、選択した部位グループ同士の組み合わせに含まれる部位グループを特定する(ステップS2004)。ステップS2004の処理は、骨格データPDが表す骨格のうち、平滑化を行わない部位を特定する処理に相当する。
 そして、骨格推定装置301は、特定した部位グループについて、時点tiの対象フレームFiと対象フレームFiの前後一定数分のフレームとにおける平滑化の度合いを「0」に決定する(ステップS2005)。なお、ステップS2005において、部位グループについて、あるフレームにおける平滑化の度合いが決定済みの場合は、骨格推定装置301は、そのフレームにおける平滑化の度合いを変更しない。
 つぎに、骨格推定装置301は、時点tiについて、部位グループG1~G5のうち未選択の部位グループ同士の組み合わせがあるか否かを判断する(ステップS2006)。ここで、未選択の部位グループ同士の組み合わせがある場合(ステップS2006:Yes)、骨格推定装置301は、ステップS2002に戻る。
 一方、未選択の部位グループ同士の組み合わせがない場合(ステップS2006:No)、骨格推定装置301は、「i」をインクリメントする(ステップS2007)。そして、骨格推定装置301は、「i」が「n」より大きくなったか否かを判断する(ステップS2008)。
 ここで、「i」が「n」以下の場合(ステップS2008:No)、骨格推定装置301は、ステップS2002に戻る。一方、「i」が「n」より大きい場合には(ステップS2008:Yes)、骨格推定装置301は、図21に示すステップS2101に移行する。
 図21のフローチャートにおいて、まず、骨格推定装置301は、予め設定された複数の対象時点のうち未選択の対象時点tiを選択する(ステップS2101)。つぎに、骨格推定装置301は、対象時点tiについて、部位グループG1~G5のうち選択されていない未選択の部位グループ同士の組み合わせを選択する(ステップS2102)。
 そして、骨格推定装置301は、対象時点tiを基準とした一定区間分の角速度テーブル1100を参照して、選択した部位グループ同士の一定区間あたりの角速度の平均値を算出する(ステップS2103)。つぎに、骨格推定装置301は、算出した角速度の平均値が第2のしきい値Th2以下となるか否かを判断する(ステップS2104)。
 ここで、角速度の平均値が第2のしきい値Th2以下の場合(ステップS2104:Yes)、骨格推定装置301は、選択した部位グループ同士の組み合わせに含まれる部位グループを特定する(ステップS2105)。ステップS2105の処理は、骨格データPDが表す骨格のうち、平滑化を行う対象部位を特定する処理に相当する。
 そして、骨格推定装置301は、特定した部位グループについて、対象時点tiの対象フレームFiにおける平滑化の度合いを「2」に決定して(ステップS2106)、ステップS2109に移行する。なお、ステップS2106において、部位グループについて、対象フレームFiにおける平滑化の度合いが決定済みの場合は、骨格推定装置301は、対象フレームFiにおける平滑化の度合いを変更しない。
 また、ステップS2104において、角速度の平均値が第2のしきい値Th2より大きい場合(ステップS2104:No)、骨格推定装置301は、選択した部位グループ同士の組み合わせに含まれる部位グループを特定する(ステップS2107)。ステップS2107の処理は、骨格データPDが表す骨格のうち、平滑化を行う対象部位を特定する処理に相当する。
 そして、骨格推定装置301は、特定した部位グループについて、対象時点tiの対象フレームFiにおける平滑化の度合いを「1」に決定する(ステップS2108)。なお、ステップS2108において、部位グループについて、対象フレームFiにおける平滑化の度合いが決定済みの場合は、骨格推定装置301は、対象フレームFiにおける平滑化の度合いを変更しない。
 つぎに、骨格推定装置301は、対象時点tiについて、部位グループG1~G5のうち未選択の部位グループ同士の組み合わせがあるか否かを判断する(ステップS2109)。ここで、未選択の部位グループ同士の組み合わせがある場合(ステップS2109:Yes)、骨格推定装置301は、ステップS2102に戻る。
 一方、未選択の部位グループ同士の組み合わせがない場合(ステップS2109:No)、骨格推定装置301は、予め設定された複数の対象時点のうち未選択の対象時点があるか否かを判断する(ステップS2110)。
 ここで、未選択の対象時点がある場合(ステップS2110:Yes)、骨格推定装置301は、ステップS2101に戻る。一方、未選択の対象時点がない場合(ステップS2110:No)、骨格推定装置301は、平滑化度合決定処理を呼び出したステップに戻る。
 これにより、演技者の各部位(各部位グループG1~G5)にかける平滑化の度合いを決定することができる。
(骨格の推定結果)
 つぎに、演技者の骨格の推定結果について説明する。
 図22は、演技者(平均台)の骨格の推定結果の一例を示す説明図である。図22において、推定結果2201,2202は、体操競技の演技者が平均台の輪とびを演技中の骨格の推定結果である。ここでは、審判による判定では、「技成功」と判定された場合を想定する。
 推定結果2201(実線に相当)は、骨格推定装置301による平滑化処理後の骨格を表しており、演技者の骨格のうち右脚部分の平滑化が行われなかった場合の推定結果である。推定結果2202(点線に相当)は、演技者の骨格の全部位に対して平滑化が行われた場合の推定結果である(平滑化の誤りによるNG例)。
 平均台の輪とびでは、演技者の足先の最頂点位置が重要となる。推定結果2201では、右脚の足先部分に平滑化フィルタが適用されておらず、実際の演技者の右脚の足先部分が精度よく推定されている。このため、推定結果2201に対する技認識処理を実施すると、審判と同じ結果(輪とびの技成功)が得られる。
 一方、推定結果2202では、右脚の足先部分に平滑化フィルタが適用されて、実際の演技者の右脚と比べて、足先部分が僅かに下がっている。このため、推定結果2202に対する技認識処理を実施すると、単に前後開脚とびと判定されて、審判と異なる結果(技失敗)が得られる。
 このように、平均台の輪とびでは、審判の判定に合わせるために、演技者の足先に平滑化フィルタを適用しないほうがよいことがわかる。骨格推定装置301によれば、瞬発的な動きが生じている部位を、平滑化を行う対象から除外することができる。
 図23Aおよび図23Bは、演技者(つり輪)の骨格の推定結果の一例を示す説明図である。図23Aおよび図23Bにおいて、推定結果2311~2315,2321~2325は、体操競技の演技者がつり輪の水平支持を演技中の骨格を時系列に表すフレームごとの推定結果である。各推定結果2311~2315は、各推定結果2321~2325と同一時点の推定結果である。例えば、推定結果2311と推定結果2321は、同一時点の推定結果である。
 ここでは、審判による判定では、「技成功」と判定された場合を想定する。
 推定結果2311~2315(左側)は、演技者の骨格の全部位に対して弱い平滑化が行われた場合の推定結果である(平滑化の誤りによるNG例)。推定結果2321~2325(右側)は、骨格推定装置301による平滑化処理後の骨格を表しており、演技者の骨格の静止箇所に対して強い平滑化が行われた場合の推定結果である。
 ここで、図24を用いて、演技者の関節点の位置の時間変化について説明する。ここでは、演技者の左足先のz座標の時間変化を例に挙げて説明する。
 図24は、左足先のz座標の時間変化を示す説明図である。図24において、グラフ2401は、図23に示した推定結果2311~2315に対応しており、弱い平滑化をかけた場合の演技者の左足先のz座標の時間変化を示す。グラフ2402は、図23に示した推定結果2321~2325に対応しており、強い平滑化をかけた場合の演技者の左足先のz座標の時間変化を示す。ただし、図24中、横軸は、時間の経過を示す。また、縦軸は、z座標を示す。
 グラフ2401(点線)とグラフ2402(実線)とを比較すると、推定結果2311~2315(弱い平滑化)のほうが、ノイズを適切に除去できていないため、左足先のz座標のブレ量が大きいことがわかる。
 ここで、つり輪の水平支持では、演技者のブレ量が重要となる。推定結果2311~2315では、ノイズを適切に除去できていないため、フレームごとの移動量が技認識ルールで定められたしきい値を上回る。このため、推定結果2311~2315に対する技認識処理を実施すると、審判と異なる結果(静止NG)が得られる。
 一方、推定結果2321~2325では、ノイズを適切に除去できているため、フレームごとの移動量が技認識ルールで定められたしきい値を下回る。このため、推定結果2321~2325に対する技認識処理を実施すると、審判と同じ結果(静止OK)が得られる。
 このように、つり輪の水平支持では、審判の判定に合わせるために、演技者の骨格のうちの静止箇所に対して強い平滑化を適用するほうがよいことがわかる。骨格推定装置301によれば、静止動作が生じている部位に対して、それ以外の部位よりも、強い平滑化を行うことができる。
(技認識結果の具体例)
 図25は、技認識結果の具体例を示す説明図である。図25において、技認識結果2500は、つり輪演技の骨格データPDに対して、技認識を実施した場合の技認識率を示す。技認識率は、審判と同じ結果が得られた割合を示す。演技者の骨格全体に弱いフィルタ(w=9)をかけた場合の技認識率は「86.3%」である。
 演技者の骨格全体に強いフィルタ(w=21)をかけた場合の技認識率は「88.1%」である。また、骨格推定装置301による平滑化処理を実施して、演技者の骨格のうち、静止箇所に対して強いフィルタ(w=21)をかけ、それ以外に弱いフィルタ(w=9)をかけた場合の技認識率は「89.5%」である。
 このように、部位の動きに応じてフィルタを切り替えることで、単一フィルタで技認識を実施するよりも高い精度で技認識を行うことができる。
 以上説明したように、実施の形態にかかる骨格推定装置301によれば、演技者(対象物)についてのセンサデータに基づき認識された演技者の骨格を時系列に表す骨格データPDを取得することができる。そして、骨格推定装置301によれば、取得した骨格データPDに基づいて、演技者の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、算出した特徴量に基づいて、骨格データPDが表す骨格のうち平滑化を行う対象部位を特定することができる。骨格の部位は、例えば、演技者の骨格を形成する関節点群のうちの複数の関節点を含む(例えば、部位グループG1~G5)。骨格データPDは、例えば、演技者の骨格を形成する各関節点の3次元空間上での位置の時間変化を示す時系列データである。
 これにより、骨格推定装置301は、演技者の骨格の部位ごとの動きの時間変化に応じて、骨格データPDが表す骨格のうち平滑化をかける部位を制御することで、骨格推定の精度の向上を図ることができる。また、骨格推定装置301は、演技者の骨格を形成する関節点群のうちの複数の関節点を含む部位に着目することで、演技者の細かい動きを精度よく捉えることができる。
 また、骨格推定装置301によれば、演技者の骨格の部位間の相対角度の時間変化に基づく部位間の角加速度を含む特徴量を算出し、骨格データPDが表す骨格のうち、角加速度が第1のしきい値Th1以上となる部位以外の部位を、対象部位として特定することができる。
 これにより、骨格推定装置301は、瞬発的な動き(高周波動き)が生じている部位を、平滑化を行う対象から除外することができる。例えば、体操競技の平均台の輪とびや開脚とびなどの演技が行われたときに、動きが激しい足先の関節を含む部位を、平滑化を行う対象から除外することができる。
 また、骨格推定装置301によれば、演技者の骨格の部位間の相対角度の時間変化に基づく部位間の角速度を含む特徴量を算出し、特徴量に含まれる一定区間あたりの角速度の平均値(角速度平均)に基づいて、対象部位にかける平滑化の度合いを決定することができる。例えば、骨格推定装置301は、骨格データPDが表す骨格のうち、角速度平均が第2のしきい値Th2以下となる対象部位にかける平滑化の度合いを、角速度平均が第2のしきい値Th2より大きい対象部位よりも強い度合いに決定する。
 これにより、骨格推定装置301は、静止動作(低周波動き)が生じている部位に対して、それ以外の部位よりも、強い平滑化を行うことが可能となる。例えば、体操競技のつり輪の水平支持や十字懸垂などの静止技が行われたときに、ゆっくり変化している部位に対して、強い平滑化を行うことができる。例えば、SGフィルタをかける場合、長期間のフレームにおける平滑化により、ノイズを効果的に除去できるという特徴がある。このため、骨格推定装置301は、SGフィルタをかける場合には、ウインドウサイズを切り替えることで、平滑化の度合いを調整することができる。
 また、骨格推定装置301によれば、骨格データPDに対する平滑化処理を実施する際に、骨格データPDが表す骨格のうち、特定した対象部位に対する平滑化を行うことができる。
 これにより、骨格推定装置301は、平滑化処理により演技者のスムーズな動きを再現しつつ、動きの速い箇所での平滑化を外して、演技者の特徴的な動きが損なわれてしまうのを防ぐことができる。例えば、輪とびや開脚とびなどの演技が行われたときに、足先の関節を含む部位の平滑化を外すことで、本来認識されるべき演技が認識されないといった事態を回避することができる。
 また、骨格推定装置301によれば、骨格データPDに対する平滑化処理を実施する際に、骨格データPDが表す骨格のうち、特定した対象部位に対して、決定した度合いの平滑化を行うことができる。
 これにより、骨格推定装置301は、平滑化処理により演技者のスムーズな動きを再現するにあたり、ゆっくり変化している部位に強い平滑化をかけることで、ノイズを効果的に落とすことができる。
 また、骨格推定装置301によれば、演技者を撮影した画像を含むセンサデータを取得し、取得したセンサデータに含まれる画像から認識された演技者の骨格を表す骨格データPDを生成することができる。
 これにより、骨格推定装置301は、カメラ端末303などで演技者を撮影した画像(多視点画像)から、演技者の骨格を表す骨格データPDを取得することができる。
 また、骨格推定装置301によれば、演技者についてのセンサデータに基づき認識された演技者の骨格を時系列に表す骨格データPDを取得することができる。そして、骨格推定装置301によれば、取得した骨格データPDに基づいて、演技者の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、算出した特徴量に基づいて、骨格データPDが表す骨格の部位にかける平滑化フィルタの係数を特定することができる。
 これにより、骨格推定装置301は、演技者の骨格の部位ごとの動きの時間変化に応じて、SGフィルタの係数を切り替えることで、その部位にかける平滑化の度合いを制御することができる。
 これらのことから、骨格推定装置301によれば、演技者を撮影した画像(多視点画像)などから演技者の骨格を推定するにあたり、演技者の早い動きに追従して平滑化を外したり、静止動作時のノイズを効果的に除去したりして、演技者の骨格を精度よく推定することができる。これにより、体操競技などにおける技認識精度を向上させることができ、例えば、審判の採点を支援したり、コンピュータによる自動採点を実現したりすることが可能となる。
 なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本情報処理プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、DVD、USBメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本情報処理プログラムは、インターネット等のネットワークを介して配布してもよい。
 また、本実施の形態で説明した情報処理装置101(骨格推定装置301)は、スタンダードセルやストラクチャードASIC(Application Specific Integrated Circuit)などの特定用途向けICやFPGAなどのPLD(Programmable Logic Device)によっても実現することができる。
 101 情報処理装置
 102 演技者
 110,240,PD 骨格データ
 120 特徴量
 200 骨格認識処理
 300 情報処理システム
 301 骨格推定装置
 302 クライアント装置
 303 カメラ端末
 310 ネットワーク
 400 バス
 401 CPU
 402 メモリ
 403 ディスクドライブ
 404 ディスク
 405 通信I/F
 406 可搬型記録媒体I/F
 407 可搬型記録媒体
 500 骨格
 701 取得部
 702 算出部
 703 特定部
 704 決定部
 705 実行制御部
 706 出力部
 900 エッジデータテーブル
 1000 相対角度テーブル
 1100 角速度テーブル
 1200 角加速度テーブル
 1300,1400 平滑化フィルタ
 2201,2202,2311,2312,2313,2314,2315,2321,2322,2323,2324,2325 推定結果
 2401,2402 グラフ
 2500 技認識結果

Claims (15)

  1.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格のうち平滑化を行う対象部位を特定する、
     処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2.  前記特徴量は、前記対象物の骨格の部位間の相対角度の時間変化に基づく前記部位間の角加速度を含み、
     前記特定する処理は、
     前記骨格データが表す骨格のうち、前記角加速度が第1のしきい値以上となる部位以外の部位を、前記対象部位として特定する、
     ことを特徴とする請求項1に記載の情報処理プログラム。
  3.  前記特徴量は、前記対象物の骨格の部位間の相対角度の時間変化に基づく前記部位間の角速度を含み、
     前記特徴量に含まれる一定区間あたりの前記角速度の平均値に基づいて、特定した前記対象部位にかける平滑化の度合いを決定する、
     処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
  4.  前記決定する処理は、
     前記骨格データが表す骨格のうち、前記角速度の平均値が第2のしきい値以下となる対象部位にかける平滑化の度合いを、前記角速度の平均値が前記第2のしきい値より大きい対象部位よりも強い度合いに決定する、ことを特徴とする請求項3に記載の情報処理プログラム。
  5.  前記骨格データに対する平滑化処理を実施する際に、前記骨格データが表す骨格のうち、特定した前記対象部位に対する平滑化を行う、処理を前記コンピュータに実行させることを特徴とする請求項1に記載の情報処理プログラム。
  6.  前記骨格データに対する平滑化処理を実施する際に、前記骨格データが表す骨格のうち、特定した前記対象部位に対して、決定した前記度合いの平滑化を行う、処理を前記コンピュータに実行させることを特徴とする請求項3に記載の情報処理プログラム。
  7.  前記部位は、前記対象物の骨格を形成する関節点群のうちの複数の関節点を含む、ことを特徴とする請求項1に記載の情報処理プログラム。
  8.  前記骨格データは、前記対象物の骨格を形成する各関節点の3次元空間上での位置の時間変化を示す時系列データである、ことを特徴とする請求項1に記載の情報処理プログラム。
  9.  前記対象物は、演技者であることを特徴とする請求項1に記載の情報処理プログラム。
  10.  前記センサデータは、前記対象物を撮影した画像を含み、
     前記取得する処理は、
     前記センサデータに含まれる画像から認識された前記対象物の骨格を表す骨格データを生成することにより、生成した前記骨格データを取得する、ことを特徴とする請求項1に記載の情報処理プログラム。
  11.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格の部位にかける平滑化フィルタの係数を特定する、
     処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  12.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格のうち平滑化を行う対象部位を特定する、
     処理をコンピュータが実行することを特徴とする情報処理方法。
  13.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格の部位にかける平滑化フィルタの係数を特定する、
     処理をコンピュータが実行することを特徴とする情報処理方法。
  14.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格のうち平滑化を行う対象部位を特定する、
     制御部を有することを特徴とする情報処理装置。
  15.  対象物についてのセンサデータに基づき認識された前記対象物の骨格を時系列に表す骨格データを取得し、
     取得した前記骨格データに基づいて、前記対象物の骨格の部位ごとの動きの時間変化を表す特徴量を算出し、
     算出した前記特徴量に基づいて、前記骨格データが表す骨格の部位にかける平滑化フィルタの係数を特定する、
     制御部を有することを特徴とする情報処理装置。
PCT/JP2021/037946 2021-10-13 2021-10-13 情報処理プログラム、情報処理方法、および情報処理装置 WO2023062757A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2023553829A JPWO2023062757A1 (ja) 2021-10-13 2021-10-13
PCT/JP2021/037946 WO2023062757A1 (ja) 2021-10-13 2021-10-13 情報処理プログラム、情報処理方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/037946 WO2023062757A1 (ja) 2021-10-13 2021-10-13 情報処理プログラム、情報処理方法、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2023062757A1 true WO2023062757A1 (ja) 2023-04-20

Family

ID=85987659

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/037946 WO2023062757A1 (ja) 2021-10-13 2021-10-13 情報処理プログラム、情報処理方法、および情報処理装置

Country Status (2)

Country Link
JP (1) JPWO2023062757A1 (ja)
WO (1) WO2023062757A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0942962A (ja) * 1995-07-28 1997-02-14 Ono Sokki Co Ltd 軌跡演算方法および装置
JP2011024828A (ja) * 2009-07-27 2011-02-10 Toshiba Corp 超音波診断装置
WO2012046392A1 (ja) 2010-10-08 2012-04-12 パナソニック株式会社 姿勢推定装置及び姿勢推定方法
JP2020005192A (ja) * 2018-06-29 2020-01-09 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020052867A (ja) 2018-09-28 2020-04-02 株式会社Axive 姿勢解析装置、姿勢解析方法、及びプログラム
WO2021048988A1 (ja) * 2019-09-12 2021-03-18 富士通株式会社 骨格認識方法、骨格認識プログラムおよび情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0942962A (ja) * 1995-07-28 1997-02-14 Ono Sokki Co Ltd 軌跡演算方法および装置
JP2011024828A (ja) * 2009-07-27 2011-02-10 Toshiba Corp 超音波診断装置
WO2012046392A1 (ja) 2010-10-08 2012-04-12 パナソニック株式会社 姿勢推定装置及び姿勢推定方法
JP2020005192A (ja) * 2018-06-29 2020-01-09 キヤノン株式会社 情報処理装置、情報処理方法、及びプログラム
JP2020052867A (ja) 2018-09-28 2020-04-02 株式会社Axive 姿勢解析装置、姿勢解析方法、及びプログラム
WO2021048988A1 (ja) * 2019-09-12 2021-03-18 富士通株式会社 骨格認識方法、骨格認識プログラムおよび情報処理装置

Also Published As

Publication number Publication date
JPWO2023062757A1 (ja) 2023-04-20

Similar Documents

Publication Publication Date Title
US11638854B2 (en) Methods and systems for generating sports analytics with a mobile device
JP5754439B2 (ja) 情報報知装置、情報報知方法及びプログラム
US20100208038A1 (en) Method and system for gesture recognition
JP7373589B2 (ja) ポーズ類似度判別モデル生成方法及びポーズ類似度判別モデル生成装置
WO2017161734A1 (zh) 通过电视和体感配件矫正人体动作及系统
KR20150082093A (ko) 평가 프로그램, 평가 방법 및 평가 장치
JPWO2019116495A1 (ja) 技認識プログラム、技認識方法および技認識システム
JP4149455B2 (ja) 情報処理装置及びプログラム
Edwards et al. Low-latency filtering of kinect skeleton data for video game control
JP7078577B2 (ja) 動作類似度評価装置、方法およびプログラム
Hegazy et al. Online detection and classification of in-corrected played strokes in table tennis using IR depth camera
KR102539215B1 (ko) 골프 스윙에 관한 정보를 추정하기 위한 방법, 디바이스 및 비일시성의 컴퓨터 판독 가능한 기록 매체
WO2023062757A1 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
CN111353347B (zh) 动作识别纠错方法、电子设备、存储介质
WO2019156241A1 (ja) 学習装置、推定装置、学習方法、推定方法及びコンピュータプログラム
WO2016021152A1 (ja) 姿勢推定方法および姿勢推定装置
Elias et al. Speed21: Speed climbing motion dataset
JPWO2023062757A5 (ja)
US11837255B2 (en) Display method, computer-readable recording medium recording display program, and information processing apparatus
WO2005125210A1 (en) Methods and apparatus for motion capture
JP2020188914A (ja) データ処理装置、画像配信システム、画像解析方法及び画像解析プログラム
Ozaki et al. Do different hurdle heights alter important spatiotemporal variables in hurdle clearance?
JP2020198019A (ja) 骨格抽出方法、装置およびプログラム
KR102413988B1 (ko) 골프 스윙에 관한 정보를 추정하기 위한 방법, 디바이스 및 비일시성의 컴퓨터 판독 가능한 기록 매체
Tanaka AN AUTOMATIC EVALUATION SYSTEM FOR STUDENTS’EXERCISE ON E-LEARNING FOR PHYSICAL EDUCATION

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023553829

Country of ref document: JP