qinenergy/corda

Why does the class Train have 0 mIoU, What may could happen

Closed this issue · 2 comments

I download your pretrained model, and start demo
But I find train iou 0.0

(yy_corda) ailab@ailab:/media/ailab/data/yy/corda$ bash shells/eval_gta2city.sh
./checkpoint/gta
Found 500 val images
Evaluating, found 500 batches.
100 processed
200 processed
300 processed
400 processed
500 processed
class  0 road         IU 94.81
class  1 sidewalk     IU 62.18
class  2 building     IU 88.03
class  3 wall         IU 33.09
class  4 fence        IU 43.51
class  5 pole         IU 39.93
class  6 traffic_light IU 49.46
class  7 traffic_sign IU 54.68
class  8 vegetation   IU 88.01
class  9 terrain      IU 47.67
class 10 sky          IU 89.22
class 11 person       IU 68.22
class 12 rider        IU 39.21
class 13 car          IU 90.25
class 14 truck        IU 51.43
class 15 bus          IU 58.37
class 16 train        IU 0.00
class 17 motorcycle   IU 40.38
class 18 bicycle      IU 57.42
meanIOU: 0.5767768805758403

I train my model on it, and test eval_syn2city.py. Here are 3 classes Iou 0.0 because missing classed in source domain.
but I download pretrained model ,and run eval_gta2city.sh
still miss one class train.
So, I want to know why. Is it may train class didn't appear city datasets? So it's IOU is 0.

As reported in Table 3 of the paper, this is the expected behavior of our model (see the column of class train mIoU=0).
image

The difficulty on the class train comes from two sources:

  1. Some trains in Cityscapes dataset are actually tram (Example]. and there is no tram in the GTAV and SYNTHIA dataset. The appearance difference is larger because of the apperance difference between train and tram
  2. The train class is rare in both dataset, leading to class imbalance and training difficulty.

There have been some techniques able to improve on the train class adaptation quality, you can read them if you are interested:

  1. Our other work: Discussion on this issue in Section 5.1.
    Hoyer, L., Dai, D., Wang, Q., Chen, Y., & Van Gool, L. (2021). Improving semi-supervised and domain-adaptive semantic segmentation with self-supervised depth estimation. arXiv preprint arXiv:2108.12545.
  2. CBST, class-balanced training from Zou, Y., Yu, Z., Kumar, B. V. K., & Wang, J. (2018). Unsupervised domain adaptation for semantic segmentation via class-balanced self-training. In Proceedings of the European conference on computer vision (ECCV) (pp. 289-305).

As reported in Table 3 of the paper, this is the expected behavior of our model (see the column of class train mIoU=0). image

The difficulty on the class train comes from two sources:

  1. Some trains in Cityscapes dataset are actually tram (Example]. and there is no tram in the GTAV and SYNTHIA dataset. The appearance difference is larger because of the apperance difference between train and tram
  2. The train class is rare in both dataset, leading to class imbalance and training difficulty.

There have been some techniques able to improve on the train class adaptation quality, you can read them if you are interested:

  1. Our other work: Discussion on this issue in Section 5.1.
    Hoyer, L., Dai, D., Wang, Q., Chen, Y., & Van Gool, L. (2021). Improving semi-supervised and domain-adaptive semantic segmentation with self-supervised depth estimation. arXiv preprint arXiv:2108.12545.
  2. CBST, class-balanced training from Zou, Y., Yu, Z., Kumar, B. V. K., & Wang, J. (2018). Unsupervised domain adaptation for semantic segmentation via class-balanced self-training. In Proceedings of the European conference on computer vision (ECCV) (pp. 289-305).

thank you for your writing.I understand.
Really thank you !