From e9eb4c5d96aa7c239aad11aa4bf2888d42e96a8c Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 10 Mar 2025 11:48:51 +0100 Subject: [PATCH] Weigh positions at merge by exponential score. --- media/RESULTS.md | 1154 +++++++++++++++++++++--------------------- rpt/triangulator.cpp | 27 +- 2 files changed, 592 insertions(+), 589 deletions(-) diff --git a/media/RESULTS.md b/media/RESULTS.md index 8611354..8388b66 100644 --- a/media/RESULTS.md +++ b/media/RESULTS.md @@ -7,26 +7,26 @@ Results of the model in various experiments on different datasets. \ ```json { - "img_loading": 0.0209406, - "demosaicing": 0.00061778, - "avg_time_2d": 0.0081745, - "avg_time_3d": 3.67151e-05, - "fps": 113.263 + "img_loading": 0.0206385, + "demosaicing": 0.000598167, + "avg_time_2d": 0.00822345, + "avg_time_3d": 3.54813e-05, + "fps": 112.904 } { "triangulator_calls": 600, - "init_time": 2.64651e-06, - "undistort_time": 3.72878e-06, - "project_time": 7.91012e-07, - "match_time": 1.3786e-06, - "pairs_time": 2.28007e-07, - "pair_scoring_time": 6.05516e-06, - "grouping_time": 1.00762e-06, - "full_time": 7.78534e-06, - "merge_time": 3.16104e-06, - "post_time": 4.67212e-06, - "convert_time": 6.287e-08, - "total_time": 3.17519e-05 + "init_time": 2.62541e-06, + "undistort_time": 3.73739e-06, + "project_time": 7.60795e-07, + "match_time": 1.39969e-06, + "pairs_time": 2.26192e-07, + "pair_scoring_time": 5.79049e-06, + "grouping_time": 9.75042e-07, + "full_time": 7.44867e-06, + "merge_time": 3.51708e-06, + "post_time": 4.28027e-06, + "convert_time": 5.8175e-08, + "total_time": 3.1055e-05 } { "person_nums": { @@ -45,52 +45,52 @@ Results of the model in various experiments on different datasets. \ }, "mpjpe": { "count": 600, - "mean": 0.06137, - "median": 0.052692, - "std": 0.028754, - "sem": 0.001175, - "min": 0.036336, - "max": 0.189303, + "mean": 0.060962, + "median": 0.052484, + "std": 0.028624, + "sem": 0.00117, + "min": 0.036311, + "max": 0.188858, "recall-0.025": 0.0, - "recall-0.05": 0.341667, + "recall-0.05": 0.366667, "recall-0.1": 0.936667, "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.198349, - "ap-0.1": 0.89113, - "ap-0.15": 0.911895, + "ap-0.05": 0.215605, + "ap-0.1": 0.891161, + "ap-0.15": 0.911559, "ap-0.25": 1.0, "ap-0.5": 1.0 }, "nose": { "count": 600, - "mean": 0.106588, - "median": 0.094594, - "std": 0.037095, - "sem": 0.001516, - "min": 0.025522, - "max": 0.26498, - "recall-0.025": 0.0, + "mean": 0.105757, + "median": 0.094634, + "std": 0.035993, + "sem": 0.001471, + "min": 0.024489, + "max": 0.260746, + "recall-0.025": 0.001667, "recall-0.05": 0.021667, - "recall-0.1": 0.57, - "recall-0.15": 0.883333, - "recall-0.25": 0.995, + "recall-0.1": 0.576667, + "recall-0.15": 0.89, + "recall-0.25": 0.998333, "recall-0.5": 1.0, "num_labels": 600 }, "shoulder_left": { "count": 600, - "mean": 0.035858, - "median": 0.026326, - "std": 0.033789, - "sem": 0.001381, - "min": 0.002501, - "max": 0.171365, - "recall-0.025": 0.456667, - "recall-0.05": 0.82, + "mean": 0.035821, + "median": 0.026476, + "std": 0.033776, + "sem": 0.00138, + "min": 0.002473, + "max": 0.171514, + "recall-0.025": 0.46, + "recall-0.05": 0.816667, "recall-0.1": 0.941667, "recall-0.15": 0.963333, "recall-0.25": 1.0, @@ -99,30 +99,30 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_right": { "count": 600, - "mean": 0.044725, - "median": 0.033151, - "std": 0.040415, - "sem": 0.001651, - "min": 0.004892, - "max": 0.214426, - "recall-0.025": 0.333333, - "recall-0.05": 0.773333, - "recall-0.1": 0.911667, - "recall-0.15": 0.941667, - "recall-0.25": 1.0, + "mean": 0.044875, + "median": 0.032878, + "std": 0.041356, + "sem": 0.00169, + "min": 0.004517, + "max": 0.26572, + "recall-0.025": 0.331667, + "recall-0.05": 0.776667, + "recall-0.1": 0.913333, + "recall-0.15": 0.94, + "recall-0.25": 0.998333, "recall-0.5": 1.0, "num_labels": 600 }, "elbow_left": { "count": 600, - "mean": 0.044885, - "median": 0.035671, - "std": 0.036139, + "mean": 0.044585, + "median": 0.035103, + "std": 0.036154, "sem": 0.001477, - "min": 0.00282, - "max": 0.19274, - "recall-0.025": 0.258333, - "recall-0.05": 0.78, + "min": 0.002754, + "max": 0.192778, + "recall-0.025": 0.261667, + "recall-0.05": 0.786667, "recall-0.1": 0.933333, "recall-0.15": 0.953333, "recall-0.25": 1.0, @@ -131,14 +131,14 @@ Results of the model in various experiments on different datasets. \ }, "elbow_right": { "count": 600, - "mean": 0.042779, - "median": 0.0314, - "std": 0.037255, - "sem": 0.001522, - "min": 0.003931, - "max": 0.305834, + "mean": 0.042661, + "median": 0.031367, + "std": 0.037706, + "sem": 0.001541, + "min": 0.004304, + "max": 0.322234, "recall-0.025": 0.266667, - "recall-0.05": 0.816667, + "recall-0.05": 0.821667, "recall-0.1": 0.928333, "recall-0.15": 0.943333, "recall-0.25": 0.996667, @@ -147,15 +147,15 @@ Results of the model in various experiments on different datasets. \ }, "wrist_left": { "count": 600, - "mean": 0.041456, - "median": 0.024274, - "std": 0.045842, - "sem": 0.001873, - "min": 0.000691, - "max": 0.309356, - "recall-0.025": 0.516667, - "recall-0.05": 0.758333, - "recall-0.1": 0.895, + "mean": 0.040793, + "median": 0.024225, + "std": 0.04538, + "sem": 0.001854, + "min": 0.000836, + "max": 0.326313, + "recall-0.025": 0.521667, + "recall-0.05": 0.77, + "recall-0.1": 0.898333, "recall-0.15": 0.943333, "recall-0.25": 0.996667, "recall-0.5": 1.0, @@ -163,31 +163,31 @@ Results of the model in various experiments on different datasets. \ }, "wrist_right": { "count": 599, - "mean": 0.045939, - "median": 0.027958, - "std": 0.052067, - "sem": 0.002129, - "min": 0.002464, - "max": 0.457433, - "recall-0.025": 0.443333, - "recall-0.05": 0.775, - "recall-0.1": 0.89, - "recall-0.15": 0.908333, - "recall-0.25": 0.99, + "mean": 0.044678, + "median": 0.02687, + "std": 0.050652, + "sem": 0.002071, + "min": 0.002472, + "max": 0.457708, + "recall-0.025": 0.456667, + "recall-0.05": 0.783333, + "recall-0.1": 0.893333, + "recall-0.15": 0.911667, + "recall-0.25": 0.991667, "recall-0.5": 0.998333, "num_labels": 600 }, "hip_left": { "count": 600, - "mean": 0.068231, - "median": 0.057583, - "std": 0.035521, - "sem": 0.001451, - "min": 0.02502, - "max": 0.215663, + "mean": 0.068763, + "median": 0.057992, + "std": 0.035423, + "sem": 0.001447, + "min": 0.025544, + "max": 0.215642, "recall-0.025": 0.0, - "recall-0.05": 0.268333, - "recall-0.1": 0.89, + "recall-0.05": 0.258333, + "recall-0.1": 0.885, "recall-0.15": 0.948333, "recall-0.25": 1.0, "recall-0.5": 1.0, @@ -195,14 +195,14 @@ Results of the model in various experiments on different datasets. \ }, "hip_right": { "count": 600, - "mean": 0.0855, - "median": 0.082345, - "std": 0.028363, - "sem": 0.001159, - "min": 0.019272, - "max": 0.210242, - "recall-0.025": 0.01, - "recall-0.05": 0.051667, + "mean": 0.085671, + "median": 0.082582, + "std": 0.028486, + "sem": 0.001164, + "min": 0.019417, + "max": 0.210131, + "recall-0.025": 0.008333, + "recall-0.05": 0.056667, "recall-0.1": 0.871667, "recall-0.15": 0.95, "recall-0.25": 1.0, @@ -211,82 +211,82 @@ Results of the model in various experiments on different datasets. \ }, "knee_left": { "count": 600, - "mean": 0.058052, - "median": 0.042191, - "std": 0.059265, - "sem": 0.002422, - "min": 0.014301, - "max": 0.42908, - "recall-0.025": 0.078333, - "recall-0.05": 0.688333, - "recall-0.1": 0.91, - "recall-0.15": 0.921667, + "mean": 0.057169, + "median": 0.041844, + "std": 0.056709, + "sem": 0.002317, + "min": 0.014337, + "max": 0.41337, + "recall-0.025": 0.076667, + "recall-0.05": 0.695, + "recall-0.1": 0.911667, + "recall-0.15": 0.923333, "recall-0.25": 0.981667, "recall-0.5": 1.0, "num_labels": 600 }, "knee_right": { "count": 600, - "mean": 0.04728, - "median": 0.034285, - "std": 0.041791, - "sem": 0.001708, - "min": 0.010508, - "max": 0.306515, - "recall-0.025": 0.116667, - "recall-0.05": 0.813333, - "recall-0.1": 0.921667, + "mean": 0.046846, + "median": 0.034283, + "std": 0.041108, + "sem": 0.00168, + "min": 0.010455, + "max": 0.30709, + "recall-0.025": 0.121667, + "recall-0.05": 0.82, + "recall-0.1": 0.923333, "recall-0.15": 0.94, "recall-0.25": 0.996667, "recall-0.5": 1.0, "num_labels": 600 }, "ankle_left": { - "count": 597, - "mean": 0.091182, - "median": 0.082607, - "std": 0.042222, - "sem": 0.001729, - "min": 0.047413, - "max": 0.496033, + "count": 598, + "mean": 0.091286, + "median": 0.0826, + "std": 0.040637, + "sem": 0.001663, + "min": 0.047469, + "max": 0.482805, "recall-0.025": 0.0, "recall-0.05": 0.003333, "recall-0.1": 0.868333, "recall-0.15": 0.936667, - "recall-0.25": 0.985, - "recall-0.5": 0.995, + "recall-0.25": 0.988333, + "recall-0.5": 0.996667, "num_labels": 600 }, "ankle_right": { "count": 599, - "mean": 0.080985, - "median": 0.066827, - "std": 0.049871, - "sem": 0.002039, - "min": 0.03166, - "max": 0.394442, + "mean": 0.080017, + "median": 0.066851, + "std": 0.04699, + "sem": 0.001922, + "min": 0.02973, + "max": 0.386174, "recall-0.025": 0.0, "recall-0.05": 0.031667, "recall-0.1": 0.898333, "recall-0.15": 0.916667, - "recall-0.25": 0.973333, + "recall-0.25": 0.976667, "recall-0.5": 0.998333, "num_labels": 600 }, "joint_recalls": { "num_labels": 7800, - "recall-0.025": 0.19026, - "recall-0.05": 0.50692, - "recall-0.1": 0.87859, - "recall-0.15": 0.93372, - "recall-0.25": 0.99333, - "recall-0.5": 0.9991 + "recall-0.025": 0.19269, + "recall-0.05": 0.51026, + "recall-0.1": 0.87923, + "recall-0.15": 0.93462, + "recall-0.25": 0.99385, + "recall-0.5": 0.99923 } } { "total_parts": 8400, - "correct_parts": 8122, - "pcp": 0.966905 + "correct_parts": 8128, + "pcp": 0.967619 } ``` @@ -294,26 +294,26 @@ Results of the model in various experiments on different datasets. \ ```json { - "img_loading": 0.042598, - "demosaicing": 0.000728448, - "avg_time_2d": 0.0148339, - "avg_time_3d": 0.000117913, - "fps": 63.7744 + "img_loading": 0.0424233, + "demosaicing": 0.000707093, + "avg_time_2d": 0.0148645, + "avg_time_3d": 0.000118507, + "fps": 63.7344 } { "triangulator_calls": 301, - "init_time": 2.94566e-06, - "undistort_time": 1.44382e-05, - "project_time": 2.17405e-06, - "match_time": 8.54757e-06, - "pairs_time": 4.47237e-06, - "pair_scoring_time": 2.70306e-05, - "grouping_time": 4.83738e-06, - "full_time": 2.72554e-05, - "merge_time": 1.0399e-05, - "post_time": 6.79547e-06, - "convert_time": 1.24645e-07, - "total_time": 0.000109261 + "init_time": 2.85759e-06, + "undistort_time": 1.44325e-05, + "project_time": 2.22079e-06, + "match_time": 8.5159e-06, + "pairs_time": 4.48548e-06, + "pair_scoring_time": 2.66844e-05, + "grouping_time": 4.66512e-06, + "full_time": 2.71001e-05, + "merge_time": 1.16277e-05, + "post_time": 6.86999e-06, + "convert_time": 1.24289e-07, + "total_time": 0.000109822 } { "person_nums": { @@ -332,12 +332,12 @@ Results of the model in various experiments on different datasets. \ }, "mpjpe": { "count": 477, - "mean": 0.048001, - "median": 0.042569, - "std": 0.014925, - "sem": 0.000684, - "min": 0.03012, - "max": 0.116311, + "mean": 0.048033, + "median": 0.042733, + "std": 0.014947, + "sem": 0.000685, + "min": 0.030195, + "max": 0.118375, "recall-0.025": 0.0, "recall-0.05": 0.70021, "recall-0.1": 0.983229, @@ -346,22 +346,22 @@ Results of the model in various experiments on different datasets. \ "recall-0.5": 1.0, "num_labels": 477, "ap-0.025": 0.0, - "ap-0.05": 0.389107, - "ap-0.1": 0.731078, - "ap-0.15": 0.74682, - "ap-0.25": 0.74682, - "ap-0.5": 0.74682 + "ap-0.05": 0.388387, + "ap-0.1": 0.728904, + "ap-0.15": 0.746165, + "ap-0.25": 0.746165, + "ap-0.5": 0.746165 }, "head": { "count": 477, - "mean": 0.054217, - "median": 0.050158, - "std": 0.024847, - "sem": 0.001139, - "min": 0.005598, - "max": 0.180564, - "recall-0.025": 0.081761, - "recall-0.05": 0.496855, + "mean": 0.054103, + "median": 0.050002, + "std": 0.024914, + "sem": 0.001142, + "min": 0.005111, + "max": 0.189881, + "recall-0.025": 0.083857, + "recall-0.05": 0.498952, "recall-0.1": 0.937107, "recall-0.15": 0.995807, "recall-0.25": 1.0, @@ -370,14 +370,14 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_left": { "count": 477, - "mean": 0.042429, - "median": 0.037021, - "std": 0.020584, - "sem": 0.000943, - "min": 0.004311, - "max": 0.136587, - "recall-0.025": 0.161426, - "recall-0.05": 0.727463, + "mean": 0.042381, + "median": 0.036815, + "std": 0.020658, + "sem": 0.000947, + "min": 0.004383, + "max": 0.136638, + "recall-0.025": 0.159329, + "recall-0.05": 0.733753, "recall-0.1": 0.985325, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -386,14 +386,14 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_right": { "count": 477, - "mean": 0.049623, - "median": 0.045796, - "std": 0.02312, - "sem": 0.00106, - "min": 0.005348, - "max": 0.147448, - "recall-0.025": 0.100629, - "recall-0.05": 0.561845, + "mean": 0.049767, + "median": 0.046023, + "std": 0.023191, + "sem": 0.001063, + "min": 0.005303, + "max": 0.148245, + "recall-0.025": 0.102725, + "recall-0.05": 0.553459, "recall-0.1": 0.955975, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -402,13 +402,13 @@ Results of the model in various experiments on different datasets. \ }, "elbow_left": { "count": 477, - "mean": 0.04078, - "median": 0.032063, - "std": 0.029273, - "sem": 0.001342, - "min": 0.003449, - "max": 0.326226, - "recall-0.025": 0.316562, + "mean": 0.040733, + "median": 0.032118, + "std": 0.029137, + "sem": 0.001336, + "min": 0.003472, + "max": 0.317898, + "recall-0.025": 0.314465, "recall-0.05": 0.756813, "recall-0.1": 0.953878, "recall-0.15": 0.997904, @@ -418,62 +418,62 @@ Results of the model in various experiments on different datasets. \ }, "elbow_right": { "count": 477, - "mean": 0.053274, - "median": 0.044357, - "std": 0.040895, - "sem": 0.001874, - "min": 0.003528, - "max": 0.244052, - "recall-0.025": 0.257862, + "mean": 0.053374, + "median": 0.04436, + "std": 0.041187, + "sem": 0.001888, + "min": 0.003346, + "max": 0.244557, + "recall-0.025": 0.253669, "recall-0.05": 0.561845, "recall-0.1": 0.901468, - "recall-0.15": 0.958071, + "recall-0.15": 0.955975, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 477 }, "wrist_left": { "count": 477, - "mean": 0.059994, - "median": 0.053953, - "std": 0.038609, - "sem": 0.00177, - "min": 0.002051, - "max": 0.322481, + "mean": 0.060176, + "median": 0.053848, + "std": 0.0399, + "sem": 0.001829, + "min": 0.001754, + "max": 0.323708, "recall-0.025": 0.132075, "recall-0.05": 0.404612, "recall-0.1": 0.907757, "recall-0.15": 0.960168, - "recall-0.25": 0.991614, + "recall-0.25": 0.989518, "recall-0.5": 1.0, "num_labels": 477 }, "wrist_right": { "count": 477, - "mean": 0.059427, - "median": 0.054405, - "std": 0.034224, - "sem": 0.001569, - "min": 0.009618, - "max": 0.371666, - "recall-0.025": 0.113208, - "recall-0.05": 0.415094, - "recall-0.1": 0.899371, - "recall-0.15": 0.979036, + "mean": 0.059361, + "median": 0.055175, + "std": 0.033884, + "sem": 0.001553, + "min": 0.008828, + "max": 0.397712, + "recall-0.025": 0.115304, + "recall-0.05": 0.417191, + "recall-0.1": 0.897275, + "recall-0.15": 0.983229, "recall-0.25": 0.997904, "recall-0.5": 1.0, "num_labels": 477 }, "hip_left": { "count": 477, - "mean": 0.048028, - "median": 0.042252, - "std": 0.026459, - "sem": 0.001213, - "min": 0.006475, - "max": 0.145904, - "recall-0.025": 0.190776, - "recall-0.05": 0.618449, + "mean": 0.048156, + "median": 0.042413, + "std": 0.026697, + "sem": 0.001224, + "min": 0.006344, + "max": 0.145946, + "recall-0.025": 0.178197, + "recall-0.05": 0.620545, "recall-0.1": 0.951782, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -482,14 +482,14 @@ Results of the model in various experiments on different datasets. \ }, "hip_right": { "count": 477, - "mean": 0.058447, - "median": 0.05753, - "std": 0.0237, - "sem": 0.001086, - "min": 0.005137, - "max": 0.132317, - "recall-0.025": 0.098532, - "recall-0.05": 0.39413, + "mean": 0.058574, + "median": 0.057474, + "std": 0.023713, + "sem": 0.001087, + "min": 0.006138, + "max": 0.132298, + "recall-0.025": 0.100629, + "recall-0.05": 0.356394, "recall-0.1": 0.945493, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -498,14 +498,14 @@ Results of the model in various experiments on different datasets. \ }, "knee_left": { "count": 477, - "mean": 0.040484, - "median": 0.038079, - "std": 0.024499, - "sem": 0.001123, - "min": 0.004927, - "max": 0.190068, - "recall-0.025": 0.257862, - "recall-0.05": 0.748428, + "mean": 0.040531, + "median": 0.037938, + "std": 0.024607, + "sem": 0.001128, + "min": 0.00514, + "max": 0.190129, + "recall-0.025": 0.255765, + "recall-0.05": 0.750524, "recall-0.1": 0.972746, "recall-0.15": 0.989518, "recall-0.25": 1.0, @@ -514,14 +514,14 @@ Results of the model in various experiments on different datasets. \ }, "knee_right": { "count": 477, - "mean": 0.040167, - "median": 0.036232, - "std": 0.023115, - "sem": 0.001059, - "min": 0.00733, - "max": 0.184932, - "recall-0.025": 0.310273, - "recall-0.05": 0.708595, + "mean": 0.040093, + "median": 0.036127, + "std": 0.023149, + "sem": 0.001061, + "min": 0.00727, + "max": 0.185049, + "recall-0.025": 0.308176, + "recall-0.05": 0.710692, "recall-0.1": 0.976939, "recall-0.15": 0.997904, "recall-0.25": 1.0, @@ -530,15 +530,15 @@ Results of the model in various experiments on different datasets. \ }, "ankle_left": { "count": 477, - "mean": 0.036403, - "median": 0.028172, - "std": 0.03066, - "sem": 0.001405, - "min": 0.004789, - "max": 0.223748, - "recall-0.025": 0.433962, + "mean": 0.03635, + "median": 0.028051, + "std": 0.030627, + "sem": 0.001404, + "min": 0.004936, + "max": 0.223785, + "recall-0.025": 0.431866, "recall-0.05": 0.81761, - "recall-0.1": 0.947589, + "recall-0.1": 0.945493, "recall-0.15": 0.983229, "recall-0.25": 1.0, "recall-0.5": 1.0, @@ -546,12 +546,12 @@ Results of the model in various experiments on different datasets. \ }, "ankle_right": { "count": 477, - "mean": 0.040745, - "median": 0.030898, - "std": 0.03726, - "sem": 0.001708, - "min": 0.003323, - "max": 0.270118, + "mean": 0.040826, + "median": 0.030921, + "std": 0.03751, + "sem": 0.001719, + "min": 0.00301, + "max": 0.288243, "recall-0.025": 0.301887, "recall-0.05": 0.805031, "recall-0.1": 0.930818, @@ -562,18 +562,18 @@ Results of the model in various experiments on different datasets. \ }, "joint_recalls": { "num_labels": 6201, - "recall-0.025": 0.21142, - "recall-0.05": 0.61538, + "recall-0.025": 0.20932, + "recall-0.05": 0.61313, "recall-0.1": 0.94275, - "recall-0.15": 0.98645, + "recall-0.15": 0.98678, "recall-0.25": 0.99871, "recall-0.5": 1.0 } } { "total_parts": 6678, - "correct_parts": 6619, - "pcp": 0.991165 + "correct_parts": 6620, + "pcp": 0.991315 } ``` @@ -1091,26 +1091,26 @@ Results of the model in various experiments on different datasets. \ ```json { - "img_loading": 0.0482825, - "demosaicing": 0.00104159, - "avg_time_2d": 0.0167446, - "avg_time_3d": 0.000146181, - "fps": 55.765 + "img_loading": 0.0469234, + "demosaicing": 0.00104152, + "avg_time_2d": 0.0167011, + "avg_time_3d": 0.000146036, + "fps": 55.9013 } { "triangulator_calls": 420, - "init_time": 3.17105e-06, - "undistort_time": 1.647e-05, - "project_time": 2.89848e-06, - "match_time": 1.27852e-05, - "pairs_time": 9.45822e-06, - "pair_scoring_time": 3.475e-05, - "grouping_time": 6.01286e-06, - "full_time": 3.0067e-05, - "merge_time": 1.21614e-05, - "post_time": 7.53575e-06, - "convert_time": 1.57498e-07, - "total_time": 0.000135705 + "init_time": 2.97937e-06, + "undistort_time": 1.63641e-05, + "project_time": 2.85499e-06, + "match_time": 1.26216e-05, + "pairs_time": 9.3965e-06, + "pair_scoring_time": 3.47372e-05, + "grouping_time": 5.82066e-06, + "full_time": 2.98699e-05, + "merge_time": 1.3583e-05, + "post_time": 7.56396e-06, + "convert_time": 1.56833e-07, + "total_time": 0.000136184 } { "person_nums": { @@ -1129,36 +1129,36 @@ Results of the model in various experiments on different datasets. \ }, "mpjpe": { "count": 1462, - "mean": 0.03241, - "median": 0.029552, - "std": 0.014503, - "sem": 0.000379, - "min": 0.010083, - "max": 0.135322, - "recall-0.025": 0.332196, - "recall-0.05": 0.899727, + "mean": 0.031793, + "median": 0.029086, + "std": 0.014062, + "sem": 0.000368, + "min": 0.009935, + "max": 0.125083, + "recall-0.025": 0.341064, + "recall-0.05": 0.908595, "recall-0.1": 0.99045, "recall-0.15": 0.997271, "recall-0.25": 0.997271, "recall-0.5": 0.997271, "num_labels": 1466, - "ap-0.025": 0.175423, - "ap-0.05": 0.864307, - "ap-0.1": 0.979557, - "ap-0.15": 0.990326, - "ap-0.25": 0.990326, - "ap-0.5": 0.990326 + "ap-0.025": 0.184449, + "ap-0.05": 0.876096, + "ap-0.1": 0.980171, + "ap-0.15": 0.990745, + "ap-0.25": 0.990745, + "ap-0.5": 0.990745 }, "nose": { "count": 1461, - "mean": 0.01565, - "median": 0.011647, - "std": 0.017829, + "mean": 0.015309, + "median": 0.011501, + "std": 0.01786, "sem": 0.000467, - "min": 0.001492, - "max": 0.276077, - "recall-0.025": 0.900889, - "recall-0.05": 0.96514, + "min": 0.001495, + "max": 0.276078, + "recall-0.025": 0.903623, + "recall-0.05": 0.966507, "recall-0.1": 0.993848, "recall-0.15": 0.995899, "recall-0.25": 0.996582, @@ -1167,14 +1167,14 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_left": { "count": 1462, - "mean": 0.016889, - "median": 0.014843, - "std": 0.011063, - "sem": 0.000289, - "min": 0.001415, + "mean": 0.016713, + "median": 0.014783, + "std": 0.010849, + "sem": 0.000284, + "min": 0.001451, "max": 0.104098, - "recall-0.025": 0.834243, - "recall-0.05": 0.981583, + "recall-0.025": 0.843111, + "recall-0.05": 0.982265, "recall-0.1": 0.996589, "recall-0.15": 0.997271, "recall-0.25": 0.997271, @@ -1183,14 +1183,14 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_right": { "count": 1461, - "mean": 0.016726, - "median": 0.01455, - "std": 0.011377, - "sem": 0.000298, - "min": 0.001187, + "mean": 0.0166, + "median": 0.014388, + "std": 0.011258, + "sem": 0.000295, + "min": 0.00119, "max": 0.147753, - "recall-0.025": 0.834812, - "recall-0.05": 0.982253, + "recall-0.025": 0.835495, + "recall-0.05": 0.985666, "recall-0.1": 0.996587, "recall-0.15": 0.99727, "recall-0.25": 0.99727, @@ -1199,15 +1199,15 @@ Results of the model in various experiments on different datasets. \ }, "elbow_left": { "count": 1461, - "mean": 0.022496, - "median": 0.016596, - "std": 0.019906, - "sem": 0.000521, - "min": 0.000301, - "max": 0.210434, - "recall-0.025": 0.736519, - "recall-0.05": 0.916724, - "recall-0.1": 0.988396, + "mean": 0.022007, + "median": 0.016468, + "std": 0.019558, + "sem": 0.000512, + "min": 0.000766, + "max": 0.231621, + "recall-0.025": 0.74471, + "recall-0.05": 0.917406, + "recall-0.1": 0.989078, "recall-0.15": 0.995904, "recall-0.25": 0.99727, "recall-0.5": 0.99727, @@ -1215,14 +1215,14 @@ Results of the model in various experiments on different datasets. \ }, "elbow_right": { "count": 1461, - "mean": 0.021041, - "median": 0.015958, - "std": 0.016596, - "sem": 0.000434, - "min": 0.001491, + "mean": 0.020631, + "median": 0.015763, + "std": 0.016009, + "sem": 0.000419, + "min": 0.001514, "max": 0.161231, - "recall-0.025": 0.784005, - "recall-0.05": 0.926179, + "recall-0.025": 0.794258, + "recall-0.05": 0.935065, "recall-0.1": 0.997266, "recall-0.15": 0.997949, "recall-0.25": 0.998633, @@ -1231,47 +1231,47 @@ Results of the model in various experiments on different datasets. \ }, "wrist_left": { "count": 1432, - "mean": 0.036116, - "median": 0.016728, - "std": 0.055658, - "sem": 0.001471, - "min": 0.0012, - "max": 0.448766, - "recall-0.025": 0.672245, - "recall-0.05": 0.844491, - "recall-0.1": 0.907252, - "recall-0.15": 0.953278, - "recall-0.25": 0.974895, + "mean": 0.03502, + "median": 0.016617, + "std": 0.05351, + "sem": 0.001415, + "min": 0.000678, + "max": 0.450267, + "recall-0.025": 0.680614, + "recall-0.05": 0.843794, + "recall-0.1": 0.914226, + "recall-0.15": 0.956067, + "recall-0.25": 0.97629, "recall-0.5": 0.998605, "num_labels": 1434 }, "wrist_right": { "count": 1455, - "mean": 0.027038, - "median": 0.016832, - "std": 0.034034, - "sem": 0.000893, - "min": 0.001304, - "max": 0.280711, - "recall-0.025": 0.688874, - "recall-0.05": 0.885989, - "recall-0.1": 0.966346, - "recall-0.15": 0.980082, - "recall-0.25": 0.996566, + "mean": 0.026332, + "median": 0.016539, + "std": 0.032321, + "sem": 0.000848, + "min": 0.001381, + "max": 0.280031, + "recall-0.025": 0.697802, + "recall-0.05": 0.889423, + "recall-0.1": 0.969093, + "recall-0.15": 0.982143, + "recall-0.25": 0.99794, "recall-0.5": 0.999313, "num_labels": 1456 }, "hip_left": { "count": 1461, - "mean": 0.035007, - "median": 0.03159, - "std": 0.019639, - "sem": 0.000514, - "min": 0.002545, - "max": 0.180896, - "recall-0.025": 0.32901, - "recall-0.05": 0.840273, - "recall-0.1": 0.988396, + "mean": 0.034996, + "median": 0.031238, + "std": 0.02016, + "sem": 0.000528, + "min": 0.002441, + "max": 0.195158, + "recall-0.025": 0.339932, + "recall-0.05": 0.830034, + "recall-0.1": 0.985666, "recall-0.15": 0.995904, "recall-0.25": 0.99727, "recall-0.5": 0.99727, @@ -1279,98 +1279,98 @@ Results of the model in various experiments on different datasets. \ }, "hip_right": { "count": 1462, - "mean": 0.037709, - "median": 0.033372, - "std": 0.024133, - "sem": 0.000631, - "min": 0.003302, + "mean": 0.037438, + "median": 0.032873, + "std": 0.023989, + "sem": 0.000628, + "min": 0.003165, "max": 0.27157, - "recall-0.025": 0.313779, - "recall-0.05": 0.803547, + "recall-0.025": 0.316508, + "recall-0.05": 0.806276, "recall-0.1": 0.974079, "recall-0.15": 0.993861, - "recall-0.25": 0.995907, + "recall-0.25": 0.996589, "recall-0.5": 0.997271, "num_labels": 1466 }, "knee_left": { "count": 1461, - "mean": 0.038958, - "median": 0.032966, - "std": 0.034439, - "sem": 0.000901, - "min": 0.004262, - "max": 0.47418, - "recall-0.025": 0.280546, - "recall-0.05": 0.802048, - "recall-0.1": 0.978157, - "recall-0.15": 0.9843, - "recall-0.25": 0.990444, + "mean": 0.038669, + "median": 0.033137, + "std": 0.033745, + "sem": 0.000883, + "min": 0.004169, + "max": 0.487492, + "recall-0.025": 0.286689, + "recall-0.05": 0.804096, + "recall-0.1": 0.977474, + "recall-0.15": 0.984983, + "recall-0.25": 0.991126, "recall-0.5": 0.99727, "num_labels": 1465 }, "knee_right": { "count": 1455, - "mean": 0.038194, - "median": 0.031821, - "std": 0.025272, - "sem": 0.000663, - "min": 0.004062, - "max": 0.226151, - "recall-0.025": 0.352981, - "recall-0.05": 0.755997, + "mean": 0.038401, + "median": 0.031303, + "std": 0.027393, + "sem": 0.000718, + "min": 0.004215, + "max": 0.371875, + "recall-0.025": 0.352296, + "recall-0.05": 0.755312, "recall-0.1": 0.966415, - "recall-0.15": 0.993831, - "recall-0.25": 0.997258, + "recall-0.15": 0.992461, + "recall-0.25": 0.995888, "recall-0.5": 0.997258, "num_labels": 1459 }, "ankle_left": { - "count": 1458, - "mean": 0.056218, - "median": 0.033814, - "std": 0.062192, - "sem": 0.001629, - "min": 0.002519, - "max": 0.432285, - "recall-0.025": 0.350649, - "recall-0.05": 0.669856, - "recall-0.1": 0.851675, - "recall-0.15": 0.914559, - "recall-0.25": 0.971292, - "recall-0.5": 0.996582, + "count": 1459, + "mean": 0.054133, + "median": 0.033108, + "std": 0.060269, + "sem": 0.001578, + "min": 0.001995, + "max": 0.44695, + "recall-0.025": 0.354067, + "recall-0.05": 0.683527, + "recall-0.1": 0.867396, + "recall-0.15": 0.920027, + "recall-0.25": 0.97676, + "recall-0.5": 0.997266, "num_labels": 1463 }, "ankle_right": { - "count": 1445, - "mean": 0.053677, - "median": 0.031035, - "std": 0.067345, - "sem": 0.001772, - "min": 0.001539, - "max": 0.490198, - "recall-0.025": 0.382192, - "recall-0.05": 0.738356, - "recall-0.1": 0.853425, - "recall-0.15": 0.905479, - "recall-0.25": 0.962329, - "recall-0.5": 0.989726, + "count": 1446, + "mean": 0.051927, + "median": 0.030794, + "std": 0.064938, + "sem": 0.001708, + "min": 0.001857, + "max": 0.493842, + "recall-0.025": 0.386301, + "recall-0.05": 0.742466, + "recall-0.1": 0.871233, + "recall-0.15": 0.910274, + "recall-0.25": 0.961644, + "recall-0.5": 0.990411, "num_labels": 1460 }, "joint_recalls": { "num_labels": 18990, - "recall-0.025": 0.57341, - "recall-0.05": 0.85445, - "recall-0.1": 0.95808, - "recall-0.15": 0.97694, - "recall-0.25": 0.98999, - "recall-0.5": 0.99674 + "recall-0.025": 0.57925, + "recall-0.05": 0.85692, + "recall-0.1": 0.96114, + "recall-0.15": 0.97825, + "recall-0.25": 0.99052, + "recall-0.5": 0.99695 } } { "total_parts": 20444, - "correct_parts": 20199, - "pcp": 0.988016 + "correct_parts": 20215, + "pcp": 0.988799 } ``` @@ -5325,26 +5325,26 @@ Results of the model in various experiments on different datasets. \ ```json { - "img_loading": 0.280666, - "demosaicing": 0.0112621, - "avg_time_2d": 0.023852, - "avg_time_3d": 0.000235742, - "fps": 28.2886 + "img_loading": 0.278237, + "demosaicing": 0.0110612, + "avg_time_2d": 0.0240154, + "avg_time_3d": 0.000242046, + "fps": 28.3137 } { "triangulator_calls": 121, - "init_time": 3.87942e-06, - "undistort_time": 1.88965e-05, - "project_time": 3.84835e-06, - "match_time": 1.2984e-05, - "pairs_time": 1.01412e-05, - "pair_scoring_time": 6.05492e-05, - "grouping_time": 1.17203e-05, - "full_time": 7.05481e-05, - "merge_time": 2.97129e-05, - "post_time": 7.14949e-06, - "convert_time": 1.34868e-07, - "total_time": 0.000229801 + "init_time": 3.4108e-06, + "undistort_time": 1.9004e-05, + "project_time": 3.96777e-06, + "match_time": 1.33092e-05, + "pairs_time": 1.08128e-05, + "pair_scoring_time": 6.1806e-05, + "grouping_time": 1.16601e-05, + "full_time": 7.14101e-05, + "merge_time": 3.26368e-05, + "post_time": 7.33497e-06, + "convert_time": 1.39355e-07, + "total_time": 0.00023573 } { "person_nums": { @@ -5363,21 +5363,21 @@ Results of the model in various experiments on different datasets. \ }, "mpjpe": { "count": 363, - "mean": 0.025726, - "median": 0.024997, - "std": 0.00724, - "sem": 0.000381, - "min": 0.011774, - "max": 0.052562, - "recall-0.025": 0.501377, + "mean": 0.025709, + "median": 0.024834, + "std": 0.007209, + "sem": 0.000379, + "min": 0.011746, + "max": 0.051988, + "recall-0.025": 0.515152, "recall-0.05": 0.997245, "recall-0.1": 1.0, "recall-0.15": 1.0, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 363, - "ap-0.025": 0.271699, - "ap-0.05": 0.996479, + "ap-0.025": 0.282931, + "ap-0.05": 0.996426, "ap-0.1": 1.0, "ap-0.15": 1.0, "ap-0.25": 1.0, @@ -5385,14 +5385,14 @@ Results of the model in various experiments on different datasets. \ }, "head": { "count": 363, - "mean": 0.027328, - "median": 0.022736, - "std": 0.01683, - "sem": 0.000885, - "min": 0.00115, - "max": 0.085467, + "mean": 0.027303, + "median": 0.023105, + "std": 0.016677, + "sem": 0.000877, + "min": 0.001375, + "max": 0.086144, "recall-0.025": 0.573003, - "recall-0.05": 0.895317, + "recall-0.05": 0.900826, "recall-0.1": 1.0, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5401,30 +5401,30 @@ Results of the model in various experiments on different datasets. \ }, "shoulder_left": { "count": 363, - "mean": 0.027044, - "median": 0.021957, - "std": 0.02084, - "sem": 0.001095, - "min": 0.002793, - "max": 0.149897, - "recall-0.025": 0.589532, - "recall-0.05": 0.887052, + "mean": 0.027108, + "median": 0.022, + "std": 0.020752, + "sem": 0.001091, + "min": 0.002767, + "max": 0.150529, + "recall-0.025": 0.592287, + "recall-0.05": 0.892562, "recall-0.1": 0.986226, - "recall-0.15": 1.0, + "recall-0.15": 0.997245, "recall-0.25": 1.0, "recall-0.5": 1.0, "num_labels": 363 }, "shoulder_right": { "count": 363, - "mean": 0.022957, - "median": 0.020511, - "std": 0.012804, - "sem": 0.000673, - "min": 0.003064, - "max": 0.101875, - "recall-0.025": 0.628099, - "recall-0.05": 0.961433, + "mean": 0.02312, + "median": 0.020238, + "std": 0.012706, + "sem": 0.000668, + "min": 0.002849, + "max": 0.10193, + "recall-0.025": 0.62259, + "recall-0.05": 0.966942, "recall-0.1": 0.997245, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5433,13 +5433,13 @@ Results of the model in various experiments on different datasets. \ }, "elbow_left": { "count": 363, - "mean": 0.022517, - "median": 0.019538, - "std": 0.015673, - "sem": 0.000824, - "min": 0.001254, - "max": 0.207405, - "recall-0.025": 0.680441, + "mean": 0.022561, + "median": 0.019468, + "std": 0.015633, + "sem": 0.000822, + "min": 0.001582, + "max": 0.207353, + "recall-0.025": 0.68595, "recall-0.05": 0.961433, "recall-0.1": 0.997245, "recall-0.15": 0.997245, @@ -5449,14 +5449,14 @@ Results of the model in various experiments on different datasets. \ }, "elbow_right": { "count": 363, - "mean": 0.018557, - "median": 0.016702, - "std": 0.010298, - "sem": 0.000541, - "min": 0.002522, - "max": 0.082821, + "mean": 0.018544, + "median": 0.016655, + "std": 0.010242, + "sem": 0.000538, + "min": 0.002603, + "max": 0.082689, "recall-0.025": 0.807163, - "recall-0.05": 0.991736, + "recall-0.05": 0.988981, "recall-0.1": 1.0, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5465,14 +5465,14 @@ Results of the model in various experiments on different datasets. \ }, "wrist_left": { "count": 363, - "mean": 0.023647, - "median": 0.018944, - "std": 0.018362, - "sem": 0.000965, - "min": 0.002721, - "max": 0.199952, - "recall-0.025": 0.68595, - "recall-0.05": 0.928375, + "mean": 0.023435, + "median": 0.018811, + "std": 0.018148, + "sem": 0.000954, + "min": 0.0023, + "max": 0.200226, + "recall-0.025": 0.688705, + "recall-0.05": 0.933884, "recall-0.1": 0.991736, "recall-0.15": 0.997245, "recall-0.25": 1.0, @@ -5481,14 +5481,14 @@ Results of the model in various experiments on different datasets. \ }, "wrist_right": { "count": 363, - "mean": 0.019782, - "median": 0.017758, - "std": 0.011189, - "sem": 0.000588, - "min": 0.001634, - "max": 0.076393, - "recall-0.025": 0.757576, - "recall-0.05": 0.975207, + "mean": 0.019636, + "median": 0.017778, + "std": 0.011098, + "sem": 0.000583, + "min": 0.003242, + "max": 0.077536, + "recall-0.025": 0.76584, + "recall-0.05": 0.980716, "recall-0.1": 1.0, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5497,14 +5497,14 @@ Results of the model in various experiments on different datasets. \ }, "hip_left": { "count": 363, - "mean": 0.031192, - "median": 0.026563, - "std": 0.017009, - "sem": 0.000894, - "min": 0.005051, - "max": 0.116967, - "recall-0.025": 0.438017, - "recall-0.05": 0.848485, + "mean": 0.031051, + "median": 0.026439, + "std": 0.016983, + "sem": 0.000893, + "min": 0.005104, + "max": 0.117092, + "recall-0.025": 0.446281, + "recall-0.05": 0.853994, "recall-0.1": 0.997245, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5513,14 +5513,14 @@ Results of the model in various experiments on different datasets. \ }, "hip_right": { "count": 363, - "mean": 0.031175, - "median": 0.028448, - "std": 0.017051, - "sem": 0.000896, - "min": 0.003029, - "max": 0.138279, - "recall-0.025": 0.371901, - "recall-0.05": 0.900826, + "mean": 0.031582, + "median": 0.028644, + "std": 0.017376, + "sem": 0.000913, + "min": 0.003061, + "max": 0.138503, + "recall-0.025": 0.366391, + "recall-0.05": 0.892562, "recall-0.1": 0.991736, "recall-0.15": 1.0, "recall-0.25": 1.0, @@ -5529,15 +5529,15 @@ Results of the model in various experiments on different datasets. \ }, "knee_left": { "count": 363, - "mean": 0.028398, - "median": 0.020711, - "std": 0.023128, - "sem": 0.001216, - "min": 0.001921, - "max": 0.12193, - "recall-0.025": 0.633609, - "recall-0.05": 0.856749, - "recall-0.1": 0.977961, + "mean": 0.028515, + "median": 0.021075, + "std": 0.023189, + "sem": 0.001219, + "min": 0.00224, + "max": 0.123462, + "recall-0.025": 0.61708, + "recall-0.05": 0.853994, + "recall-0.1": 0.972452, "recall-0.15": 1.0, "recall-0.25": 1.0, "recall-0.5": 1.0, @@ -5545,13 +5545,13 @@ Results of the model in various experiments on different datasets. \ }, "knee_right": { "count": 363, - "mean": 0.023753, - "median": 0.020598, - "std": 0.013656, - "sem": 0.000718, - "min": 0.002869, - "max": 0.067651, - "recall-0.025": 0.595041, + "mean": 0.023905, + "median": 0.020469, + "std": 0.013552, + "sem": 0.000712, + "min": 0.00231, + "max": 0.067798, + "recall-0.025": 0.586777, "recall-0.05": 0.939394, "recall-0.1": 1.0, "recall-0.15": 1.0, @@ -5561,14 +5561,14 @@ Results of the model in various experiments on different datasets. \ }, "ankle_left": { "count": 363, - "mean": 0.028378, - "median": 0.022211, - "std": 0.022536, - "sem": 0.001184, - "min": 0.002738, - "max": 0.179868, - "recall-0.025": 0.570248, - "recall-0.05": 0.895317, + "mean": 0.028076, + "median": 0.022154, + "std": 0.022505, + "sem": 0.001183, + "min": 0.002848, + "max": 0.178544, + "recall-0.025": 0.575758, + "recall-0.05": 0.900826, "recall-0.1": 0.980716, "recall-0.15": 0.99449, "recall-0.25": 1.0, @@ -5577,15 +5577,15 @@ Results of the model in various experiments on different datasets. \ }, "ankle_right": { "count": 363, - "mean": 0.029714, - "median": 0.022134, - "std": 0.026933, + "mean": 0.029383, + "median": 0.022253, + "std": 0.026946, "sem": 0.001416, - "min": 0.003345, - "max": 0.265506, + "min": 0.003171, + "max": 0.279154, "recall-0.025": 0.573003, - "recall-0.05": 0.865014, - "recall-0.1": 0.969697, + "recall-0.05": 0.870523, + "recall-0.1": 0.975207, "recall-0.15": 0.99449, "recall-0.25": 0.997245, "recall-0.5": 1.0, @@ -5593,10 +5593,10 @@ Results of the model in various experiments on different datasets. \ }, "joint_recalls": { "num_labels": 4719, - "recall-0.025": 0.60733, - "recall-0.05": 0.91524, - "recall-0.1": 0.99046, - "recall-0.15": 0.99788, + "recall-0.025": 0.60691, + "recall-0.05": 0.91651, + "recall-0.1": 0.99068, + "recall-0.15": 0.99746, "recall-0.25": 0.99958, "recall-0.5": 1.0 } diff --git a/rpt/triangulator.cpp b/rpt/triangulator.cpp index 1d9b049..f60fbb9 100644 --- a/rpt/triangulator.cpp +++ b/rpt/triangulator.cpp @@ -1787,7 +1787,7 @@ std::vector> TriangulatorInternal::merge_group( // Merge poses to create initial pose // Use only those triangulations with a high score std::vector> sum_poses(num_joints, {0.0, 0.0, 0.0, 0.0}); - std::vector sum_mask1(num_joints, 0); + std::vector sum_mask1(num_joints, 0); for (size_t i = 0; i < num_poses; ++i) { const auto &pose = poses_3d[i]; @@ -1797,11 +1797,12 @@ std::vector> TriangulatorInternal::merge_group( float score = pose[j][3]; if (score > min_score) { - sum_poses[j][0] += pose[j][0]; - sum_poses[j][1] += pose[j][1]; - sum_poses[j][2] += pose[j][2]; - sum_poses[j][3] += score; - sum_mask1[j]++; + float weight = std::pow(score, 2); + sum_poses[j][0] += pose[j][0] * weight; + sum_poses[j][1] += pose[j][1] * weight; + sum_poses[j][2] += pose[j][2] * weight; + sum_poses[j][3] += score * weight; + sum_mask1[j] += weight; } } } @@ -1915,7 +1916,7 @@ std::vector> TriangulatorInternal::merge_group( // Compute the final pose std::vector> sum_poses2(num_joints, {0.0, 0.0, 0.0, 0.0}); - std::vector sum_mask2(num_joints, 0); + std::vector sum_mask2(num_joints, 0); for (size_t i = 0; i < num_poses; ++i) { const auto &pose = poses_3d[i]; @@ -1924,11 +1925,13 @@ std::vector> TriangulatorInternal::merge_group( { if (mask[i][j]) { - sum_poses2[j][0] += pose[j][0]; - sum_poses2[j][1] += pose[j][1]; - sum_poses2[j][2] += pose[j][2]; - sum_poses2[j][3] += pose[j][3]; - sum_mask2[j]++; + // Use an exponential weighting to give more importance to higher scores + float weight = std::pow(pose[j][3], 4); + sum_poses2[j][0] += pose[j][0] * weight; + sum_poses2[j][1] += pose[j][1] * weight; + sum_poses2[j][2] += pose[j][2] * weight; + sum_poses2[j][3] += pose[j][3] * weight; + sum_mask2[j] += weight; } } }