From 2702c7d7624fc615da777c0cab9cd22ac3d6b87e Mon Sep 17 00:00:00 2001 From: Daniel Date: Fri, 28 Jun 2024 15:50:58 +0200 Subject: [PATCH] Greatly improved triangulation. --- media/RESULTS.md | 2604 ++++++++++++++++---------------- scripts/test_skelda_dataset.py | 4 +- scripts/test_triangulate.py | 4 +- scripts/triangulate_poses.py | 188 ++- 4 files changed, 1440 insertions(+), 1360 deletions(-) diff --git a/media/RESULTS.md b/media/RESULTS.md index 13384ff..9527103 100644 --- a/media/RESULTS.md +++ b/media/RESULTS.md @@ -4,493 +4,492 @@ Results of the model in various experiments on different datasets. ### Human36m -(duration 00:01:30) +(duration 00:01:20) ```json { - "avg_time_2d": 0.08787946579820019, - "avg_time_3d": 0.0023041814060534463, - "avg_fps": 11.088484786328687 + "avg_time_2d": 0.08097348859754659, + "avg_time_3d": 0.0029713828684919973, + "avg_fps": 11.912580036584702 } { "person_nums": { "total_frames": 600, "total_labels": 600, - "total_preds": 621, - "considered_empty": 27, - "valid_preds": 590, - "invalid_preds": 4, - "missing": 10, - "invalid_fraction": 0.00673, - "precision": 0.99327, - "recall": 0.98333, - "f1": 0.98827, - "non_empty": 594 + "total_preds": 602, + "considered_empty": 0, + "valid_preds": 600, + "invalid_preds": 2, + "missing": 0, + "invalid_fraction": 0.00332, + "precision": 0.99668, + "recall": 1.0, + "f1": 0.99834, + "non_empty": 602 }, "mpjpe": { - "count": 590, - "mean": 0.077405, - "median": 0.067674, - "std": 0.041533, - "sem": 0.001711, - "min": 0.043706, - "max": 0.416648, + "count": 600, + "mean": 0.065734, + "median": 0.059207, + "std": 0.026966, + "sem": 0.001102, + "min": 0.043856, + "max": 0.192617, "recall-0.025": 0.0, - "recall-0.05": 0.021667, - "recall-0.1": 0.896667, - "recall-0.15": 0.93, - "recall-0.25": 0.966667, - "recall-0.5": 0.983333, + "recall-0.05": 0.045, + "recall-0.1": 0.948333, + "recall-0.15": 0.95, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600, "ap-0.025": 0.0, - "ap-0.05": 0.002161, - "ap-0.1": 0.847064, - "ap-0.15": 0.892348, - "ap-0.25": 0.958277, - "ap-0.5": 0.981339 + "ap-0.05": 0.00657, + "ap-0.1": 0.914958, + "ap-0.15": 0.916544, + "ap-0.25": 0.9984, + "ap-0.5": 0.9984 }, "nose": { - "count": 573, - "mean": 0.123546, - "median": 0.101613, - "std": 0.07587, - "sem": 0.003172, - "min": 0.017787, - "max": 0.484398, - "recall-0.025": 0.01, - "recall-0.05": 0.058333, - "recall-0.1": 0.466667, - "recall-0.15": 0.723333, - "recall-0.25": 0.903333, - "recall-0.5": 0.955, + "count": 600, + "mean": 0.11277, + "median": 0.09795, + "std": 0.040821, + "sem": 0.001668, + "min": 0.025006, + "max": 0.269847, + "recall-0.025": 0.0, + "recall-0.05": 0.028333, + "recall-0.1": 0.531667, + "recall-0.15": 0.815, + "recall-0.25": 0.993333, + "recall-0.5": 1.0, "num_labels": 600 }, "shoulder_left": { - "count": 588, - "mean": 0.047481, - "median": 0.032545, - "std": 0.043209, - "sem": 0.001783, - "min": 0.005992, - "max": 0.426518, - "recall-0.025": 0.295, - "recall-0.05": 0.72, - "recall-0.1": 0.875, - "recall-0.15": 0.933333, - "recall-0.25": 0.978333, - "recall-0.5": 0.98, + "count": 600, + "mean": 0.033989, + "median": 0.025369, + "std": 0.032344, + "sem": 0.001322, + "min": 0.004249, + "max": 0.180174, + "recall-0.025": 0.49, + "recall-0.05": 0.868333, + "recall-0.1": 0.945, + "recall-0.15": 0.963333, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "shoulder_right": { - "count": 589, - "mean": 0.061104, - "median": 0.042165, - "std": 0.050882, - "sem": 0.002098, - "min": 0.005926, - "max": 0.376224, - "recall-0.025": 0.216667, - "recall-0.05": 0.568333, - "recall-0.1": 0.81, - "recall-0.15": 0.906667, - "recall-0.25": 0.975, - "recall-0.5": 0.981667, + "count": 600, + "mean": 0.047097, + "median": 0.034615, + "std": 0.039203, + "sem": 0.001602, + "min": 0.006416, + "max": 0.200896, + "recall-0.025": 0.26, + "recall-0.05": 0.765, + "recall-0.1": 0.911667, + "recall-0.15": 0.948333, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "elbow_left": { - "count": 590, - "mean": 0.049398, - "median": 0.036729, - "std": 0.044706, - "sem": 0.001842, - "min": 0.007358, - "max": 0.472316, - "recall-0.025": 0.235, - "recall-0.05": 0.711667, - "recall-0.1": 0.895, - "recall-0.15": 0.931667, - "recall-0.25": 0.978333, - "recall-0.5": 0.983333, + "count": 600, + "mean": 0.043117, + "median": 0.033579, + "std": 0.03565, + "sem": 0.001457, + "min": 0.004306, + "max": 0.195614, + "recall-0.025": 0.276667, + "recall-0.05": 0.821667, + "recall-0.1": 0.933333, + "recall-0.15": 0.958333, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "elbow_right": { - "count": 590, - "mean": 0.047708, - "median": 0.036381, - "std": 0.036479, - "sem": 0.001503, - "min": 0.005712, - "max": 0.349821, - "recall-0.025": 0.193333, - "recall-0.05": 0.703333, - "recall-0.1": 0.903333, - "recall-0.15": 0.946667, - "recall-0.25": 0.981667, - "recall-0.5": 0.983333, + "count": 600, + "mean": 0.041943, + "median": 0.032362, + "std": 0.03346, + "sem": 0.001367, + "min": 0.00799, + "max": 0.308337, + "recall-0.025": 0.245, + "recall-0.05": 0.831667, + "recall-0.1": 0.938333, + "recall-0.15": 0.948333, + "recall-0.25": 0.998333, + "recall-0.5": 1.0, "num_labels": 600 }, "wrist_left": { - "count": 586, - "mean": 0.060992, - "median": 0.032235, - "std": 0.066143, - "sem": 0.002735, - "min": 0.003526, - "max": 0.495511, - "recall-0.025": 0.405, - "recall-0.05": 0.595, - "recall-0.1": 0.78, - "recall-0.15": 0.871667, - "recall-0.25": 0.956667, - "recall-0.5": 0.976667, + "count": 600, + "mean": 0.043047, + "median": 0.024877, + "std": 0.047204, + "sem": 0.001929, + "min": 0.001142, + "max": 0.270487, + "recall-0.025": 0.501667, + "recall-0.05": 0.733333, + "recall-0.1": 0.891667, + "recall-0.15": 0.935, + "recall-0.25": 0.996667, + "recall-0.5": 1.0, "num_labels": 600 }, "wrist_right": { - "count": 588, - "mean": 0.061916, - "median": 0.041071, - "std": 0.057252, - "sem": 0.002363, - "min": 0.00244, - "max": 0.279277, - "recall-0.025": 0.311667, - "recall-0.05": 0.548333, - "recall-0.1": 0.81, - "recall-0.15": 0.855, - "recall-0.25": 0.976667, - "recall-0.5": 0.98, + "count": 600, + "mean": 0.046558, + "median": 0.028199, + "std": 0.051162, + "sem": 0.00209, + "min": 0.002724, + "max": 0.252783, + "recall-0.025": 0.443333, + "recall-0.05": 0.766667, + "recall-0.1": 0.885, + "recall-0.15": 0.905, + "recall-0.25": 0.995, + "recall-0.5": 1.0, "num_labels": 600 }, "hip_left": { - "count": 590, - "mean": 0.088917, - "median": 0.084596, - "std": 0.035214, - "sem": 0.001451, - "min": 0.024878, - "max": 0.26314, - "recall-0.025": 0.001667, - "recall-0.05": 0.08, - "recall-0.1": 0.761667, - "recall-0.15": 0.935, - "recall-0.25": 0.98, - "recall-0.5": 0.983333, + "count": 600, + "mean": 0.088603, + "median": 0.083264, + "std": 0.033261, + "sem": 0.001359, + "min": 0.023618, + "max": 0.241896, + "recall-0.025": 0.003333, + "recall-0.05": 0.028333, + "recall-0.1": 0.82, + "recall-0.15": 0.95, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "hip_right": { - "count": 590, - "mean": 0.111352, - "median": 0.11321, - "std": 0.029163, - "sem": 0.001202, - "min": 0.037936, - "max": 0.239011, + "count": 600, + "mean": 0.113407, + "median": 0.112781, + "std": 0.027399, + "sem": 0.001119, + "min": 0.046711, + "max": 0.236993, "recall-0.025": 0.0, - "recall-0.05": 0.023333, - "recall-0.1": 0.253333, - "recall-0.15": 0.935, - "recall-0.25": 0.983333, - "recall-0.5": 0.983333, + "recall-0.05": 0.001667, + "recall-0.1": 0.223333, + "recall-0.15": 0.943333, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "knee_left": { - "count": 590, - "mean": 0.064611, - "median": 0.051592, - "std": 0.059424, - "sem": 0.002449, - "min": 0.013189, - "max": 0.412301, - "recall-0.025": 0.043333, - "recall-0.05": 0.466667, - "recall-0.1": 0.885, - "recall-0.15": 0.901667, - "recall-0.25": 0.966667, - "recall-0.5": 0.983333, + "count": 600, + "mean": 0.058249, + "median": 0.045661, + "std": 0.048165, + "sem": 0.001968, + "min": 0.016547, + "max": 0.354359, + "recall-0.025": 0.031667, + "recall-0.05": 0.605, + "recall-0.1": 0.93, + "recall-0.15": 0.931667, + "recall-0.25": 0.983333, + "recall-0.5": 1.0, "num_labels": 600 }, "knee_right": { - "count": 590, - "mean": 0.055871, - "median": 0.047766, - "std": 0.032744, - "sem": 0.001349, - "min": 0.01423, - "max": 0.233385, - "recall-0.025": 0.018333, - "recall-0.05": 0.573333, - "recall-0.1": 0.935, - "recall-0.15": 0.936667, - "recall-0.25": 0.983333, - "recall-0.5": 0.983333, + "count": 600, + "mean": 0.052499, + "median": 0.045662, + "std": 0.033659, + "sem": 0.001375, + "min": 0.00962, + "max": 0.234671, + "recall-0.025": 0.021667, + "recall-0.05": 0.688333, + "recall-0.1": 0.945, + "recall-0.15": 0.95, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 600 }, "ankle_left": { - "count": 581, - "mean": 0.098214, - "median": 0.086355, - "std": 0.040893, - "sem": 0.001698, - "min": 0.054086, - "max": 0.468083, + "count": 600, + "mean": 0.0955, + "median": 0.087396, + "std": 0.03264, + "sem": 0.001334, + "min": 0.060148, + "max": 0.479475, "recall-0.025": 0.0, "recall-0.05": 0.0, - "recall-0.1": 0.798333, - "recall-0.15": 0.886667, - "recall-0.25": 0.958333, - "recall-0.5": 0.968333, + "recall-0.1": 0.848333, + "recall-0.15": 0.94, + "recall-0.25": 0.996667, + "recall-0.5": 1.0, "num_labels": 600 }, "ankle_right": { - "count": 590, - "mean": 0.080815, - "median": 0.068685, - "std": 0.037092, - "sem": 0.001528, - "min": 0.02696, - "max": 0.23613, + "count": 600, + "mean": 0.077765, + "median": 0.068378, + "std": 0.036897, + "sem": 0.001508, + "min": 0.028667, + "max": 0.329289, "recall-0.025": 0.0, - "recall-0.05": 0.015, - "recall-0.1": 0.848333, - "recall-0.15": 0.903333, - "recall-0.25": 0.983333, - "recall-0.5": 0.983333, + "recall-0.05": 0.021667, + "recall-0.1": 0.898333, + "recall-0.15": 0.935, + "recall-0.25": 0.993333, + "recall-0.5": 1.0, "num_labels": 600 }, "joint_recalls": { "num_labels": 7800, - "recall-0.025": 0.13269, - "recall-0.05": 0.38872, - "recall-0.1": 0.77038, - "recall-0.15": 0.89705, - "recall-0.25": 0.96872, - "recall-0.5": 0.97782 + "recall-0.025": 0.17462, + "recall-0.05": 0.47321, + "recall-0.1": 0.82244, + "recall-0.15": 0.93179, + "recall-0.25": 0.99615, + "recall-0.5": 1.0 } } { "total_parts": 8400, - "correct_parts": 7792, - "pcp": 0.927619 + "correct_parts": 8117, + "pcp": 0.96631 } ``` - ### Shelf -(duration 00:01:11) +(duration 00:00:56) ```json { - "avg_time_2d": 0.1415067259798345, - "avg_time_3d": 0.015355337116726485, - "avg_fps": 6.375027717086834 + "avg_time_2d": 0.14836799483938315, + "avg_time_3d": 0.017724498440719553, + "avg_fps": 6.020741697901867 } { "person_nums": { "total_frames": 301, "total_labels": 477, - "total_preds": 1432, - "considered_empty": 249, + "total_preds": 1136, + "considered_empty": 20, "valid_preds": 477, - "invalid_preds": 706, + "invalid_preds": 639, "missing": 0, - "invalid_fraction": 0.59679, - "precision": 0.40321, + "invalid_fraction": 0.57258, + "precision": 0.42742, "recall": 1.0, - "f1": 0.5747, - "non_empty": 1183 + "f1": 0.59887, + "non_empty": 1116 }, "mpjpe": { "count": 477, - "mean": 0.051156, - "median": 0.044445, - "std": 0.018419, - "sem": 0.000844, - "min": 0.030513, - "max": 0.191864, + "mean": 0.047315, + "median": 0.042138, + "std": 0.015147, + "sem": 0.000694, + "min": 0.028647, + "max": 0.114489, "recall-0.025": 0.0, - "recall-0.05": 0.628931, - "recall-0.1": 0.976939, - "recall-0.15": 0.997904, + "recall-0.05": 0.691824, + "recall-0.1": 0.987421, + "recall-0.15": 1.0, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477, "ap-0.025": 0.0, - "ap-0.05": 0.308667, - "ap-0.1": 0.626297, - "ap-0.15": 0.64047, - "ap-0.25": 0.641316, - "ap-0.5": 0.641316 + "ap-0.05": 0.388784, + "ap-0.1": 0.713268, + "ap-0.15": 0.722361, + "ap-0.25": 0.722361, + "ap-0.5": 0.722361 }, "head": { - "count": 476, - "mean": 0.048662, - "median": 0.045766, - "std": 0.022376, - "sem": 0.001027, - "min": 0.005517, - "max": 0.169567, - "recall-0.025": 0.100629, - "recall-0.05": 0.57652, - "recall-0.1": 0.964361, - "recall-0.15": 0.995807, - "recall-0.25": 0.997904, - "recall-0.5": 0.997904, + "count": 477, + "mean": 0.049118, + "median": 0.045106, + "std": 0.023343, + "sem": 0.00107, + "min": 0.003301, + "max": 0.143894, + "recall-0.025": 0.121593, + "recall-0.05": 0.570231, + "recall-0.1": 0.955975, + "recall-0.15": 1.0, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 477 }, "shoulder_left": { - "count": 476, - "mean": 0.04694, - "median": 0.043143, - "std": 0.023049, - "sem": 0.001058, - "min": 0.000934, - "max": 0.176173, - "recall-0.025": 0.127883, - "recall-0.05": 0.67086, - "recall-0.1": 0.968553, - "recall-0.15": 0.993711, - "recall-0.25": 0.997904, - "recall-0.5": 0.997904, + "count": 477, + "mean": 0.043445, + "median": 0.038191, + "std": 0.021055, + "sem": 0.000965, + "min": 0.003232, + "max": 0.157207, + "recall-0.025": 0.171908, + "recall-0.05": 0.712788, + "recall-0.1": 0.983229, + "recall-0.15": 0.995807, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 477 }, "shoulder_right": { - "count": 476, - "mean": 0.052479, - "median": 0.04855, - "std": 0.024398, - "sem": 0.001119, - "min": 0.005765, - "max": 0.184224, - "recall-0.025": 0.115304, - "recall-0.05": 0.515723, - "recall-0.1": 0.947589, - "recall-0.15": 0.991614, - "recall-0.25": 0.997904, - "recall-0.5": 0.997904, + "count": 477, + "mean": 0.049137, + "median": 0.045682, + "std": 0.024752, + "sem": 0.001135, + "min": 0.003266, + "max": 0.160035, + "recall-0.025": 0.134172, + "recall-0.05": 0.572327, + "recall-0.1": 0.964361, + "recall-0.15": 0.995807, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 477 }, "elbow_left": { "count": 477, - "mean": 0.050629, - "median": 0.041285, - "std": 0.030795, - "sem": 0.001412, - "min": 0.008442, - "max": 0.220562, - "recall-0.025": 0.121593, - "recall-0.05": 0.643606, - "recall-0.1": 0.932914, - "recall-0.15": 0.985325, + "mean": 0.041395, + "median": 0.033043, + "std": 0.027196, + "sem": 0.001247, + "min": 0.003226, + "max": 0.152207, + "recall-0.025": 0.339623, + "recall-0.05": 0.719078, + "recall-0.1": 0.951782, + "recall-0.15": 0.997904, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "elbow_right": { "count": 477, - "mean": 0.059661, - "median": 0.053123, - "std": 0.044745, - "sem": 0.002051, - "min": 0.004083, - "max": 0.263008, - "recall-0.025": 0.234801, - "recall-0.05": 0.471698, - "recall-0.1": 0.893082, - "recall-0.15": 0.947589, - "recall-0.25": 0.993711, + "mean": 0.053602, + "median": 0.045523, + "std": 0.042083, + "sem": 0.001929, + "min": 0.004168, + "max": 0.253633, + "recall-0.025": 0.278826, + "recall-0.05": 0.557652, + "recall-0.1": 0.90566, + "recall-0.15": 0.960168, + "recall-0.25": 0.997904, "recall-0.5": 1.0, "num_labels": 477 }, "wrist_left": { "count": 477, - "mean": 0.066051, - "median": 0.053589, - "std": 0.044222, - "sem": 0.002027, - "min": 0.009747, - "max": 0.324619, - "recall-0.025": 0.060797, + "mean": 0.061717, + "median": 0.052702, + "std": 0.046414, + "sem": 0.002127, + "min": 0.006451, + "max": 0.41084, + "recall-0.025": 0.113208, "recall-0.05": 0.417191, - "recall-0.1": 0.870021, - "recall-0.15": 0.945493, - "recall-0.25": 0.989518, + "recall-0.1": 0.909853, + "recall-0.15": 0.949686, + "recall-0.25": 0.987421, "recall-0.5": 1.0, "num_labels": 477 }, "wrist_right": { "count": 477, - "mean": 0.063219, - "median": 0.059002, - "std": 0.035518, - "sem": 0.001628, - "min": 0.0072, - "max": 0.235995, - "recall-0.025": 0.079665, - "recall-0.05": 0.354298, - "recall-0.1": 0.888889, - "recall-0.15": 0.966457, + "mean": 0.057621, + "median": 0.052403, + "std": 0.031001, + "sem": 0.001421, + "min": 0.008162, + "max": 0.222674, + "recall-0.025": 0.102725, + "recall-0.05": 0.444444, + "recall-0.1": 0.909853, + "recall-0.15": 0.981132, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "hip_left": { "count": 477, - "mean": 0.047198, - "median": 0.039812, - "std": 0.027403, - "sem": 0.001256, - "min": 0.004958, - "max": 0.154856, - "recall-0.025": 0.176101, - "recall-0.05": 0.649895, - "recall-0.1": 0.937107, - "recall-0.15": 0.993711, + "mean": 0.045082, + "median": 0.038157, + "std": 0.026061, + "sem": 0.001195, + "min": 0.001857, + "max": 0.128869, + "recall-0.025": 0.224319, + "recall-0.05": 0.67086, + "recall-0.1": 0.947589, + "recall-0.15": 1.0, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "hip_right": { "count": 477, - "mean": 0.053222, - "median": 0.049924, - "std": 0.02401, - "sem": 0.0011, - "min": 0.003831, - "max": 0.150213, - "recall-0.025": 0.09434, - "recall-0.05": 0.501048, - "recall-0.1": 0.949686, - "recall-0.15": 0.995807, + "mean": 0.056117, + "median": 0.052888, + "std": 0.022784, + "sem": 0.001044, + "min": 0.006227, + "max": 0.137531, + "recall-0.025": 0.083857, + "recall-0.05": 0.419287, + "recall-0.1": 0.960168, + "recall-0.15": 1.0, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "knee_left": { "count": 477, - "mean": 0.040703, - "median": 0.03748, - "std": 0.02697, - "sem": 0.001236, - "min": 0.003099, - "max": 0.188564, - "recall-0.025": 0.266247, - "recall-0.05": 0.731656, - "recall-0.1": 0.968553, - "recall-0.15": 0.983229, + "mean": 0.038063, + "median": 0.035282, + "std": 0.024315, + "sem": 0.001114, + "min": 0.003097, + "max": 0.183598, + "recall-0.025": 0.289308, + "recall-0.05": 0.792453, + "recall-0.1": 0.976939, + "recall-0.15": 0.989518, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "knee_right": { "count": 477, - "mean": 0.040356, - "median": 0.034335, - "std": 0.024359, - "sem": 0.001116, - "min": 0.003472, - "max": 0.188118, + "mean": 0.039416, + "median": 0.035065, + "std": 0.023431, + "sem": 0.001074, + "min": 0.00488, + "max": 0.190642, "recall-0.025": 0.32914, - "recall-0.05": 0.731656, - "recall-0.1": 0.966457, + "recall-0.05": 0.748428, + "recall-0.1": 0.974843, "recall-0.15": 0.997904, "recall-0.25": 1.0, "recall-0.5": 1.0, @@ -498,512 +497,512 @@ Results of the model in various experiments on different datasets. }, "ankle_left": { "count": 477, - "mean": 0.044015, - "median": 0.034409, - "std": 0.034495, - "sem": 0.001581, - "min": 0.00383, - "max": 0.258086, - "recall-0.025": 0.322851, - "recall-0.05": 0.75891, - "recall-0.1": 0.918239, - "recall-0.15": 0.981132, - "recall-0.25": 0.997904, + "mean": 0.038475, + "median": 0.031307, + "std": 0.030146, + "sem": 0.001382, + "min": 0.00131, + "max": 0.224915, + "recall-0.025": 0.400419, + "recall-0.05": 0.813417, + "recall-0.1": 0.943396, + "recall-0.15": 0.983229, + "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "ankle_right": { "count": 477, - "mean": 0.047835, - "median": 0.039559, - "std": 0.038869, - "sem": 0.001782, - "min": 0.005972, - "max": 0.26492, - "recall-0.025": 0.245283, - "recall-0.05": 0.731656, - "recall-0.1": 0.918239, - "recall-0.15": 0.966457, + "mean": 0.041902, + "median": 0.030437, + "std": 0.038265, + "sem": 0.001754, + "min": 0.002837, + "max": 0.296238, + "recall-0.025": 0.320755, + "recall-0.05": 0.777778, + "recall-0.1": 0.926625, + "recall-0.15": 0.968553, "recall-0.25": 0.997904, "recall-0.5": 1.0, "num_labels": 477 }, "joint_recalls": { "num_labels": 6201, - "recall-0.025": 0.17417, - "recall-0.05": 0.59539, - "recall-0.1": 0.93179, - "recall-0.15": 0.9792, - "recall-0.25": 0.9979, - "recall-0.5": 0.99952 + "recall-0.025": 0.22287, + "recall-0.05": 0.63119, + "recall-0.1": 0.94598, + "recall-0.15": 0.98549, + "recall-0.25": 0.99855, + "recall-0.5": 1.0 } } { "total_parts": 6678, - "correct_parts": 6579, - "pcp": 0.985175 + "correct_parts": 6616, + "pcp": 0.990716 } ``` ### Campus -(duration 00:00:33) +(duration 00:00:29) ```json { - "avg_time_2d": 0.08415351611263347, - "avg_time_3d": 0.004980688949800887, - "avg_fps": 11.219037621971797 + "avg_time_2d": 0.08269888724920885, + "avg_time_3d": 0.00582737405345125, + "avg_fps": 11.29608305247554 } { "person_nums": { "total_frames": 222, "total_labels": 376, - "total_preds": 1075, - "considered_empty": 194, - "valid_preds": 375, - "invalid_preds": 506, - "missing": 1, - "invalid_fraction": 0.57435, - "precision": 0.42565, - "recall": 0.99734, - "f1": 0.59666, - "non_empty": 881 + "total_preds": 855, + "considered_empty": 54, + "valid_preds": 376, + "invalid_preds": 425, + "missing": 0, + "invalid_fraction": 0.53059, + "precision": 0.46941, + "recall": 1.0, + "f1": 0.63891, + "non_empty": 801 }, "mpjpe": { - "count": 375, - "mean": 0.075687, - "median": 0.070023, - "std": 0.020876, - "sem": 0.001079, + "count": 376, + "mean": 0.073759, + "median": 0.068859, + "std": 0.018005, + "sem": 0.00093, "min": 0.0459, - "max": 0.222119, + "max": 0.163826, "recall-0.025": 0.0, "recall-0.05": 0.015957, - "recall-0.1": 0.898936, - "recall-0.15": 0.992021, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.1": 0.930851, + "recall-0.15": 0.984043, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376, "ap-0.025": 0.0, - "ap-0.05": 0.000305, - "ap-0.1": 0.780684, - "ap-0.15": 0.890998, - "ap-0.25": 0.89329, - "ap-0.5": 0.89329 + "ap-0.05": 0.000283, + "ap-0.1": 0.811046, + "ap-0.15": 0.886091, + "ap-0.25": 0.896957, + "ap-0.5": 0.896957 }, "head": { - "count": 375, - "mean": 0.054154, - "median": 0.051888, - "std": 0.032041, - "sem": 0.001657, + "count": 376, + "mean": 0.052892, + "median": 0.051862, + "std": 0.022186, + "sem": 0.001146, "min": 0.007866, - "max": 0.480707, - "recall-0.025": 0.103723, - "recall-0.05": 0.473404, - "recall-0.1": 0.978723, - "recall-0.15": 0.992021, - "recall-0.25": 0.994681, - "recall-0.5": 0.99734, + "max": 0.127, + "recall-0.025": 0.106383, + "recall-0.05": 0.476064, + "recall-0.1": 0.984043, + "recall-0.15": 1.0, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "shoulder_left": { - "count": 375, - "mean": 0.064624, - "median": 0.057738, - "std": 0.038916, - "sem": 0.002012, + "count": 376, + "mean": 0.060966, + "median": 0.056108, + "std": 0.031436, + "sem": 0.001623, "min": 0.003274, - "max": 0.28444, + "max": 0.185051, "recall-0.025": 0.074468, - "recall-0.05": 0.393617, - "recall-0.1": 0.840426, - "recall-0.15": 0.970745, - "recall-0.25": 0.994681, - "recall-0.5": 0.99734, + "recall-0.05": 0.404255, + "recall-0.1": 0.867021, + "recall-0.15": 0.994681, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "shoulder_right": { - "count": 375, - "mean": 0.064298, - "median": 0.05911, - "std": 0.026936, - "sem": 0.001393, + "count": 376, + "mean": 0.062879, + "median": 0.058314, + "std": 0.02496, + "sem": 0.001289, "min": 0.00855, "max": 0.182673, "recall-0.025": 0.031915, - "recall-0.05": 0.321809, - "recall-0.1": 0.909574, - "recall-0.15": 0.981383, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.05": 0.335106, + "recall-0.1": 0.922872, + "recall-0.15": 0.992021, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "elbow_left": { - "count": 375, - "mean": 0.079319, - "median": 0.067519, - "std": 0.044265, - "sem": 0.002289, + "count": 376, + "mean": 0.077799, + "median": 0.067444, + "std": 0.041299, + "sem": 0.002133, "min": 0.006015, - "max": 0.317935, + "max": 0.199504, "recall-0.025": 0.045213, - "recall-0.05": 0.289894, - "recall-0.1": 0.726064, - "recall-0.15": 0.914894, - "recall-0.25": 0.994681, - "recall-0.5": 0.99734, + "recall-0.05": 0.295213, + "recall-0.1": 0.734043, + "recall-0.15": 0.930851, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "elbow_right": { - "count": 375, - "mean": 0.07058, - "median": 0.05988, - "std": 0.035951, - "sem": 0.001859, + "count": 376, + "mean": 0.069841, + "median": 0.059761, + "std": 0.035231, + "sem": 0.001819, "min": 0.010545, "max": 0.189846, - "recall-0.025": 0.034574, - "recall-0.05": 0.319149, - "recall-0.1": 0.792553, - "recall-0.15": 0.960106, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.025": 0.037234, + "recall-0.05": 0.321809, + "recall-0.1": 0.803191, + "recall-0.15": 0.968085, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "wrist_left": { - "count": 375, - "mean": 0.113482, - "median": 0.096542, - "std": 0.067215, - "sem": 0.003476, + "count": 376, + "mean": 0.109924, + "median": 0.094822, + "std": 0.06246, + "sem": 0.003225, "min": 0.014099, - "max": 0.399889, + "max": 0.395002, "recall-0.025": 0.010638, - "recall-0.05": 0.114362, - "recall-0.1": 0.523936, - "recall-0.15": 0.760638, - "recall-0.25": 0.93617, - "recall-0.5": 0.99734, + "recall-0.05": 0.12234, + "recall-0.1": 0.534574, + "recall-0.15": 0.771277, + "recall-0.25": 0.952128, + "recall-0.5": 1.0, "num_labels": 376 }, "wrist_right": { - "count": 375, - "mean": 0.09641, - "median": 0.094474, - "std": 0.037991, - "sem": 0.001964, + "count": 376, + "mean": 0.094958, + "median": 0.092739, + "std": 0.036388, + "sem": 0.001879, "min": 0.020174, - "max": 0.242781, + "max": 0.210411, "recall-0.025": 0.010638, "recall-0.05": 0.101064, - "recall-0.1": 0.555851, - "recall-0.15": 0.909574, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.1": 0.571809, + "recall-0.15": 0.920213, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "hip_left": { - "count": 375, - "mean": 0.084193, - "median": 0.083864, - "std": 0.027486, - "sem": 0.001421, + "count": 376, + "mean": 0.084196, + "median": 0.083885, + "std": 0.027424, + "sem": 0.001416, "min": 0.008948, "max": 0.147338, "recall-0.025": 0.007979, "recall-0.05": 0.119681, "recall-0.1": 0.696809, - "recall-0.15": 0.99734, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.15": 1.0, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "hip_right": { - "count": 375, - "mean": 0.089032, - "median": 0.090331, - "std": 0.029128, - "sem": 0.001506, + "count": 376, + "mean": 0.088234, + "median": 0.089791, + "std": 0.029355, + "sem": 0.001516, "min": 0.015462, "max": 0.210122, - "recall-0.025": 0.013298, - "recall-0.05": 0.095745, + "recall-0.025": 0.015957, + "recall-0.05": 0.103723, "recall-0.1": 0.715426, - "recall-0.15": 0.960106, - "recall-0.25": 0.99734, - "recall-0.5": 0.99734, + "recall-0.15": 0.962766, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "knee_left": { - "count": 375, - "mean": 0.059865, - "median": 0.052741, - "std": 0.039082, - "sem": 0.002021, + "count": 376, + "mean": 0.057064, + "median": 0.051737, + "std": 0.030122, + "sem": 0.001555, "min": 0.01259, - "max": 0.367069, - "recall-0.025": 0.090426, - "recall-0.05": 0.454787, - "recall-0.1": 0.904255, - "recall-0.15": 0.973404, - "recall-0.25": 0.992021, - "recall-0.5": 0.99734, + "max": 0.209373, + "recall-0.025": 0.093085, + "recall-0.05": 0.465426, + "recall-0.1": 0.917553, + "recall-0.15": 0.986702, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "knee_right": { - "count": 375, - "mean": 0.064616, - "median": 0.055523, - "std": 0.037387, - "sem": 0.001933, + "count": 376, + "mean": 0.062274, + "median": 0.055225, + "std": 0.028571, + "sem": 0.001475, "min": 0.004272, - "max": 0.446672, + "max": 0.216432, "recall-0.025": 0.015957, - "recall-0.05": 0.348404, - "recall-0.1": 0.904255, - "recall-0.15": 0.968085, - "recall-0.25": 0.992021, - "recall-0.5": 0.99734, + "recall-0.05": 0.356383, + "recall-0.1": 0.917553, + "recall-0.15": 0.981383, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 376 }, "ankle_left": { - "count": 374, - "mean": 0.071726, - "median": 0.058485, - "std": 0.061135, - "sem": 0.003165, + "count": 370, + "mean": 0.062845, + "median": 0.057915, + "std": 0.036038, + "sem": 0.001876, "min": 0.007413, - "max": 0.430472, + "max": 0.326849, "recall-0.025": 0.074468, - "recall-0.05": 0.327128, - "recall-0.1": 0.87766, - "recall-0.15": 0.941489, - "recall-0.25": 0.957447, - "recall-0.5": 0.994681, + "recall-0.05": 0.335106, + "recall-0.1": 0.896277, + "recall-0.15": 0.960106, + "recall-0.25": 0.976064, + "recall-0.5": 0.984043, "num_labels": 376 }, "ankle_right": { - "count": 373, - "mean": 0.066713, - "median": 0.050668, - "std": 0.063969, - "sem": 0.003317, + "count": 370, + "mean": 0.059691, + "median": 0.050609, + "std": 0.040774, + "sem": 0.002123, "min": 0.010702, - "max": 0.451523, + "max": 0.442452, "recall-0.025": 0.06117, - "recall-0.05": 0.478723, - "recall-0.1": 0.888298, - "recall-0.15": 0.941489, - "recall-0.25": 0.960106, - "recall-0.5": 0.992021, + "recall-0.05": 0.476064, + "recall-0.1": 0.893617, + "recall-0.15": 0.960106, + "recall-0.25": 0.976064, + "recall-0.5": 0.984043, "num_labels": 376 }, "joint_recalls": { "num_labels": 4888, - "recall-0.025": 0.04255, - "recall-0.05": 0.29419, - "recall-0.1": 0.79194, - "recall-0.15": 0.9419, - "recall-0.25": 0.98343, - "recall-0.5": 0.99427 + "recall-0.025": 0.04317, + "recall-0.05": 0.29992, + "recall-0.1": 0.80278, + "recall-0.15": 0.95479, + "recall-0.25": 0.99264, + "recall-0.5": 0.99755 } } { "total_parts": 5264, - "correct_parts": 4923, - "pcp": 0.93522 + "correct_parts": 4972, + "pcp": 0.944529 } ``` ### MVOR -(duration 00:01:06) +(duration 00:02:31) ```json { - "avg_time_2d": 0.07443526103153753, - "avg_time_3d": 0.00230164943873786, - "avg_fps": 13.031538458762391 + "avg_time_2d": 0.07757738680369634, + "avg_time_3d": 0.0026588050922399962, + "avg_fps": 12.463203653744767 } { "person_nums": { "total_frames": 629, "total_labels": 1061, - "total_preds": 798, - "considered_empty": 257, - "valid_preds": 478, - "invalid_preds": 63, - "missing": 583, - "invalid_fraction": 0.11645, - "precision": 0.88355, - "recall": 0.45052, - "f1": 0.59675, - "non_empty": 541 + "total_preds": 761, + "considered_empty": 259, + "valid_preds": 438, + "invalid_preds": 64, + "missing": 623, + "invalid_fraction": 0.12749, + "precision": 0.87251, + "recall": 0.41282, + "f1": 0.56046, + "non_empty": 502 }, "mpjpe": { - "count": 478, - "mean": 0.102052, - "median": 0.087099, - "std": 0.054626, - "sem": 0.002501, - "min": 0.04029, - "max": 0.477524, + "count": 438, + "mean": 0.110999, + "median": 0.096758, + "std": 0.053021, + "sem": 0.002536, + "min": 0.041183, + "max": 0.457321, "recall-0.025": 0.0, - "recall-0.05": 0.004713, - "recall-0.1": 0.3082, - "recall-0.15": 0.400566, - "recall-0.25": 0.438266, - "recall-0.5": 0.450518, + "recall-0.05": 0.00377, + "recall-0.1": 0.219604, + "recall-0.15": 0.351555, + "recall-0.25": 0.402451, + "recall-0.5": 0.412818, "num_labels": 1061, "ap-0.025": 0.0, - "ap-0.05": 6.8e-05, - "ap-0.1": 0.203258, - "ap-0.15": 0.328056, - "ap-0.25": 0.395497, - "ap-0.5": 0.411448 + "ap-0.05": 0.000103, + "ap-0.1": 0.142082, + "ap-0.15": 0.290046, + "ap-0.25": 0.373209, + "ap-0.5": 0.386698 }, "head": { - "count": 478, - "mean": 0.057549, - "median": 0.046937, - "std": 0.047359, - "sem": 0.002168, - "min": 0.005373, - "max": 0.41018, - "recall-0.025": 0.058435, - "recall-0.05": 0.250707, - "recall-0.1": 0.405278, - "recall-0.15": 0.438266, - "recall-0.25": 0.444863, - "recall-0.5": 0.450518, + "count": 438, + "mean": 0.059301, + "median": 0.047955, + "std": 0.047348, + "sem": 0.002265, + "min": 0.007984, + "max": 0.409985, + "recall-0.025": 0.05655, + "recall-0.05": 0.221489, + "recall-0.1": 0.365693, + "recall-0.15": 0.39491, + "recall-0.25": 0.408106, + "recall-0.5": 0.412818, "num_labels": 1061 }, "shoulder_left": { - "count": 477, - "mean": 0.056806, - "median": 0.039067, - "std": 0.057763, - "sem": 0.002648, + "count": 437, + "mean": 0.057967, + "median": 0.037877, + "std": 0.058014, + "sem": 0.002778, "min": 0.004852, - "max": 0.459138, - "recall-0.025": 0.110273, - "recall-0.05": 0.29312, - "recall-0.1": 0.39491, - "recall-0.15": 0.424128, - "recall-0.25": 0.441093, - "recall-0.5": 0.449576, + "max": 0.383066, + "recall-0.025": 0.112158, + "recall-0.05": 0.264844, + "recall-0.1": 0.354383, + "recall-0.15": 0.382658, + "recall-0.25": 0.402451, + "recall-0.5": 0.411876, "num_labels": 1061 }, "shoulder_right": { - "count": 476, - "mean": 0.050828, - "median": 0.03744, - "std": 0.047568, - "sem": 0.002183, - "min": 0.002027, + "count": 438, + "mean": 0.055487, + "median": 0.036762, + "std": 0.057347, + "sem": 0.002743, + "min": 0.004536, "max": 0.471274, - "recall-0.025": 0.105561, - "recall-0.05": 0.29312, - "recall-0.1": 0.404336, - "recall-0.15": 0.432611, - "recall-0.25": 0.443921, - "recall-0.5": 0.448633, + "recall-0.025": 0.097078, + "recall-0.05": 0.267672, + "recall-0.1": 0.363808, + "recall-0.15": 0.385485, + "recall-0.25": 0.405278, + "recall-0.5": 0.412818, "num_labels": 1061 }, "elbow_left": { - "count": 472, - "mean": 0.095616, - "median": 0.06954, - "std": 0.076828, - "sem": 0.00354, + "count": 435, + "mean": 0.105151, + "median": 0.073447, + "std": 0.086127, + "sem": 0.004134, "min": 0.007643, - "max": 0.457956, - "recall-0.025": 0.050895, - "recall-0.05": 0.164939, - "recall-0.1": 0.283695, - "recall-0.15": 0.355325, - "recall-0.25": 0.425071, - "recall-0.5": 0.444863, + "max": 0.43204, + "recall-0.025": 0.051838, + "recall-0.05": 0.141376, + "recall-0.1": 0.249764, + "recall-0.15": 0.30443, + "recall-0.25": 0.37606, + "recall-0.5": 0.409991, "num_labels": 1061 }, "elbow_right": { - "count": 476, - "mean": 0.074297, - "median": 0.053819, - "std": 0.066213, - "sem": 0.003038, + "count": 436, + "mean": 0.079933, + "median": 0.055267, + "std": 0.074021, + "sem": 0.003549, "min": 0.004321, - "max": 0.493006, - "recall-0.025": 0.06032, - "recall-0.05": 0.201697, - "recall-0.1": 0.356268, - "recall-0.15": 0.411876, - "recall-0.25": 0.433553, - "recall-0.5": 0.448633, + "max": 0.461444, + "recall-0.025": 0.059378, + "recall-0.05": 0.182846, + "recall-0.1": 0.312912, + "recall-0.15": 0.36098, + "recall-0.25": 0.386428, + "recall-0.5": 0.410933, "num_labels": 1061 }, "wrist_left": { - "count": 469, - "mean": 0.111373, - "median": 0.076549, - "std": 0.097431, - "sem": 0.004504, - "min": 0.005993, + "count": 432, + "mean": 0.12447, + "median": 0.079772, + "std": 0.10957, + "sem": 0.005278, + "min": 0.002322, "max": 0.47313, "recall-0.025": 0.05278, - "recall-0.05": 0.154571, - "recall-0.1": 0.273327, - "recall-0.15": 0.325165, - "recall-0.25": 0.393968, - "recall-0.5": 0.442036, + "recall-0.05": 0.138549, + "recall-0.1": 0.229972, + "recall-0.15": 0.277097, + "recall-0.25": 0.344015, + "recall-0.5": 0.407163, "num_labels": 1061 }, "wrist_right": { - "count": 472, - "mean": 0.08848, - "median": 0.059266, - "std": 0.081114, - "sem": 0.003738, + "count": 432, + "mean": 0.102391, + "median": 0.061378, + "std": 0.09479, + "sem": 0.004566, "min": 0.006318, - "max": 0.430703, - "recall-0.025": 0.069746, - "recall-0.05": 0.196041, - "recall-0.1": 0.3082, - "recall-0.15": 0.369463, - "recall-0.25": 0.420358, - "recall-0.5": 0.444863, + "max": 0.479642, + "recall-0.025": 0.06409, + "recall-0.05": 0.175306, + "recall-0.1": 0.2705, + "recall-0.15": 0.303487, + "recall-0.25": 0.366635, + "recall-0.5": 0.407163, "num_labels": 1061 }, "hip_left": { - "count": 474, - "mean": 0.176912, - "median": 0.162944, - "std": 0.073838, - "sem": 0.003395, - "min": 0.029174, - "max": 0.489618, + "count": 431, + "mean": 0.190778, + "median": 0.168752, + "std": 0.08481, + "sem": 0.00409, + "min": 0.040111, + "max": 0.490925, "recall-0.025": 0.0, - "recall-0.05": 0.001885, - "recall-0.1": 0.039585, - "recall-0.15": 0.172479, - "recall-0.25": 0.39114, - "recall-0.5": 0.446748, + "recall-0.05": 0.000943, + "recall-0.1": 0.0377, + "recall-0.15": 0.147031, + "recall-0.25": 0.321395, + "recall-0.5": 0.406221, "num_labels": 1061 }, "hip_right": { - "count": 472, - "mean": 0.170201, - "median": 0.156315, - "std": 0.068564, - "sem": 0.003159, - "min": 0.018719, - "max": 0.448139, - "recall-0.025": 0.000943, - "recall-0.05": 0.001885, - "recall-0.1": 0.053723, - "recall-0.15": 0.199811, - "recall-0.25": 0.392083, - "recall-0.5": 0.444863, + "count": 430, + "mean": 0.188866, + "median": 0.170728, + "std": 0.083464, + "sem": 0.00403, + "min": 0.053341, + "max": 0.489645, + "recall-0.025": 0.0, + "recall-0.05": 0.0, + "recall-0.1": 0.04524, + "recall-0.15": 0.150801, + "recall-0.25": 0.328935, + "recall-0.5": 0.405278, "num_labels": 1061 }, "knee_left": {}, @@ -1012,831 +1011,830 @@ Results of the model in various experiments on different datasets. "ankle_right": {}, "joint_recalls": { "num_labels": 9549, - "recall-0.025": 0.05603, - "recall-0.05": 0.17269, - "recall-0.1": 0.27951, - "recall-0.15": 0.34737, - "recall-0.25": 0.42015, - "recall-0.5": 0.44602 + "recall-0.025": 0.05435, + "recall-0.05": 0.15415, + "recall-0.1": 0.24736, + "recall-0.15": 0.30003, + "recall-0.25": 0.37061, + "recall-0.5": 0.40873 } } { "total_parts": 10610, - "correct_parts": 3884, - "pcp": 0.36607 + "correct_parts": 3342, + "pcp": 0.314986 } ``` - ### Panoptic -(duration 00:02:52) +(duration 00:02:28) ```json { - "avg_time_2d": 0.13794401273494813, - "avg_time_3d": 0.02159386669717184, - "avg_fps": 6.268103873259009 + "avg_time_2d": 0.15851887609900497, + "avg_time_3d": 0.02711676795308183, + "avg_fps": 5.3868964934310455 } { "person_nums": { "total_frames": 420, "total_labels": 1466, - "total_preds": 1954, - "considered_empty": 183, - "valid_preds": 1450, - "invalid_preds": 321, - "missing": 16, - "invalid_fraction": 0.18125, - "precision": 0.81875, - "recall": 0.98909, - "f1": 0.89589, - "non_empty": 1771 + "total_preds": 1738, + "considered_empty": 52, + "valid_preds": 1454, + "invalid_preds": 232, + "missing": 12, + "invalid_fraction": 0.1376, + "precision": 0.8624, + "recall": 0.99181, + "f1": 0.92259, + "non_empty": 1686 }, "mpjpe": { - "count": 1450, - "mean": 0.060758, - "median": 0.05923, - "std": 0.022, - "sem": 0.000578, - "min": 0.021858, - "max": 0.179949, - "recall-0.025": 0.010232, - "recall-0.05": 0.345839, - "recall-0.1": 0.938608, - "recall-0.15": 0.988404, - "recall-0.25": 0.989086, - "recall-0.5": 0.989086, + "count": 1454, + "mean": 0.042168, + "median": 0.036857, + "std": 0.02108, + "sem": 0.000553, + "min": 0.012479, + "max": 0.168256, + "recall-0.025": 0.177353, + "recall-0.05": 0.759891, + "recall-0.1": 0.965211, + "recall-0.15": 0.99045, + "recall-0.25": 0.991814, + "recall-0.5": 0.991814, "num_labels": 1466, - "ap-0.025": 0.001222, - "ap-0.05": 0.266431, - "ap-0.1": 0.883457, - "ap-0.15": 0.935971, - "ap-0.25": 0.937574, - "ap-0.5": 0.937574 + "ap-0.025": 0.060414, + "ap-0.05": 0.680845, + "ap-0.1": 0.943244, + "ap-0.15": 0.973463, + "ap-0.25": 0.974787, + "ap-0.5": 0.974787 }, "nose": { - "count": 1448, - "mean": 0.02318, - "median": 0.016976, - "std": 0.026125, - "sem": 0.000687, - "min": 0.002537, - "max": 0.353868, - "recall-0.025": 0.749146, - "recall-0.05": 0.937799, - "recall-0.1": 0.971975, - "recall-0.15": 0.978127, - "recall-0.25": 0.98838, - "recall-0.5": 0.989747, + "count": 1452, + "mean": 0.016822, + "median": 0.013121, + "std": 0.017966, + "sem": 0.000472, + "min": 0.002126, + "max": 0.286093, + "recall-0.025": 0.883117, + "recall-0.05": 0.966507, + "recall-0.1": 0.989064, + "recall-0.15": 0.989747, + "recall-0.25": 0.989747, + "recall-0.5": 0.992481, "num_labels": 1463 }, "shoulder_left": { - "count": 1450, - "mean": 0.022915, - "median": 0.019818, - "std": 0.013527, - "sem": 0.000355, - "min": 0.001295, - "max": 0.124283, - "recall-0.025": 0.678035, - "recall-0.05": 0.947476, - "recall-0.1": 0.987722, - "recall-0.15": 0.989086, - "recall-0.25": 0.989086, - "recall-0.5": 0.989086, + "count": 1454, + "mean": 0.023702, + "median": 0.017862, + "std": 0.033742, + "sem": 0.000885, + "min": 0.001613, + "max": 0.279487, + "recall-0.025": 0.744884, + "recall-0.05": 0.960437, + "recall-0.1": 0.975443, + "recall-0.15": 0.975443, + "recall-0.25": 0.975443, + "recall-0.5": 0.991814, "num_labels": 1466 }, "shoulder_right": { - "count": 1449, - "mean": 0.027305, - "median": 0.023401, - "std": 0.018001, - "sem": 0.000473, - "min": 0.003159, - "max": 0.227967, - "recall-0.025": 0.569283, - "recall-0.05": 0.908532, - "recall-0.1": 0.982253, - "recall-0.15": 0.987713, - "recall-0.25": 0.989078, - "recall-0.5": 0.989078, + "count": 1453, + "mean": 0.023312, + "median": 0.020179, + "std": 0.01516, + "sem": 0.000398, + "min": 0.003067, + "max": 0.146271, + "recall-0.025": 0.671672, + "recall-0.05": 0.949488, + "recall-0.1": 0.988396, + "recall-0.15": 0.991809, + "recall-0.25": 0.991809, + "recall-0.5": 0.991809, "num_labels": 1465 }, "elbow_left": { - "count": 1449, - "mean": 0.032494, - "median": 0.024156, - "std": 0.02575, - "sem": 0.000677, - "min": 0.00134, - "max": 0.192332, - "recall-0.025": 0.513311, - "recall-0.05": 0.795222, - "recall-0.1": 0.966553, - "recall-0.15": 0.985666, - "recall-0.25": 0.989078, - "recall-0.5": 0.989078, + "count": 1453, + "mean": 0.030356, + "median": 0.018233, + "std": 0.056255, + "sem": 0.001476, + "min": 0.001722, + "max": 0.464792, + "recall-0.025": 0.694881, + "recall-0.05": 0.891468, + "recall-0.1": 0.967235, + "recall-0.15": 0.974061, + "recall-0.25": 0.974061, + "recall-0.5": 0.991809, "num_labels": 1465 }, "elbow_right": { - "count": 1448, - "mean": 0.028306, - "median": 0.021428, - "std": 0.022366, - "sem": 0.000588, - "min": 0.001973, - "max": 0.196823, - "recall-0.025": 0.567327, - "recall-0.05": 0.857826, - "recall-0.1": 0.971975, - "recall-0.15": 0.987697, - "recall-0.25": 0.989747, - "recall-0.5": 0.989747, + "count": 1452, + "mean": 0.022121, + "median": 0.017129, + "std": 0.016663, + "sem": 0.000437, + "min": 0.001506, + "max": 0.18224, + "recall-0.025": 0.714969, + "recall-0.05": 0.935065, + "recall-0.1": 0.987697, + "recall-0.15": 0.991798, + "recall-0.25": 0.992481, + "recall-0.5": 0.992481, "num_labels": 1463 }, "wrist_left": { - "count": 1422, - "mean": 0.046513, - "median": 0.027052, - "std": 0.049321, - "sem": 0.001308, - "min": 0.001302, - "max": 0.331647, - "recall-0.025": 0.463738, - "recall-0.05": 0.694561, - "recall-0.1": 0.857043, - "recall-0.15": 0.937238, - "recall-0.25": 0.983264, - "recall-0.5": 0.991632, + "count": 1426, + "mean": 0.031034, + "median": 0.015989, + "std": 0.041591, + "sem": 0.001102, + "min": 0.001413, + "max": 0.342328, + "recall-0.025": 0.678522, + "recall-0.05": 0.845886, + "recall-0.1": 0.928173, + "recall-0.15": 0.960251, + "recall-0.25": 0.990237, + "recall-0.5": 0.994421, "num_labels": 1434 }, "wrist_right": { - "count": 1446, - "mean": 0.038422, - "median": 0.028091, - "std": 0.034522, - "sem": 0.000908, - "min": 0.001705, - "max": 0.27609, - "recall-0.025": 0.45261, - "recall-0.05": 0.734203, - "recall-0.1": 0.925137, - "recall-0.15": 0.98283, - "recall-0.25": 0.991758, - "recall-0.5": 0.993132, + "count": 1449, + "mean": 0.024373, + "median": 0.016014, + "std": 0.025093, + "sem": 0.000659, + "min": 0.000914, + "max": 0.240789, + "recall-0.025": 0.703297, + "recall-0.05": 0.897665, + "recall-0.1": 0.973214, + "recall-0.15": 0.989011, + "recall-0.25": 0.995192, + "recall-0.5": 0.995192, "num_labels": 1456 }, "hip_left": { - "count": 1449, - "mean": 0.061723, - "median": 0.05792, - "std": 0.027033, - "sem": 0.00071, - "min": 0.007956, - "max": 0.209382, - "recall-0.025": 0.040956, - "recall-0.05": 0.335836, - "recall-0.1": 0.898294, - "recall-0.15": 0.973379, - "recall-0.25": 0.989078, - "recall-0.5": 0.989078, + "count": 1453, + "mean": 0.061695, + "median": 0.055825, + "std": 0.032837, + "sem": 0.000862, + "min": 0.002276, + "max": 0.230798, + "recall-0.025": 0.066212, + "recall-0.05": 0.393174, + "recall-0.1": 0.894198, + "recall-0.15": 0.96314, + "recall-0.25": 0.991809, + "recall-0.5": 0.991809, "num_labels": 1465 }, "hip_right": { - "count": 1450, - "mean": 0.067262, - "median": 0.062577, - "std": 0.029305, - "sem": 0.00077, - "min": 0.009981, + "count": 1454, + "mean": 0.060155, + "median": 0.058702, + "std": 0.028867, + "sem": 0.000757, + "min": 0.002677, "max": 0.287728, - "recall-0.025": 0.030696, - "recall-0.05": 0.27899, - "recall-0.1": 0.857435, + "recall-0.025": 0.067531, + "recall-0.05": 0.369714, + "recall-0.1": 0.922237, "recall-0.15": 0.978172, - "recall-0.25": 0.988404, - "recall-0.5": 0.989086, + "recall-0.25": 0.991132, + "recall-0.5": 0.991814, "num_labels": 1466 }, "knee_left": { - "count": 1449, - "mean": 0.059862, - "median": 0.046642, - "std": 0.044991, - "sem": 0.001182, - "min": 0.003608, - "max": 0.314656, - "recall-0.025": 0.137201, - "recall-0.05": 0.552901, - "recall-0.1": 0.863481, - "recall-0.15": 0.92901, - "recall-0.25": 0.980205, - "recall-0.5": 0.989078, + "count": 1453, + "mean": 0.046027, + "median": 0.040423, + "std": 0.029428, + "sem": 0.000772, + "min": 0.002822, + "max": 0.274944, + "recall-0.025": 0.188396, + "recall-0.05": 0.661433, + "recall-0.1": 0.952218, + "recall-0.15": 0.974744, + "recall-0.25": 0.989078, + "recall-0.5": 0.991809, "num_labels": 1465 }, "knee_right": { - "count": 1448, - "mean": 0.058221, - "median": 0.046031, - "std": 0.040723, - "sem": 0.001071, - "min": 0.005917, - "max": 0.302949, - "recall-0.025": 0.139136, - "recall-0.05": 0.542838, - "recall-0.1": 0.874572, - "recall-0.15": 0.949966, - "recall-0.25": 0.989719, - "recall-0.5": 0.992461, + "count": 1452, + "mean": 0.047274, + "median": 0.041634, + "std": 0.026906, + "sem": 0.000706, + "min": 0.001798, + "max": 0.187612, + "recall-0.025": 0.224812, + "recall-0.05": 0.584647, + "recall-0.1": 0.954764, + "recall-0.15": 0.991775, + "recall-0.25": 0.995202, + "recall-0.5": 0.995202, "num_labels": 1459 }, "ankle_left": { - "count": 1442, - "mean": 0.161085, - "median": 0.155375, - "std": 0.110322, - "sem": 0.002906, - "min": 0.005196, - "max": 0.496777, - "recall-0.025": 0.110731, - "recall-0.05": 0.231032, - "recall-0.1": 0.332878, - "recall-0.15": 0.473684, - "recall-0.25": 0.781271, - "recall-0.5": 0.985646, + "count": 1439, + "mean": 0.071808, + "median": 0.032165, + "std": 0.098716, + "sem": 0.002603, + "min": 0.001232, + "max": 0.494486, + "recall-0.025": 0.382775, + "recall-0.05": 0.632946, + "recall-0.1": 0.78674, + "recall-0.15": 0.83527, + "recall-0.25": 0.91866, + "recall-0.5": 0.983595, "num_labels": 1463 }, "ankle_right": { - "count": 1426, - "mean": 0.156162, - "median": 0.145982, - "std": 0.111099, - "sem": 0.002943, - "min": 0.002611, - "max": 0.48797, - "recall-0.025": 0.118493, - "recall-0.05": 0.237671, - "recall-0.1": 0.363699, - "recall-0.15": 0.50411, - "recall-0.25": 0.745205, - "recall-0.5": 0.976712, + "count": 1440, + "mean": 0.081234, + "median": 0.033067, + "std": 0.119559, + "sem": 0.003152, + "min": 0.001386, + "max": 0.499447, + "recall-0.025": 0.373973, + "recall-0.05": 0.677397, + "recall-0.1": 0.796575, + "recall-0.15": 0.839726, + "recall-0.25": 0.885616, + "recall-0.5": 0.986301, "num_labels": 1460 }, "joint_recalls": { "num_labels": 18990, - "recall-0.025": 0.35108, - "recall-0.05": 0.61901, - "recall-0.1": 0.8346, - "recall-0.15": 0.89642, - "recall-0.25": 0.95298, - "recall-0.5": 0.98836 + "recall-0.025": 0.49136, + "recall-0.05": 0.75066, + "recall-0.1": 0.9317, + "recall-0.15": 0.95771, + "recall-0.25": 0.97483, + "recall-0.5": 0.9911 } } { "total_parts": 20444, - "correct_parts": 19566, - "pcp": 0.957053 + "correct_parts": 19848, + "pcp": 0.970847 } ``` ### IkeaAsm -(duration 00:01:20) +(duration 00:01:45) ```json { - "avg_time_2d": 0.06850200762851633, - "avg_time_3d": 0.0017213769953885523, - "avg_fps": 14.240270607230004 + "avg_time_2d": 0.07040633143280907, + "avg_time_3d": 0.00213554522974028, + "avg_fps": 13.785141024842861 } { "person_nums": { "total_frames": 288, "total_labels": 288, - "total_preds": 553, - "considered_empty": 71, - "valid_preds": 255, - "invalid_preds": 227, - "missing": 33, - "invalid_fraction": 0.47095, - "precision": 0.52905, - "recall": 0.88542, - "f1": 0.66234, - "non_empty": 482 + "total_preds": 310, + "considered_empty": 51, + "valid_preds": 251, + "invalid_preds": 8, + "missing": 37, + "invalid_fraction": 0.03089, + "precision": 0.96911, + "recall": 0.87153, + "f1": 0.91773, + "non_empty": 259 }, "mpjpe": { - "count": 255, - "mean": 0.08567, - "median": 0.072396, - "std": 0.0596, - "sem": 0.00374, - "min": 0.017736, - "max": 0.393906, - "recall-0.025": 0.017361, - "recall-0.05": 0.256944, - "recall-0.1": 0.645833, - "recall-0.15": 0.805556, + "count": 251, + "mean": 0.065975, + "median": 0.053767, + "std": 0.046091, + "sem": 0.002915, + "min": 0.016763, + "max": 0.366032, + "recall-0.025": 0.048611, + "recall-0.05": 0.381944, + "recall-0.1": 0.732639, + "recall-0.15": 0.836806, "recall-0.25": 0.857639, - "recall-0.5": 0.885417, + "recall-0.5": 0.871528, "num_labels": 288, - "ap-0.025": 0.000798, - "ap-0.05": 0.056247, - "ap-0.1": 0.409384, - "ap-0.15": 0.612698, - "ap-0.25": 0.709717, - "ap-0.5": 0.731571 + "ap-0.025": 0.007366, + "ap-0.05": 0.204348, + "ap-0.1": 0.655256, + "ap-0.15": 0.81734, + "ap-0.25": 0.848678, + "ap-0.5": 0.865346 }, "head": { - "count": 241, - "mean": 0.054728, - "median": 0.045234, - "std": 0.043738, - "sem": 0.002823, + "count": 237, + "mean": 0.038044, + "median": 0.029325, + "std": 0.033749, + "sem": 0.002197, "min": 0.004678, "max": 0.383215, - "recall-0.025": 0.225926, - "recall-0.05": 0.52963, - "recall-0.1": 0.796296, - "recall-0.15": 0.866667, - "recall-0.25": 0.885185, - "recall-0.5": 0.892593, + "recall-0.025": 0.333333, + "recall-0.05": 0.718519, + "recall-0.1": 0.855556, + "recall-0.15": 0.87037, + "recall-0.25": 0.874074, + "recall-0.5": 0.877778, "num_labels": 270 }, "shoulder_left": { - "count": 240, - "mean": 0.051787, - "median": 0.039595, - "std": 0.043516, - "sem": 0.002815, + "count": 236, + "mean": 0.042516, + "median": 0.033226, + "std": 0.034694, + "sem": 0.002263, "min": 0.006654, - "max": 0.351625, - "recall-0.025": 0.144981, - "recall-0.05": 0.565056, - "recall-0.1": 0.847584, - "recall-0.15": 0.873606, - "recall-0.25": 0.877323, - "recall-0.5": 0.892193, + "max": 0.327001, + "recall-0.025": 0.193309, + "recall-0.05": 0.669145, + "recall-0.1": 0.855019, + "recall-0.15": 0.869888, + "recall-0.25": 0.869888, + "recall-0.5": 0.877323, "num_labels": 269 }, "shoulder_right": { - "count": 230, - "mean": 0.046923, - "median": 0.037369, - "std": 0.042201, - "sem": 0.002789, + "count": 228, + "mean": 0.038985, + "median": 0.029654, + "std": 0.033751, + "sem": 0.00224, "min": 0.006179, - "max": 0.406481, - "recall-0.025": 0.178295, - "recall-0.05": 0.627907, - "recall-0.1": 0.844961, + "max": 0.3875, + "recall-0.025": 0.271318, + "recall-0.05": 0.717054, + "recall-0.1": 0.852713, "recall-0.15": 0.872093, - "recall-0.25": 0.883721, - "recall-0.5": 0.891473, + "recall-0.25": 0.879845, + "recall-0.5": 0.883721, "num_labels": 258 }, "elbow_left": { - "count": 221, - "mean": 0.056536, - "median": 0.040681, - "std": 0.053919, - "sem": 0.003635, - "min": 0.004614, + "count": 218, + "mean": 0.038058, + "median": 0.024438, + "std": 0.044266, + "sem": 0.003005, + "min": 0.003563, "max": 0.4313, - "recall-0.025": 0.252, - "recall-0.05": 0.536, - "recall-0.1": 0.748, - "recall-0.15": 0.844, - "recall-0.25": 0.876, - "recall-0.5": 0.884, + "recall-0.025": 0.452, + "recall-0.05": 0.692, + "recall-0.1": 0.82, + "recall-0.15": 0.852, + "recall-0.25": 0.864, + "recall-0.5": 0.872, "num_labels": 250 }, "elbow_right": { - "count": 186, - "mean": 0.054749, - "median": 0.041122, - "std": 0.061249, - "sem": 0.004503, - "min": 0.008326, + "count": 184, + "mean": 0.034691, + "median": 0.022777, + "std": 0.046459, + "sem": 0.003434, + "min": 0.002853, "max": 0.462231, - "recall-0.025": 0.216981, - "recall-0.05": 0.551887, - "recall-0.1": 0.816038, - "recall-0.15": 0.84434, + "recall-0.025": 0.481132, + "recall-0.05": 0.707547, + "recall-0.1": 0.839623, + "recall-0.15": 0.858491, "recall-0.25": 0.858491, - "recall-0.5": 0.877358, + "recall-0.5": 0.867925, "num_labels": 212 }, "wrist_left": { - "count": 202, - "mean": 0.049183, - "median": 0.032052, - "std": 0.042339, - "sem": 0.002986, - "min": 0.00403, - "max": 0.202048, - "recall-0.025": 0.36, - "recall-0.05": 0.595556, - "recall-0.1": 0.777778, + "count": 199, + "mean": 0.038361, + "median": 0.0213, + "std": 0.045916, + "sem": 0.003263, + "min": 0.003387, + "max": 0.407967, + "recall-0.025": 0.524444, + "recall-0.05": 0.702222, + "recall-0.1": 0.8, "recall-0.15": 0.871111, - "recall-0.25": 0.897778, - "recall-0.5": 0.897778, + "recall-0.25": 0.88, + "recall-0.5": 0.884444, "num_labels": 225 }, "wrist_right": { - "count": 195, - "mean": 0.050272, - "median": 0.031928, - "std": 0.058901, - "sem": 0.004229, - "min": 0.001291, + "count": 194, + "mean": 0.035801, + "median": 0.019762, + "std": 0.051739, + "sem": 0.003724, + "min": 0.002012, "max": 0.433066, - "recall-0.025": 0.324324, - "recall-0.05": 0.612613, - "recall-0.1": 0.779279, - "recall-0.15": 0.837838, + "recall-0.025": 0.540541, + "recall-0.05": 0.711712, + "recall-0.1": 0.801802, + "recall-0.15": 0.846847, "recall-0.25": 0.855856, - "recall-0.5": 0.878378, + "recall-0.5": 0.873874, "num_labels": 222 }, "hip_left": { - "count": 168, - "mean": 0.110634, - "median": 0.098791, - "std": 0.058257, - "sem": 0.004508, - "min": 0.032009, + "count": 166, + "mean": 0.097841, + "median": 0.080859, + "std": 0.063055, + "sem": 0.004909, + "min": 0.028679, "max": 0.487868, "recall-0.025": 0.0, - "recall-0.05": 0.042328, - "recall-0.1": 0.465608, - "recall-0.15": 0.793651, - "recall-0.25": 0.862434, - "recall-0.5": 0.888889, + "recall-0.05": 0.095238, + "recall-0.1": 0.608466, + "recall-0.15": 0.798942, + "recall-0.25": 0.835979, + "recall-0.5": 0.878307, "num_labels": 189 }, "hip_right": { - "count": 103, - "mean": 0.115788, - "median": 0.096183, - "std": 0.0621, - "sem": 0.006149, + "count": 101, + "mean": 0.102819, + "median": 0.087365, + "std": 0.062437, + "sem": 0.006244, "min": 0.037131, - "max": 0.367282, + "max": 0.395581, "recall-0.025": 0.0, - "recall-0.05": 0.043103, - "recall-0.1": 0.482759, - "recall-0.15": 0.706897, - "recall-0.25": 0.836207, - "recall-0.5": 0.887931, + "recall-0.05": 0.060345, + "recall-0.1": 0.594828, + "recall-0.15": 0.75, + "recall-0.25": 0.827586, + "recall-0.5": 0.87069, "num_labels": 116 }, "knee_left": { - "count": 124, - "mean": 0.107597, - "median": 0.076598, - "std": 0.096248, - "sem": 0.008678, + "count": 125, + "mean": 0.087678, + "median": 0.058905, + "std": 0.091155, + "sem": 0.008186, "min": 0.002789, - "max": 0.496749, - "recall-0.025": 0.124088, - "recall-0.05": 0.277372, - "recall-0.1": 0.576642, - "recall-0.15": 0.737226, - "recall-0.25": 0.80292, - "recall-0.5": 0.905109, + "max": 0.473302, + "recall-0.025": 0.19708, + "recall-0.05": 0.394161, + "recall-0.1": 0.671533, + "recall-0.15": 0.781022, + "recall-0.25": 0.846715, + "recall-0.5": 0.912409, "num_labels": 137 }, "knee_right": { - "count": 120, - "mean": 0.107519, - "median": 0.062505, - "std": 0.107664, - "sem": 0.00987, + "count": 119, + "mean": 0.075441, + "median": 0.041921, + "std": 0.079578, + "sem": 0.007326, "min": 0.005859, - "max": 0.436003, - "recall-0.025": 0.12782, - "recall-0.05": 0.345865, - "recall-0.1": 0.593985, - "recall-0.15": 0.729323, - "recall-0.25": 0.774436, - "recall-0.5": 0.902256, + "max": 0.408641, + "recall-0.025": 0.233083, + "recall-0.05": 0.473684, + "recall-0.1": 0.661654, + "recall-0.15": 0.774436, + "recall-0.25": 0.857143, + "recall-0.5": 0.894737, "num_labels": 133 }, "ankle_left": { "count": 91, - "mean": 0.159276, - "median": 0.137039, - "std": 0.103888, - "sem": 0.010951, + "mean": 0.138874, + "median": 0.110764, + "std": 0.111323, + "sem": 0.011734, "min": 0.008477, "max": 0.434693, - "recall-0.025": 0.034783, - "recall-0.05": 0.130435, - "recall-0.1": 0.304348, - "recall-0.15": 0.4, - "recall-0.25": 0.634783, + "recall-0.025": 0.052174, + "recall-0.05": 0.191304, + "recall-0.1": 0.382609, + "recall-0.15": 0.504348, + "recall-0.25": 0.669565, "recall-0.5": 0.791304, "num_labels": 115 }, "ankle_right": { - "count": 72, - "mean": 0.147049, - "median": 0.089071, - "std": 0.141024, - "sem": 0.016737, + "count": 68, + "mean": 0.110192, + "median": 0.071169, + "std": 0.111019, + "sem": 0.013563, "min": 0.01164, - "max": 0.497385, - "recall-0.025": 0.095745, - "recall-0.05": 0.234043, - "recall-0.1": 0.414894, - "recall-0.15": 0.531915, - "recall-0.25": 0.617021, - "recall-0.5": 0.765957, + "max": 0.47701, + "recall-0.025": 0.12766, + "recall-0.05": 0.287234, + "recall-0.1": 0.457447, + "recall-0.15": 0.56383, + "recall-0.25": 0.638298, + "recall-0.5": 0.723404, "num_labels": 94 }, "joint_recalls": { "num_labels": 2490, - "recall-0.025": 0.18153, - "recall-0.05": 0.44538, - "recall-0.1": 0.6988, - "recall-0.15": 0.79839, - "recall-0.25": 0.84177, - "recall-0.5": 0.87791 + "recall-0.025": 0.29598, + "recall-0.05": 0.55502, + "recall-0.1": 0.75141, + "recall-0.15": 0.81406, + "recall-0.25": 0.84297, + "recall-0.5": 0.86827 } } { "total_parts": 2243, - "correct_parts": 1901, - "pcp": 0.847526 + "correct_parts": 1906, + "pcp": 0.849755 } ``` ### Tsinghua -(duration 00:03:02) +(duration 00:01:51) ```json { - "avg_time_2d": 0.13853302225470543, - "avg_time_3d": 0.014251434803009033, - "avg_fps": 6.54516839773989 + "avg_time_2d": 0.15860778018832206, + "avg_time_3d": 0.017471200227737425, + "avg_fps": 5.679269596161257 } { "person_nums": { "total_frames": 330, "total_labels": 780, - "total_preds": 1301, - "considered_empty": 190, - "valid_preds": 778, - "invalid_preds": 333, - "missing": 2, - "invalid_fraction": 0.29973, - "precision": 0.70027, - "recall": 0.99744, - "f1": 0.82285, - "non_empty": 1111 + "total_preds": 1057, + "considered_empty": 23, + "valid_preds": 776, + "invalid_preds": 258, + "missing": 4, + "invalid_fraction": 0.24952, + "precision": 0.75048, + "recall": 0.99487, + "f1": 0.85557, + "non_empty": 1034 }, "mpjpe": { - "count": 778, - "mean": 0.064515, - "median": 0.05589, - "std": 0.049405, - "sem": 0.001772, - "min": 0.03088, - "max": 0.491105, + "count": 776, + "mean": 0.051933, + "median": 0.049863, + "std": 0.014382, + "sem": 0.000517, + "min": 0.029634, + "max": 0.290459, "recall-0.025": 0.0, - "recall-0.05": 0.248718, - "recall-0.1": 0.965385, - "recall-0.15": 0.971795, - "recall-0.25": 0.976923, - "recall-0.5": 0.997436, + "recall-0.05": 0.501282, + "recall-0.1": 0.992308, + "recall-0.15": 0.99359, + "recall-0.25": 0.99359, + "recall-0.5": 0.994872, "num_labels": 780, "ap-0.025": 0.0, - "ap-0.05": 0.116928, - "ap-0.1": 0.93482, - "ap-0.15": 0.940984, - "ap-0.25": 0.945208, - "ap-0.5": 0.97543 + "ap-0.05": 0.306795, + "ap-0.1": 0.991081, + "ap-0.15": 0.99261, + "ap-0.25": 0.99261, + "ap-0.5": 0.993698 }, "head": { - "count": 752, - "mean": 0.047473, - "median": 0.039928, - "std": 0.048695, - "sem": 0.001777, - "min": 0.005275, - "max": 0.415623, - "recall-0.025": 0.225764, - "recall-0.05": 0.747676, - "recall-0.1": 0.954847, - "recall-0.15": 0.976096, - "recall-0.25": 0.978752, - "recall-0.5": 0.998672, + "count": 753, + "mean": 0.03895, + "median": 0.038185, + "std": 0.016016, + "sem": 0.000584, + "min": 0.004795, + "max": 0.097068, + "recall-0.025": 0.215139, + "recall-0.05": 0.77822, + "recall-0.1": 1.0, + "recall-0.15": 1.0, + "recall-0.25": 1.0, + "recall-0.5": 1.0, "num_labels": 753 }, "shoulder_left": { - "count": 778, - "mean": 0.068705, - "median": 0.063608, - "std": 0.04315, - "sem": 0.001548, - "min": 0.014632, - "max": 0.405649, - "recall-0.025": 0.005128, - "recall-0.05": 0.260256, - "recall-0.1": 0.935897, - "recall-0.15": 0.974359, - "recall-0.25": 0.978205, - "recall-0.5": 0.997436, + "count": 776, + "mean": 0.061926, + "median": 0.061105, + "std": 0.020617, + "sem": 0.000741, + "min": 0.019191, + "max": 0.220586, + "recall-0.025": 0.008974, + "recall-0.05": 0.308974, + "recall-0.1": 0.939744, + "recall-0.15": 0.99359, + "recall-0.25": 0.994872, + "recall-0.5": 0.994872, "num_labels": 780 }, "shoulder_right": { - "count": 778, - "mean": 0.071751, - "median": 0.061678, - "std": 0.0501, - "sem": 0.001797, - "min": 0.0133, - "max": 0.491641, - "recall-0.025": 0.007692, - "recall-0.05": 0.244872, - "recall-0.1": 0.911538, - "recall-0.15": 0.973077, - "recall-0.25": 0.976923, - "recall-0.5": 0.997436, + "count": 776, + "mean": 0.064914, + "median": 0.060649, + "std": 0.022005, + "sem": 0.00079, + "min": 0.022078, + "max": 0.150885, + "recall-0.025": 0.002564, + "recall-0.05": 0.283333, + "recall-0.1": 0.919231, + "recall-0.15": 0.99359, + "recall-0.25": 0.994872, + "recall-0.5": 0.994872, "num_labels": 780 }, "elbow_left": { - "count": 769, - "mean": 0.059534, - "median": 0.052548, - "std": 0.039487, - "sem": 0.001425, - "min": 0.010065, - "max": 0.451059, - "recall-0.025": 0.046392, - "recall-0.05": 0.427835, - "recall-0.1": 0.931701, - "recall-0.15": 0.966495, - "recall-0.25": 0.983247, - "recall-0.5": 0.990979, + "count": 771, + "mean": 0.048155, + "median": 0.044396, + "std": 0.022235, + "sem": 0.000801, + "min": 0.003098, + "max": 0.21128, + "recall-0.025": 0.108247, + "recall-0.05": 0.597938, + "recall-0.1": 0.972938, + "recall-0.15": 0.987113, + "recall-0.25": 0.993557, + "recall-0.5": 0.993557, "num_labels": 776 }, "elbow_right": { - "count": 769, - "mean": 0.064659, - "median": 0.055079, - "std": 0.045934, - "sem": 0.001657, - "min": 0.008519, - "max": 0.494536, - "recall-0.025": 0.046332, - "recall-0.05": 0.400257, - "recall-0.1": 0.893179, - "recall-0.15": 0.96139, - "recall-0.25": 0.979408, - "recall-0.5": 0.989704, + "count": 773, + "mean": 0.051632, + "median": 0.046512, + "std": 0.034104, + "sem": 0.001227, + "min": 0.007278, + "max": 0.454768, + "recall-0.025": 0.11583, + "recall-0.05": 0.566281, + "recall-0.1": 0.94852, + "recall-0.15": 0.985843, + "recall-0.25": 0.988417, + "recall-0.5": 0.994852, "num_labels": 777 }, "wrist_left": { - "count": 763, - "mean": 0.076045, - "median": 0.063573, - "std": 0.056399, - "sem": 0.002043, - "min": 0.002244, - "max": 0.493903, - "recall-0.025": 0.076623, - "recall-0.05": 0.351948, - "recall-0.1": 0.762338, - "recall-0.15": 0.927273, - "recall-0.25": 0.976623, - "recall-0.5": 0.990909, + "count": 765, + "mean": 0.050433, + "median": 0.04224, + "std": 0.031081, + "sem": 0.001124, + "min": 0.005464, + "max": 0.287068, + "recall-0.025": 0.146753, + "recall-0.05": 0.620779, + "recall-0.1": 0.932468, + "recall-0.15": 0.984416, + "recall-0.25": 0.98961, + "recall-0.5": 0.993506, "num_labels": 770 }, "wrist_right": { - "count": 740, - "mean": 0.085981, - "median": 0.070189, - "std": 0.061697, - "sem": 0.00227, - "min": 0.006755, - "max": 0.499008, - "recall-0.025": 0.041389, - "recall-0.05": 0.257677, - "recall-0.1": 0.720961, - "recall-0.15": 0.875834, - "recall-0.25": 0.967957, - "recall-0.5": 0.987984, + "count": 744, + "mean": 0.06004, + "median": 0.049851, + "std": 0.042609, + "sem": 0.001563, + "min": 0.005678, + "max": 0.36077, + "recall-0.025": 0.109479, + "recall-0.05": 0.502003, + "recall-0.1": 0.871829, + "recall-0.15": 0.946595, + "recall-0.25": 0.985314, + "recall-0.5": 0.993324, "num_labels": 749 }, "hip_left": { - "count": 777, - "mean": 0.071578, - "median": 0.061979, - "std": 0.046923, - "sem": 0.001684, - "min": 0.012264, - "max": 0.462636, - "recall-0.025": 0.011538, - "recall-0.05": 0.257692, - "recall-0.1": 0.90641, - "recall-0.15": 0.958974, - "recall-0.25": 0.978205, - "recall-0.5": 0.996154, + "count": 776, + "mean": 0.063849, + "median": 0.0596, + "std": 0.026494, + "sem": 0.000952, + "min": 0.0017, + "max": 0.217641, + "recall-0.025": 0.026923, + "recall-0.05": 0.30641, + "recall-0.1": 0.919231, + "recall-0.15": 0.978205, + "recall-0.25": 0.994872, + "recall-0.5": 0.994872, "num_labels": 780 }, "hip_right": { - "count": 777, - "mean": 0.056163, - "median": 0.044552, - "std": 0.052686, - "sem": 0.001891, - "min": 0.006124, - "max": 0.490481, - "recall-0.025": 0.096154, - "recall-0.05": 0.582051, - "recall-0.1": 0.95, - "recall-0.15": 0.964103, - "recall-0.25": 0.976923, - "recall-0.5": 0.996154, + "count": 776, + "mean": 0.051607, + "median": 0.044657, + "std": 0.028833, + "sem": 0.001036, + "min": 0.007308, + "max": 0.192378, + "recall-0.025": 0.111538, + "recall-0.05": 0.587179, + "recall-0.1": 0.934615, + "recall-0.15": 0.979487, + "recall-0.25": 0.994872, + "recall-0.5": 0.994872, "num_labels": 780 }, "knee_left": { "count": 775, - "mean": 0.051221, - "median": 0.0446, - "std": 0.046935, - "sem": 0.001687, - "min": 0.000947, - "max": 0.492352, - "recall-0.025": 0.175866, - "recall-0.05": 0.613607, - "recall-0.1": 0.953787, - "recall-0.15": 0.973042, - "recall-0.25": 0.980745, + "mean": 0.045965, + "median": 0.043071, + "std": 0.02706, + "sem": 0.000973, + "min": 0.005523, + "max": 0.362978, + "recall-0.025": 0.184852, + "recall-0.05": 0.634146, + "recall-0.1": 0.970475, + "recall-0.15": 0.984596, + "recall-0.25": 0.993582, "recall-0.5": 0.994865, "num_labels": 779 }, "knee_right": { - "count": 770, - "mean": 0.054802, - "median": 0.047066, - "std": 0.049371, - "sem": 0.00178, - "min": 0.006292, - "max": 0.480681, - "recall-0.025": 0.125323, - "recall-0.05": 0.556848, - "recall-0.1": 0.939276, - "recall-0.15": 0.976744, - "recall-0.25": 0.98062, - "recall-0.5": 0.994832, + "count": 771, + "mean": 0.049529, + "median": 0.046727, + "std": 0.024371, + "sem": 0.000878, + "min": 0.006187, + "max": 0.178582, + "recall-0.025": 0.134367, + "recall-0.05": 0.578811, + "recall-0.1": 0.96124, + "recall-0.15": 0.989664, + "recall-0.25": 0.996124, + "recall-0.5": 0.996124, "num_labels": 774 }, "ankle_left": { - "count": 773, - "mean": 0.051212, - "median": 0.042763, - "std": 0.052084, - "sem": 0.001875, - "min": 0.000608, - "max": 0.499443, - "recall-0.025": 0.184852, - "recall-0.05": 0.636714, - "recall-0.1": 0.942234, - "recall-0.15": 0.960205, - "recall-0.25": 0.976893, - "recall-0.5": 0.992298, + "count": 774, + "mean": 0.040168, + "median": 0.037831, + "std": 0.021928, + "sem": 0.000789, + "min": 0.002465, + "max": 0.213487, + "recall-0.025": 0.2362, + "recall-0.05": 0.716303, + "recall-0.1": 0.980745, + "recall-0.15": 0.988447, + "recall-0.25": 0.993582, + "recall-0.5": 0.993582, "num_labels": 779 }, "ankle_right": { - "count": 760, - "mean": 0.049765, - "median": 0.041668, - "std": 0.044599, - "sem": 0.001619, - "min": 0.003368, - "max": 0.458733, - "recall-0.025": 0.206494, - "recall-0.05": 0.64026, - "recall-0.1": 0.927273, - "recall-0.15": 0.964935, - "recall-0.25": 0.977922, - "recall-0.5": 0.987013, + "count": 769, + "mean": 0.043193, + "median": 0.039079, + "std": 0.025619, + "sem": 0.000924, + "min": 0.002305, + "max": 0.189483, + "recall-0.025": 0.216883, + "recall-0.05": 0.694805, + "recall-0.1": 0.963636, + "recall-0.15": 0.990909, + "recall-0.25": 0.998701, + "recall-0.5": 0.998701, "num_labels": 770 }, "joint_recalls": { "num_labels": 10047, - "recall-0.025": 0.09515, - "recall-0.05": 0.45884, - "recall-0.1": 0.90206, - "recall-0.15": 0.9575, - "recall-0.25": 0.97691, - "recall-0.5": 0.99303 + "recall-0.025": 0.12292, + "recall-0.05": 0.55021, + "recall-0.1": 0.94685, + "recall-0.15": 0.98427, + "recall-0.25": 0.99343, + "recall-0.5": 0.99472 } } { "total_parts": 10800, - "correct_parts": 10401, - "pcp": 0.963056 + "correct_parts": 10664, + "pcp": 0.987407 } ``` diff --git a/scripts/test_skelda_dataset.py b/scripts/test_skelda_dataset.py index c2fdc4e..3f674c3 100644 --- a/scripts/test_skelda_dataset.py +++ b/scripts/test_skelda_dataset.py @@ -357,7 +357,9 @@ def main(): poses3D = np.zeros([1, len(joint_names_3d), 4]) poses2D = np.zeros([len(images_2d), 1, len(joint_names_3d), 3]) else: - poses3D = triangulate_poses.get_3d_pose(poses_2d, label["cameras"], joint_names_2d) + poses3D = triangulate_poses.get_3d_pose( + poses_2d, label["cameras"], roomparams, joint_names_2d + ) poses2D = [] for cam in label["cameras"]: poses_2d, _ = utils_pose.project_poses(poses3D, cam) diff --git a/scripts/test_triangulate.py b/scripts/test_triangulate.py index aef1851..7b9e215 100644 --- a/scripts/test_triangulate.py +++ b/scripts/test_triangulate.py @@ -439,7 +439,9 @@ def main(): poses3D = np.zeros([1, len(joint_names_3d), 4]) poses2D = np.zeros([len(images_2d), 1, len(joint_names_3d), 3]) else: - poses3D = triangulate_poses.get_3d_pose(poses_2d, camparams, joint_names_2d) + poses3D = triangulate_poses.get_3d_pose( + poses_2d, camparams, roomparams, joint_names_2d + ) poses2D = [] for cam in camparams: poses_2d, _ = utils_pose.project_poses(poses3D, cam) diff --git a/scripts/triangulate_poses.py b/scripts/triangulate_poses.py index 0af75ae..a627be2 100644 --- a/scripts/triangulate_poses.py +++ b/scripts/triangulate_poses.py @@ -1,4 +1,6 @@ import copy +import math +import time import cv2 import numpy as np @@ -8,8 +10,6 @@ from skelda import utils_pose # ================================================================================================== core_joints = [ - "shoulder_middle", - "hip_middle", "shoulder_left", "shoulder_right", "hip_left", @@ -64,7 +64,7 @@ def get_camera_P(cam): # ================================================================================================== -def calc_pair_score(pair, poses_2d, camparams, joint_names_2d): +def calc_pair_score(pair, poses_2d, camparams, roomparams, joint_names_2d, use_joints): """Triangulates a pair of persons and scores them based on the reprojection error""" cam1 = camparams[pair[0][0]] @@ -73,45 +73,77 @@ def calc_pair_score(pair, poses_2d, camparams, joint_names_2d): pose2 = np.array(poses_2d[pair[0][1]][pair[0][3]]) # Select core joints - jids = [joint_names_2d.index(j) for j in core_joints] + jids = [joint_names_2d.index(j) for j in use_joints] pose1 = pose1[jids] pose2 = pose2[jids] - poses_3d, score = calc_pose_scored(pose1, pose2, cam1, cam2) + poses_3d, score = calc_pose_scored(pose1, pose2, cam1, cam2, roomparams) return poses_3d, score # ================================================================================================== -def calc_pose_scored(pose1, pose2, cam1, cam2): +def calc_pose_scored(pose1, pose2, cam1, cam2, roomparams): """Triangulates a pair of persons and scores them based on the reprojection error""" + # Mask out invisible joints + mask1a = pose1[:, 2] >= 0.1 + mask2a = pose2[:, 2] >= 0.1 + mask = mask1a & mask2a + + # If no joints are visible return a low score + if np.sum(mask) == 0: + pose3d = np.zeros([len(pose1), 4]) + score = 0.0 + return pose3d, score + # Triangulate points - points1 = pose1[:, 0:2].T - points2 = pose2[:, 0:2].T + points1 = pose1[mask, 0:2].T + points2 = pose2[mask, 0:2].T P1 = get_camera_P(cam1) P2 = get_camera_P(cam2) points3d = cv2.triangulatePoints(P1, P2, points1, points2) points3d = points3d / points3d[3, :] points3d = points3d[0:3, :].T + pose3d = np.zeros([len(pose1), 4]) + pose3d[mask] = np.concatenate([points3d, np.ones([points3d.shape[0], 1])], axis=-1) + + # If the triangulated points are outside the room drop it + mean = np.mean(pose3d[mask][:, 0:3], axis=0) + mins = np.min(pose3d[mask][:, 0:3], axis=0) + maxs = np.max(pose3d[mask][:, 0:3], axis=0) + rsize = np.array(roomparams["room_size"]) / 2 + rcent = np.array(roomparams["room_center"]) + center_outside = np.any((mean > rsize + rcent) | (mean < -rsize + rcent)) + limb_outside = np.any((maxs > rsize + rcent + 0.1) | (mins < -rsize + rcent - 0.1)) + if center_outside or limb_outside: + pose3d[:, 3] = 0.001 + score = 0.001 + return pose3d, score # Calculate reprojection error - poses_3d = np.expand_dims(points3d, axis=0) - poses_3d = np.concatenate([poses_3d, np.ones([1, poses_3d.shape[1], 1])], axis=-1) + poses_3d = np.expand_dims(pose3d, axis=0) repro1, _ = utils_pose.project_poses(poses_3d, cam1) repro2, _ = utils_pose.project_poses(poses_3d, cam2) repro1 = repro1[0] repro2 = repro2[0] - mask1 = pose1[:, 2] > 0.1 - mask2 = pose2[:, 2] > 0.1 - mask = mask1 & mask2 error1 = np.linalg.norm(pose1[mask, 0:2] - repro1[mask, 0:2], axis=1) error2 = np.linalg.norm(pose2[mask, 0:2] - repro2[mask, 0:2], axis=1) + # Set errors of invisible reprojections to a high value + penalty = (cam1["width"] + cam1["height"]) / 2 + mask1b = (repro1[:, 2] < 0.1)[mask] + mask2b = (repro2[:, 2] < 0.1)[mask] + error1[mask1b] = penalty + error2[mask2b] = penalty + # Convert errors to a score - error1 = error1 / ((cam1["width"] + cam1["height"]) / 2) - error2 = error2 / ((cam2["width"] + cam2["height"]) / 2) + scale = (cam1["width"] + cam1["height"]) / 2 + error1 = error1.clip(0, scale / 4) + error2 = error2.clip(0, scale / 4) + error1 = error1 / scale + error2 = error2 / scale error = (error1 + error2) / 2 scores = 1.0 / (1.0 + error * 10) score = np.mean(scores) @@ -119,9 +151,9 @@ def calc_pose_scored(pose1, pose2, cam1, cam2): # Add score to 3D pose full_scores = np.zeros([poses_3d.shape[1], 1]) full_scores[mask] = np.expand_dims(scores, axis=-1) - pose_3d = np.concatenate([points3d, full_scores], axis=-1) + pose3d[:, 3] = full_scores[:, 0] - return pose_3d, score + return pose3d, score # ================================================================================================== @@ -131,12 +163,13 @@ def calc_grouping(all_pairs): """Groups pairs that share a person""" # Calculate the pose center for each pair + min_score = 0.9 for i in range(len(all_pairs)): pair = all_pairs[i] pose_3d = pair[2][0] - mask = pose_3d[:, 2] > 0.1 + mask = pose_3d[:, 3] > min_score center = np.mean(pose_3d[mask, 0:3], axis=0) - all_pairs[i] = all_pairs[i] + (center,) + all_pairs[i] = all_pairs[i] + [center] groups = [] for i in range(len(all_pairs)): @@ -144,33 +177,43 @@ def calc_grouping(all_pairs): # Create new group if non exists if len(groups) == 0: - groups.append([pair]) + groups.append([pair[4], pair[2][0], [pair]]) continue - # Check if the pair belongs to an existing group - matched = False + # Check if the pair matches to an existing group + max_center_dist = 0.9 + max_joint_avg_dist = 0.3 + best_dist = math.inf + best_group = -1 for j in range(len(groups)): - g0 = groups[j][0] - center0 = g0[3] - center1 = pair[3] - if np.linalg.norm(center0 - center1) < 0.5: - pose0 = g0[2][0] + g0 = groups[j] + center0 = g0[0] + center1 = pair[4] + if np.linalg.norm(center0 - center1) < max_center_dist: + pose0 = g0[1] pose1 = pair[2][0] # Calculate the distance between the two poses - mask0 = pose0[:, 3] > 0.1 - mask1 = pose1[:, 3] > 0.1 + mask0 = pose0[:, 3] > min_score + mask1 = pose1[:, 3] > min_score mask = mask0 & mask1 dists = np.linalg.norm(pose0[mask, 0:3] - pose1[mask, 0:3], axis=1) dist = np.mean(dists) - if dist < 0.3: - groups[j].append(pair) - matched = True - break - - # Create new group if no match was found - if not matched: - groups.append([pair]) + if dist < max_joint_avg_dist: + if dist < best_dist: + best_dist = dist + best_group = j + if best_group >= 0: + # Add pair to existing group and update the mean positions + group = groups[best_group] + new_center = (group[0] * len(group[1]) + pair[4]) / (len(group[1]) + 1) + new_pose = (group[1] * len(group[1]) + pair[2][0]) / (len(group[1]) + 1) + group[2].append(pair) + group[0] = new_center + group[1] = new_pose + else: + # Create new group if no match was found + groups.append([pair[4], pair[2][0], [pair]]) return groups @@ -178,30 +221,51 @@ def calc_grouping(all_pairs): # ================================================================================================== -def merge_group(group, poses_2d, camparams): +def merge_group(poses_3d: np.ndarray): """Merges a group of poses into a single pose""" - # Calculate full 3D poses - poses_3d = [] - for pair in group: - cam1 = camparams[pair[0][0]] - cam2 = camparams[pair[0][1]] - pose1 = np.array(poses_2d[pair[0][0]][pair[0][2]]) - pose2 = np.array(poses_2d[pair[0][1]][pair[0][3]]) + # Merge poses to create initial pose + # Use only those triangulations with a high score + min_score = 0.9 + mask = poses_3d[:, :, 3:4] > min_score + sum_poses = np.sum(poses_3d * mask, axis=0) + sum_mask = np.sum(mask, axis=0) + initial_pose_3d = np.divide( + sum_poses, sum_mask, where=(sum_mask > 0), out=np.zeros_like(sum_poses) + ) - pose_3d, _ = calc_pose_scored(pose1, pose2, cam1, cam2) - poses_3d.append(pose_3d) + # Drop outliers that are far away from the other proposals + max_dist = 0.3 + distances = np.linalg.norm( + poses_3d[:, :, :3] - initial_pose_3d[np.newaxis, :, :3], axis=2 + ) + dist_mask = distances <= max_dist + mask = mask & np.expand_dims(dist_mask, axis=-1) - # Merge poses - pose_3d = np.mean(poses_3d, axis=0) + # Select the best-k proposals for each joint that are closest to the initial pose + keep_best = 3 + sorted_indices = np.argsort(distances, axis=0) + best_k_mask = np.zeros_like(mask, dtype=bool) + num_joints = poses_3d.shape[1] + for i in range(num_joints): + valid_indices = sorted_indices[:, i][mask[sorted_indices[:, i], i, 0]] + best_k_mask[valid_indices[:keep_best], i, 0] = True + mask = mask & best_k_mask - return pose_3d + # Final pose computation with combined masks + sum_poses = np.sum(poses_3d * mask, axis=0) + sum_mask = np.sum(mask, axis=0) + final_pose_3d = np.divide( + sum_poses, sum_mask, where=(sum_mask > 0), out=np.zeros_like(sum_poses) + ) + + return final_pose_3d # ================================================================================================== -def get_3d_pose(poses_2d, camparams, joint_names_2d): +def get_3d_pose(poses_2d, camparams, roomparams, joint_names_2d): # Undistort 2D points for i, cam in enumerate(camparams): @@ -220,13 +284,15 @@ def get_3d_pose(poses_2d, camparams, joint_names_2d): for l in range(len(poses2)): pid1 = sum(num_persons[:i]) + k pid2 = sum(num_persons[:j]) + l - all_pairs.append(((i, j, k, l), (pid1, pid2))) + all_pairs.append([(i, j, k, l), (pid1, pid2)]) # Calculate pair scores for i in range(len(all_pairs)): pair = all_pairs[i] - pose_3d, score = calc_pair_score(pair, poses_2d, camparams, joint_names_2d) - all_pairs[i] = all_pairs[i] + ((pose_3d, score),) + pose_3d, score = calc_pair_score( + pair, poses_2d, camparams, roomparams, joint_names_2d, core_joints + ) + all_pairs[i].append((pose_3d, score)) # import draw_utils # poses3D = np.array([pose_3d]) @@ -239,13 +305,25 @@ def get_3d_pose(poses_2d, camparams, joint_names_2d): min_score = 0.9 all_pairs = [p for p in all_pairs if p[2][1] > min_score] + # Calculate full 3D poses + poses_3d = [] + for pair in all_pairs: + cam1 = camparams[pair[0][0]] + cam2 = camparams[pair[0][1]] + pose1 = np.array(poses_2d[pair[0][0]][pair[0][2]]) + pose2 = np.array(poses_2d[pair[0][1]][pair[0][3]]) + + pose_3d, _ = calc_pose_scored(pose1, pose2, cam1, cam2, roomparams) + pair.append(pose_3d) + # Group pairs that share a person groups = calc_grouping(all_pairs) # Merge groups poses_3d = [] for group in groups: - pose_3d = merge_group(group, poses_2d, camparams) + poses = np.array([p[3] for p in group[2]]) + pose_3d = merge_group(poses) poses_3d.append(pose_3d) if len(poses_3d) > 0: