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

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

Info

Publication number
WO2023188217A1
WO2023188217A1 PCT/JP2022/016364 JP2022016364W WO2023188217A1 WO 2023188217 A1 WO2023188217 A1 WO 2023188217A1 JP 2022016364 W JP2022016364 W JP 2022016364W WO 2023188217 A1 WO2023188217 A1 WO 2023188217A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
information processing
subject
series data
information
Prior art date
Application number
PCT/JP2022/016364
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 JP2024510982A priority Critical patent/JPWO2023188217A1/ja
Priority to PCT/JP2022/016364 priority patent/WO2023188217A1/ja
Publication of WO2023188217A1 publication Critical patent/WO2023188217A1/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 device.
  • the result of the first process the likelihood of the result of the second process is calculated based on the likelihood of the result of the first process, the likelihood of the result of the second process, and the likelihood of the result of the third process.
  • some of the results of the third process are output as the object skeleton recognition results.
  • there is a technique for recognizing a heat map image in which the likelihood of a plurality of joint positions of a subject is projected from a plurality of directions from a distance image of the subject.
  • there is a behavior detection technique that uses a recurrent neural network.
  • the conventional technology it may be difficult to accurately specify the three-dimensional coordinates of each joint of a person.
  • the three-dimensional coordinates of a joint in a person's right hand may be mistaken as the three-dimensional coordinates of a joint in a person's left hand.
  • the three-dimensional coordinates of a part of an object other than a person in a multi-view image may be mistaken as the three-dimensional coordinates of a human joint.
  • the present invention aims to enable accurate identification of the location of a subject's body part.
  • time-series data of skeletal information including the position of each of a plurality of body parts of the subject is acquired, and based on the feature amount of the skeletal information in the acquired time-series data, the acquired
  • the type of motion of the subject corresponding to the skeletal information at the first time point in the time series data is specified, and the type of movement of the subject person corresponding to the skeletal information at the first time point in the acquired time series data is determined.
  • FIG. 1 is an explanatory diagram showing an example of an information processing method according to an embodiment.
  • FIG. 2 is an explanatory diagram showing an example of the information processing system 200.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the information processing device 100.
  • FIG. 4 is a block diagram showing an example of the hardware configuration of the image capturing device 201.
  • FIG. 5 is a block diagram showing an example of the functional configuration of the information processing device 100.
  • FIG. 6 is an explanatory diagram showing the flow of operations of the information processing device 100.
  • FIG. 7 is an explanatory diagram (part 1) showing a specific example of identifying an abnormal joint.
  • FIG. 8 is an explanatory diagram (part 2) showing a specific example of identifying an abnormal joint.
  • FIG. 1 is an explanatory diagram showing an example of an information processing method according to an embodiment.
  • FIG. 2 is an explanatory diagram showing an example of the information processing system 200.
  • FIG. 3 is a block diagram showing an example of the hardware configuration
  • FIG. 9 is an explanatory diagram showing a specific example of generating a Factor Graph.
  • FIG. 10 is an explanatory diagram showing a specific example of a Factor Graph template 911 corresponding to "jump".
  • FIG. 11 is an explanatory diagram showing a specific example of a Factor Graph template 911 corresponding to "lying down”.
  • FIG. 12 is an explanatory diagram showing a specific example of adding time series constraints.
  • FIG. 13 is an explanatory diagram showing a specific example of modifying the 3D skeleton inference result 602.
  • FIG. 14 is an explanatory diagram (part 1) showing a specific example of the flow of data processing in the operation example.
  • FIG. 15 is an explanatory diagram (part 2) showing a specific example of the flow of data processing in the operation example.
  • FIG. 16 is a flowchart showing an example of the overall processing procedure.
  • FIG. 1 is an explanatory diagram showing an example of an information processing method according to an embodiment.
  • the information processing device 100 is a computer that enables accurate identification of the location of a subject's body parts.
  • the target person is, for example, a person.
  • Sites include, for example, the neck, head, right and left shoulders, right and left elbows, right and left hands, right and left knees, right and left feet, and the like.
  • the site is, for example, a joint.
  • the position is, for example, a three-dimensional coordinate.
  • the two-dimensional coordinates of each joint of the person are determined based on the detected area, and the identified two-dimensional coordinates are determined by taking into account the angle. It is conceivable to specify the three-dimensional coordinates of each joint of a person based on the following. Specifically, a model learned through deep learning is used to identify the three-dimensional coordinates of each joint of a person. For an example of this technique, reference can be made specifically to Reference 1 and Reference 2 below.
  • V2v-posenet Voxel-to-voxel prediction network for accurate 3D hand and human pose estimation "From a single depth map.” Procedures of the IEEE conference on computer vision and pattern Recognition. 2018.
  • the information processing device 100 acquires time-series data of the skeleton information 101.
  • the skeletal information 101 includes, for example, the position of each of a plurality of body parts of the subject. Sites include, for example, the neck, head, right and left shoulders, right and left elbows, right and left hands, right and left knees, right and left feet, and the like.
  • the site is, for example, a joint.
  • the parts are specifically joint 1, joint 2, joint 3, etc.
  • the position is, for example, a three-dimensional coordinate.
  • the time series data includes, for example, skeletal information 101 for each time point.
  • the time-series data specifically includes skeletal information 101 at time T, skeletal information 101 at time T-1, and the like.
  • the information processing device 100 determines the type of motion of the subject corresponding to the skeletal information 101 at the first point in time in the acquired time series data, based on the feature amount of the skeletal information 101 in the acquired time series data. Identify.
  • the types of motion include, for example, horizontal rotation such as walking, running, jumping, sitting, lying down, turning or spinning, or vertical rotation such as somersault or horizontal bar motion.
  • the feature amount may be, for example, the position of each part of the subject indicated by the skeletal information 101.
  • the feature amount may be, for example, a deviation in the position of each part of the subject indicated by the skeletal information 101 at different times.
  • the feature amount may be, for example, the distance between the positions of different parts of the subject indicated by the skeletal information 101.
  • the information processing device 100 has, for example, a first model for specifying the type of movement of the subject.
  • the first model has a function that allows the type of motion of the subject to be determined, for example, according to the input of the feature amount of the skeletal information 101.
  • the information processing device 100 uses the first model to identify the type of motion of the subject that corresponds to the skeletal information 101 at the first point in time in the acquired time series data.
  • the information processing apparatus 100 specifically specifies "lying down" as the type of motion of the subject corresponding to the skeletal information 101 at the first point in time in the acquired time series data.
  • the information processing device 100 determines, among the skeletal information 101 at the first point in time in the acquired time-series data, a temporal change in the position of one of the plurality of parts, corresponding to the identified movement type.
  • a second model of probability distribution that is constrained according to the movement tendency of any part is determined.
  • the movement tendency is, for example, a tendency of uniform movement, uniform velocity movement, or uniform acceleration movement.
  • the information processing device 100 specifically distributes a probability distribution that constrains the temporal change in the position of the joint 1 according to the tendency of equipositional movement corresponding to lying down, in the skeletal information 101 at time T.
  • a second model is determined.
  • the information processing device 100 includes a node 111 indicating the position of each part at each time point, a first edge 112 connecting the nodes 111 to each other, and a second edge 113 connecting the nodes 111 to each other.
  • a graph 110 is generated.
  • the first edge 112 connects nodes 111 indicating the positions of different biologically connected parts at each time point.
  • the second edge 113 connects nodes 111 indicating the positions of any parts at different times.
  • the information processing device 100 When generating the graph 110, the information processing device 100 associates the determined second model with the second edge 113. In the example of FIG. 1, the information processing device 100 specifically adds the determined edge to the second edge 113 connecting the nodes 111 indicating the positions of the joint 1 of the subject at time T-1 and time T.
  • a graph 110 is generated by associating the two models.
  • the information processing device 100 corrects the skeleton information 101 at the first point in time in the time series data based on the generated graph 110. For example, the information processing device 100 corrects the position of the subject's joint 1 included in the skeletal information 101 at time T in the time series data. Thereby, the information processing device 100 can accurately identify the position of each joint of the subject. The information processing device 100 can accurately identify temporal changes in the positions of each joint of the subject.
  • the information processing apparatus 100 uses the first model to identify the type of movement of the target person, but the present invention is not limited to this.
  • the information processing device 100 may identify the type of movement of the subject without using the first model.
  • a plurality of computers may cooperate to realize the functions of the information processing device 100.
  • a computer that specifies the type of movement of the subject, a computer that generates the graph 110, and a computer that corrects the skeletal information 101 at the first point in time series data based on the graph 110 work together. There may be cases.
  • FIG. 2 is an explanatory diagram showing an example of the information processing system 200.
  • an information processing system 200 includes an information processing device 100, one or more image capturing devices 201, and one or more client devices 202.
  • the information processing device 100 and the image capturing device 201 are connected via a wired or wireless network 210.
  • the network 210 is, for example, a LAN (Local Area Network), a WAN (Wide Area Network), the Internet, or the like. Further, in the information processing system 200, the information processing device 100 and the client device 202 are connected via a wired or wireless network 210.
  • the information processing device 100 acquires a plurality of images of the subject from different angles at different times from one or more image capturing devices 201.
  • the information processing device 100 identifies the distribution of the existence probability of each part of the subject in a three-dimensional space based on the plurality of acquired images at each point in time, and identifies the three-dimensional coordinates of each part of the subject. do.
  • the information processing device 100 identifies the type of movement of the target person at each time point based on the three-dimensional coordinates of each of the identified body parts of the target person.
  • the information processing device 100 specifies, at each point in time, one of the regions of the target person that corresponds to the type, based on the identified type of motion of the target person.
  • the information processing device 100 determines a probability distribution model that constrains the temporal change in the position of any of the specified parts based on the specified type of movement of the subject for each time point.
  • the information processing device 100 generates a graph including nodes indicating the three-dimensional coordinates of each part of the subject at each specified time point.
  • the information processing device 100 When generating a graph, the information processing device 100 generates the graph so that the graph includes a first edge connecting nodes indicating three-dimensional coordinates of different parts of the subject who are biologically connected at each time point. generate.
  • the information processing device 100 When generating a graph, the information processing device 100 generates, for each point in time, a second edge that connects nodes indicating three-dimensional coordinates between the point in time and another point in time other than the point in time, regarding any of the specified parts. Generate a graph so that it is included in the graph.
  • the other point in time is, for example, a point immediately before the certain point in time.
  • the information processing device 100 associates the determined model with the second edge included in the graph.
  • the information processing device 100 refers to the graph and corrects the three-dimensional coordinates of each part of the identified subject.
  • the information processing device 100 outputs the corrected three-dimensional coordinates of each part of the subject.
  • the output format includes, for example, displaying on a display, printing out to a printer, transmitting to another computer, or storing in a storage area.
  • the information processing device 100 transmits the corrected three-dimensional coordinates of each part of the subject to the client device 202.
  • the information processing device 100 is, for example, a server, a PC (Personal Computer), or the like.
  • the image capturing device 201 is a computer that captures an image of a subject.
  • the image capturing device 201 includes a camera having a plurality of image sensors, and captures an image of the subject using the camera.
  • the image capturing device 201 generates an image of the subject and transmits it to the information processing device 100.
  • the image capturing device 201 is, for example, a smartphone.
  • the image capturing device 201 may be, for example, a fixed point camera.
  • the image capturing device 201 may be, for example, a drone.
  • the client device 202 receives the three-dimensional coordinates of each part of the subject from the information processing device 100.
  • the client device 202 outputs the received three-dimensional coordinates of each body part of the subject so that the user can refer to them.
  • the client device 202 displays, for example, the received three-dimensional coordinates of each part of the subject on a display.
  • the client device 202 is, for example, a PC, a tablet terminal, or a smartphone.
  • the information processing device 100 is a device different from the image capturing device 201, but the invention is not limited to this.
  • the information processing device 100 may have a function as the image capturing device 201 and may also operate as the image capturing device 201.
  • the information processing device 100 may have a function as the client device 202 and may also operate as the client device 202.
  • FIG. 3 is a block diagram showing an example of the hardware configuration of the information processing device 100.
  • the information processing apparatus 100 includes a CPU (Central Processing Unit) 301, a memory 302, a network I/F (Interface) 303, a recording medium I/F 304, and a recording medium 305.
  • Information processing device 100 further includes a display 306 and an input device 307. Further, each component is connected to each other by a bus 300.
  • the CPU 301 controls the entire information processing device 100.
  • the memory 302 includes, for example, a ROM (Read Only Memory), a RAM (Random Access Memory), a flash ROM, and the like. Specifically, for example, a flash ROM or ROM stores various programs, and a RAM is used as a work area for the CPU 301.
  • the program stored in the memory 302 is loaded into the CPU 301 and causes the CPU 301 to execute the coded processing.
  • the network I/F 303 is connected to a network 210 through a communication line, and is connected to other computers via the network 210.
  • the network I/F 303 serves as an internal interface with the network 210, and controls data input/output from other computers.
  • the network I/F 303 is, for example, a modem or a LAN adapter.
  • the recording medium I/F 304 controls reading/writing of data to/from the recording medium 305 under the control of the CPU 301.
  • the recording medium I/F 304 is, for example, a disk drive, an SSD (Solid State Drive), a USB (Universal Serial Bus) port, or the like.
  • the recording medium 305 is a nonvolatile memory that stores data written under the control of the recording medium I/F 304.
  • the recording medium 305 is, for example, a disk, a semiconductor memory, a USB memory, or the like.
  • the recording medium 305 may be removable from the information processing apparatus 100.
  • the display 306 displays data such as a cursor, icon, toolbox, document, image, or functional information.
  • the display 306 is, for example, a CRT (Cathode Ray Tube), a liquid crystal display, or an organic EL (Electroluminescence) display.
  • the input device 307 has keys for inputting characters, numbers, various instructions, etc., and inputs data.
  • the input device 307 is, for example, a keyboard or a mouse.
  • the input device 307 may be, for example, a touch panel type input pad or a numeric keypad.
  • the information processing device 100 may include, for example, a camera. Further, the information processing device 100 may include, for example, a printer, a scanner, a microphone, a speaker, or the like in addition to the components described above. Further, the information processing apparatus 100 may include a plurality of recording medium I/Fs 304 and recording media 305. Furthermore, the information processing apparatus 100 does not need to have the display 306 or the input device 307. Further, the information processing apparatus 100 does not need to have the recording medium I/F 304 and the recording medium 305.
  • FIG. 4 is a block diagram showing an example of the hardware configuration of the image capturing device 201.
  • the image capturing device 201 includes a CPU 401, a memory 402, a network I/F 403, a recording medium I/F 404, a recording medium 405, and a camera 406. Further, each component is connected to each other by a bus 400.
  • Memory 402 includes, for example, ROM, RAM, flash ROM, and the like. Specifically, for example, a flash ROM or ROM stores various programs, and a RAM is used as a work area for the CPU 401. The program stored in the memory 402 is loaded into the CPU 401 and causes the CPU 401 to execute the coded processing.
  • the network I/F 403 is connected to a network 210 through a communication line, and is connected to other computers via the network 210.
  • the network I/F 403 serves as an internal interface with the network 210, and controls data input/output from other computers.
  • the network I/F 403 is, for example, a modem or a LAN adapter.
  • the recording medium I/F 404 controls data read/write to the recording medium 405 under the control of the CPU 401.
  • the recording medium I/F 404 is, for example, a disk drive, an SSD, a USB port, or the like.
  • the recording medium 405 is a nonvolatile memory that stores data written under the control of the recording medium I/F 404.
  • the recording medium 405 is, for example, a disk, a semiconductor memory, a USB memory, or the like.
  • the recording medium 405 may be removable from the image capturing device 201.
  • the camera 406 has a plurality of image sensors, and generates an image of a target object captured by the plurality of image sensors. Camera 406 is, for example, a competition camera. Camera 406 is, for example, a surveillance camera.
  • the image capturing device 201 may include, for example, a keyboard, a mouse, a display, a printer, a scanner, a microphone, a speaker, and the like. Further, the image capturing device 201 may include a plurality of recording medium I/Fs 404 and recording media 405. Further, the image capturing device 201 does not need to have the recording medium I/F 404 or the recording medium 405.
  • Example of hardware configuration of client device 202 The example hardware configuration of the client device 202 is specifically the same as the example hardware configuration of the information processing device 100 shown in FIG. 3, so the description thereof will be omitted.
  • FIG. 5 is a block diagram showing an example of the functional configuration of the information processing device 100.
  • the information processing device 100 includes a storage unit 500, an acquisition unit 501, an analysis unit 502, a learning unit 503, a specification unit 504, a determination unit 505, a generation unit 506, a correction unit 507, and an output unit 508. including.
  • the storage unit 500 is realized, for example, by a storage area such as the memory 302 or the recording medium 305 shown in FIG. 3. Although a case will be described below in which the storage unit 500 is included in the information processing device 100, the present invention is not limited to this. For example, there may be a case where the storage unit 500 is included in a device different from the information processing device 100, and the storage contents of the storage unit 500 can be referenced from the information processing device 100.
  • the acquisition unit 501 to output unit 508 function as an example of a control unit. Specifically, the acquisition unit 501 to the output unit 508 execute the program by causing the CPU 301 to execute a program stored in a storage area such as the memory 302 or the recording medium 305 shown in FIG. This function is realized by The processing results of each functional unit are stored in a storage area such as the memory 302 or the recording medium 305 shown in FIG. 3, for example.
  • the storage unit 500 stores various information that is referenced or updated in the processing of each functional unit.
  • the storage unit 500 stores, for example, a plurality of images taken of a specific person from different angles at each of a plurality of consecutive time points. The angle indicates the imaging position.
  • the image is acquired by the acquisition unit 501, for example.
  • the storage unit 500 stores, for example, time-series data of skeletal information.
  • the time series data includes skeletal information at each of a plurality of consecutive time points.
  • the skeletal information includes the position of each of a plurality of body parts of a specific person.
  • the site is, for example, a joint. Sites include, for example, the neck, head, right and left shoulders, right and left elbows, right and left hands, right and left knees, right and left feet, and the like.
  • the position is, for example, a three-dimensional coordinate.
  • the time series data is acquired by the acquisition unit 501.
  • the time series data may be generated by the analysis unit 502, for example.
  • the acquisition unit 501 acquires various information used in the processing of each functional unit.
  • the acquisition unit 501 stores the acquired various information in the storage unit 500 or outputs it to each functional unit. Further, the acquisition unit 501 may output various information stored in the storage unit 500 to each functional unit.
  • the acquisition unit 501 acquires various information based on, for example, a user's operation input.
  • the acquisition unit 501 may receive various information from a device different from the information processing device 100, for example.
  • the acquisition unit 501 acquires, for example, time-series data of the subject's skeletal information.
  • the skeletal information of the subject includes, for example, the position of each of a plurality of body parts of the subject.
  • the acquisition unit 501 acquires time-series data of the skeletal information of the subject by accepting input of time-series data of the skeletal information of the subject based on the user's operation input.
  • the acquisition unit 501 may acquire time-series data of the subject's skeletal information by receiving it from another computer.
  • the acquisition unit 501 may, for example, acquire time-series data of skeletal information of past subjects.
  • the subject may be, for example, the same as the subject.
  • the subject's skeletal information includes, for example, the position of each of a plurality of body parts of the subject.
  • the acquisition unit 501 acquires time-series data of the skeletal information of the subject by accepting input of time-series data of the skeletal information of the subject based on the user's operation input.
  • the acquisition unit 501 may acquire time-series data of the subject's skeletal information by receiving it from another computer.
  • the acquisition unit 501 may, for example, acquire the type of motion of the subject corresponding to each piece of skeletal information in the time series data of past skeletal information of the subject.
  • the types of motion include, for example, horizontal rotation such as walking, running, jumping, sitting, lying down, turning or spinning, or vertical rotation such as somersault or horizontal bar motion.
  • the acquisition unit 501 receives input of the type of movement of the subject corresponding to each piece of skeletal information in the time-series data of past skeletal information of the subject based on the user's operation input. Get the behavior type.
  • the acquisition unit 501 may acquire the type of motion of the subject corresponding to each piece of skeletal information in the time-series data of past skeletal information of the subject by receiving from another computer.
  • the acquisition unit 501 acquires, for example, a plurality of images of the subject taken from different angles at each of a plurality of consecutive time points.
  • the acquisition unit 501 acquires a plurality of images when the analysis unit 502 generates time-series data of the subject's skeletal information without acquiring it. Thereby, the acquisition unit 501 can enable the analysis unit 502 to generate time-series data of the subject's skeletal information.
  • the acquisition unit 501 may acquire a plurality of images of the subject taken from different angles at each of a plurality of consecutive time points.
  • the acquisition unit 501 acquires a plurality of images. Thereby, the acquisition unit 501 can enable the analysis unit 502 to generate time-series data of the subject's skeletal information.
  • the acquisition unit 501 may receive a start trigger to start processing of any functional unit.
  • the start trigger is, for example, a predetermined operation input by the user.
  • the start trigger may be, for example, receiving predetermined information from another computer.
  • the start trigger may be, for example, that any functional unit outputs predetermined information.
  • the acquisition unit 501 may accept the acquisition of a plurality of images as a start trigger for starting the processing of the analysis unit 502.
  • the acquisition unit 501 may receive, for example, the acquisition of time-series data of the subject's skeletal information as a start trigger for starting the processing of the learning unit 503.
  • the acquisition unit 501 may receive the acquisition of time-series data of the subject's skeletal information as a start trigger for starting the processing of the identification unit 504, the determination unit 505, the generation unit 506, and the modification unit 507. .
  • the analysis unit 502 generates time-series data of skeletal information of a predetermined person.
  • the analysis unit 502 generates, for example, time-series data of the subject's skeletal information. Specifically, the analysis unit 502 estimates the position of each part of the subject at each time point based on a plurality of images taken of the subject from different angles at each of a plurality of time points, and performs estimation. Generates skeletal information of the subject including the location. Specifically, the analysis unit 502 generates time-series data of the skeletal information of the subject based on the generated skeletal information of the subject. Thereby, the analysis unit 502 can provisionally specify the position of each part of the subject at each point in time, and can obtain correction targets.
  • the analysis unit 502 may generate time-series data of the subject's skeletal information. Specifically, the analysis unit 502 generates skeletal information of the subject at each time point based on a plurality of images taken of the subject from different angles at each of a plurality of time points, and generates skeletal information of the subject at each time point. Generate series data. The analysis unit 502 may add noise to the generated time series data of the subject's skeletal information. The analysis unit 502 sets the subject's skeletal information as teacher information for generating a learning model. Thereby, the analysis unit 502 can obtain teacher information for generating a learning model.
  • the learning unit 503 learns the first learning model based on teacher information including the position of each of a plurality of body parts of the subject.
  • the first learning model is capable of identifying which part of a given person is in an abnormal state in terms of position, among multiple parts of the given person, according to features related to skeletal information in time-series data of the given person's skeletal information. It has the function of The first learning model has, for example, a function of making it possible to determine whether or not each body part of a predetermined person is in an abnormal state in terms of position.
  • the first learning model has a function of calculating an index value indicating the probability that each part of a predetermined person is in an abnormal state with respect to position. More specifically, the first learning model calculates, for each part of a given person, the probability that the part is in an abnormal state in terms of position, in response to input of feature amounts related to skeletal information. Outputs the indicated index value.
  • the first learning model is a neural network. Thereby, the learning unit 503 can specify one of the plurality of parts of the subject whose position is abnormal.
  • the learning unit 503 learns the second learning model based on teacher information including the position of each of the plurality of body parts of the subject.
  • the second learning model calculates the behavior of a predetermined person corresponding to each piece of skeletal information in the time series data of the skeletal information of the predetermined person, according to the feature amount related to the skeletal information in the time series data of the skeletal information of the predetermined person. It has a function that allows the type to be identified.
  • the second learning model can be a type of motion of a predetermined person corresponding to any skeletal information in the time-series data, in response to input of feature amounts related to skeletal information in the time-series data. Outputs an index value indicating the probability of each candidate.
  • the second learning model is a neural network. Thereby, the learning unit 503 can specify the type of movement of the subject.
  • the identifying unit 504 identifies the type of motion of the subject corresponding to the skeletal information at the first point in time in the acquired time series data, based on the feature amount of the skeletal information in the acquired time series data. For example, the identifying unit 504 uses the learned second learning model to determine the target person corresponding to the skeletal information at the first time point based on the feature amount related to the skeletal information in the acquired time series data of the skeletal information of the target person. Identify the type of behavior.
  • the identifying unit 504 determines the behavior of the target person corresponding to the skeletal information at the first time point by inputting the feature amount related to the skeletal information in the time series data of the skeletal information of the target person into the second learning model.
  • An index value indicating the probability of each candidate that can be the type of is calculated.
  • the identifying unit 504 identifies the type of motion of the subject corresponding to the skeletal information at the first time point based on the calculated index value. More specifically, the identifying unit 504 identifies the candidate with the largest calculated index value as the type of movement of the subject. Thereby, the identifying unit 504 can obtain guidelines for correcting the position of each of the plurality of body parts of the subject.
  • the specifying unit 504 can make it possible to determine which part of the subject's position is preferable to be corrected.
  • the identification unit 504 identifies an abnormal region that is in an abnormal state with respect to position, among a plurality of regions of the subject.
  • the identification unit 504 identifies abnormalities regarding the position of the skeletal information at the first point in time in the acquired time series data of the skeletal information of the target person, based on the feature amount related to the skeletal information in the acquired time series data of the skeletal information of the target person. Identify the abnormal area that is the condition.
  • the identification unit 504 uses the learned first learning model to determine whether the skeletal information at the first point in time is abnormal in position based on the feature amount regarding the skeletal information in the acquired time series data of the skeletal information of the subject. Identify the abnormal area that is in a bad condition.
  • the specifying unit 504 inputs into the first learning model the feature amounts related to the skeletal information in the time series data of the skeletal information of the subject, thereby determining the skeletal information of each of the subjects at the first time point.
  • An index value indicating the probability that the part is in an abnormal state is calculated.
  • the identification unit 504 identifies an abnormal site that is in an abnormal state with respect to position in the skeletal information at the first time point based on the calculated index value. More specifically, the identification unit 504 identifies, among a plurality of parts of the subject, a part whose calculated index value is equal to or greater than a threshold value as an abnormal part that is in an abnormal state with respect to position. Thereby, the identifying unit 504 can obtain guidelines for correcting the position of each of the plurality of body parts of the subject. The specifying unit 504 can make it possible to determine which part of the subject's position is preferable to be corrected.
  • the determining unit 505 determines, among the skeleton information at the first point in time in the acquired time-series data, a probability distribution that constrains the temporal change in the position of one of the plurality of parts that corresponds to the specified motion type. Decide on the model.
  • a distribution model is, for example, a model for constraining temporal changes in the position of any part corresponding to a specified type of movement, depending on the movement tendency of any part corresponding to the specified type of movement. be.
  • the movement tendency is, for example, uniform movement, uniform velocity movement, or uniformly accelerated movement.
  • the determining unit 505 can obtain guidelines for correcting the position of the region identified by the identifying unit 504.
  • the generation unit 506 generates a graph including nodes indicating the positions of the respective parts at each time point, a first edge, and a second edge.
  • the first edge connects nodes indicating the positions of different biologically connected parts at each time point.
  • the second edge connects nodes indicating the positions of any parts corresponding to the specified type of motion at different times.
  • the generation unit 506 associates the determined distribution model with the second edge. Thereby, the generation unit 506 can modify the skeletal information at the first point in time in the time series data of the skeletal information of the subject.
  • the generation unit 506 generates the graph so that the graph further includes a third edge that connects nodes indicating positions of parts other than the one corresponding to the specified type of motion among the plurality of parts. May be generated. For example, if there is one first edge connected to each node indicating the position of another part at a different point in time, the generation unit 506 includes the third edge connecting the nodes in the graph. Generate a graph. Thereby, the generation unit 506 can accurately correct the skeletal information at the first point in time in the time series data of the skeletal information of the subject. For example, the generation unit 506 can make it possible to accurately correct the positions of other parts.
  • the generation unit 506 generates a third edge that connects nodes indicating positions of other parts identified as abnormal parts in addition to one of the parts corresponding to the specified type of motion among the plurality of parts. Furthermore, a graph may be generated to be included in the graph. For example, if there is one first edge connected to each node indicating the position of another part at a different point in time, the generation unit 506 includes the third edge connecting the nodes in the graph. Generate a graph. Thereby, the generation unit 506 can accurately correct the skeletal information at the first point in time in the time series data of the skeletal information of the subject. For example, the generation unit 506 can make it possible to accurately correct the position of another region determined to be an abnormal region.
  • the modification unit 507 modifies the skeletal information at the first point in time in the time series data of the skeletal information of the subject based on the generated graph.
  • the modification unit 507 modifies the skeletal information at the first point in time in the time series data of the skeletal information of the subject, for example, by optimizing the generated graph. Thereby, the modification unit 507 can accurately specify the position of each part of the target person, taking into consideration the type of motion of the target person.
  • the modification unit 507 can accurately specify the position of each part of the subject by considering the probability that each part of the subject is in an abnormal state.
  • the output unit 508 outputs the processing result of at least one of the functional units.
  • the output format is, for example, displaying on a display, printing out to a printer, transmitting to an external device via network I/F 303, or storing in a storage area such as memory 302 or recording medium 305. Thereby, the output unit 508 can notify the user of the processing results of at least one of the functional units, thereby improving the usability of the information processing apparatus 100.
  • the output unit 508 outputs, for example, the skeleton information at the first time point corrected by the correction unit 507. Specifically, the output unit 508 transmits the skeleton information at the first time point modified by the modification unit 507 to the client device 202. Specifically, the output unit 508 displays the skeleton information at the first time point corrected by the correction unit 507 on the display. Thereby, the output unit 508 can make available the position of each part of the subject.
  • FIG. 6 is an explanatory diagram showing the flow of operations of the information processing device 100.
  • the information processing apparatus 100 acquires a plurality of multi-view images 600 obtained by capturing the subject at different times and from different angles.
  • the information processing apparatus 100 detects an area in which a target person appears in each multi-view image 600 by performing a person detection process on each of the plurality of multi-view images 600.
  • the information processing device 100 performs 2D (Dimension) pose estimation processing on each multi-view image 600 at each time point.
  • the information processing device 100 performs 2D pose estimation processing on each multi-view image 600 at each time point, thereby generating a 2-D pose estimation process that indicates the distribution of the existence probability of each joint of the subject in each multi-view image 600.
  • a heat map 601 is generated.
  • the 2D heat map 601 includes, for example, joint likelihoods indicating the probability of existence of any joint of the subject at each point in the 2D space corresponding to the multi-view image 600.
  • the information processing device 100 determines the joint of the subject in the multi-view image 600 based on the 2D heat map 601 that indicates the distribution of the existence probability of each joint of the subject in the multi-view image 600 at each point in time. Identify the 2D coordinates of.
  • the variance of the joint likelihood in the 2D heat map 601, which indicates the probability of the existence of a joint of the subject, can be treated as an index value indicating the accuracy of the specified 2D coordinates.
  • the information processing device 100 acquires placement information indicating the angle of each multi-view image 600 at each time point.
  • the information processing device 100 performs a 3D pose estimation process based on the placement information and the 2D coordinates of each joint of the subject in each multi-view image 600 at each point in time, thereby estimating the subject in the 3D space. Identify the 3D coordinates of each joint of the person.
  • the information processing device 100 generates a 3D skeleton inference result 602 including 3D coordinates of each joint of the identified subject at each time point, and generates time series data of the 3D skeleton inference result 602.
  • the information processing device 100 corrects the 3D skeleton inference result 602 by performing correction processing on the time series data of the 3D skeleton inference result 602.
  • the information processing apparatus 100 outputs the time series data of the corrected 3D skeleton inference result 603 in a usable manner. For example, the information processing apparatus 100 outputs time-series data of the corrected 3D skeleton inference result 603 so that the user can refer to it.
  • the user performs a predetermined analysis process based on the time series data of the corrected 3D skeleton inference result 603.
  • the analysis process is, for example, scoring participants in an athletic competition.
  • the user performs an analysis process to score the participants based on the time series data of the corrected 3D skeleton inference results 603.
  • the target person is a medical institution visitor undergoing rehabilitation, or a medical institution visitor receiving a diagnosis of athletic ability such as walking ability.
  • the analysis process is, for example, determining the effectiveness of rehabilitation, or diagnosing athletic ability or health status.
  • the user determines the effectiveness of rehabilitation of the medical institution visitor, or diagnoses the motor ability or health condition of the medical institution visitor. do.
  • the information processing device 100 may perform the above-described analysis process based on the time-series data of the corrected 3D skeleton inference result 603.
  • the information processing device 100 outputs the results of the analysis process so that the user can refer to them.
  • the information processing apparatus 100 may output the time-series data of the corrected 3D skeleton inference result 603 to the analysis unit 502 that performs the above-described analysis process.
  • the analysis unit 502 is included in a computer other than the information processing apparatus 100, for example. Thereby, the information processing apparatus 100 can perform analysis processing with high accuracy.
  • FIGS. 7 to 15 a specific example of the correction process will be described using FIGS. 7 to 15. Specifically, first, using FIG. 7 and FIG. 8, a specific example in which the information processing device 100 identifies an abnormal joint that is determined to be in an abnormal state with respect to 3D coordinates among a plurality of joints of a subject. I will explain about it.
  • FIGS. 7 and 8 are explanatory diagrams showing specific examples of identifying abnormal joints.
  • the information processing apparatus 100 acquires time-series data of a plurality of original data 700.
  • Original data 700 shows the subject's skeletal information.
  • Original data 700 shows 3D coordinates of each of a plurality of joints of the subject.
  • the 3D coordinates of the joints are, for example, ⁇ in the figure.
  • the information processing device 100 generates processed data 701 by adding noise to the original data 700.
  • the information processing device 100 changes the processed data 701 by changing the 3D coordinates of at least one of the plurality of joints of the subject indicated by the original data 700 to 3D coordinates that are determined to be in an abnormal state.
  • the abnormal condition corresponds to, for example, a condition in which the 3D coordinates of a joint are incorrectly estimated.
  • the abnormal state is jitter, inversion, swap, or miss.
  • the information processing apparatus 100 can acquire time-series data of the processed data 701.
  • the information processing device 100 learns the abnormality determination DNN 710 using the time series data of the processed data 701. For example, the abnormality determination DNN 710 detects an abnormality in each joint of the subject in at least one of the 3D skeleton inference results 602 in accordance with the input of the feature amount of the 3D skeleton inference result 602 in the time series data of the 3D skeleton inference result 602. It has a function to output probability.
  • the abnormality probability indicates the probability that the 3D coordinates of the joints of the subject are in a positionally abnormal state.
  • the abnormality determination DNN 710 outputs the abnormality probability of each joint of the subject in the entire time series data in response to input of the feature amount of the 3D skeleton inference result 602 in the time series data of the 3D skeleton inference result 602. It may have a function. Next, the explanation will move on to FIG.
  • the information processing device 100 inputs the feature amount of the 3D skeleton inference result 602 in the time series data of the 3D skeleton inference result 602 to the abnormality determination DNN 710.
  • the information processing device 100 obtains the abnormality probability of each joint of the subject in each 3D skeleton inference result 602 output by the abnormality determination DNN 710 in response to the input.
  • the information processing device 100 identifies abnormal joints based on the acquired abnormality probability of each joint of the subject. For example, the information processing device 100 specifies, as an abnormal joint, any joint for which the obtained abnormality probability is equal to or greater than a threshold value among the plurality of joints of the subject.
  • the information processing device 100 uses the abnormality determination DNN 710 to identify an abnormal joint, but the present invention is not limited to this.
  • the information processing device 100 may identify abnormal joints based on rules. Specifically, in the 3D skeleton inference result 602, the information processing device 100 stores a rule for calculating the abnormality probability of each joint according to the magnitude of the difference between the feature amount and the threshold value regarding each joint. You can stay there. Specifically, the information processing device 100 calculates the abnormality probability of each joint with reference to the stored rules, and identifies any joint for which the calculated abnormality probability is greater than or equal to a threshold value as an abnormal joint. It is possible to do so. Next, a specific example in which the information processing apparatus 100 generates a Factor Graph will be described using FIG. 9 .
  • FIG. 9 is an explanatory diagram showing a specific example of generating a Factor Graph.
  • the information processing device 100 includes a state estimation DNN 900.
  • the state estimation DNN 900 has a function of outputting the type of movement of the subject in at least one of the 3D skeleton inference results 602 according to the input of the feature amount of the 3D skeleton inference result 602 in the time series data of the 3D skeleton inference result 602. have
  • the state estimation DNN 900 has a function of outputting the type of movement of the subject in the entire time-series data in response to the input of the feature amount of the 3D skeleton inference result 602 in the time-series data of the 3D skeleton inference result 602. You may do so.
  • the information processing device 100 includes a Factor Graph definition DB (DataBase) 910.
  • the Factor Graph definition DB 910 stores a Factor Graph template 911 for each type of exercise of the subject.
  • the template 911 includes, for example, a node indicating the position of each joint of the subject, a first edge connecting nodes indicating the positions of different biologically connected joints, and a node indicating the position of the same joint at different times. and a second edge connecting the nodes shown.
  • the first edge may be associated with a constraint on the distance between joints.
  • the inter-articular distance is, for example, the length of a bone.
  • the Factor Graph definition DB 910 stores a template 911 corresponding to the exercise type "jump”, a template 911 corresponding to the exercise type "lying down”, and the like.
  • the second edge connects, for example, nodes indicating the position of any joint corresponding to the type of movement of the subject, for each type of movement of the subject. In other words, the second edge connects nodes indicating different joint positions depending on the type of movement of the subject, for example.
  • the second edge is associated with a distribution model.
  • a second edge connecting nodes indicating the position of one of the joints constrains the temporal change in the position of one of the joints according to the movement tendency of the one of the joints corresponding to the type of movement.
  • a distribution model representing a probability distribution is associated. For example, if the type of motion is "jump”, the tendency corresponds to uniform linear motion. For example, if the type of exercise is "lying down,” the tendency corresponds to equipositional exercise.
  • the information processing device 100 uses the state estimation DNN 900 to identify the type of movement of the subject in each 3D skeleton inference result 602.
  • the information processing device 100 refers to the Factor Graph definition DB 910 and selects the template 911 corresponding to the type of movement of the subject in each 3D skeleton inference result 602 as the Factor Graph to be used.
  • the Factor Graph template 911 will be described using FIGS. 10 and 11.
  • FIG. 10 is an explanatory diagram showing a specific example of a Factor Graph template 911 corresponding to "jump".
  • the template 911 includes, for example, nodes indicating the positions of each joint of the subject.
  • the template 911 includes the subject's head, upper cervical vertebrae, lower cervical vertebrae, thoracic vertebrae, lumbar vertebrae, left and right hip joints, left and right knee joints, left and right leg joints, left and right feet, left and right shoulder joints, left and right elbow joints, and left and right hands.
  • nodes indicating the positions of the subject's lower cervical vertebrae at different times are connected by a second edge 1001. Furthermore, nodes indicating the positions of the subject's thoracic vertebrae at different times are connected by a second edge 1001. Furthermore, nodes indicating the positions of the subject's lumbar vertebrae at different times are connected by a second edge 1001.
  • nodes indicating the positions of the subject's left hip joint at different times are connected by a second edge 1001. Furthermore, nodes indicating the positions of the subject's right hip joint at different times are connected by a second edge 1001.
  • Each second edge is associated with a Pairwise Term distribution model that indicates a time series constraint corresponding to uniform linear motion.
  • Pairwise Term is, for example, g t (x j,t-1 , x j,t ) ⁇ N (
  • x j,t-1 is the estimated position of the joint at time t-1.
  • x j,t is the estimated position of the joint at time t.
  • v j ⁇ is the average velocity of the joint.
  • ⁇ t is a unit time width.
  • ⁇ vj ⁇ is the velocity dispersion of the joint.
  • the type of exercise is "jumping" it is considered that the position of the joints in the trunk portion tends to change over time in a regular manner.
  • template 911 when the type of movement is "jump", the position of the joints in the trunk, where the time change in position is considered to be easy to predict, is assumed to be a uniform linear movement. Time changes can be constrained. Next, the description will move on to FIG. 11.
  • FIG. 11 is an explanatory diagram showing a specific example of a Factor Graph template 911 corresponding to "lay down".
  • the template 911 includes, for example, nodes indicating the positions of each joint of the subject.
  • the template 911 includes the subject's head, upper cervical vertebrae, lower cervical vertebrae, thoracic vertebrae, lumbar vertebrae, left and right hip joints, left and right knee joints, left and right leg joints, left and right feet, left and right shoulder joints, left and right elbow joints, and left and right hands.
  • nodes indicating the positions of the subject's head at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's upper cervical vertebrae at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's lower cervical vertebrae at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's thoracic vertebrae at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's lumbar vertebrae at different times are connected by a second edge 1101.
  • nodes indicating the positions of the subject's left hip joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right hip joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's left knee joint at different times are connected by a second edge 1101. Further, nodes indicating the positions of the subject's right knee joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's left leg joints at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right leg joints at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's left foot at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right foot at different times are connected by a second edge 1101.
  • nodes indicating the positions of the subject's left shoulder joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right shoulder joint at different times are connected by a second edge 1101. Further, nodes indicating the positions of the subject's left elbow joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right elbow joint at different times are connected by a second edge 1101. Furthermore, nodes indicating the positions of the subject's right elbow joint at different times are connected by a second edge 1101. Further, nodes indicating the positions of the subject's left wrist at different times are connected by a second edge 1101. Further, nodes indicating the positions of the subject's right wrist at different times are connected by a second edge 1101.
  • nodes indicating the positions of the subject's left hand at different times are connected by a second edge 1101.
  • nodes indicating the positions of the subject's right hand at different times are connected by a second edge 1101.
  • illustration of a part of the second edge 1101 is omitted for convenience of drawing.
  • Each second edge is associated with a Pairwise Term distribution model that indicates a time series constraint corresponding to equipositional motion.
  • the Pairwise Term is, for example, g t (x j,t-1 , x j,t ) to N (
  • ⁇ xj ⁇ is the joint position variance.
  • template 911 assumes equipositional movement for the joints of the whole body whose positional changes over time are considered easy to predict when the type of exercise is "lying down” and calculates the temporal change in position. Can be restricted.
  • FIG. 12 is an explanatory diagram showing a specific example of adding time series constraints.
  • the information processing device 100 determines whether a leaf node in the selected Factor Graph to which the second edge is not connected and one first edge is connected is a node indicating the position of the identified abnormal joint. do. If the leaf node indicates the position of the identified abnormal joint, the information processing apparatus 100 connects the leaf nodes at different times with the third edge 1201. Thereby, the information processing device 100 can accurately correct the position of the abnormal joint.
  • the information processing apparatus 100 modifies the 3D skeleton inference result 602 using the selected Factor Graph 1300 will be described with reference to FIG.
  • FIG. 13 is an explanatory diagram showing a specific example of correcting the 3D skeleton inference result 602.
  • the information processing apparatus 100 uses the selected Factor Graph 1300 to modify the 3D skeleton inference result 602.
  • the Factor Graph 1300 includes a node group 1310 corresponding to time t-1, a node group 1320 corresponding to time t, and so on.
  • the node group 1310 includes nodes 1311 to 1313 and the like.
  • the node group 1320 includes nodes 1321 to 1323 and the like.
  • node 1311 and node 1312 are connected by first edge 1331.
  • node 1312 and node 1313 are connected by first edge 1332.
  • node 1321 and node 1322 are connected by first edge 1341.
  • node 1322 and node 1323 are connected by first edge 1342.
  • the first edge 1342 that connects the node 1322 and the node 1323 may be associated with a Pairwise Term that indicates a bone length constraint.
  • the node 1312 and the node 1322 are connected by the second edge 1351.
  • the second edge 1351 is associated with, for example, a pairwise term indicating the above-mentioned time series constraint corresponding to the type of movement of the subject.
  • node 1311 and node 1321 are connected by third edge 1361.
  • the third edge 1361 may be associated with, for example, Pairwise Term indicating the above-described time series constraint.
  • the information processing device 100 may associate an Unary Term with a node indicating the position of at least one joint of the Factor Graph 1300.
  • the Unary Term is, for example, f(x j ) to N(x j
  • x j ⁇ is a weighted sum of joint likelihoods of a 3D heat map that integrates joint likelihoods of a plurality of 2D heat maps.
  • ⁇ 3D j ⁇ is the variance of the joint likelihood of a 3D heat map that integrates the joint likelihoods of a plurality of 2D heat maps.
  • the information processing device 100 supports a node indicating the position of at least one joint of the Factor Graph 1300 with an Unary Term indicating a constraint on the abnormal joint that acts to constrain the position of the joint according to the abnormality probability of the joint. You can also attach it.
  • the information processing apparatus 100 may associate, for example, an Unary Term including the abnormality probability of the joint 1 with the node 1321 indicating the position of the joint 1 among the node group 1320.
  • the Unary Term is, for example, f(x j ) to N(x j
  • p(x j ) is the abnormality probability.
  • the information processing device 100 corrects the position of each joint at each time point based on the Unary Term and Pairwise Term in the Factor Graph 1300.
  • the information processing device 100 corrects the position of each joint at each time point, for example, by optimizing the Factor Graph 1300.
  • the information processing device 100 can accurately correct the 3D skeleton inference result 602.
  • the information processing device 100 can accurately identify the position of each joint at each point in time. For example, the information processing device 100 can determine the position of each joint of the subject at each point in time with relatively high accuracy even when the subject performs relatively high-speed or relatively complex movements such as gymnastics. can be identified.
  • a comparative example 1 can be considered in which the 3D coordinates of the subject's joints are corrected using a Factor Graph that does not include Pairwise terms indicating time series constraints.
  • it is difficult to accurately correct the 3D coordinates of each joint of the subject because it is not possible to constrain changes in the position of the joints over time. It may be difficult to identify accurately.
  • the information processing device 100 can use a Factor Graph 1300 that includes a Pairwise Term indicating a time series constraint. Therefore, the information processing apparatus 100 can appropriately correct the 3D coordinates of each joint of the subject. For example, the information processing device 100 can change the time change from the 3D coordinates of the subject's joints at a certain point in time to the 3D coordinates of the subject's joints at the next point in time so that it is difficult for a person to intuitively feel that it is wrong.
  • the 3D coordinates of the subject's joints at each point in time can be appropriately modified so that
  • Comparative Example 2 in which the 3D coordinates of the subject's joints are corrected using a Factor Graph that includes a Pairwise Term that indicates a predetermined time series constraint.
  • a Factor Graph that includes a Pairwise Term that indicates a predetermined time series constraint.
  • it is difficult to accurately correct the three-dimensional coordinates of each joint of the subject and it may be difficult to accurately identify temporal changes in the three-dimensional coordinates of each joint of the subject.
  • Comparative Example 2 it is not possible to dynamically change the Pairwise Term, which indicates time series constraints, according to the condition of the subject such as the type of movement, so the three-dimensional coordinates of each joint of the subject are corrected with precision. difficult to do.
  • the information processing device 100 can set the Factor Graph 1300 by properly using a plurality of Factor Graph templates 911 including Pairwise terms indicating different time series constraints, depending on the type of the target person's motion. .
  • the information processing device 100 can, for example, use Pairwise terms that indicate time-series constraints corresponding to uniform motion, uniform linear motion, uniform acceleration motion, etc., depending on the type of motion of the subject. can.
  • the information processing device 100 can connect the second edge corresponding to Pairwise Term indicating the time series constraint to the node indicating the 3D coordinates of different joints depending on the type of motion of the subject.
  • the information processing device 100 can appropriately correct the 3D coordinates of each joint of the subject.
  • the information processing device 100 can change the time change from the 3D coordinates of the subject's joints at a certain point in time to the 3D coordinates of the subject's joints at the next point in time so that it is difficult for a person to intuitively feel that it is wrong.
  • the 3D coordinates of the subject's joints at each point in time can be appropriately modified so that Next, a specific example of the flow of data processing in the operation example will be described using FIGS. 14 and 15.
  • FIGS. 14 and 15 are explanatory diagrams showing a specific example of the flow of data processing in the operation example.
  • the information processing apparatus 100 acquires a plurality of camera images 1401 at each time point.
  • the information processing device 100 stores a 2D skeleton inference model 1410.
  • the information processing device 100 stores, for example, weight parameters that define a neural network that becomes the 2D skeleton inference model 1410.
  • the information processing apparatus 100 refers to the 2D skeleton inference model 1410 at each point in time and performs 2D skeleton inference processing on each of the plurality of camera images 1401, thereby generating a 2D skeleton inference result 1402. generate.
  • the 2D skeleton inference result 1402 includes, for example, 2D coordinates (x[pixel], y[pixel]) indicating the joint position and a likelihood indicating the certainty of the joint position.
  • the information processing device 100 stores a 3D skeleton inference model 1420.
  • the information processing device 100 stores, for example, weight parameters that define a neural network that becomes the 3D skeleton inference model 1420.
  • the information processing device 100 generates 3D skeleton inference results 1403 by referring to the 3D skeleton inference model 1420 and performing 3D skeleton inference processing on a plurality of 2D skeleton inference results 1402 at each time point.
  • the 3D skeleton inference result 1403 includes, for example, 3D coordinates (x [mm], y [mm], z [mm]) indicating the positions of joints.
  • the information processing apparatus 100 generates time series data 1404 that summarizes the 3D skeleton inference results 1403 for each time point. Next, the explanation will move on to FIG. 15.
  • the information processing device 100 stores a motion state estimation model 1510.
  • the information processing device 100 stores, for example, weight parameters that define a neural network serving as the motion state estimation model 1510.
  • the information processing device 100 refers to the movement state estimation model 1510 and performs movement state estimation processing on the time series data 1404 to estimate the type of movement of the subject and calculate the estimated movement of the subject.
  • a motion state estimation result 1501 including the type is generated.
  • the information processing device 100 stores a Factor Graph definition DB 1520.
  • the Factor Graph definition DB 1520 stores, for each type of movement, a template of a Factor Graph corresponding to the type of movement, including Pairwise Terms indicating time series constraints. Pairwise Term indicates, for example, that the temporal change in the position of a joint corresponding to a type of exercise is constrained according to the movement tendency of the subject corresponding to the type of exercise.
  • the Factor Graph definition DB 1520 indicates, for example, the type of movement, the type of joint of the subject, and the movement tendency of the subject's joint corresponding to the type of movement.
  • the movement tendency is, for example, uniform motion, uniform linear motion, uniform acceleration motion, etc.
  • the information processing device 100 refers to the Factor Graph definition DB 1520 and selects a Factor Graph template corresponding to the estimated type of movement of the subject included in the movement state estimation result 1501 as the Factor Graph to be used.
  • Bone length model 1530 includes parameters that define Pairwise Term, which represents bone length constraints. The parameters are, for example, the average and variance of bone lengths.
  • the information processing device 100 refers to the bone length model 1530 and adds a Pairwise Term indicating bone length constraints to the selected Factor Graph.
  • the information processing device 100 corrects the position of each joint by performing optimization processing on the assigned Factor Graph.
  • the information processing apparatus 100 generates a corrected 3D skeletal inference model 1502 that includes the corrected positions of each joint. Thereby, the information processing device 100 can accurately specify the position of each joint of the subject at each time point.
  • the overall processing is realized by, for example, the CPU 301 shown in FIG. 3, storage areas such as the memory 302 and the recording medium 305, and the network I/F 303.
  • FIG. 16 is a flowchart illustrating an example of the overall processing procedure.
  • the information processing apparatus 100 acquires time-series data of the three-dimensional skeleton inference results of the subject (step S1601).
  • the information processing apparatus 100 then calculates the likelihood of each part of the subject based on the acquired time series data of the three-dimensional skeleton inference results of the subject (step S1602).
  • the information processing device 100 estimates the exercise state of the subject at each time point based on the acquired time-series data of the three-dimensional skeleton inference results of the subject (step S1603).
  • the information processing apparatus 100 selects a Factor Graph corresponding to the estimated exercise state of the subject for each time point (step S1604).
  • the information processing device 100 corrects the time series data of the three-dimensional skeleton inference result of the subject by optimizing the Factor Graph (step S1607). Then, the information processing apparatus 100 outputs time-series data of the corrected three-dimensional skeleton inference results of the subject (step S1608). After that, the information processing device 100 ends the entire process.
  • the information processing device 100 can accurately correct the three-dimensional skeleton inference result of the subject. Therefore, the information processing device 100 can improve the usefulness of the three-dimensional skeleton inference result of the subject.
  • the information processing device 100 can, for example, improve the accuracy of analysis processing based on the 3D skeleton inference results of the subject.
  • the information processing apparatus 100 may perform the processing of some of the steps in FIG. 16 by changing the order of the processing. For example, the order of processing in steps S1605 and S1606 can be changed. Further, the information processing apparatus 100 may omit the processing of some steps in FIG. 16 . For example, the process in step S1605 can be omitted.
  • time-series data of skeletal information including the position of each of a plurality of body parts of a subject can be acquired.
  • the information processing device 100 it is possible to specify the type of motion of the subject corresponding to the skeletal information at the first time point in the acquired time-series data, based on the feature amount of the skeletal information in the acquired time-series data.
  • the information processing device 100 among the skeletal information at the first point in time in the acquired time-series data, the temporal change in the position of any one of the plurality of parts is determined based on the temporal change in the position of one of the parts corresponding to the specified type of motion.
  • the information processing apparatus 100 it is possible to generate a graph including nodes indicating the positions of respective parts at each time point. According to the information processing apparatus 100, it is possible to provide a first edge that connects nodes indicating the positions of different biologically connected parts at each time point in the graph. According to the information processing apparatus 100, it is possible to provide a second edge that connects nodes indicating the positions of any parts at different times in the graph. According to the information processing apparatus 100, it is possible to associate the determined model with the second edge in the graph. According to the information processing apparatus 100, the skeleton information at the first point in time in the time series data can be corrected based on the generated graph. Thereby, the information processing device 100 can accurately correct the skeleton information at the first time point.
  • the temporal change in the position of any part of the skeletal information at the first point in time is determined as equal positional movement, uniform velocity movement, or uniform movement of any part corresponding to the specified type of motion. , it is possible to determine a model of the probability distribution that is constrained according to the tendency of uniform acceleration motion. Thereby, the information processing apparatus 100 can determine a model that allows the skeletal information at the first time point to be appropriately modified according to the type of motion.
  • the information processing device 100 for a plurality of parts other than one of the parts, whether there is one first edge connected to each node indicating the position of the other part at a different time. It can be determined whether or not. According to the information processing device 100, for other parts, if there is one first edge connected to each node indicating the position of the other part at a different time, the third edge connecting the nodes is , a graph can be generated for inclusion in the graph. Thereby, the information processing apparatus 100 can increase the number of edges connected to a node, and can accurately correct the position of another part indicated by the node.
  • the information processing device 100 it is possible to identify a region other than one of the plurality of regions that is in an abnormal state with respect to its position. According to the information processing apparatus 100, for the identified other part, if there is one first edge connected to each node indicating the position of the other part at a different point in time, the third edge connecting the nodes is Graphs can be generated such that edges are included in the graph. Thereby, the information processing apparatus 100 can specify another part that is preferable to be corrected, and can accurately correct the position of the specified other part.
  • the information processing method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a PC or a workstation.
  • the information processing program described in this embodiment is recorded on a computer-readable recording medium, and executed by being read from the recording medium by the computer.
  • the recording medium includes a hard disk, a flexible disk, a CD (Compact Disc)-ROM, an MO (Magneto Optical Disc), a DVD (Digital Versatile Disc), and the like.
  • the information processing program described in this embodiment may be distributed via a network such as the Internet.
  • Information processing device 101 Skeletal information 110 Graph 111, 1311 to 1313, 1321 to 1323 Node 112, 1331, 1332, 1341, 1342 First edge 113, 1001, 1101, 1351 Second edge 200 Information processing system 201 Image capturing device 202 Client device 210 Network 300,400 Bus 301,401 CPU 302,402 Memory 303,403 Network I/F 304, 404 Recording medium I/F 305,405 Recording medium 306 Display 307 Input device 406 Camera 500 Storage unit 501 Acquisition unit 502 Analysis unit 503 Learning unit 504 Specification unit 505 Determination unit 506 Generation unit 507 Correction unit 508 Output unit 600 Multi-view image 601 2D heat map 602,603 ,1403,1502 3D skeleton inference result 700 Original data 701 Processed data 710 Abnormality determination DNN 900 State estimation DNN 910,1520 Factor Graph definition DB 911 Template 1201, 1361 3rd edge 1300 Factor Graph 1310, 1320 Node group 1401 Camera image

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

情報処理装置(100)は、時系列データにおける第1時点の骨格情報(101)に対応する対象者の動作の種類を特定する。情報処理装置(100)は、第1時点の骨格情報(101)のうち、複数の部位のいずれかの部位の位置の時間変化を、特定した動作の種類に対応するいずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定する。情報処理装置(100)は、時点ごとのそれぞれの部位の位置を示すノード(111)と、第1エッジ(112)と、第2エッジ(113)とを含み、第2エッジ(113)に、決定したモデルを対応付けたグラフ(110)を生成する。情報処理装置(100)は、生成したグラフ(110)に基づいて、時系列データにおける第1時点の骨格情報(101)を修正する。

Description

情報処理プログラム、情報処理方法、および情報処理装置
 本発明は、情報処理プログラム、情報処理方法、および情報処理装置に関する。
 従来、スポーツ、ヘルスケア、または、エンターテインメントの分野において、人の動きを認識する技術が望まれる。例えば、深層学習を利用して、異なるアングルから撮像した多視点画像に基づいて、人のそれぞれの関節の3次元座標を特定する技術がある。
 先行技術としては、例えば、第1処理の結果の尤度と、第2処理の結果の尤度と、第3処理の結果の尤度とに基づいて、第1処理の結果、第2処理の結果、第3処理の結果のうち、いずれかの結果を、被写体の骨格認識結果として出力するものがある。また、例えば、被写体の距離画像から、被写体の複数の関節位置の尤度を複数方向から投影したヒートマップ画像を認識する技術がある。また、例えば、特徴点の位置候補と対象の多関節構造を用いた逆運動学に基づく最適化計算を行い、対象の各関節角を取得し、関節角を用いて順運動学計算を行い、対象の関節を含む特徴点の位置を取得する技術がある。また、例えば、リカレントニューラルネットワークを利用する行動検出の技術がある。
国際公開第2021/064942号 国際公開第2021/002025号 特開2020-42476号公報 米国特許出願公開第2017/0344829号明細書
 しかしながら、従来技術では、人のそれぞれの関節の3次元座標を精度よく特定することが難しい場合がある。例えば、人の右手の関節の3次元座標を、人の左手の関節の3次元座標と誤認することがある。例えば、多視点画像に映った人以外の物体の一部の3次元座標を、人の関節の3次元座標と誤認することがある。
 1つの側面では、本発明は、対象者の部位の位置を精度よく特定可能にすることを目的とする。
 1つの実施態様によれば、対象者の複数の部位のそれぞれの部位の位置を含む骨格情報の時系列データを取得し、取得した前記時系列データにおける骨格情報の特徴量に基づいて、取得した前記時系列データにおける第1時点の骨格情報に対応する前記対象者の動作の種類を特定し、取得した前記時系列データにおける前記第1時点の骨格情報のうち、前記複数の部位のいずれかの部位の位置の時間変化を、特定した前記動作の種類に対応する前記いずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定し、時点ごとの前記それぞれの部位の位置を示すノードと、前記時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する第1エッジと、異なる時点の前記いずれかの部位の位置を示すノード同士を接続する第2エッジとを含み、前記第2エッジに決定した前記モデルを対応付けたグラフを生成し、生成した前記グラフに基づいて、前記時系列データにおける前記第1時点の骨格情報を修正する情報処理プログラム、情報処理方法、および情報処理装置が提案される。
 一態様によれば、対象者の部位の位置を精度よく特定可能にすることが可能になる。
図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。 図2は、情報処理システム200の一例を示す説明図である。 図3は、情報処理装置100のハードウェア構成例を示すブロック図である。 図4は、画像撮像装置201のハードウェア構成例を示すブロック図である。 図5は、情報処理装置100の機能的構成例を示すブロック図である。 図6は、情報処理装置100の動作の流れを示す説明図である。 図7は、異常関節を特定する具体例を示す説明図(その1)である。 図8は、異常関節を特定する具体例を示す説明図(その2)である。 図9は、Factor Graphを生成する具体例を示す説明図である。 図10は、「ジャンプ」に対応するFactor Graphの雛型911の具体例を示す説明図である。 図11は、「寝そべり」に対応するFactor Graphの雛型911の具体例を示す説明図である。 図12は、時系列制約を追加する具体例を示す説明図である。 図13は、3D骨格推論結果602を修正する具体例を示す説明図である。 図14は、動作例におけるデータ処理の流れの具体例を示す説明図(その1)である。 図15は、動作例におけるデータ処理の流れの具体例を示す説明図(その2)である。 図16は、全体処理手順の一例を示すフローチャートである。
 以下に、図面を参照して、本発明にかかる情報処理プログラム、情報処理方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態にかかる情報処理方法の一実施例)
 図1は、実施の形態にかかる情報処理方法の一実施例を示す説明図である。情報処理装置100は、対象者の部位の位置を精度よく特定可能にするためのコンピュータである。対象者は、例えば、人である。部位は、例えば、首、頭、右肩および左肩、右肘および左肘、右手および左手、右膝および左膝、右足および左足などである。部位は、例えば、関節である。位置は、例えば、3次元座標である。
 従来、深層学習を利用して、時点ごとに、異なるアングルから撮像した多視点画像に基づいて、人のそれぞれの関節の3次元座標を特定することにより、人のそれぞれの関節の3次元座標の時間変化を特定するための技術がある。
 具体的には、多視点画像のうち、人が映った領域を検出し、検出した領域に基づいて人のそれぞれの関節の2次元座標を特定し、アングルを考慮して、特定した2次元座標に基づいて、人のそれぞれの関節の3次元座標を特定することが考えられる。具体的には、人のそれぞれの関節の3次元座標を特定するにあたり、深層学習で学習したモデルが利用される。この技術の一例については、具体的には、下記参考文献1および下記参考文献2を参照することができる。
 参考文献1 : Iskakov, Karim, et al. “Learnable triangulation of human pose.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.
 参考文献2 : Moon, Gyeongsik, Ju Yong Chang, and Kyoung Mu Lee. “V2v-posenet: Voxel-to-voxel prediction network for accurate 3d hand and human pose estimation from a single depth map.” Proceedings of the IEEE conference on computer vision and pattern Recognition. 2018.
 しかしながら、従来技術では、人のそれぞれの関節の3次元座標を精度よく特定することが難しい場合がある。例えば、異なる時点でも同一人のそれぞれの関節間の距離は一定であるものの、深層学習にてモデルを学習する際、人のそれぞれの関節間の距離が一定であることを考慮していない。このため、人のそれぞれの関節の3次元座標を精度よく特定することができず、人のそれぞれの関節の3次元座標の時間変化を精度よく特定することができない。
 人の動きを解析する解析者は、特定した人のそれぞれの関節の3次元座標を参照した際、人のそれぞれの関節の3次元座標が、直感的に誤っているという印象を覚えることになり易い。具体的には、解析者は、人の腕の長さが伸び縮みしているという印象を覚えることになる。また、具体的には、解析者は、人が出し得ない速度で人の腕が動いているという印象を覚えることになる。
 そこで、本実施の形態では、対象者の関節の位置を精度よく特定可能にすることができる情報処理方法について説明する。
 図1において、(1-1)情報処理装置100は、骨格情報101の時系列データを取得する。骨格情報101は、例えば、対象者の複数の部位のそれぞれの部位の位置を含む。部位は、例えば、首、頭、右肩および左肩、右肘および左肘、右手および左手、右膝および左膝、右足および左足などである。部位は、例えば、関節である。図1の例では、部位は、具体的には、関節1と、関節2と、関節3となどである。位置は、例えば、3次元座標である。時系列データは、例えば、時点ごとの骨格情報101を含む。図1の例では、時系列データは、具体的には、時点Tの骨格情報101、時点T-1の骨格情報101などを含む。
 (1-2)情報処理装置100は、取得した時系列データにおける骨格情報101の特徴量に基づいて、取得した時系列データにおける第1時点の骨格情報101に対応する対象者の動作の種類を特定する。動作の種類は、例えば、歩行、走行、ジャンプ、座り、寝そべり、ターンまたはスピンなどの横回転、あるいは、宙返りまたは鉄棒運動などの縦回転などである。特徴量は、例えば、骨格情報101が示す対象者のそれぞれの部位の位置であってもよい。特徴量は、例えば、異なる時点の骨格情報101が示す対象者のそれぞれの部位の位置の偏差であってもよい。特徴量は、例えば、骨格情報101が示す対象者の異なる部位の位置間の距離であってもよい。
 情報処理装置100は、例えば、対象者の動作の種類を特定するための第1モデルを有する。第1モデルは、例えば、骨格情報101の特徴量の入力に応じて、対象者の動作の種類を判定可能にする機能を有する。情報処理装置100は、第1モデルを利用して、取得した時系列データにおける第1時点の骨格情報101に対応する対象者の動作の種類を特定する。図1の例では、情報処理装置100は、具体的には、取得した時系列データにおける第1時点の骨格情報101に対応する対象者の動作の種類として「寝そべり」を特定する。
 (1-3)情報処理装置100は、取得した時系列データにおける第1時点の骨格情報101のうち、複数の部位のいずれかの部位の位置の時間変化を、特定した動作の種類に対応するいずれかの部位の動きの傾向に応じて制約する確率分布の第2モデルを決定する。動きの傾向は、例えば、等位置運動、等速運動、または、等加速運動の傾向である。図1の例では、情報処理装置100は、具体的には、時点Tの骨格情報101において、関節1の位置の時間変化を、寝そべりに対応する等位置運動の傾向に応じて制約する確率分布の第2モデルを決定する。
 (1-4)情報処理装置100は、時点ごとのそれぞれの部位の位置を示すノード111と、ノード111同士を接続する第1エッジ112と、ノード111同士を接続する第2エッジ113とを含むグラフ110を生成する。第1エッジ112は、時点ごとの生体的に連結する異なる部位の位置を示すノード111同士を接続する。第2エッジ113は、異なる時点のいずれかの部位の位置を示すノード111同士を接続する。
 情報処理装置100は、グラフ110を生成する際、第2エッジ113に、決定した第2モデルを対応付ける。図1の例では、情報処理装置100は、具体的には、時点T-1と時点Tとの対象者の関節1の位置を示すノード111同士を接続する第2エッジ113に、決定した第2モデルを対応付けて、グラフ110を生成する。
 (1-5)情報処理装置100は、生成したグラフ110に基づいて、時系列データにおける第1時点の骨格情報101を修正する。情報処理装置100は、例えば、時系列データにおける時点Tの骨格情報101に含まれる対象者の関節1の位置を修正する。これにより、情報処理装置100は、対象者のそれぞれの関節の位置を精度よく特定することができる。情報処理装置100は、対象者のそれぞれの関節の位置の時間変化を精度よく特定することができる。
 ここでは、情報処理装置100が、第1モデルを利用して、対象者の動作の種類を特定する場合について説明したが、これに限らない。例えば、情報処理装置100が、第1モデルを利用せずに、対象者の動作の種類を特定する場合があってもよい。
 ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、複数のコンピュータが協働して、情報処理装置100としての機能を実現する場合があってもよい。具体的には、対象者の動作の種類を特定するコンピュータと、グラフ110を生成するコンピュータと、グラフ110に基づいて時系列データにおける第1時点の骨格情報101を修正するコンピュータとが協働する場合があってもよい。
(情報処理システム200の一例)
 次に、図2を用いて、図1に示した情報処理装置100を適用した、情報処理システム200の一例について説明する。
 図2は、情報処理システム200の一例を示す説明図である。図2において、情報処理システム200は、情報処理装置100と、1以上の画像撮像装置201と、1以上のクライアント装置202とを含む。
 情報処理システム200において、情報処理装置100と画像撮像装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、情報処理システム200において、情報処理装置100とクライアント装置202とは、有線または無線のネットワーク210を介して接続される。
 情報処理装置100は、時点ごとに異なるアングルから対象者を撮像した複数の画像を、1以上の画像撮像装置201から取得する。情報処理装置100は、時点ごとに、取得した複数の画像に基づいて、3次元空間における対象者のそれぞれの部位の存在確率の分布を特定し、対象者のそれぞれの部位の3次元座標を特定する。
 情報処理装置100は、特定した対象者のそれぞれの部位の3次元座標に基づいて、時点ごとに、対象者の動作の種類を特定する。情報処理装置100は、時点ごとに、特定した対象者の動作の種類に基づいて、対象者の複数の部位のうち、当該種類に対応するいずれかの部位を特定する。情報処理装置100は、時点ごとに、特定した対象者の動作の種類に基づいて、特定したいずれかの部位の位置の時間変化を、当該種類に応じて制約する確率分布のモデルを決定する。
 情報処理装置100は、特定したそれぞれの時点の対象者のそれぞれの部位の3次元座標を示すノードを含むグラフを生成する。情報処理装置100は、グラフを生成する際、それぞれの時点について、生体的に連結する対象者の異なる部位の3次元座標を示すノード同士を接続する第1エッジがグラフに含まれるよう、グラフを生成する。
 情報処理装置100は、グラフを生成する際、それぞれの時点について、特定したいずれかの部位に関する、当該時点と当該時点以外の他の時点との3次元座標を示すノード同士を接続する第2エッジがグラフに含まれるよう、グラフを生成する。ある時点以外の他の時点は、例えば、当該ある時点の直前の時点である。情報処理装置100は、グラフに含まれる第2エッジに、決定したモデルを対応付ける。
 情報処理装置100は、グラフを参照して、特定した対象者のそれぞれの部位の3次元座標を修正する。情報処理装置100は、修正した対象者のそれぞれの部位の3次元座標を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、他のコンピュータへの送信、または、記憶領域への記憶などである。情報処理装置100は、例えば、修正した対象者のそれぞれの部位の3次元座標を、クライアント装置202に送信する。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
 画像撮像装置201は、対象者を撮像するコンピュータである。画像撮像装置201は、複数の撮像素子を有するカメラを含み、カメラによって対象者を撮像する。画像撮像装置201は、対象者を撮像した画像を生成し、情報処理装置100に送信する。画像撮像装置201は、例えば、スマートフォンなどである。画像撮像装置201は、例えば、定点カメラなどであってもよい。画像撮像装置201は、例えば、ドローンなどであってもよい。
 クライアント装置202は、対象者のそれぞれの部位の3次元座標を、情報処理装置100から受信する。クライアント装置202は、受信した対象者のそれぞれの部位の3次元座標を、利用者が参照可能に出力する。クライアント装置202は、例えば、受信した対象者のそれぞれの部位の3次元座標を、ディスプレイに表示する。クライアント装置202は、例えば、PC、タブレット端末、または、スマートフォンなどである。
 ここでは、情報処理装置100が、画像撮像装置201とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、画像撮像装置201としての機能を有し、画像撮像装置201としても動作する場合があってもよい。ここでは、情報処理装置100が、クライアント装置202とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置202としての機能を有し、クライアント装置202としても動作する場合があってもよい。
(情報処理装置100のハードウェア構成例)
 次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
 図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。情報処理装置100は、さらに、ディスプレイ306と、入力装置307とを有する。また、各構成部は、バス300によってそれぞれ接続される。
 ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
 ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
 記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
 ディスプレイ306は、カーソル、アイコン、ツールボックス、文書、画像、または、機能情報などのデータを表示する。ディスプレイ306は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、または、有機EL(Electroluminescence)ディスプレイなどである。入力装置307は、文字、数字、または、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置307は、例えば、キーボード、または、マウスなどである。入力装置307は、例えば、タッチパネル式の入力パッド、または、テンキーなどであってもよい。
 情報処理装置100は、上述した構成部の他、例えば、カメラなどを有してもよい。また、情報処理装置100は、上述した構成部の他、例えば、プリンタ、スキャナ、マイク、または、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304および記録媒体305を複数有していてもよい。また、情報処理装置100は、ディスプレイ306、または、入力装置307などを有していなくてもよい。また、情報処理装置100は、記録媒体I/F304および記録媒体305を有していなくてもよい。
(画像撮像装置201のハードウェア構成例)
 次に、図4を用いて、画像撮像装置201のハードウェア構成例について説明する。
 図4は、画像撮像装置201のハードウェア構成例を示すブロック図である。図4において、画像撮像装置201は、CPU401と、メモリ402と、ネットワークI/F403と、記録媒体I/F404と、記録媒体405と、カメラ406とを有する。また、各構成部は、バス400によってそれぞれ接続される。
 ここで、CPU401は、画像撮像装置201の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることにより、コーディングされている処理をCPU401に実行させる。
 ネットワークI/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F403は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F403は、例えば、モデムやLANアダプタなどである。
 記録媒体I/F404は、CPU401の制御に従って記録媒体405に対するデータのリード/ライトを制御する。記録媒体I/F404は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体405は、記録媒体I/F404の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体405は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体405は、画像撮像装置201から着脱可能であってもよい。カメラ406は、複数の撮像素子を有し、複数の撮像素子によって対象物を撮像した画像を生成する。カメラ406は、例えば、競技用カメラである。カメラ406は、例えば、監視カメラである。
 画像撮像装置201は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、画像撮像装置201は、記録媒体I/F404や記録媒体405を複数有していてもよい。また、画像撮像装置201は、記録媒体I/F404や記録媒体405を有していなくてもよい。
(クライアント装置202のハードウェア構成例)
 クライアント装置202のハードウェア構成例は、具体的には、図3に示した情報処理装置100のハードウェア構成例と同様であるため、説明を省略する。
(情報処理装置100の機能的構成例)
 次に、図5を用いて、情報処理装置100の機能的構成例について説明する。
 図5は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部500と、取得部501と、解析部502と、学習部503と、特定部504と、決定部505と、生成部506と、修正部507と、出力部508とを含む。
 記憶部500は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部500が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、情報処理装置100とは異なる装置に含まれ、記憶部500の記憶内容が情報処理装置100から参照可能である場合があってもよい。
 取得部501~出力部508は、制御部の一例として機能する。取得部501~出力部508は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
 記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、例えば、連続する複数の時点のそれぞれの時点において特定の者を異なるアングルから撮像した複数の画像を記憶する。アングルは、撮像位置を示す。画像は、例えば、取得部501によって取得される。
 記憶部500は、例えば、骨格情報の時系列データを記憶する。時系列データは、連続する複数の時点のそれぞれの時点における骨格情報を含む。骨格情報は、特定の者の複数の部位のそれぞれの部位の位置を含む。部位は、例えば、関節である。部位は、例えば、首、頭、右肩および左肩、右肘および左肘、右手および左手、右膝および左膝、右足および左足などである。位置は、例えば、3次元座標である。時系列データは、例えば、取得部501によって取得される。時系列データは、例えば、解析部502によって生成されてもよい。
 取得部501は、各機能部の処理に用いられる各種情報を取得する。取得部501は、取得した各種情報を、記憶部500に記憶し、または、各機能部に出力する。また、取得部501は、記憶部500に記憶しておいた各種情報を、各機能部に出力してもよい。取得部501は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部501は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
 取得部501は、例えば、対象者の骨格情報の時系列データを取得する。対象者の骨格情報は、例えば、対象者の複数の部位のそれぞれの部位の位置を含む。取得部501は、具体的には、利用者の操作入力に基づき、対象者の骨格情報の時系列データの入力を受け付けることにより、対象者の骨格情報の時系列データを取得する。取得部501は、具体的には、対象者の骨格情報の時系列データを、他のコンピュータから受信することにより取得してもよい。
 取得部501は、例えば、過去の被験者の骨格情報の時系列データを取得してもよい。被験者は、例えば、対象者と同一であってもよい。被験者の骨格情報は、例えば、被験者の複数の部位のそれぞれの部位の位置を含む。取得部501は、具体的には、利用者の操作入力に基づき、被験者の骨格情報の時系列データの入力を受け付けることにより、被験者の骨格情報の時系列データを取得する。取得部501は、具体的には、被験者の骨格情報の時系列データを、他のコンピュータから受信することにより取得してもよい。
 取得部501は、例えば、過去の被験者の骨格情報の時系列データにおけるそれぞれの骨格情報に対応する被験者の動作の種類を取得してもよい。動作の種類は、例えば、歩行、走行、ジャンプ、座り、寝そべり、ターンまたはスピンなどの横回転、あるいは、宙返りまたは鉄棒運動などの縦回転などである。取得部501は、具体的には、利用者の操作入力に基づき、過去の被験者の骨格情報の時系列データにおけるそれぞれの骨格情報に対応する被験者の動作の種類の入力を受け付けることにより、被験者の動作の種類を取得する。取得部501は、具体的には、過去の被験者の骨格情報の時系列データにおけるそれぞれの骨格情報に対応する被験者の動作の種類を、他のコンピュータから受信することにより取得してもよい。
 取得部501は、例えば、連続する複数の時点のそれぞれの時点において対象者を異なるアングルから撮像した複数の画像を取得する。取得部501は、対象者の骨格情報の時系列データを取得せずに解析部502で生成する場合、複数の画像を取得する。これにより、取得部501は、対象者の骨格情報の時系列データを解析部502で生成可能にすることができる。
 取得部501は、例えば、連続する複数の時点のそれぞれの時点において被験者を異なるアングルから撮像した複数の画像を取得してもよい。取得部501は、被験者の骨格情報の時系列データを取得せずに解析部502で生成する場合、複数の画像を取得する。これにより、取得部501は、被験者の骨格情報の時系列データを解析部502で生成可能にすることができる。
 取得部501は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
 取得部501は、例えば、複数の画像を取得したことを、解析部502の処理を開始する開始トリガーとして受け付けてもよい。取得部501は、例えば、被験者の骨格情報の時系列データを取得したことを、学習部503の処理を開始する開始トリガーとして受け付けてもよい。取得部501は、例えば、対象者の骨格情報の時系列データを取得したことを、特定部504と決定部505と生成部506と修正部507との処理を開始する開始トリガーとして受け付けてもよい。
 解析部502は、所定の者の骨格情報の時系列データを生成する。解析部502は、例えば、対象者の骨格情報の時系列データを生成する。解析部502は、具体的には、複数の時点のそれぞれの時点において対象者を異なるアングルから撮像した複数の画像に基づいて、それぞれの時点における対象者のそれぞれの部位の位置を推定し、推定した位置を含む対象者の骨格情報を生成する。解析部502は、具体的には、生成した対象者の骨格情報に基づいて、対象者の骨格情報の時系列データを生成する。これにより、解析部502は、それぞれの時点における対象者のそれぞれの部位の位置を仮に特定することができ、修正対象を得ることができる。
 解析部502は、例えば、被験者の骨格情報の時系列データを生成してもよい。解析部502は、具体的には、複数の時点のそれぞれの時点において被験者を異なるアングルから撮像した複数の画像に基づいて、それぞれの時点における被験者の骨格情報を生成し、被験者の骨格情報の時系列データを生成する。解析部502は、生成した被験者の骨格情報の時系列データにノイズを加えてもよい。解析部502は、被験者の骨格情報を、学習モデルを生成するための教師情報に設定する。これにより、解析部502は、学習モデルを生成するための教師情報を得ることができる。
 学習部503は、被験者の複数の部位のそれぞれの部位の位置を含む教師情報に基づいて、第1学習モデルを学習する。第1学習モデルは、所定の者の骨格情報の時系列データにおける骨格情報に関する特徴量に応じて、所定の者の複数の部位のうち、位置に関して異常な状態であるいずれかの部位を特定可能にする機能を有する。第1学習モデルは、例えば、所定の者のそれぞれの部位が、位置に関して異常な状態であるか否かを判定可能にする機能を有する。
 第1学習モデルは、具体的には、所定の者のそれぞれの部位が、位置に関して異常な状態である確率の大きさを示す指標値を算出する機能を有する。第1学習モデルは、より具体的には、骨格情報に関する特徴量が入力されたことに応じて、所定の者のそれぞれの部位について、当該部位が位置に関して異常な状態である確率の大きさを示す指標値を出力する。第1学習モデルは、具体的には、ニューラルネットワークである。これにより、学習部503は、対象者の複数の部位のうち、位置に関して異常な状態であるいずれかの部位を特定可能にすることができる。
 学習部503は、被験者の複数の部位のそれぞれの部位の位置を含む教師情報に基づいて、第2学習モデルを学習する。第2学習モデルは、所定の者の骨格情報の時系列データにおける骨格情報に関する特徴量に応じて、所定の者の骨格情報の時系列データにおけるそれぞれの骨格情報に対応する所定の者の動作の種類を特定可能にする機能を有する。
 第2学習モデルは、具体的には、時系列データにおける骨格情報に関する特徴量が入力されたことに応じて、時系列データにおけるいずれかの骨格情報に対応する所定の者の動作の種類となり得る候補ごとの確からしさを示す指標値を出力する。第2学習モデルは、具体的には、ニューラルネットワークである。これにより、学習部503は、対象者の動作の種類を特定可能にすることができる。
 特定部504は、取得した時系列データにおける骨格情報の特徴量に基づいて、取得した時系列データにおける第1時点の骨格情報に対応する対象者の動作の種類を特定する。特定部504は、例えば、学習した第2学習モデルを利用して、取得した対象者の骨格情報の時系列データにおける骨格情報に関する特徴量に基づいて、第1時点の骨格情報に対応する対象者の動作の種類を特定する。
 特定部504は、具体的には、第2学習モデルに、対象者の骨格情報の時系列データにおける骨格情報に関する特徴量を入力することにより、第1時点の骨格情報に対応する対象者の動作の種類となり得る候補ごとの確からしさを示す指標値を算出する。特定部504は、具体的には、算出した指標値に基づいて、第1時点の骨格情報に対応する対象者の動作の種類を特定する。特定部504は、より具体的には、算出した指標値が最も大きい候補を、対象者の動作の種類として特定する。これにより、特定部504は、対象者の複数の部位のそれぞれの部位の位置を修正する指針を得ることができる。特定部504は、対象者のいずれの部位の位置を修正することが好ましいかを判別可能にすることができる。
 特定部504は、対象者の複数の部位のうち、位置に関して異常な状態である異常部位を特定する。特定部504は、取得した対象者の骨格情報の時系列データにおける骨格情報に関する特徴量に基づいて、取得した対象者の骨格情報の時系列データにおける第1時点の骨格情報について、位置に関して異常な状態である異常部位を特定する。特定部504は、例えば、学習した第1学習モデルを利用して、取得した対象者の骨格情報の時系列データにおける骨格情報に関する特徴量に基づいて、第1時点の骨格情報について、位置に関して異常な状態である異常部位を特定する。
 特定部504は、具体的には、第1学習モデルに、対象者の骨格情報の時系列データにおける骨格情報に関する特徴量を入力することにより、第1時点の骨格情報について、対象者のそれぞれの部位の異常な状態である確率の大きさを示す指標値を算出する。特定部504は、具体的には、算出した指標値に基づいて、第1時点の骨格情報について、位置に関して異常な状態である異常部位を特定する。特定部504は、より具体的には、対象者の複数の部位のうち、算出した指標値が閾値以上である部位を、位置に関して異常な状態である異常部位として特定する。これにより、特定部504は、対象者の複数の部位のそれぞれの部位の位置を修正する指針を得ることができる。特定部504は、対象者のいずれの部位の位置を修正することが好ましいかを判別可能にすることができる。
 決定部505は、取得した時系列データにおける第1時点の骨格情報のうち、複数の部位のうち、特定した動作の種類に対応するいずれかの部位の位置の時間変化を制約する確率分布の分布モデルを決定する。分布モデルは、例えば、特定した動作の種類に対応するいずれかの部位の動きの傾向に応じて、特定した動作の種類に対応するいずれかの部位の位置の時間変化を制約するためのモデルである。動きの傾向は、例えば、等位置運動、等速運動、または、等加速運動などの傾向である。これにより、決定部505は、特定部504で特定した部位の位置を修正する指針を得ることができる。
 生成部506は、時点ごとのそれぞれの部位の位置を示すノードと、第1エッジと、第2エッジとを含むグラフを生成する。第1エッジは、時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する。第2エッジは、異なる時点における、特定した動作の種類に対応するいずれかの部位の位置を示すノード同士を接続する。生成部506は、グラフを生成する際、第2エッジに、決定した分布モデルを対応付ける。これにより、生成部506は、対象者の骨格情報の時系列データにおける第1時点の骨格情報を修正可能にすることができる。
 生成部506は、複数の部位のうち、特定した動作の種類に対応するいずれかの部位以外の他の部位の位置を示すノード同士を接続する第3エッジを、さらにグラフに含めるよう、グラフを生成してもよい。生成部506は、例えば、異なる時点の他の部位の位置を示すノードそれぞれに接続された第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、グラフに含めるよう、グラフを生成する。これにより、生成部506は、対象者の骨格情報の時系列データにおける第1時点の骨格情報を精度よく修正可能にすることができる。生成部506は、例えば、他の部位の位置を精度よく修正可能にすることができる。
 生成部506は、複数の部位のうち、特定した動作の種類に対応するいずれかの部位以外に、異常部位であると特定した他の部位の位置を示すノード同士を接続する第3エッジを、さらにグラフに含めるよう、グラフを生成してもよい。生成部506は、例えば、異なる時点の他の部位の位置を示すノードそれぞれに接続された第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、グラフに含めるよう、グラフを生成する。これにより、生成部506は、対象者の骨格情報の時系列データにおける第1時点の骨格情報を精度よく修正可能にすることができる。生成部506は、例えば、異常部位であると判断された他の部位の位置を精度よく修正可能にすることができる。
 修正部507は、生成したグラフに基づいて、対象者の骨格情報の時系列データにおける第1時点の骨格情報を修正する。修正部507は、例えば、生成したグラフを最適化することにより、対象者の骨格情報の時系列データにおける第1時点の骨格情報を修正する。これにより、修正部507は、対象者の動作の種類を考慮して、対象者のそれぞれの部位の位置を精度よく特定可能にすることができる。修正部507は、対象者のそれぞれの部位の異常な状態である確率の大きさを考慮して、対象者のそれぞれの部位の位置を精度よく特定可能にすることができる。
 出力部508は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部508は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
 出力部508は、例えば、修正部507で修正した第1時点の骨格情報を出力する。出力部508は、具体的には、修正部507で修正した第1時点の骨格情報を、クライアント装置202に送信する。出力部508は、具体的には、修正部507で修正した第1時点の骨格情報を、ディスプレイに表示する。これにより、出力部508は、対象者のそれぞれの部位の位置を利用可能にすることができる。
(情報処理装置100の動作例)
 次に、図6~図15を用いて、情報処理装置100の動作例について説明する。まず、例えば、図6を用いて、情報処理装置100の動作の流れについて説明する。
 図6は、情報処理装置100の動作の流れを示す説明図である。図6において、情報処理装置100は、異なる時点における対象者を異なるアングルで撮像した複数の多視点画像600を取得する。情報処理装置100は、複数の多視点画像600のそれぞれの多視点画像600に対して、人検出処理を実施することにより、それぞれの多視点画像600のうち対象者が映った領域を検出する。
 情報処理装置100は、時点ごとに、それぞれの多視点画像600に対して、2D(Dimension)pose推定処理を実施する。情報処理装置100は、時点ごとに、それぞれの多視点画像600に対して、2Dpose推定処理を実施することにより、それぞれの多視点画像600における対象者のそれぞれの関節の存在確率の分布を示す2Dヒートマップ601を生成する。2Dヒートマップ601は、例えば、多視点画像600に対応する2D空間のそれぞれの点における、対象者のいずれかの関節の存在確率を示す関節尤度を含む。
 情報処理装置100は、時点ごとに、それぞれの多視点画像600における対象者のそれぞれの関節の存在確率の分布を示す2Dヒートマップ601に基づいて、当該多視点画像600における、対象者の当該関節の2D座標を特定する。2Dヒートマップ601における、対象者の関節の存在確率を示す関節尤度の分散は、特定した2D座標の精度を表す指標値として扱うことができる。
 情報処理装置100は、時点ごとに、それぞれの多視点画像600のアングルを示す配置情報を取得する。情報処理装置100は、時点ごとに、配置情報と、それぞれの多視点画像600における、対象者のそれぞれの関節の2D座標とに基づいて、3Dpose推定処理を実施することにより、3D空間における、対象者のそれぞれの関節の3D座標を特定する。情報処理装置100は、時点ごとに、特定した対象者のそれぞれの関節の3D座標を含む3D骨格推論結果602を生成し、3D骨格推論結果602の時系列データを生成する。
 情報処理装置100は、3D骨格推論結果602の時系列データに対して、修正処理を実施することにより、3D骨格推論結果602を修正する。情報処理装置100は、修正した後の3D骨格推論結果603の時系列データを利用可能に出力する。情報処理装置100は、例えば、修正した後の3D骨格推論結果603の時系列データを、利用者が参照可能に出力する。
 利用者は、修正した後の3D骨格推論結果603の時系列データに基づいて、所定の解析処理を実施する。具体的には、対象者が、運動の大会の参加者である場合が考えられる。この場合、解析処理は、例えば、運動の大会の競技における参加者の採点である。利用者は、修正した後の3D骨格推論結果603の時系列データに基づいて、参加者を採点する解析処理を実施する。
 具体的には、対象者が、リハビリテーションを実施する医療機関受診者、または、歩行能力などの運動能力の診断を受ける医療機関受診者などである場合が考えられる。この場合、解析処理は、例えば、リハビリテーションの効果判定、あるいは、運動能力または健康状態の診断などである。利用者は、修正した後の3D骨格推論結果603の時系列データに基づいて、医療機関受診者のリハビリテーションの効果判定を実施し、または、医療機関受診者の運動能力または健康状態の診断を実施する。
 情報処理装置100は、修正した後の3D骨格推論結果603の時系列データに基づいて、上述した解析処理を実施してもよい。情報処理装置100は、解析処理を実施した結果を、利用者が参照可能に出力する。情報処理装置100は、修正した後の3D骨格推論結果603の時系列データを、上述した解析処理を実施する解析部502に出力してもよい。解析部502は、例えば、情報処理装置100以外の他のコンピュータが有する。これにより、情報処理装置100は、解析処理を精度よく実施可能にすることができる。
 次に、図7~図15を用いて、修正処理の具体例について説明する。具体的には、まず、図7および図8を用いて、情報処理装置100が、対象者の複数の関節のうち、3D座標に関して異常な状態であると判断される異常関節を特定する具体例について説明する。
 図7および図8は、異常関節を特定する具体例を示す説明図である。図7において、情報処理装置100は、複数の元データ700の時系列データを取得する。元データ700は、被験者の骨格情報を示す。元データ700は、被験者の複数の関節のそれぞれの関節の3D座標を示す。関節の3D座標は、例えば、図中の●である。
 情報処理装置100は、元データ700にノイズを付与することにより、加工データ701を生成する。情報処理装置100は、例えば、元データ700が示す被験者の複数の関節の少なくともいずれかの関節の3D座標を、異常な状態であると判断される3D座標に変更することにより、加工データ701を生成する。異常な状態は、例えば、関節の3D座標を誤って推定した状態に対応する。異常な状態は、具体的には、jitter、inversion、swap、または、missなどである。これにより、情報処理装置100は、加工データ701の時系列データを取得することができる。
 情報処理装置100は、加工データ701の時系列データを利用して、異常判定DNN710を学習する。異常判定DNN710は、例えば、3D骨格推論結果602の時系列データにおける3D骨格推論結果602の特徴量の入力に応じて、少なくともいずれかの3D骨格推論結果602における、対象者のそれぞれの関節の異常確率を出力する機能を有する。異常確率は、対象者の関節の3D座標が、位置的に異常な状態である確率の大きさを示す。
 異常判定DNN710は、例えば、3D骨格推論結果602の時系列データにおける3D骨格推論結果602の特徴量の入力に応じて、当該時系列データ全体における、対象者のそれぞれの関節の異常確率を出力する機能を有していてもよい。次に、図8の説明に移行する。
 図8において、情報処理装置100は、3D骨格推論結果602の時系列データにおける3D骨格推論結果602の特徴量を、異常判定DNN710に入力する。情報処理装置100は、入力に応じて異常判定DNN710が出力した、それぞれの3D骨格推論結果602における、対象者のそれぞれの関節の異常確率を取得する。情報処理装置100は、取得した対象者のそれぞれの関節の異常確率に基づいて、異常関節を特定する。情報処理装置100は、例えば、対象者の複数の関節のうち、取得した異常確率が閾値以上であるいずれかの関節を、異常関節として特定する。
 ここでは、情報処理装置100が、異常判定DNN710を利用して、異常関節を特定する場合について説明したが、これに限らない。例えば、情報処理装置100が、ルールベースで異常関節を特定する場合があってもよい。具体的には、情報処理装置100は、3D骨格推論結果602において、それぞれの関節に関する特徴量と閾値との差分の大きさに応じて、当該関節の異常確率を算出するルールを記憶しておいてもよい。具体的には、情報処理装置100は、記憶したルールを参照して、それぞれの関節の異常確率を算出し、算出した異常確率が閾値以上であるいずれかの関節を、異常関節であると特定することが考えられる。次に、図9を用いて、情報処理装置100が、Factor Graphを生成する具体例について説明する。
 図9は、Factor Graphを生成する具体例を示す説明図である。図9において、情報処理装置100は、状態推定DNN900を有する。状態推定DNN900は、3D骨格推論結果602の時系列データにおける3D骨格推論結果602の特徴量の入力に応じて、少なくともいずれかの3D骨格推論結果602における対象者の運動の種類を出力する機能を有する。
 状態推定DNN900は、例えば、3D骨格推論結果602の時系列データにおける3D骨格推論結果602の特徴量の入力に応じて、当該時系列データ全体における、対象者の運動の種類を出力する機能を有していてもよい。
 情報処理装置100は、Factor Graph定義DB(DataBase)910を有する。Factor Graph定義DB910は、対象者の運動の種類ごとに、Factor Graphの雛型911を記憶する。雛型911は、例えば、対象者のそれぞれの関節の位置を示すノードと、生体的に連結する異なる関節の位置を示すノード同士を接続する第1エッジと、異なる時点の同一の関節の位置を示すノード同士を接続する第2エッジとによって形成される。第1エッジは、関節間距離の制約が対応付けられていてもよい。関節間距離は、例えば、骨の長さである。
 Factor Graph定義DB910は、具体的には、運動の種類「ジャンプ」に対応する雛型911と、運動の種類「寝そべり」に対応する雛型911となどを記憶する。第2エッジは、例えば、対象者の運動の種類ごとに、対象者の運動の種類に対応するいずれかの関節の位置を示すノード同士を接続する。換言すれば、第2エッジは、例えば、対象者の運動の種類ごとに異なる関節の位置を示すノード同士を接続する。
 第2エッジは、分布モデルが対応付けられる。いずれかの関節の位置を示すノード同士を接続する第2エッジは、運動の種類に対応する当該いずれかの関節の動きの傾向に応じて、当該いずれかの関節の位置の時間変化を制約する確率分布を示す分布モデルが対応付けられる。傾向は、例えば、運動の種類が「ジャンプ」であれば、等速直線運動に対応する。傾向は、例えば、運動の種類が「寝そべり」であれば、等位置運動に対応する。
 情報処理装置100は、状態推定DNN900を利用して、それぞれの3D骨格推論結果602における、対象者の運動の種類を特定する。情報処理装置100は、Factor Graph定義DB910を参照して、それぞれの3D骨格推論結果602における、対象者の運動の種類に対応する雛型911を、利用するFactor Graphとして選択する。次に、図10および図11を用いて、Factor Graphの雛型911の具体例について説明する。
 図10は、「ジャンプ」に対応するFactor Graphの雛型911の具体例を示す説明図である。雛型911は、例えば、対象者のそれぞれの関節の位置を示すノードを含む。雛型911は、具体的には、対象者の頭部、上部頸椎、下部頸椎、胸椎、腰椎、左右股関節、左右膝関節、左右脚関節、左右足部、左右肩関節、左右肘関節、左右手首、左右手のそれぞれの位置を示すノードを含む。
 図10の例では、異なる時点の対象者の下部頸椎の位置を示すノード同士が、第2エッジ1001で接続される。また、異なる時点の対象者の胸椎の位置を示すノード同士が、第2エッジ1001で接続される。また、異なる時点の対象者の腰椎の位置を示すノード同士が、第2エッジ1001で接続される。
 また、異なる時点の対象者の左股関節の位置を示すノード同士が、第2エッジ1001で接続される。また、異なる時点の対象者の右股関節の位置を示すノード同士が、第2エッジ1001で接続される。それぞれの第2エッジは、等速直線運動に対応する時系列制約を示すPairwise Termの分布モデルが対応付けられる。
 Pairwise Termは、例えば、gt(xj,t-1,xj,t)~N(||xj,t-1,xj,t||┃vj^Δt,Σvj^)である。xj,t-1は、時刻t-1の関節の推定位置である。xj,tは、時刻tの関節の推定位置である。vj^は、関節の平均速度である。Δtは、単位時間幅である。Σvj^は、関節の速度分散である。ここで、運動の種類が「ジャンプ」である場合、体幹部分の関節の位置の時間変化が規則的になり易いと考えられる。これに対し、雛型911は、運動の種類が「ジャンプ」である場合に、位置の時間変化が予測し易いと考えられる体幹部分の関節について、等速直線運動を仮定して、位置の時間変化を制約することができる。次に、図11の説明に移行する。
 図11は、「寝そべり」に対応するFactor Graphの雛型911の具体例を示す説明図である。雛型911は、例えば、対象者のそれぞれの関節の位置を示すノードを含む。雛型911は、具体的には、対象者の頭部、上部頸椎、下部頸椎、胸椎、腰椎、左右股関節、左右膝関節、左右脚関節、左右足部、左右肩関節、左右肘関節、左右手首、左右手のそれぞれの位置を示すノードを含む。
 図11の例では、異なる時点の対象者の頭部の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の上部頸椎の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の下部頸椎の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の胸椎の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の腰椎の位置を示すノード同士が、第2エッジ1101で接続される。
 また、異なる時点の対象者の左股関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右股関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の左膝関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右膝関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の左脚関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右脚関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の左足部の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右足部の位置を示すノード同士が、第2エッジ1101で接続される。
 また、異なる時点の対象者の左肩関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右肩関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の左肘関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右肘関節の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の左手首の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右手首の位置を示すノード同士が、第2エッジ1101で接続される。
 また、異なる時点の対象者の左手の位置を示すノード同士が、第2エッジ1101で接続される。また、異なる時点の対象者の右手の位置を示すノード同士が、第2エッジ1101で接続される。図11の例では、図面の都合上、一部の第2エッジ1101の図示を省略する。それぞれの第2エッジは、等位置運動に対応する時系列制約を示すPairwise Termの分布モデルが対応付けられる。
 Pairwise Termは、例えば、gt(xj,t-1,xj,t)~N(||xj,t-1,xj,t||┃0,Σxj^)である。Σxj^は、関節の位置分散である。ここで、運動の種類が「寝そべり」である場合、全身の関節の位置の時間変化が規則的になり易いと考えられる。これに対し、雛型911は、運動の種類が「寝そべり」である場合に、位置の時間変化が予測し易いと考えられる全身の関節について、等位置運動を仮定して、位置の時間変化を制約することができる。次に、図12を用いて、情報処理装置100が、選択したFactor Graphに時系列制約を追加する具体例について説明する。
 図12は、時系列制約を追加する具体例を示す説明図である。情報処理装置100は、選択したFactor Graphのうち、第2エッジが接続されず、第1エッジが1つ接続された葉ノードが、特定した異常関節の位置を示すノードであるか否かを判定する。情報処理装置100は、葉ノードが、特定した異常関節の位置を示すノードであれば、異なる時点の葉ノード同士を、第3エッジ1201で接続する。これにより、情報処理装置100は、異常関節の位置を精度よく修正可能にすることができる。次に、図13を用いて、情報処理装置100が、選択したFactor Graph1300を利用して、3D骨格推論結果602を修正する具体例について説明する。
 図13は、3D骨格推論結果602を修正する具体例を示す説明図である。図13において、情報処理装置100は、選択したFactor Graph1300を利用して、3D骨格推論結果602を修正する。図13の例では、Factor Graph1300は、時刻t-1に対応するノード群1310と、時刻tに対応するノード群1320となどを含む。ノード群1310は、ノード1311~1313などを含む。ノード群1320は、ノード1321~1323などを含む。
 例えば、ノード1311とノード1312とは、第1エッジ1331で接続される。例えば、ノード1312とノード1313とは、第1エッジ1332で接続される。例えば、ノード1321とノード1322とは、第1エッジ1341で接続される。例えば、ノード1322とノード1323とは、第1エッジ1342で接続される。例えば、ノード1322とノード1323とを接続する第1エッジ1342は、骨の長さの制約を示すPairwise Termが対応付けられていてもよい。
 例えば、ノード1312とノード1322とは、第2エッジ1351で接続される。第2エッジ1351は、例えば、対象者の動作の種類に対応する、上述した時系列制約を示すPairwise Termが対応付けられる。例えば、ノード1311とノード1321とは、第3エッジ1361で接続される。第3エッジ1361は、例えば、上述した時系列制約を示すPairwise Termが対応付けられていてもよい。
 情報処理装置100は、Factor Graph1300の少なくともいずれかの関節の位置を示すノードに、Unary Termを対応付けてもよい。Unary Termは、例えば、f(xj)~N(xj|xj^,Σ3D j^)である。xj^は、複数の2Dヒートマップの関節尤度を統合した3Dヒートマップの関節尤度の重み付け和である。Σ3D j^は、複数の2Dヒートマップの関節尤度を統合した3Dヒートマップの関節尤度の分散である。
 情報処理装置100は、Factor Graph1300の少なくともいずれかの関節の位置を示すノードに、当該関節の異常確率に応じて当該関節の位置を制約するよう作用する、異常関節の制約を示すUnary Termを対応付けてもよい。図13の例では、情報処理装置100は、例えば、ノード群1320のうち、関節1の位置を示すノード1321に、関節1の異常確率を含めたUnary Termを対応付けてもよい。Unary Termは、例えば、f(xj)~N(xj|xj^,Σ3D j^)・p(xj)である。p(xj)は、異常確率である。
 情報処理装置100は、Factor Graph1300におけるUnary Termと、Pairwise Termとに基づいて、それぞれの時点のそれぞれの関節の位置を修正する。情報処理装置100は、例えば、Factor Graph1300を最適化することにより、それぞれの時点のそれぞれの関節の位置を修正する。
 これにより、情報処理装置100は、3D骨格推論結果602を精度よく修正することができる。情報処理装置100は、それぞれの時点のそれぞれの関節の位置を精度よく特定することができる。情報処理装置100は、例えば、対象者が、体操などのような比較的高速または比較的複雑な動きをした場合においても、確度が比較的高い、それぞれの時点の対象者のそれぞれの関節の位置を特定することができる。
 ここで、下記参考文献3を参照して、時系列制約を示すPairwise Termを含まないFactor Graphを利用して、対象者の関節の3D座標を修正する比較例1が考えられる。比較例1では、関節の位置の時間変化を制約することができないため、対象者のそれぞれの関節の3D座標を精度よく修正することが難しく、対象者のそれぞれの関節の3D座標の時間変化を精度よく特定することが難しい場合がある。
 参考文献3 : Bultmann, Simon, and Sven Behnke. “Real-time multi-view 3D human pose estimation using semantic feedback to smart edge sensors.” arXiv preprint arXiv:2106.14729 (2021).
 これに対し、情報処理装置100は、時系列制約を示すPairwise Termを含むFactor Graph1300を利用することができる。このため、情報処理装置100は、対象者のそれぞれの関節3D座標を適切に修正することができる。情報処理装置100は、例えば、ある時点の対象者の関節の3D座標から、次の時点の対象者の関節の3D座標への時間変化が、人に直感的に誤りと感じさせ難い時間変化になるよう、それぞれの時点の対象者の関節の3D座標を適切に修正することができる。
 さらに、予め定められた時系列制約を示すPairwise Termを含むFactor Graphを利用して、対象者の関節の3D座標を修正する比較例2を考えたとする。しかしながら、比較例2でも、対象者のそれぞれの関節の3次元座標を精度よく修正することが難しく、対象者のそれぞれの関節の3次元座標の時間変化を精度よく特定することが難しい場合がある。比較例2では、動作の種類などの対象者の状態に合わせて、時系列制約を示すPairwise Termを動的に変更することができないため、対象者のそれぞれの関節の3次元座標を精度よく修正することが難しい。
 これに対し、情報処理装置100は、対象者の動作の種類に応じて、異なる時系列制約を示すPairwise Termを含む複数のFactor Graphの雛型911を使い分けて、Factor Graph1300を設定することができる。これにより、情報処理装置100は、例えば、対象者の動作の種類に応じて、等位置運動、等速直線運動、または、等加速度運動などに対応する時系列制約を示すPairwise Termを使い分けることができる。また、情報処理装置100は、時系列制約を示すPairwise Termに対応する第2エッジを、対象者の動作の種類に応じて異なる関節の3D座標を示すノードに接続することができる。
 このため、情報処理装置100は、対象者のそれぞれの関節3D座標を適切に修正することができる。情報処理装置100は、例えば、ある時点の対象者の関節の3D座標から、次の時点の対象者の関節の3D座標への時間変化が、人に直感的に誤りと感じさせ難い時間変化になるよう、それぞれの時点の対象者の関節の3D座標を適切に修正することができる。次に、図14および図15を用いて、動作例におけるデータ処理の流れの具体例について説明する。
 図14および図15は、動作例におけるデータ処理の流れの具体例を示す説明図である。図14に示すように、情報処理装置100は、時点ごとに、複数のカメラ画像1401を取得する。情報処理装置100は、2D骨格推論モデル1410を記憶する。情報処理装置100は、例えば、2D骨格推論モデル1410となるニューラルネットワークを定義する重みパラメータを記憶する。
 情報処理装置100は、時点ごとに、2D骨格推論モデル1410を参照して、複数のカメラ画像1401のそれぞれのカメラ画像1401に対して、2D骨格推論処理を実施することにより、2D骨格推論結果1402を生成する。2D骨格推論結果1402は、例えば、関節の位置を示す2D座標(x[pixel],y[pixel])と、関節の位置の確からしさを示す尤度とを含む。
 情報処理装置100は、3D骨格推論モデル1420を記憶する。情報処理装置100は、例えば、3D骨格推論モデル1420となるニューラルネットワークを定義する重みパラメータを記憶する。
 情報処理装置100は、時点ごとに、3D骨格推論モデル1420を参照して、複数の2D骨格推論結果1402に対して、3D骨格推論処理を実施することにより、3D骨格推論結果1403を生成する。3D骨格推論結果1403は、例えば、関節の位置を示す3D座標(x[mm],y[mm],z[mm])を含む。情報処理装置100は、時点ごとの3D骨格推論結果1403を纏めた時系列データ1404を生成する。次に、図15の説明に移行する。
 図15に示すように、情報処理装置100は、運動状態推定モデル1510を記憶する。情報処理装置100は、例えば、運動状態推定モデル1510となるニューラルネットワークを定義する重みパラメータを記憶する。
 情報処理装置100は、運動状態推定モデル1510を参照して、時系列データ1404に対して、運動状態推定処理を実施することにより、対象者の運動の種類を推定し、推定した対象者の運動の種類を含む運動状態推定結果1501を生成する。
 情報処理装置100は、Factor Graph定義DB1520を記憶する。Factor Graph定義DB1520は、運動の種類ごとに、時系列制約を示すPairwise Termを含む、当該運動の種類に対応するFactor Graphの雛型を記憶する。Pairwise Termは、例えば、運動の種類に対応する関節の位置の時間変化を、当該運動の種類に対応する対象者の動きの傾向に応じて制約することを示す。
 Factor Graph定義DB1520は、例えば、運動の種類と、対象者の関節の種類と、当該運動の種類に対応する対象者の当該関節の動きの傾向とを対応付けて示す。動きの傾向は、例えば、等位置運動、等速直線運動、等加速運動などである。情報処理装置100は、Factor Graph定義DB1520を参照して、運動状態推定結果1501に含まれる推定した対象者の運動の種類に対応するFactor Graphの雛型を、利用するFactor Graphとして選択する。
 情報処理装置100は、骨長さモデル1530を記憶する。骨長さモデル1530は、骨の長さの制約を示すPairwise Termを定義するパラメータを含む。パラメータは、例えば、骨の長さの平均と分散とである。情報処理装置100は、骨長さモデル1530を参照して、選択したFactor Graphに、骨の長さの制約を示すPairwise Termを付与する。
 情報処理装置100は、付与後のFactor Graphに対して、最適化処理を実施することにより、それぞれの関節の位置を修正する。情報処理装置100は、修正したそれぞれの関節の位置を含む修正後3D骨格推論モデル1502を生成する。これにより、情報処理装置100は、時点ごとの対象者のそれぞれの関節の位置を精度よく特定することができる。
(全体処理手順)
 次に、図16を用いて、情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
 図16は、全体処理手順の一例を示すフローチャートである。図16において、情報処理装置100は、対象者の3次元骨格推論結果の時系列データを取得する(ステップS1601)。そして、情報処理装置100は、取得した対象者の3次元骨格推論結果の時系列データに基づいて、対象者のそれぞれの部位の尤度を算出する(ステップS1602)。
 次に、情報処理装置100は、取得した対象者の3次元骨格推論結果の時系列データに基づいて、時点ごとに、対象者の運動状態を推定する(ステップS1603)。そして、情報処理装置100は、時点ごとに、推定した対象者の運動状態に対応するFactor Graphを選択する(ステップS1604)。
 次に、情報処理装置100は、選択したFactor Graphにおいて、尤度が比較的小さい部位に対応する葉ノードについて時間軸に沿ってPairwise Termを設定する(ステップS1605)。そして、情報処理装置100は、選択したFactor Graphにおいて、対象者の特定の部位にUnary Term=尤度を設定し、対象者の特定の部位について時間軸に沿ってPairwise Termを設定する(ステップS1606)。
 次に、情報処理装置100は、Factor Graphを最適化することにより、対象者の3次元骨格推論結果の時系列データを修正する(ステップS1607)。そして、情報処理装置100は、修正後の対象者の3次元骨格推論結果の時系列データを出力する(ステップS1608)。その後、情報処理装置100は、全体処理を終了する。
 これにより、情報処理装置100は、対象者の3次元骨格推論結果を精度よく修正することができる。このため、情報処理装置100は、対象者の3次元骨格推論結果の有用性の向上を図ることができる。情報処理装置100は、例えば、対象者の3次元骨格推論結果に基づく解析処理の精度の向上を図ることができる。
 ここで、情報処理装置100は、図16の一部ステップの処理の順序を入れ替えて実行してもよい。例えば、ステップS1605,S1606の処理の順序は入れ替え可能である。また、情報処理装置100は、図16の一部ステップの処理を省略してもよい。例えば、ステップS1605の処理は省略可能である。
 以上説明したように、情報処理装置100によれば、対象者の複数の部位のそれぞれの部位の位置を含む骨格情報の時系列データを取得することができる。情報処理装置100によれば、取得した時系列データにおける骨格情報の特徴量に基づいて、取得した時系列データにおける第1時点の骨格情報に対応する対象者の動作の種類を特定することができる。情報処理装置100によれば、取得した時系列データにおける第1時点の骨格情報のうち、複数の部位のいずれかの部位の位置の時間変化を、特定した動作の種類に対応するいずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定することができる。情報処理装置100によれば、時点ごとのそれぞれの部位の位置を示すノードを含むグラフを生成することができる。情報処理装置100によれば、グラフにおいて、時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する第1エッジを付与することができる。情報処理装置100によれば、グラフにおいて、異なる時点のいずれかの部位の位置を示すノード同士を接続する第2エッジを付与することができる。情報処理装置100によれば、グラフにおいて、第2エッジに、決定したモデルを対応付けることができる。情報処理装置100によれば、生成したグラフに基づいて、時系列データにおける第1時点の骨格情報を修正することができる。これにより、情報処理装置100は、第1時点の骨格情報を精度よく修正することができる。
 情報処理装置100によれば、第1時点の骨格情報のうち、いずれかの部位の位置の時間変化を、特定した動作の種類に対応するいずれかの部位の等位置運動、等速運動、または、等加速運動の傾向に応じて制約する確率分布のモデルを決定することができる。これにより、情報処理装置100は、動作の種類に合わせて、第1時点の骨格情報を適切に修正可能にするモデルを決定することができる。
 情報処理装置100によれば、複数の部位のうちいずれかの部位以外の他の部位について、異なる時点の他の部位の位置を示すノードそれぞれに接続された第1エッジが1つずつであるか否かを判定することができる。情報処理装置100によれば、他の部位について、異なる時点の他の部位の位置を示すノードそれぞれに接続された第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、グラフに含めるよう、グラフを生成することができる。これにより、情報処理装置100は、ノードに接続するエッジの数の増大化を図り、当該ノードが示す他の部位の位置を精度よく修正可能にすることができる。
 情報処理装置100によれば、複数の部位のうち、いずれかの部位以外であって、位置に関して異常な状態である他の部位を特定することができる。情報処理装置100によれば、特定した他の部位について、異なる時点の他の部位の位置を示すノードそれぞれに接続された第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、グラフに含めるよう、グラフを生成することができる。これにより、情報処理装置100は、修正することが好ましい他の部位を特定することができ、特定した他の部位の位置を精度よく修正可能にすることができる。
 なお、本実施の形態で説明した情報処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した情報処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した情報処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
 100 情報処理装置
 101 骨格情報
 110 グラフ
 111,1311~1313,1321~1323 ノード
 112,1331,1332,1341,1342 第1エッジ
 113,1001,1101,1351 第2エッジ
 200 情報処理システム
 201 画像撮像装置
 202 クライアント装置
 210 ネットワーク
 300,400 バス
 301,401 CPU
 302,402 メモリ
 303,403 ネットワークI/F
 304,404 記録媒体I/F
 305,405 記録媒体
 306 ディスプレイ
 307 入力装置
 406 カメラ
 500 記憶部
 501 取得部
 502 解析部
 503 学習部
 504 特定部
 505 決定部
 506 生成部
 507 修正部
 508 出力部
 600 多視点画像
 601 2Dヒートマップ
 602,603,1403,1502 3D骨格推論結果
 700 元データ
 701 加工データ
 710 異常判定DNN
 900 状態推定DNN
 910,1520 Factor Graph定義DB
 911 雛型
 1201,1361 第3エッジ
 1300 Factor Graph
 1310,1320 ノード群
 1401 カメラ画像
 1402 2D骨格推論結果
 1404 時系列データ
 1410 2D骨格推論モデル
 1420 3D骨格推論モデル
 1501 運動状態推定結果
 1510 運動状態推定モデル
 1530 骨長さモデル

Claims (6)

  1.  対象者の複数の部位のそれぞれの部位の位置を含む骨格情報の時系列データを取得し、
     取得した前記時系列データにおける骨格情報の特徴量に基づいて、取得した前記時系列データにおける第1時点の骨格情報に対応する前記対象者の動作の種類を特定し、
     取得した前記時系列データにおける前記第1時点の骨格情報のうち、前記複数の部位のいずれかの部位の位置の時間変化を、特定した前記動作の種類に対応する前記いずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定し、
     時点ごとの前記それぞれの部位の位置を示すノードと、前記時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する第1エッジと、異なる時点の前記いずれかの部位の位置を示すノード同士を接続する第2エッジとを含み、前記第2エッジに決定した前記モデルを対応付けたグラフを生成し、
     生成した前記グラフに基づいて、前記時系列データにおける前記第1時点の骨格情報を修正する、
     処理をコンピュータに実行させることを特徴とする情報処理プログラム。
  2.  前記決定する処理は、
     取得した前記時系列データにおける前記第1時点の骨格情報のうち、前記いずれかの部位の位置の時間変化を、特定した前記動作の種類に対応する前記いずれかの部位の等位置運動、等速運動、または、等加速運動の傾向に応じて制約する確率分布のモデルを決定する、ことを特徴とする請求項1に記載の情報処理プログラム。
  3.  前記生成する処理は、
     前記複数の部位のうち前記いずれかの部位以外の他の部位について、異なる時点の前記他の部位の位置を示すノードそれぞれに接続された前記第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、前記グラフに含めるよう、前記グラフを生成する、ことを特徴とする請求項1または2に記載の情報処理プログラム。
  4.  前記複数の部位のうち、前記いずれかの部位以外であって、位置に関して異常な状態である他の部位を特定する、
     処理を前記コンピュータに実行させ、
     前記生成する処理は、
     特定した前記他の部位について、異なる時点の前記他の部位の位置を示すノードそれぞれに接続された前記第1エッジが1つずつであれば、当該ノード同士を接続する第3エッジを、前記グラフに含めるよう、前記グラフを生成する、ことを特徴とする請求項3に記載の情報処理プログラム。
  5.  対象者の複数の部位のそれぞれの部位の位置を含む骨格情報の時系列データを取得し、
     取得した前記時系列データにおける骨格情報の特徴量に基づいて、取得した前記時系列データにおける第1時点の骨格情報に対応する前記対象者の動作の種類を特定し、
     取得した前記時系列データにおける前記第1時点の骨格情報のうち、前記複数の部位のいずれかの部位の位置の時間変化を、特定した前記動作の種類に対応する前記いずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定し、
     時点ごとの前記それぞれの部位の位置を示すノードと、前記時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する第1エッジと、異なる時点の前記いずれかの部位の位置を示すノード同士を接続する第2エッジとを含み、前記第2エッジに決定した前記モデルを対応付けたグラフを生成し、
     生成した前記グラフに基づいて、前記時系列データにおける前記第1時点の骨格情報を修正する、
     処理をコンピュータが実行することを特徴とする情報処理方法。
  6.  対象者の複数の部位のそれぞれの部位の位置を含む骨格情報の時系列データを取得し、
     取得した前記時系列データにおける骨格情報の特徴量に基づいて、取得した前記時系列データにおける第1時点の骨格情報に対応する前記対象者の動作の種類を特定し、
     取得した前記時系列データにおける前記第1時点の骨格情報のうち、前記複数の部位のいずれかの部位の位置の時間変化を、特定した前記動作の種類に対応する前記いずれかの部位の動きの傾向に応じて制約する確率分布のモデルを決定し、
     時点ごとの前記それぞれの部位の位置を示すノードと、前記時点ごとの生体的に連結する異なる部位の位置を示すノード同士を接続する第1エッジと、異なる時点の前記いずれかの部位の位置を示すノード同士を接続する第2エッジとを含み、前記第2エッジに決定した前記モデルを対応付けたグラフを生成し、
     生成した前記グラフに基づいて、前記時系列データにおける前記第1時点の骨格情報を修正する、
     制御部を有することを特徴とする情報処理装置。
PCT/JP2022/016364 2022-03-30 2022-03-30 情報処理プログラム、情報処理方法、および情報処理装置 WO2023188217A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2024510982A JPWO2023188217A1 (ja) 2022-03-30 2022-03-30
PCT/JP2022/016364 WO2023188217A1 (ja) 2022-03-30 2022-03-30 情報処理プログラム、情報処理方法、および情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/016364 WO2023188217A1 (ja) 2022-03-30 2022-03-30 情報処理プログラム、情報処理方法、および情報処理装置

Publications (1)

Publication Number Publication Date
WO2023188217A1 true WO2023188217A1 (ja) 2023-10-05

Family

ID=88199827

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/016364 WO2023188217A1 (ja) 2022-03-30 2022-03-30 情報処理プログラム、情報処理方法、および情報処理装置

Country Status (2)

Country Link
JP (1) JPWO2023188217A1 (ja)
WO (1) WO2023188217A1 (ja)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170344829A1 (en) 2016-05-31 2017-11-30 Microsoft Technology Licensing, Llc Skeleton -based action detection using recurrent neural network
JP2019016106A (ja) * 2017-07-05 2019-01-31 富士通株式会社 情報処理プログラム、情報処理装置、情報処理方法、及び情報処理システム
JP2020042476A (ja) 2018-09-10 2020-03-19 国立大学法人 東京大学 関節位置の取得方法及び装置、動作の取得方法及び装置
WO2021002025A1 (ja) 2019-07-04 2021-01-07 富士通株式会社 骨格認識方法、骨格認識プログラム、骨格認識システム、学習方法、学習プログラムおよび学習装置
WO2021064942A1 (ja) 2019-10-03 2021-04-08 富士通株式会社 評価方法、評価プログラムおよび情報処理システム
CN112991656A (zh) * 2021-02-04 2021-06-18 北京工业大学 基于姿态估计的全景监控下人体异常行为识别报警系统及方法
JP2021105887A (ja) * 2019-12-26 2021-07-26 国立大学法人 東京大学 3dポーズ取得方法及び装置
CN113191230A (zh) * 2021-04-20 2021-07-30 内蒙古工业大学 一种基于步态时空特征分解的步态识别方法
JP2021135877A (ja) * 2020-02-28 2021-09-13 Kddi株式会社 骨格追跡方法、装置およびプログラム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170344829A1 (en) 2016-05-31 2017-11-30 Microsoft Technology Licensing, Llc Skeleton -based action detection using recurrent neural network
JP2019016106A (ja) * 2017-07-05 2019-01-31 富士通株式会社 情報処理プログラム、情報処理装置、情報処理方法、及び情報処理システム
JP2020042476A (ja) 2018-09-10 2020-03-19 国立大学法人 東京大学 関節位置の取得方法及び装置、動作の取得方法及び装置
WO2021002025A1 (ja) 2019-07-04 2021-01-07 富士通株式会社 骨格認識方法、骨格認識プログラム、骨格認識システム、学習方法、学習プログラムおよび学習装置
WO2021064942A1 (ja) 2019-10-03 2021-04-08 富士通株式会社 評価方法、評価プログラムおよび情報処理システム
JP2021105887A (ja) * 2019-12-26 2021-07-26 国立大学法人 東京大学 3dポーズ取得方法及び装置
JP2021135877A (ja) * 2020-02-28 2021-09-13 Kddi株式会社 骨格追跡方法、装置およびプログラム
CN112991656A (zh) * 2021-02-04 2021-06-18 北京工业大学 基于姿态估计的全景监控下人体异常行为识别报警系统及方法
CN113191230A (zh) * 2021-04-20 2021-07-30 内蒙古工业大学 一种基于步态时空特征分解的步态识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ISKAKOVKARIM ET AL.: "Proceedings of the IEEE", 2019, CVF INTERNATIONAL CONFERENCE ON COMPUTER VISION, article "Learnable triangulation of human pose."
MOONGYEONGSIKJU YONG CHANGKYOUNG MU LEE: "Proceedings of the IEEE conference on computer vision and pattern Recognition", 2018, article "V2v-posenet: Voxel-to-voxel prediction network for accurate 3d hand and human pose estimation from a single depth map"

Also Published As

Publication number Publication date
JPWO2023188217A1 (ja) 2023-10-05

Similar Documents

Publication Publication Date Title
US10817795B2 (en) Handstate reconstruction based on multiple inputs
CN111402290B (zh) 一种基于骨骼关键点的动作还原方法以及装置
CN111488824A (zh) 运动提示方法、装置、电子设备和存储介质
Chaudhari et al. Yog-guru: Real-time yoga pose correction system using deep learning methods
US7404774B1 (en) Rule based body mechanics calculation
US11403882B2 (en) Scoring metric for physical activity performance and tracking
JPWO2018087933A1 (ja) 情報処理装置、情報処理方法、およびプログラム
CN110688929A (zh) 一种人体骨架关节点定位方法及装置
US12067664B2 (en) System and method for matching a test frame sequence with a reference frame sequence
US20220222975A1 (en) Motion recognition method, non-transitory computer-readable recording medium and information processing apparatus
WO2023188217A1 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
KR20220156062A (ko) 역기구학에 기반한 관절 회전 추론들
WO2023188216A1 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
CN112257642B (zh) 人体连续动作相似性评价方法及评价装置
KR20230112636A (ko) 정보 처리 장치, 정보 처리 방법 및 프로그램
Hachaj et al. Heuristic Method for Calculating the Translation of Human Body Recordings Using Data from an Inertial Motion Capture Costume
KR20210129861A (ko) 근골격 질환 판단 장치 및 방법
JP2021099666A (ja) 学習モデルの生成方法
JPWO2023188216A5 (ja)
WO2023062762A1 (ja) 推定プログラム、推定方法および情報処理装置
WO2024161613A1 (ja) データ拡張方法、データ拡張プログラムおよび情報処理装置
JP7199931B2 (ja) 画像生成装置、画像生成方法及びコンピュータープログラム
JP7419993B2 (ja) 信頼度推定プログラム、信頼度推定方法、および信頼度推定装置
Qiu et al. Machine Learning based Movement Analysis and Correction for Table Tennis
WO2024116252A1 (ja) 補正方法、補正プログラムおよび情報処理装置

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2024510982

Country of ref document: JP