diff --git a/media/RESULTS.md b/media/RESULTS.md index 1004aaf..14e4605 100644 --- a/media/RESULTS.md +++ b/media/RESULTS.md @@ -2099,6 +2099,276 @@ Results of the model in various experiments on different datasets. } ``` +### CHI3D + +```json +{ + "avg_time_2d": 0.060682081548791185, + "avg_time_3d": 0.00043821836772717926, + "avg_fps": 16.36117626002912 +} +{ + "person_nums": { + "total_frames": 390, + "total_labels": 780, + "total_preds": 777, + "considered_empty": 0, + "valid_preds": 777, + "invalid_preds": 0, + "missing": 3, + "invalid_fraction": 0.0, + "precision": 1.0, + "recall": 0.99615, + "f1": 0.99807, + "non_empty": 777 + }, + "mpjpe": { + "count": 777, + "mean": 0.068242, + "median": 0.065186, + "std": 0.013462, + "sem": 0.000483, + "min": 0.051948, + "max": 0.217357, + "recall-0.025": 0.0, + "recall-0.05": 0.0, + "recall-0.1": 0.976923, + "recall-0.15": 0.987179, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780, + "ap-0.025": 0.0, + "ap-0.05": 0.0, + "ap-0.1": 0.971991, + "ap-0.15": 0.987001, + "ap-0.25": 0.996154, + "ap-0.5": 0.996154 + }, + "head": { + "count": 777, + "mean": 0.037924, + "median": 0.025795, + "std": 0.041221, + "sem": 0.00148, + "min": 0.003652, + "max": 0.338066, + "recall-0.025": 0.469231, + "recall-0.05": 0.835897, + "recall-0.1": 0.939744, + "recall-0.15": 0.961538, + "recall-0.25": 0.991026, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "shoulder_left": { + "count": 777, + "mean": 0.068426, + "median": 0.068295, + "std": 0.02725, + "sem": 0.000978, + "min": 0.016575, + "max": 0.357954, + "recall-0.025": 0.005128, + "recall-0.05": 0.24359, + "recall-0.1": 0.937179, + "recall-0.15": 0.985897, + "recall-0.25": 0.99359, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "shoulder_right": { + "count": 775, + "mean": 0.077543, + "median": 0.074897, + "std": 0.031788, + "sem": 0.001143, + "min": 0.010535, + "max": 0.485894, + "recall-0.025": 0.007692, + "recall-0.05": 0.075641, + "recall-0.1": 0.898718, + "recall-0.15": 0.982051, + "recall-0.25": 0.987179, + "recall-0.5": 0.99359, + "num_labels": 780 + }, + "elbow_left": { + "count": 776, + "mean": 0.060755, + "median": 0.05218, + "std": 0.033518, + "sem": 0.001204, + "min": 0.016563, + "max": 0.417809, + "recall-0.025": 0.002564, + "recall-0.05": 0.432051, + "recall-0.1": 0.932051, + "recall-0.15": 0.966667, + "recall-0.25": 0.989744, + "recall-0.5": 0.994872, + "num_labels": 780 + }, + "elbow_right": { + "count": 777, + "mean": 0.066781, + "median": 0.065762, + "std": 0.020878, + "sem": 0.000749, + "min": 0.027359, + "max": 0.224832, + "recall-0.025": 0.0, + "recall-0.05": 0.194872, + "recall-0.1": 0.941026, + "recall-0.15": 0.983333, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "wrist_left": { + "count": 774, + "mean": 0.049563, + "median": 0.042911, + "std": 0.042084, + "sem": 0.001514, + "min": 0.006736, + "max": 0.497826, + "recall-0.025": 0.171795, + "recall-0.05": 0.679487, + "recall-0.1": 0.939744, + "recall-0.15": 0.967949, + "recall-0.25": 0.982051, + "recall-0.5": 0.992308, + "num_labels": 780 + }, + "wrist_right": { + "count": 776, + "mean": 0.064678, + "median": 0.062017, + "std": 0.041104, + "sem": 0.001477, + "min": 0.008905, + "max": 0.430827, + "recall-0.025": 0.042308, + "recall-0.05": 0.369231, + "recall-0.1": 0.928205, + "recall-0.15": 0.952564, + "recall-0.25": 0.985897, + "recall-0.5": 0.994872, + "num_labels": 780 + }, + "hip_left": { + "count": 777, + "mean": 0.109321, + "median": 0.109336, + "std": 0.017307, + "sem": 0.000621, + "min": 0.065587, + "max": 0.157263, + "recall-0.025": 0.0, + "recall-0.05": 0.0, + "recall-0.1": 0.325641, + "recall-0.15": 0.987179, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "hip_right": { + "count": 777, + "mean": 0.134702, + "median": 0.134688, + "std": 0.014986, + "sem": 0.000538, + "min": 0.086478, + "max": 0.195378, + "recall-0.025": 0.0, + "recall-0.05": 0.0, + "recall-0.1": 0.010256, + "recall-0.15": 0.858974, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "knee_left": { + "count": 777, + "mean": 0.050968, + "median": 0.049197, + "std": 0.018325, + "sem": 0.000658, + "min": 0.007513, + "max": 0.198729, + "recall-0.025": 0.026923, + "recall-0.05": 0.535897, + "recall-0.1": 0.957692, + "recall-0.15": 0.99359, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "knee_right": { + "count": 777, + "mean": 0.056941, + "median": 0.054107, + "std": 0.016649, + "sem": 0.000598, + "min": 0.018899, + "max": 0.125673, + "recall-0.025": 0.002564, + "recall-0.05": 0.396154, + "recall-0.1": 0.984615, + "recall-0.15": 0.996154, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "ankle_left": { + "count": 777, + "mean": 0.061821, + "median": 0.059825, + "std": 0.017211, + "sem": 0.000618, + "min": 0.031091, + "max": 0.319784, + "recall-0.025": 0.0, + "recall-0.05": 0.144872, + "recall-0.1": 0.973077, + "recall-0.15": 0.991026, + "recall-0.25": 0.994872, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "ankle_right": { + "count": 777, + "mean": 0.04225, + "median": 0.03841, + "std": 0.014422, + "sem": 0.000518, + "min": 0.015158, + "max": 0.170293, + "recall-0.025": 0.033333, + "recall-0.05": 0.8, + "recall-0.1": 0.992308, + "recall-0.15": 0.994872, + "recall-0.25": 0.996154, + "recall-0.5": 0.996154, + "num_labels": 780 + }, + "joint_recalls": { + "num_labels": 10140, + "recall-0.025": 0.05799, + "recall-0.05": 0.36164, + "recall-0.1": 0.82702, + "recall-0.15": 0.97022, + "recall-0.25": 0.99211, + "recall-0.5": 0.99546 + } +} +{ + "total_parts": 10920, + "correct_parts": 10328, + "pcp": 0.945788 +} +``` + ### Tsinghua (duration 00:01:51) diff --git a/scripts/test_skelda_dataset.py b/scripts/test_skelda_dataset.py index 32c1dbc..ef7de25 100644 --- a/scripts/test_skelda_dataset.py +++ b/scripts/test_skelda_dataset.py @@ -23,6 +23,7 @@ dataset_use = "human36m" # dataset_use = "shelf" # dataset_use = "campus" # dataset_use = "ikeaasm" +# dataset_use = "chi3d" # dataset_use = "tsinghua" # dataset_use = "human36m_wb" # dataset_use = "egohumans" @@ -44,10 +45,6 @@ datasets = { "take_interval": 1, "with_depth": False, }, - "ikeaasm": { - "path": "/datasets/ikeaasm/skelda/test.json", - "take_interval": 2, - }, "campus": { "path": "/datasets/campus/skelda/test.json", "take_interval": 1, @@ -56,6 +53,14 @@ datasets = { "path": "/datasets/shelf/skelda/test.json", "take_interval": 1, }, + "ikeaasm": { + "path": "/datasets/ikeaasm/skelda/test.json", + "take_interval": 2, + }, + "chi3d": { + "path": "/datasets/chi3d/skelda/all.json", + "take_interval": 5, + }, "tsinghua": { "path": "/datasets/tsinghua/skelda/test.json", "take_interval": 3, @@ -178,6 +183,11 @@ def load_labels(dataset: dict): for label in labels: label["bodyids"] = list(range(len(label["bodies3D"]))) + elif "chi3d" in dataset: + labels = load_json(dataset["chi3d"]["path"]) + labels = [lb for lb in labels if lb["setup"] == "s03"] + labels = [lb for i, lb in enumerate(labels) if i % 2000 < 150] + elif "human36m_wb" in dataset: labels = load_json(dataset["human36m_wb"]["path"]) @@ -238,10 +248,10 @@ def main(): "campus": 0.96, "shelf": 0.96, "ikeaasm": 0.89, + "chi3d": 0.94, "tsinghua": 0.96, "egohumans": 0.95, "human36m_wb": 0.94, - "koarob": 0.91, } minscore = minscores.get(dataset_use, 0.95) min_group_sizes = { @@ -249,6 +259,7 @@ def main(): # If the number of cameras is high, and the views are not occluded, use a higher value "panoptic": 1, "shelf": 2, + "chi3d": 1, "tsinghua": 2, "egohumans": 4, } diff --git a/skelda b/skelda index 0127e9d..3c74139 160000 --- a/skelda +++ b/skelda @@ -1 +1 @@ -Subproject commit 0127e9de87d1cdb33fac50337f18e365638e8770 +Subproject commit 3c741392c216128ed745e87f2a36094312f1352a