WO2022190206A1 - 骨格認識方法、骨格認識プログラムおよび体操採点支援システム - Google Patents

骨格認識方法、骨格認識プログラムおよび体操採点支援システム Download PDF

Info

Publication number
WO2022190206A1
WO2022190206A1 PCT/JP2021/009267 JP2021009267W WO2022190206A1 WO 2022190206 A1 WO2022190206 A1 WO 2022190206A1 JP 2021009267 W JP2021009267 W JP 2021009267W WO 2022190206 A1 WO2022190206 A1 WO 2022190206A1
Authority
WO
WIPO (PCT)
Prior art keywords
feature
features
joint
abnormal
group information
Prior art date
Application number
PCT/JP2021/009267
Other languages
English (en)
French (fr)
Inventor
達也 鈴木
優 石川
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2023504918A priority Critical patent/JPWO2022190206A1/ja
Priority to CN202180093006.6A priority patent/CN116830166A/zh
Priority to PCT/JP2021/009267 priority patent/WO2022190206A1/ja
Priority to EP21930063.9A priority patent/EP4307213A4/en
Publication of WO2022190206A1 publication Critical patent/WO2022190206A1/ja
Priority to US18/356,043 priority patent/US20230368415A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/62Extraction of image or video features relating to a temporal dimension, e.g. time-based feature extraction; Pattern tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image

Definitions

  • the present invention relates to a skeleton recognition method and the like.
  • 3D sensing technology has been established to detect the 3D skeletal coordinates of a person with an accuracy of ⁇ 1 cm from multiple 3D laser sensors. This 3D sensing technology is expected to be applied to a gymnastics scoring support system and expanded to other sports and other fields.
  • a method using a 3D laser sensor is referred to as a laser method.
  • the laser is irradiated approximately 2 million times per second, and the depth and information of each irradiation point, including the target person, are obtained based on the laser's travel time (Time of Flight: ToF).
  • ToF Time of Flight
  • 3D skeleton recognition is performed using an image system instead of a laser system.
  • a CMOS (Complementary Metal Oxide Semiconductor) imager is used to obtain RGB (Red Green Blue) data of each pixel, and an inexpensive RGB camera can be used.
  • 2D features include 2D skeleton information and heatmap information.
  • FIG. 22 is a diagram showing an example of a human body model.
  • the human body model M1 is composed of 21 joints.
  • each joint is indicated by a node and assigned a number from 0 to 20.
  • the relationship between node numbers and joint names is shown in table Te1.
  • the joint name corresponding to node 0 is "SPINE_BASE”. Description of joint names for nodes 1 to 20 is omitted.
  • Methods using triangulation include triangulation using two cameras and triangulation using three or more cameras. For convenience, triangulation using two cameras is referred to as prior art 1, triangulation using three or more cameras as prior art 2, and a method using machine learning as prior art 3.
  • FIG. 23 is a diagram for explaining triangulation using two cameras.
  • triangulation is defined as a method of measuring the three-dimensional position of the subject P from the triangular relationship using the features of the two cameras Ca1A and Ca1B.
  • Im2A is the camera image of the camera Ca1A
  • Im2B is the camera image of the camera Ca1B.
  • Equation (1) Equation (2) and Equation (2). It is assumed that the origin of (X, Y, Z) is at the center of the optical centers of the two cameras Ca1A and Ca1B.
  • FIG. 24 is a diagram for explaining triangulation using three cameras.
  • the triangulation described in FIG. 23 is extended to three or more cameras, and the best camera combination is estimated by an algorithm called RANSAC (Random Sample Consensus).
  • the device of prior art 2 acquires the 2D joint positions of the subject with all the cameras 1-1, 1-2, 1-3, and 1-4 (step S1).
  • the device of prior art 2 selects a combination of two cameras from all cameras 1-1 to 1-4, and calculates 3D joint positions by triangulation described with reference to FIG. 23 (step S2).
  • the device of prior art 2 reprojects the 3D skeleton onto all the cameras 1-1 to 1-4, and counts the number of cameras whose deviation from the 2D joint positions is equal to or less than a threshold (step S3).
  • the device of prior art 2 repeatedly executes the processes of steps S2 and S3, and adopts the combination of two cameras with the largest number of cameras whose deviation from the 2D joint position is equal to or less than the threshold as the best camera combination. (Step S4).
  • processing time is required to search for the two optimal cameras when obtaining the 3D skeleton.
  • FIG. 25 is a diagram for explaining a technique using machine learning.
  • 2D features 22 representing each joint feature are acquired by applying 2D backbone processing 21a to each input image 21 captured by each camera.
  • aggregated volumes 23 are obtained by back-projecting each 2D feature 22 onto a 3Dcube according to camera parameters.
  • aggregated volumes 23 are input to V2V (neural network, P3) 24 to obtain processed volumes 25 representing the likelihood of each joint.
  • Processed volumes 25 correspond to a heatmap representing the 3D likelihood of each joint.
  • 3D skeleton information 27 is obtained by executing soft-argmax 26 on processed volumes 25 .
  • FIG. 26 is a diagram for explaining the problem of prior art 3.
  • FIG. Here, as an example, a case of recognizing a 3D skeleton using four cameras 2-1, 2-2, 2-3, and 2-4 will be described.
  • Input images captured by the cameras 2-1, 2-2, 2-3, and 2-4 are assumed to be input images Im2-1a, Im2-2a, Im2-3a, and Im2-4a, respectively.
  • the input image Im2-3a is an image in which the face of the subject is difficult to see and it is difficult to distinguish between left and right.
  • the left knee occlusion occurs in the area Ar1.
  • 2D features are calculated by applying 2D backbone processing 21a to the input image Im2-1a, and 2D skeleton information Im2-1b is generated from these 2D features.
  • Input images Im2-2a, Im2-3a, and Im2-4a are also subjected to 2D backbone processing 21a to calculate 2D features.
  • 2D skeleton information Im2-2b, Im2-3b, and Im2-4b is generated.
  • the 2D skeleton information Im2-1b to Im2-4b indicate the position of the 2D skeleton.
  • the skeleton relationship is horizontally reversed in the area Ar2 of the 2D posture information Im2-3b. Due to the effect of the left knee occlusion generated in the input image Im2-4a, the 2D skeleton related to the left knee captures the wrong features in the region Ar3 of the 2D pose information Im2-4b.
  • 3D skeleton recognition results Im2-1c, Im2-2c, Im2-3c, and Im2-4c are calculated using the 2D features that are the basis of the 2D posture information Im2-1b to Im2-4b as they are. That is, even if the 2D features corresponding to the 2D posture information Im2-3b and Im2-4b are incorrect, the 3D skeleton is recognized using these 2D features, resulting in reduced accuracy. For example, in the example shown in FIG. 26, the left knee, which had many erroneous features, suffers from a large drop in accuracy.
  • an object of the present invention is to provide a skeleton recognition method, a skeleton recognition program, and a gymnastics scoring support system that can correctly perform 3D skeleton recognition.
  • the computer executes the following processes.
  • the computer extracts a plurality of first features representing two-dimensional joint position features of a subject based on two-dimensional input images input from a plurality of cameras that photograph the subject.
  • the computer generates second feature group information including a plurality of second features each corresponding to a predetermined number of joints of the subject based on the plurality of first features.
  • the computer detects an abnormal second feature from the second feature group information. From the second feature group information, the computer recognizes the 3D skeleton based on the result of removing the abnormal second features and integrating the remaining plural second features.
  • the 2D features with abnormalities can be removed in advance, and 3D skeleton recognition can be performed correctly.
  • FIG. 1 is a diagram showing an example of a gymnastics scoring support system according to this embodiment.
  • FIG. 2 is a diagram for explaining 2D features.
  • FIG. 3 is a diagram showing one 2D feature.
  • FIG. 4 is a functional block diagram showing the configuration of the skeleton recognition device according to this embodiment.
  • FIG. 5 is a diagram showing an example of the data structure of the measurement table.
  • FIG. 6 is a diagram showing an example of the data structure of a feature table.
  • FIG. 7 is a diagram for explaining processing of a generation unit;
  • FIG. 8 is a diagram (1) for explaining left-right reversal detection.
  • FIG. 9 is a diagram (2) for explaining left-right inversion detection.
  • FIG. 10 is a diagram for explaining self-occlusion detection.
  • FIG. 1 is a diagram showing an example of a gymnastics scoring support system according to this embodiment.
  • FIG. 2 is a diagram for explaining 2D features.
  • FIG. 3 is a diagram showing one 2D feature.
  • FIG. 11 is a diagram for explaining patterns of an abnormal heatmap.
  • FIG. 12 is a diagram for explaining the first abnormal heatmap detection process.
  • FIG. 13 is a diagram for explaining an example of network automatic weight adjustment.
  • FIG. 14 is a diagram (1) for explaining the second abnormal heatmap detection process.
  • FIG. 15 is a diagram (2) for explaining the second abnormal heatmap detection process.
  • FIG. 16 is a diagram showing an example of screen information.
  • FIG. 17 is a flow chart showing the processing procedure of the skeleton recognition device according to the present embodiment.
  • FIG. 18 is a flowchart of the second feature generation process.
  • FIG. 19 is a flowchart of anomaly detection processing.
  • FIG. 20 is a diagram for explaining the effects of the skeleton recognition device according to this embodiment.
  • FIG. 20 is a diagram for explaining the effects of the skeleton recognition device according to this embodiment.
  • FIG. 21 is a diagram showing an example of the hardware configuration of a computer that implements the same functions as the skeleton recognition device.
  • FIG. 22 is a diagram showing an example of a human body model.
  • FIG. 23 is a diagram for explaining triangulation using two cameras.
  • FIG. 24 is a diagram for explaining triangulation using three cameras.
  • FIG. 25 is a diagram for explaining a method using machine learning.
  • FIG. 26 is a diagram for explaining the problem of prior art 3.
  • FIG. 1 is a diagram showing an example of a gymnastics scoring support system according to this embodiment.
  • this gymnastics scoring support system 35 has cameras 30a, 30b, 30c, and 30d and a skeleton recognition device 100.
  • the cameras 30a to 30d and the skeleton recognition device 100 are connected by wire or wirelessly.
  • the cameras 30a to 30d are shown in FIG. 1, the gymnastics scoring support system 35 may further have other cameras.
  • the subject H1 performs a series of performances on the equipment, but it is not limited to this.
  • subject H1 may perform a performance in a place where no equipment exists, or may perform actions other than performance.
  • the camera 30a is a camera that captures an image of the subject H1.
  • the camera 30a corresponds to a CMOS imager, an RGB camera, or the like.
  • the camera 30a continuously captures images at a predetermined frame rate (frames per second: FPS) and transmits image data to the skeleton recognition apparatus 100 in time series.
  • FPS frames per second
  • image frame data of one image among data of a plurality of continuous images.
  • Image frames are given frame numbers in chronological order.
  • cameras 30b, 30c, and 30d are the same as the description regarding the camera 30a.
  • the cameras 30a to 30d are collectively referred to as "camera 30" as appropriate.
  • the skeleton recognition apparatus 100 acquires image frames from the camera 30, and based on the image frames, generates a plurality of second features respectively corresponding to the joints of the subject H1.
  • the second feature is a heatmap that indicates the likelihood of each joint position.
  • a second feature corresponding to each joint is generated from one image frame acquired from one camera. For example, with 21 joints and 4 cameras, 84 second features are generated for each image frame.
  • FIG. 2 is a diagram for explaining the second feature.
  • An image frame Im30a1 shown in FIG. 2 is an image frame captured by the camera 30a.
  • An image frame Im30b1 is an image frame captured by the camera 30b.
  • An image frame Im30c1 is an image frame captured by the camera 30c.
  • An image frame Im30d1 is an image frame captured by the camera 30d.
  • the skeleton recognition device 100 generates the second feature group information G1a based on the image frame Im30a1.
  • the second feature group information G1a includes 21 second features corresponding to each joint.
  • the skeleton recognition apparatus 100 generates second feature group information G1b based on the image frame Im30b1.
  • the second feature group information G1b includes 21 second features corresponding to each joint.
  • the skeleton recognition device 100 generates the second feature group information G1c based on the image frame Im30c1.
  • the second feature group information G1c includes 21 second features corresponding to each joint.
  • the skeleton recognition apparatus 100 generates second feature group information G1d based on the image frame Im30d1.
  • the second feature group information G1d includes 21 second features corresponding to each joint.
  • FIG. 3 is a diagram showing one second feature.
  • the second features Gc1-3 shown in FIG. 3 are the second features corresponding to the joint "HEAD" among the second features included in the second feature group information G1d.
  • a likelihood is set for each pixel of the second features Gc1-3.
  • colors are set according to likelihood values.
  • the location where the likelihood is maximum becomes the coordinates of the corresponding joint. For example, in the feature Gc1-3, the area Ac1-3 with the maximum likelihood value can be identified as the coordinates of the joint "HEAD".
  • the skeleton recognition apparatus 100 detects an abnormal second feature from the second features included in the second feature group information G1a, and removes the detected abnormal second feature from the second feature group information G1a.
  • the skeleton recognition apparatus 100 detects abnormal second features from the second features included in the second feature group information G1b, and removes the detected abnormal second features from the second feature group information G1b.
  • the skeleton recognition apparatus 100 detects an abnormal second feature from the second features included in the second feature group information G1c, and removes the detected abnormal second feature from the second feature group information G1c.
  • the skeleton recognition apparatus 100 detects abnormal second features from the second features included in the second feature group information G1d, and removes the detected abnormal second features from the second feature group information G1d.
  • the skeleton recognition device 100 integrates the second feature group information G1a, G1b, G1c, and G1d excluding the abnormal second feature, and recognizes the 3D skeleton based on the integrated result.
  • a plurality of second features corresponding to the joints of the subject H1 are generated based on the image frame, and the remaining features excluding the second features in which an abnormality has been detected are
  • the 3D skeleton is recognized using the result of synthesizing the second feature of . Therefore, a correct 3D skeleton recognition result can be obtained.
  • FIG. 4 is a functional block diagram showing the configuration of the skeleton recognition device according to this embodiment.
  • this skeleton recognition apparatus 100 has a communication section 110 , an input section 120 , a display section 130 , a storage section 140 and a control section 150 .
  • the communication unit 110 receives image frames from the camera 30. Communication unit 110 outputs the received image frame to control unit 150 . Communication unit 110 is an example of a communication device. The communication unit 110 may receive data from another external device (not shown).
  • the input unit 120 is an input device that inputs various types of information to the control unit 150 of the skeleton recognition device 100 .
  • the input unit 120 corresponds to a keyboard, mouse, touch panel, or the like.
  • the user operates the input unit 120 to request display of screen information, perform screen operations, and the like.
  • the display unit 130 is a display device that displays information output from the control unit 150 .
  • the display unit 130 displays screen information such as skill certification and scoring results for various competitions.
  • the display unit 130 corresponds to a liquid crystal display, an organic EL (Electro-Luminescence) display, a touch panel, or the like.
  • the storage unit 140 has a measurement table 141, a feature table 142, and a technique recognition table 143.
  • the storage unit 140 corresponds to semiconductor memory elements such as RAM (Random Access Memory) and flash memory (Flash Memory), and storage devices such as HDD (Hard Disk Drive).
  • the measurement table 141 is a table that stores image frames captured by the camera 30 in chronological order.
  • FIG. 5 is a diagram showing an example of the data structure of the measurement table. As shown in FIG. 5, the measurement table 141 associates camera identification information with image frames.
  • Camera identification information is information that uniquely identifies a camera.
  • camera identification information “C30a” corresponds to camera 30a
  • camera identification information “C30b” corresponds to camera 30b
  • camera identification information “C30c” corresponds to camera 30c
  • camera identification information “C30d”. corresponds to the camera 30d.
  • the image frames are time-series image frames captured by the corresponding camera 30 . Assume that each image frame is assigned a frame number in chronological order.
  • the feature table 142 is a table that holds information about the second feature.
  • FIG. 6 is a diagram showing an example of the data structure of a feature table. As shown in FIG. 6, the feature table 142 has camera identification information, first features, and second feature group information. The description regarding the camera identification information is the same as the description regarding the camera identification information described with reference to FIG.
  • the first feature is feature information regarding the joints of the subject H1 calculated by executing 2D backbone processing on one image frame. From one image frame, K first features are generated per camera. That is, K first features are generated for each image frame and for each camera and stored in the feature table 142 . Note that "K" is a number different from the number of joints and a number larger than the number of joints.
  • the second feature group information has J second features corresponding to each joint on a one-to-one basis. From the K first features generated from one image frame, J second features are generated. Also, J second features are generated for each camera. That is, J second features are generated for each image frame and for each camera and stored in the feature table 142 . Note that "J" is the same number as the number of joints "21", and each second feature is associated with each joint.
  • the description of the second feature group information corresponds to the content described with reference to FIG.
  • the frame number of the corresponding image frame is set for the K pieces of first feature information and the J pieces of second feature information.
  • the technique recognition table 143 is a table that associates the time-series change of each joint position included in each skeleton recognition result with the type of technique.
  • the technique recognition table 143 also associates combinations of technique types with scores.
  • the score is calculated as the sum of the D (Difficulty) score and the E (Execution) score.
  • the D score is a score calculated based on the difficulty of the technique.
  • the E-score is a score calculated by a deduction method according to the degree of perfection of the technique.
  • the control unit 150 has an acquisition unit 151, a generation unit 152, a detection unit 153, a skeleton recognition unit 154, and a technique recognition unit 155.
  • the control unit 150 is implemented by hardwired logic such as a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), an ASIC (Application Specific Integrated Circuit), and an FPGA (Field Programmable Gate Array).
  • the acquisition unit 151 acquires image frames in time series from the camera 30 via the communication unit 110 .
  • the acquisition unit 151 stores the image frames acquired from the camera 30 in the measurement table 141 in association with the camera identification information.
  • the generation unit 152 generates the second feature group information based on the image frame.
  • FIG. 7 is a diagram for explaining processing of a generation unit; As shown in FIG. 7, the generator 152 uses a 2D feature extraction NN 142A and a channel number conversion NN 142B.
  • the 2D feature extraction NN 142A corresponds to an NN (Neural Network) such as ResNet.
  • the 2D feature extraction NN 142A calculates and outputs K first features based on trained parameters.
  • one primary feature is a 96 ⁇ 96 pixel image, with each pixel having a likelihood associated with any joint.
  • the K first features do not have a one-to-one correspondence with each joint.
  • the parameters of the 2D feature extraction NN 142A are trained (machine learning) in advance using training data.
  • the channel number conversion NN 142B corresponds to the Conv2D layer etc. of the NN.
  • the channel number conversion NN 142B calculates and outputs J second features based on trained parameters.
  • the J second features are in one-to-one correspondence with each joint.
  • the parameters of the channel number conversion NN 142B are preliminarily trained (machine learning) using training data.
  • the generation unit 152 acquires the image frame of the camera 30a from the measurement table 141 and inputs the acquired image frame to the 2D feature extraction NN 142A to extract K first features.
  • the generation unit 152 registers the K first features in the feature table 142 in association with the camera identification information C30a.
  • the generation unit 152 also generates J second features by inputting the K first features to the channel number conversion NN 142B.
  • the generation unit 152 registers the J second features in the feature table 142 in association with the camera identification information C30a.
  • the generating unit 152 generates J pieces of second feature information corresponding to the camera 30a by repeatedly performing the above process on each time-series image frame of the camera 30a.
  • the generating unit 152 also extracts K first features and generates J second feature information in the same manner as the image frame of the camera 30a. Frame numbers are assigned to the K first features and the J second features.
  • the frame number "n” is given to the K first features extracted based on the image frame with the frame number "n".
  • a frame number “n” is assigned to J second features (second feature group information) generated based on the K first features to which the frame number “n” is assigned.
  • the detection unit 153 detects abnormal joints based on information on the J second features stored in the feature table 142 . For example, the detection unit 153 detects abnormal joints by executing left-right inversion detection, self-occlusion detection, and abnormal heatmap detection.
  • the left-right reversal detection performed by the detection unit 153 will be described. Here, description will be made using the second feature group information of the frame number n ⁇ 1 and the second feature group information of the frame number n generated based on the image frame captured by the camera 30a.
  • the detection unit 153 calculates the coordinates of each joint based on the J second features included in the second feature group information of frame number n ⁇ 1. For example, the second feature Gc1-3 corresponding to the joint "HEAD" in FIG. 3 will be used. The detection unit 153 calculates the coordinates of the pixel for which the maximum likelihood is set among the likelihoods set for each pixel of the second feature Gc1-3 as the coordinates of "HEAD”. The detection unit 153 calculates the coordinates (two-dimensional coordinates) of each joint of the frame number n ⁇ 1 by executing similar processing for the second features corresponding to other joints.
  • the detection unit 153 calculates the coordinates of each joint based on the J second features included in the second feature group information of frame number n.
  • the processing in which the detection unit 153 calculates the coordinates of each joint based on the second feature group information of the frame number n is to calculate the coordinates of each joint based on the second feature group information of the frame number n. Similar to processing.
  • FIG. 8 is a diagram (1) for explaining left-right reversal detection.
  • model M1-1 is two-dimensional skeleton information generated based on the coordinates of each joint of frame number n-1.
  • the model M1-2 is two-dimensional skeleton information generated based on the coordinates of each joint of frame number n.
  • illustration of some joints is omitted for convenience of explanation.
  • the detection unit 153 calculates a vector starting from a predetermined left joint and ending at a predetermined right joint.
  • model M1-1 shows vectors va1, va2, va3, va4, va5, and va6.
  • the vector va1 is a vector having the node 13 as the starting point and the node 17 as the ending point.
  • a vector va2 is a vector having node 11 as a starting point and node 15 as an ending point.
  • a vector va3 is a vector starting at node 19 and ending at node 20 .
  • Vector va4 is a vector with node 10 as the starting point and node 14 as the ending point.
  • Vector va5 is a vector with node 5 as the starting point and node 8 as the ending point.
  • a vector va6 is a vector having node 4 as a starting point and node 7 as an ending point.
  • the detection unit 153 calculates a vector starting from a predetermined left joint and ending at a predetermined right joint.
  • vector vb3 is shown as an example.
  • the detection unit 153 pairs vectors in which the starting point joint and the ending point joint are the same in the model M1-1 and the model M1-2.
  • the vector va3 of the model M1-1 and the vector vb3 of the model M1-2 form a pair.
  • the detection unit 153 compares the norms of the pairs of vectors, and detects the corresponding pair of vectors when the norms are smaller than the previous frame (frame number n ⁇ 1) by a predetermined value or more.
  • the detection unit 153 detects vectors va3 and vb3 when the value obtained by subtracting the norm of vector vb3 from the norm of vector va3 is equal to or greater than a predetermined value.
  • the detection unit 153 performs similar processing for other pairs of vectors. A pair of vectors detected by the detection unit 153 through this process is referred to as a first detected vector pair.
  • the detection unit 153 compares the movement amounts of the joint coordinates of the first detection vector pair, and detects the joint with the larger movement amount as an abnormal joint. For example, when the detection unit 153 compares the vector va3 and the vector vb3, the amount of movement of the joint at the end point is larger than the amount of movement at the joint at the start point. : HAND_TIP_RIGHT) is detected as an abnormal joint. It is assumed that the second feature group information on which the model M1-2 is based is the second feature group information based on the image frame captured by the camera 30a. In this case, the detection unit 153 generates abnormal joint information including "camera identification information: C30a, frame number: n, abnormal joint: HAND_TIP_RIGHT".
  • FIG. 9 is a diagram (2) for explaining left-right reversal detection.
  • model M1-1 is two-dimensional skeleton information generated based on the coordinates of each joint of frame number n-1.
  • the model M1-2 is two-dimensional skeleton information generated based on the coordinates of each joint of frame number n.
  • illustration of some joints is omitted for convenience of explanation.
  • the detection unit 153 calculates a vector with a predetermined left joint as a starting point and a predetermined right joint as an end point, in the same manner as in FIG. FIG. 9 shows, as an example, vector va3 of model M1-1 and vector vb3 of model M1-2.
  • the detection unit 153 pairs vectors in which the starting point joint and the ending point joint are the same in the model M1-1 and the model M1-2.
  • the detection unit 153 calculates the angle formed by the pair of vectors.
  • the detection unit 153 detects pairs of vectors that form an angle equal to or greater than a predetermined angle.
  • the detection unit 153 detects the vectors va3 and vb3 when the angle formed by the vector va3 and the vector vb3 is greater than or equal to a predetermined angle.
  • the detection unit 153 performs similar processing for other pairs of vectors.
  • a pair of vectors detected by the detection unit 153 through this process is referred to as a second detected vector pair.
  • the detection unit 153 detects both the joint that is the start point and the joint that is the end point of the second detection vector pair as abnormal joints.
  • the detection unit 153 detects the starting point joint (node 19: HAND_TIP_LEFT) and the ending point joint (node 20: HAND_TIP_RIGHT) of the model M1-2 as abnormal joints.
  • the second feature group information on which the model M1-2 is based is the second feature group information based on the image frame captured by the camera 30a.
  • the detection unit 153 generates abnormal joint information including "camera identification information: C30a, frame number: n, abnormal joints: HAND_TIP_RIGHT, HAND_TIP_LEFT".
  • the abnormal joint information is obtained by using the second feature group information of the frame number n ⁇ 1 generated based on the image frame captured by the camera 30a and the second feature group information of the frame number n.
  • the case of generation has been described, the same applies to the other cameras 30b, 30c, and 30d.
  • the detection unit 153 calculates the coordinates of each joint based on the J second features included in the second feature group information of frame number n-2.
  • the detection unit 153 calculates the coordinates of each joint based on the J second features included in the second feature group information of the frame number n ⁇ 1.
  • the process of calculating the coordinates of each joint is the same as the process of calculating the coordinates of each joint described in the horizontal reversal detection.
  • the detection unit 153 calculates predicted skeleton information indicating the coordinates of each joint of frame number n based on the coordinates of each joint of frame number n ⁇ 2 and the coordinates of each joint of frame number n ⁇ 1. For example, the detection unit 153 calculates predicted skeleton information indicating the coordinates of each joint in frame number n based on equation (4).
  • Equation (4) pn indicates the predicted coordinates of each joint at frame number n.
  • p n-1 indicates the coordinates of each joint of frame number n-1.
  • p n-2 indicates the coordinates of each joint of frame number n-2.
  • FIG. 10 is a diagram for explaining self-occlusion detection.
  • model M2-1 corresponds to the predicted skeleton information indicating the coordinates of each joint at frame number n predicted by equation (4).
  • illustration of some joints is omitted for convenience of explanation.
  • the detection unit 153 creates a box based on predetermined joints included in the model M2-1 (predicted skeleton information). For example, using the joints shown in FIG. 22, if the predetermined joints are nodes 4, 7, 14, and 10, the box is box B10. The detection unit 153 may provide a margin for the size of the box B10.
  • the detection unit 153 compares the coordinates of other joints different from the joints forming the box B10 with the coordinates of the box B10, and if the coordinates of the other joints are included in the area of the box B10, Other joints included in the region are detected as abnormal joints. For example, let the other joints be nodes 5 (ELBOW_LEFT), 8 (ELBOW_RIGHT), 6 (WRIST_LEFT), 9 (WRIST_RIGHT), 11 (KNEE_LEFT), 15 (KNEE_RIGHT), 12 (ANKLE_LEFT), and 16 (ANKLE_RIGHT).
  • the detection unit 153 detects the joint (node 15: KNEE_RIGHT) as an abnormal joint.
  • the coordinates of each joint in frame number n ⁇ 2 and the coordinates of each joint in frame number n ⁇ 1 used for prediction of model M2-1 are the second feature group based on the image frame captured by camera 30a. information.
  • the detection unit 153 generates abnormal joint information including "camera identification information: C30a, frame number: n, abnormal joint: KNEE_RIGHT".
  • the abnormal joint information is generated using the second feature group information of the frame number n-2 generated based on the image frame captured by the camera 30a and the second feature group information of the frame number n-1.
  • FIG. 11 is a diagram for explaining patterns of an abnormal heatmap.
  • the patterns “disappearance”, “blur”, “split”, and “displacement” will be described as examples.
  • Heatmaps 4-1, 4-2, 4-3, and 4-4 correspond to the second feature.
  • the pattern “disappearance” is a pattern in which a high-likelihood distribution is not formed, as shown in heatmap 4-1.
  • the pattern “bokeh” is a pattern in which a high-likelihood distribution spreads over a wide range, as shown in heatmap 4-2.
  • the pattern “split” is a pattern in which multiple likelihood peaks exist, as shown in heatmap 4-3.
  • the pattern “displacement” is a pattern in which the likelihood peak is in the wrong position, as shown in heatmap 4-4.
  • the detection unit 153 detects the joint corresponding to the second feature as an abnormal joint.
  • the detection unit 153 detects second features corresponding to the patterns “disappearance”, “blur”, and “split” by the first abnormal heatmap detection processing.
  • the detection unit 153 detects the pattern “displacement” by the second abnormal heatmap detection process.
  • a first abnormal heatmap detection process executed by the detection unit 153 will be described.
  • the detection unit 153 calculates the coordinates with the maximum likelihood from each second feature included in the second feature group information of the frame number n.
  • the coordinates at which the likelihood is maximized are referred to as "maximum coordinates".
  • each camera identification information includes J second features. From the two features, 84 maximum value coordinates are calculated.
  • the second feature group information (a plurality of second features ⁇ heatmap>) corresponding to the cameras 30a to 30d are collectively referred to as "HM input ".
  • the detection unit 153 Based on each maximum value coordinate of HM input , the detection unit 153 extracts the second features having the same shape as during training of the 2D feature extraction NN 142A and the number-of-channels conversion NN 142B for only the second features included in "HM input ". create. A plurality of created second features are denoted as “HM eval ".
  • FIG. 12 is a diagram (1) for explaining the first abnormal heatmap detection process.
  • FIG. 12 shows the case of generating HM eval from HM input .
  • the detection unit 153 calculates the standard deviation based on the likelihood values of the training data, and takes the average value as the maximum value coordinates. For example, the detection unit 153 performs the following calculation when generating the second feature HM2-1 of HM eval from the second feature HM1-1 of HM input .
  • the detection unit 153 uses the standard deviation based on the likelihood value of the heatmap used in the training of the 2D feature extraction NN 142A and the channel number conversion NN 142B, and the Gaussian distribution whose average value is the maximum coordinate of the second feature HM1-1, Generate a second feature HM2-1 of HM eval .
  • the detection unit 153 calculates a difference for each corresponding second feature between HM input and HM eval , and detects a joint corresponding to the second feature for which the difference is equal to or greater than a threshold as an abnormal joint.
  • the detection unit 153 calculates, as the difference, the mean squared error (MSE) shown in Equation (5), the mean absolute error (MAE) shown in Equation (6), or the like.
  • MSE mean squared error
  • MAE mean absolute error
  • x i input shown in Equation (5) is the pixel value (likelihood) of the second feature of HM input .
  • x i eval shown in Equation (5) is the pixel value (likelihood) of the second feature of HM eval .
  • the detection unit 153 calculates the difference based on each pixel value of the second feature HM1-1 and each pixel value of the second feature HM2-1 shown in FIG. In some cases, a joint abnormality corresponding to the second feature HM1-1 is detected.
  • the second feature HM1-1 is the second feature of the frame number n included in the second feature group information corresponding to the camera 30a and the second feature corresponding to the joint "HAND_TIP_RIGHT”
  • abnormal joint information including "camera identification information: C30a, frame number: n, abnormal joint: HAND_TIP_RIGHT".
  • FIG. 13 is a diagram for explaining an example of network automatic weight adjustment.
  • a DNN (Deep Neural Network) 142C shown in FIG. 13 is a network composed of a 2D convolutional layer, a ReLU layer, a MaxPooling layer, and a fully connected layer.
  • the DNN 142C is not trained separately from the global model, but is learned simultaneously with the global model in a built-in self-learning method.
  • weights w 1 , w 2 , . . . w j corresponding to the respective second features are output.
  • the detection unit 153 generates each weight w 1 , w 2 , . . . w j as abnormal joint information.
  • the weight of the weight w1 is small ( less than the threshold value), it can be said that the joint of the second feature corresponding to the weight w1 is abnormal.
  • the detection unit 153 detects abnormal joints based on the consistency of multi-viewpoint geometry. For example, the detection unit 153 executes the following processes.
  • the detection unit 153 calculates the maximum value coordinates from the J second features included in the second feature group information of frame number n.
  • the maximum coordinate is the coordinate with the maximum likelihood.
  • the detection unit 153 performs the following processing on the second feature included in the second feature group information of the viewpoint v.
  • a viewpoint v corresponds to the central coordinates of one camera 30 .
  • FIG. 14 is a diagram (1) for explaining the second abnormal heatmap detection process.
  • the second feature HM3-1 be the second feature of the viewpoint v of interest.
  • the second feature HM3-2 be the second feature of another viewpoint v'.
  • the second feature HM3-3 be the second feature of another viewpoint v′′.
  • the detection unit 153 calculates epipolar lines lv and v ' based on the maximum value coordinates of the second feature HM3-1 and the maximum value coordinates of the second feature HM3-2.
  • the detection unit 153 calculates epipolar lines l v and v′′ based on the maximum value coordinates of the second feature HM3-1 and the maximum value coordinates of the second feature HM3-3.
  • the detection unit 153 calculates an intersection point between the epipolar line lv, v' and the epipolar line lv, v ''.
  • the detection unit 153 calculates the Euclidean distance d between the maximum value coordinate of the second feature HM3-1 of the viewpoint v of interest and the intersection point.
  • the detection unit 153 repeatedly executes the above processing for each viewpoint, and extracts a combination of viewpoints in which the Euclidean distance d is equal to or less than the threshold value dth .
  • FIG. 15 is a diagram (2) for explaining the second abnormal heatmap detection process.
  • a viewpoint (camera) of interest is associated with a combination of viewpoints.
  • the viewpoint of interest corresponds to the viewpoint of interest in FIG.
  • the combination of viewpoints indicates a combination of viewpoints that generate intersections where the Eugrid distance d between the maximum value coordinate of the viewpoint of interest and the intersection is equal to or less than the threshold value dth.
  • the viewpoint corresponding to the central coordinates of the camera 30a is v30a.
  • v30b be the viewpoint corresponding to the central coordinates of the camera 30b.
  • v30c be the viewpoint corresponding to the center coordinates of the camera 30c.
  • v30d be the viewpoint corresponding to the center coordinates of the camera 30b.
  • the first line in FIG. 15 indicates that the Euclidean distance d between the maximum value coordinate of the target viewpoint v30a and the intersection of the first and second epipolar lines is equal to or less than the threshold dth.
  • the first epipolar line is the epipolar line between the viewpoint v30a and the viewpoint v30c.
  • the second epipolar line is the epipolar line between the viewpoint v30a and the viewpoint v30d.
  • the second line in FIG. 15 indicates that there is no intersection of epipolar lines where the Euclidean distance d from the maximum coordinate of the viewpoint v30b of interest is equal to or less than the threshold.
  • the third line in FIG. 15 indicates that the Euclidean distance d between the maximum value coordinate of the target viewpoint v30c and the intersection of the third and fourth epipolar lines is equal to or less than the threshold dth.
  • a third epipolar line is an epipolar line between the viewpoint v30c and the viewpoint v30a.
  • a fourth epipolar line is an epipolar line between the viewpoint v30c and the viewpoint v30a.
  • the fourth line in FIG. 15 indicates that the Euclidean distance d between the maximum value coordinate of the target viewpoint v30d and the intersection of the fifth and sixth epipolar lines is equal to or less than the threshold value dth.
  • a fifth epipolar line is an epipolar line between the viewpoint v30d and the viewpoint v30a.
  • a sixth epipolar line is an epipolar line between the viewpoint v30d and the viewpoint v30c.
  • the detection unit 153 detects, as abnormal joints, the joints corresponding to the viewpoints included in the most combinations and the second feature corresponding to the viewpoints of interest that do not have a combination.
  • the viewpoint v30a is the viewpoint most often included in combinations.
  • a viewpoint v30b is a viewpoint that does not have a combination with the viewpoint v30a. Therefore, the detection unit 153 detects the joint of the second feature corresponding to the viewpoint v30b as an abnormal joint. For example, assume that the joint corresponding to the second feature corresponding to viewpoint v30b is "HAND_TIP_RIGHT" and corresponds to frame number n. In this case, the detection unit 153 generates abnormal joint information including "camera identification information: C30b, frame number: n, abnormal joint: HAND_TIP_RIGHT".
  • the detection unit 153 detects pj , v ' are calculated by equation (7).
  • [ ⁇ ] ⁇ indicates a distortion asymmetric matrix.
  • P v ′ + represents the pseudo-inverse of P v (P v ′ T (P v ′ P v ′ T ) ⁇ 1 ).
  • the detection unit 153 calculates the distance d between the maximum coordinates pj, v and the intersections qv,v ',v'' of the epipolar lines based on Equation (11).
  • the detection unit 153 performs left-right reversal detection, self-occlusion detection, and abnormal heatmap detection, and generates abnormal joint information.
  • the abnormal joint information of the detection unit 153 includes the camera identification information, the frame number, and the abnormal joint.
  • the detection unit 153 outputs the abnormal joint information to the skeleton recognition unit 154 .
  • the skeleton recognition unit 154 acquires the second feature group information of each camera identification information from the feature table 142, and extracts the second feature corresponding to the abnormal joint information from the second features included in the acquired second feature group information. Remove.
  • the skeleton recognition unit 154 recognizes the 3D skeleton based on the result of integrating the plurality of remaining second features after removing the second features corresponding to the abnormal joint information.
  • the skeleton recognition unit 154 repeatedly executes the above processing for each frame number, and outputs the recognition result of the 3D skeleton to the technique recognition unit 155 .
  • the skeleton recognition unit 154 calculates aggregated volumes by back-projecting the second feature group information (J second features) corresponding to each camera onto the 3Dcube according to the camera parameters.
  • the frame number of the second feature group information is n, but the same applies to the second feature group information corresponding to other frame numbers.
  • the skeleton recognition unit 154 calculates the first aggregated volume by back-projecting the second feature group information corresponding to the camera identification information "C30a” onto the 3Dcube based on the camera parameters of the camera 30a.
  • the skeleton recognition unit 154 calculates the second aggregated volume by back-projecting the second feature group information corresponding to the camera identification information "C30b” onto the 3Dcube based on the camera parameters of the camera 30b.
  • the skeleton recognition unit 154 calculates the third aggregated volume by back-projecting the second feature group information corresponding to the camera identification information "C30c" onto the 3Dcube based on the camera parameters of the camera 30c.
  • the skeleton recognition unit 154 calculates the fourth aggregated volume by back-projecting the second feature group information corresponding to the camera identification information "C30d” onto the 3Dcube based on the camera parameters of the camera 30d.
  • the skeleton recognition unit 154 identifies abnormal points by back-projecting the second feature corresponding to the abnormal joint information onto the 3Dcube, and identifies the abnormal points from the first, second, third, and fourth aggregated volumes (volumes). Perform filtering to remove.
  • the skeleton recognition unit 154 performs filtering using the camera identification information (camera c regarded as abnormal) included in the abnormal joint information, the abnormal joint k, and Equation (12).
  • c included in equation (12) is an invalid value that negates the effect of softmax.
  • the skeleton recognition unit 154 calculates V2V (neural network) input information by integrating the first, second, third, and fourth aggregated volumes (volumes) from which abnormal points have been removed (filtered).
  • the skeleton recognition unit 154 performs integration processing based on equation (13) or equations (14) and (15) to calculate input information V input .
  • a constraint may be set so that only facing cameras do not remain.
  • the skeleton recognition unit 154 calculates processed volumes indicating the 3D position coordinates of each joint by inputting the input information to V2V.
  • the skeleton recognition unit 154 generates a 3D skeleton recognition result by executing soft-argmax on the processed volumes.
  • the recognition result of the 3D skeleton contains the 3D coordinates of J joints.
  • the skeleton recognition unit 154 outputs skeleton recognition result data, which is the recognition result of the 3D skeleton, to the technique recognition unit 155 .
  • skeleton recognition section 154 stores the skeleton recognition result data in storage section 140 .
  • the technique recognition unit 155 acquires the skeleton recognition result data from the skeleton recognition unit 154 in order of frame number, and identifies the time-series change of each joint coordinate based on the continuous skeleton recognition result data.
  • the technique recognition unit 155 identifies the type of technique by comparing the chronological change in each joint position with the technique recognition table 145 .
  • the technique recognition unit 155 also compares the combination of technique types with the technique recognition table 143 to calculate the score of the performance of the subject H1.
  • the technique recognition unit 155 generates screen information based on the score of the performance and the skeleton recognition result data from the start to the end of the performance.
  • the technique recognition unit 155 outputs the generated screen information to the display unit 130 for display.
  • FIG. 16 is a diagram showing an example of screen information.
  • this screen information 60 includes areas 60a, 60b, and 60c.
  • the area 60a is an area for displaying the type of technique recognized in the performance performed by the subject H1. In addition to the type of technique, the difficulty level of the technique may also be displayed.
  • the area 60b is an area for displaying performance scores.
  • the area 60a is an area for displaying an animation of a three-dimensional model based on skeleton recognition result data from the start to the end of the performance. The user operates the input unit 120 to instruct reproduction, stop, etc. of the animation.
  • FIG. 17 is a flow chart showing the processing procedure of the skeleton recognition device according to the present embodiment.
  • the acquisition unit 151 of the skeleton recognition device 100 acquires image frames (multi-viewpoint images) from the plurality of cameras 30 (step S101).
  • the generation unit 152 of the skeleton recognition device 100 executes the second feature generation process (step S102).
  • the detection unit 153 of the skeleton recognition device 100 executes anomaly detection processing (step S103).
  • the skeleton recognition unit 154 of the skeleton recognition device 100 filters abnormal joints (step S104).
  • the skeleton recognition unit 154 executes integration processing to generate input information (step S105).
  • the skeleton recognition unit 154 inputs the input information to V2V and calculates processed volumes (step S106).
  • the skeleton recognition unit 154 generates a 3D skeleton recognition result by executing soft-argmax on the processed volumes (step S107).
  • the skeleton recognition unit 154 outputs the skeleton recognition result data to the technique recognition unit 155 (step S108).
  • step S109 If the frame is the final frame (step S109, Yes), the skeleton recognition unit 154 ends the process. On the other hand, if the frame is not the final frame (step S109, No), the skeleton recognition unit 154 saves the skeleton recognition result data in the storage unit 140 (step S110), and proceeds to step S101.
  • FIG. 18 is a flowchart of the second feature generation process.
  • generation unit 152 of skeleton recognition apparatus 100 calculates K first features by inputting an image frame to 2D feature extraction NN 142A (step S201).
  • the generation unit 152 generates J second features by inputting the K first features to the channel number conversion NN 142B (step S202).
  • the generation unit 152 outputs information on the second feature (step S203).
  • FIG. 19 is a flowchart of anomaly detection processing.
  • the detection unit 153 of the skeleton recognition device 100 acquires the second feature (step S301).
  • the detection unit 153 executes left-right reversal detection (step S302).
  • the detection unit 153 executes occlusion detection (step S303).
  • the detection unit 153 executes abnormal heatmap detection (step S304).
  • the detection unit 153 generates abnormal joint information based on the abnormal joint detection result (step S305).
  • the detection unit 153 outputs abnormal joint information (step S306).
  • the skeleton recognition apparatus 100 associates the K first features representing the two-dimensional joint position features of the subject H1 extracted based on the image frames input from the camera 30 with the J joints of the subject. J second features (second feature group information) are generated.
  • the skeleton recognition apparatus 100 detects a second feature corresponding to the joint with an abnormality from the second feature group information, and removes the second feature with an abnormality from the second feature group information, and removes a plurality of remaining second features. Recognize the 3D skeleton based on the result of integrating the . By this, abnormal 2D features can be removed in advance and 3D skeleton recognition can be performed correctly.
  • Skeleton recognition apparatus 100 divides a vector generated based on the previous (frame number n ⁇ 1) second feature group information and a vector generated based on the current (frame number n) second feature group information into Based on this, an abnormal second feature is detected. This makes it possible to detect a laterally reversed abnormal joint.
  • the skeleton recognition apparatus 100 Based on the second feature group information, the skeleton recognition apparatus 100 detects an abnormal second feature based on the relationship between the Box specified from the predetermined joint and the positions of the joints other than the predetermined joint. do. This allows detection of abnormal joints affected by occlusion.
  • the skeleton recognition apparatus 100 detects an abnormal second feature based on the difference between the heatmap (second feature) and the ideal likelihood distribution information specified in advance. Further, the skeleton recognition apparatus 100 calculates a plurality of epipolar lines with the camera position as a viewpoint based on the heatmap, and based on the distance between the intersection of the epipolar lines and the position of the joint, determines the abnormal second epipolar line. Detect features. As a result, it is possible to detect and remove the second feature in which the patterns "disappearance”, “blur”, “split", and “displacement" have occurred.
  • FIG. 20 is a diagram for explaining the effects of the skeleton recognition device according to this embodiment.
  • FIG. 20 shows 3D skeleton recognition results Im2-1c, Im2-2c, Im2-3c, and Im2-4c of the prior art, and 3D skeleton recognition results Im2-1d, Im2-2d, Im2-3d, and Im2 by the skeleton recognition apparatus 100. -4d.
  • the accuracy of the 3D skeleton is improved by removing the second features corresponding to incorrect joints through left-right inversion detection, self-occlusion detection, and abnormal heatmap detection.
  • the subject and the 3D skeleton are separated, but in the 3D skeleton recognition results Im2-1d to Im2-4d of the present embodiment, the 3D skeleton of the subject The skeleton is properly identified.
  • FIG. 21 is a diagram showing an example of the hardware configuration of a computer that implements the same functions as the skeleton recognition device.
  • the computer 200 has a CPU 201 that executes various arithmetic processes, an input device 202 that receives data input from the user, and a display 203 .
  • the computer 200 also has a communication device 204 that receives distance image data from the camera 30, and an interface device 205 that connects to various devices.
  • the computer 200 has a RAM 206 that temporarily stores various information and a hard disk device 207 . Each device 201 - 207 is then connected to a bus 208 .
  • the hard disk device 207 has an acquisition program 207a, a generation program 207b, a detection program 207c, a skeleton recognition program 207d, and a technique recognition program 207e.
  • the CPU 201 reads the acquisition program 207a, the generation program 207b, the detection program 207c, the skeleton recognition program 207d, and the technique recognition program 207e, and develops them in the RAM 206.
  • the acquisition program 207a functions as an acquisition process 206a.
  • Generation program 207b functions as generation process 206b.
  • the detection program 207c functions as a detection process 206c.
  • the skeleton recognition program 207d functions as a skeleton recognition process 206d.
  • the technique recognition program 207e functions as a technique recognition process 206e.
  • the processing of the acquisition process 206a corresponds to the processing of the acquisition unit 151.
  • the processing of the generation process 206 b corresponds to the processing of the generation unit 152 .
  • the processing of the detection process 206 c corresponds to the processing of the detection unit 153 .
  • Processing of the skeleton recognition process 206 d corresponds to processing of the skeleton recognition unit 154 .
  • the processing of the technique recognition process 206 e corresponds to the processing of the technique recognition unit 155 .
  • each program does not necessarily have to be stored in the hard disk device 307 from the beginning.
  • each program is stored in a “portable physical medium” such as a flexible disk (FD), CD-ROM, DVD disk, magneto-optical disk, IC card, etc. inserted into the computer 200 .
  • the computer 300 may read and execute each program 207a to 207e.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

骨格認識装置は、被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出する。骨格認識装置は、複数の第1特徴を基にして、被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成する。骨格認識装置は、第2特徴群情報から、異常のある第2特徴を検知する。骨格認識装置は、第2特徴群情報から、異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。

Description

骨格認識方法、骨格認識プログラムおよび体操採点支援システム
 本発明は、骨格認識方法等に関する。
 3次元の人の動きの検出に関しては、複数台の3Dレーザセンサから人の3D骨格座標を±1cmの精度で検出する3Dセンシング技術が確立されている。この3Dセンシング技術は、体操採点支援システムへの応用や、他のスポーツ、他分野への展開が期待されている。3Dレーザセンサを用いた方式を、レーザ方式と表記する。
 レーザ方式では、レーザを1秒間に約200万回照射し、レーザの走行時間(Time of Flight:ToF)を基に、対象となる人を含めて、各照射点の深さや情報を求める。レーザ方式は、高精度な深度データを取得できるが、レーザスキャンやToF測定の構成および処理が複雑であるため、ハードウェアが複雑および高価になるという欠点がある。
 レーザ方式の代わりに、画像方式によって、3D骨格認識を行う場合もある。画像方式では、CMOS(Complementary Metal Oxide Semiconductor)イメージャによって、各ピクセルのRGB(Red Green Blue)データを取得する方式であり、安価なRGBカメラを用いることができる。
 ここで、複数カメラによる2D特徴を用いた3D骨格認識の従来技術について説明する。従来技術では、事前に定義された人体モデルに従って、各カメラで2D特徴を取得した後、各2D特徴を統合した結果を用いて、3D骨格を認識する。たとえば、2D特徴は、2D骨格情報、heatmap情報が上げられる。
 図22は、人体モデルの一例を示す図である。図22に示すように、人体モデルM1は、21個の関節で構成される。人体モデルM1では、各関節をノードで示し、0~20の番号を割り当てる。ノードの番号と、関節名との関係は、テーブルTe1に示す関係となる。たとえば、ノード0に対応する関節名は「SPINE_BASE」となる。ノード1~20に対する関節名の説明を省略する。
 従来技術には、三角測量を用いた手法、機械学習を用いた手法がある。三角測量を用いた手法には、カメラ2台による三角測量と、カメラ3台以上による三角測量がある。便宜的に、カメラ2台による三角測量を、従来技術1、カメラ3台以上による三角測量を、従来技術2、機械学習を用いた手法を、従来技術3とする。
 図23は、カメラ2台による三角測量を説明するための図である。従来技術1において、三角測量とは、2台のカメラCa1A,Ca1Bの特徴を使って、三角形の関係から被写体Pの3次元位置を測定する方法と定義する。カメラCa1Aのカメラ画像をIm2Aとし、カメラCa1Bのカメラ画像をIm2Bとする。
 被写体Pのカメラ画像Im2Aの2D関節位置をp(x,y)とする。被写体Pのカメラ画像Im2Aの2D関節位置をp(x,y)とする。また、カメラ間の距離をbとし、焦点距離をfとする。従来技術1では、2D関節位置をp(x,y)、p(x,y)を特徴とし、3次元関節位置P(X,Y,Z)を、式(1)、式(2)、式(2)により算出する。(X,Y,Z)の原点は、2つのカメラCa1A,Ca1Bの光学中心の中央にあるものとする。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 図23で説明した従来技術1では、3D骨格を求める際に誤った2D特徴が使用されると3D骨格の精度が低下してしまう。
 図24は、カメラ3台による三角測量を説明するための図である。カメラ3台による三角測量では、図23で説明した三角測量を、3台以上のカメラに拡張し、RANSAC(Random Sample Consensus)と呼ばれるアルゴリズムにより、最も良いカメラの組み合わせを推定する。
 図24に示すように、従来技術2の装置は、全てのカメラ1-1,1-2,1-3,1-4で、被写体の2D関節位置を取得する(ステップS1)。従来技術2の装置は、全てのカメラ1-1~1-4から、2つのカメラの組み合わせを選択し、図23で説明した三角測量によって、3D関節位置を算出する(ステップS2)。
 従来技術2の装置は、3D骨格を全てのカメラ1-1~1-4に再投影して、2D関節位置とのずれが閾値以下となるカメラの数をカウントする(ステップS3)。従来技術2の装置は、ステップS2、S3の処理を繰り返し実行し、2D関節位置とのずれが閾値以下となるカメラの数が最も多い2つのカメラの組み合わせを、最も良いカメラの組み合わせとして採用する(ステップS4)。
 図24で説明した従来技術2では、3D骨格を求める際に最適な2つのカメラを探索するために処理時間を要してしまう。
 機械学習を用いた手法では、三角測量を用いた手法と比較して、高精度かつ高速に、3D骨格を認識することが可能となる。
 図25は、機械学習を用いた手法を説明するための図である。機械学習を用いた従来技術3では、各カメラが撮影した各入力画像21に対して、2D backbone処理21aをかけることで、各関節特徴を表す2D特徴(2D features)22を取得する。従来技術3では、各2D特徴22をカメラパラメータに従って3Dcubeに逆投影することで、aggregated volumes23を取得する。
 従来技術3では、aggregated volumes23を、V2V(ニューラルネットワーク、P3)24に入力することで、各関節の尤度を表すprocessed volumes25を取得する。processed volumes25は、各関節の3Dでの尤度を表すheatmapに対応する。従来技術3では、processed volumes25に対して、soft-argmax26を実行することで、3D骨格情報27を取得する。
特開平10-302070号公報 特開2000-251078号公報
 しかしながら、従来技術3では、誤った2D特徴を用いて3D骨格認識を実行する場合があり、正しい3D骨格認識結果を得ることができないという問題がある。
 図26は、従来技術3の問題を説明するための図である。ここでは、一例として、4台のカメラ2-1,2-2,2-3,2-4を用いて、3D骨格を認識する場合について説明する。カメラ2-1,2-2,2-3,2-4が撮影した入力画像をそれぞれ、入力画像Im2-1a,Im2-2a,Im2-3a,Im2-4aとする。このうち、入力画像Im2-3aでは、被写体の顔が見えづらく、左右の区別が難しい画像となっている。入力画像Im2-4aでは、領域Ar1において、左膝オクルージョンが発生している。
 従来技術3では、入力画像Im2-1aに、2D backbone処理21aをかけることで、2D特徴が算出され、この2D特徴により、2D骨格情報Im2-1bが生成される。入力画像Im2-2a,Im2-3a、Im2-4aについても、2D backbone処理21aをかけることで、2D特徴が算出され、この2D特徴により、2D骨格情報Im2-2b,Im2-3b,Im2-4bが生成される。2D骨格情報Im2-1b~Im2-4bは、2Dの骨格の位置を示すものである。
 ここで、入力画像Im2-3aでは、被写体の顔が見えづらいため、2D姿勢情報Im2-3bの領域Ar2において、骨格の関係が左右反転している。入力画像Im2-4aで発生した左膝オクルージョンの影響により、2D姿勢情報Im2-4bの領域Ar3において、左膝に関連した2D骨格が誤った特徴をとらえている。
 従来技術3では、2D姿勢情報Im2-1b~Im2-4bの基となる2D特徴をそのまま用いて、3D骨格認識結果Im2-1c,Im2-2c,Im2-3c,Im2-4cを算出する。すなわち、2D姿勢情報Im2-3b,Im2-4bに対応する2D特徴が誤っていても、かかる2D特徴を用いて、3D骨格を認識するため、精度が低下する。たとえば、図26に示す例では、誤りの特徴の多かった左膝に大きな精度の低下が発生する。
 1つの側面では、本発明は、正しく3D骨格認識を実行することができる、骨格認識方法、骨格認識プログラムおよび体操採点支援システムを提供することを目的とする。
 第1の案では、コンピュータは、次の処理を実行する。コンピュータは、被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出する。コンピュータは、複数の第1特徴を基にして、被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成する。コンピュータは、第2特徴群情報から、異常のある第2特徴を検知する。コンピュータは、第2特徴群情報から、異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。
 3D骨格認識結果に異常を与えてしまう2D特徴を判定することで、異常のある2D特徴を事前に除去することができ、正しく3D骨格認識を実行することができる。
図1は、本実施例に係る体操採点支援システムの一例を示す図である。 図2は、2D特徴を説明するための図である。 図3は、一つの2D特徴を示す図である。 図4は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。 図5は、測定テーブルのデータ構造の一例を示す図である。 図6は、特徴テーブルのデータ構造の一例を示す図である。 図7は、生成部の処理を説明するための図である。 図8は、左右反転検知を説明するための図(1)である。 図9は、左右反転検知を説明するための図(2)である。 図10は、セルフオクルージョン検知を説明するための図である。 図11は、異常heatmapのパターンを説明するための図である。 図12は、第1の異常heatmap検知処理について説明するための図である。 図13は、ネットワークの自動重み調整の一例を説明するための図である。 図14は、第2の異常heatmap検知処理について説明する図(1)である。 図15は、第2の異常heatmap検知処理について説明する図(2)である。 図16は、画面情報の一例を示す図である。 図17は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。 図18は、第2特徴生成処理のフローチャートである。 図19は、異常検知処理のフローチャートである。 図20は、本実施例に係る骨格認識装置の効果を説明するための図である。 図21は、骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。 図22は、人体モデルの一例を示す図である。 図23は、カメラ2台による三角測量を説明するための図である。 図24は、カメラ3台による三角測量を説明するための図である。 図25は、機械学習を用いた手法を説明するための図である。 図26は、従来技術3の問題を説明するための図である。
 以下に、本願の開示する骨格認識方法、骨格認識プログラムおよび体操採点支援システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
 図1は、本実施例に係る体操採点支援システムの一例を示す図である。図1に示すように、この体操採点支援システム35は、カメラ30a,30b,30c,30dと、骨格認識装置100とを有する。カメラ30a~30dと、骨格認識装置100とは、有線または無線によってそれぞれ接続されている。図1では、カメラ30a~30dを示すが、この体操採点支援システム35は、他のカメラを更に有していてもよい。
 本実施例では一例として、被写体H1が、器具上で一連の演技を行うものとするがこれに限定されるものではない。たとえば、被写体H1は、器具の存在しない場所で演技を行ってもよいし、演技以外の動作を行ってもよい。
 カメラ30aは、被写体H1の画像を撮影するカメラである。カメラ30aは、CMOSイメージャ、RGBカメラ等に対応する。カメラ30aは、所定のフレームレート(frames per second:FPS)によって、画像を連続して撮影し、時系列に画像のデータを骨格認識装置100に送信する。以下の説明では、連続する複数の画像のデータのうち、ある一つの画像のデータを「画像フレーム」と表記する。画像フレームには、時系列にフレーム番号が付与される。
 カメラ30b,30c,30dに関する説明は、カメラ30aに関する説明と同様である。以下の説明では、適宜、カメラ30a~30dをまとめて「カメラ30」と表記する。
 骨格認識装置100は、カメラ30から画像フレームを取得し、画像フレームを基にして、被写体H1の関節にそれぞれ対応する複数の第2特徴を生成する。第2特徴は、各関節位置の尤度を示すheatmapである。1つのカメラから取得した1つの画像フレームから、各関節に対応する第2特徴が生成される。たとえば、関節数を21個、カメラの数を4個とすると、画像フレーム毎に、84個の第2特徴が生成される。
 図2は、第2特徴を説明するための図である。図2に示す画像フレームIm30a1は、カメラ30aに撮影された画像フレームである。画像フレームIm30b1は、カメラ30bに撮影された画像フレームである。画像フレームIm30c1は、カメラ30cに撮影された画像フレームである。画像フレームIm30d1は、カメラ30dに撮影された画像フレームである。
 骨格認識装置100は、画像フレームIm30a1を基にして、第2特徴群情報G1aを生成する。第2特徴群情報G1aには、各関節に対応する21個の第2特徴が含まれる。骨格認識装置100は、画像フレームIm30b1を基にして、第2特徴群情報G1bを生成する。第2特徴群情報G1bには、各関節に対応する21個の第2特徴が含まれる。
 骨格認識装置100は、画像フレームIm30c1を基にして、第2特徴群情報G1cを生成する。第2特徴群情報G1cには、各関節に対応する21個の第2特徴が含まれる。骨格認識装置100は、画像フレームIm30d1を基にして、第2特徴群情報G1dを生成する。第2特徴群情報G1dには、各関節に対応する21個の第2特徴が含まれる。
 図3は、一つの第2特徴を示す図である。図3に示す第2特徴Gc1-3は、第2特徴群情報G1dに含まれる第2特徴のうち、関節「HEAD」に対応する第2特徴である。第2特徴Gc1-3の各ピクセルには、尤度が設定される。図3では、尤度の値に応じた色が設定される。尤度が最大となる箇所が、該当する関節の座標となる。たとえば、特徴Gc1-3において、尤度の値が最大となる領域Ac1-3が、関節「HEAD」の座標であることが特定できる。
 骨格認識装置100は、第2特徴群情報G1aに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1aから除去する。骨格認識装置100は、第2特徴群情報G1bに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1bから除去する。
 骨格認識装置100は、第2特徴群情報G1cに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1cから除去する。骨格認識装置100は、第2特徴群情報G1dに含まれる第2特徴から、異常のある第2特徴を検知し、検知した異常のある第2特徴を、第2特徴群情報G1dから除去する。
 骨格認識装置100は、異常のある第2特徴を除いた第2特徴群情報G1a,G1b,G1c,G1dを統合し、統合した結果を基にして、3D骨格を認識する。
 上記のように、骨格認識装置100によれば、画像フレームを基にして、被写体H1の関節とそれぞれ対応付けた複数の第2特徴を生成し、異常が検知された第2特徴を除いた残りの第2特徴を合成した結果を用いて3D骨格を認識する。このため、正しい3D骨格の認識結果を得ることができる。
 次に、本実施例に係る骨格認識装置100の構成の一例について説明する。図4は、本実施例に係る骨格認識装置の構成を示す機能ブロック図である。図4に示すように、この骨格認識装置100は、通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
 通信部110は、カメラ30から画像フレームを受信する。通信部110は、受信した画像フレームを制御部150に出力する。通信部110は、通信装置の一例である。通信部110は、図示しない他の外部装置からデータを受信してもよい。
 入力部120は、骨格認識装置100の制御部150に各種の情報を入力する入力装置である。入力部120は、キーボードやマウス、タッチパネル等に対応する。利用者は、入力部120を操作して、画面情報の表示要求、画面操作などを行う。
 表示部130は、制御部150から出力される情報を表示する表示装置である。たとえば、表示部130は、各種競技の技認定、採点結果等の画面情報を表示する。表示部130は、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイ、タッチパネル等に対応する。
 記憶部140は、測定テーブル141、特徴テーブル142、技認識テーブル143を有する。記憶部140は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
 測定テーブル141は、カメラ30により撮影される画像フレームを時系列に格納するテーブルである。図5は、測定テーブルのデータ構造の一例を示す図である。図5に示すように、測定テーブル141は、カメラ識別情報と、画像フレームとを対応付ける。
 カメラ識別情報は、カメラを一意に識別する情報である。たとえば、カメラ識別情報「C30a」は、カメラ30aに対応し、カメラ識別情報「C30b」は、カメラ30bに対応し、カメラ識別情報「C30c」は、カメラ30cに対応し、カメラ識別情報「C30d」は、カメラ30dに対応する。画像フレームは、該当するカメラ30に撮影された時系列の画像フレームである。各画像フレームには、時系列にフレーム番号が設定されるものとする。
 特徴テーブル142は、第2特徴に関する情報を保持するテーブルである。図6は、特徴テーブルのデータ構造の一例を示す図である。図6に示すように、特徴テーブル142は、カメラ識別情報と、第1特徴と、第2特徴群情報とを有する。カメラ識別情報に関する説明は、図5で説明したカメラ識別情報に関する説明と同様である。
 第1特徴は、1つの画像フレームに対して、2D backbone処理を実行することで算出される被写体H1の関節に関する特徴情報である。一つの画像フレームから、一つのカメラにつき、K個の第1特徴が生成される。すなわち、画像フレーム毎、カメラ毎に、K個の第1特徴が生成され、特徴テーブル142に格納される。なお、「K」は、関節数とは異なる数となり、関節数よりも多い数となる。
 第2特徴群情報は、各関節に1対1に対応するJ個の第2特徴を有する。一つの画像フレームから生成されたK個の第1特徴から、J個の第2特徴が生成される。また、J個の第2特徴は、カメラ毎に生成される。すなわち、画像フレーム毎、カメラ毎に、J個の第2特徴が生成され、特徴テーブル142に格納される。なお、「J」は、関節数「21」と同じ数となり、各第2特徴は、各関節に対応付けられる。第2特徴群情報の説明は、図2で説明した内容に対応する。
 図示を省略するが、K個の第1特徴の情報、J個の第2特徴の情報には、対応する画像フレームのフレーム番号が設定されているものとする。
 図4の説明に戻る。技認識テーブル143は、各骨格認識結果に含まれる各関節位置の時系列変化と、技の種別とを対応付けるテーブルである。また、技認識テーブル143は、技の種別の組み合わせと、スコアとを対応付ける。スコアは、D(Difficulty)スコアとE(Execution)スコアとの合計で算出される。たとえば、Dスコアは、技の難易度に基づいて算出されるスコアである。Eスコアは、技の完成度に応じて、減点法により算出されるスコアである。
 制御部150は、取得部151、生成部152、検知部153、骨格認識部154、技認識部155を有する。制御部150は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジック等によって実現される。
 取得部151は、通信部110を介して、カメラ30から時系列に画像フレームを取得する。取得部151は、カメラ30から取得した画像フレームを、カメラ識別情報と対応付けて、測定テーブル141に格納する。
 生成部152は、画像フレームを基にして、第2特徴群情報を生成する。図7は、生成部の処理を説明するための図である。図7に示すように、生成部152は、2D特徴抽出NN142A、チャネル数変換NN142Bを利用する。
 2D特徴抽出NN142Aは、ResNet等のNN(Neural Network)に対応する。2D特徴抽出NN142Aは、画像フレームが入力された場合に、訓練済みのパラメータを基にして、K個の第1特徴を算出して、出力する。たとえば、1つの第1特徴は、96×96のピクセル画像であり、各ピクセルには、いずれかの関節に関する尤度が設定される。K個の第1特徴は、各関節と、1対1に対応しているものではない。2D特徴抽出NN142Aは、予め訓練データによって、パラメータが訓練(機械学習)されているものとする。
 チャネル数変換NN142Bは、NNのConv2D層等に対応する。チャネル数変換NN142Bは、K個の第1特徴が入力された場合に、訓練済みのパラメータを基にして、J個の第2特徴を算出して、出力する。J個の第2特徴は、各関節と1対1に対応している。チャネル数変換NN142Bは、予め訓練データによって、パラメータが訓練(機械学習)されているものとする。
 生成部152は、測定テーブル141から、カメラ30aの画像フレームを取得し、取得した画像フレームを、2D特徴抽出NN142Aに入力することで、K個の第1特徴を抽出する。生成部152は、K個の第1特徴を、カメラ識別情報C30aに対応付けて、特徴テーブル142に登録する。
 また、生成部152は、K個の第1特徴を、チャネル数変換NN142Bに入力することで、J個の第2特徴を生成する。生成部152は、J個の第2特徴を、カメラ識別情報C30aに対応付けて、特徴テーブル142に登録する。生成部152は、カメラ30aの時系列の各画像フレームに対して、上記処理を繰り返し実行することで、カメラ30aに対応するJ個の第2特徴の情報を生成する。
 生成部152は、カメラ30b,30c,30dの画像フレームについても、カメラ30aの画像フレームと同様にして、K個の第1特徴を抽出し、J個の第2特徴の情報を生成する。なお、K個の第1特徴、J個の第2特徴には、フレーム番号が付与される。
 たとえば、フレーム番号「n」の画像フレームを基に抽出されたK個の第1特徴には、フレーム番号「n」が付与される。また、フレーム番号「n」が付与されたK個の第1特徴を基に生成されるJ個の第2特徴(第2特徴群情報)には、フレーム番号「n」が付与される。
 検知部153は、特徴テーブル142に格納されたJ個の第2特徴の情報を基にして、異常な関節を検知する。たとえば、検知部153は、左右反転検知、セルフオクルージョン検知、異常heatmap検知を実行することで、異常な関節を検知する。
 検知部153が実行する左右反転検知について説明する。ここでは、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-1の第2特徴群情報と、フレーム番号nの第2特徴群情報とを用いて説明を行う。
 検知部153は、フレーム番号n-1の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。たとえば、図3の関節「HEAD」に対応する第2特徴Gc1-3を用いて説明する。検知部153は、第2特徴Gc1-3の各ピクセルに設定された尤度のうち、最大の尤度が設定されたピクセルの座標を「HEAD」の座標として算出する。検知部153は、他の関節に対応する第2特徴についても、同様の処理を実行することで、フレーム番号n-1の各関節の座標(2次元の座標)を算出する。
 検知部153は、フレーム番号nの第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。検知部153が、フレーム番号nの第2特徴群情報を基にして、各関節の座標を算出する処理は、フレーム番号nの第2特徴群情報を基にして、各関節の座標を算出する処理と同様である。
 図8は、左右反転検知を説明するための図(1)である。図8において、モデルM1-1は、フレーム番号n-1の各関節の座標を基に生成される2次元骨格情報である。モデルM1-2は、フレーム番号nの各関節の座標を基に生成される2次元骨格情報である。図8では、説明の便宜上、一部の関節の図示を省略する。
 検知部153は、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。たとえば、モデルM1-1では、ベクトルva1,va2,va3,va4,va5,va6を示す。図22で説明した関節を用いて説明すると、ベクトルva1は、ノード13を始点とし、ノード17を終点とするベクトルである。ベクトルva2は、ノード11を始点とし、ノード15を終点とするベクトルである。ベクトルva3は、ノード19を始点とし、ノード20を終点とするベクトルである。ベクトルva4は、ノード10を始点とし、ノード14を終点とするベクトルである。ベクトルva5は、ノード5を始点とし、ノード8を終点とするベクトルである。ベクトルva6は、ノード4を始点とし、ノード7を終点とするベクトルである。
 検知部153は、モデルM1-2についても同様にして、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。ここでは、一例として、ベクトルvb3を示す。
 検知部153は、モデルM1-1と、モデルM1-2において、始点の関節と終点の関節とが同一となるベクトルをペアとする。図8に示す例では、モデルM1-1のベクトルva3と、モデルM1-2のベクトルvb3とがペアとなる。検知部153は、ペアのベクトルのノルムを比較し、前フレーム(フレーム番号n-1)から所定値以上、ノルムが小さくなっている場合に、該当するベクトルのペアを検知する。
 たとえば、検知部153は、ベクトルva3のノルムから、ベクトルvb3のノルムを減算した値が、所定値以上である場合に、ベクトルva3,vb3を検知する。検知部153は、他のベクトルのペアについても同様の処理を実行する。この処理によって、検知部153が検知したベクトルのペアを、第1検知ベクトルペアと表記する。
 検知部153は、第1検知ベクトルペアの関節の座標の移動量を比較し、移動量の大きい方の関節を、異常関節として検知する。たとえば、検知部153は、ベクトルva3と、ベクトルvb3とを比較すると、始点の関節の移動量よりも、終点の関節の移動量の方が大きいため、モデルM1-2の終点の関節(ノード20:HAND_TIP_RIGHT)を異常関節として検知する。なお、モデルM1-2の基となる第2特徴群情報が、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
 図9は、左右反転検知を説明するための図(2)である。図9において、モデルM1-1は、フレーム番号n-1の各関節の座標を基に生成される2次元骨格情報である。モデルM1-2は、フレーム番号nの各関節の座標を基に生成される2次元骨格情報である。図9では、説明の便宜上、一部の関節の図示を省略する。
 検知部153は、図8と同様にして、所定の左側の関節を始点とし、所定の右側の関節を終点とするベクトルを計算する。図9では一例として、モデルM1-1のベクトルva3と、モデルM1-2のベクトルvb3を示す。
 検知部153は、モデルM1-1と、モデルM1-2において、始点の関節と終点の関節とが同一となるベクトルをペアとする。検知部153は、ペアのベクトルのなす角を算出する。検知部153は、なす角が所定のなす角以上となるベクトルのペアを検知する。
 たとえば、検知部153は、ベクトルva3とベクトルvb3とのなす角が所定のなす角以上である場合に、ベクトルva3,vb3を検知する。検知部153は、他のベクトルのペアについても同様の処理を実行する。この処理によって、検知部153が検知したベクトルのペアを、第2検知ベクトルペアと表記する。
 検知部153は、第2検知ベクトルペアの始点となる関節と、終点となる関節との双方を、異常関節として検知する。図9に示す例では、検知部153は、モデルM1-2の始点の関節(ノード19:HAND_TIP_LEFT)、終点の関節(ノード20:HAND_TIP_RIGHT)を異常関節として検知する。なお、モデルM1-2の基となる第2特徴群情報が、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT、HAND_TIP_LEFT」を含む異常関節情報を生成する。
 図8,図9では、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-1の第2特徴群情報と、フレーム番号nの第2特徴群情報とを用いて異常関節情報を生成する場合について説明したが、他のカメラ30b,30c,30dについても同様である。
 続いて、検知部153が実行するセルフオクルージョン検知について説明する。ここでは、カメラ30aが撮影した画像フレームに基づいて生成された各フレーム番号n-2,n-1の第2特徴群情報を用いて説明を行う。
 検知部153は、フレーム番号n-2の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。検知部153は、フレーム番号n-1の第2特徴群情報に含まれるJ個の第2特徴を基にして、各関節の座標を算出する。各関節の座標を算出する処理は、左右反転検知で説明した各関節の座標を算出する処理と同様である。
 検知部153は、フレーム番号n-2の各関節の座標と、フレーム番号n-1の各関節の座標とを基にして、フレーム番号nの各関節の座標を示す予測骨格情報を算出する。たとえば、検知部153は、式(4)を基にして、フレーム番号nの各関節の座標を示す予測骨格情報を算出する。式(4)において、pは、予測されるフレーム番号nの各関節の座標を示す。pn-1は、フレーム番号n-1の各関節の座標を示す。pn-2は、フレーム番号n-2の各関節の座標を示す。
Figure JPOXMLDOC01-appb-M000004
 図10は、セルフオクルージョン検知を説明するための図である。図11において、モデルM2-1は、式(4)によって予測された、フレーム番号nの各関節の座標を示す予測骨格情報に対応する。図10では、説明の便宜上、一部の関節の図示を省略する。
 検知部153は、モデルM2-1(予測骨格情報)に含まれる所定の関節を基にして、ボックスを作成する。たとえば、図22で説明した関節を用いて説明すると、所定の関節を、ノード4,7,14,10とすると、ボックスは、ボックスB10となる。検知部153は、ボックスB10の大きさにマージンを持たせもよい。
 検知部153は、ボックスB10を構成する関節とは異なる他の関節の座標と、ボックスB10との比較を行い、他の関節の座標が、ボックスB10の領域に含まれる場合には、ボックスB10の領域に含まれる他の関節を異常関節として検知する。たとえば、他の関節を、ノード5(ELBOW_LEFT),8(ELBOW_RIGHT),6(WRIST_LEFT),9(WRIST_RIGHT),11(KNEE_LEFT),15(KNEE_RIGHT),12(ANKLE_LEFT),16(ANKLE_RIGHT)とする。
 図10に示す例では、ボックスB10に、ノード15に相当する関節「KNEE_RIGHT」が含まれている。このため、検知部153は、関節(ノード15:KNEE_RIGHT)を異常関節として検知する。なお、モデルM2-1の予測に用いた、フレーム番号n-2の各関節の座標と、フレーム番号n-1の各関節の座標とが、カメラ30aの撮影した画像フレームに基づく第2特徴群情報であるとする。この場合、検知部153は、「カメラ識別情報:C30a、フレーム番号:n、異常関節:KNEE_RIGHT」を含む異常関節情報を生成する。
 図10では、カメラ30aが撮影した画像フレームに基づいて生成されたフレーム番号n-2の第2特徴群情報と、フレーム番号n-1の第2特徴群情報とを用いて異常関節情報を生成する場合について説明したが、他のカメラ30b,30c,30dについても同様である。
 続いて、検知部153が実行する異常heatmap検知について説明する。図11は、異常heatmapのパターンを説明するための図である。図11では一例として、パターン「消失」、「ぼけ」、「分裂」、「位置ずれ」について説明する。heatmap4-1,4-2,4-3,4-4は、第2特徴に対応する。
 パターン「消失」は、heatmap4-1に示すように、尤度の高い分布が形成されないパターンである。パターン「ぼけ」は、heatmap4-2に示すように、尤度の高い分布が広範囲に広がっているパターンである。パターン「分裂」は、heatmap4-3に示すように、尤度のピークが複数存在するパターンである。パターン「位置ずれ」は、heatmap4-4に示すように、尤度のピークが間違った位置にあるパターンである。
 検知部153は、第2特徴(heatmap)が、図11で説明したいずれかのパターンに該当する場合には、かかる第2特徴に対応する関節を、異常関節として検知する。
 検知部153は、第1の異常heatmap検知処理によって、パターン「消失」、「ぼけ」、「分裂」に対応する第2特徴を検知する。検知部153は、第2の異常heatmap検知処理によって、パターン「位置ずれ」を検知する。
 検知部153が実行する第1の異常heatmap検知処理について説明する。検知部153は、フレーム番号nの第2特徴群情報に含まれる各第2特徴から、尤度が最大値となる座標を算出する。尤度が最大となる座標を「最大値座標」と表記する。たとえば、図6で説明したように、各カメラ識別情報には、J個の第2特徴が含まれているため、カメラが4つで、関節数が「21」であれば、84個の第2特徴から、84個の最大値座標が算出される。以下の説明では、カメラ30a~30dに対応する第2特徴群情報(複数の第2特徴<heatmap>)をまとめて「HMinput」と表記する。
 検知部153は、HMinputの各最大値座標を基準にして、2D特徴抽出NN142A、チャネル数変換NN142Bの訓練時と同形状の第2特徴を、「HMinput」に含まれる第2特徴分だけ作成する。作成した複数の第2特徴を「HMeval」と表記する。
 図12は、第1の異常heatmap検知処理について説明するための図(1)である。図12では、HMinputから、HMevalを生成する場合を示している。2DGaussianに従う場合、検知部153は、訓練データの尤度の値を基にして、標準偏差を算出し、平均値を、最大値座標する。たとえば、検知部153は、HMinputの第2特徴HM1-1から、HMevalの第2特徴HM2-1を生成する場合には、次の計算を行う。検知部153は、2D特徴抽出NN142A、チャネル数変換NN142Bの訓練時に用いたheatmapの尤度の値に基づく標準偏差と、第2特徴HM1-1の最大値座標を平均値とするガウス分布に従って、HMevalの第2特徴HM2-1を生成する。
 検知部153は、HMinputと、HMevalとの対応する第2特徴毎に差分を算出し、差分が閾値以上となる第2特徴に対応する関節を、異常関節として検知する。検知部153は、差分として、式(5)に示す平均二乗誤差(MSE)、または、式(6)に示す平均絶対誤差(MAE)等を算出する。式(5)に示す「xi input」は、HMinputの第2特徴の画素値(尤度)である。式(5)に示す「xi eval」は、HMevalの第2特徴の画素値(尤度)である。
Figure JPOXMLDOC01-appb-M000005
Figure JPOXMLDOC01-appb-M000006
 たとえば、検知部153は、図12に示した第2特徴HM1-1の各画素値と、第2特徴HM2-1の各画素値とを基にして、差分を算出し、差分が閾値以上である場合に、第2特徴HM1-1に対応する関節の異常を検知する。ここで、第2特徴HM1-1が、カメラ30aに対応する第2特徴群情報に含まれるフレーム番号nの第2特徴であって、関節「HAND_TIP_RIGHT」に対応する第2特徴である場合には、「カメラ識別情報:C30a、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
 なお、検知部153は、ネットワークによる自動重み調整を行って、異常な第2特徴の影響度を下げるようにしてもよい。図13は、ネットワークの自動重み調整の一例を説明するための図である。図13に示すDNN(Deep Neural Network)142Cは、2D畳み込み層、ReLU層、MaxPooling層、全結合層から構成されるネットワークである。DNN142Cは、全体モデルと別途訓練するのではなく、組み込みself-learning方式で全体モデルと同時に学習するものとする。
 たとえば、DNN142Cに、j個の第2特徴を含むHMinputとDNN142Cに入力することで、各第2特徴に対応する重みw,w,・・・wを出力する。たとえば、検知部153は、各重みw,w,・・・wを、異常関節情報として生成する。重みwの重みが小さい場合(閾値未満の場合)には、重みwに対応する第2特徴の関節が異常であるといえる。
 続いて、検知部153が実行する第2の異常heatmap検知処理について説明する。検知部153は、多視点幾何の整合性を基にして、異常となる関節を検知する。たとえば、検知部153は、以下の処理を実行する。
 検知部153は、フレーム番号nの第2特徴群情報に含まれるJ個の第2特徴から、最大値座標を算出する。最大値座標は、尤度が最大となる座標である。検知部153は、視点vの第2特徴群情報に含まれる第2特徴について、次の処理を実行する。視点vは、1つのカメラ30の中心座標に対応する。
 図14は、第2の異常heatmap検知処理について説明する図(1)である。第2特徴HM3-1を、注目する視点vの第2特徴とする。第2特徴HM3-2を、他の視点v´の第2特徴とする。第2特徴HM3-3を、他の視点v´´の第2特徴とする。検知部153は、第2特徴HM3-1の最大値座標と、第2特徴HM3-2の最大値座標とを基にして、エピポーラ線lv,v´を算出する。検知部153は、第2特徴HM3-1の最大値座標と、第2特徴HM3-3の最大値座標とを基にして、エピポーラ線lv,v´´を算出する。
 検知部153は、エピポーラ線lv,v´とエピポーラ線lv,v´´との交点を算出する。検知部153は、注目する視点vの第2特徴HM3-1の最大値座標と、交点とのユークリッド距離dを算出する。検知部153は、視点毎に上記処理を繰り返し実行し、ユークリッド距離dが閾値dth以下となる視点の組み合わせを抽出する。
 図15は、第2の異常heatmap検知処理について説明する図(2)である。図15では、注目する視点(カメラ)と、視点組み合わせとを対応付ける。注目する視点は、図14の注目する視点に対応する。視点組み合わせは、注目視点の最大値座標と交点とのユーグリッド距離dが閾値dth以下となった交点を生成した視点の組み合わせを示す。
 図15では、説明の便宜上、カメラ30aの中心座標に対応する視点をv30aとする。カメラ30bの中心座標に対応する視点をv30bとする。カメラ30cの中心座標に対応する視点をv30cとする。カメラ30bの中心座標に対応する視点をv30dとする。
 図15の1行目では、注目視点v30aの最大値座標と、第1、第2のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第1のエピポーラ線は、注目視点v30aと視点v30cとのエピポーラ線である。第2のエピポーラ線は、注目視点v30aと視点v30dとのエピポーラ線である。
 図15の2行目では、注目視点v30bの最大値座標とのユークリッド距離dが閾値以下となる、エピポーラ線の交点が存在しないことが示される。
 図15の3行目では、注目視点v30cの最大値座標と、第3、第4のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第3のエピポーラ線は、注目視点v30cと視点v30aとのエピポーラ線である。第4のエピポーラ線は、注目視点v30cと視点v30aとのエピポーラ線である。
 図15の4行目では、注目視点v30dの最大値座標と、第5、第6のエピポーラ線の交点とのユークリッド距離dが閾値dth以下であることが示される。第5のエピポーラ線は、注目視点v30dと視点v30aとのエピポーラ線である。第6のエピポーラ線は、注目視点v30dと視点v30cとのエピポーラ線である。
 検知部153は、最も多く組み合わせに含まれる視点と、組み合わせを持たない注目視点に対応する第2特徴に対応する関節を、異常関節として検知する。
 図15に示した例では、最も多く組み合わせに含まれる視点は、視点v30aである。また、この視点v30aと組み合わせを持たない視点は、視点v30bである。このため、検知部153は、視点v30bに対応する第2特徴の関節を異常関節として、検知する。たとえば、視点v30bに対応する第2特徴に対応する関節が「HAND_TIP_RIGHT」であり、フレーム番号nに対応するものとする。この場合、検知部153は、「カメラ識別情報:C30b、フレーム番号:n、異常関節:HAND_TIP_RIGHT」を含む異常関節情報を生成する。
 ここで、エピポーラ線の算出の一例について説明する。検知部153は、視点v,v´のカメラ中心座標C,C、透視投影行列P,Pv´,視点v´の最大値座標をpv´とする場合、視点vにおけるpj,v´のエピポーラ線lv,v´を式(7)で算出する。式(7)において、[・]×は、歪非対称行列を示す。Pv´ は、Pの疑似逆行列(Pv´ (Pv´v´ -1)を表す。
Figure JPOXMLDOC01-appb-M000007
 エピポーラ線の交点について説明する。視点vにおける視点v´、v´´の最大値座標から引いたエピポーラ線lv,v´,lv,v´´の交点qv,v´,v´´を導出するものする。検知部153は、2直線の交点の導出と同様にして、lv,v´=(av´,bv´,-cv´)、lv,v´´=(av´´,bv´´,-cv´´)とする場合、式(8)に基づいて算出する。式(8)のA-1は、式(9)によって示される。式(8)のCは、式(10)によって示される。
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
 検知部153は、最大座標pj,vとエピポーラ線の交点qv,v´,v´´との距離dを、式(11)を基にして算出する。
Figure JPOXMLDOC01-appb-M000011
 上記のように、検知部153は、左右反転検知、セルフオクルージョン検知、異常heatmap検知を実行し、異常関節情報を生成する。検知部153は、上記のように、異常関節情報には、カメラ識別情報、フレーム番号、異常関節が含まれる。検知部153は、異常関節情報を、骨格認識部154に出力する。
 図4の説明に戻る。骨格認識部154は、特徴テーブル142から、各カメラ識別情報の第2特徴群情報を取得し、取得した第2特徴群情報に含まれる第2特徴から、異常関節情報に対応する第2特徴を除去する。骨格認識部154は、異常関節情報に対応する第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。骨格認識部154は、フレーム番号毎に、上記処理を繰り返し実行し、3D骨格の認識結果を、技認識部155に出力する。
 ここで、骨格認識部154の処理の具体例を示す。骨格認識部154は、各カメラに対応する第2特徴群情報(J個の第2特徴)を、カメラパラメータに従って、3Dcubeに逆投影することで、aggregated volumesを算出する。ここでは、第2特徴群情報のフレーム番号をnとするが、他のフレーム番号に対応する第2特徴群情報に関する処理も同様である。
 たとえば、骨格認識部154は、カメラ30aのカメラパラメータに基づいて、カメラ識別情報「C30a」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第1のaggregated volumeを算出する。骨格認識部154は、カメラ30bのカメラパラメータに基づいて、カメラ識別情報「C30b」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第2のaggregated volumeを算出する。
 骨格認識部154は、カメラ30cのカメラパラメータに基づいて、カメラ識別情報「C30c」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第3のaggregated volumeを算出する。骨格認識部154は、カメラ30dのカメラパラメータに基づいて、カメラ識別情報「C30d」に対応する第2特徴群情報を、3Dcubeに逆投影することで、第4のaggregated volumeを算出する。
 骨格認識部154は、異常関節情報に対応する第2特徴を、3Dcubeに逆投影した異常点を特定し、第1、第2、第3、第4のaggregated volume(volumes)から、異常点を除去するためのフィルタリングを実行する。
 たとえば、骨格認識部154は、異常関節情報に含まれるカメラ識別情報(異常とみなすカメラc)と、異常関節kと、式(12)とを用いて、フィルタリングを実行する。式(12)に含まれるcは、softmax時の影響を無効化する無効値である。
Figure JPOXMLDOC01-appb-M000012
 骨格認識部154は、異常点を除去した(フィルタリングした)第1、第2、第3、第4のaggregated volume(volumes)を統合することで、V2V(ニューラルネットワーク)の入力情報を算出する。
 骨格認識部154は、統合処理を式(13)もしくは式(14)と式(15)に基づいて実行し、入力情報Vinputを計算する。式(13)、(14)、(15)に基づいて、統合処理を行う場合には、3D骨格の精度を担保するために、対向するカメラのみが残らない制約を設けてもよい。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
Figure JPOXMLDOC01-appb-M000015
 骨格認識部154は、入力情報を、V2Vに入力することで、各関節の3Dの位置座標を示すprocessed volumesを算出する。骨格認識部154は、processed volumesに対して、soft-argmaxを実行することで、3D骨格の認識結果を生成する。3D骨格の認識結果には、J個の関節の3D座標が含まれる。骨格認識部154は、3D骨格の認識結果となる骨格認識結果データを、技認識部155に出力する。また、骨格認識部154は、骨格認識結果データを、記憶部140に保存する。
 技認識部155は、フレーム番号の順に骨格認識結果データを、骨格認識部154から取得し、連続する骨格認識結果データを基にして、各関節座標の時系列変化を特定する。技認識部155は、各関節位置の時系列変化と、技認識テーブル145とを比較して、技の種別を特定する。また、技認識部155は、技の種別の組み合わせと、技認識テーブル143とを比較して、被写体H1の演技のスコアを算出する。
 技認識部155は、演技のスコアと、演技の開始から終了までの骨格認識結果データとを基にして、画面情報を生成する。技認識部155は、生成した画面情報を、表示部130に出力して表示させる。
 図16は、画面情報の一例を示す図である。図16に示すように、この画面情報60には、領域60a,60b,60cが含まれる。領域60aは、被写体H1が行った演技において、認識された技の種別を表示する領域である。技の種別に加えて、技の難度も表示してもよい。領域60bは、演技のスコアを表示する領域である。領域60aは、演技の開始から終了までの骨格認識結果データに基づく3次元モデルをアニメーション表示する領域である。利用者は、入力部120を操作して、アニメーションの再生、停止等を指示する。
 次に、本実施例に係る骨格認識装置100の処理手順の一例について説明する。図17は、本実施例に係る骨格認識装置の処理手順を示すフローチャートである。骨格認識装置100の取得部151は、複数のカメラ30から画像フレーム(多視点画像)を取得する(ステップS101)。
 骨格認識装置100の生成部152は、第2特徴生成処理を実行する(ステップS102)。骨格認識装置100の検知部153は、異常検知処理を実行する(ステップS103)。
 骨格認識装置100の骨格認識部154は、異常関節のフィルタリングを実行する(ステップS104)。骨格認識部154は、統合処理を実行して、入力情報を生成する(ステップS105)。骨格認識部154は、入力情報をV2Vに入力して、processed volumesを算出する(ステップS106)。
 骨格認識部154は、processed volumesに対して、soft-argmaxを実行することで、3D骨格の認識結果を生成する(ステップS107)。骨格認識部154は、骨格認識結果データを、技認識部155に出力する(ステップS108)。
 骨格認識部154は、最終フレームである場合には(ステップS109,Yes)、処理を終了する。一方、骨格認識部154は、最終フレームでない場合には(ステップS109,No)、骨格認識結果データを記憶部140に保存し(ステップS110)、ステップS101に移行する。
 次に、図17のステップS102で説明した第2特徴生成処理の一例について説明する。図18は、第2特徴生成処理のフローチャートである。図18に示すように、骨格認識装置100の生成部152は、画像フレームを、2D特徴抽出NN142Aに入力することで、K個の第1特徴を算出する(ステップS201)。
 生成部152は、K個の第1特徴を、チャネル数変換NN142Bに入力することで、J個の第2特徴を生成する(ステップS202)。生成部152は、第2特徴の情報を出力する(ステップS203)。
 次に、図17のステップS103で説明した異常検知処理の一例について説明する。図19は、異常検知処理のフローチャートである。図19に示すように、骨格認識装置100の検知部153は、第2特徴を取得する(ステップS301)。検知部153は、左右反転検知を実行する(ステップS302)。
 検知部153は、オクルージョン検知を実行する(ステップS303)。検知部153は、異常heatmap検知を実行する(ステップS304)。検知部153は、異常関節の検知結果を基にして、異常関節情報を生成する(ステップS305)。検知部153は、異常関節情報を出力する(ステップS306)。
 次に、本実施例に係る骨格認識装置100の効果について説明する。骨格認識装置100は、カメラ30から入力される画像フレームを基にして抽出した、被写体H1の2次元の関節位置の特徴を表すK個の第1特徴を、被写体のJ個の関節にそれぞれ対応したJ個の第2特徴(第2特徴群情報)を生成する。骨格認識装置100は、第2特徴群情報から、異常のある関節に対応した第2特徴を検知し、第2特徴群情報から、異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する。これによって、異常のある2D特徴を事前に除去することができ、正しく3D骨格認識を実行することができる。
 骨格認識装置100は、前回(フレーム番号n-1)の第2特徴群情報を基に生成されるベクトルと、今回(フレーム番号n)の第2特徴群情報を基に生成されるベクトルとを基にして、異常のある第2特徴を検知する。これによって、左右反転した異常な関節を検知することができる。
 骨格認識装置100は、第2特徴群情報を基にして、所定の関節から特定されるBoxと、所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知する。これによって、オクルージョンに影響を受けた異常な関節を検知することができる。
 骨格認識装置100は、heatmap(第2特徴)と、予め特定される理想的な尤度の分布情報との差分を基にして、異常のある第2特徴を検知する。また、骨格認識装置100は、heatmapを基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知する。これによって、パターン「消失」、「ぼけ」、「分裂」、「位置ずれ」の発生した第2特徴を検知して除去することが出来る。
 図20は、本実施例に係る骨格認識装置の効果を説明するための図である。図20では、従来技術の3D骨格認識結果Im2-1c,Im2-2c,Im2-3c,Im2-4cと、骨格認識装置100による3D骨格認識結果Im2-1d,Im2-2d,Im2-3d,Im2-4dを示す。骨格認識装置100によれば、左右反転検知、セルフオクルージョン検知、異常heatmap検知により、誤った関節に対応する第2特徴を取り除くことで、3D骨格の精度を改善している。たとえば、従来技術の3D骨格認識結果Im2-1c~Im2-4cは、被写体と3D骨格とが乖離しているが、本実施例の3D骨格認識結果Im2-1d~Im2-4dは、被写体の3D骨格を適切に特定している。
 次に、上記実施例に示した骨格認識装置100と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図21は、骨格認識装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
 図21に示すように、コンピュータ200は、各種演算処理を実行するCPU201と、ユーザからのデータの入力を受け付ける入力装置202と、ディスプレイ203とを有する。また、コンピュータ200は、カメラ30から距離画像のデータを受信する通信装置204と、各種の装置と接続するインタフェース装置205とを有する。コンピュータ200は、各種情報を一時記憶するRAM206と、ハードディスク装置207とを有する。そして、各装置201~207は、バス208に接続される。
 ハードディスク装置207は、取得プログラム207a、生成プログラム207b、検知プログラム207c、骨格認識プログラム207d、技認識プログラム207eを有する。CPU201は、取得プログラム207a、生成プログラム207b、検知プログラム207c、骨格認識プログラム207d、技認識プログラム207eを読み出してRAM206に展開する。
 取得プログラム207aは、取得プロセス206aとして機能する。生成プログラム207bは、生成プロセス206bとして機能する。検知プログラム207cは、検知プロセス206cとして機能する。骨格認識プログラム207dは、骨格認識プロセス206dとして機能する。技認識プログラム207eは、技認識プロセス206eとして機能する。
 取得プロセス206aの処理は、取得部151の処理に対応する。生成プロセス206bの処理は、生成部152の処理に対応する。検知プロセス206cの処理は、検知部153の処理に対応する。骨格認識プロセス206dの処理は、骨格認識部154の処理に対応する。技認識プロセス206eの処理は、技認識部155の処理に対応する。
 なお、各プログラム207a~207fについては、必ずしも最初からハードディスク装置307に記憶させておかなくてもよい。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ300が各プログラム207a~207eを読み出して実行するようにしてもよい。
 35  体操採点支援システム
 30a,30b,30c,30d カメラ
 100  骨格認識装置
 110  通信部
 120  入力部
 130  表示部
 140  記憶部
 141  測定テーブル
 142  特徴テーブル
 143  技認識テーブル
 150  制御部
 151  取得部
 152  生成部
 153  検知部
 154  骨格認識部
 155  技認識部

Claims (15)

  1.  コンピュータが実行する骨格認識方法であって、
     被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、
     前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成し、
     前記第2特徴群情報から、異常のある第2特徴を検知し、
     前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する
     処理を実行することを特徴とする骨格認識方法。
  2.  前記生成する処理は、時系列に複数の第2特徴群情報を生成し、
     前記検知する処理は、前回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第1ベクトルと、今回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第2ベクトルとを基にして、異常のある第2特徴を検知することを特徴とする請求項1に記載の骨格認識方法。
  3.  前記検知する処理は、前記第2特徴群情報を基にして、所定の関節から特定される領域と、前記所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知することを特徴とする請求項2に記載の骨格認識方法。
  4.  前記第2特徴は、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報であり、
     前記検知する処理は、前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、異常のある第2特徴を検知することを特徴とする請求項1に記載の骨格認識方法。
  5.  前記検知する処理は、前記heatmap情報を基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、前記エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知することを特徴とする請求項4に記載の骨格認識方法。
  6.  コンピュータに、
     被写体を撮影する複数のカメラから入力される2次元の入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、
     前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成し、
     前記第2特徴群情報から、異常のある第2特徴を検知し、
     前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を統合した結果を基にして、3D骨格を認識する
     処理を実行させることを特徴とする骨格認識プログラム。
  7.  前記生成する処理は、時系列に複数の第2特徴群情報を生成し、
     前記検知する処理は、前回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第1ベクトルと、今回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第2ベクトルとを基にして、異常のある第2特徴を検知することを特徴とする請求項6に記載の骨格認識プログラム。
  8.  前記検知する処理は、前記第2特徴群情報を基にして、所定の関節から特定される領域と、前記所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知することを特徴とする請求項7に記載の骨格認識プログラム。
  9.  前記第2特徴は、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報であり、
     前記検知する処理は、前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、異常のある第2特徴を検知することを特徴とする請求項6に記載の骨格認識プログラム。
  10.  前記検知する処理は、前記heatmap情報を基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、前記エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知することを特徴とする請求項9に記載の骨格認識プログラム。
  11.  被写体を撮影する複数のカメラと、骨格認識装置とを有する体操採点支援システムであって、
     前記骨格認識装置は、
     前記複数のカメラから入力される2次元の入力画像を取得する取得部と、
     前記入力画像を基にして、前記被写体の2次元の関節位置の特徴を示す複数の第1特徴を抽出し、前記複数の第1特徴を基にして、前記被写体の所定数の関節にそれぞれ対応させた複数の第2特徴を含む第2特徴群情報を生成する生成部と、
     前記第2特徴群情報から、異常のある第2特徴を検知する検知部と、
     前記第2特徴群情報から、前記異常のある第2特徴を除去した残りの複数の第2特徴を合成した結果を基にして、3D骨格を認識する骨格認識部と
     を有することを特徴とする体操採点支援システム。
  12.  前記生成部は、時系列に複数の第2特徴群情報を生成し、前記検知部は、前回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第1ベクトルと、今回の第2特徴群情報を基に特定される所定の関節の組を始点および終点とする第2ベクトルとを基にして、異常のある第2特徴を検知することを特徴とする請求項11に記載の体操採点支援システム。
  13.  前記検知部は、前記第2特徴群情報を基にして、所定の関節から特定される領域と、前記所定の関節以外の関節の位置との関係を基にして、異常のある第2特徴を検知することを特徴とする請求項12に記載の体操採点支援システム。
  14.  前記第2特徴は、座標と前記座標に所定の関節が存在する尤度とを対応付けたheatmap情報であり、前記検知部は、前記heatmap情報と、予め特定される理想的な尤度の分布情報との差分を基にして、異常のある第2特徴を検知することを特徴とする請求項11に記載の体操採点支援システム。
  15.  前記検知部は、前記heatmap情報を基にして、カメラ位置を視点とする複数のエピポーラ線を算出し、前記エピポーラ線の交点と、関節の位置との距離を基にして、異常のある第2特徴を検知することを特徴とする請求項14に記載の体操採点支援システム。
PCT/JP2021/009267 2021-03-09 2021-03-09 骨格認識方法、骨格認識プログラムおよび体操採点支援システム WO2022190206A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2023504918A JPWO2022190206A1 (ja) 2021-03-09 2021-03-09
CN202180093006.6A CN116830166A (zh) 2021-03-09 2021-03-09 骨骼识别方法、骨骼识别程序以及体操评分辅助系统
PCT/JP2021/009267 WO2022190206A1 (ja) 2021-03-09 2021-03-09 骨格認識方法、骨格認識プログラムおよび体操採点支援システム
EP21930063.9A EP4307213A4 (en) 2021-03-09 2021-03-09 SKELETON DETECTION METHOD, SKELETON DETECTION PROGRAM AND GYMNASTICS ASSESSMENT SUPPORT SYSTEM
US18/356,043 US20230368415A1 (en) 2021-03-09 2023-07-20 Skeleton recognition method, non-transitory computer-readable recording medium, and gymnastics scoring assist system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/009267 WO2022190206A1 (ja) 2021-03-09 2021-03-09 骨格認識方法、骨格認識プログラムおよび体操採点支援システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/356,043 Continuation US20230368415A1 (en) 2021-03-09 2023-07-20 Skeleton recognition method, non-transitory computer-readable recording medium, and gymnastics scoring assist system

Publications (1)

Publication Number Publication Date
WO2022190206A1 true WO2022190206A1 (ja) 2022-09-15

Family

ID=83226426

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/009267 WO2022190206A1 (ja) 2021-03-09 2021-03-09 骨格認識方法、骨格認識プログラムおよび体操採点支援システム

Country Status (5)

Country Link
US (1) US20230368415A1 (ja)
EP (1) EP4307213A4 (ja)
JP (1) JPWO2022190206A1 (ja)
CN (1) CN116830166A (ja)
WO (1) WO2022190206A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10302070A (ja) 1997-04-25 1998-11-13 Fujitsu Ltd 動き抽出処理方法,動き抽出処理装置およびプログラム記憶媒体
JP2000251078A (ja) 1998-12-22 2000-09-14 Atr Media Integration & Communications Res Lab 人物の3次元姿勢推定方法および装置ならびに人物の肘の位置推定方法および装置
US20190251341A1 (en) * 2017-12-08 2019-08-15 Huawei Technologies Co., Ltd. Skeleton Posture Determining Method and Apparatus, and Computer Readable Storage Medium
WO2020054442A1 (ja) * 2018-09-10 2020-03-19 国立大学法人東京大学 関節位置の取得方法及び装置、動作の取得方法及び装置
WO2020084667A1 (ja) * 2018-10-22 2020-04-30 富士通株式会社 認識方法、認識プログラム、認識装置、学習方法、学習プログラムおよび学習装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10302070A (ja) 1997-04-25 1998-11-13 Fujitsu Ltd 動き抽出処理方法,動き抽出処理装置およびプログラム記憶媒体
JP2000251078A (ja) 1998-12-22 2000-09-14 Atr Media Integration & Communications Res Lab 人物の3次元姿勢推定方法および装置ならびに人物の肘の位置推定方法および装置
US20190251341A1 (en) * 2017-12-08 2019-08-15 Huawei Technologies Co., Ltd. Skeleton Posture Determining Method and Apparatus, and Computer Readable Storage Medium
WO2020054442A1 (ja) * 2018-09-10 2020-03-19 国立大学法人東京大学 関節位置の取得方法及び装置、動作の取得方法及び装置
WO2020084667A1 (ja) * 2018-10-22 2020-04-30 富士通株式会社 認識方法、認識プログラム、認識装置、学習方法、学習プログラムおよび学習装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4307213A4

Also Published As

Publication number Publication date
CN116830166A (zh) 2023-09-29
JPWO2022190206A1 (ja) 2022-09-15
US20230368415A1 (en) 2023-11-16
EP4307213A4 (en) 2024-03-06
EP4307213A1 (en) 2024-01-17

Similar Documents

Publication Publication Date Title
US10417775B2 (en) Method for implementing human skeleton tracking system based on depth data
CN108537112B (zh) 图像处理装置、图像处理系统、图像处理方法及存储介质
KR101616926B1 (ko) 영상 처리 장치 및 방법
KR101870902B1 (ko) 영상 처리 장치 및 영상 처리 방법
CN103679749B (zh) 一种基于运动目标跟踪的图像处理方法及装置
US20130100140A1 (en) Human body and facial animation systems with 3d camera and method thereof
JP6760490B2 (ja) 認識装置、認識方法および認識プログラム
CN110544301A (zh) 一种三维人体动作重建系统、方法和动作训练系统
CN107798702B (zh) 一种用于增强现实的实时图像叠加方法以及装置
CN107798704B (zh) 一种用于增强现实的实时图像叠加方法及装置
WO2021048988A1 (ja) 骨格認識方法、骨格認識プログラムおよび情報処理装置
CN111080776B (zh) 人体动作三维数据采集和复现的处理方法及系统
JPWO2018207365A1 (ja) 距離画像処理装置、距離画像処理システム、距離画像処理方法および距離画像処理プログラム
WO2009061283A2 (en) Human motion analysis system and method
JP2018055367A (ja) 画像処理装置、画像処理方法、及びプログラム
JP7312026B2 (ja) 画像処理装置、画像処理方法およびプログラム
JPWO2020008576A1 (ja) 判定方法、判定プログラムおよび情報処理装置
Al Ismaeil et al. Real-time enhancement of dynamic depth videos with non-rigid deformations
CN109961092B (zh) 一种基于视差锚点的双目视觉立体匹配方法及系统
KR100792172B1 (ko) 강건한 대응점을 이용한 기본행렬 추정 장치 및 그 방법
WO2022190206A1 (ja) 骨格認識方法、骨格認識プログラムおよび体操採点支援システム
JP6393495B2 (ja) 画像処理装置および物体認識方法
CN115841602A (zh) 基于多视角的三维姿态估计数据集的构建方法及装置
KR101362462B1 (ko) 스테레오 카메라를 이용한 장애물 검출 장치 및 방법
Jung et al. 3D map building using the kinect mounted on a mobile robot

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2023504918

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 202180093006.6

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2021930063

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021930063

Country of ref document: EP

Effective date: 20231009