PaddleSeg icon indicating copy to clipboard operation
PaddleSeg copied to clipboard

语义分割指标OA计算问题

Open peach-xiao opened this issue 2 years ago • 1 comments

您好!我在使用PaddleViT设计自己的模型,对于实验的结果我遇到了一些问题,希望可以得到帮助。首先,因为PaddleViT和PaddleSeg计算评价指标的代码我都仔细看了,是一样的。可以查阅https://github.com/BRIDL/PaddleViT/blob/develop/semantic_segmentation/src/utils/metrics.py,

以下图片是我在数据集上的实验结果,框起来的是我用PaddleViT平台跑出来的实验结果。其余的FCN、PSPNet等模型是我自己的代码的结果。

image

OA和Miou的计算公式是: image image

按理说mIOU值大的OA也应该高才对,从我的实验结果在的确是mIOU达到了最高,但是OA的指标是最低的,这很明显有问题

问题1:paddleseg/utils/metrics.py中的函数:def class_measurement: --- mean_acc是不是论文中常见的OA指标?如果不是,应该怎样通过三个参数intersect_area, pred_area, label_area实现呢

image

image

问题2:能简单解释一下是Paddle怎么计算评价指标的吗?代码显示mIOU, OA都没有根据混淆矩阵计算,而是使用的三个参数: intersect_area, pred_area, label_area进行计算,对应于混淆矩阵应该怎样理解这三个参数呢,如intersect_area就是混淆矩阵对角线素元素和np.diag(hist),其他的 hist.sum(axis=1) ,hist.sum(axis=0)又是怎么对应的呢?

问题3:以下是我在验证过程中使用的代码,是我的计算方式出问题了吗?上图中自己实现的一些模型FCN,PSPNet(没有使用paddle平台)等模型虽然mIOU的很低,但是mIOU相对较高?而我使用paddleViT运行的模型mIOU都达到了72.99,OA却只有85.73的情况?我想整合这两个评价指标。

在验证过程中调用评价指标函数 image

评价函数具体实现:通过混淆矩阵计算 image image image image

感谢!万分感谢!我已经尝试了很久,还是未能解决该问题,希望能够得到帮助

peach-xiao avatar Jun 27 '22 08:06 peach-xiao

  1. mean_acc是等同于OA
  2. PaddleSeg中计算的mIoU和mAcc方法等同于使用混淆矩阵计算

juncaipeng avatar Jun 27 '22 11:06 juncaipeng

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions.

github-actions[bot] avatar Dec 09 '22 17:12 github-actions[bot]