diff --git a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/idf1.py b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/idf1.py index ea4c3ed62..7c165fd24 100644 --- a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/idf1.py +++ b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/idf1.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import math from collections import OrderedDict from pathlib import Path @@ -46,4 +47,11 @@ def metric(y_true, y_pred): summary = mh.compute_many(accs, names=names, metrics=metrics_name, generate_overall=True) logger.info('Completed') - return round(float(summary.iloc[-1][metrics_name]), 4) + value = float(summary.iloc[-1][metrics_name]) + if math.isnan(value) or math.isinf(value): + logger.warning( + "Metric '{}' returned {} (no valid detections?). Recording 0.0.", + metrics_name[0], value + ) + return 0.0 + return round(value, 4) diff --git a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/mota.py b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/mota.py index 86d2cc4f8..102c8dc51 100644 --- a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/mota.py +++ b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/mota.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import math from collections import OrderedDict from pathlib import Path @@ -46,4 +47,11 @@ def metric(y_true, y_pred): summary = mh.compute_many(accs, names=names, metrics=metrics_name, generate_overall=True) logger.info('Completed') - return round(float(summary.iloc[-1][metrics_name]), 4) + value = float(summary.iloc[-1][metrics_name]) + if math.isnan(value) or math.isinf(value): + logger.warning( + "Metric '{}' returned {} (no valid detections?). Recording 0.0.", + metrics_name[0], value + ) + return 0.0 + return round(value, 4) diff --git a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/motp.py b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/motp.py index e1b0e3aff..30111461d 100644 --- a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/motp.py +++ b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/motp.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import math from collections import OrderedDict from pathlib import Path @@ -46,4 +47,11 @@ def metric(y_true, y_pred): summary = mh.compute_many(accs, names=names, metrics=metrics_name, generate_overall=True) logger.info('Completed') - return round(float(summary.iloc[-1][metrics_name]), 4) + value = float(summary.iloc[-1][metrics_name]) + if math.isnan(value) or math.isinf(value): + logger.warning( + "Metric '{}' returned {} (no valid detections?). Recording 0.0.", + metrics_name[0], value + ) + return 0.0 + return round(value, 4) diff --git a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/precision.py b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/precision.py index 5718eddb8..9a72373d0 100644 --- a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/precision.py +++ b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/precision.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import math from collections import OrderedDict from pathlib import Path @@ -46,4 +47,11 @@ def metric(y_true, y_pred): summary = mh.compute_many(accs, names=names, metrics=metrics_name, generate_overall=True) logger.info('Completed') - return round(float(summary.iloc[-1][metrics_name]), 4) + value = float(summary.iloc[-1][metrics_name]) + if math.isnan(value) or math.isinf(value): + logger.warning( + "Metric '{}' returned {} (no valid detections?). Recording 0.0.", + metrics_name[0], value + ) + return 0.0 + return round(value, 4) diff --git a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/recall.py b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/recall.py index 97752bb24..1dea84b40 100644 --- a/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/recall.py +++ b/examples/MOT17/multiedge_inference_bench/pedestrian_tracking/testenv/tracking/recall.py @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +import math from collections import OrderedDict from pathlib import Path @@ -46,4 +47,11 @@ def metric(y_true, y_pred): summary = mh.compute_many(accs, names=names, metrics=metrics_name, generate_overall=True) logger.info('Completed') - return round(float(summary.iloc[-1][metrics_name]), 4) + value = float(summary.iloc[-1][metrics_name]) + if math.isnan(value) or math.isinf(value): + logger.warning( + "Metric '{}' returned {} (no valid detections?). Recording 0.0.", + metrics_name[0], value + ) + return 0.0 + return round(value, 4)