|
|
|
import numpy as np |
|
import pytest |
|
import torch |
|
|
|
from mmdet3d.evaluation.functional.seg_eval import seg_eval |
|
|
|
|
|
def test_indoor_eval(): |
|
if not torch.cuda.is_available(): |
|
pytest.skip() |
|
seg_preds = [ |
|
np.array([ |
|
0, 0, 1, 0, 0, 2, 1, 3, 1, 2, 1, 0, 2, 2, 2, 2, 1, 3, 0, 3, 3, 4, 0 |
|
]) |
|
] |
|
gt_labels = [ |
|
np.array([ |
|
0, 0, 0, 4, 0, 0, 1, 1, 1, 4, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4 |
|
]) |
|
] |
|
|
|
label2cat = { |
|
0: 'car', |
|
1: 'bicycle', |
|
2: 'motorcycle', |
|
3: 'truck', |
|
4: 'unlabeled' |
|
} |
|
ret_value = seg_eval(gt_labels, seg_preds, label2cat, ignore_index=4) |
|
|
|
assert np.isclose(ret_value['car'], 0.428571429) |
|
assert np.isclose(ret_value['bicycle'], 0.428571429) |
|
assert np.isclose(ret_value['motorcycle'], 0.6666667) |
|
assert np.isclose(ret_value['truck'], 0.5) |
|
|
|
assert np.isclose(ret_value['acc'], 0.65) |
|
assert np.isclose(ret_value['acc_cls'], 0.65) |
|
assert np.isclose(ret_value['miou'], 0.50595238) |
|
|