WO2022230221A1 - ポーズデータ生成装置、ポーズデータ生成方法、および、プログラム - Google Patents
ポーズデータ生成装置、ポーズデータ生成方法、および、プログラム Download PDFInfo
- Publication number
- WO2022230221A1 WO2022230221A1 PCT/JP2021/040988 JP2021040988W WO2022230221A1 WO 2022230221 A1 WO2022230221 A1 WO 2022230221A1 JP 2021040988 W JP2021040988 W JP 2021040988W WO 2022230221 A1 WO2022230221 A1 WO 2022230221A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- prediction
- pose
- keypoint
- reliability
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 171
- 238000012545 processing Methods 0.000 claims description 429
- 230000008569 process Effects 0.000 claims description 133
- 238000000605 extraction Methods 0.000 claims description 93
- 238000006243 chemical reaction Methods 0.000 claims description 38
- 238000003384 imaging method Methods 0.000 claims description 36
- 230000033001 locomotion Effects 0.000 claims description 33
- 230000008859 change Effects 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 claims description 6
- 239000002245 particle Substances 0.000 claims description 4
- 230000002194 synthesizing effect Effects 0.000 claims 1
- 230000009466 transformation Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 69
- 230000015654 memory Effects 0.000 description 55
- 238000000354 decomposition reaction Methods 0.000 description 42
- 239000011159 matrix material Substances 0.000 description 40
- 101150075118 sub1 gene Proteins 0.000 description 40
- 230000004048 modification Effects 0.000 description 27
- 238000012986 modification Methods 0.000 description 27
- 238000001514 detection method Methods 0.000 description 22
- 238000012805 post-processing Methods 0.000 description 22
- 101150052583 CALM1 gene Proteins 0.000 description 18
- 230000007704 transition Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 16
- 210000002414 leg Anatomy 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 239000000284 extract Substances 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 9
- 239000002131 composite material Substances 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 210000003127 knee Anatomy 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 241001055367 Dario Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/277—Analysis of motion involving stochastic approaches, e.g. using Kalman filters
Definitions
- the present invention relates to a technique for estimating poses of people, creatures, objects, etc. that are movable and whose poses are variable.
- Non-Patent Document 1 2D keypoint data (2D keypoint data of a person appearing in the 2D video) is obtained from a 2D video, and 3 There is disclosed a technique for acquiring (estimating) dimensional pose data (human pose data).
- a technique for acquiring (estimating) dimensional pose data human pose data
- the technique of Non-Patent Document 1 on a two-dimensional video (on a two-dimensional image), for example, a predetermined part of a person is hidden behind another part and cannot be seen (a state in which occlusion occurs). occurs, the three-dimensional pose data (person's pose data) obtained by the above process may not be correct. In other words, in such a case, the technique of Non-Patent Document 1 has a problem that the keypoint cannot be detected or the keypoint is erroneously detected with respect to the part where the occlusion occurs.
- Non-Patent Document 2 learning including hidden keypoints (keypoints of parts where occlusion occurs) using the Cylinder Man Model
- a technique for creating data, performing semi-supervised learning, and using the acquired trained model to acquire (estimate) 3D pose data (human pose data) from a 2D image is disclosed.
- Non-Patent Document 1 two-dimensional keypoint data (two-dimensional keypoint data of a person appearing in a two-dimensional image) is obtained from a two-dimensional image in time series. It is necessary to perform processing using a CNN (Convolutional Neural Network) by inputting two-dimensional keypoint data obtained continuously in time series. In addition, in this CNN processing, it is necessary to constantly input time-series data for a certain period of time, which increases the amount of calculation. It is difficult to reduce the processing time (delay time) from input to acquisition (estimation) of three-dimensional pose data (human pose data).
- CNN Convolutional Neural Network
- Non-Patent Document 2 acquisition of two-dimensional keypoint data (two-dimensional keypoint data of a person appearing in a two-dimensional image) from a two-dimensional image is performed continuously in time series. , and time-series convolution processing (for example, processing by CNN) for acquiring two-dimensional pose data is performed using two-dimensional keypoint data continuously acquired in time series as input, and three-dimensional Time-series convolution processing (for example, processing by CNN) for obtaining pose data must be performed.
- time-series convolution processing for example, processing by CNN
- three-dimensional Time-series convolution processing for example, processing by CNN
- the Cylinder Man Model is used to impose conditions that regulate human poses, create learning data, perform learning processing, and create a trained model. need to get Then, in the technique of Non-Patent Document 2, three-dimensional pose data (person's pose data) is obtained (estimated) from a two-dimensional image using a trained model obtained by the above learning process. In other words, in the technique of Non-Patent Document 2, as described above, processing is performed using a complicated trained model acquired by a complicated learning process. The amount of calculation for acquiring (estimating) (human pose data) is large, and the processing time (delay time) is long. Therefore, even when the technique of Non-Patent Document 2 is used, it is necessary to use high-precision hardware capable of executing high-speed processing.
- a first invention provides a pose data generator comprising a 2D pose estimation unit, a heat map acquisition unit, a prediction data acquisition unit, a reliability acquisition unit, and a precise pose data acquisition unit. It is a device.
- the 2D pose estimation unit extracts data indicating the position of a predetermined part of the subject from image data obtained by imaging the subject in a three-dimensional space or feature amount extraction data obtained by extracting feature amounts from the image data. By obtaining the key point data, the two-dimensional pose data of the subject is obtained.
- the heat map acquisition unit obtains a value indicating the likelihood that a predetermined image area on the two-dimensional image formed by the image data or the feature amount extraction data is an image area corresponding to a predetermined part of the subject. By acquiring one reliability, a heat map for each part of the subject is acquired.
- the prediction data acquisition unit acquires prediction keypoint data by performing prediction processing using keypoint data included in the two-dimensional pose data acquired by the 2D pose estimation unit, and uses the acquired prediction keypoint data as Acquire the included data as predicted two-dimensional pose data.
- the reliability acquisition unit acquires a first reliability specified by the heat map and a second reliability that is the reliability of the keypoint data included in the predicted two-dimensional pose data for each part of the subject, Combined reliability is obtained by performing a process of combining the first reliability and the second reliability.
- the precise pose data acquisition unit acquires precise two-dimensional pose data by determining the position of each part of the subject based on the synthesis reliability.
- the first reliability based on the heat map acquired by the heat map acquiring unit and the second reliability acquired by the reliability acquiring unit are synthesized (for example, added) for each part of the subject. ), it is possible to acquire a combined reliability, which is a more accurate reliability, for each part.
- the precise two-dimensional pose data acquisition unit of this pose data generation device acquires precise pose data based on the degree of synthesis reliability, so that highly accurate pose data (precise two-dimensional pose data) can be acquired. .
- highly accurate three-dimensional pose data can be obtained.
- this pose data generation device does not need to perform complicated processing (for example, time-series convolution processing (processed by CNN), etc.) as in the prior art, so it can be realized at low cost and with high accuracy. pose data can be obtained.
- complicated processing for example, time-series convolution processing (processed by CNN), etc.
- a second invention is the first invention, wherein the prediction data acquisition unit uses precise two-dimensional pose data acquired by the precise pose data acquisition unit before the current time for each part of the subject, Perform prediction processing.
- this pose data generation device it is possible to perform prediction processing using more accurate two-dimensional pose data as past data. As a result, more accurate prediction processing can be performed.
- a third invention is the first or second invention,
- the prediction data acquisition unit Classifying the keypoint data included in the two-dimensional pose data into a first group and a second group, (1) For keypoint data classified into the first group, rough prediction processing, which is prediction processing having a first prediction accuracy, is performed to obtain keypoint coarse prediction data, which is prediction data for the keypoint data. Acquired, (2) For the keypoint data classified into the second group, by executing a precise prediction process having a second prediction accuracy higher than the first prediction accuracy, the prediction data of the keypoint data is obtained. Get keypoint precision forecast data.
- this pose data generation device when performing prediction processing on two-dimensional pose data, parts are classified into first and second groups, and prediction processing with different prediction accuracies is performed according to the classified groups.
- this pose data generation device by classifying the parts to be subjected to rough prediction processing into the first group and the parts to be subjected to fine prediction processing to the second group, different prediction processes are executed for each part. can do.
- a fourth invention is the third invention, wherein the classification method for the first group and the second group is determined by a predetermined condition, and the predetermined condition is (1) speed and acceleration of movement of parts, change in speed and change in acceleration within a predetermined period of time; (2) Randomness of movement of parts, (3) linearity, non-linearity, and/or movement of body parts; (4) a period and/or stage in which certain conditions are not changed by an application executed together with the pose data generation device; is based on at least one of
- the parts can be classified into the first group and the second group based on the above conditions, and the parts targeted for the rough prediction process and the parts targeted for the fine prediction process are appropriately set ( classification).
- a fifth invention is the first or second invention, wherein the prediction data acquisition unit includes:
- the keypoint data included in the two-dimensional pose data is divided into wide-movable keypoint data, which is keypoint data for parts with a wide movable range, and narrow-movable keypoint data, which is keypoint data for parts with a narrow movable range.
- narrow movable keypoint prediction data which is prediction data of narrow movable keypoint data
- rough prediction processing which is prediction processing having the first prediction accuracy
- wide-movable keypoint data by executing a precise prediction process having a second prediction accuracy higher than the first prediction accuracy
- the wide-movable keypoint data which is the prediction data of the wide-movable keypoint data
- forecast data Data including narrow movable key point prediction data and wide movable key point prediction data is obtained as predicted two-dimensional pose data.
- this pose data generation device when performing prediction processing on two-dimensional pose data, prediction processing with different prediction accuracies is performed according to the features of the part.
- the keypoint data of parts with a wide movable range (wide movable keypoint data) is subjected to highly accurate prediction processing, and the keypoint data of parts with a narrow movable range (narrow movable keypoint data) is processed.
- Data is subjected to prediction processing (coarse prediction processing) which is not as accurate as fine prediction processing but which requires less calculation amount.
- this pose data generator performs highly accurate prediction processing (precision prediction processing) for wide-movable keypoints that are difficult to predict, and requires a small amount of calculation for narrow-movable keypoints that are not so difficult to predict. Since prediction processing (rough prediction processing) is performed, highly accurate prediction data can be obtained while suppressing the total amount of calculation required to obtain prediction data (prediction two-dimensional pose data).
- prediction accuracy is determined (defined) based on the difference between prediction data and actual observation data, for example, when prediction processing is performed on the same processing target.
- a sixth invention is any one of the third to fifth inventions, wherein the prediction data acquisition unit comprises: (1) perform a coarse prediction process using a time series filter with a first precision; (2) performing fine prediction processing using a time-series filter having a second precision higher than the first precision;
- this pose data generation device can perform rough prediction processing and fine prediction processing using time-series filters with different prediction accuracies.
- a seventh invention is the sixth invention, wherein the time-series filter having the first accuracy is a time-series filter whose processing target is a system model (linear system model) whose state space model is represented by a linear operator.
- the time-series filter having the second precision is a time-series filter whose processing target is a system model (nonlinear system model) whose state space model is represented by a nonlinear operator.
- the pose data generating device executes rough prediction processing using the time series for processing the linear system model, and executes precise prediction processing using the time series for processing the nonlinear system model. be able to.
- An eighth invention is the sixth invention, wherein the time series filter having the first precision is a Kalman filter, and the time series filter having the second precision is an extended Kalman filter, an unscented Kalman filter, and particle filter.
- the pose data generation device can execute rough prediction processing using the Kalman filter, and execute fine prediction processing using any one of the extended Kalman filter, the unscented Kalman filter, and the particle filter. can.
- a ninth invention is any one of the first to eighth inventions, wherein the precise two-dimensional pose data is subjected to a two-dimensional-to-three-dimensional conversion process to obtain a three-dimensional image corresponding to the precise two-dimensional pose data. It further comprises a 2D-3D conversion unit for obtaining precise 3D pose data, which is dimensional pose data.
- this pose data generation device it is possible to obtain precise three-dimensional pose data, which is three-dimensional pose data corresponding to precise two-dimensional pose data.
- a tenth invention is a pose data generation method comprising a 2D pose estimation step, a heat map acquisition step, a prediction data acquisition step, a reliability acquisition step, and a precise pose data acquisition step.
- the 2D pose estimation step extracts data indicating the position of a predetermined part of the subject from image data obtained by imaging the subject in a three-dimensional space or feature amount extraction data obtained by extracting feature amounts from the image data. By obtaining the key point data, the two-dimensional pose data of the subject is obtained.
- the predicted data obtaining step obtains predicted keypoint data by performing prediction processing using keypoint data included in the two-dimensional pose data obtained by the 2D pose estimating step, and uses the obtained predicted keypoint data as Acquire the included data as predicted two-dimensional pose data.
- the reliability acquisition step acquires a first reliability specified by the heat map and a second reliability that is the reliability of keypoint data included in the predicted two-dimensional pose data for each part of the subject, Combined reliability is obtained by performing a process of combining the first reliability and the second reliability.
- the precise pose data acquisition step acquires precise two-dimensional pose data by determining the position of each part of the subject based on the synthesis reliability.
- An eleventh invention is a program for causing a computer to execute the pose data generation method of the tenth invention.
- a pose data generation device it is possible to realize a pose data generation device, a pose data generation method, and a program that can be realized at low cost and acquire highly accurate pose data.
- FIG. 1 is a schematic configuration diagram of a pose data generation device 100 according to a first embodiment
- FIG. 4 is a schematic configuration diagram of a precise data acquisition unit 3 of the pose data generation device 100 according to the first embodiment
- FIG. Pose data is obtained by using time-series continuous frame images (two-dimensional images) (time-series continuous frame images capable of forming a moving image) obtained by photographing the subject person Sub1 by the imaging device Cam1 as data Din.
- FIG. 10 is a diagram showing a system (one example) (upper figure) that is input to the generation device and a frame image Img0 (t1) (an example) (lower figure) at time step t1 (time t1).
- Pose data is generated using time-series continuous frame images (two-dimensional images) (time-series continuous frame images capable of forming a moving image) obtained by photographing the subject person Sub1 by the imaging device Cam1 as data Din.
- a system one example (upper diagram) for inputting to the feature amount extraction unit PP1 of the device 100, and feature amount extraction images Img1 (t1) and Img1 (t2 ) , Img1 (t3) , . . . (an example) (lower diagram).
- a diagram for explaining key point data (1) Heatmap Heatmap ( kp14 ) (left shoulder heatmap ) , (2) Heatmap Heatmap (kp15) (left elbow and (3) Heatmap Heatmap (kp16) (left hand heatmap).
- FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); Each key point data Do_kp.
- FIG. 10 is a diagram showing an example of data Do_kp that summarizes kp j (time step t1); Each key point data Do_kp. The figure which shows an example of the data Do_kp which put together kpj (time step t2).
- FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t1); FIG. 10 is
- FIG. 10 is a diagram for explaining reliability acquisition processing (time step t3); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t3); FIG. 10 is a diagram for explaining reliability acquisition processing (time step t3); Each key point data Do_kp.
- FIG. 10 is a diagram showing an example of data Do_kp that summarizes kpj (time step t3);
- FIG. 2 is a schematic configuration diagram of a pose data generation device 100A according to a first modification of the first embodiment;
- FIG. 4 is a schematic configuration diagram of a precise data acquisition unit 3A of a pose data generation device 100A according to a first modification of the first embodiment;
- FIG. 4 is a schematic configuration diagram of a pose data generation device 100B according to a second modification of the first embodiment;
- FIG. 4 is a schematic configuration diagram of a precise data acquisition unit 3B of a pose data generation device 100B according to a second modification of the first embodiment;
- FIG. 4 is a diagram showing a CPU bus
- FIG. 1 is a schematic configuration diagram of a pose data generation device 100 according to the first embodiment.
- FIG. 2 is a schematic configuration diagram of the precise data acquisition unit 3 of the pose data generation device 100 according to the first embodiment.
- the pose data generation device 100 includes a feature extraction unit PP1, a 2D pose estimation unit 1, a heat map acquisition unit 2, a precise data acquisition unit 3, a 2D-3D conversion unit 4, and a post-processing unit 5 .
- the feature amount extraction unit PP1 extracts time-series continuous frame images (two-dimensional images) (constituting a moving image) obtained by, for example, photographing a subject person using an imaging device (not shown) capable of capturing moving images. frame images that are possible in time series) are input as data Din. Then, the feature amount extraction unit PP1 performs feature amount extraction processing (for example, a process of performing object detection while performing class classification) on the data Din. Extract the image region corresponding to . The feature amount extraction unit PP1 extracts data about the image area of the object detection target acquired by the feature amount extraction process (image data including the image area including the object detection target, the coordinates of the extracted image area, and the size of the image area). 2D pose estimating unit 1 and heat map acquiring unit 2 as feature amount extraction data D0. output to
- the 2D pose estimation unit 1 receives the feature amount extraction data D0 output from the feature amount extraction unit PP1.
- the 2D pose estimation unit 1 performs a two-dimensional pose estimation process on the feature amount extraction data D0, and obtains two-dimensional keypoint data (for example, two-dimensional keypoint data of a subject person). Then, the 2D pose estimation unit 1 outputs the data including the acquired two-dimensional keypoint data to the precise data acquisition unit 3 as data Di_kp.
- the heat map acquisition unit 2 receives the feature amount extraction data D0 output from the feature amount extraction unit PP1.
- the heat map acquisition unit 2 performs heat map acquisition processing on the feature amount extraction data D0 to acquire heat map data. Then, the heat map acquisition unit 2 outputs data including the acquired heat map data to the precise data acquisition unit 3 as data D_heatmap.
- the precise data acquisition unit 3 includes a prediction data acquisition unit 31, a reliability acquisition unit 32, and a precise pose data acquisition unit 33, as shown in FIG.
- the prediction data acquisition unit 31 includes a data decomposition unit 311, a first memory M1, a second memory M2, a rough prediction processing unit 312, and a fine prediction processing unit 313, as shown in FIG.
- the data decomposing unit 311 receives the data Di_kp output from the 2D pose estimating unit 1, performs decomposing processing (processing for decomposing the keypoint data for each human part) on the data Di_kp, and performs rough prediction processing. and data D1_kp_H to be subjected to the precise prediction process. Then, the data decomposition unit 311 outputs the acquired data D1_kp_L to the rough prediction processing unit 312 and the first memory M1, and outputs the acquired data D1_kp_H to the fine prediction processing unit 313 and the second memory M2.
- the first memory M1 is a storage unit that receives the data D1_kp_L output from the data decomposing unit 311 and the data D2_kp_L output from the coarse prediction processing unit 312, and stores and holds the data D1_kp_L and the data D2_kp_L.
- the data stored and held in the first memory M1 can be read by a read command from the rough prediction processing unit 312.
- the second memory M2 is a storage unit that receives the data D1_kp_H output from the data decomposing unit 311 and the data D2_kp_H output from the precise prediction processing unit 313, and stores and holds the data D1_kp_H and the data D2_kp_H. Data stored in the second memory M2 can be read by a read command from the precise prediction processing unit 313 .
- the rough prediction processing unit 312 receives data D1_kp_L output from the data decomposition unit 311 . Further, the coarse prediction processing unit 312 reads the data D1_kp_L, which was acquired before the current time and stored in the first memory M1, as data D1_kp_L_past from the first memory M1. The coarse prediction processing unit 312 acquires coarse prediction processing data D2_kp_L by executing coarse prediction processing using data D1_kp_L and data D1_kp_L_past. Then, the coarse prediction processing unit 312 outputs the acquired coarse prediction processing data D2_kp_L to the coarse prediction reliability acquisition unit 321 of the reliability acquisition unit 32 and the first memory M1.
- the precise prediction processing unit 313 receives the data D1_kp_H output from the data decomposition unit 311 . Further, the precise prediction processing unit 313 reads the data D2_kp_H, which was acquired at a time before the current time and stored in the second memory M2, as data D1_kp_H_past from the second memory M2. The precise prediction processing unit 313 acquires precise prediction processing data D2_kp_H by executing precise prediction processing using data D1_kp_H and data D1_kp_H_past. Then, the precise prediction processing unit 313 outputs the acquired precise prediction processing data D2_kp_H to the precision prediction reliability acquisition unit 322 of the reliability acquisition unit 32 and the second memory M2.
- the reliability acquisition unit 32 includes a coarse prediction reliability acquisition unit 321, a fine prediction reliability acquisition unit 322, and a reliability synthesis unit 323, as shown in FIG.
- the coarse prediction reliability acquisition unit 321 receives coarse prediction processing data D2_kp_L output from the coarse prediction processing unit 312 .
- the coarse prediction reliability acquisition unit 321 acquires the coarse prediction reliability by performing coarse prediction reliability acquisition processing on the coarse prediction processed data D2_kp_L, and converts the data including the acquired coarse prediction reliability into the data D3_conf_L. , and output to the reliability combining unit 323 .
- the precise prediction reliability acquisition unit 322 inputs the precise prediction processing data D2_kp_H output from the precise prediction processing unit 313.
- the precision prediction reliability acquisition unit 322 acquires the precision prediction reliability by executing the precision prediction reliability acquisition process on the precision prediction processing data D2_kp_H, and converts the data including the acquired precision prediction reliability into the data D3_conf_H. , and output to the reliability combining unit 323 .
- the reliability combining unit 323 combines the data D3_conf_L output from the coarse prediction reliability acquisition unit 321, the data D3_conf_H output from the fine prediction reliability acquisition unit 322, and the data D_heatmap output from the heat map acquisition unit 2. input.
- the reliability combining unit 323 obtains the combined reliability by executing the reliability combining process on the data D3_conf_L, the data D3_conf_H, and the data D_heatmap, and uses the data including the acquired combined reliability as the data D4_conf. Output to the precise pose data acquisition unit 33 .
- the precise pose data acquisition unit 33 receives the data Di_kp output from the 2D pose estimation unit 1 and the data D4_conf output from the reliability combining unit 323 .
- the precise pose data obtaining unit 33 uses the data Di_kp and the data D4_conf (reliability data D4_conf) to execute the precise pose data obtaining process (details will be described later), and converts the processed data into the data Do_kp. to get as Then, the precise pose data acquiring section 33 outputs the acquired data Do_kp to the 2D-3D converting section 4 .
- the 2D-3D conversion unit 4 receives data Do_kp (two-dimensional keypoint data) output from the precise data acquisition unit 3 .
- the 2D-3D conversion unit 4 performs 2D-3D conversion processing on data Do_kp (two-dimensional keypoint data), and converts three-dimensional data ( 3D keypoint data) is acquired as data Do_3D_kp.
- the 2D-3D conversion unit 4 then outputs the acquired data Do_3D_kp to the post processing unit 5 .
- the post-processing unit 5 receives the data Do_3D_kp output from the 2D-3D conversion unit 4, performs post-processing on the data Do_3D_kp, and acquires the processed data as data Dout.
- FIG. 3A shows time-series continuous frame images (two-dimensional images) (time-series continuous frame images capable of constructing a moving image) acquired by photographing a subject person Sub1 by an imaging device Cam1 as data Din. , and a system (one example) (upper diagram) that is input to the pose data generation device, and a frame image Img0 (t1) (an example) (lower diagram) at time step t1 (time t1).
- an image Img1 (t1) image region Img1 (t1)
- PP1 image region
- FIG. 3B shows time-series continuous frame images (two-dimensional images) (time-series continuous frame images capable of constructing a moving image) obtained by photographing a subject person Sub1 by an imaging device Cam1 as data Din.
- a system (example) (upper diagram) for inputting to the feature amount extraction unit PP1 of the pose data generation device 100, and a feature amount extraction image Img1 (t1) extracted by the feature amount extraction unit PP1 from the continuous frame images in time series.
- Img1 (t2) Img1 (t3) , . . .
- an example lower diagram
- the feature amount extraction image at time step tk (k: integer) is denoted as Img1 (tk) .
- FIG. 4 is a diagram for explaining keypoint data.
- FIG. 5 shows the frame image Img1 (t1) and (1) heat map Heatmap (kp 14 ) (left shoulder heat map), (2) heat map Heatmap (kp 15 ) ( (3) Heatmap Heatmap(kp 16 ) (left hand heatmap).
- 6 to 11 are diagrams for explaining the reliability acquisition process (time step t1).
- FIG. 12 shows data Do_kp.
- FIG. 10 is a diagram showing an example of data Do_kp that summarizes kpj (time step t1);
- FIG. 13 shows data Do_kp.
- FIG. 10 is a diagram showing an example of data Do_kp that summarizes kpj (time step t2);
- 14 to 16 are diagrams for explaining the reliability acquisition process (time step t3).
- FIG. 17 shows data Do_kp.
- FIG. 10 is a diagram showing an example of data Do_kp in which kp j is summarized (time step t3);
- the subject person Sub1 performs a predetermined action
- the feature amount extraction image shown in the lower diagram of FIG. A case (one example) of execution will be described.
- the predetermined motion of the subject person Sub1 is such that, as shown in the lower diagram of FIG. An operation (example) in which the person Sub1 is hidden behind the body (the left arm and left hand are in an occlusion state) will be described below.
- the operation of the pose data generation device 100 will be described below by dividing it into processes at time steps t1, t2, and t3.
- frame image data Img0 (t1) is acquired by imaging a three-dimensional space (imaging space) including the subject person Sub1 with the imaging device Cam1.
- the frame image data obtained at time step t is denoted as Img0 (t) .
- an image (frame image) formed by the frame image data Img0 (t1) is the image Img0 (t1) shown in the lower diagram of FIG. 3A.
- a “time step” is a reference time for executing a series of processes from input to output in the pose data generation device 100. For example, one unit data (for example, one frame image) is input. After that, the time is based on the time when unit data of one processing result (for example, three-dimensional pose data obtained from one input frame image) is output.
- the 2D pose estimation unit 1 of the pose data generation device 100 receives the frame image data Img0 (t1) output from the imaging device Cam1 as data Din, and uses the frame image data Img0 (t1) to generate two-dimensional pose data. to estimate (acquire) the Specifically, the following processes are executed.
- the feature quantity extraction unit PP1 performs feature quantity extraction processing (for example, class classification and object detection processing) on the data Din (frame image data Img0 (t1) ), thereby extracting the subject person ( An image area (image Img1 (t1) ) corresponding to the object detection target) is extracted. Specifically, the feature amount extraction unit PP1 classifies the frame image data Img0 ( t1) is subjected to feature quantity extraction processing to extract an image region (image Img1 (t1) ) corresponding to the subject person (object detection target). In this embodiment, it is assumed that the object detection target is set to "person" in the feature quantity extraction process.
- feature quantity extraction processing for example, class classification and object detection processing
- the feature amount extraction unit PP1 extracts data (image data including the image area including the object detection target) on the image area (image Img1 (t1) ) of the object detection target acquired by the feature amount extraction process. data on the coordinates and size of the image area detected), and data on the class classification of the object detected (object detection class (in this embodiment, "person”)), etc. It is output to the 2D pose estimation unit 1 and the heat map acquisition unit 2 as D0.
- the data (image data) of the image region extracted by the feature amount extraction process at time step t will be referred to as feature amount extracted image data Img1 (t) (or feature amount extracted image Img1 (t) ).
- the 2D pose estimation unit 1 calculates the position ( position on the two-dimensional image) is specified (estimated).
- the “predetermined site” includes (1) predetermined positions included in the human head and spine (corresponding to key points kp 1 to kp 4 in FIG. 4), (2) the left and right arms of the human. (corresponding to keypoints kp 5 to kp 7 and kp 14 to kp 16 in FIG. 4), (3) predetermined positions included in the left and right legs of a person (keypoint kp 8 in FIG. ⁇ kp 10 , kp 11 to kp 13 ).
- the 2D pose estimation unit extracts key points kp 1 to kp 16 ( 16 points kp 1 to kp 16 ) is acquired (estimated) to execute the 2D pose estimation process.
- the 2D pose estimation processing executed by the 2D pose estimation unit 1 may be processed as in (A) or (B) below.
- (A) When the information of the three-dimensional space (imaging space) in which the subject person Sub1 is captured by the imaging device Cam1 and the information of the imaging parameters of the imaging device Cam1 can be obtained, the 2D pose estimation unit 1 obtains the imaging space and the information Info_cam_prm of the imaging parameters of the imaging device Cam1, the position of the predetermined part of the subject person Sub1 in the feature amount extraction image Img1 (t1) on the image (the position on the two-dimensional image ) is specified (estimated) to execute the 2D pose estimation process.
- the subject is a person (a standard human size is known), and the installation position of the imaging device Cam1 in the three-dimensional space, the orientation of the camera optical axis, the focal length, and the angle of view are known. Therefore, the image area corresponding to the subject person Sub1 can be extracted by the feature amount extraction unit PP1 from the frame image acquired by the imaging device Cam1, and the frame image (feature amount A position on the extracted image Img1 (t1) ) can be identified.
- the 2D pose estimating unit 1 extracts a portion of frame images that are continuous in time series, in which the subject person Sub1 is shown, as a feature amount extracting unit.
- the frame image extracted by PP1 feature amount extraction image Img1 (t)
- the machine-learned model is input to the machine-learned model and processed by the machine-learned model to obtain two-dimensional pose data (predetermined 2D coordinate data of each part) is acquired (estimated).
- the 2D pose estimation unit 1 executes 2D pose estimation processing.
- the 2D pose estimation unit 1 executes the 2D pose estimation process according to (B) above, for example, the PoseNet model disclosed in Prior Art Document A below may be used.
- PoseNet Model https://github.com/tensorflow/tfjs-models/tree/master/posenet
- the 2D pose estimation unit 1 sends the data including the two-dimensional keypoint data (the two-dimensional coordinate data of the 16 points kp 1 to kp 16 ) acquired by the above process to the precise data acquisition unit 3 as data Di_kp. Output.
- the heat map acquisition unit 2 of the pose data generation device 100 executes processing for acquiring a heat map from the frame image (feature amount extraction image Img1 (t1) ) formed by the feature amount extraction image data Img1 (t1) .
- the heat map acquisition unit 2 obtains a value indicating the probability that each pixel of the frame image formed by the feature amount extraction image data Img1 (t1) is a predetermined part of the subject person Sub1. get.
- the “predetermined site” includes (1) predetermined positions included in the human head and spine (corresponding to key points kp 1 to kp 4 in FIG. 4), and (2) included in the left and right arms of the human. Predetermined positions (corresponding to keypoints kp 5 to kp 7 and kp 14 to kp 16 in FIG. 4), (3) predetermined positions included in the left and right legs of a person (keypoints kp 8 to kp 10 in FIG. , kp 11 to kp 13 ).
- the heat map acquisition unit 2 determines that each pixel of the feature amount extraction image Img1 (t1) corresponds to a predetermined part (corresponding Acquire a heat map (heat map image) with pixel values indicating the probability of being a part corresponding to the key point that is the target (heat map for each of the key points kp 1 to kp 16 (a total of 16 heat map)).
- the number of pixels of the heat map may be smaller than the number of pixels of the feature amount extraction image Img1 (t1) ( pixels are thinned out at a constant rate).
- FIG. 5 shows (1) heat map Heatmap ( kp 14 ) (left shoulder heat map), (2) heat map Heatmap ( kp 15 ) (left elbow heat map), and (3) heat map Heatmap (kp 16 ) (left hand heat map).
- a heat map for the key point kp xx is denoted as Heatmap(kp xx ).
- (1) pixels indicated by large-sized black circles are highly likely to be corresponding parts, and (2) pixels indicated by medium-sized black circles are , means that the probability of being the corresponding part is medium, (3) pixels indicated by white circles mean that the probability of being the corresponding part is low, and (4) solid pixels are , means that the probability of being the corresponding part is zero (no).
- the subject person Sub1 appearing in the feature amount extraction image Img1 (t1) is superimposed with a gray dotted line so that the position of each part of the subject person Sub1 can be seen.
- heat map Heatmap (kp 14 ) (left shoulder heat map) in FIG. 5
- large-sized black circle pixels are present in the left shoulder of the subject person Sub1
- the true position of the left shoulder is the true position of the left shoulder. It can be seen that the likeness is the maximum. In other words, it can be seen that the heat map Heatmap (kp 14 ) (left shoulder heat map) can appropriately detect the left shoulder portion.
- heat map Heatmap (kp 15 ) heat map of the left elbow in FIG. It can be seen that the probability of the elbow portion is the greatest. That is, it can be seen that the heat map Heatmap (kp 15 ) (heat map of the left elbow) can appropriately detect the left elbow portion.
- heat map Heatmap (kp 16 ) (left-hand heat map) in FIG. 5
- a large-sized black circle pixel is present in the left-hand part of the subject person Sub1
- the true position of the left-hand part is the true position of the left-hand part. It can be seen that the likeness is the maximum. That is, it can be seen that the heat map Heatmap(kp 16 ) (left-hand heat map) can appropriately detect the left-hand portion.
- the heat map acquisition unit 2 may use image recognition technology, for example, to recognize regions corresponding to the key points kp 1 to kp 16 in the feature amount extraction image Img1 (t1) . For example, when the heat map acquisition unit 2 receives a feature amount extraction image in which a portion of the subject person Sub1 is extracted, the heat map acquisition unit 2 outputs (estimates) the certainty (probability) of each predetermined part of the subject person Sub1.
- the heat map acquisition unit 2 is equipped with a machine-learned model (for example, a model trained by a neural network), and the heat map acquisition unit 2 extracts the feature amount extraction image in which the part in which the subject person Sub1 is shown is extracted from the machine-learned model By inputting it into the model and performing processing using the machine-learned model, the likelihood (probability) of each predetermined part of the subject person Sub1 is output (estimated). In this manner, the heat map acquisition unit 2 may acquire a heat map of each part.
- a machine-learned model for example, a model trained by a neural network
- the heat map acquisition unit 2 may acquire a heat map of each part of a person, for example, using the PoseNet model disclosed in the above (prior art document A).
- the heat map acquisition unit 2 acquires heat maps (a total of 16 heat maps) for each of the key points kp 1 to kp 16 . Then, the heat map acquisition unit 2 outputs data including the acquired heat map to the precise data acquisition unit 3 as data D_heatmap.
- the data decomposition unit 311 of the precise data acquisition unit 3 receives the data Di_kp output from the 2D pose estimation unit 1, and performs decomposition processing (processing of decomposing the keypoint data for each human part) on the data Di_kp. Run. Specifically, the data decomposition unit 311 stores (1) keypoint data of a part that has a wide range of motion and can move violently (such keypoints are referred to as “wide-movability keypoints”), and (2) It is divided into keypoint data of parts that have a narrow range of movement and do not move violently (such keypoints are called "narrow movable keypoints").
- the data decomposition unit 311 (1) key points corresponding to hands, elbows, and feet (Kp 7 (right hand), Kp 16 (left hand), Kp 6 (right elbow), Kp 13 (left elbow), Kp 10 (right leg), Kp 13 (left leg)) are set as wide movable key points, and (2) key points corresponding to other parts (key points kp 1 to kp 4 of parts included in the human head and spine, human key points kp 5 and kp 14 corresponding to the left and right shoulders, key points kp 8 and kp 11 corresponding to the left and right hips of a person, and key points kp 9 and kp 12 corresponding to the left and right knees of a person. Make it a narrow movable key point.
- the data decomposing unit 311 sets the wide-movable keypoints and the narrow-movable keypoints as described above, and decomposes the data of the keypoints.
- the data decomposing unit 311 (1) outputs the data including the data of the narrow movable keypoint acquired by the above process as data D1_kp_L to the rough prediction processing unit 312 and the first memory M1, and (2) by the above process
- the data including the acquired data of the wide movable keypoint is output to the precise prediction processing unit 313 and the second memory M2 as data D1_kp_H.
- the first memory M1 receives the data D1_kp_L output from the data decomposing unit 311 and stores and holds the data D1_kp_L.
- the second memory M2 receives the data D1_kp_H output from the data decomposing unit 311 and stores and holds the data D1_kp_H.
- the rough prediction processing unit 312 receives data D1_kp_L output from the data decomposition unit 311 . Further, the coarse prediction processing unit 312 reads the data D1_kp_L, which was acquired before the current time and stored in the first memory M1, as data D1_kp_L_past from the first memory M1. The coarse prediction processing unit 312 performs coarse prediction processing using data D1_kp_L and data D1_kp_L_past. Specifically, the coarse prediction processing unit 312 executes processing (prediction processing) using a time series filter. This will be explained below.
- a time-series filter is defined as a state vector xt representing the internal state of an object at time step t (time t ) and an observation vector zt representing features observed at time step t (time t). This is a method of estimating the internal state xt of an object that cannot be directly observed from the vector zt .
- a system model of the internal state of an observation target and an observation model (state space model) when the target is observed can be expressed as follows.
- a time series filter can be applied using data predicted by equations or the like and actual observed data (eg, data of key points actually observed).
- (1) data of the narrow movable keypoint acquired at the previous time step (time step t ⁇ 1) (data indicating the internal state of the observation target one time step before (the above internal state x (equivalent to t ⁇ 1 )), and (2) an equation expressing a physical phenomenon (for example, an equation of motion, etc.) regarding the movement of a predetermined part of the subject person Sub1 to be processed (movement of a predetermined part of the subject person Sub1).
- predicted keypoint data observation data (equivalent to the above observation vector zt)) and the observation target at the current time step (time step t ) by performing processing with a time series filter using An internal state (pose data of the subject person Sub1) is acquired (estimated).
- the coarse prediction processing unit 312 performs prediction processing (coarse prediction processing) for narrow movable keypoints using a Kalman filter, which requires a relatively small amount of calculation, as a time-series filter. That is, the coarse prediction processing unit 312 uses the Kalman filter to perform the following processing.
- the rough prediction processing unit 312 acquires (estimates) the internal state of the observation target (data of narrow movable key points of the subject person Sub1) at the current time step (time step t) by the following processing.
- t-1 f(x t-1
- t ⁇ 1 F t P t ⁇ 1
- F t Linear model of system time transition
- t ⁇ 1 Error covariance matrix
- F T t Transposed matrix of F t G t : Noise model matrix of time transition Q t : Noise of time transition Model covariance matrix G T
- t ⁇ 1 state estimation value (state estimation vector) after update processing at time step t ⁇ 1) is included in data D1_kp_L_past and is extracted from data D1_kp_L_past.
- t xt
- P kp8_pre (t1) the prior estimate (pre-estimation vector) of keypoint Kp 8 at time step t1
- the coarse prediction processing unit 312 performs coarse prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t1) at the current time (time step t1) of each narrow movable keypoint obtained by the above process as data D2_kp_L. Output to the reliability acquisition unit 321 and the first memory M1.
- the precise prediction processing unit 313 receives the data D1_kp_H output from the data decomposition unit 311 . Further, the precise prediction processing unit 313 reads the data D1_kp_H that was acquired before the current time and stored in the second memory M2 as data D1_kp_H_past from the second memory M2. The precise prediction processing unit 313 uses the data D1_kp_H and the data D1_kp_H_past to execute the precise prediction processing. Specifically, the precise prediction processing unit 313 executes processing (prediction processing) using a time series filter.
- processing prediction processing
- the extended Kalman filter is also a time series filter. This is a method of estimating the internal state xt of an object that cannot be directly observed from the obtained observation vector zt .
- a system model of the internal state of an observation target and an observation model (state space model) when the target is observed can be expressed as follows.
- a time series filter can be applied using data predicted by equations or the like and actual observed data (eg, data of key points actually observed).
- the data of the wide-movable keypoint acquired at the previous time step (time step t ⁇ 1) (the data indicating the internal state of the observation target one time step before (the above internal state x (equivalent to t ⁇ 1 )), and (2) an equation expressing a physical phenomenon (for example, an equation of motion, etc.) regarding the motion of a predetermined part of the subject person Sub1 to be processed (movement of a predetermined part of the subject person Sub1).
- predicted keypoint data observed data (equivalent to the above observation vector zt)) and time-series filter processing, the inside of the observation target at the current time step (time step t )
- the state (pose data of the subject person Sub1) is acquired (estimated).
- the precise prediction processing unit 313 uses an extended Kalman filter capable of performing highly accurate prediction processing (estimation processing) as a time-series filter to perform prediction processing (precision prediction processing) for wide movable key points. I do. That is, the precise prediction processing unit 313 uses the extended Kalman filter to perform the following processing.
- the precise prediction processing unit 313 obtains (estimates) the internal state of the observation target (data of the subject person Sub1's wide movable key points) at the current time step (time step t) by the following processing.
- t-1 f(x t-1
- t ⁇ 1 F t P t ⁇ 1
- F t Linear model of system time transition
- t ⁇ 1 Error covariance matrix
- F T t Transposed matrix of F t G t : Noise model matrix of time transition Q t : Noise of time transition Model covariance matrix
- the Kalman filter algorithm can be applied by linearization.
- the extended Kalman filter can perform highly accurate prediction processing (estimation processing) even when the state space model uses nonlinear functions f and H.
- the extended Kalman filter increases the amount of calculation compared to the Kalman filter whose state space model must use linear functions f and H (linear operators f and H), but can handle nonlinear system models. , highly accurate prediction processing (estimation processing) can be performed.
- the precise prediction processing unit 313 converts the internal state variable (internal state vector) of the keypoint Kp16 into a feature quantity
- the x- and y-coordinates of the keypoint Kp 16 on the extracted image Img1 (t1) are processed by the extended Kalman filter.
- K t P t
- t ⁇ 1 F t P t ⁇ 1
- t ⁇ 1 F T t +G t Q t G T t S t H t P t
- the precise prediction processing unit 313 acquires the posterior estimated value (posterior estimated vector) P kp16_post (t1) at the current time (time step t1) of the keypoint Kp 16 (left hand portion), which is a wide movable keypoint. .
- the precise prediction processing unit 313 performs precise prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t1) at the current time (time step t1) of each wide-movable keypoint obtained by the above process as data D2_kp_H. Output to the reliability acquisition unit 322 and the second memory M2.
- the coarse prediction reliability acquisition unit 321 performs coarse prediction reliability acquisition processing on the coarse prediction processing data D2_kp_L output from the coarse prediction processing unit 312 to obtain the coarse prediction reliability (coarse prediction reliability map). to get Specifically, the coarse prediction reliability acquisition unit 321 acquires the position of each part specified by the coarse prediction processing data D2_kp_L (the position of the key point corresponding to each part (coarse The position estimated (predicted) by the prediction process) is set to a predetermined value (pixel value) (for example, “0.2”), and the value (pixel value) of other positions is set to “0”. Obtain a coarse prediction confidence map, which is a degree map (a map in which the degree of reliability is a pixel value). Note that the rough prediction reliability map is assumed to have the same pixel size, number of pixels, and pixel arrangement as the heat map included in the data D_heatmap.
- the coarse prediction reliability acquisition unit 321 sets the reliability (pixel value) of the position in the coarse prediction reliability map to a predetermined value (for example, "0.2"). , and by setting the reliability (pixel value) of the other positions to "0", the coarse prediction confidence map (coarse prediction confidence map D3_conf_L.kp 14 ) of the left shoulder (kp 14 ) is obtained (Fig. 6, lower right).
- the coarse prediction confidence map of the part kp x is D3_conf_L. It is written as kp x . Note that in FIG. 6, for convenience of explanation, the pixels of the coarse prediction reliability map are indicated by 4 ⁇ 4 rectangles (16 rectangles (pixels)), and the coarse prediction reliability maps in other image regions are shown. Pixel display is omitted.
- the coarse prediction reliability acquisition unit 321 performs the same processing as described above to obtain the coarse prediction reliability map D3_conf_L. Get kp x .
- the coarse prediction reliability acquisition unit 321 acquires the coarse prediction reliability map D3_conf_L.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is summarized (included) is output to the reliability combining unit 323 as data D3_conf_L.
- the precision prediction reliability acquisition unit 322 executes precision prediction reliability acquisition processing on the precision prediction processing data D2_kp_H output from the precision prediction processing unit 313 to obtain the precision prediction reliability (precision prediction reliability map).
- the precise prediction reliability acquisition unit 322 obtains the position of each part specified by the precise prediction processing data D2_kp_H (the position of the key point corresponding to each part (precise Position estimated (predicted) by prediction processing) is set to a predetermined value (pixel value) (for example, “0.2”), and the value (pixel value) of other positions is set to “0”.
- a fine prediction confidence map which is a degree map (a map in which the degree of reliability is a pixel value). It should be noted that the precise prediction reliability map is assumed to have the same pixel size, number of pixels, and pixel arrangement as the heat map included in the data D_heatmap.
- the precision prediction reliability acquisition unit 322 sets the reliability (pixel value) of the position in the precision prediction reliability map to a predetermined value (for example, "0.2").
- the precision prediction reliability map (precise prediction reliability map D3_conf_L.kp 16 ) of the left-hand part (kp 16 ) is obtained (Fig. 7, lower right).
- the precision prediction reliability map of part kp x is D3_conf_H. It is written as kp x .
- the pixels of the precision prediction reliability map are displayed as 4 ⁇ 4 rectangles (16 rectangles (pixels)), and the precision prediction reliability map in other image regions is Pixel display is omitted.
- the coarse prediction reliability acquisition unit 321 performs the same processing as described above to obtain the fine prediction reliability map D3_conf_H. Get kp x .
- the precision prediction reliability acquisition unit 322 acquires the precision prediction reliability map D3_conf_H.
- the reliability combining unit 323 combines the data D3_conf_L output from the coarse prediction reliability acquisition unit 321, the data D3_conf_H output from the fine prediction reliability acquisition unit 322, and the data D_heatmap output from the heat map acquisition unit 2. input.
- the reliability combining unit 323 performs reliability combining processing on data D3_conf_L, data D3_conf_H, and data D_heatmap. Specifically, the reliability combining unit 323, for each part (kp x (x: natural number, 1 ⁇ x ⁇ 16)), (1) Heat map D_heatmap. kp x , and (2A) the coarse prediction confidence map D3_conf_L. kp x , or (2B) Precise prediction confidence map D3_conf_H.
- the heat map (reliability map obtained from the heat map) of the site kp x of the heat map D_heatmap is designated as heat map D_heatmap. It is written as kp x .
- the reliability combining unit 323 also performs the same processing as described above for other parts, thereby creating a combined reliability map D4_conf. Get kp x .
- the reliability combining unit 323 generates the combined reliability map D4_conf.
- Data summarizing (including) kp x (x: natural number, 1 ⁇ x ⁇ 16) is output to the precise pose data acquisition unit 33 as data D4_conf.
- the precise pose data acquisition unit 33 inputs the data Di_kp output from the 2D pose estimation unit 1 and the data D4_conf output from the reliability combining unit 323 .
- the precise pose data obtaining unit 33 uses the data Di_kp and the data D4_conf (reliability data D4_conf) to execute the precise pose data obtaining process.
- the precise pose data acquiring unit 33 obtains the synthetic reliability map D4_conf . kp x on the image (feature extraction image Img1 (t1) ) and the data Di_kp. It is determined whether or not the position (the position of the keypoint kp x ) on the image (feature amount extraction image Img1 (t1) ) specified by kp x substantially matches, and the following processing is performed.
- the precise pose data acquisition unit 33 combines the keypoints of the part kp 14 of the precise pose data with the synthetic reliability map D4_conf.
- the position on the image (feature extraction image Img1 (t1) ) specified by kp 14 (the position of the pixel showing the maximum value in the synthetic reliability map D4_conf.kp 14 ) is set to the precise pose data of the part kp 14 Do_kp. Obtain kp 14 . That is, the precise pose data acquisition unit 33 Do_kp.
- kp14 max_P( D4_conf.kp14 ) max_P (Dp):
- the Precise pose data Do_kp. kp 14 (corresponding to the position of the 2nd row, 3rd column pixel (the pixel whose pixel value is "0.8") in the 4 ⁇ 4 rectangle (matrix) in the upper diagram of FIG. 10) is obtained (the lower diagram of FIG. 10 ).
- the data Di_kp is obtained from the lower diagram of FIG. 10 .
- the precise pose data acquisition unit 33 performs the above-described process to obtain the precise pose data Do_kp as data (keypoint) indicating the correct position of the part kp .
- kp 14 can be obtained.
- the heat map D_heatmap The position of the pixel with the maximum pixel value in kp 14 and the coarse prediction confidence map D3_conf_L. kp 14 is different from the position of the pixel having a pixel value of non-zero, but the heat map D_heatmap.
- the location of the pixel showing the maximum value at kp 14 is shown in the heatmap D_heatmap.
- the data Di_kp in the case of the left hand part (kp 16 ) (in the case of the target part of the precise prediction process), the data Di_kp.
- the position on the kp 16 image (corresponding to the position of the pixel in the 2nd row and 2nd column of the 4 ⁇ 4 rectangle (matrix) in the upper diagram of FIG. 11 (the pixel whose pixel value is “0.9”)), and the synthesis Confidence map D4_conf.
- What is the position of the pixel showing the maximum value in kp 16 the position of the pixel in the 4th row and 4th column of the 4 ⁇ 4 rectangle (matrix) in the upper diagram of FIG. 11 (the pixel whose pixel value is “1.0”))? .
- the precise pose data acquisition unit 33 combines the keypoints of the part kp 16 of the precise pose data with the synthetic reliability map D4_conf.
- the position on the image (feature amount extraction image Img1 (t1) ) specified by kp 16 (the position of the pixel showing the maximum value in the synthetic reliability map D4_conf.kp 16 ) is set to the precise pose data of the part kp 16 Do_kp. Obtain kp 16 . That is, the precise pose data acquisition unit 33 Do_kp.
- kp16 max_P( D4_conf.kp16 ) max_P (Dp):
- the Precise pose data Do_kp. kp 16 (corresponding to the position of the pixel in the 4th row, 4th column of the 4 ⁇ 4 rectangle (matrix) in the upper diagram of FIG. 11 (the pixel whose pixel value is “1.0”)) is acquired (the lower diagram of FIG. 11 ).
- the data Di_kp is acquired from the lower diagram of FIG. 11, the data Di_kp.
- the precise pose data acquisition unit 33 performs the above-described process to obtain the precise pose data Do_kp as data (keypoint) indicating the correct position of the part kp 16 .
- kp 16 can be obtained.
- the heat map D_heatmap The position of the pixel with the maximum pixel value in kp16 and the fine prediction confidence map D3_conf_H. kp 16 is different from the position of the pixel having a pixel value of non-zero, but the heat map D_heatmap.
- the location of the pixel showing the maximum value at kp 16 is shown in the heatmap D_heatmap.
- the position is the same as the position of the pixel whose pixel value is non-zero in kp16 . That is, even in this case, the precise pose data Do_kp . kp 16 can be obtained.
- the precise pose data acquisition unit 33 obtains the data Di_kp. kp x on the image and the composite confidence map D4_conf.
- the case of determining whether or not the position of the pixel showing the maximum value in kp x substantially matches (whether or not the pixel pitch (distance between adjacent pixels) of the reliability map or more) is determined has been described. It is not limited to this.
- the data Di_kp It may be determined whether or not the position on the image of kpx matches the position on the image specified by the rough prediction processing data D2_kp_L or fine prediction processing data D2_kp_H.
- a configuration may be used in which the coarse prediction processing data D2_kp_L and the fine prediction processing data D2_kp_H acquired from the prediction data acquisition unit 31 are input to the fine pose data acquisition unit 33.
- the fine pose data obtaining unit 33 obtains the combined reliability map D4_conf.
- the position of the pixel showing the maximum value in kp x is defined as the fine pose data Do_kp . It should be obtained as kp x .
- the precise pose data acquisition unit 33 performs the same processing as described above to obtain precise pose data Do_kp. Get kp x .
- the precise pose data acquiring unit 33 acquires the acquired precise pose data Do_kp.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is collected (included) is output to the 2D-3D conversion unit 4 as data Do_kp.
- FIG. 12 shows the data Do_kp. of each key point acquired by the precise pose data acquisition unit 33 through the above process.
- An example of data Do_kp that summarizes kp x is shown.
- a feature amount extraction image Img1 (t1) an image Img1 (t1) (Di_kp) schematically showing 2D pose data (keypoint data Di_kp.kp x ) acquired by the 2D pose estimation unit 1, and , the precise pose data Do_kp.
- An image Img1 (t1) (Do_kp) schematically showing kp x is shown.
- the key points based on the data Di_kp are indicated by gray circles
- the image Img1 (t1) (Do_kp) in FIG. Key points are indicated by black circles.
- addition processing is performed on the heat map acquired by the heat map acquisition unit 2 using the coarse prediction reliability map or the precise prediction reliability map acquired by the prediction data acquisition unit 31.
- a more accurate reliability map composite reliability map
- the precise data acquisition unit 3 acquires precise pose data based on the combined reliability map, so pose data with higher precision can be acquired.
- the 2D-3D conversion unit 4 receives data Do_kp (two-dimensional keypoint data) output from the precise data acquisition unit 3 .
- the 2D-3D conversion unit 4 performs 2D-3D conversion processing on data Do_kp (two-dimensional keypoint data), and converts three-dimensional data ( 3D keypoint data) is acquired as data Do_3D_kp.
- the 2D-3D conversion unit 4 is provided with a machine-learned model (for example, a model trained by a neural network) that outputs (estimates) three-dimensional keypoint data when two-dimensional keypoint data is input.
- the 2D-3D conversion unit 4 inputs the data Do_kp (two-dimensional keypoint data) to the machine-learned model, and performs processing using the machine-learned model. As a result, the 2D-3D converter 4 obtains (estimates) three-dimensional keypoint data from the data Do_kp (two-dimensional keypoint data).
- the 2D-3D conversion unit 4 converts the imaging space and the shooting parameter information Info_cam_prm of the imaging device Cam1, three-dimensional key point data may be acquired (estimated) from the data Do_kp (two-dimensional key point data).
- the 2D-3D conversion unit 4 outputs the data (two-dimensional keypoint data) acquired as described above to the post processing unit 5 as data Do_3D_kp.
- the post processing unit 5 receives the data Do_3D_kp output from the 2D-3D conversion unit 4 and performs post processing on the data Do_3D_kp.
- the post-processing unit 5 executes post-processing by performing coordinate transformation on the three-dimensional data (three-dimensional coordinate data) of each keypoint included in the data Do_3D_kp.
- three-dimensional data (three-dimensional coordinate data) of each key point included in data Do_3D_kp is converted to three-dimensional data (three-dimensional data in three-dimensional space for performing CG synthesis). 3D coordinate data).
- the post-processing unit 5 performs coordinate transformation on the three-dimensional data (three-dimensional coordinate data) of each keypoint included in the data Do_3D_kp, so that the data ( For example, it is possible to acquire three-dimensional data having three-dimensional coordinate values in a three-dimensional space for CG synthesis.
- the post-processing unit 5 outputs the data acquired as described above to the outside as data Dout.
- frame image data Img0 (t2) is acquired by imaging a three-dimensional space (imaging space) including the subject person Sub1 with the imaging device Cam1.
- the 2D pose estimation unit 1 of the pose data generation device 100 receives the frame image data Img0 (t2) output from the imaging device Cam1 as data Din, and uses the frame image data Img0 (t2) to generate two-dimensional pose data.
- a process (2D pose estimation process) for estimating (obtaining) is executed.
- the specific processing is the same as the processing at time step t1.
- the feature quantity extraction unit PP1 performs feature quantity extraction processing (for example, class classification and object detection processing) on the data Din (frame image data Img10 (t2) ), thereby extracting the subject person ( An image region (image Img1 (t2) ) corresponding to the object detection target) (see FIG. 3B) is extracted.
- feature quantity extraction processing for example, class classification and object detection processing
- the feature amount extraction unit PP1 extracts data (image data including the image area including the object detection target) for the object detection target image area (image Img1 (t2) ) acquired by the feature amount extraction process.
- data on the coordinates and size of the image area detected), and data on the class classification of the object detected (object detection class (in this embodiment, "person”)), etc. are referred to as feature quantity extraction data It is output to the 2D pose estimation unit 1 and the heat map acquisition unit 2 as D0.
- the 2D pose estimation unit 1 performs 2D pose estimation processing on the feature amount extraction image Img1 (t2) acquired by the feature amount extraction unit PP1, and acquires two-dimensional keypoint data (16 two-dimensional coordinate data of points kp 1 to kp 16 ) is output to the precise data acquiring unit 3 as data Di_kp.
- the heat map acquisition unit 2 of the pose data generation device 100 performs processing ( heat map acquisition process).
- the specific processing is the same as the processing at time step t1.
- the heat map acquisition unit 2 acquires heat maps (a total of 16 heat maps) for each of the key points kp 1 to kp 16 by heat map acquisition processing.
- the heat map acquisition unit 2 outputs the data including the heat map acquired by the heat map acquisition process to the precise data acquisition unit 3 as data D_heatmap.
- the data decomposition unit 311 of the precise data acquisition unit 3 receives the data Di_kp output from the 2D pose estimation unit 1, and performs decomposition processing (processing of decomposing the keypoint data for each human part) on the data Di_kp. Run.
- the specific processing is the same as the processing at time step t1.
- the data decomposition unit 311 (1) outputs the data including the narrow movable keypoint data acquired by the decomposition process to the rough prediction processing unit 312 and the first memory M1 as data D1_kp_L, and (2) outputs the data acquired by the decomposition process.
- the data including the data of the wide movable keypoint is output as data D1_kp_H to the precise prediction processing section 313 and the second memory M2.
- the first memory M1 receives the data D1_kp_L output from the data decomposing unit 311 and stores and holds the data D1_kp_L.
- the second memory M2 receives the data D1_kp_H output from the data decomposing unit 311 and stores and holds the data D1_kp_H.
- the rough prediction processing unit 312 receives data D1_kp_L output from the data decomposition unit 311 . Further, the coarse prediction processing unit 312 reads the data D1_kp_L, which was acquired before the current time and stored in the first memory M1, as data D1_kp_L_past from the first memory M1. The coarse prediction processing unit 312 performs coarse prediction processing using data D1_kp_L and data D1_kp_L_past.
- the coarse prediction processing unit 312 uses a Kalman filter, which requires a relatively small amount of calculation, as a time-series filter to perform prediction processing (coarse prediction processing) for narrow movable keypoints. That is, the coarse prediction processing unit 312 uses the Kalman filter to perform the following processing.
- the rough prediction processing unit 312 acquires (estimates) the internal state of the observation target (data of narrow movable key points of the subject person Sub1) at the current time step (time step t) by the following processing.
- t-1 f(x t-1
- t ⁇ 1 F t P t ⁇ 1
- F t Linear model of system time transition
- t ⁇ 1 Error covariance matrix
- F T t Transposed matrix of F t G t : Noise model matrix of time transition Q t : Noise of time transition Model covariance matrix G T
- P T kp8 (t2) transposed matrix of P kp8 (t2) x kp8 (t2) : x coordinate of key point Kp 8 on feature amount extraction image Img1 (t2)
- y kp8 ( t2) The y-coordinate of the key point Kp8 on the feature quantity extraction image Img1 (t2) is set, and the following update (update by Kalman filter) is performed.
- t ⁇ 1 state estimation value (state estimation vector) after update processing at time step t ⁇ 1) is included in data D1_kp_L_past and is extracted from data D1_kp_L_past.
- t xt
- P kp8_pre (t2) prior estimate (pre-estimation vector) of keypoint Kp 8 at time step t2 (corresponding to
- the coarse prediction processing unit 312 performs coarse prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t2) at the current time (time step t2) of each narrow movable keypoint obtained by the above process as data D2_kp_L. Output to the reliability acquisition unit 321 and the first memory M1.
- the precise prediction processing unit 313 receives the data D1_kp_H output from the data decomposition unit 311 . Further, the precise prediction processing unit 313 reads the data D1_kp_H that was acquired before the current time and stored in the second memory M2 as data D1_kp_H_past from the second memory M2. The precise prediction processing unit 313 uses data D1_kp_H and data D1_kp_H_past to execute precise prediction processing. Specifically, the precise prediction processing unit 313 executes processing (prediction processing) using an extended Kalman filter as a time-series filter, as at time step t1.
- the data of the wide-movable keypoint acquired at the previous time step (time step t ⁇ 1) (the data indicating the internal state of the observation target one time step before (the above internal state x (equivalent to t ⁇ 1 )), and (2) an equation expressing a physical phenomenon (for example, an equation of motion, etc.) regarding the motion of a predetermined part of the subject person Sub1 to be processed (movement of a predetermined part of the subject person Sub1).
- predicted keypoint data observed data (equivalent to the above observation vector zt)) and time-series filter processing, the inside of the observation target at the current time step (time step t )
- the state (pose data of the subject person Sub1) is acquired (estimated).
- the precise prediction processing unit 313 uses an extended Kalman filter capable of highly accurate prediction processing (estimation processing) as a time-series filter to perform prediction processing (precision prediction processing) for widely movable keypoints.
- the precise prediction processing unit 313 converts the internal state variable (internal state vector) of the keypoint kp16 (internal state vector) into the feature quantity
- the x- and y-coordinates of the keypoint kp 16 on the extracted image Img1 (t2) are processed by the extended Kalman filter.
- P T kp16 (t2) transposed matrix of P kp16 (t2) x kp16 (t2) : x coordinate of key point Kp 16 on feature amount extraction image Img1 (t2)
- y kp16 ( t2) The y-coordinate of the key point Kp 16 on the feature quantity extraction image Img1 (t2) is used, and the following update (update by the extended Kalman filter) is performed.
- K t P t
- t ⁇ 1 F t P t ⁇ 1
- t ⁇ 1 F T t +G t Q t G T t S t H t P t
- the precise prediction processing unit 313 acquires the posterior estimation value (posterior estimation vector) Pkp16_post (t2) at the current time (time step t2) of the keypoint Kp16 (left hand portion), which is a wide movable keypoint. .
- the precise prediction processing unit 313 performs precise prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t2) at the current time (time step t2) of each wide-movable keypoint obtained by the above process as data D2_kp_H. Output to the reliability acquisition unit 322 and the second memory M2.
- the coarse prediction reliability acquisition unit 321 performs coarse prediction reliability acquisition processing on the coarse prediction processing data D2_kp_L output from the coarse prediction processing unit 312, in the same manner as the processing at time step t1. Get the confidence (coarse prediction confidence map).
- the coarse prediction reliability acquisition unit 321 acquires the coarse prediction reliability map D3_conf_L.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is summarized (included) is output to the reliability combining unit 323 as data D3_conf_L.
- the precision prediction reliability acquisition unit 322 performs the precision prediction reliability acquisition process on the precision prediction processing data D2_kp_H output from the precision prediction processing unit 313 in the same manner as in the process at time step t1, thereby obtaining the precision prediction Get confidence (precise prediction confidence map).
- the precision prediction reliability acquisition unit 322 acquires the precision prediction reliability map D3_conf_H.
- the reliability combining unit 323 combines the data D3_conf_L output from the coarse prediction reliability acquisition unit 321, the data D3_conf_H output from the fine prediction reliability acquisition unit 322, and the data D_heatmap output from the heat map acquisition unit 2. input.
- the reliability combining unit 323 performs the reliability combining process on data D3_conf_L, data D3_conf_H, and data D_heatmap in the same manner as the process at time step t1.
- the reliability combining unit 323 generates the combined reliability map D4_conf.
- Data summarizing (including) kp x (x: natural number, 1 ⁇ x ⁇ 16) is output to the precise pose data acquisition unit 33 as data D4_conf.
- the precise pose data acquisition unit 33 receives the data Di_kp output from the 2D pose estimation unit 1 and the data D4_conf output from the reliability combining unit 323 .
- the precise pose data obtaining unit 33 uses the data Di_kp and the data D4_conf (reliability data D4_conf) to execute the precise pose data obtaining process in the same manner as the process at time step t1.
- the precise pose data acquiring unit 33 acquires the acquired precise pose data Do_kp.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is collected (included) is output to the 2D-3D conversion unit 4 as data Do_kp.
- FIG. 13 shows the data Do_kp. of each keypoint acquired by the precise pose data acquisition unit 33 through the above process at time step t2.
- An example of data Do_kp that summarizes kp x is shown.
- a feature amount extraction image Img1 (t2) an image Img1 (t2) (Di_kp) schematically showing 2D pose data (keypoint data Di_kp.kp x ) acquired by the 2D pose estimation unit 1, and , the precise pose data Do_kp.
- An image Img1 (t2) (Do_kp) schematically showing kp x is shown.
- the key points based on the data Di_kp are indicated by gray circles. Key points are indicated by black circles.
- addition processing is performed on the heat map acquired by the heat map acquisition unit 2 using the coarse prediction reliability map or the precise prediction reliability map acquired by the prediction data acquisition unit 31.
- a more accurate reliability map composite reliability map
- the precise data acquisition unit 3 acquires precise pose data based on the combined reliability map, so pose data with higher precision can be acquired.
- the 2D-3D conversion unit 4 receives data Do_kp (two-dimensional keypoint data) output from the precise data acquisition unit 3 .
- the 2D-3D conversion unit 4 performs 2D-3D conversion processing on the data Do_kp (two-dimensional keypoint data) in the same manner as at time step t1, and converts the data Do_kp (two-dimensional keypoint data) to 3D data (three-dimensional keypoint data) corresponding to the data) is obtained as data Do_3D_kp.
- the 2D-3D conversion unit 4 outputs the data (two-dimensional keypoint data) acquired as described above to the post processing unit 5 as data Do_3D_kp.
- the post-processing unit 5 receives the data Do_3D_kp output from the 2D-3D conversion unit 4, and performs post-processing on the data Do_3D_kp in the same manner as at time step t1.
- the post-processing unit 5 outputs the data acquired by the post-processing to the outside as data Dout.
- frame image data Img0 (t3) is obtained by imaging a three-dimensional space (imaging space) including the subject person Sub1 with the imaging device Cam1.
- the 2D pose estimation unit 1 of the pose data generation device 100 receives the frame image data Img0 (t3) output from the imaging device Cam1 as data Din, and uses the frame image data Img0 (t3) to generate two-dimensional pose data.
- a process (2D pose estimation process) for estimating (obtaining) is executed. Specific processing is the same as the processing at time step t1.
- the feature quantity extraction unit PP1 performs feature quantity extraction processing (for example, class classification and object detection processing) on the data Din (frame image data Img10 (t3) ), thereby extracting the subject person ( An image region (image Img1 (t3) ) corresponding to the object detection target) (see FIG. 3B) is extracted.
- feature quantity extraction processing for example, class classification and object detection processing
- the feature amount extraction unit PP1 extracts data (image data including the image area including the object detection target) about the image area (image Img1 (t3) ) of the object detection target acquired by the feature amount extraction process. data on the coordinates and size of the image area detected), and data on the class classification of the object detected (object detection class (in this embodiment, "person”)), etc. It is output to the 2D pose estimation unit 1 and the heat map acquisition unit 2 as D0.
- the 2D pose estimation unit 1 performs 2D pose estimation processing on the feature amount extraction image Img1 (t3) acquired by the feature amount extraction unit PP1, and acquires two-dimensional keypoint data (16 two-dimensional coordinate data of points kp 1 to kp 16 ) is output to the precise data acquiring unit 3 as data Di_kp.
- the heat map acquisition unit 2 of the pose data generation device 100 performs processing ( heat map acquisition process).
- the specific processing is the same as the processing at time step t1.
- the heat map acquisition unit 2 acquires heat maps (a total of 16 heat maps) for each of the key points kp 1 to kp 16 by heat map acquisition processing.
- the heat map acquisition unit 2 outputs the data including the heat map acquired by the heat map acquisition process to the precise data acquisition unit 3 as data D_heatmap.
- the data decomposition unit 311 of the precise data acquisition unit 3 receives the data Di_kp output from the 2D pose estimation unit 1, and performs decomposition processing (processing of decomposing the keypoint data for each human part) on the data Di_kp. Run.
- the specific processing is the same as the processing at time step t1.
- the data decomposition unit 311 (1) outputs the data including the narrow movable keypoint data acquired by the decomposition process to the rough prediction processing unit 312 and the first memory M1 as data D1_kp_L, and (2) outputs the data acquired by the decomposition process.
- the data including the data of the wide movable keypoint is output as data D1_kp_H to the precise prediction processing section 313 and the second memory M2.
- the first memory M1 receives the data D1_kp_L output from the data decomposing unit 311 and stores and holds the data D1_kp_L.
- the second memory M2 receives the data D1_kp_H output from the data decomposing unit 311 and stores and holds the data D1_kp_H.
- the rough prediction processing unit 312 receives data D1_kp_L output from the data decomposition unit 311 . Further, the coarse prediction processing unit 312 reads the data D1_kp_L, which was acquired before the current time and stored in the first memory M1, as data D1_kp_L_past from the first memory M1. The coarse prediction processing unit 312 performs coarse prediction processing using data D1_kp_L and data D1_kp_L_past.
- the coarse prediction processing unit 312 uses a Kalman filter, which requires a relatively small amount of calculation, as a time-series filter to perform prediction processing (coarse prediction processing) for narrow movable keypoints. That is, the coarse prediction processing unit 312 uses the Kalman filter to perform the following processing.
- the rough prediction processing unit 312 acquires (estimates) the internal state of the observation target (data of narrow movable key points of the subject person Sub1) at the current time step (time step t) by the following processing.
- t-1 f(x t-1
- t ⁇ 1 F t P t ⁇ 1
- F t Linear model of system time transition
- t ⁇ 1 Error covariance matrix
- F T t Transposed matrix of F t G t : Noise model matrix of time transition Q t : Noise of time transition Model covariance matrix G T
- t ⁇ 1 state estimation value (state estimation vector) after update processing at time step t ⁇ 1) is included in data D1_kp_L_past and is extracted from data D1_kp_L_past.
- t xt
- P kp8_pre (t3) the prior estimate (pre-estimation vector) of keypoint Kp 8 at time step t3 (corresponding to
- the coarse prediction processing unit 312 performs coarse prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t3) at the current time (time step t3) of each narrow movable keypoint obtained by the above process as data D2_kp_L. Output to the reliability acquisition unit 321 and the first memory M1.
- the precise prediction processing unit 313 receives the data D1_kp_H output from the data decomposition unit 311 . Further, the precise prediction processing unit 313 reads the data D1_kp_H that was acquired before the current time and stored in the second memory M2 as data D1_kp_H_past from the second memory M2. The precise prediction processing unit 313 uses data D1_kp_H and data D1_kp_H_past to execute precise prediction processing. Specifically, the precise prediction processing unit 313 executes processing (prediction processing) using an extended Kalman filter as a time-series filter, as at time step t1.
- the data of the wide-movable keypoint acquired at the previous time step (time step t ⁇ 1) (the data indicating the internal state of the observation target one time step before (the above internal state x (equivalent to t ⁇ 1 )), and (2) an equation expressing a physical phenomenon (for example, an equation of motion, etc.) regarding the movement of a predetermined part of the subject person Sub1 to be processed (movement of a predetermined part of the subject person Sub1).
- predicted keypoint data observed data (equivalent to the above observation vector z t )) and time-series filter processing, the inside of the observation target at the current time step (time step t)
- time step t The state (pose data of the subject person Sub1) is acquired (estimated).
- the precise prediction processing unit 313 uses an extended Kalman filter capable of highly accurate prediction processing (estimation processing) as a time-series filter to perform prediction processing (precision prediction processing) for widely movable keypoints.
- the precise prediction processing unit 313 converts the internal state variable (internal state vector) of the keypoint Kp16 into a feature quantity
- the x- and y-coordinates of the keypoint Kp 16 on the extracted image Img1 (t3) are processed by the extended Kalman filter.
- K t P t
- t ⁇ 1 F t P t ⁇ 1
- t ⁇ 1 F T t +G t Q t G T t S t H t P t
- the precise prediction processing unit 313 acquires the posterior estimation value (posterior estimation vector) Pkp16_post (t3) at the current time (time step t3) of the keypoint Kp16 (left hand portion), which is a wide movable keypoint. .
- the precise prediction processing unit 313 performs precise prediction using the data including the post-estimation value (post-estimation vector) P kpi_post (t3) at the current time (time step t3) of each wide-movable keypoint obtained by the above process as data D2_kp_H. Output to the reliability acquisition unit 322 and the second memory M2.
- the coarse prediction reliability acquisition unit 321 performs coarse prediction reliability acquisition processing on the coarse prediction processing data D2_kp_L output from the coarse prediction processing unit 312, in the same manner as the processing at time step t1. Get the confidence (coarse prediction confidence map).
- the coarse prediction reliability acquisition unit 321 acquires the coarse prediction reliability map D3_conf_L.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is summarized (included) is output to the reliability combining unit 323 as data D3_conf_L.
- the precision prediction reliability acquisition unit 322 performs the precision prediction reliability acquisition process on the precision prediction processing data D2_kp_H output from the precision prediction processing unit 313 in the same manner as in the process at time step t1, thereby obtaining the precision prediction Get confidence (precise prediction confidence map).
- the precise data acquisition unit 3 can predict (estimate) the position of the part in the occlusion state by fine prediction processing (and/or rough prediction processing). Therefore, the confidence (coarse prediction confidence map and/or fine prediction confidence map) of the site in the occlusion state can be obtained.
- the position of the left-hand part (kp 16 ) (the part in the occlusion state) specified by the precise prediction processing data D2_kp_H (the position of the key point corresponding to the left-hand part (estimated (predicted) by the precise prediction process) ) is shown in the upper right diagram of FIG. 14 as D2_kp_H.
- the precision prediction reliability acquisition unit 322 sets the reliability (pixel value) of the position in the precision prediction reliability map to a predetermined value (for example, "0.2").
- the precision prediction reliability map (precision prediction reliability map D3_conf_L.kp 16 ) of the left-hand part (kp 16 ) is obtained (Fig. 14, see lower right).
- the pixels of the precise prediction reliability map are displayed as 4 ⁇ 4 rectangles (16 rectangles (pixels)), and the precision prediction reliability map in other image regions is displayed. Pixel display is omitted.
- the coarse prediction reliability acquisition unit 321 performs the same processing as described above to obtain the fine prediction reliability map D3_conf_H. Get kp x .
- the precision prediction reliability acquisition unit 322 acquires the precision prediction reliability map D3_conf_H.
- the reliability combining unit 323 combines the data D3_conf_L output from the coarse prediction reliability acquisition unit 321, the data D3_conf_H output from the fine prediction reliability acquisition unit 322, and the data D_heatmap output from the heat map acquisition unit 2. input.
- the reliability combining unit 323 performs the reliability combining process on data D3_conf_L, data D3_conf_H, and data D_heatmap in the same manner as the process at time step t1.
- the heat map D_heatmap For the left hand portion (kp 16 ) in the occlusion state, the heat map D_heatmap. As shown in the upper part of FIG. 15, the value of each pixel of kp 16 is all "0" (the area corresponding to the left-hand portion was not detected, and the reliability was determined to be "0"). state).
- the composite confidence map D4_conf. kp 16 (lower diagram in FIG. 15) is the precision prediction confidence map D3_conf_H. kp 16 (middle diagram of FIG. 15), but the precision prediction confidence map D3_conf_H. kp 16 adequately predicts (estimates) the position of the left-hand part of the occlusion condition, so that for the left-hand part of the occlusion condition an appropriate synthetic confidence map D4_conf. kp 16 (lower diagram in FIG. 15) can be obtained.
- the reliability combining unit 323 also performs the same processing as described above for other parts, thereby creating a combined reliability map D4_conf. Get kp x .
- the reliability combining unit 323 generates the combined reliability map D4_conf.
- Data summarizing (including) kp x (x: natural number, 1 ⁇ x ⁇ 16) is output to the precise pose data acquisition unit 33 as data D4_conf.
- the precise pose data acquisition unit 33 receives the data Di_kp output from the 2D pose estimation unit 1 and the data D4_conf output from the reliability combining unit 323 .
- the precise pose data obtaining unit 33 uses the data Di_kp and the data D4_conf (reliability data D4_conf) to execute the precise pose data obtaining process in the same manner as the process at time step t1.
- the 2D pose estimation unit 1 cannot detect the left hand portion (kp 16 ) of the occlusion state, and the data Di_kp. kp 16 cannot be obtained, or even if it can be obtained, the data Di_kp.
- the position on the image of the left hand portion specified by kp 16 is shifted from the correct position. Therefore, data Di_kp. kp 16 (which may not be acquired) on the image (which may not be specified) and the synthetic confidence map D4_conf.
- the precise pose data acquisition unit 33 combines the keypoints of the part kp 16 of the precise pose data with the synthetic reliability map D4_conf.
- the position on the image (feature extraction image Img1 (t3) ) specified by kp 16 is set to the precise pose data of the part kp 16 Do_kp. Obtain kp 16 .
- the precise pose data acquisition unit 33 Do_kp. kp16 max_P( D4_conf.kp16 ) max_P (Dp):
- the Precise pose data Do_kp. kp 16 (corresponding to the position of the pixel in the 3rd row, 3rd column of the 4 ⁇ 4 rectangle (matrix) in the upper diagram of FIG. 16 (the pixel whose pixel value is “0.2”)) is acquired (the lower diagram of FIG. 16 ).
- the fine pose data obtaining unit 33 performs the above process to As data (keypoints) indicating the exact position of kp 16 , the precise pose data Do_kp. kp 16 can be obtained.
- the precise pose data acquisition unit 33 obtains the data Di_kp. kp x on the image and the composite confidence map D4_conf.
- the case of determining whether or not the position of the pixel showing the maximum value in kp x substantially matches (whether or not the pixel pitch (distance between adjacent pixels) of the reliability map or more) is determined has been described. It is not limited to this.
- the data Di_kp It may be determined whether or not the position on the image of kpx matches the position on the image specified by the rough prediction processing data D2_kp_L or fine prediction processing data D2_kp_H.
- a configuration may be used in which the coarse prediction processing data D2_kp_L and the fine prediction processing data D2_kp_H acquired from the prediction data acquisition unit 31 are input to the fine pose data acquisition unit 33.
- the fine pose data acquisition unit 33 obtains the combined reliability map D4_conf.
- the position of the pixel showing the maximum value in kp x is defined as the fine pose data Do_kp . It should be obtained as kp x .
- the precise pose data acquisition unit 33 performs the same processing as described above to obtain precise pose data Do_kp. Get kp x .
- the precise pose data acquiring unit 33 acquires the acquired precise pose data Do_kp.
- Data in which kp x (x: natural number, 1 ⁇ x ⁇ 16) is collected (included) is output to the 2D-3D conversion unit 4 as data Do_kp.
- FIG. 17 shows the data Do_kp. of each key point acquired by the precise pose data acquisition unit 33 through the above process at time step t3.
- An example of data Do_kp that summarizes kp x is shown.
- the feature amount extraction image Img1 (t3) the image Img1 (t3) (Di_kp) schematically showing the 2D pose data (keypoint data Di_kp.kp x ) acquired by the 2D pose estimation unit 1, and , the precise pose data Do_kp.
- An image Img1 (t3) (Do_kp) schematically showing kp x is shown.
- the key points based on the data Di_kp are indicated by gray circles
- the image Img1 (t3) (Do_kp) in FIG. Key points are indicated by black circles.
- addition processing is performed on the heat map acquired by the heat map acquisition unit 2 using the coarse prediction reliability map or the precise prediction reliability map acquired by the prediction data acquisition unit 31.
- a highly accurate reliability map composite reliability map
- the precise data acquisition unit 3 acquires precise pose data based on the combined reliability map, so pose data with higher precision can be acquired.
- the 2D-3D conversion unit 4 receives data Do_kp (two-dimensional keypoint data) output from the precise data acquisition unit 3 .
- the 2D-3D conversion unit 4 performs 2D-3D conversion processing on the data Do_kp (two-dimensional keypoint data) in the same manner as at time step t1, and converts the data Do_kp (two-dimensional keypoint data) to 3D data (three-dimensional keypoint data) corresponding to the data) is acquired as data Do_3D_kp.
- the 2D-3D conversion unit 4 outputs the data (two-dimensional keypoint data) acquired as described above to the post processing unit 5 as data Do_3D_kp.
- the post-processing unit 5 receives the data Do_3D_kp output from the 2D-3D conversion unit 4, and performs post-processing on the data Do_3D_kp in the same manner as at time step t1.
- the post-processing unit 5 outputs the data acquired by the post-processing to the outside as data Dout.
- the heat map acquired by the heat map acquisition unit 2 is added to the rough prediction reliability map or the fine prediction reliability map acquired by the reliability acquisition unit 32.
- a more accurate reliability map composite reliability map
- the precise data acquisition unit 3 of the pose data generation device 100 acquires precise pose data based on the synthetic reliability map, so that highly accurate pose data can be acquired.
- the 2D-3D conversion unit 4 performs 2D-3D conversion on the highly accurate two-dimensional keypoint data (two-dimensional pose data) acquired by the precise data acquisition unit 3. By doing so, highly accurate three-dimensional pose data (three-dimensional keypoint data) can be obtained.
- the pose data generation device 100 acquires highly accurate two-dimensional pose data, and performs 2D-3D conversion processing (time-series continuous processing), which is processing with a relatively small amount of calculation, on the acquired two-dimensional pose data. Without using data, 2D pose data (one 2D pose data) of 1 time step is input, and the output result (3D pose data) is acquired), 3D pose data ( 3D keypoint data).
- the pose data generation device 100 performs 2D-3D conversion using highly accurate two-dimensional pose data, so the three-dimensional pose data obtained by the 2D-3D conversion is also highly accurate data. . That is, the pose data generation device 100 performs time-series convolution processing from time-series continuous data (a plurality of time-series continuous frame images (feature amount extraction images)) to perform 3D There is no need to execute complicated processing with a large amount of calculation, such as acquiring pose data.
- the pose data generation device 100 does not need to perform complicated processing as in the conventional technology, so that it can be realized at low cost and highly accurate pose data can be obtained.
- the pose data generation device 100 when performing prediction processing on the data Di_kp, prediction processing is performed by changing the time-series filter to be applied according to the feature of the part.
- the pose data generation device 100 performs prediction processing using a high-precision time-series filter on the keypoint data of a part that has a wide range of motion and can move violently (data on wide-movability keypoints).
- Prediction processing using a time-series filter that is not as accurate as precision prediction processing but requires less computation for keypoint data of parts that have a narrow range of motion and do not move violently (data for narrow-movement keypoints) (rough prediction processing) is performed.
- the pose data generation device 100 performs prediction processing using a highly accurate time-series filter for difficult-to-predict wide-movable keypoints, and for narrow-movable keypoints that are not so difficult to predict, the amount of calculation can be small. Since prediction processing is performed using a series filter, highly accurate prediction data can be obtained while suppressing the total amount of calculation required to obtain prediction data.
- keypoint data can be obtained based on the highly accurate prediction data (two-dimensional keypoint prediction data) obtained by the above processing. Therefore, it is possible to acquire appropriate two-dimensional pose data (two-dimensional keypoint data) even when a feature amount extraction image in which an occlusion state occurs is input. Then, in the pose data generation device 100, the acquired two-dimensional pose data (two-dimensional keypoint data) is converted from 2D to 3D, thereby inputting a feature amount extraction image in which an occlusion state occurs. Even in this case, highly accurate three-dimensional pose data can be acquired.
- FIG. 18 is a schematic configuration diagram of a pose data generation device 100A according to the first modified example of the first embodiment.
- FIG. 19 is a schematic configuration diagram of the precise data acquisition unit 3A of the pose data generation device 100A according to the first modified example of the first embodiment.
- the pose data generation device 100A of this modified example has a configuration in which the precise data acquisition unit 3 in the pose data generation device 100 of the first embodiment is replaced with a precise data acquisition unit 3A. .
- the precise data acquisition unit 3A of this modified example has a configuration in which a second data decomposing unit 34 is added to the precise data acquisition unit 3 of the first embodiment.
- the data Do_kp_L acquired by the coarse prediction processing unit 312 is stored in the first memory M1
- past data (2) in the precise prediction processing, the data Do_kp_H acquired by the precise prediction processing unit 313 is stored in the second memory M2, It was used as past data (data one time step before) in the next time step and processed by a time series filter.
- data obtained by decomposing the precise pose data Do_kp obtained by the precise data obtaining unit 3 by the second data decomposing unit 34 is stored in the first memory M1 and the second memory M1. M2, and in the rough prediction process and the fine prediction process, it is used as past data (data one time step before) in the next time step to execute processing using a time series filter.
- the second data decomposing unit 34 is a functional unit that executes processing similar to that of the data decomposing unit 311, and decomposes the data Do_kp output from the precise pose data acquiring unit 33 (keypoint data decompose into each part) (process of decomposing the parts in the same way as the data decomposition unit 311), and obtain data Do_kp_L to be subjected to rough prediction processing and data Do_kp_H to be subjected to fine prediction processing. do. Then, the second data decomposition unit 34 outputs the acquired data Do_kp_L to the first memory M1, and outputs the acquired data Do_kp_H to the second memory M2.
- the rough prediction processing unit 312 reads the data stored in the first memory M1 (data obtained by decomposing the fine pose data Do_kp) as D1_kp_L_past from the first memory M1, and uses the data to Execute the time series filter process.
- the precise prediction processing unit 313 reads the data stored in the second memory M2 (data obtained by decomposing the precise pose data Do_kp) as D1_kp_H_past from the second memory M2, and uses the data to perform Execute the time series filter process.
- the pose data generation device 100A of the present modification instead of the data acquired by the rough prediction process and the fine prediction process, more accurate )
- the rough prediction process and the fine prediction process are executed, so that more accurate data (data acquired by the coarse prediction process and the fine prediction process) is used. can be obtained.
- the data acquired by the above data D2_kp_L and D2_kp_H acquired by rough prediction processing and fine prediction processing
- fine pose data Do_kp can be obtained.
- FIG. 20 is a schematic configuration diagram of a pose data generation device 100B according to the second modification of the first embodiment.
- FIG. 21 is a schematic configuration diagram of the precise data acquisition unit 3B of the pose data generation device 100B according to the second modification of the first embodiment.
- the pose data generation device 100B of this modification replaces the precise data acquisition unit 3 with the precise data acquisition unit 3B in the pose data generation device 100 of the first embodiment, It has a configuration in which a part 6 is added.
- the precise data acquisition unit 3B of this modified example has a configuration in which the data decomposition unit 311 in the precise data acquisition unit 3 of the first embodiment is replaced with a data decomposition unit 311A. .
- the disassembled part setting unit 6 is a functional part for setting a part to be processed by rough prediction processing and a part to be processed by fine prediction processing.
- the decomposition part setting unit 6 receives a command from a control unit (not shown) that controls the execution of a predetermined application (or an external input interface (not shown)). A part to be processed in the precise prediction process is set. Then, the decomposition part setting unit 6 sets the data including the setting information of the parts to be processed by the rough prediction process and the parts to be processed by the fine prediction process as the data D_set, and the data decomposition part of the precise data acquisition unit 3 311A.
- the data decomposition unit 311A receives the data D_set output from the decomposition part setting unit 6, and specifies the parts to be processed by the rough prediction process and the parts to be processed by the fine prediction process according to the data D_set.
- the data Di_kp output from the 2D pose estimator 1 is decomposed (process of decomposing the keypoint data for each human part). That is, the data decomposing unit 311A (1) outputs the key point data of the part designated as the target part of the coarse prediction process in the data D_set to the coarse prediction processing unit 312 as data D1_kp_L, and (2) data The key point data of the part designated as the target part of the precise prediction process by D_set is output to the precise prediction processing unit 313 as data D1_kp_H.
- the disassembled part setting unit 6 can specify a part to be processed by the rough prediction process and a part to be processed by the fine prediction process.
- a data decomposing unit 311 can decompose keypoint data and perform rough prediction processing and fine prediction processing. Therefore, in the pose data generation device 100B of the present modification, it is possible to determine (change) the part to be processed by the rough prediction process and the part to be processed by the fine prediction process based on various conditions. can.
- the disassembly part setting unit 6 selects (1) the right hand, left hand, right elbow, left elbow, right leg, left leg, right knee, and left knee, which have a wide range of motion, as targets for the precise prediction processing. and (2) other parts are set as parts to be processed in the rough prediction process. Then, the data including the setting information (part decomposition setting information) is output to the data decomposition section 311A of the precise data acquisition section 3 as data D_set.
- the pose data generation device 100B executes precise prediction processing for (1) the right hand, the left hand, the right elbow, the left elbow, the right leg, the left leg, the right knee, and the left knee, which have a wide range of motion, and (2) Rough prediction processing can be executed for other parts.
- (B) When changing in the game stage (slow tempo music playback) For example, if the predetermined application is an application for executing a game that requests the user to dance while playing music, and if the tempo of the music changes for each stage of the game, slow tempo music may be used. is reproduced, the disassembly part setting unit 6 sets all the parts as parts to be processed in the rough prediction process. Then, the data including the setting information (part decomposition setting information) is output to the data decomposition section 311A of the precise data acquisition section 3 as data D_set. Then, in the above case, the pose data generation device 100B executes rough prediction processing for all parts. In this case, slow tempo music is played and each body part does not move a lot (violently). Accurate pose data can be obtained. In other words, in the pose data generation device 100B, by doing as described above, highly accurate pose data can be obtained while reducing the amount of calculation.
- the disassembled part setting unit 6 may set (1) the part to be moved by the user ( (known by the application) (for example, the left hand) is set as a part to be processed in the fine prediction process, and (2) other parts are set as parts to be processed in the rough prediction process. Then, the data including the setting information (part decomposition setting information) is output to the data decomposition section 311A of the precise data acquisition section 3 as data D_set.
- the pose data generation device 100B performs a precise prediction process for (1) the part that the user moves (known by the application) (for example, the left hand), and (2) , a coarse prediction process can be performed.
- the pose data generation device 100B executes the fine prediction process for the relevant part and the rough prediction process for the other parts, thereby reducing the amount of calculation. It is possible to acquire highly accurate pose data while suppressing.
- this modification can also be applied to the pose data generation device 100A of the first modification.
- the data D_set output from the disassembly part setting unit 6 is also input to the second data decomposition unit 34, and the second data The decomposing unit 34 decomposes the parts of the precise pose data Do_kp based on the data D_set, and obtains the decomposed data (keypoint data) as the data Do_kp_L and Do_kp_H.
- the decomposition site setting unit 6 determines the site to be processed by the rough prediction process and the site to be processed by the fine prediction process. may be specified (set).
- the pose data generation device acquires feature amount extraction image data from the data Din (frame image data) by means of the feature amount extraction unit PP1, and extracts the acquired feature amount extraction image data.
- the feature quantity extraction unit PP1 may be omitted, and the data Din (frame image data) may be input to the 2D pose estimation unit 1 and the heat map acquisition unit 2 .
- the 2D pose estimation unit 1 and the heat map acquisition unit 2 may perform processing for acquiring feature amount extraction image data, and execute 2D pose estimation processing and heat map acquisition processing.
- the coarse prediction processing unit 312 performs processing using a Kalman filter as the coarse prediction processing
- the fine prediction processing unit 313 performs the fine prediction processing
- the coarse prediction processing unit 312 may execute processing using linear interpolation processing or spline interpolation processing as coarse prediction processing.
- the precise prediction processing unit 313 may execute processing using an unscented Kalman filter or a particle filter as the precise prediction processing. Further, the precise prediction process may be performed using a time series filter other than the above that can handle nonlinear system models.
- the point (pixel) at which the probability density in the posterior probability distribution obtained by the coarse prediction process is maximum in the coarse prediction reliability map (estimated (predicted) by the coarse prediction process) A case has been described in which only the key point obtained by the calculation is set to a predetermined value (for example, "0.2" (the predetermined value may be a value other than "0.2")).
- each point (each pixel) (for example, pixels around the keypoint estimated (predicted) by the coarse prediction process) according to the probability density in the posterior probability distribution obtained by the coarse prediction process ) is a predetermined value (e.g., a value corresponding to the probability density in the posterior probability distribution obtained by the coarse prediction process of each point (each pixel), with “0.2” as the maximum value (e.g., proportional value)) You may make it so.
- a predetermined value e.g., a value corresponding to the probability density in the posterior probability distribution obtained by the coarse prediction process of each point (each pixel), with “0.2” as the maximum value (e.g., proportional value)
- the point (pixel) at which the probability density in the posterior probability distribution obtained by the precise prediction process is the maximum in the precision prediction reliability map (estimated by the precise prediction process (prediction)
- a predetermined value for example, "0.2"
- each point (each pixel) according to the probability density in the posterior probability distribution obtained by the precision prediction process (for example, the pixels around the keypoint estimated (predicted) by the precision prediction process ) to a predetermined value (e.g., a value corresponding to the probability density in the posterior probability distribution obtained by precise prediction processing of each point (each pixel), with “0.2” as the maximum value (e.g., proportional value))
- a predetermined value e.g., a value corresponding to the probability density in the posterior probability distribution obtained by precise prediction processing of each point (each pixel)
- the method (classification method) of separating the parts to be processed by the rough prediction process and the parts to be processed by the fine prediction process (classification method) (including examples), but by other methods (other conditions), the parts to be processed by rough prediction processing and the parts to be processed by fine prediction processing are decomposed (classified) You may make it
- a part to be processed by rough prediction processing it may be possible to decompose (classify) a part to be processed by rough prediction processing and a part to be processed by fine prediction processing.
- Movement speed and acceleration of a part change in speed and change in acceleration within a predetermined period of time.
- Randomness of movement of parts (2) Randomness of movement of parts.
- Linearity and non-linearity of movement of parts (4) Periods and/or stages during which certain conditions are not changed by an application running with the pose data generator.
- the keypoint setting method in the above embodiment is an example, and other keypoint setting methods may be adopted. Also, the number and positions of keypoints are not limited to those in the above embodiment, and other keypoint setting methods employing other numbers and positions of keypoints may be used.
- the subject is a person has been described, but the subject is not limited to this, and the subject is a person who can move and whose posture is variable. , organisms, objects, and the like.
- each block (each functional unit) of the pose data generation device described in the above embodiments may be individually integrated into one chip by a semiconductor device such as LSI, or may be partially or wholly It may be made into one chip so as to include.
- each block (each functional unit) of the pose data generation system, the CG data system, and the pose data generation device described in the above embodiments may be realized by a plurality of semiconductor devices such as LSIs.
- LSI Although LSI is used here, it may also be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
- the method of circuit integration is not limited to LSI, and may be realized with a dedicated circuit or a general-purpose processor.
- An FPGA Field Programmable Gate Array
- a reconfigurable processor that can reconfigure the connections and settings of the circuit cells inside the LSI may be used.
- part or all of the processing of each functional block in each of the above embodiments may be implemented by a program. Part or all of the processing of each functional block in each of the above embodiments is performed by a central processing unit (CPU) in a computer.
- a program for performing each process is stored in a storage device such as a hard disk or ROM, and is read from the ROM or RAM and executed.
- each process of the above embodiment may be implemented by hardware, or may be implemented by software (including cases where it is implemented together with an OS (operating system), middleware, or a predetermined library). Furthermore, it may be realized by mixed processing of software and hardware.
- the hardware configuration shown in FIG. configuration may be used to realize each functional unit by software processing.
- execution order of the processing methods in the above embodiments is not necessarily limited to the description of the above embodiments, and the execution order can be changed without departing from the gist of the invention.
- a computer program that causes a computer to execute the above-described method and a computer-readable recording medium that records the program are included in the scope of the present invention.
- Examples of computer-readable recording media include flexible disks, hard disks, CD-ROMs, MOs, DVDs, DVD-ROMs, DVD-RAMs, large-capacity DVDs, next-generation DVDs, and semiconductor memories. .
- the computer program is not limited to being recorded on the recording medium, and may be transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, or the like.
- the term "department” may be a concept that includes “circuitry”.
- a circulatory may be implemented in whole or in part by hardware, software, or a mixture of hardware and software.
- a processor is referred to as processing circuitry or circuitry when it includes transistors and other circuitry therein.
- a circuit arrangement, unit or means is hardware that performs or is programmed to perform the recited function.
- the hardware may be any hardware disclosed herein or otherwise known that is programmed or configured to perform the functions recited.
- the circuitry, means or unit is a combination of hardware and software, the software used to configure the hardware and/or the processor. be.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
低コストで実現でき、かつ、高精度なポーズデータを取得するポーズデータ生成装置を実現する。ポーズデータ生成装置(100)では、被写体の部位ごとに、ヒートマップ取得部により取得されたヒートマップに基づく第1信頼度と、信頼度取得部により取得された第2信頼度とを合成することで行うことで、より精度の高い信頼度である合成信頼度を部位ごとに取得することができる。そして、このポーズデータ生成装置(100)の精密2次元ポーズデータ取得部では、合成信頼度に基づいて、精密ポーズデータを取得するので、精度の高い2次元ポーズデータを取得することができる。そして、ポーズデータ生成装置(100)では、上記のように取得した精密2次元ポーズデータに対して、2D-3D変換を行うことで、高精度な3次元ポーズデータを取得することができる。
Description
本発明は、移動可能であり、かつ、その姿勢が可変である、人、生物、物体等のポーズを推定する技術に関する。
近年、現実の人や物体の動きを記録する技術であるモーションキャプチャーが注目されており、高精度なモーションキャプチャーを実現するために、人のポーズを高精度に推定する技術が求められている。
例えば、非特許文献1には、2次元の映像から2次元のキーポイントデータ(2次元映像に映っている人の2次元のキーポイントデータ)を取得し、取得した2次元キーポイントデータから3次元のポーズデータ(人のポーズデータ)を取得(推定)する技術の開示がある。しかしながら、非特許文献1の技術では、2次元の映像上(2次元画像上)で、例えば、人の所定の部位が他の部位に隠れて見えなくなった状態(オクルージョンが発生している状態)が発生すると、上記処理により取得される3次元のポーズデータ(人のポーズデータ)が正しいものではなくなってしまうことがある。つまり、このような場合、非特許文献1の技術では、オクルージョンが発生している部位について、キーポイントを検出できない、あるいは、キーポイントを誤検出してしまうという問題がある。
これに対処するために、例えば、非特許文献2には、シリンダー・マン・モデル(Cylinder Man Model)を用いて、隠れたキーポイント(オクルージョンが発生している部位のキーポイント)を含めた学習データを作成し、半教師あり学習を行い、取得した学習済みモデルを用いて、2次元の映像から3次元のポーズデータ(人のポーズデータ)を取得(推定)する技術の開示がある。
Dario Pavllo, Christoph Feichtenhofer, David Grangier, Michael Auli, "3D human pose estimation in video with temporal convolutions and semi-supervised training" Conference on Computer Vision and Pattern Recognition (CVPR), 2019, pp. 7753-7762.
Yu Cheng, Bo Yang, Bo Wang, Wending Yan, and Robby T. Tan, "Occlusion-Aware Networks for 3D Human Pose Estimation in Video" Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2019, pp. 723-732.
しかしながら、上記従来の技術では、2次元の映像から3次元のポーズデータ(人のポーズデータ)を取得(推定)するために、非常に複雑な処理を実行する必要がある。具体的には、上記非特許文献1の技術では、2次元の映像から2次元のキーポイントデータ(2次元映像に映っている人の2次元のキーポイントデータ)を取得することを時系列に連続的に行い、時系列に連続的に取得した2次元のキーポイントデータを入力として、CNN(Convolutional Neural Network)による処理を行う必要がある。そして、このCNNによる処理において、時系列データの一定期間のデータを常に入力する必要があり、演算量が多くなり、高速処理を実行できる高精度なハードウェアを用いなければ、2次元の映像を入力してから、3次元のポーズデータ(人のポーズデータ)を取得(推定)するまでの処理時間(遅延時間)を少なくすることが困難である。
また、上記非特許文献2の技術においても、2次元の映像から2次元のキーポイントデータ(2次元映像に映っている人の2次元のキーポイントデータ)を取得することを時系列に連続的に行い、時系列に連続的に取得した2次元のキーポイントデータを入力として、2次元ポーズデータを取得するための時系列のコンボリューション処理(例えば、CNNによる処理)を行い、さらに、3次元ポーズデータを取得するための時系列のコンボリューション処理(例えば、CNNによる処理)を行う必要がある。また、非特許文献2の技術では、2次元映像上において、人の所定の部位が他の部位に隠れた状態(オクルージョンが発生している状態)を含む場合であっても、適切なキーポイントデータを取得(推定)するために、シリンダー・マン・モデル(Cylinder Man Model)を用いて、人のポーズを規制する条件を課して、学習データを作成し、学習処理を行い、学習済みモデルを取得する必要がある。そして、非特許文献2の技術では、上記学習処理により取得した学習済みモデルを用いて、2次元の映像から3次元のポーズデータ(人のポーズデータ)を取得(推定)する。つまり、非特許文献2の技術では、上記の通り、複雑な学習処理により取得された複雑な学習済みモデルを用いて処理を行うため、2次元の映像を入力してから、3次元のポーズデータ(人のポーズデータ)を取得(推定)するための演算量が多く、また、処理時間(遅延時間)も長くなる。そのため、非特許文献2の技術を用いる場合においても、高速処理を実行できる高精度なハードウェアを用いることが必要となる。
このように、上記従来技術(非特許文献1、2の技術)では、学習済みモデルを取得するために、複雑な学習モデルを用いて学習処理を実行する必要があり、学習済みモデルを構築のための負荷が大きい。さらに、上記従来技術(非特許文献1、2の技術)では、予測処理(3次元のポーズデータを推定する処理)において、複雑な構成の学習済みモデルを用いて処理を行うため、例えば、ハードウェアで実現する場合、当該ハードウェアの規模が大きくなり、その結果、上記従来技術(非特許文献1、2の技術)を実現するためのコストも高くなる。
そこで、本発明は、上記課題に鑑み、低コストで実現でき、かつ、高精度なポーズデータを取得するポーズデータ生成装置、ポーズデータ生成方法、および、プログラムを実現することを目的とする。
上記課題を解決するために、第1の発明は、2Dポーズ推定部と、ヒートマップ取得部と、予測データ取得部と、信頼度取得部と、精密ポーズデータ取得部と、を備えるポーズデータ生成装置である。
2Dポーズ推定部は、3次元空間内の被写体を撮像することで取得される画像データまたは画像データから特徴量を抽出したデータである特徴量抽出データから、被写体の所定の部位の位置を示すデータであるキーポイントデータを取得することで、被写体の2次元ポーズデータを取得する。
ヒートマップ取得部は、画像データまたは特徴量抽出データにより形成される2次元画像上の所定の画像領域が、被写体の所定の部位に相当する画像領域であることの確からしさを示す値である第1信頼度を取得することで、被写体の部位ごとのヒートマップを取得する。
予測データ取得部は、2Dポーズ推定部により取得された2次元ポーズデータに含まれるキーポイントデータを用いて予測処理を実行することで、予測キーポイントデータを取得し、取得した予測キーポイントデータを含むデータを予測2次元ポーズデータとして取得する。
信頼度取得部は、被写体の部位ごとに、ヒートマップにより特定される第1信頼度と、予測2次元ポーズデータに含まれるキーポイントデータの信頼度である第2信頼度とを取得するとともに、第1信頼度と第2信頼度とを合成する処理を行うことで合成信頼度を取得する。
精密ポーズデータ取得部は、合成信頼度に基づいて、前記被写体の各部位の位置を決定することで、精密2次元ポーズデータを取得する。
このポーズデータ生成装置では、被写体の部位ごとに、ヒートマップ取得部により取得されたヒートマップに基づく第1信頼度と、信頼度取得部により取得された第2信頼度とを合成(例えば、加算)することで行うことで、より精度の高い信頼度である合成信頼度を部位ごとに取得することができる。そして、このポーズデータ生成装置の精密2次元ポーズデータ取得部では、合成信頼度に基づいて、精密ポーズデータを取得するので、精度の高いポーズデータ(精密2次元ポーズデータ)を取得することができる。そして、このポーズデータ生成装置で、上記のように取得した精密2次元ポーズデータに対して、2D-3D変換を行うことで、高精度な3次元ポーズデータを取得することができる。
したがって、このポーズデータ生成装置では、従来技術のような複雑な処理(例えば、時系列のコンボリューション処理(CNNにより処理)等)を行う必要がないので、低コストで実現でき、かつ、高精度なポーズデータを取得することができる。
第2の発明は、第1の発明であって、予測データ取得部は、被写体の部位ごとに、精密ポーズデータ取得部によって現時刻よりも前に取得された精密2次元ポーズデータを用いて、予測処理を行う。
これにより、このポーズデータ生成装置では、より精度の高い精密2次元ポーズデータを過去のデータとして用いて、予測処理を行うことができる。その結果、より精度の高い予測処理を行うことができる。
第3の発明は、第1または第2の発明であって、
予測データ取得部は、
2次元ポーズデータに含まれるキーポイントデータを、第1グループおよび第2グループに分類し、
(1)第1グループに分類されたキーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント粗予測データを取得し、
(2)第2グループに分類されたキーポイントデータについては、第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント精密予測データを取得する。
予測データ取得部は、
2次元ポーズデータに含まれるキーポイントデータを、第1グループおよび第2グループに分類し、
(1)第1グループに分類されたキーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント粗予測データを取得し、
(2)第2グループに分類されたキーポイントデータについては、第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント精密予測データを取得する。
信頼度取得部は、
(1)第1グループに分類されたキーポイントデータに対応する部位については、キーポイント粗予測データに基づいて取得した信頼度を、第2信頼度とし、
(2)第2グループに分類されたキーポイントデータに対応する部位については、キーポイント精密予測データに基づいて取得した信頼度を、第2信頼度として、
第1信頼度と第2信頼度とを合成する処理を行うことで合成信頼度を取得する。
(1)第1グループに分類されたキーポイントデータに対応する部位については、キーポイント粗予測データに基づいて取得した信頼度を、第2信頼度とし、
(2)第2グループに分類されたキーポイントデータに対応する部位については、キーポイント精密予測データに基づいて取得した信頼度を、第2信頼度として、
第1信頼度と第2信頼度とを合成する処理を行うことで合成信頼度を取得する。
このポーズデータ生成装置では、2次元ポーズデータに対して予測処理を行うときに、部位を第1グループおよび第2グループに分類し、分類したグループに応じて、予測精度の異なる予測処理を行う。つまり、このポーズデータ生成装置では、粗予測処理の対象としたい部位を第1グループに分類し、精密予測処理の対象としたい部位を第2グループとすることで、部位ごとに異なる予測処理を実行することができる。
第4の発明は、第3の発明であって、第1グループおよび第2グループの分類方法は、所定の条件により、決定されるものであり、所定の条件は、
(1)部位の動く速度、加速度、所定の時間内における速度の変化、加速度の変化、
(2)部位の動きのランダム性、
(3)部位の動きの線形性、非線形性、および、
(4)ポーズデータ生成装置とともに実行されるアプリケーションにより一定の条件が変化しない期間および/またはステージ、
の少なくとも1つに基づくものである。
(1)部位の動く速度、加速度、所定の時間内における速度の変化、加速度の変化、
(2)部位の動きのランダム性、
(3)部位の動きの線形性、非線形性、および、
(4)ポーズデータ生成装置とともに実行されるアプリケーションにより一定の条件が変化しない期間および/またはステージ、
の少なくとも1つに基づくものである。
これにより、上記条件に基づいて、部位を、第1グループおよび第2グループに分類することができ、粗予測処理の対象とする部位と、精密予測処理の対象とする部位とを適切に設定(分類)することができる。
第5の発明は、第1または第2の発明であって、予測データ取得部は、
2次元ポーズデータに含まれるキーポイントデータを、可動範囲が広い部位のキーポイントのデータである広可動キーポイントデータと、可動範囲が狭い部位のキーポイントのデータである狭可動キーポイントデータとに分解し、
(1)狭可動キーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、狭可動キーポイントデータの予測データである狭可動キーポイント予測データを取得し、
(2)広可動キーポイントデータについては、第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、広可動キーポイントデータの予測データである広可動キーポイント予測データを取得し、
狭可動キーポイント予測データと広可動キーポイント予測データとを含むデータを予測2次元ポーズデータとして取得する。
2次元ポーズデータに含まれるキーポイントデータを、可動範囲が広い部位のキーポイントのデータである広可動キーポイントデータと、可動範囲が狭い部位のキーポイントのデータである狭可動キーポイントデータとに分解し、
(1)狭可動キーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、狭可動キーポイントデータの予測データである狭可動キーポイント予測データを取得し、
(2)広可動キーポイントデータについては、第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、広可動キーポイントデータの予測データである広可動キーポイント予測データを取得し、
狭可動キーポイント予測データと広可動キーポイント予測データとを含むデータを予測2次元ポーズデータとして取得する。
このポーズデータ生成装置では、2次元ポーズデータに対して予測処理を行うときに、部位の特徴に応じて、予測精度の異なる予測処理を行う。つまり、このポーズデータ生成装置では、可動範囲が広い部位のキーポイントデータ(広可動キーポイントデータ)には、高精度の予測処理を行い、可動範囲が狭い部位のキーポイントデータ(狭可動キーポイントデータ)には、精密予測処理ほど精度は高くないが演算量が少なくて済む予測処理(粗予測処理)を行う。
つまり、このポーズデータ生成装置では、予測が難しい広可動キーポイントについては、精度の高い予測処理(精密予測処理)を行い、予測がそれほど難しくない狭可動キーポイントについては、演算量が少なくて済む予測処理(粗予測処理)を行うので、予測データ(予測2次元ポーズデータ)を取得するために必要なトータルの演算量を抑えつつ、高精度な予測データを取得することができる。
なお、「予測精度」は、例えば、同一の処理対象に対して予測処理を行ったときに、予測データと実際の観測データとの差異に基づいて、決定(規定)される。
第6の発明は、第3から第5のいずれかの発明であって、予測データ取得部は、
(1)第1精度を有する時系列フィルタを用いて粗予測処理を実行し、
(2)第1精度よりも高い第2精度を有する時系列フィルタを用いて精密予測処理を実行する。
(1)第1精度を有する時系列フィルタを用いて粗予測処理を実行し、
(2)第1精度よりも高い第2精度を有する時系列フィルタを用いて精密予測処理を実行する。
これにより、このポーズデータ生成装置では、予測精度の異なる時系列フィルタを用いて、粗予測処理および精密予測処理を実行することができる。
第7の発明は、第6の発明であって、第1精度を有する時系列フィルタは、状態空間モデルが線形作用素により表現されるシステムモデル(線形システムモデル)を処理対象とする時系列フィルタであり、第2精度を有する時系列フィルタは、状態空間モデルが非線形作用素により表現されるシステムモデル(非線形システムモデル)を処理対象とする時系列フィルタである。
これにより、このポーズデータ生成装置では、線形システムモデルを処理対象とする時系列を用いて粗予測処理を実行するとともに、非線形システムモデルを処理対象とする時系列を用いて精密予測処理を実行することができる。
第8の発明は、第6の発明であって、第1精度を有する時系列フィルタは、カルマンフィルタであり、第2精度を有する時系列フィルタは、拡張カルマンフィルタ、無香料カルマンフィルタ(Unscented Kalman Filter)、およびパーティクルフィルタの中のいずれか1つである。
これにより、このポーズデータ生成装置では、カルマンフィルタを用いて粗予測処理を実行するとともに、拡張カルマンフィルタ、無香料カルマンフィルタ、およびパーティクルフィルタの中のいずれか1つを用いて精密予測処理を実行することができる。
第9の発明は、第1から第8までのいずれかの発明であって、精密2次元ポーズデータに対して2次元―3次元変換処理を行うことで、精密2次元ポーズデータに対応する3次元のポーズデータである精密3次元ポーズデータを取得する2D-3D変換部をさらに備える。
これにより、このポーズデータ生成装置では、精密2次元ポーズデータに対応する3次元のポーズデータである精密3次元ポーズデータを取得することができる。
第10の発明は、2Dポーズ推定ステップと、ヒートマップ取得ステップと、予測データ取得ステップと、信頼度取得ステップと、精密ポーズデータ取得ステップと、を備えるポーズデータ生成方法である。
2Dポーズ推定ステップは、3次元空間内の被写体を撮像することで取得される画像データまたは画像データから特徴量を抽出したデータである特徴量抽出データから、被写体の所定の部位の位置を示すデータであるキーポイントデータを取得することで、被写体の2次元ポーズデータを取得する。
ヒートマップ取得ステップは、画像データまたは特徴量抽出データにより形成される2次元画像上の所定の画像領域が、被写体の所定の部位に相当する画像領域であることの確からしさを示す値である第1信頼度を取得することで、被写体の部位ごとのヒートマップを取得する。
予測データ取得ステップは、2Dポーズ推定ステップにより取得された2次元ポーズデータに含まれるキーポイントデータを用いて予測処理を実行することで、予測キーポイントデータを取得し、取得した予測キーポイントデータを含むデータを予測2次元ポーズデータとして取得する。
信頼度取得ステップは、被写体の部位ごとに、ヒートマップにより特定される第1信頼度と、予測2次元ポーズデータに含まれるキーポイントデータの信頼度である第2信頼度とを取得するとともに、第1信頼度と第2信頼度とを合成する処理を行うことで合成信頼度を取得する。
精密ポーズデータ取得ステップは、合成信頼度に基づいて、被写体の各部位の位置を決定することで、精密2次元ポーズデータを取得する。
これにより、第1の発明と同様の効果を奏するポーズデータ生成方法を実現することができる。
第11の発明は、第10の発明であるポーズデータ生成方法をコンピュータに実行させるためのプログラムである。
これにより、第1の発明と同様の効果を奏するポーズデータ生成方法をコンピュータに実行させるためのプログラムを実現することができる。
本発明によれば、低コストで実現でき、かつ、高精度なポーズデータを取得するポーズデータ生成装置、ポーズデータ生成方法、および、プログラムを実現することができる。
[第1実施形態]
第1実施形態について、図面を参照しながら、以下、説明する。
第1実施形態について、図面を参照しながら、以下、説明する。
<1.1:ポーズデータ生成装置の構成>
図1は、第1実施形態に係るポーズデータ生成装置100の概略構成図である。
図1は、第1実施形態に係るポーズデータ生成装置100の概略構成図である。
図2は、第1実施形態に係るポーズデータ生成装置100の精密データ取得部3の概略構成図である。
ポーズデータ生成装置100は、図1に示すように、特徴量抽出部PP1と、2Dポーズ推定部1と、ヒートマップ取得部2と、精密データ取得部3と、2D-3D変換部4と、ポスト処理部5とを備える。
特徴量抽出部PP1は、例えば、動画撮影が可能な撮像装置(不図示)により、被写体人物を撮影することで取得される、時系列に連続したフレーム画像(2次元画像)(動画像を構成できる時系列に連続したフレーム画像)をデータDinとして入力する。そして、特徴量抽出部PP1は、データDinに対して、特徴量抽出処理(例えば、クラス分類を行いつつ、物体検出を行う処理)を実行することで、例えば、被写体人物(物体検出の対象)に相当する画像領域を抽出する。特徴量抽出部PP1は、特徴量抽出処理により取得した、物体検出の対象の画像領域についてのデータ(物体検出の対象が含まれる画像領域を含む画像データ、抽出した画像領域の座標、サイズについてのデータ等)、および、物体検出した対象のクラス分類に関するデータ(物体検出のクラス(例えば、人))等を含むデータを、特徴量抽出データD0として、2Dポーズ推定部1およびヒートマップ取得部2に出力する。
2Dポーズ推定部1は、特徴量抽出部PP1から出力される特徴量抽出データD0を入力する。2Dポーズ推定部1は、特徴量抽出データD0に対して、2次元ポーズ推定処理を実行し、2次元キーポイントデータ(例えば、被写体人物の2次元キーポイントデータ)を取得する。そして、2Dポーズ推定部1は、取得した2次元キーポイントデータを含むデータを、データDi_kpとして、精密データ取得部3に出力する。
ヒートマップ取得部2は、特徴量抽出部PP1から出力される特徴量抽出データD0を入力する。ヒートマップ取得部2は、特徴量抽出データD0に対して、ヒートマップ取得処理を実行し、ヒートマップデータを取得する。そして、ヒートマップ取得部2は、取得したヒートマップデータを含むデータを、データD_heatmapとして、精密データ取得部3に出力する。
精密データ取得部3は、図2に示すように、予測データ取得部31と、信頼度取得部32と、精密ポーズデータ取得部33とを備える。
予測データ取得部31は、図2に示すように、データ分解部311と、第1メモリM1と、第2メモリM2と、粗予測処理部312と、精密予測処理部313と、を備える。
データ分解部311は、2Dポーズ推定部1から出力されるデータDi_kpを入力し、当該データDi_kpに対して分解処理(キーポイントデータを人の部位ごとに分解する処理)を実行し、粗予測処理の対象とするデータD1_kp_Lと、精密予測処理の対象とするデータD1_kp_Hとを取得する。そして、データ分解部311は、取得したデータD1_kp_Lを粗予測処理部312および第1メモリM1に出力し、取得したデータD1_kp_Hを精密予測処理部313および第2メモリM2に出力する。
第1メモリM1は、データ分解部311から出力されるデータD1_kp_Lと、粗予測処理部312から出力されるデータD2_kp_Lとを入力し、データD1_kp_LとデータD2_kp_Lとを記憶保持する記憶部である。第1メモリM1に記憶保持されているデータは、粗予測処理部312からの読み出し命令により、読み出すことが可能である。
第2メモリM2は、データ分解部311から出力されるデータD1_kp_Hと、精密予測処理部313から出力されるデータD2_kp_Hとを入力し、データD1_kp_HとデータD2_kp_Hとを記憶保持する記憶部である。第2メモリM2に記憶保持されているデータは、精密予測処理部313からの読み出し命令により、読み出すことが可能である。
粗予測処理部312は、データ分解部311から出力されるデータD1_kp_Lを入力する。また、粗予測処理部312は、現時刻よりも前の時刻に取得され、第1メモリM1に記憶されているデータD1_kp_LをデータD1_kp_L_pastとして、第1メモリM1から読み出す。粗予測処理部312は、データD1_kp_LおよびデータD1_kp_L_pastを用いて、粗予測処理を実行することで、粗予測処理データD2_kp_Lを取得する。そして、粗予測処理部312は、取得した粗予測処理データD2_kp_Lを、信頼度取得部32の粗予測信頼度取得部321および第1メモリM1に出力する。
精密予測処理部313は、データ分解部311から出力されるデータD1_kp_Hを入力する。また、精密予測処理部313は、現時刻よりも前の時刻に取得され、第2メモリM2に記憶されているデータD2_kp_HをデータD1_kp_H_pastとして、第2メモリM2から読み出す。精密予測処理部313は、データD1_kp_HおよびデータD1_kp_H_pastを用いて、精密予測処理を実行することで、精密予測処理データD2_kp_Hを取得する。そして、精密予測処理部313は、取得した精密予測処理データD2_kp_Hを、信頼度取得部32の精密予測信頼度取得部322および第2メモリM2に出力する。
信頼度取得部32は、図2に示すように、粗予測信頼度取得部321と、精密予測信頼度取得部322と、信頼度合成部323と、を備える。
粗予測信頼度取得部321は、粗予測処理部312から出力される粗予測処理データD2_kp_Lを入力する。粗予測信頼度取得部321は、粗予測処理データD2_kp_Lに対して、粗予測信頼度取得処理を実行することで、粗予測信頼度を取得し、取得した粗予測信頼度を含むデータをデータD3_conf_Lとして、信頼度合成部323に出力する。
精密予測信頼度取得部322は、精密予測処理部313から出力される精密予測処理データD2_kp_Hを入力する。精密予測信頼度取得部322は、精密予測処理データD2_kp_Hに対して、精密予測信頼度取得処理を実行することで、精密予測信頼度を取得し、取得した精密予測信頼度を含むデータをデータD3_conf_Hとして、信頼度合成部323に出力する。
信頼度合成部323は、粗予測信頼度取得部321から出力されるデータD3_conf_Lと、精密予測信頼度取得部322から出力されるデータD3_conf_Hと、ヒートマップ取得部2から出力されるデータD_heatmapとを入力する。信頼度合成部323は、データD3_conf_L、データD3_conf_H、および、データD_heatmapに対して、信頼度合成処理を実行することで、合成信頼度を取得し、取得した合成信頼度を含むデータをデータD4_confとして精密ポーズデータ取得部33に出力する。
精密ポーズデータ取得部33は、2Dポーズ推定部1から出力されるデータDi_kpと、信頼度合成部323から出力されるデータD4_confと、を入力する。精密ポーズデータ取得部33は、データDi_kp、および、データD4_conf(信頼度データD4_conf)を用いて、精密ポーズデータ取得処理(詳細については後述)を実行することで、当該処理後のデータをデータDo_kpとして取得する。そして、精密ポーズデータ取得部33は、取得したデータDo_kpを2D-3D変換部4に出力する。
2D-3D変換部4は、精密データ取得部3から出力されるデータDo_kp(2次元のキーポイントのデータ)を入力する。2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)に対して、2D-3D変換処理を実行し、データDo_kp(2次元のキーポイントのデータ)に対応する3次元データ(3次元のキーポイントのデータ)をデータDo_3D_kpとして取得する。そして、2D-3D変換部4は、取得したデータDo_3D_kpをポスト処理部5に出力する。
ポスト処理部5は、2D-3D変換部4から出力されるデータDo_3D_kpを入力し、当該データDo_3D_kpに対してポスト処理を実行し、当該処理後のデータをデータDoutとして取得する。
<1.2:ポーズデータ生成装置の動作>
以上のように構成されたポーズデータ生成装置100の動作について、以下、説明する。
以上のように構成されたポーズデータ生成装置100の動作について、以下、説明する。
図3Aは、撮像装置Cam1により、被写体人物Sub1を撮影することで取得される、時系列に連続したフレーム画像(2次元画像)(動画像を構成できる時系列に連続したフレーム画像)をデータDinとして、ポーズデータ生成装置に入力するシステム(一例)(上図)と、時間ステップt1(時刻t1)におけるフレーム画像Img0(t1)(一例)(下図)とを示す図である。なお、図3Aにおいて、画像Img1(t1)(画像領域Img1(t1))は、特徴量抽出部PP1により、物体検出対象を「人」として、抽出した画像(画像領域)である。
図3Bは、撮像装置Cam1により、被写体人物Sub1を撮影することで取得される時系列に連続したフレーム画像(2次元画像)(動画像を構成できる時系列に連続したフレーム画像)をデータDinとして、ポーズデータ生成装置100の特徴量抽出部PP1に入力するシステム(一例)(上図)と、時系列に連続したフレーム画像から特徴量抽出部PP1により抽出された特徴量抽出画像Img1(t1)、Img1(t2)、Img1(t3)、・・・(一例)(下図)とを示す図である。なお、時間ステップtk(k:整数)における特徴量抽出画像をImg1(tk)と表記する。
図4は、キーポイントデータを説明するための図である。
図5は、フレーム画像Img1(t1)と、フレーム画像Img1(t1)から取得した、(1)ヒートマップHeatmap(kp14)(左肩のヒートマップ)、(2)ヒートマップHeatmap(kp15)(左肘のヒートマップ)、および(3)ヒートマップHeatmap(kp16)(左手のヒートマップ)とを示す図である。
図6~図11は、信頼度取得処理を説明するための図である(時間ステップt1)。
図12は、精密ポーズデータ取得部33により取得した各キーポイントのデータDo_kp.kpjをまとめたデータDo_kpの一例を示す図である(時間ステップt1)。
図13は、精密ポーズデータ取得部33により取得した各キーポイントのデータDo_kp.kpjをまとめたデータDo_kpの一例を示す図である(時間ステップt2)。
図14~図16は、信頼度取得処理を説明するための図である(時間ステップt3)。
図17は、精密ポーズデータ取得部33により取得した各キーポイントのデータDo_kp.kpjをまとめたデータDo_kpの一例を示す図である(時間ステップt3)。
以下では、説明便宜のために、被写体人物Sub1が所定の動作を行い、図3Bの下図に示す特徴量抽出画像が特徴量抽出部PP1により取得され、ポーズデータ生成装置100でポーズデータ生成処理が実行される場合(一例)について、説明する。また、説明便宜のため、被写体人物Sub1の所定の動作を、図3Bの下図に示すように、被写体人物Sub1の左手がDir1で示す方向に動き、時間ステップt3で、被写体人物Sub1の左手が被写体人物Sub1の体の後ろに隠れる状態(左腕、左手がオクルージョン状態)となる動作(一例)として、以下説明する。
以下では、時間ステップt1、t2、および、t3での処理に分けて、ポーズデータ生成装置100の動作を説明する。
≪時間ステップt1の処理≫
時間ステップt1において、撮像装置Cam1により、被写体人物Sub1を含む3次元空間(撮像空間)を撮像することで、フレーム画像データImg0(t1)を取得する。なお、時間ステップtに取得されたフレーム画像データをImg0(t)と表記する。フレーム画像データImg0(t1)により形成される画像(フレーム画像)は、図3Aの下図に示す画像Img0(t1)であるものとする。また、「時間ステップ」とは、ポーズデータ生成装置100において、入力から出力までの一連の処理を実行するための基準時間であり、例えば、1つの単位データ(例えば、1フレーム画像)が入力されてから、1つの処理結果の単位データ(例えば、入力された1フレーム画像から取得された3次元ポーズデータ)が出力される時間を基準とした時間である。
時間ステップt1において、撮像装置Cam1により、被写体人物Sub1を含む3次元空間(撮像空間)を撮像することで、フレーム画像データImg0(t1)を取得する。なお、時間ステップtに取得されたフレーム画像データをImg0(t)と表記する。フレーム画像データImg0(t1)により形成される画像(フレーム画像)は、図3Aの下図に示す画像Img0(t1)であるものとする。また、「時間ステップ」とは、ポーズデータ生成装置100において、入力から出力までの一連の処理を実行するための基準時間であり、例えば、1つの単位データ(例えば、1フレーム画像)が入力されてから、1つの処理結果の単位データ(例えば、入力された1フレーム画像から取得された3次元ポーズデータ)が出力される時間を基準とした時間である。
ポーズデータ生成装置100の2Dポーズ推定部1は、撮像装置Cam1から出力されるフレーム画像データImg0(t1)をデータDinとして入力し、当該フレーム画像データImg0(t1)を用いて、2次元ポーズデータを推定(取得)する処理を実行する。具体的には、以下の処理が実行される。
特徴量抽出部PP1は、データDin(フレーム画像データImg0(t1))に対して、特徴量抽出処理(例えば、クラス分類を行いつつ、物体検出を行う処理)を実行することで、被写体人物(物体検出の対象)に相当する画像領域(画像Img1(t1))を抽出する。具体的には、特徴量抽出部PP1は、クラス分類を行いつつ、物体検出ができる技術(例えば、SSD(Single Shot Detection)やYOLO(You Only Look Once))を用いて、フレーム画像データImg0(t1)に対して、特徴量抽出処理を実行し、被写体人物(物体検出の対象)に相当する画像領域(画像Img1(t1))を抽出する。なお、本実施形態では、特徴量抽出処理において、物体検出対象を「人」に設定しているものとする。
そして、特徴量抽出部PP1は、特徴量抽出処理により取得した、物体検出の対象の画像領域(画像Img1(t1))についてのデータ(物体検出の対象が含まれる画像領域を含む画像データ、抽出した画像領域の座標、サイズについてのデータ等)、および、物体検出した対象のクラス分類に関するデータ(物体検出のクラス(本実施形態では、「人」))等を含むデータを、特徴量抽出データD0として、2Dポーズ推定部1およびヒートマップ取得部2に出力する。なお、時間ステップtにおいて、特徴量抽出処理により抽出した画像領域のデータ(画像データ)を特徴量抽出画像データImg1(t)(または、特徴量抽出画像Img1(t))と表記する。
2Dポーズ推定部1は、特徴量抽出画像データImg1(t1)により形成されるフレーム画像(特徴量抽出画像Img1(t1))上において、被写体人物Sub1の所定の部位の上記フレーム画像上の位置(2次元画像上の位置)を特定(推定)する。なお、ここでは、「所定の部位」は、(1)人の頭部および脊椎に含まれる所定の位置(図4のキーポイントkp1~kp4に対応)、(2)人の左右の腕に含まれる所定の位置(図4のキーポイントkp5~kp7、kp14~kp16に対応)、(3)人の左右の脚部に含まれる所定の位置(図4のキーポイントkp8~kp10、kp11~kp13に対応)であるものとする。
2Dポーズ推定部は、特徴量抽出画像Img1(t1)に写っている被写体人物Sub1の各部位のフレーム画像上の座標位置を示すキーポイントkp1~kp16(16個の点kp1~kp16)を取得(推定)することで、2Dポーズ推定処理を実行する。
なお、2Dポーズ推定部1で実行される2Dポーズ推定処理は、以下の(A)または(B)のように処理されるものであってもよい。
(A)撮像装置Cam1により被写体人物Sub1を撮影している3次元空間(撮像空間)の情報、および、撮像装置Cam1の撮影パラメータの情報を取得できる場合、2Dポーズ推定部1は、当該撮像空間の情報と、撮像装置Cam1の撮影パラメータの情報Info_cam_prmとに基づいて、特徴量抽出画像Img1(t1)に写っている被写体人物Sub1の所定の部位の当該画像上の位置(2次元画像上の位置)を特定(推定)することで、2Dポーズ推定処理を実行する。なお、この場合、被写体を人としており(標準的な人間の大きさが既知であり)、3次元空間内の撮像装置Cam1の設置位置、カメラ光軸の向き、焦点距離、画角が既知であるので、撮像装置Cam1により取得されたフレーム画像から、被写体人物Sub1に相当する画像領域を特徴量抽出部PP1により抽出することができ、かつ、被写体人物Sub1の特定の部位のフレーム画像(特徴量抽出画像Img1(t1))上の位置を特定することができる。
(B)2Dポーズ推定部1は、時系列に連続するフレーム画像であって、被写体人物Sub1が写っている部分を特徴量抽出部PP1により抽出したフレーム画像(特徴量抽出画像Img1(t)(t=t1、t2(=t1+1)、t3(=t1+2)、・・・))を入力すると、2次元ポーズデータ(被写体人物Sub1の所定の各部位の2次元座標データ)を出力(推定)する機械学習済みモデル(例えば、ニューラルネットワークによる学習済みモデル)を備えており、2Dポーズ推定部1は、時系列に連続するフレーム画像であって、被写体人物Sub1が写っている部分を特徴量抽出部PP1により抽出したフレーム画像(特徴量抽出画像Img1(t))を、上記機械学習済みモデルに入力し、当該機械学習済みモデルによる処理を行うことで、2次元ポーズデータ(被写体人物Sub1の所定の各部位の2次元座標データ)を取得(推定)する。これにより、2Dポーズ推定部1は、2Dポーズ推定処理を実行する。
(A)撮像装置Cam1により被写体人物Sub1を撮影している3次元空間(撮像空間)の情報、および、撮像装置Cam1の撮影パラメータの情報を取得できる場合、2Dポーズ推定部1は、当該撮像空間の情報と、撮像装置Cam1の撮影パラメータの情報Info_cam_prmとに基づいて、特徴量抽出画像Img1(t1)に写っている被写体人物Sub1の所定の部位の当該画像上の位置(2次元画像上の位置)を特定(推定)することで、2Dポーズ推定処理を実行する。なお、この場合、被写体を人としており(標準的な人間の大きさが既知であり)、3次元空間内の撮像装置Cam1の設置位置、カメラ光軸の向き、焦点距離、画角が既知であるので、撮像装置Cam1により取得されたフレーム画像から、被写体人物Sub1に相当する画像領域を特徴量抽出部PP1により抽出することができ、かつ、被写体人物Sub1の特定の部位のフレーム画像(特徴量抽出画像Img1(t1))上の位置を特定することができる。
(B)2Dポーズ推定部1は、時系列に連続するフレーム画像であって、被写体人物Sub1が写っている部分を特徴量抽出部PP1により抽出したフレーム画像(特徴量抽出画像Img1(t)(t=t1、t2(=t1+1)、t3(=t1+2)、・・・))を入力すると、2次元ポーズデータ(被写体人物Sub1の所定の各部位の2次元座標データ)を出力(推定)する機械学習済みモデル(例えば、ニューラルネットワークによる学習済みモデル)を備えており、2Dポーズ推定部1は、時系列に連続するフレーム画像であって、被写体人物Sub1が写っている部分を特徴量抽出部PP1により抽出したフレーム画像(特徴量抽出画像Img1(t))を、上記機械学習済みモデルに入力し、当該機械学習済みモデルによる処理を行うことで、2次元ポーズデータ(被写体人物Sub1の所定の各部位の2次元座標データ)を取得(推定)する。これにより、2Dポーズ推定部1は、2Dポーズ推定処理を実行する。
なお、上記(B)により、2Dポーズ推定部1において、2Dポーズ推定処理を実行する場合、例えば、下記先行技術文献Aに開示されているPoseNetモデルを用いるようにしてもよい。
(先行技術文献A):
Pose Detection in the Browser: PoseNet Model
https://github.com/tensorflow/tfjs-models/tree/master/posenet
そして、2Dポーズ推定部1は、上記処理により取得した2次元キーポイントデータ(16個の点kp1~kp16の2次元座標データ)を含むデータを、データDi_kpとして、精密データ取得部3に出力する。
(先行技術文献A):
Pose Detection in the Browser: PoseNet Model
https://github.com/tensorflow/tfjs-models/tree/master/posenet
そして、2Dポーズ推定部1は、上記処理により取得した2次元キーポイントデータ(16個の点kp1~kp16の2次元座標データ)を含むデータを、データDi_kpとして、精密データ取得部3に出力する。
ポーズデータ生成装置100のヒートマップ取得部2は、特徴量抽出画像データImg1(t1)により形成されるフレーム画像(特徴量抽出画像Img1(t1))から、ヒートマップを取得する処理を実行する。具体的には、ヒートマップ取得部2は、特徴量抽出画像データImg1(t1)により形成されるフレーム画像の各画素において、当該画素が被写体人物Sub1の所定の部位である確からしさを示す値を取得する。なお、「所定の部位」は、(1)人の頭部および脊椎に含まれる所定の位置(図4のキーポイントkp1~kp4に対応)、(2)人の左右の腕に含まれる所定の位置(図4のキーポイントkp5~kp7、kp14~kp16に対応)、(3)人の左右の脚部に含まれる所定の位置(図4のキーポイントkp8~kp10、kp11~kp13に対応)であるものとする。
つまり、ヒートマップ取得部2は、キーポイントkp1~kp16のそれぞれに対応する部位ごとに、特徴量抽出画像Img1(t1)の各画素において、当該画素が被写体人物Sub1の所定の部位(対応するキーポイントに相当する部位)である確からしさを示す値を画素値とするヒートマップ(ヒートマップ画像)を取得する(キーポイントkp1~kp16のそれぞれについてのヒートマップ(合計16個のヒートマップ)を取得する)。なお、ヒートマップの画素数は、特徴量抽出画像Img1(t1)の画素数よりも少ないもの(一定の割合で画素を間引いたもの)であってもよい。
図5は、特徴量抽出画像Img1(t1)と、特徴量抽出画像Img1(t1)から取得した、(1)ヒートマップHeatmap(kp14)(左肩のヒートマップ)、(2)ヒートマップHeatmap(kp15)(左肘のヒートマップ)、および(3)ヒートマップHeatmap(kp16)(左手のヒートマップ)とを模式的に示す図である。なお、キーポイントkpxxについてのヒートマップをHeatmap(kpxx)と表記する。また、図5に示したヒートマップにおいて、(1)大きなサイズの黒丸で示した画素は、対応する部位である確からしさが高いことを意味し、(2)中サイズの黒丸で示した画素は、対応する部位である確からしさが中程度であることを意味し、(3)白い丸で示した画素は、対応する部位である確からしさが低いことを意味し、(4)無地の画素は、対応する部位である確からしさがゼロである(ない)ことを意味している。また、図5のヒートマップにおいて、被写体人物Sub1の各部位の位置が分かるように、特徴量抽出画像Img1(t1)に写っている被写体人物Sub1をグレーの点線で重畳して示している。
図5のヒートマップHeatmap(kp14)(左肩のヒートマップ)において、被写体人物Sub1の左肩部分において、大きなサイズの黒丸の画素が存在しており、左肩部分の真の位置において、左肩部分の確からしさが最大であることが分かる。つまり、ヒートマップHeatmap(kp14)(左肩のヒートマップ)では、左肩部分を適切に検出できていることが分かる。
図5のヒートマップHeatmap(kp15)(左肘のヒートマップ)において、被写体人物Sub1の左肘部分において、大きなサイズの黒丸の画素が存在しており、左肘部分の真の位置において、左肘部分の確からしさが最大であることが分かる。つまり、ヒートマップHeatmap(kp15)(左肘のヒートマップ)では、左肘部分を適切に検出できていることが分かる。
図5のヒートマップHeatmap(kp16)(左手のヒートマップ)において、被写体人物Sub1の左手部分において、大きなサイズの黒丸の画素が存在しており、左手部分の真の位置において、左手部分の確からしさが最大であることが分かる。つまり、ヒートマップHeatmap(kp16)(左手のヒートマップ)では、左手部分を適切に検出できていることが分かる。
なお、ヒートマップ取得部2は、例えば、画像認識技術を用いて、特徴量抽出画像Img1(t1)において、キーポイントkp1~kp16のそれぞれに対応する部位を認識するようにしてもよい。また、ヒートマップ取得部2は、例えば、被写体人物Sub1が写っている部分が抽出された特徴量抽出画像を入力すると、被写体人物Sub1の所定の各部位である確からしさ(確率)を出力(推定)する機械学習済みモデル(例えば、ニューラルネットワークによる学習済みモデル)を備えており、ヒートマップ取得部2は、被写体人物Sub1が写っている部分が抽出された特徴量抽出画像を、上記機械学習済みモデルに入力し、当該機械学習済みモデルによる処理を行うことで、被写体人物Sub1の所定の各部位である確からしさ(確率)を出力(推定)する。このようにして、ヒートマップ取得部2は、各部位のヒートマップを取得するようにしてもよい。
ヒートマップ取得部2は、例えば、上記(先行技術文献A)に開示されているPoseNetモデルにより人の各部位のヒートマップを取得するようにしてよい。
上記のようにして、ヒートマップ取得部2は、キーポイントkp1~kp16のそれぞれについてのヒートマップ(合計16個のヒートマップ)を取得する。そして、ヒートマップ取得部2は、取得したヒートマップを含むデータをデータD_heatmapとして精密データ取得部3に出力する。
精密データ取得部3のデータ分解部311は、2Dポーズ推定部1から出力されるデータDi_kpを入力し、当該データDi_kpに対して分解処理(キーポイントデータを人の部位ごとに分解する処理)を実行する。具体的には、データ分解部311は、(1)可動範囲が広く、激しく動くことができる部位のキーポイントのデータ(このようなキーポイントを「広可動キーポイント」という)と、(2)可動範囲が狭く、激しく動くことがない部位のキーポイントのデータ(このようなキーポイントを「狭可動キーポイント」という)と、に分解する。例えば、データ分解部311は、(1)手、肘、足に相当するキーポイント(Kp7(右手),Kp16(左手),Kp6(右肘),Kp13(左肘),Kp10(右足),Kp13(左足))を広可動キーポイントとし、(2)それ以外の部位に相当するキーポイント(人の頭部および脊椎に含まれる部位のキーポイントkp1~kp4、人の左右の肩に相当するキーポイントkp5、kp14、人の左右の腰に相当するキーポイントkp8、kp11、および、人の左右の膝に相当するキーポイントkp9、kp12)を狭可動キーポイントとする。なお、本実施形態では、データ分解部311は、上記のように、広可動キーポイントおよび狭可動キーポイントを設定し、キーポイントのデータの分解処理を行うものとする。
そして、データ分解部311は、(1)上記処理により取得した狭可動キーポイントのデータを含むデータをデータD1_kp_Lとして、粗予測処理部312および第1メモリM1に出力し、(2)上記処理により取得した広可動キーポイントのデータを含むデータをデータD1_kp_Hとして、精密予測処理部313および第2メモリM2に出力する。
第1メモリM1は、データ分解部311から出力されるデータD1_kp_Lを入力し、当該データD1_kp_Lを記憶保持する。
第2メモリM2は、データ分解部311から出力されるデータD1_kp_Hを入力し、当該データD1_kp_Hを記憶保持する。
粗予測処理部312は、データ分解部311から出力されるデータD1_kp_Lを入力する。また、粗予測処理部312は、現時刻よりも前の時刻に取得され、第1メモリM1に記憶されているデータD1_kp_LをデータD1_kp_L_pastとして、第1メモリM1から読み出す。粗予測処理部312は、データD1_kp_LおよびデータD1_kp_L_pastを用いて、粗予測処理を実行する。具体的には、粗予測処理部312は、時系列フィルタを用いた処理(予測処理)を実行する。これについて、以下説明する。
時々刻々変化する観測対象の内部状態を推定する技術として、時系列フィルタを用いた技術がある。時系列フィルタとは、時間ステップt(時刻t)における対象の内部状態を状態ベクトルxtとし、時間ステップt(時刻t)において観測された特徴を観測ベクトルztとしたとき、観測された観測ベクトルztから、直接観測できない対象の内部状態xtを推定する手法である。
観測対象の内部状態のシステムモデルおよび対象を観測した時の観測モデル(状態空間モデル)は、以下のように表すことができる。
システムモデル(状態方程式):
xt=f(xt-1,ut,wt)
f:時間ステップt-1と時間ステップtとの状態変化を表す状態遷移関数
ut:時間ステップtの制御入力
wt:時間ステップtのシステムノイズ
観測モデル(観測方程式):
zt=h(xt,vt)
h:状態xtのときに得られる観測ベクトルを表す関数
vt:時間ステップtの観測ノイズ
運動方程式等で人の動作(または人の特定部位の移動)が表現(予測)できる場合、当該運動方程式等により予測したデータと、実際の観測データ(例えば、実際に観測されたキーポイントのデータ)とを用いて、時系列フィルタを適用することができる。
システムモデル(状態方程式):
xt=f(xt-1,ut,wt)
f:時間ステップt-1と時間ステップtとの状態変化を表す状態遷移関数
ut:時間ステップtの制御入力
wt:時間ステップtのシステムノイズ
観測モデル(観測方程式):
zt=h(xt,vt)
h:状態xtのときに得られる観測ベクトルを表す関数
vt:時間ステップtの観測ノイズ
運動方程式等で人の動作(または人の特定部位の移動)が表現(予測)できる場合、当該運動方程式等により予測したデータと、実際の観測データ(例えば、実際に観測されたキーポイントのデータ)とを用いて、時系列フィルタを適用することができる。
粗予測処理部312において、(1)前時間ステップ(時間ステップt-1)で取得された狭可動キーポイントのデータ(1時間ステップ前の観測対象の内部状態を示すデータ(上記の内部状態xt-1に相当))と、(2)処理対象としている被写体人物Sub1の所定の部位の動作(被写体人物Sub1の所定の部位の移動)についての物理現象を表現する方程式(例えば、運動方程式等)から予測した予測キーポイントデータ(観測データ(上記の観測ベクトルztに相当))と、を用いて時系列フィルタによる処理を行うことで、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1のポーズデータ)を取得(推定)する。
本実施形態では、粗予測処理部312は、時系列フィルタとして、比較的計算量が少なくてすむカルマンフィルタを用いて、狭可動キーポイントについての予測処理(粗予測処理)を行う。つまり、粗予測処理部312は、カルマンフィルタを用いて、以下の処理を実行する。
粗予測処理部312は、以下の処理により、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1の狭可動キーポイントのデータ)を取得(推定)する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt1)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t1)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t1
zT t1=PT kp8 (t1)=[xkp8 (t1),ykp8 (t1)]
zT t1:zt1の転置行列
PT kp8 (t1):Pkp8 (t1)の転置行列
xkp8 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp8のx座標
ykp8 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t1)=Pkp8_pred (t1)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t1),0)
=Pkp8 (t1)-h(Pkp8_pred (t1),0)
Pkp8 (t1):時間ステップt1におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t1):時間ステップt1におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t1):時間ステップt1におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkp8_post (t1)を取得する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt1)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t1)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t1
zT t1=PT kp8 (t1)=[xkp8 (t1),ykp8 (t1)]
zT t1:zt1の転置行列
PT kp8 (t1):Pkp8 (t1)の転置行列
xkp8 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp8のx座標
ykp8 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t1)=Pkp8_pred (t1)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t1),0)
=Pkp8 (t1)-h(Pkp8_pred (t1),0)
Pkp8 (t1):時間ステップt1におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t1):時間ステップt1におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t1):時間ステップt1におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkp8_post (t1)を取得する。
粗予測処理部312は、他の狭可動キーポイントについても、上記と同様の処理を行い、各狭可動キーポイントの現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkpi_post
(t1)(i:自然数、狭可動キーポイントを示す指標値(本実施形態の場合、i={1,2,3,4,5,8,9,11,12,14}))を取得する。
そして、粗予測処理部312は、上記処理により取得した各狭可動キーポイントの現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkpi_post
(t1)を含むデータをデータD2_kp_Lとして粗予測信頼度取得部321および第1メモリM1に出力する。
精密予測処理部313は、データ分解部311から出力されるデータD1_kp_Hを入力する。また、精密予測処理部313は、現時刻よりも前の時刻に取得され、第2メモリM2に記憶されているデータD1_kp_HをデータD1_kp_H_pastとして、第2メモリM2から読み出す。精密予測処理部313は、データD1_kp_HおよびデータD1_kp_H_pastを用いて、精密予測処理を実行する。具体的には、精密予測処理部313は、時系列フィルタを用いた処理(予測処理)を実行する。ここでは、精密予測処理部313において、時系列フィルタとして、拡張カルマンフィルタを用いる場合について、説明する。
拡張カルマンフィルタも時系列フィルタであり、時間ステップt(時刻t)における対象の内部状態を状態ベクトルxtとし、時間ステップt(時刻t)において観測された特徴を観測ベクトルztとしたとき、観測された観測ベクトルztから、直接観測できない対象の内部状態xtを推定する手法である。
観測対象の内部状態のシステムモデルおよび対象を観測した時の観測モデル(状態空間モデル)は、以下のように表すことができる。
システムモデル(状態方程式):
xt=f(xt-1,ut,wt)
f:時間ステップt-1と時間ステップtとの状態変化を表す状態遷移関数
ut:時間ステップtの制御入力
wt:時間ステップtのシステムノイズ
観測モデル(観測方程式):
zt=h(xt,vt)
h:状態xtのときに得られる観測ベクトルを表す関数
vt:時間ステップtの観測ノイズ
運動方程式等で人の動作(または人の特定部位の移動)が表現(予測)できる場合、当該運動方程式等により予測したデータと、実際の観測データ(例えば、実際に観測されたキーポイントのデータ)とを用いて、時系列フィルタを適用することができる。
システムモデル(状態方程式):
xt=f(xt-1,ut,wt)
f:時間ステップt-1と時間ステップtとの状態変化を表す状態遷移関数
ut:時間ステップtの制御入力
wt:時間ステップtのシステムノイズ
観測モデル(観測方程式):
zt=h(xt,vt)
h:状態xtのときに得られる観測ベクトルを表す関数
vt:時間ステップtの観測ノイズ
運動方程式等で人の動作(または人の特定部位の移動)が表現(予測)できる場合、当該運動方程式等により予測したデータと、実際の観測データ(例えば、実際に観測されたキーポイントのデータ)とを用いて、時系列フィルタを適用することができる。
精密予測処理部313において、(1)前時間ステップ(時間ステップt-1)で取得された広可動キーポイントのデータ(1時間ステップ前の観測対象の内部状態を示すデータ(上記の内部状態xt-1に相当))と、(2)処理対象としている被写体人物Sub1の所定の部位の動作(被写体人物Sub1の所定の部位の移動)についての物理現象を表現する方程式(例えば、運動方程式等)から予測した予測キーポイントデータ(観測データ(上記の観測ベクトルztに相当))とを用いて時系列フィルタによる処理を行うことで、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1のポーズデータ)を取得(推定)する。
本実施形態では、精密予測処理部313は、時系列フィルタとして、高精度な予測処理(推定処理)を行うことができる拡張カルマンフィルタを用いて、広可動キーポイントについての予測処理(精密予測処理)を行う。つまり、精密予測処理部313は、拡張カルマンフィルタを用いて、以下の処理を実行する。
精密予測処理部313は、以下の処理により、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1の広可動キーポイントのデータ)を取得(推定)する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
なお、Ft、および、Htは、拡張カルマンフィルタ(非線形カルマンフィルタの一例)を用いる場合、下記の数式により示されるものとなる。
すなわち、前述した状態空間モデルの関数f、関数Hは非線形関数である場合、テイラー展開より、2次微分以降の項を省略して、非線形である関数fの1次微分の項までで近似することで、線形化することで、カルマンフィルタのアルゴリズムが適用可能となる。これにより、拡張カルマンフィルタでは、状態空間モデルが非線形な関数f、Hを用いる場合であっても高精度な予測処理(推定処理)を行うことができる。つまり、拡張カルマンフィルタでは、状態空間モデルが線形な関数f、H(線形作用素f、H)を用いなければならないカルマンフィルタと比べて、計算量は増加するが、非線形なシステムモデルを扱うことができるため、高精度な予測処理(推定処理)を行うことができる。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
なお、Ft、および、Htは、拡張カルマンフィルタ(非線形カルマンフィルタの一例)を用いる場合、下記の数式により示されるものとなる。
精密予測処理部313は、例えば、広可動キーポイントであるキーポイントKp16(左手部分)の現時刻(時間ステップt1)について、キーポイントKp16の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t1)上のキーポイントKp16のx座標およびy座標として、拡張カルマンフィルタによる処理を行う。つまり、精密予測処理部313は、
t=t1
zT t1=PT kp16 (t1)=[xkp16 (t1),ykp16 (t1)]
zT t1:zt1の転置行列
PT kp16 (t1):Pkp16 (t1)の転置行列
xkp16 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp16のx座標
ykp16 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t1)=Pkp8_pred (t1)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t1),0)
=Pkp16 (t1)-h(Pkp16_pred (t1),0)
Pkp16 (t1):時間ステップt1におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t1):時間ステップt1におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t1):時間ステップt1におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
t=t1
zT t1=PT kp16 (t1)=[xkp16 (t1),ykp16 (t1)]
zT t1:zt1の転置行列
PT kp16 (t1):Pkp16 (t1)の転置行列
xkp16 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp16のx座標
ykp16 (t1):特徴量抽出画像Img1(t1)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t1)=Pkp8_pred (t1)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t1),0)
=Pkp16 (t1)-h(Pkp16_pred (t1),0)
Pkp16 (t1):時間ステップt1におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t1):時間ステップt1におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t1):時間ステップt1におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
上記処理により、精密予測処理部313は、広可動キーポイントであるキーポイントKp16(左手部分)の現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkp16_post
(t1)を取得する。
精密予測処理部313は、他の広可動キーポイントについても、上記と同様の処理を行い、各広可動キーポイントの現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkpi_post
(t1)(i:自然数、広可動キーポイントを示す指標値(本実施形態の場合、i={6,7,10,13,15,16}(左右の手、肘、足に相当)))を取得する。
そして、精密予測処理部313は、上記処理により取得した各広可動キーポイントの現時刻(時間ステップt1)における事後推定値(事後推定ベクトル)Pkpi_post
(t1)を含むデータをデータD2_kp_Hとして精密予測信頼度取得部322および第2メモリM2に出力する。
粗予測信頼度取得部321は、粗予測処理部312から出力される粗予測処理データD2_kp_Lに対して、粗予測信頼度取得処理を実行することで、粗予測信頼度(粗予測信頼度マップ)を取得する。具体的には、粗予測信頼度取得部321は、特徴量抽出画像Img1(t1)上において、粗予測処理データD2_kp_Lにより特定される各部位の位置(各部位に対応するキーポイントの位置(粗予測処理により推定(予測)された位置))に所定の値(画素値)(例えば、「0.2」)を設定し、それ以外の位置の値(画素値)を「0」とした信頼度マップ(信頼度を画素値としたマップ)である粗予測信頼度マップを取得する。なお、粗予測信頼度マップは、データD_heatmapに含まれるヒートマップと同じ画素サイズ、画素数、画素配列のマップであるものとする。
例えば、図6に示すように、粗予測処理データD2_kp_Lにより特定される左肩部分(kp14)の位置(左肩部分に対応するキーポイントの位置(粗予測処理により推定(予測)された位置))が、図6の右上図にD2_kp_L.kp14で示した位置であるとき、粗予測信頼度取得部321は、粗予測信頼度マップの当該位置の信頼度(画素値)を所定の値(例えば、「0.2」)に設定し、それ以外の位置の信頼度(画素値)を「0」に設定することで、左肩部分(kp14)の粗予測信頼度マップ(粗予測信頼度マップD3_conf_L.kp14)を取得する(図6の右下図を参照)。なお、部位kpxの粗予測信頼度マップをD3_conf_L.kpxと表記する。なお、図6では、説明便宜のため、粗予測信頼度マップの画素を4×4の矩形(16個の矩形(画素))で表示しており、他の画像領域における粗予測信頼度マップの画素の表示は省略している。
他の部位についても、粗予測信頼度取得部321は、上記と同様の処理を行うことで、各部位の粗予測信頼度マップD3_conf_L.kpxを取得する。
そして、粗予測信頼度取得部321は、取得した各部位の粗予測信頼度マップD3_conf_L.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Lとして、信頼度合成部323に出力する。
精密予測信頼度取得部322は、精密予測処理部313から出力される精密予測処理データD2_kp_Hに対して、精密予測信頼度取得処理を実行することで、精密予測信頼度(精密予測信頼度マップ)を取得する。具体的には、精密予測信頼度取得部322は、特徴量抽出画像Img1(t1)上において、精密予測処理データD2_kp_Hにより特定される各部位の位置(各部位に対応するキーポイントの位置(精密予測処理により推定(予測)された位置))に所定の値(画素値)(例えば、「0.2」)を設定し、それ以外の位置の値(画素値)を「0」とした信頼度マップ(信頼度を画素値としたマップ)である精密予測信頼度マップを取得する。なお、精密予測信頼度マップは、データD_heatmapに含まれるヒートマップと同じ画素サイズ、画素数、画素配列のマップであるものとする。
例えば、図7に示すように、精密予測処理データD2_kp_Hにより特定される左手部分(kp16)の位置(左手部分に対応するキーポイントの位置(精密予測処理により推定(予測)された位置))が、図7の右上図にD2_kp_H.kp16で示した位置であるとき、精密予測信頼度取得部322は、精密予測信頼度マップの当該位置の信頼度(画素値)を所定の値(例えば、「0.2」)に設定し、それ以外の位置の信頼度(画素値)を「0」に設定することで、左手部分(kp16)の精密予測信頼度マップ(精密予測信頼度マップD3_conf_L.kp16)を取得する(図7の右下図を参照)。なお、部位kpxの精密予測信頼度マップをD3_conf_H.kpxと表記する。なお、図7では、説明便宜のため、精密予測信頼度マップの画素を4×4の矩形(16個の矩形(画素))で表示しており、他の画像領域における精密予測信頼度マップの画素の表示は省略している。
他の部位についても、粗予測信頼度取得部321は、上記と同様の処理を行うことで、各部位の精密予測信頼度マップD3_conf_H.kpxを取得する。
そして、精密予測信頼度取得部322は、取得した各部位の精密予測信頼度マップD3_conf_H.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Hとして、信頼度合成部323に出力する。
信頼度合成部323は、粗予測信頼度取得部321から出力されるデータD3_conf_Lと、精密予測信頼度取得部322から出力されるデータD3_conf_Hと、ヒートマップ取得部2から出力されるデータD_heatmapとを入力する。信頼度合成部323は、データD3_conf_L、データD3_conf_H、および、データD_heatmapに対して、信頼度合成処理を実行する。具体的には、信頼度合成部323は、各部位(kpx(x:自然数、1≦x≦16))ごとに、同一位置の画素について、
(1)ヒートマップD_heatmap.kpx、と
(2A)粗予測信頼度マップD3_conf_L.kpx、または、
(2B)精密予測信頼度マップD3_conf_H.kpx
との加算処理(画素値の加算処理)を実行することで、合成信頼度マップを取得する。なお、ヒートマップD_heatmapの部位kpxのヒートマップ(ヒートマップから取得される信頼度のマップ)をヒートマップD_heatmap.kpxと表記する。
(1)ヒートマップD_heatmap.kpx、と
(2A)粗予測信頼度マップD3_conf_L.kpx、または、
(2B)精密予測信頼度マップD3_conf_H.kpx
との加算処理(画素値の加算処理)を実行することで、合成信頼度マップを取得する。なお、ヒートマップD_heatmapの部位kpxのヒートマップ(ヒートマップから取得される信頼度のマップ)をヒートマップD_heatmap.kpxと表記する。
例えば、左肩部分(kp14)の場合、図8に示すように、同一位置の画素について、
(1)ヒートマップD_heatmap.kp14(図8の上段の図)と
(2A)粗予測信頼度マップD3_conf_L.kp14(図8の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左肩部分(kp14)の合成信頼度マップD4_conf.kp14(図8の下段の図)を取得する。
(1)ヒートマップD_heatmap.kp14(図8の上段の図)と
(2A)粗予測信頼度マップD3_conf_L.kp14(図8の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左肩部分(kp14)の合成信頼度マップD4_conf.kp14(図8の下段の図)を取得する。
また、例えば、左手部分(kp16)の場合、図9に示すように、同一位置の画素について、
(1)ヒートマップD_heatmap.kp16(図9の上段の図)と
(2B)精密予測信頼度マップD3_conf_H.kp16(図9の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左手部分(kp16)の合成信頼度マップD4_conf.kp16(図9の下段の図)を取得する。
(1)ヒートマップD_heatmap.kp16(図9の上段の図)と
(2B)精密予測信頼度マップD3_conf_H.kp16(図9の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左手部分(kp16)の合成信頼度マップD4_conf.kp16(図9の下段の図)を取得する。
他の部位についても、信頼度合成部323は、上記と同様の処理を行うことで、各部位の合成信頼度マップD4_conf.kpxを取得する。
そして、信頼度合成部323は、取得した各部位の合成信頼度マップD4_conf.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD4_confとして、精密ポーズデータ取得部33に出力する。
精密ポーズデータ取得部33は、2Dポーズ推定部1から出力されるデータDi_kpと、信頼度合成部323から出力されるデータD4_confと、を入力する。精密ポーズデータ取得部33は、データDi_kp、および、データD4_conf(信頼度データD4_conf)を用いて、精密ポーズデータ取得処理を実行する。具体的には、精密ポーズデータ取得部33は、各部位(kpx(x:自然数、1≦x≦16))ごとに、合成信頼度マップD4_conf.kpxにより特定される画像(特徴量抽出画像Img1(t1))上の位置と、2Dポーズ推定部1により取得されたデータDi_kp.kpxにより特定される画像(特徴量抽出画像Img1(t1))上の位置(キーポイントkpxの位置)とが略一致するか否かを判定し、以下のように処理する。
(1)両者の位置が略一致する場合、精密ポーズデータ取得部33は、精密ポーズデータの部位kpxのキーポイントを2Dポーズ推定部1により取得されたデータDi_kp.kpxとすることで、部位kpxの精密ポーズデータDo_kp.kpxを取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kpx=Di_kp.kpx
として、部位kpxの精密ポーズデータDo_kp.kpxを取得する。
(2)一方、両者の位置が略一致しない場合、精密ポーズデータ取得部33は、精密ポーズデータの部位kpxのキーポイントを、信頼度合成部323により取得された合成信頼度マップD4_conf.kpxにより特定される画像(特徴量抽出画像Img1(t1))上の位置(合成信頼度マップD4_conf.kpxで最大値を示す画素の位置)とすることで、部位kpxの精密ポーズデータDo_kp.kpxを取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kpx=max_P(D4_conf.kpx)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kpxの精密ポーズデータDo_kp.kpxを取得する。なお、上記の「略一致」とは、画像上の2点間の距離が所定の値(例えば、信頼度マップの画素ピッチに相当する距離)以下であることをいう。
(1)両者の位置が略一致する場合、精密ポーズデータ取得部33は、精密ポーズデータの部位kpxのキーポイントを2Dポーズ推定部1により取得されたデータDi_kp.kpxとすることで、部位kpxの精密ポーズデータDo_kp.kpxを取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kpx=Di_kp.kpx
として、部位kpxの精密ポーズデータDo_kp.kpxを取得する。
(2)一方、両者の位置が略一致しない場合、精密ポーズデータ取得部33は、精密ポーズデータの部位kpxのキーポイントを、信頼度合成部323により取得された合成信頼度マップD4_conf.kpxにより特定される画像(特徴量抽出画像Img1(t1))上の位置(合成信頼度マップD4_conf.kpxで最大値を示す画素の位置)とすることで、部位kpxの精密ポーズデータDo_kp.kpxを取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kpx=max_P(D4_conf.kpx)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kpxの精密ポーズデータDo_kp.kpxを取得する。なお、上記の「略一致」とは、画像上の2点間の距離が所定の値(例えば、信頼度マップの画素ピッチに相当する距離)以下であることをいう。
例えば、左肩部分(kp14)の場合(粗予測処理の対象部位の場合)、図10に示すように、2Dポーズ推定部1により取得されたデータDi_kp.kp14の画像上の位置(図10の上図の4×4の矩形(マトリックス)の2行1列目の画素(画素値が「0.7」の画素)の位置に相当)と、合成信頼度マップD4_conf.kp14で最大値を示す画素の位置(図10の上図の4×4の矩形(マトリックス)の2行3列目の画素(画素値が「0.8」の画素)の位置)とは、略一致していない(信頼度マップの画素ピッチ(隣接画素間の距離)以上離れている)。したがって、精密ポーズデータ取得部33は、精密ポーズデータの部位kp14のキーポイントを、信頼度合成部323により取得された合成信頼度マップD4_conf.kp14により特定される画像(特徴量抽出画像Img1(t1))上の位置(合成信頼度マップD4_conf.kp14で最大値を示す画素の位置)とすることで、部位kp14の精密ポーズデータDo_kp.kp14を取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kp14=max_P(D4_conf.kp14)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp14の精密ポーズデータDo_kp.kp14(図10の上図の4×4の矩形(マトリックス)の2行3列目の画素(画素値が「0.8」の画素)の位置に対応)を取得する(図10の下図を参照)。図10の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp14が正しい位置からずれている場合であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp14の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp14を取得することができる。
Do_kp.kp14=max_P(D4_conf.kp14)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp14の精密ポーズデータDo_kp.kp14(図10の上図の4×4の矩形(マトリックス)の2行3列目の画素(画素値が「0.8」の画素)の位置に対応)を取得する(図10の下図を参照)。図10の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp14が正しい位置からずれている場合であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp14の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp14を取得することができる。
なお、上記では、ヒートマップD_heatmap.kp14において画素値が最大である画素の位置と、粗予測信頼度マップD3_conf_L.kp14において画素値が非0である画素の位置とが異なる位置である場合について、説明したが、ヒートマップD_heatmap.kp14において画素値が最大である画素の位置と、粗予測信頼度マップD3_conf_L.kp14において画素値が非0である画素の位置とが一致する場合、合成信頼度マップD4_conf.kp14で最大値を示す画素の位置は、ヒートマップD_heatmap.kp14において画素値が最大である画素の位置、および、粗予測信頼度マップD3_conf_L.kp14において画素値が非0である画素の位置と同じ位置となる。つまり、この場合においても、部位kp14の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp14を取得することができる。
また、例えば、左手部分(kp16)の場合(精密予測処理の対象部位の場合)、図11に示すように、2Dポーズ推定部1により取得されたデータDi_kp.kp16の画像上の位置(図11の上図の4×4の矩形(マトリックス)の2行2列目の画素(画素値が「0.9」の画素)の位置に相当)と、合成信頼度マップD4_conf.kp16で最大値を示す画素の位置(図11の上図の4×4の矩形(マトリックス)の4行4列目の画素(画素値が「1.0」の画素)の位置)とは、略一致していない(信頼度マップの画素ピッチ(隣接画素間の距離)以上離れている)。したがって、精密ポーズデータ取得部33は、精密ポーズデータの部位kp16のキーポイントを、信頼度合成部323により取得された合成信頼度マップD4_conf.kp16により特定される画像(特徴量抽出画像Img1(t1))上の位置(合成信頼度マップD4_conf.kp16で最大値を示す画素の位置)とすることで、部位kp16の精密ポーズデータDo_kp.kp16を取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kp16=max_P(D4_conf.kp16)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp16の精密ポーズデータDo_kp.kp16(図11の上図の4×4の矩形(マトリックス)の4行4列目の画素(画素値が「1.0」の画素)の位置に対応)を取得する(図11の下図を参照)。図11の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp16が正しい位置からずれている場合であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp16の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp16を取得することができる。
Do_kp.kp16=max_P(D4_conf.kp16)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp16の精密ポーズデータDo_kp.kp16(図11の上図の4×4の矩形(マトリックス)の4行4列目の画素(画素値が「1.0」の画素)の位置に対応)を取得する(図11の下図を参照)。図11の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp16が正しい位置からずれている場合であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp16の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp16を取得することができる。
なお、上記では、ヒートマップD_heatmap.kp16において画素値が最大である画素の位置と、精密予測信頼度マップD3_conf_H.kp16において画素値が非0である画素の位置とが異なる位置である場合について、説明したが、ヒートマップD_heatmap.kp16において画素値が最大である画素の位置と、精密予測信頼度マップD3_conf_H.kp16において画素値が非0である画素の位置とが一致する場合、合成信頼度マップD4_conf.kp16で最大値を示す画素の位置は、ヒートマップD_heatmap.kp16において画素値が最大である画素の位置、および、精密予測信頼度マップD3_conf_H.kp16において画素値が非0である画素の位置と同じ位置となる。つまり、この場合においても、部位kp16の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp16を取得することができる。
また、上記では、精密ポーズデータ取得部33において、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、合成信頼度マップD4_conf.kpxで最大値を示す画素の位置とが、略一致しているか否か(信頼度マップの画素ピッチ(隣接画素間の距離)以上離れているか否か)を判定する場合について説明したが、これに限定されることはない。例えば、精密ポーズデータ取得部33において、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、粗予測処理データD2_kp_Lまたは精密予測処理データD2_kp_Hにより特定される画像上の位置とが一致しているか否かを判定するようにしてもよい。この場合、精密データ取得部3において、予測データ取得部31から取得される粗予測処理データD2_kp_Lおよび精密予測処理データD2_kp_Hが精密ポーズデータ取得部33に入力される構成を用いればよい。
そして、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、粗予測処理データD2_kp_Lまたは精密予測処理データD2_kp_Hにより特定される画像上の位置とが一致していない場合、精密ポーズデータ取得部33は、合成信頼度マップD4_conf.kpxで最大値を示す画素の位置を、部位kpxの精密ポーズデータDo_kp.kpxとして取得するようにすればよい。
他の部位についても、精密ポーズデータ取得部33は、上記と同様の処理を行うことで、各部位の精密ポーズデータDo_kp.kpxを取得する。
そして、精密ポーズデータ取得部33は、取得した各部位の精密ポーズデータDo_kp.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データDo_kpとして、2D-3D変換部4に出力する。
ここで、図12を用いて、精密データ取得部3で取得されるデータについて、説明する。
図12に、精密ポーズデータ取得部33が上記処理により取得した各キーポイントのデータDo_kp.kpxをまとめたデータDo_kpの一例を示す。図12では、特徴量抽出画像Img1(t1)、2Dポーズ推定部1により取得された2Dポーズデータ(キーポイントデータDi_kp.kpx)を模式的に示した画像Img1(t1)(Di_kp)、および、精密ポーズデータ取得部33により取得された精密ポーズデータDo_kp.kpxを模式的に示した画像Img1(t1)(Do_kp)を示している。そして、(1)図12の画像Img1(t1)(Di_kp)では、データDi_kpによるキーポイントをグレーの丸で示しており、図12の画像Img1(t1)(Do_kp)では、精密ポーズデータDi_kpによるキーポイントを黒丸で示している。
図12から分かるように、画像Img1(t1)(Di_kp)では、部位kp10(右足)、kp14(左肩)、kp16(左手)の位置が正しい位置からずれているが、画像Img1(t1)(Do_kp)(精密ポーズデータ)では、部位kp10(右足)、kp14(左肩)、kp16(左手)の位置について、合成信頼度マップにより適切に補正されており、その結果、部位kp10(右足)、kp14(左肩)、kp16(左手)について、正しい位置のキーポイントとして取得されている。
以上のように、精密データ取得部3では、ヒートマップ取得部2により取得されたヒートマップに対して、予測データ取得部31により取得された粗予測信頼度マップまたは精密予測信頼度マップによる加算処理(同一画素における画素値の加算処理)を行うことで、より精度の高い信頼度マップ(合成信頼度マップ)を部位ごとに取得することができる。そして、精密データ取得部3では、合成信頼度マップに基づいて、精密ポーズデータを取得するので、より精度の高いポーズデータを取得することができる。
2D-3D変換部4は、精密データ取得部3から出力されるデータDo_kp(2次元のキーポイントのデータ)を入力する。2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)に対して、2D-3D変換処理を実行し、データDo_kp(2次元のキーポイントのデータ)に対応する3次元データ(3次元のキーポイントのデータ)をデータDo_3D_kpとして取得する。例えば、2D-3D変換部4は、2次元のキーポイントデータを入力すると、3次元のキーポイントデータを出力(推定)する機械学習済みモデル(例えば、ニューラルネットワークによる学習済みモデル)を備えており、2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)を、上記機械学習済みモデルに入力し、当該機械学習済みモデルによる処理を行う。これにより、2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)から、3次元のキーポイントデータを取得(推定)する。
また、撮像装置Cam1により被写体人物Sub1を撮影している3次元空間(撮像空間)の情報、および、撮像装置Cam1の撮影パラメータの情報を取得できる場合、2D-3D変換部4は、当該撮像空間の情報と、撮像装置Cam1の撮影パラメータの情報Info_cam_prmとに基づいて、データDo_kp(2次元のキーポイントのデータ)から、3次元のキーポイントデータを取得(推定)するようにしてもよい。
そして、2D-3D変換部4は、上記により取得したデータ(2次元のキーポイントのデータ)を、データDo_3D_kpとして、ポスト処理部5に出力する。
ポスト処理部5は、2D-3D変換部4から出力されるデータDo_3D_kpを入力し、当該データDo_3D_kpに対してポスト処理を実行する。例えば、ポスト処理部5は、データDo_3D_kpに含まれる各キーポイントの3次元データ(3次元の座標データ)に対して、座標変換を行うことで、ポスト処理を実行する。例えば、データDo_3D_kpを用いて、CG合成処理を行う場合、データDo_3D_kpに含まれる各キーポイントの3次元データ(3次元の座標データ)を、CG合成を行うための3次元空間の3次元データ(3次元の座標データ)に変換することが好ましい。このような場合、ポスト処理部5は、データDo_3D_kpに含まれる各キーポイントの3次元データ(3次元の座標データ)に対して、座標変換を行うことで、後段のアプリケーションで使用しやすいデータ(例えば、CG合成するための3次元空間の3次元座標値を有する3次元データ)を取得することができる。
そして、ポスト処理部5は、上記により取得したデータをデータDoutとして外部に出力する。
≪時間ステップt2の処理≫
次に、時間ステップt2(時間ステップt2は、時間ステップt1の1時間ステップ後の時間ステップである(t2=t1+1))の処理について説明する。なお、時間ステップt1と同様の処理については、詳細な説明を省略する。
次に、時間ステップt2(時間ステップt2は、時間ステップt1の1時間ステップ後の時間ステップである(t2=t1+1))の処理について説明する。なお、時間ステップt1と同様の処理については、詳細な説明を省略する。
時間ステップt2において、撮像装置Cam1により、被写体人物Sub1を含む3次元空間(撮像空間)を撮像することで、フレーム画像データImg0(t2)を取得する。
ポーズデータ生成装置100の2Dポーズ推定部1は、撮像装置Cam1から出力されるフレーム画像データImg0(t2)をデータDinとして入力し、当該フレーム画像データImg0(t2)を用いて、2次元ポーズデータを推定(取得)する処理(2Dポーズ推定処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
特徴量抽出部PP1は、データDin(フレーム画像データImg10(t2))に対して、特徴量抽出処理(例えば、クラス分類を行いつつ、物体検出を行う処理)を実行することで、被写体人物(物体検出の対象)に相当する画像領域(画像Img1(t2))(図3Bを参照)を抽出する。
そして、特徴量抽出部PP1は、特徴量抽出処理により取得した、物体検出の対象の画像領域(画像Img1(t2))についてのデータ(物体検出の対象が含まれる画像領域を含む画像データ、抽出した画像領域の座標、サイズについてのデータ等)、および、物体検出した対象のクラス分類に関するデータ(物体検出のクラス(本実施形態では、「人」))等を含むデータを、特徴量抽出データD0として、2Dポーズ推定部1およびヒートマップ取得部2に出力する。
そして、2Dポーズ推定部1は、特徴量抽出部PP1により取得された特徴量抽出画像Img1(t2)に対して、2Dポーズ推定処理を実行し、当該処理により取得した2次元キーポイントデータ(16個の点kp1~kp16の2次元座標データ)を含むデータを、データDi_kpとして、精密データ取得部3に出力する。
ポーズデータ生成装置100のヒートマップ取得部2は、特徴量抽出画像データImg1(t2)により形成されるフレーム画像(特徴量抽出画像Img1(t2))から、ヒートマップを取得する処理(ヒートマップ取得処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
ヒートマップ取得部2は、ヒートマップ取得処理により、キーポイントkp1~kp16のそれぞれについてのヒートマップ(合計16個のヒートマップ)を取得する。
そして、ヒートマップ取得部2は、ヒートマップ取得処理により取得したヒートマップを含むデータをデータD_heatmapとして精密データ取得部3に出力する。
精密データ取得部3のデータ分解部311は、2Dポーズ推定部1から出力されるデータDi_kpを入力し、当該データDi_kpに対して分解処理(キーポイントデータを人の部位ごとに分解する処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
データ分解部311は、(1)分解処理により取得した狭可動キーポイントのデータを含むデータをデータD1_kp_Lとして、粗予測処理部312および第1メモリM1に出力し、(2)分解処理により取得した広可動キーポイントのデータを含むデータをデータD1_kp_Hとして、精密予測処理部313および第2メモリM2に出力する。
第1メモリM1は、データ分解部311から出力されるデータD1_kp_Lを入力し、当該データD1_kp_Lを記憶保持する。
第2メモリM2は、データ分解部311から出力されるデータD1_kp_Hを入力し、当該データD1_kp_Hを記憶保持する。
粗予測処理部312は、データ分解部311から出力されるデータD1_kp_Lを入力する。また、粗予測処理部312は、現時刻よりも前の時刻に取得され、第1メモリM1に記憶されているデータD1_kp_LをデータD1_kp_L_pastとして、第1メモリM1から読み出す。粗予測処理部312は、データD1_kp_LおよびデータD1_kp_L_pastを用いて、粗予測処理を実行する。
粗予測処理部312は、時間ステップt1のときと同様に、時系列フィルタとして、比較的計算量が少なくてすむカルマンフィルタを用いて、狭可動キーポイントについての予測処理(粗予測処理)を行う。つまり、粗予測処理部312は、カルマンフィルタを用いて、以下の処理を実行する。
粗予測処理部312は、以下の処理により、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1の狭可動キーポイントのデータ)を取得(推定)する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt2)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t2)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t2
zT t2=PT kp8 (t2)=[xkp8 (t2),ykp8 (t2)]
zT t2:zt2の転置行列
PT kp8 (t2):Pkp8 (t2)の転置行列
xkp8 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp8のx座標
ykp8 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t2)=Pkp8_pred (t2)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t2),0)
=Pkp8 (t2)-h(Pkp8_pred (t2),0)
Pkp8 (t2):時間ステップt2におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t2):時間ステップt2におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t2):時間ステップt2におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkp8_post (t2)を取得する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt2)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t2)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t2
zT t2=PT kp8 (t2)=[xkp8 (t2),ykp8 (t2)]
zT t2:zt2の転置行列
PT kp8 (t2):Pkp8 (t2)の転置行列
xkp8 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp8のx座標
ykp8 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t2)=Pkp8_pred (t2)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t2),0)
=Pkp8 (t2)-h(Pkp8_pred (t2),0)
Pkp8 (t2):時間ステップt2におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t2):時間ステップt2におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t2):時間ステップt2におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkp8_post (t2)を取得する。
粗予測処理部312は、他の狭可動キーポイントについても、上記と同様の処理を行い、各狭可動キーポイントの現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkpi_post
(t2)(i:自然数、狭可動キーポイントを示す指標値(本実施形態の場合、i={1,2,3,4,5,8,9,11,12,14}))を取得する。
そして、粗予測処理部312は、上記処理により取得した各狭可動キーポイントの現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkpi_post
(t2)を含むデータをデータD2_kp_Lとして粗予測信頼度取得部321および第1メモリM1に出力する。
精密予測処理部313は、データ分解部311から出力されるデータD1_kp_Hを入力する。また、精密予測処理部313は、現時刻よりも前の時刻に取得され、第2メモリM2に記憶されているデータD1_kp_HをデータD1_kp_H_pastとして、第2メモリM2から読み出す。精密予測処理部313は、データD1_kp_HおよびデータD1_kp_H_pastを用いて、精密予測処理を実行する。
具体的には、精密予測処理部313は、時間ステップt1のときと同様に、時系列フィルタとして拡張カルマンフィルタを用いた処理(予測処理)を実行する。
具体的には、精密予測処理部313は、時間ステップt1のときと同様に、時系列フィルタとして拡張カルマンフィルタを用いた処理(予測処理)を実行する。
精密予測処理部313において、(1)前時間ステップ(時間ステップt-1)で取得された広可動キーポイントのデータ(1時間ステップ前の観測対象の内部状態を示すデータ(上記の内部状態xt-1に相当))と、(2)処理対象としている被写体人物Sub1の所定の部位の動作(被写体人物Sub1の所定の部位の移動)についての物理現象を表現する方程式(例えば、運動方程式等)から予測した予測キーポイントデータ(観測データ(上記の観測ベクトルztに相当))とを用いて時系列フィルタによる処理を行うことで、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1のポーズデータ)を取得(推定)する。
精密予測処理部313は、時系列フィルタとして、高精度な予測処理(推定処理)を行うことができる拡張カルマンフィルタを用いて、広可動キーポイントについての予測処理(精密予測処理)を行う。
精密予測処理部313は、例えば、広可動キーポイントであるキーポイントkp16(左手部分)の現時刻(時間ステップt2)について、キーポイントkp16の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t2)上のキーポイントkp16のx座標およびy座標として、拡張カルマンフィルタによる処理を行う。つまり、精密予測処理部313は、
t=t2
zT t2=PT kp16 (t2)=[xkp16 (t2),ykp16 (t2)]
zT t2:zt2の転置行列
PT kp16 (t2):Pkp16 (t2)の転置行列
xkp16 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp16のx座標
ykp16 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t2)=Pkp8_pred (t2)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t2),0)
=Pkp16 (t2)-h(Pkp16_pred (t2),0)
Pkp16 (t2):時間ステップt2におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t2):時間ステップt2におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t2):時間ステップt2におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
t=t2
zT t2=PT kp16 (t2)=[xkp16 (t2),ykp16 (t2)]
zT t2:zt2の転置行列
PT kp16 (t2):Pkp16 (t2)の転置行列
xkp16 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp16のx座標
ykp16 (t2):特徴量抽出画像Img1(t2)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t2)=Pkp8_pred (t2)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t2),0)
=Pkp16 (t2)-h(Pkp16_pred (t2),0)
Pkp16 (t2):時間ステップt2におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t2):時間ステップt2におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t2):時間ステップt2におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
上記処理により、精密予測処理部313は、広可動キーポイントであるキーポイントKp16(左手部分)の現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkp16_post
(t2)を取得する。
精密予測処理部313は、他の広可動キーポイントについても、上記と同様の処理を行い、各広可動キーポイントの現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkpi_post
(t2)(i:自然数、広可動キーポイントを示す指標値(本実施形態の場合、i={6,7,10,13,15,16}(左右の手、肘、足に相当)))を取得する。
そして、精密予測処理部313は、上記処理により取得した各広可動キーポイントの現時刻(時間ステップt2)における事後推定値(事後推定ベクトル)Pkpi_post
(t2)を含むデータをデータD2_kp_Hとして精密予測信頼度取得部322および第2メモリM2に出力する。
粗予測信頼度取得部321は、粗予測処理部312から出力される粗予測処理データD2_kp_Lに対して、時間ステップt1の処理と同様に、粗予測信頼度取得処理を実行することで、粗予測信頼度(粗予測信頼度マップ)を取得する。
そして、粗予測信頼度取得部321は、取得した各部位の粗予測信頼度マップD3_conf_L.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Lとして、信頼度合成部323に出力する。
精密予測信頼度取得部322は、精密予測処理部313から出力される精密予測処理データD2_kp_Hに対して、時間ステップt1の処理と同様に、精密予測信頼度取得処理を実行することで、精密予測信頼度(精密予測信頼度マップ)を取得する。
そして、精密予測信頼度取得部322は、取得した各部位の精密予測信頼度マップD3_conf_H.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Hとして、信頼度合成部323に出力する。
信頼度合成部323は、粗予測信頼度取得部321から出力されるデータD3_conf_Lと、精密予測信頼度取得部322から出力されるデータD3_conf_Hと、ヒートマップ取得部2から出力されるデータD_heatmapとを入力する。信頼度合成部323は、データD3_conf_L、データD3_conf_H、および、データD_heatmapに対して、時間ステップt1の処理と同様に、信頼度合成処理を実行する。
そして、信頼度合成部323は、取得した各部位の合成信頼度マップD4_conf.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD4_confとして、精密ポーズデータ取得部33に出力する。
精密ポーズデータ取得部33は、2Dポーズ推定部1から出力されるデータDi_kpと、信頼度合成部323から出力されるデータD4_confと、を入力する。精密ポーズデータ取得部33は、データDi_kp、および、データD4_conf(信頼度データD4_conf)を用いて、時間ステップt1の処理と同様に、精密ポーズデータ取得処理を実行する。
そして、精密ポーズデータ取得部33は、取得した各部位の精密ポーズデータDo_kp.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データDo_kpとして、2D-3D変換部4に出力する。
図13に、時間ステップt2において、精密ポーズデータ取得部33が上記処理により取得した各キーポイントのデータDo_kp.kpxをまとめたデータDo_kpの一例を示す。図13では、特徴量抽出画像Img1(t2)、2Dポーズ推定部1により取得された2Dポーズデータ(キーポイントデータDi_kp.kpx)を模式的に示した画像Img1(t2)(Di_kp)、および、精密ポーズデータ取得部33により取得された精密ポーズデータDo_kp.kpxを模式的に示した画像Img1(t2)(Do_kp)を示している。そして、(1)図13の画像Img1(t2)(Di_kp)では、データDi_kpによるキーポイントをグレーの丸で示しており、図12の画像Img1(t2)(Do_kp)では、精密ポーズデータDi_kpによるキーポイントを黒丸で示している。
図13から分かるように、画像Img1(t2)(Di_kp)では、部位kp10(右足)、kp15(左肘)、kp16(左手)の位置が正しい位置からずれているが、画像Img1(t2)(Do_kp)(精密ポーズデータ)では、部位kp10(右足)、kp15(左肘)、kp16(左手)の位置について、合成信頼度マップにより適切に補正されており、その結果、部位kp10(右足)、kp15(左肘)、kp16(左手)について、正しい位置のキーポイントとして取得されている。
以上のように、精密データ取得部3では、ヒートマップ取得部2により取得されたヒートマップに対して、予測データ取得部31により取得された粗予測信頼度マップまたは精密予測信頼度マップによる加算処理(同一画素における画素値の加算処理)を行うことで、より精度の高い信頼度マップ(合成信頼度マップ)を部位ごとに取得することができる。そして、精密データ取得部3では、合成信頼度マップに基づいて、精密ポーズデータを取得するので、より精度の高いポーズデータを取得することができる。
2D-3D変換部4は、精密データ取得部3から出力されるデータDo_kp(2次元のキーポイントのデータ)を入力する。2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)に対して、時間ステップt1のときと同様に、2D-3D変換処理を実行し、データDo_kp(2次元のキーポイントのデータ)に対応する3次元データ(3次元のキーポイントのデータ)をデータDo_3D_kpとして取得する。
そして、2D-3D変換部4は、上記により取得したデータ(2次元のキーポイントのデータ)を、データDo_3D_kpとして、ポスト処理部5に出力する。
ポスト処理部5は、2D-3D変換部4から出力されるデータDo_3D_kpを入力し、時間ステップt1のときと同様に、当該データDo_3D_kpに対してポスト処理を実行する。
そして、ポスト処理部5は、ポスト処理により取得したデータをデータDoutとして外部に出力する。
≪時間ステップt3の処理≫
次に、時間ステップt3(時間ステップt3は、時間ステップt2の1時間ステップ後の時間ステップである(t3=t2+1=t1+2))の処理について説明する。なお、時間ステップt1、t2と同様の処理については、詳細な説明を省略する。
次に、時間ステップt3(時間ステップt3は、時間ステップt2の1時間ステップ後の時間ステップである(t3=t2+1=t1+2))の処理について説明する。なお、時間ステップt1、t2と同様の処理については、詳細な説明を省略する。
時間ステップt3において、撮像装置Cam1により、被写体人物Sub1を含む3次元空間(撮像空間)を撮像することで、フレーム画像データImg0(t3)を取得する。
ポーズデータ生成装置100の2Dポーズ推定部1は、撮像装置Cam1から出力されるフレーム画像データImg0(t3)をデータDinとして入力し、当該フレーム画像データImg0(t3)を用いて、2次元ポーズデータを推定(取得)する処理(2Dポーズ推定処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
特徴量抽出部PP1は、データDin(フレーム画像データImg10(t3))に対して、特徴量抽出処理(例えば、クラス分類を行いつつ、物体検出を行う処理)を実行することで、被写体人物(物体検出の対象)に相当する画像領域(画像Img1(t3))(図3Bを参照)を抽出する。
そして、特徴量抽出部PP1は、特徴量抽出処理により取得した、物体検出の対象の画像領域(画像Img1(t3))についてのデータ(物体検出の対象が含まれる画像領域を含む画像データ、抽出した画像領域の座標、サイズについてのデータ等)、および、物体検出した対象のクラス分類に関するデータ(物体検出のクラス(本実施形態では、「人」))等を含むデータを、特徴量抽出データD0として、2Dポーズ推定部1およびヒートマップ取得部2に出力する。
そして、2Dポーズ推定部1は、特徴量抽出部PP1により取得された特徴量抽出画像Img1(t3)に対して、2Dポーズ推定処理を実行し、当該処理により取得した2次元キーポイントデータ(16個の点kp1~kp16の2次元座標データ)を含むデータを、データDi_kpとして、精密データ取得部3に出力する。
ポーズデータ生成装置100のヒートマップ取得部2は、特徴量抽出画像データImg1(t2)により形成されるフレーム画像(特徴量抽出画像Img1(t3))から、ヒートマップを取得する処理(ヒートマップ取得処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
ヒートマップ取得部2は、ヒートマップ取得処理により、キーポイントkp1~kp16のそれぞれについてのヒートマップ(合計16個のヒートマップ)を取得する。
そして、ヒートマップ取得部2は、ヒートマップ取得処理により取得したヒートマップを含むデータをデータD_heatmapとして精密データ取得部3に出力する。
精密データ取得部3のデータ分解部311は、2Dポーズ推定部1から出力されるデータDi_kpを入力し、当該データDi_kpに対して分解処理(キーポイントデータを人の部位ごとに分解する処理)を実行する。具体的な処理は、時間ステップt1のときの処理と同様である。
データ分解部311は、(1)分解処理により取得した狭可動キーポイントのデータを含むデータをデータD1_kp_Lとして、粗予測処理部312および第1メモリM1に出力し、(2)分解処理により取得した広可動キーポイントのデータを含むデータをデータD1_kp_Hとして、精密予測処理部313および第2メモリM2に出力する。
第1メモリM1は、データ分解部311から出力されるデータD1_kp_Lを入力し、当該データD1_kp_Lを記憶保持する。
第2メモリM2は、データ分解部311から出力されるデータD1_kp_Hを入力し、当該データD1_kp_Hを記憶保持する。
粗予測処理部312は、データ分解部311から出力されるデータD1_kp_Lを入力する。また、粗予測処理部312は、現時刻よりも前の時刻に取得され、第1メモリM1に記憶されているデータD1_kp_LをデータD1_kp_L_pastとして、第1メモリM1から読み出す。粗予測処理部312は、データD1_kp_LおよびデータD1_kp_L_pastを用いて、粗予測処理を実行する。
粗予測処理部312は、時間ステップt1のときと同様に、時系列フィルタとして、比較的計算量が少なくてすむカルマンフィルタを用いて、狭可動キーポイントについての予測処理(粗予測処理)を行う。つまり、粗予測処理部312は、カルマンフィルタを用いて、以下の処理を実行する。
粗予測処理部312は、以下の処理により、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1の狭可動キーポイントのデータ)を取得(推定)する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt3)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t3)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t3
zT t3=PT kp8 (t3)=[xkp8 (t3),ykp8 (t3)]
zT t3:zt3の転置行列
PT kp8 (t3):Pkp8 (t3)の転置行列
xkp8 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp8のx座標
ykp8 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t3)=Pkp8_pred (t3)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t3),0)
=Pkp8 (t3)-h(Pkp8_pred (t3),0)
Pkp8 (t3):時間ステップt3におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t3):時間ステップt3におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t3):時間ステップt3におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkp8_post (t3)を取得する。
(A)予測
xt|t-1=f(xt-1|t-1,ut,0)
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
xt|t-1:時間ステップt-1における時間ステップtの状態推定値(状態推定ベクトル)
xt-1|t-1:時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル)
Ft:システムの時間遷移に関する線形モデル
Pt-1|t-1:誤差の共分散行列
FT t:Ftの転置行列
Gt:時間遷移に関するノイズモデルの行列
Qt:時間遷移に関するノイズモデルの共分散行列
GT t:Gtの転置行列
(B)更新
et=zt-h(xt|t-1,0)
St=HtPt|t-1HT t+Rt
Kt=Pt|t-1HT t+S-1 t
xt|t=xt|t-1+Ktet
Pt|t=(I-KtHt)Pt|t-1
et:時間ステップtの観測残差
St:時間ステップtの観測残差の共分散
Kt:時間ステップtの最適カルマンゲイン
xt|t:時間ステップtにおいて更新された状態の推定値(推定ベクトル)
Pt|t:時間ステップtにおいて更新された誤差の共分散
Ht:観測モデルに関する線形モデル
Rt:時間ステップtの観測ノイズの共分散
粗予測処理部312は、例えば、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt3)について、キーポイントKp8の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t3)上のキーポイントKp8のx座標およびy座標として、カルマンフィルタによる処理を行う。つまり、粗予測処理部312は、
t=t3
zT t3=PT kp8 (t3)=[xkp8 (t3),ykp8 (t3)]
zT t3:zt3の転置行列
PT kp8 (t3):Pkp8 (t3)の転置行列
xkp8 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp8のx座標
ykp8 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp8のy座標
とし、下記の更新(カルマンフィルタによる更新)を行う。なお、xt-1|t-1(時間ステップt-1における更新処理後の状態推定値(状態推定ベクトル))は、データD1_kp_L_pastに含まれており、データD1_kp_L_pastから取り出される。
<更新>
xt|t=xt|t-1+Ktet
Pkp8_post (t3)=Pkp8_pred (t3)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp8_pred (t3),0)
=Pkp8 (t3)-h(Pkp8_pred (t3),0)
Pkp8 (t3):時間ステップt3におけるキーポイントKp8の観測値(観測ベクトル)
Pkp8_pre (t3):時間ステップt3におけるキーポイントKp8の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp8_post (t3):時間ステップt3におけるキーポイントKp8の事後推定値(事後推定ベクトル)(xt|tに対応)
これにより、粗予測処理部312は、狭可動キーポイントであるキーポイントKp8(右腰部分)の現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkp8_post (t3)を取得する。
粗予測処理部312は、他の狭可動キーポイントについても、上記と同様の処理を行い、各狭可動キーポイントの現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkpi_post
(t3)(i:自然数、狭可動キーポイントを示す指標値(本実施形態の場合、i={1,2,3,4,5,8,9,11,12,14}))を取得する。
そして、粗予測処理部312は、上記処理により取得した各狭可動キーポイントの現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkpi_post
(t3)を含むデータをデータD2_kp_Lとして粗予測信頼度取得部321および第1メモリM1に出力する。
精密予測処理部313は、データ分解部311から出力されるデータD1_kp_Hを入力する。また、精密予測処理部313は、現時刻よりも前の時刻に取得され、第2メモリM2に記憶されているデータD1_kp_HをデータD1_kp_H_pastとして、第2メモリM2から読み出す。精密予測処理部313は、データD1_kp_HおよびデータD1_kp_H_pastを用いて、精密予測処理を実行する。
具体的には、精密予測処理部313は、時間ステップt1のときと同様に、時系列フィルタとして拡張カルマンフィルタを用いた処理(予測処理)を実行する。
具体的には、精密予測処理部313は、時間ステップt1のときと同様に、時系列フィルタとして拡張カルマンフィルタを用いた処理(予測処理)を実行する。
精密予測処理部313において、(1)前時間ステップ(時間ステップt-1)で取得された広可動キーポイントのデータ(1時間ステップ前の観測対象の内部状態を示すデータ(上記の内部状態xt-1に相当))と、(2)処理対象としている被写体人物Sub1の所定の部位の動作(被写体人物Sub1の所定の部位の移動)についての物理現象を表現する方程式(例えば、運動方程式等)から予測した予測キーポイントデータ(観測データ(上記の観測ベクトルztに相当))とを用いて時系列フィルタによる処理を行うことで、現時間ステップ(時間ステップt)での観測対象の内部状態(被写体人物Sub1のポーズデータ)を取得(推定)する。
精密予測処理部313は、時系列フィルタとして、高精度な予測処理(推定処理)を行うことができる拡張カルマンフィルタを用いて、広可動キーポイントについての予測処理(精密予測処理)を行う。
精密予測処理部313は、例えば、広可動キーポイントであるキーポイントKp16(左手部分)の現時刻(時間ステップt3)について、キーポイントKp16の内部状態変数(内部状態ベクトル)を、特徴量抽出画像Img1(t3)上のキーポイントKp16のx座標およびy座標として、拡張カルマンフィルタによる処理を行う。つまり、精密予測処理部313は、
t=t3
zT t3=PT kp16 (t3)=[xkp16 (t3),ykp16 (t3)]
zT t3:zt3の転置行列
PT kp16 (t3):Pkp16 (t3)の転置行列
xkp16 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp16のx座標
ykp16 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t3)=Pkp8_pred (t3)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t3),0)
=Pkp16 (t3)-h(Pkp16_pred (t3),0)
Pkp16 (t3):時間ステップt3におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t3):時間ステップt3におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t3):時間ステップt3におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
t=t3
zT t3=PT kp16 (t3)=[xkp16 (t3),ykp16 (t3)]
zT t3:zt3の転置行列
PT kp16 (t3):Pkp16 (t3)の転置行列
xkp16 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp16のx座標
ykp16 (t3):特徴量抽出画像Img1(t3)上のキーポイントKp16のy座標
とし、下記の更新(拡張カルマンフィルタによる更新)を行う。
<更新>
xt|t=xt|t-1+Ktet
Pkp16_post (t3)=Pkp8_pred (t3)+Ktet
et=zt-h(xt|t-1,0)=zt1-h(Pkp16_pred (t3),0)
=Pkp16 (t3)-h(Pkp16_pred (t3),0)
Pkp16 (t3):時間ステップt3におけるキーポイントKp16の観測値(観測ベクトル)
Pkp16_pre (t3):時間ステップt3におけるキーポイントKp16の事前推定値(事前推定ベクトル)(xt|t-1に対応)
Pkp16_post (t3):時間ステップt3におけるキーポイントKp16の事後推定値(事後推定ベクトル)(xt|tに対応)
また、精密予測処理部313は、カルマンゲインKtを計算するために用いられる、(1)システムの時間遷移に関する線形モデルFtと、(2)観測モデルに関する線形モデルHtとを、上記の(数式1)、(数式2)に相当する処理を行うことで取得する。そして、精密予測処理部313は、
Kt=Pt|t-1HT t+S-1 t
Pt|t-1=FtPt-1|t-1FT t+GtQtGT t
St=HtPt|t-1HT t+Rt
に相当する処理を実行することで、カルマンゲインKtを算出(取得)する。
上記処理により、精密予測処理部313は、広可動キーポイントであるキーポイントKp16(左手部分)の現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkp16_post
(t3)を取得する。
精密予測処理部313は、他の広可動キーポイントについても、上記と同様の処理を行い、各広可動キーポイントの現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkpi_post
(t3)(i:自然数、広可動キーポイントを示す指標値(本実施形態の場合、i={6,7,10,13,15,16}(左右の手、肘、足に相当)))を取得する。
そして、精密予測処理部313は、上記処理により取得した各広可動キーポイントの現時刻(時間ステップt3)における事後推定値(事後推定ベクトル)Pkpi_post
(t3)を含むデータをデータD2_kp_Hとして精密予測信頼度取得部322および第2メモリM2に出力する。
粗予測信頼度取得部321は、粗予測処理部312から出力される粗予測処理データD2_kp_Lに対して、時間ステップt1の処理と同様に、粗予測信頼度取得処理を実行することで、粗予測信頼度(粗予測信頼度マップ)を取得する。
そして、粗予測信頼度取得部321は、取得した各部位の粗予測信頼度マップD3_conf_L.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Lとして、信頼度合成部323に出力する。
精密予測信頼度取得部322は、精密予測処理部313から出力される精密予測処理データD2_kp_Hに対して、時間ステップt1の処理と同様に、精密予測信頼度取得処理を実行することで、精密予測信頼度(精密予測信頼度マップ)を取得する。
時間ステップt3において、左腕部分がオクルージョン状態であるが、精密データ取得部3では、精密予測処理(および/または、粗予測処理)により、オクルージョン状態にある部位の位置を予測(推定)することができるので、オクルージョン状態にある部位の信頼度(粗予測信頼度マップ、および/または、精密予測信頼度マップ)を取得することができる。
例えば、図14に示すように、精密予測処理データD2_kp_Hにより特定される左手部分(kp16)(オクルージョン状態の部位)の位置(左手部分に対応するキーポイントの位置(精密予測処理により推定(予測)された位置))が、図14の右上図にD2_kp_H.kp16で示した位置であるとき、精密予測信頼度取得部322は、精密予測信頼度マップの当該位置の信頼度(画素値)を所定の値(例えば、「0.2」)に設定し、それ以外の位置の信頼度(画素値)を「0」に設定することで、左手部分(kp16)の精密予測信頼度マップ(精密予測信頼度マップD3_conf_L.kp16)を取得する(図14の右下図を参照)。なお、図14では、説明便宜のため、精密予測信頼度マップの画素を4×4の矩形(16個の矩形(画素))で表示しており、他の画像領域における精密予測信頼度マップの画素の表示は省略している。
他の部位についても、粗予測信頼度取得部321は、上記と同様の処理を行うことで、各部位の精密予測信頼度マップD3_conf_H.kpxを取得する。
そして、精密予測信頼度取得部322は、取得した各部位の精密予測信頼度マップD3_conf_H.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD3_conf_Hとして、信頼度合成部323に出力する。
信頼度合成部323は、粗予測信頼度取得部321から出力されるデータD3_conf_Lと、精密予測信頼度取得部322から出力されるデータD3_conf_Hと、ヒートマップ取得部2から出力されるデータD_heatmapとを入力する。信頼度合成部323は、データD3_conf_L、データD3_conf_H、および、データD_heatmapに対して、時間ステップt1の処理と同様に、信頼度合成処理を実行する。
例えば、オクルージョン状態である左手部分(kp16)の場合、図15に示すように、同一位置の画素について、
(1)ヒートマップD_heatmap.kp16(図15の上段の図)と
(2B)精密予測信頼度マップD3_conf_H.kp16(図15の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左手部分(kp16)の合成信頼度マップD4_conf.kp16(図15の下段の図)を取得する。
(1)ヒートマップD_heatmap.kp16(図15の上段の図)と
(2B)精密予測信頼度マップD3_conf_H.kp16(図15の中段の図)、と
の加算処理(画素値ごと加算処理)を実行することで、左手部分(kp16)の合成信頼度マップD4_conf.kp16(図15の下段の図)を取得する。
なお、オクルージョン状態である左手部分(kp16)について、ヒートマップD_heatmap.kp16の各画素の値は、図15の上段の図に示すように、全て「0」(左手部分に相当する領域が検出されておらず、信頼度が「0」であると判定された状態)である。
したがって、合成信頼度マップD4_conf.kp16(図15の下段の図)は、精密予測信頼度マップD3_conf_H.kp16(図15の中段の図)と一致することとなるが、精密予測信頼度マップD3_conf_H.kp16により、オクルージョン状態の左手部分の位置が適切に予測(推定)されるので、オクルージョン状態の左手部分について、適切な合成信頼度マップD4_conf.kp16(図15の下段の図)を取得することができる。
他の部位についても、信頼度合成部323は、上記と同様の処理を行うことで、各部位の合成信頼度マップD4_conf.kpxを取得する。
そして、信頼度合成部323は、取得した各部位の合成信頼度マップD4_conf.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データD4_confとして、精密ポーズデータ取得部33に出力する。
精密ポーズデータ取得部33は、2Dポーズ推定部1から出力されるデータDi_kpと、信頼度合成部323から出力されるデータD4_confと、を入力する。精密ポーズデータ取得部33は、データDi_kp、および、データD4_conf(信頼度データD4_conf)を用いて、時間ステップt1の処理と同様に、精密ポーズデータ取得処理を実行する。
例えば、オクルージョン状態の左手部分(kp16)の場合、2Dポーズ推定部1によりオクルージョン状態の左手部分(kp16)を検出することはできず、データDi_kp.kp16を取得できない、あるいは、取得できたとしても、データDi_kp.kp16で特定される左手部分の画像上の位置は、正しい位置からずれて位置となる。したがって、データDi_kp.kp16(取得できない場合もあり)で特定される画像上の位置(特定できない場合もあり)と、合成信頼度マップD4_conf.kp16で最大値を示す画素の位置(図16の上図の4×4の矩形(マトリックス)の3行3列目の画素(画素値が「0.2」の画素)の位置)とは、略一致していない(信頼度マップの画素ピッチ(隣接画素間の距離)以上離れている)。したがって、精密ポーズデータ取得部33は、精密ポーズデータの部位kp16のキーポイントを、信頼度合成部323により取得された合成信頼度マップD4_conf.kp16により特定される画像(特徴量抽出画像Img1(t3))上の位置(合成信頼度マップD4_conf.kp16で最大値を示す画素の位置)とすることで、部位kp16の精密ポーズデータDo_kp.kp16を取得する。すなわち、精密ポーズデータ取得部33は、
Do_kp.kp16=max_P(D4_conf.kp16)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp16の精密ポーズデータDo_kp.kp16(図16の上図の4×4の矩形(マトリックス)の3行3列目の画素(画素値が「0.2」の画素)の位置に対応)を取得する(図16の下図を参照)。図16の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp16が正しい位置からずれている場合(あるいは、2Dポーズ推定部1によりデータDi_kp.kp16が取得できない場合)であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp16の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp16を取得することができる。
Do_kp.kp16=max_P(D4_conf.kp16)
max_P(Dp):信頼度マップDpにおいて、画素値(信頼度)が最大値を示す位置(画像上の位置)の情報(例えば、画像上の座標等)を取得する関数
として、部位kp16の精密ポーズデータDo_kp.kp16(図16の上図の4×4の矩形(マトリックス)の3行3列目の画素(画素値が「0.2」の画素)の位置に対応)を取得する(図16の下図を参照)。図16の下図から分かるように、2Dポーズ推定部1により取得されたデータDi_kp.kp16が正しい位置からずれている場合(あるいは、2Dポーズ推定部1によりデータDi_kp.kp16が取得できない場合)であっても、精密ポーズデータ取得部33が上記処理を実行することにより、部位kp16の正確な位置を示すデータ(キーポイント)として、精密ポーズデータDo_kp.kp16を取得することができる。
また、上記では、精密ポーズデータ取得部33において、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、合成信頼度マップD4_conf.kpxで最大値を示す画素の位置とが、略一致しているか否か(信頼度マップの画素ピッチ(隣接画素間の距離)以上離れているか否か)を判定する場合について説明したが、これに限定されることはない。例えば、精密ポーズデータ取得部33において、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、粗予測処理データD2_kp_Lまたは精密予測処理データD2_kp_Hにより特定される画像上の位置とが一致しているか否かを判定するようにしてもよい。この場合、精密データ取得部3において、予測データ取得部31から取得される粗予測処理データD2_kp_Lおよび精密予測処理データD2_kp_Hが精密ポーズデータ取得部33に入力される構成を用いればよい。
そして、2Dポーズ推定部1により取得されたデータDi_kp.kpxの画像上の位置と、粗予測処理データD2_kp_Lまたは精密予測処理データD2_kp_Hにより特定される画像上の位置とが一致していない場合、精密ポーズデータ取得部33は、合成信頼度マップD4_conf.kpxで最大値を示す画素の位置を、部位kpxの精密ポーズデータDo_kp.kpxとして取得するようにすればよい。
他の部位についても、精密ポーズデータ取得部33は、上記と同様の処理を行うことで、各部位の精密ポーズデータDo_kp.kpxを取得する。
そして、精密ポーズデータ取得部33は、取得した各部位の精密ポーズデータDo_kp.kpx(x:自然数、1≦x≦16)をまとめた(含む)データを、データDo_kpとして、2D-3D変換部4に出力する。
図17に、時間ステップt3において、精密ポーズデータ取得部33が上記処理により取得した各キーポイントのデータDo_kp.kpxをまとめたデータDo_kpの一例を示す。図17では、特徴量抽出画像Img1(t3)、2Dポーズ推定部1により取得された2Dポーズデータ(キーポイントデータDi_kp.kpx)を模式的に示した画像Img1(t3)(Di_kp)、および、精密ポーズデータ取得部33により取得された精密ポーズデータDo_kp.kpxを模式的に示した画像Img1(t3)(Do_kp)を示している。そして、(1)図17の画像Img1(t3)(Di_kp)では、データDi_kpによるキーポイントをグレーの丸で示しており、図17の画像Img1(t3)(Do_kp)では、精密ポーズデータDi_kpによるキーポイントを黒丸で示している。
図17から分かるように、画像Img1(t3)(Di_kp)では、部位kp10(右足)が正しい位置からずれており、かつ、オクルージョン状態である、部位kp15(左肘)、kp16(左手)の位置が検出されていないが、画像Img1(t3)(Do_kp)(精密ポーズデータ)では、部位kp10(右足)、kp15(左肘)、kp16(左手)の位置について、合成信頼度マップにより適切に補正されており、その結果、部位kp10(右足)、kp15(左肘)、kp16(左手)について、正しい位置のキーポイントとして取得されている。
以上のように、精密データ取得部3では、ヒートマップ取得部2により取得されたヒートマップに対して、予測データ取得部31により取得された粗予測信頼度マップまたは精密予測信頼度マップによる加算処理(同一画素における画素値の加算処理)を行うことで、オクルージョン状態である部位がある場合であっても、精度の高い信頼度マップ(合成信頼度マップ)を部位ごとに取得することができる。そして、精密データ取得部3では、合成信頼度マップに基づいて、精密ポーズデータを取得するので、より精度の高いポーズデータを取得することができる。
2D-3D変換部4は、精密データ取得部3から出力されるデータDo_kp(2次元のキーポイントのデータ)を入力する。2D-3D変換部4は、データDo_kp(2次元のキーポイントのデータ)に対して、時間ステップt1のときと同様に、2D-3D変換処理を実行し、データDo_kp(2次元のキーポイントのデータ)に対応する3次元データ(3次元のキーポイントのデータ)をデータDo_3D_kpとして取得する。
そして、2D-3D変換部4は、上記により取得したデータ(2次元のキーポイントのデータ)を、データDo_3D_kpとして、ポスト処理部5に出力する。
ポスト処理部5は、2D-3D変換部4から出力されるデータDo_3D_kpを入力し、時間ステップt1のときと同様に、当該データDo_3D_kpに対してポスト処理を実行する。
そして、ポスト処理部5は、ポスト処理により取得したデータをデータDoutとして外部に出力する。
≪まとめ≫
以上のように、ポーズデータ生成装置100では、ヒートマップ取得部2により取得されたヒートマップに対して、信頼度取得部32により取得された粗予測信頼度マップまたは精密予測信頼度マップによる加算処理(同一画素における画素値の加算処理)を行うことで、より精度の高い信頼度マップ(合成信頼度マップ)を部位ごとに取得することができる。そして、ポーズデータ生成装置100の精密データ取得部3では、合成信頼度マップに基づいて、精密ポーズデータを取得するので、精度の高いポーズデータを取得することができる。
以上のように、ポーズデータ生成装置100では、ヒートマップ取得部2により取得されたヒートマップに対して、信頼度取得部32により取得された粗予測信頼度マップまたは精密予測信頼度マップによる加算処理(同一画素における画素値の加算処理)を行うことで、より精度の高い信頼度マップ(合成信頼度マップ)を部位ごとに取得することができる。そして、ポーズデータ生成装置100の精密データ取得部3では、合成信頼度マップに基づいて、精密ポーズデータを取得するので、精度の高いポーズデータを取得することができる。
そして、ポーズデータ生成装置100では、2D-3D変換部4が、精密データ取得部3により取得された高精度な2次元のキーポイントデータ(2次元ポーズデータ)に対して、2D-3D変換を行うことで、高精度な3次元ポーズデータ(3次元のキーポイントデータ)を取得することができる。つまり、ポーズデータ生成装置100では、高精度な2次元ポーズデータを取得し、取得した2次元ポーズデータに対して、比較的演算量の少ない処理である2D-3D変換処理(時系列に連続するデータを用いることなく、1時間ステップの2次元ポーズデータ(1つの2次元ポーズデータ)を入力として、出力結果(3次元ポーズデータ)を取得する処理)を実行することで、3次元ポーズデータ(3次元のキーポイントデータ)を取得する。ポーズデータ生成装置100では、上記のように、高精度な2次元ポーズデータを用いて、2D-3D変換を行うので、2D-3D変換により取得される3次元ポーズデータも高精度なデータとなる。すなわち、ポーズデータ生成装置100では、従来技術のように、時系列に連続するデータ(時系列に連続する複数のフレーム画像(特徴量抽出画像))から、時系列のコンボリューション処理を行って3Dポーズデータを取得するといった演算量の多い複雑な処理を実行する必要がない。
したがって、ポーズデータ生成装置100では、上記の通り、従来技術のような複雑な処理を行う必要がないので、低コストで実現でき、かつ、高精度なポーズデータを取得することができる。
さらに、ポーズデータ生成装置100では、データDi_kpに対して予測処理を行うときに、部位の特徴に応じて、適用する時系列フィルタを変えて予測処理を行う。つまり、ポーズデータ生成装置100では、可動範囲が広く、激しく動くことができる部位のキーポイントのデータ(広可動キーポイントのデータ)には、高精度の時系列フィルタを用いた予測処理を行い、可動範囲が狭く、激しく動くことがない部位のキーポイントのデータ(狭可動キーポイントのデータ)には、精密予測処理ほど精度は高くないが演算量が少なくて済む時系列フィルタを用いた予測処理(粗予測処理)を行う。
つまり、ポーズデータ生成装置100では、予測が難しい広可動キーポイントについては、精度の高い時系列フィルタによる予測処理を行い、予測がそれほど難しくない狭可動キーポイントについては、演算量が少なくて済む時系列フィルタによる予測処理を行うので、予測データを取得するために必要なトータルの演算量を抑えつつ、高精度な予測データを取得することができる。
そして、ポーズデータ生成装置100では、例えば、オクルージョン状態である部位については、上記処理により取得された高精度な予測データ(2次元キーポイントの予測データ)に基づいて、キーポイントのデータを取得できるので、オクルージョン状態が発生している特徴量抽出画像が入力された場合であっても、適切な2次元ポーズデータ(2次元キーポイントデータ)を取得することができる。そして、ポーズデータ生成装置100では、このようにして取得した2次元ポーズデータ(2次元キーポイントデータ)を2D-3D変換することで、オクルージョン状態が発生している特徴量抽出画像が入力された場合であっても、精度の高い3次元ポーズデータを取得することができる。
≪第1変形例≫
次に、第1実施形態の第1変形例について、説明する。なお、上述の実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
次に、第1実施形態の第1変形例について、説明する。なお、上述の実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
図18は、第1実施形態の第1変形例に係るポーズデータ生成装置100Aの概略構成図である。
図19は、第1実施形態の第1変形例に係るポーズデータ生成装置100Aの精密データ取得部3Aの概略構成図である。
本変形例のポーズデータ生成装置100Aは、図18に示すように、第1実施形態のポーズデータ生成装置100において、精密データ取得部3を精密データ取得部3Aに置換した構成を有している。
そして、本変形例の精密データ取得部3Aは、図19に示すように、第1実施形態の精密データ取得部3において、第2データ分解部34を追加した構成を有している。
第1実施形態のポーズデータ生成装置100では、(1)粗予測処理において、粗予測処理部312により取得されたデータDo_kp_Lを、第1メモリM1に記憶し、次の時間ステップにおける過去のデータ(1時間ステップ前のデータ)として用いて、時系列フィルタによる処理を行い、かつ、(2)精密予測処理において、精密予測処理部313により取得されたデータDo_kp_Hを、第2メモリM2に記憶し、次の時間ステップにおける過去のデータ(1時間ステップ前のデータ)として用いて、時系列フィルタによる処理を行うものであった。
それに対して、本変形例のポーズデータ生成装置100Aでは、精密データ取得部3により取得された精密ポーズデータDo_kpを、第2データ分解部34により分解したデータを、第1メモリM1および第2メモリM2に記憶し、粗予測処理および精密予測処理において、次の時間ステップにおける過去のデータ(1時間ステップ前のデータ)として用いて、時系列フィルタによる処理を実行する。
つまり、第2データ分解部34は、データ分解部311と同様の処理を実行する機能部であり、精密ポーズデータ取得部33から出力されるデータDo_kpに対して、分解処理(キーポイントデータを人の部位ごとに分解する処理)(データ分解部311と同じように部位を分解する処理)を実行し、粗予測処理の対象とするデータDo_kp_Lと、精密予測処理の対象とするデータDo_kp_Hとを取得する。そして、第2データ分解部34は、取得したデータDo_kp_Lを第1メモリM1に出力し、取得したデータDo_kp_Hを第2メモリM2に出力する。
そして、粗予測処理部312は、第1メモリM1に記憶されているデータ(精密ポーズデータDo_kpを分解処理により取得されたデータ)をD1_kp_L_pastとして、第1メモリM1から読み出し、当該データを用いて、時系列フィルタの処理を実行する。
また、精密予測処理部313は、第2メモリM2に記憶されているデータ(精密ポーズデータDo_kpを分解処理により取得されたデータ)をD1_kp_H_pastとして、第2メモリM2から読み出し、当該データを用いて、時系列フィルタの処理を実行する。
このように、本変形例のポーズデータ生成装置100Aでは、粗予測処理および精密予測処理により取得されたデータの代わりに、より精度の高い(合成信頼度マップによる処理が実行された後に取得された)精密ポーズデータDo_kpを分解したデータDo_kp_L、および、Do_kp_Hを用いて、粗予測処理および精密予測処理を実行するため、より精度の高いデータ(粗予測処理および精密予測処理により取得されるデータ)を取得することができる。そして、上記により取得されたデータ(粗予測処理および精密予測処理により取得されるデータD2_kp_L、および、D2_kp_H)を用いて、信頼度合成処理、精密ポーズデータ取得処理を行うことで、さらに高精度の精密ポーズデータDo_kpを取得することができる。
≪第2変形例≫
次に、第1実施形態の第2変形例について、説明する。なお、上述の実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
次に、第1実施形態の第2変形例について、説明する。なお、上述の実施形態と同様の部分については、同一符号を付し、詳細な説明を省略する。
図20は、第1実施形態の第2変形例に係るポーズデータ生成装置100Bの概略構成図である。
図21は、第1実施形態の第2変形例に係るポーズデータ生成装置100Bの精密データ取得部3Bの概略構成図である。
本変形例のポーズデータ生成装置100Bは、図20に示すように、第1実施形態のポーズデータ生成装置100において、精密データ取得部3を精密データ取得部3Bに置換し、さらに、分解部位設定部6を追加した構成を有している。
そして、本変形例の精密データ取得部3Bは、図21に示すように、第1実施形態の精密データ取得部3において、データ分解部311をデータ分解部311Aに置換した構成を有している。
分解部位設定部6は、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを設定するための機能部である。分解部位設定部6は、例えば、所定のアプリケーションの実行を制御する制御部(不図示)(あるいは、外部入力インターフェース(不図示))からの指令により、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを設定する。そして、分解部位設定部6は、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位との設定情報を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。
データ分解部311Aは、分解部位設定部6から出力されるデータD_setを入力し、当該データD_setに従い、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを特定し、2Dポーズ推定部1から出力されるデータDi_kpに対して分解処理(キーポイントデータを人の部位ごとに分解する処理)を実行する。つまり、データ分解部311Aは、(1)データD_setで粗予測処理の対象とする部位に指定されている部位のキーポイントのデータをデータD1_kp_Lとして粗予測処理部312に出力し、(2)データD_setで精密予測処理の対象とする部位に指定されている部位のキーポイントのデータをデータD1_kp_Hとして精密予測処理部313に出力する。
本変形例のポーズデータ生成装置100Bでは、分解部位設定部6により、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを指定することができ、それに基づいて、データ分解部311が、キーポイントのデータを分解し、粗予測処理、および、精密予測処理を実行することができる。このため、本変形例のポーズデータ生成装置100Bでは、多様な条件に基づいて、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを決定(変更)することができる。
本変形例のポーズデータ生成装置100Bの適用例を以下に示す。
(A)ゲームのステージで変更する場合(速いテンポの音楽再生)
例えば、所定のアプリケーションが、音楽再生をしつつ、ユーザーにダンスを要請するゲームを実行するためのアプリケーションである場合であって、ゲームのステージごとに、音楽のテンポが変わる場合、速いテンポの音楽が再生されるステージにおいて、分解部位設定部6は、(1)可動範囲の広い、右手、左手、右肘、左肘、右足、左足、右膝、左膝を、精密予測処理の処理対象となる部位に設定し、かつ、(2)それ以外の部位については、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、(1)可動範囲の広い、右手、左手、右肘、左肘、右足、左足、右膝、左膝については、精密予測処理を実行し、(2)それ以外の部位については、粗予測処理を実行することができる。
例えば、所定のアプリケーションが、音楽再生をしつつ、ユーザーにダンスを要請するゲームを実行するためのアプリケーションである場合であって、ゲームのステージごとに、音楽のテンポが変わる場合、速いテンポの音楽が再生されるステージにおいて、分解部位設定部6は、(1)可動範囲の広い、右手、左手、右肘、左肘、右足、左足、右膝、左膝を、精密予測処理の処理対象となる部位に設定し、かつ、(2)それ以外の部位については、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、(1)可動範囲の広い、右手、左手、右肘、左肘、右足、左足、右膝、左膝については、精密予測処理を実行し、(2)それ以外の部位については、粗予測処理を実行することができる。
(B)ゲームのステージで変更する場合(遅いテンポの音楽再生)
例えば、所定のアプリケーションが、音楽再生をしつつ、ユーザーにダンスを要請するゲームを実行するためのアプリケーションである場合であって、ゲームのステージごとに、音楽のテンポが変わる場合、遅いテンポの音楽が再生されるステージにおいて、分解部位設定部6は、すべての部位を、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、全ての部位について、粗予測処理を実行する。この場合、遅いテンポの音楽が再生されおり、各部位が大きく(激しく)動くことが少ないため、計算量の少ない粗予測処理をすべての部位について実行しても、精度が落ちることがなく、高精度なポーズデータを取得できる。つまり、ポーズデータ生成装置100Bにおいて、上記のようにすることで、計算量を低減させつつ、高精度なポーズデータを取得できる。
例えば、所定のアプリケーションが、音楽再生をしつつ、ユーザーにダンスを要請するゲームを実行するためのアプリケーションである場合であって、ゲームのステージごとに、音楽のテンポが変わる場合、遅いテンポの音楽が再生されるステージにおいて、分解部位設定部6は、すべての部位を、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、全ての部位について、粗予測処理を実行する。この場合、遅いテンポの音楽が再生されおり、各部位が大きく(激しく)動くことが少ないため、計算量の少ない粗予測処理をすべての部位について実行しても、精度が落ちることがなく、高精度なポーズデータを取得できる。つまり、ポーズデータ生成装置100Bにおいて、上記のようにすることで、計算量を低減させつつ、高精度なポーズデータを取得できる。
(C)ゲームのステージで変更する場合(所定の部位を動かすことが既知である場合)
例えば、所定のアプリケーションが、ユーザーに所定の部位(例えば、左手)を動かすことを要請するゲームを実行するためのアプリケーションである場合において、分解部位設定部6は、(1)ユーザーが動かす部位(アプリーケーションにより既知)(例えば、左手)を、精密予測処理の処理対象となる部位に設定し、かつ、(2)それ以外の部位については、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、(1)ユーザーが動かす部位(アプリーケーションにより既知)(例えば、左手)については、精密予測処理を実行し、(2)それ以外の部位については、粗予測処理を実行することができる。このように、ユーザーが動かす部位が既知である場合、ポーズデータ生成装置100Bにおいて、当該部位について精密予測処理を実行し、それ以外の部位については、粗予測処理を実行することで、計算量を抑えつつ、高精度なポーズデータを取得することができる。
例えば、所定のアプリケーションが、ユーザーに所定の部位(例えば、左手)を動かすことを要請するゲームを実行するためのアプリケーションである場合において、分解部位設定部6は、(1)ユーザーが動かす部位(アプリーケーションにより既知)(例えば、左手)を、精密予測処理の処理対象となる部位に設定し、かつ、(2)それ以外の部位については、粗予測処理の処理対象となる部位に設定する。そして、この設定の情報(部位の分解設定情報)を含むデータをデータD_setとして、精密データ取得部3のデータ分解部311Aに出力する。そして、ポーズデータ生成装置100Bでは、上記の場合、(1)ユーザーが動かす部位(アプリーケーションにより既知)(例えば、左手)については、精密予測処理を実行し、(2)それ以外の部位については、粗予測処理を実行することができる。このように、ユーザーが動かす部位が既知である場合、ポーズデータ生成装置100Bにおいて、当該部位について精密予測処理を実行し、それ以外の部位については、粗予測処理を実行することで、計算量を抑えつつ、高精度なポーズデータを取得することができる。
なお、本変形例は、第1変形例のポーズデータ生成装置100Aに対しても適用可能である。本変形例を、第1変形例のポーズデータ生成装置100Aに対して適用する場合、分解部位設定部6から出力されるデータD_setを第2データ分解部34にも入力する構成とし、第2データ分解部34が、データD_setに基づいて、精密ポーズデータDo_kpの部位を分解し、分解したデータ(キーポイントのデータ)を、データDo_kp_L、および、Do_kp_Hとして取得するようにすればよい。
また、上記では、ゲームのステージごとに、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを指定する場合について、説明したが、これに限定されることはなく、例えば、所定の時間(所定の期間)ごとに、あるいは、所定の条件ごとに、分解部位設定部6により、粗予測処理の処理対象となる部位と、精密予測処理の処理対象となる部位とを指定(設定)するようにしてもよい。
[他の実施形態]
上記実施形態(変形例を含む)では、ポーズデータ生成装置が、データDin(フレーム画像データ)から、特徴量抽出部PP1により、特徴量抽出画像データを取得し、取得した特徴量抽出画像データを2Dポーズ推定部1およびヒートマップ取得部2に入力する構成を有する場合について、説明したが、これに限定されることはない。例えば、ポーズデータ生成装置において、特徴量抽出部PP1を省略し、データDin(フレーム画像データ)を2Dポーズ推定部1およびヒートマップ取得部2に入力する構成としてもよい。この場合、2Dポーズ推定部1およびヒートマップ取得部2が、特徴量抽出画像データを取得する処理を行い、2Dポーズ推定処理およびヒートマップ取得処理を実行するようにしてもよい。
上記実施形態(変形例を含む)では、ポーズデータ生成装置が、データDin(フレーム画像データ)から、特徴量抽出部PP1により、特徴量抽出画像データを取得し、取得した特徴量抽出画像データを2Dポーズ推定部1およびヒートマップ取得部2に入力する構成を有する場合について、説明したが、これに限定されることはない。例えば、ポーズデータ生成装置において、特徴量抽出部PP1を省略し、データDin(フレーム画像データ)を2Dポーズ推定部1およびヒートマップ取得部2に入力する構成としてもよい。この場合、2Dポーズ推定部1およびヒートマップ取得部2が、特徴量抽出画像データを取得する処理を行い、2Dポーズ推定処理およびヒートマップ取得処理を実行するようにしてもよい。
上記実施形態(変形例を含む)では、(1)粗予測処理部312が、粗予測処理として、カルマンフィルタを用いた処理を実行し、(2)精密予測処理部313が、精密予測処理として、拡張カルマンフィルタを用いた処理を実行する場合について、説明したが、これに限定されることはない。例えば、粗予測処理部312が、粗予測処理として、線形補間処理やスプライン補間処理を用いた処理を実行するようにしてもよい。
また、精密予測処理部313が、精密予測処理として、無香料カルマンフィルタやパーティクルフィルタを用いた処理を実行するようにしてもよい。また、非線形なシステムモデルを取り扱うことができる上記以外の時系列フィルタを用いて、精密予測処理を実行するようにしてもよい。
また、上記実施形態(変形例を含む)において、粗予測信頼度マップにおいて、粗予測処理により取得される事後確率分布における確率密度が最大である点(画素)(粗予測処理により推定(予測)されたキーポイント)のみを所定の値(例えば、「0.2」(なお、所定の値は「0.2」以外の値であってもよい。))とする場合について説明したが、これに限定されることはない。例えば、粗予測信頼度マップにおいて、粗予測処理により取得される事後確率分布における確率密度に応じて各点(各画素)(例えば、粗予測処理により推定(予測)されたキーポイントの周辺の画素)を所定の値(例えば、「0.2」を最大値として、各点(各画素)の粗予測処理により取得される事後確率分布における確率密度に対応する値(例えば、比例する値))とするようにしてもよい。
また、上記実施形態(変形例を含む)において、精密予測信頼度マップにおいて、精密予測処理により取得される事後確率分布における確率密度が最大である点(画素)(精密予測処理により推定(予測)されたキーポイント)のみを所定の値(例えば、「0.2」)とする場合について説明したが、これに限定されることはない。例えば、精密予測信頼度マップにおいて、精密予測処理により取得される事後確率分布における確率密度に応じて各点(各画素)(例えば、精密予測処理により推定(予測)されたキーポイントの周辺の画素)を所定の値(例えば、「0.2」を最大値として、各点(各画素)の精密予測処理により取得される事後確率分布における確率密度に対応する値(例えば、比例する値))とするようにしてもよい。
また、上記実施形態(変形例を含む)において、粗予測処理の処理対象とする部位と、精密予測処理の処理対象とする部位と、の分解の方法(分類方法)は、上記実施形態(変形例を含む)で示した方法に限定されず、他の方法(他の条件)により、粗予測処理の処理対象とする部位と、精密予測処理の処理対象とする部位と、を分解(分類)するようにしてもよい。
例えば、下記のような条件に基づいて、粗予測処理の処理対象とする部位と、精密予測処理の処理対象とする部位と、分解(分類)するようにしてもよい。
(1)部位の動く速度、加速度、所定の時間内における速度の変化、加速度の変化。
(2)部位の動きのランダム性。
(3)部位の動きの線形性、非線形性。
(4)ポーズデータ生成装置とともに実行されるアプリケーションにより一定の条件が変化しない期間および/またはステージ。
(1)部位の動く速度、加速度、所定の時間内における速度の変化、加速度の変化。
(2)部位の動きのランダム性。
(3)部位の動きの線形性、非線形性。
(4)ポーズデータ生成装置とともに実行されるアプリケーションにより一定の条件が変化しない期間および/またはステージ。
また、上記実施形態(変形例を含む)でのキーポイントの設定方法は一例であり、他のキーポイントの設定方法を採用してもよい。また、キーポイントの数、位置についても、上記実施形態に限定されることはなく、他のキーポイントの数、位置を採用したキーポイントの設定方法を使用してもよい。
また、上記実施形態(変形例を含む)において、被写体が人である場合について説明したが、これに限定されることなく、被写体は、移動可能であり、かつ、その姿勢が可変である、人、生物、物体等であってもよい。
また、上記実施形態(変形例を含む)で説明したポーズデータ生成装置の各ブロック(各機能部)は、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。また、上記実施形態で説明したポーズデータ生成システム、CGデータシステム、ポーズデータ生成装置の各ブロック(各機能部)は、複数のLSIなどの半導体装置により実現されるものであってもよい。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
また、上記各実施形態の各機能ブロックの処理の一部または全部は、プログラムにより実現されるものであってもよい。そして、上記各実施形態の各機能ブロックの処理の一部または全部は、コンピュータにおいて、中央演算装置(CPU)により行われる。また、それぞれの処理を行うためのプログラムは、ハードディスク、ROMなどの記憶装置に格納されており、ROMにおいて、あるいはRAMに読み出されて実行される。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェアおよびハードウェアの混在処理により実現しても良い。
例えば、上記実施形態の各機能部を、ソフトウェアにより実現する場合、図22に示したハードウェア構成(例えば、CPU、GPU、ROM、RAM、入力部、出力部等をバスBusにより接続したハードウェア構成)を用いて、各機能部をソフトウェア処理により実現するようにしてもよい。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で、実行順序を入れ替えることができるものである。
前述した方法をコンピュータに実行させるコンピュータプログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体は、本発明の範囲に含まれる。ここで、コンピュータ読み取り可能な記録媒体としては、例えば、フレキシブルディスク、ハードディスク、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、大容量DVD、次世代DVD、半導体メモリを挙げることができる。
上記コンピュータプログラムは、上記記録媒体に記録されたものに限られず、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送されるものであってもよい。
また、文言「部」は、「サーキトリー(circuitry)」を含む概念であってもよい。サーキトリーは、ハードウェア、ソフトウェア、あるいは、ハードウェアおよびソフトウェアの混在により、その全部または一部が、実現されるものであってもよい。
ここに開示される要素の機能は、当該開示される要素を実行するように構成された、あるいは当該開示される機能を実行するようにプログラミングされた汎用プロセッサ、専用プロセッサ、集積回路、ASIC(「特定用途向け集積回路」)、従来の回路構成及び/またはそれらの組み合わせを含む回路構成あるいは処理回路構成が用いられて実装されてもよい。プロセッサは、それが、その中にトランジスタ及び他の回路構成を含むとき、処理回路構成あるいは回路構成として見なされる。本開示において、回路構成、ユニットあるいは手段は、挙げられた機能を実行するハードウェア、あるいは当該機能を実行するようにプログラミングされたハードウェアである。ハードウェアは、挙げられた機能を実行するようにプログラミングされた、あるいは当該機能を実行するように構成された、ここで開示されるいかなるハードウェアあるいは既知の他のものであってもよい。ハードウェアが、あるタイプの回路構成として見なされるかもしれないプロセッサであるとき、回路構成、手段あるいはユニットは、ハードウェアとソフトウェアの組み合わせ、ハードウェアを構成するために用いられるソフトウェア及び/またはプロセッサである。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更および修正が可能である。
100、100A、100B ポーズデータ生成装置
PP1 特徴量抽出部
1 2Dポーズ推定部
2 ヒートマップ取得部
3、3A、3B 精密データ取得部
31、31A 予測データ取得部
32 信頼度取得部
33 精密ポーズデータ取得部
4 2D-3D変換部
5 ポスト処理部
6 分解部位設定部
PP1 特徴量抽出部
1 2Dポーズ推定部
2 ヒートマップ取得部
3、3A、3B 精密データ取得部
31、31A 予測データ取得部
32 信頼度取得部
33 精密ポーズデータ取得部
4 2D-3D変換部
5 ポスト処理部
6 分解部位設定部
Claims (11)
- 3次元空間内の被写体を撮像することで取得される画像データまたは前記画像データから特徴量を抽出したデータである特徴量抽出データから、前記被写体の所定の部位の位置を示すデータであるキーポイントデータを取得することで、前記被写体の2次元ポーズデータを取得する2Dポーズ推定部と、
前記画像データまたは前記特徴量抽出データにより形成される2次元画像上の所定の画像領域が、前記被写体の所定の部位に相当する画像領域であることの確からしさを示す値である第1信頼度を取得することで、前記被写体の部位ごとのヒートマップを取得するヒートマップ取得部と、
前記2Dポーズ推定部により取得された前記2次元ポーズデータに含まれるキーポイントデータを用いて予測処理を実行することで、予測キーポイントデータを取得し、取得した予測キーポイントデータを含むデータを予測2次元ポーズデータとして取得する予測データ取得部と、
前記被写体の部位ごとに、前記ヒートマップにより特定される前記第1信頼度と、前記予測2次元ポーズデータに含まれるキーポイントデータの信頼度である第2信頼度とを取得するとともに、前記第1信頼度と前記第2信頼度とを合成する処理を行うことで合成信頼度を取得する信頼度取得部と、
前記合成信頼度に基づいて、前記被写体の各部位の位置を決定することで、精密2次元ポーズデータを取得する精密ポーズデータ取得部と、
を備えるポーズデータ生成装置。 - 予測データ取得部は、
前記被写体の部位ごとに、前記精密ポーズデータ取得部によって現時刻よりも前に取得された精密2次元ポーズデータを用いて、前記予測処理を行う、
請求項1に記載のポーズデータ生成装置。 - 前記予測データ取得部は、
前記2次元ポーズデータに含まれるキーポイントデータを、第1グループおよび第2グループに分類し、
(1)前記第1グループに分類されたキーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント粗予測データを取得し、
(2)前記第2グループに分類されたキーポイントデータについては、前記第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、当該キーポイントデータの予測データであるキーポイント精密予測データを取得し、
前記信頼度取得部は、
(1)前記第1グループに分類されたキーポイントデータに対応する部位については、前記キーポイント粗予測データに基づいて取得した信頼度を、前記第2信頼度とし、
(2)前記第2グループに分類されたキーポイントデータに対応する部位については、前記キーポイント精密予測データに基づいて取得した信頼度を、前記第2信頼度として、
前記第1信頼度と前記第2信頼度とを合成する処理を行うことで合成信頼度を取得する、
請求項1または2に記載のポーズデータ生成装置。 - 前記第1グループおよび前記第2グループの分類方法は、所定の条件により、決定されるものであり、前記所定の条件は、
(1)部位の動く速度、加速度、所定の時間内における速度の変化、加速度の変化、
(2)部位の動きのランダム性、
(3)部位の動きの線形性、非線形性、および、
(4)ポーズデータ生成装置とともに実行されるアプリケーションにより一定の条件が変化しない期間および/またはステージ、
の少なくとも1つに基づくものである、
請求項3に記載のポーズデータ生成装置。 - 前記予測データ取得部は、
前記2次元ポーズデータに含まれるキーポイントデータを、可動範囲が広い部位のキーポイントのデータである広可動キーポイントデータと、可動範囲が狭い部位のキーポイントのデータである狭可動キーポイントデータとに分解し、
(1)前記狭可動キーポイントデータについては、第1予測精度を有する予測処理である粗予測処理を実行することで、前記狭可動キーポイントデータの予測データである狭可動キーポイント予測データを取得し、
(2)前記広可動キーポイントデータについては、前記第1予測精度よりも予測精度の高い第2予測精度を有する精密予測処理を実行することで、前記広可動キーポイントデータの予測データである広可動キーポイント予測データを取得し、
前記狭可動キーポイント予測データと前記広可動キーポイント予測データとを含むデータを前記予測2次元ポーズデータとして取得する、
請求項1または2に記載のポーズデータ生成装置。 - 前記予測データ取得部は、
(1)第1精度を有する時系列フィルタを用いて前記粗予測処理を実行し、
(2)前記第1精度よりも高い第2精度を有する時系列フィルタを用いて前記精密予測処理を実行する、
請求項3から5のいずれかに記載のポーズデータ生成装置。 - 前記第1精度を有する時系列フィルタは、状態空間モデルが線形作用素により表現されるシステムモデルを処理対象とする時系列フィルタであり、
前記第2精度を有する時系列フィルタは、状態空間モデルが非線形作用素により表現されるシステムモデルを処理対象とする時系列フィルタである、
請求項6に記載のポーズデータ生成装置。 - 前記第1精度を有する時系列フィルタは、カルマンフィルタであり、
前記第2精度を有する時系列フィルタは、拡張カルマンフィルタ、無香料カルマンフィルタ、およびパーティクルフィルタの中のいずれか1つである、
請求項6に記載のポーズデータ生成装置。 - 前記精密2次元ポーズデータに対して2次元―3次元変換処理を行うことで、精密2次元ポーズデータに対応する3次元のポーズデータである精密3次元ポーズデータを取得する2D-3D変換部をさらに備える、
請求項1から8のいずれかに記載のポーズデータ生成装置。 - 3次元空間内の被写体を撮像することで取得される画像データまたは前記画像データから特徴量を抽出したデータである特徴量抽出データから、前記被写体の所定の部位の位置を示すデータであるキーポイントデータを取得することで、前記被写体の2次元ポーズデータを取得する2Dポーズ推定ステップと、
前記画像データまたは前記特徴量抽出データにより形成される2次元画像上の所定の画像領域が、前記被写体の所定の部位に相当する画像領域であることの確からしさを示す値である第1信頼度を取得することで、前記被写体の部位ごとのヒートマップを取得するヒートマップ取得ステップと、
前記2Dポーズ推定ステップにより取得された前記2次元ポーズデータに含まれるキーポイントデータを用いて予測処理を実行することで、予測キーポイントデータを取得し、取得した予測キーポイントデータを含むデータを予測2次元ポーズデータとして取得する予測データ取得ステップと、
前記被写体の部位ごとに、前記ヒートマップにより特定される前記第1信頼度と、前記予測2次元ポーズデータに含まれるキーポイントデータの信頼度である第2信頼度とを取得するとともに、前記第1信頼度と前記第2信頼度とを合成する処理を行うことで合成信頼度を取得する信頼度取得ステップと、
前記合成信頼度に基づいて、前記被写体の各部位の位置を決定することで、精密2次元ポーズデータを取得する精密ポーズデータ取得ステップと、
を備えるポーズデータ生成方法。 - 請求項10に記載のポーズデータ生成方法をコンピュータに実行させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021075863A JP7566683B2 (ja) | 2021-04-28 | 2021-04-28 | ポーズデータ生成装置、ポーズデータ生成方法、および、プログラム |
JP2021-075863 | 2021-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022230221A1 true WO2022230221A1 (ja) | 2022-11-03 |
Family
ID=83846836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/040988 WO2022230221A1 (ja) | 2021-04-28 | 2021-11-08 | ポーズデータ生成装置、ポーズデータ生成方法、および、プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7566683B2 (ja) |
WO (1) | WO2022230221A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017097577A (ja) * | 2015-11-24 | 2017-06-01 | キヤノン株式会社 | 姿勢推定方法及び姿勢推定装置 |
CN111310625A (zh) * | 2020-02-06 | 2020-06-19 | 上海智幻软件科技有限公司 | 一种基于openpose的多人姿势检测的方法及系统 |
CN111339903A (zh) * | 2020-02-21 | 2020-06-26 | 河北工业大学 | 一种多人人体姿态估计方法 |
-
2021
- 2021-04-28 JP JP2021075863A patent/JP7566683B2/ja active Active
- 2021-11-08 WO PCT/JP2021/040988 patent/WO2022230221A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017097577A (ja) * | 2015-11-24 | 2017-06-01 | キヤノン株式会社 | 姿勢推定方法及び姿勢推定装置 |
CN111310625A (zh) * | 2020-02-06 | 2020-06-19 | 上海智幻软件科技有限公司 | 一种基于openpose的多人姿势检测的方法及系统 |
CN111339903A (zh) * | 2020-02-21 | 2020-06-26 | 河北工业大学 | 一种多人人体姿态估计方法 |
Non-Patent Citations (2)
Title |
---|
CHENG YU; YANG BO; WANG BO; WENDING YAN; TAN ROBBY: "Occlusion-Aware Networks for 3D Human Pose Estimation in Video", 2019 IEEE/CVF INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV), IEEE, 27 October 2019 (2019-10-27), pages 723 - 732, XP033723978, DOI: 10.1109/ICCV.2019.00081 * |
PAVLLO DARIO; FEICHTENHOFER CHRISTOPH; GRANGIER DAVID; AULI MICHAEL: "3D Human Pose Estimation in Video With Temporal Convolutions and Semi-Supervised Training", 2019 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), IEEE, 15 June 2019 (2019-06-15), pages 7745 - 7754, XP033687247, DOI: 10.1109/CVPR.2019.00794 * |
Also Published As
Publication number | Publication date |
---|---|
JP7566683B2 (ja) | 2024-10-15 |
JP2022170022A (ja) | 2022-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tai et al. | Equivariant transformer networks | |
CN107507126B (zh) | 一种利用rgb图像还原3d场景的方法 | |
US8724906B2 (en) | Computing pose and/or shape of modifiable entities | |
JP6030617B2 (ja) | 画像処理装置および画像処理方法 | |
WO2008007471A1 (fr) | Procédé de suivi d'un marcheur et dispositif de suivi d'un marcheur | |
JP2021111114A (ja) | 学習データ生成プログラム、学習データ生成方法及び推定装置 | |
KR102280201B1 (ko) | 머신 러닝을 이용하여 은닉 이미지를 추론하는 방법 및 장치 | |
Dundar et al. | Unsupervised disentanglement of pose, appearance and background from images and videos | |
JP5837860B2 (ja) | 動き類似度算出装置、動き類似度算出方法およびコンピュータプログラム | |
CN113989928B (zh) | 一种动作捕捉和重定向方法 | |
CN111598995A (zh) | 一种基于原型分析的自监督多目三维人体姿态估计方法 | |
Ren et al. | An investigation of skeleton-based optical flow-guided features for 3D action recognition using a multi-stream CNN model | |
JP5503510B2 (ja) | 姿勢推定装置および姿勢推定プログラム | |
WO2022230221A1 (ja) | ポーズデータ生成装置、ポーズデータ生成方法、および、プログラム | |
JP7208479B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2016081252A (ja) | 画像処理装置および画像処理方法 | |
CN112508776B (zh) | 动作迁移方法、装置和电子设备 | |
KR20230083212A (ko) | 객체 자세 추정 장치 및 방법 | |
JP4673241B2 (ja) | 動体追跡装置、動体追跡方法及びその方法を実現したプログラムを格納した記録媒体 | |
Pan et al. | Modeling for deformable body and motion analysis: A review | |
JP7444646B2 (ja) | ポーズデータ生成装置、cgデータ生成システム、ポーズデータ生成方法、および、プログラム | |
JP2001222707A (ja) | 中間画像合成方法、中間画像合成装置、中間画像合成プログラムを記録した記録媒体 | |
Jiang et al. | Real-time target detection and tracking system based on stereo camera for quadruped robots | |
Wang et al. | A Survey on 3D Human Avatar Modeling--From Reconstruction to Generation | |
US20230130397A1 (en) | Determination method and information processing apparatus |
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: 21939376 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 21939376 Country of ref document: EP Kind code of ref document: A1 |