test_seg_eval.py 1.06 KB
Newer Older
dingchang's avatar
dingchang committed
1
# Copyright (c) OpenMMLab. All rights reserved.
2
3
4
5
import numpy as np
import pytest
import torch

zhangshilong's avatar
zhangshilong committed
6
from mmdet3d.evaluation.functional.seg_eval import seg_eval
7
8
9
10
11
12


def test_indoor_eval():
    if not torch.cuda.is_available():
        pytest.skip()
    seg_preds = [
13
        np.array([
14
            0, 0, 1, 0, 0, 2, 1, 3, 1, 2, 1, 0, 2, 2, 2, 2, 1, 3, 0, 3, 3, 4, 0
15
        ])
16
17
    ]
    gt_labels = [
18
        np.array([
19
            0, 0, 0, 4, 0, 0, 1, 1, 1, 4, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4
20
        ])
21
22
23
24
25
26
27
    ]

    label2cat = {
        0: 'car',
        1: 'bicycle',
        2: 'motorcycle',
        3: 'truck',
28
        4: 'unlabeled'
29
    }
30
    ret_value = seg_eval(gt_labels, seg_preds, label2cat, ignore_index=4)
31
32
33
34

    assert np.isclose(ret_value['car'], 0.428571429)
    assert np.isclose(ret_value['bicycle'], 0.428571429)
    assert np.isclose(ret_value['motorcycle'], 0.6666667)
xizaoqu's avatar
xizaoqu committed
35
    assert np.isclose(ret_value['truck'], 0.5)
36

xizaoqu's avatar
xizaoqu committed
37
38
39
    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)