updates
This commit is contained in:
parent
9e60e97a6c
commit
8af70386e8
37
test.py
37
test.py
|
@ -37,7 +37,7 @@ def test(
|
||||||
# dataloader = torch.utils.data.DataLoader(LoadImagesAndLabels(test_path), batch_size=batch_size) # pytorch
|
# dataloader = torch.utils.data.DataLoader(LoadImagesAndLabels(test_path), batch_size=batch_size) # pytorch
|
||||||
dataloader = LoadImagesAndLabels(test_path, batch_size=batch_size, img_size=img_size)
|
dataloader = LoadImagesAndLabels(test_path, batch_size=batch_size, img_size=img_size)
|
||||||
|
|
||||||
mean_mAP, mean_R, mean_P = 0.0, 0.0, 0.0
|
mean_mAP, mean_R, mean_P, seen = 0.0, 0.0, 0.0, 0
|
||||||
print('%11s' * 5 % ('Image', 'Total', 'P', 'R', 'mAP'))
|
print('%11s' * 5 % ('Image', 'Total', 'P', 'R', 'mAP'))
|
||||||
outputs, mAPs, mR, mP, TP, confidence, pred_class, target_class = [], [], [], [], [], [], [], []
|
outputs, mAPs, mR, mP, TP, confidence, pred_class, target_class = [], [], [], [], [], [], [], []
|
||||||
AP_accum, AP_accum_count = np.zeros(nC), np.zeros(nC)
|
AP_accum, AP_accum_count = np.zeros(nC), np.zeros(nC)
|
||||||
|
@ -47,10 +47,10 @@ def test(
|
||||||
|
|
||||||
# Compute average precision for each sample
|
# Compute average precision for each sample
|
||||||
for sample_i, (labels, detections) in enumerate(zip(targets, output)):
|
for sample_i, (labels, detections) in enumerate(zip(targets, output)):
|
||||||
correct = []
|
seen += 1
|
||||||
|
|
||||||
if detections is None:
|
if detections is None:
|
||||||
# If there are no detections but there are labels mask as zero AP
|
# If there are labels but no detections mark as zero AP
|
||||||
if labels.size(0) != 0:
|
if labels.size(0) != 0:
|
||||||
mAPs.append(0), mR.append(0), mP.append(0)
|
mAPs.append(0), mR.append(0), mP.append(0)
|
||||||
continue
|
continue
|
||||||
|
@ -60,6 +60,7 @@ def test(
|
||||||
detections = detections[np.argsort(-detections[:, 4])]
|
detections = detections[np.argsort(-detections[:, 4])]
|
||||||
|
|
||||||
# If no labels add number of detections as incorrect
|
# If no labels add number of detections as incorrect
|
||||||
|
correct = []
|
||||||
if labels.size(0) == 0:
|
if labels.size(0) == 0:
|
||||||
# correct.extend([0 for _ in range(len(detections))])
|
# correct.extend([0 for _ in range(len(detections))])
|
||||||
mAPs.append(0), mR.append(0), mP.append(0)
|
mAPs.append(0), mR.append(0), mP.append(0)
|
||||||
|
@ -86,7 +87,9 @@ def test(
|
||||||
correct.append(0)
|
correct.append(0)
|
||||||
|
|
||||||
# Compute Average Precision (AP) per class
|
# Compute Average Precision (AP) per class
|
||||||
AP, AP_class, R, P = ap_per_class(tp=correct, conf=detections[:, 4], pred_cls=detections[:, 6],
|
AP, AP_class, R, P = ap_per_class(tp=correct,
|
||||||
|
conf=detections[:, 4],
|
||||||
|
pred_cls=detections[:, 6],
|
||||||
target_cls=target_cls)
|
target_cls=target_cls)
|
||||||
|
|
||||||
# Accumulate AP per class
|
# Accumulate AP per class
|
||||||
|
@ -104,7 +107,7 @@ def test(
|
||||||
mean_P = np.mean(mP)
|
mean_P = np.mean(mP)
|
||||||
|
|
||||||
# Print image mAP and running mean mAP
|
# Print image mAP and running mean mAP
|
||||||
print(('%11s%11s' + '%11.3g' * 3) % (len(mAPs), dataloader.nF, mean_P, mean_R, mean_mAP))
|
print(('%11s%11s' + '%11.3g' * 3) % (seen, dataloader.nF, mean_P, mean_R, mean_mAP))
|
||||||
|
|
||||||
# Print mAP per class
|
# Print mAP per class
|
||||||
print('%11s' * 5 % ('Image', 'Total', 'P', 'R', 'mAP') + '\n\nmAP Per Class:')
|
print('%11s' * 5 % ('Image', 'Total', 'P', 'R', 'mAP') + '\n\nmAP Per Class:')
|
||||||
|
@ -141,3 +144,27 @@ if __name__ == '__main__':
|
||||||
opt.conf_thres,
|
opt.conf_thres,
|
||||||
opt.nms_thres
|
opt.nms_thres
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Image Total P R mAP # YOLOv3 320
|
||||||
|
# 32 5000 0.66 0.597 0.591
|
||||||
|
# 64 5000 0.664 0.62 0.604
|
||||||
|
# 96 5000 0.653 0.627 0.614
|
||||||
|
# 128 5000 0.639 0.623 0.607
|
||||||
|
# 160 5000 0.642 0.63 0.616
|
||||||
|
# 192 5000 0.651 0.636 0.621
|
||||||
|
|
||||||
|
# Image Total P R mAP # YOLOv3 416
|
||||||
|
# 32 5000 0.635 0.581 0.57
|
||||||
|
# 64 5000 0.63 0.591 0.578
|
||||||
|
# 96 5000 0.661 0.632 0.622
|
||||||
|
# 128 5000 0.659 0.632 0.623
|
||||||
|
# 160 5000 0.665 0.64 0.633
|
||||||
|
# 192 5000 0.66 0.637 0.63
|
||||||
|
|
||||||
|
# Image Total P R mAP # YOLOv3 608
|
||||||
|
# 32 5000 0.653 0.606 0.591
|
||||||
|
# 64 5000 0.653 0.635 0.625
|
||||||
|
# 96 5000 0.655 0.642 0.633
|
||||||
|
# 128 5000 0.667 0.651 0.642
|
||||||
|
# 160 5000 0.663 0.645 0.637
|
||||||
|
# 192 5000 0.663 0.643 0.634
|
||||||
|
|
Loading…
Reference in New Issue