| Literature DB >> 34960464 |
Jon Echeverria1, Olga C Santos2.
Abstract
Technological advances enable the design of systems that interact more closely with humans in a multitude of previously unsuspected fields. Martial arts are not outside the application of these techniques. From the point of view of the modeling of human movement in relation to the learning of complex motor skills, martial arts are of interest because they are articulated around a system of movements that are predefined, or at least, bounded, and governed by the laws of Physics. Their execution must be learned after continuous practice over time. Literature suggests that artificial intelligence algorithms, such as those used for computer vision, can model the movements performed. Thus, they can be compared with a good execution as well as analyze their temporal evolution during learning. We are exploring the application of this approach to model psychomotor performance in Karate combats (called kumites), which are characterized by the explosiveness of their movements. In addition, modeling psychomotor performance in a kumite requires the modeling of the joint interaction of two participants, while most current research efforts in human movement computing focus on the modeling of movements performed individually. Thus, in this work, we explore how to apply a pose estimation algorithm to extract the features of some predefined movements of Ippon Kihon kumite (a one-step conventional assault) and compare classification metrics with four data mining algorithms, obtaining high values with them.Entities:
Keywords: OpenPose; computer vision; deep learning; human activity recognition (HAR); human pose estimation (HPE); karate; martial arts
Mesh:
Year: 2021 PMID: 34960464 PMCID: PMC8709157 DOI: 10.3390/s21248378
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Description of existing computer vision algorithms for pose estimation.
| Pose Estimation | Description |
|---|---|
| Presented in 2016 [ | |
| System developed in 2016 [ | |
| An algorithm presented in 2014 [ | |
| It is an algorithm developed in 2018 by members of Facebook [ | |
| Neural network architecture for the estimation of human pose developed in 2019 by Microsoft [ | |
| Computer vision algorithm for the estimation of pose in real time of several people in 2D developed in 2017 [ | |
| It is a pose estimator for a single person or several people, offering 17 keypoints with which to model the human body. It was developed in 2015 [ | |
| WrnchAI is a human deposit estimation algorithm developed by a company based in Canada in 2014 and released only under license. It can be used for one or several individuals making use of the low latency engine, being a system compatible with all types of video. Due to its commercial use, we could not find any scientific paper describing it. |
Technical characteristics of the OpenPose algorithm (obtained from https://github.com/CMU-Perceptual-Computing-Lab/openpose, accessed on 28 November 2021).
| OpenPose Features | |
|---|---|
| Main functionality | Detection of keypoints of several people in real time 2D. |
| Real-time single-person 3D keypoint detection | 3D triangulation of multiple unique views. |
| Calibration Toolbox | Estimation of the distortion, intrinsic and extrinsic parameters of the camera. |
| Input | Image, Video, Webcam, Flir/Point Gray, IP Camera, and support for adding your own custom input source (e.g., depth camera). |
| Output | Basic image + keypoint display/save (PNG, JPG, AVI...), keypoint save (JSON, XML, YML...), keypoints as array class and support to add your own code custom output (e.g., some fancy user interface). |
Figure 1OpenPose’s network structure schematic diagram (obtained from [104]).
Figure 2Steps for Karate movement recognition using OpenPose.
Figure 3Example of angle feature extraction from the keypoints obtained by combining COCO and Human Foot Keypoint datasets.
Figure 4Triplets of keypoints for calculating the angle with OpenPose.
Figure 5Training model and the raw data input process flow proposed in this research.
Machine Learning vs. Deep Learning (obtained from [129]).
| Characteristics | Machine Learning | Deep Learning |
|---|---|---|
|
| Small/Medium | Large |
|
| High accuracy | Medium accuracy |
|
| Needed | Not needed |
|
| Short time | Takes longer time |
|
| From easy (tree, logistic) to difficult (SVM) | From difficult to impossible |
|
| Trains on CPU | Requires GPU |
Figure 6Process to calculate the computational cost.
Types of kumite.
|
| |
Figure 7Pictures of the postures in an Ippon Kihon kumite selected for the initial dataset.
Postures to be detected in the dataset for the Ippon Kihon kumite.
| Attack | Defense | ||
|---|---|---|---|
| 1 | Kamae | 1 | Kamae |
| 1 | Gedan Barai | 2 | Soto Uke |
| 3 | Oi Tsuki | 3 | Gyaku Tsuki |
Figure 8Performing individually an Ippon Kihon kumite movement (Oi Tsuki attack) for the recognition tests.
Figure 9Applying OpenPose to Ippon Kihon kumite training of two participants, where the body keypoints are represented (image obtained from KUMITRON).
Figure 10Display of defined attributes selected for identification in defined classes (obtained from Weka).
Defined Karate postures with the colors used in Figure 10 and the number of dataset inputs considered.
| Class | Color | Number of Dataset Inputs |
|---|---|---|
|
| Blue | 1801 |
|
| Red | 1548 |
|
| Cyan | 1805 |
|
| Dark green | 3643 |
|
| Pink | 1721 |
|
| Light green | 3627 |
Summary results of the four data mining algorithms using 10-fold cross validation.
| J48 | BayesNet | MLP | DeepLearning4J | |
|---|---|---|---|---|
|
| 0.5 | 0.27 | 34.18 | 47.9 |
|
| 14139 | 14137 | 14138 | 14142 |
|
| 99.9576 | 99.9434 | 99.9505 | 99.9788 |
|
| 6 | 8 | 7 | 3 |
|
| 0.0424 | 0.0566 | 0.0495 | 0.0212 |
|
| 0.9995 | 0.9993 | 0.9994 | 0.9997 |
|
| 0.0001 | 0.0002 | 0.0006 | 0.0001 |
|
| 0.0119 | 0.0137 | 0.0118 | 0.0074 |
|
| 0.0539 | 0.0702 | 0.2148 | 0.0521 |
|
| 3.2416 | 3.7228 | 3.2134 | 2.0249 |
|
| 14145 | 14145 | 14145 | 14145 |
Evaluation metrics obtained for the four algorithms.
| Algorithm | TP Rate | FP Rate | Precision | Recall | F-Measure | MCC | ROC Area | PRC Area |
|---|---|---|---|---|---|---|---|---|
|
| 1.000 | 0.000 | 0.999 | 0.999 | 0.999 | 0.999 | 1.000 | 1.000 |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 0.999 | 0.999 | 1.000 | 0.999 |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 0.999 | 1.000 | 1.000 |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
Figure 11Comparative times between the applied algorithms to build the models.
BayesNet algorithm—metrics computed by movement (class).
| TP Rate | FP Rate | Precision | Recall | F-Measure | MCC | ROC Area | PRC Area | Class | |
|---|---|---|---|---|---|---|---|---|---|
| 1.000 | 0.000 | 0.999 | 1.000 | 0.999 | 0.999 | 1.000 | 1.000 | Attack01 | |
| 1.000 | 0.000 | 0.996 | 1.000 | 0.998 | 0.998 | 1.000 | 0.999 | Attack02 | |
| 0.996 | 0.000 | 1.000 | 0.996 | 0.998 | 0.997 | 1.000 | 1.000 | Attack03 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense01 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense02 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense03 | |
|
| 1.000 | 0.000 | 0.999 | 0.999 | 0.999 | 0.999 | 1.000 | 1.000 |
J48 algorithm—metrics computed by movement (class).
| TP Rate | FP Rate | Precision | Recall | F-Measure | MCC | ROC Area | PRC Area | Class | |
|---|---|---|---|---|---|---|---|---|---|
| 0.999 | 0.000 | 0.998 | 0.999 | 0.999 | 0.998 | 0.999 | 0.997 | Attack01 | |
| 0.998 | 0.000 | 0.999 | 0.998 | 0.998 | 0.998 | 0.999 | 0.997 | Attack02 | |
| 0.999 | 0.000 | 1.000 | 0.999 | 1.000 | 1.000 | 1.000 | 1.000 | Attack03 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense01 | |
| 1.000 | 0.000 | 0.999 | 1.000 | 1.000 | 1.000 | 1.000 | 0.999 | Defense02 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense03 | |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 0.999 | 0.999 | 1.000 | 0.999 |
MLP algorithm—metrics computed by movement (class).
| TP Rate | FP Rate | Precision | Recall | F-Measure | MCC | ROC Area | PRC Area | Class | |
|---|---|---|---|---|---|---|---|---|---|
| 0.999 | 0.000 | 0.999 | 0.999 | 0.999 | 0.999 | 0.999 | 1.000 | Attack01 | |
| 0.997 | 0.000 | 0.998 | 0.997 | 0.998 | 0.997 | 1.000 | 1.000 | Attack02 | |
| 0.999 | 0.000 | 0.999 | 0.999 | 0.999 | 0.999 | 1.000 | 1.000 | Attack03 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense01 | |
| 1.000 | 0.000 | 0.999 | 1.000 | 1.000 | 1.000 | 1.000 | 0.999 | Defense02 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense03 | |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 0.999 | 1.000 | 1.000 |
Deep Learning4J—metrics computed by movement (class).
| TP Rate | FP Rate | Precision | Recall | F-Measure | MCC | ROC Area | PRC Area | Class | |
|---|---|---|---|---|---|---|---|---|---|
| 0.999 | 0.000 | 0.999 | 0.999 | 0.999 | 0.999 | 0.999 | 1.000 | Attack01 | |
| 0.999 | 0.000 | 1.000 | 0.999 | 0.999 | 0.999 | 1.000 | 1.000 | Attack02 | |
| 1.000 | 0.000 | 0.999 | 1.000 | 0.999 | 0.999 | 1.000 | 1.000 | Attack03 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense01 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 0.999 | Defense02 | |
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | Defense03 | |
|
| 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
Network hyperparameters using Weka.
| Network Hyperparameters | |
|---|---|
|
| weka.classifiers.bayes.BayesNet -D -Q weka.classifiers.bayes.net.search.local.K2 -- -P 1 -S BAYES -E Weka.classifiers.bayes.net.estimate.SimpleEstimator -- -A 0.5 |
|
| weka.classifiers.trees.J48 -C 0.25 -M 2 |
|
| weka.classifiers.functions.MultilayerPerceptron -L 0.3 -M 0.2 -N 500 -V 0 -S 0 -E 20 -H a |
|
| weka.dl4j.inference.Dl4jCNNExplorer -custom-model “weka.dl4j.inference.CustomModelSetup -channels 3 -height 224 -width 224 -model-file C:\\Users\\Johni\\wekafiles\\packages” -decoder “weka.dl4j.inference.ModelOutputDecoder -builtIn IMAGENET -classMapFile C:\\Users\\Johni\\wekafiles\\packages” -saliency-map “weka.dl4j.interpretability.WekaScoreCAM -bs 1 -normalize -output C:\\Users\\Johni\\wekafiles\\packages -target-classes -1” -zooModel “weka.dl4j.zoo.Dl4jResNet50 -channelsLast false -pretrained IMAGENET” |
Figure 12Subactivity recognition in a sequence of Ippon Kihon kumite techniques.