Fix confusion matrix update when no predictions are made (#8748)

* Fix confusion matrix update when no predictions are made

* Update metrics.py

* Simply confusion matrix changes

* Simply confusion matrix fix

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
pull/8782/head
jbutle55 2022-07-29 06:06:23 -06:00 committed by GitHub
parent 587a3a37c5
commit 567397d67a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -139,6 +139,12 @@ class ConfusionMatrix:
Returns:
None, updates confusion matrix accordingly
"""
if detections is None:
gt_classes = labels.int()
for i, gc in enumerate(gt_classes):
self.matrix[self.nc, gc] += 1 # background FN
return
detections = detections[detections[:, 4] > self.conf]
gt_classes = labels[:, 0].int()
detection_classes = detections[:, 5].int()

2
val.py
View File

@ -228,6 +228,8 @@ def run(
if npr == 0:
if nl:
stats.append((correct, *torch.zeros((2, 0), device=device), labels[:, 0]))
if plots:
confusion_matrix.process_batch(detections=None, labels=labels[:, 0])
continue
# Predictions