PaddleSeg
PaddleSeg copied to clipboard
语义分割指标OA计算问题
您好!我在使用PaddleViT设计自己的模型,对于实验的结果我遇到了一些问题,希望可以得到帮助。首先,因为PaddleViT和PaddleSeg计算评价指标的代码我都仔细看了,是一样的。可以查阅https://github.com/BRIDL/PaddleViT/blob/develop/semantic_segmentation/src/utils/metrics.py,
以下图片是我在数据集上的实验结果,框起来的是我用PaddleViT平台跑出来的实验结果。其余的FCN、PSPNet等模型是我自己的代码的结果。
OA和Miou的计算公式是:
按理说mIOU值大的OA也应该高才对,从我的实验结果在的确是mIOU达到了最高,但是OA的指标是最低的,这很明显有问题
问题1:paddleseg/utils/metrics.py中的函数:def class_measurement: --- mean_acc是不是论文中常见的OA指标?如果不是,应该怎样通过三个参数intersect_area, pred_area, label_area实现呢
问题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的情况?我想整合这两个评价指标。
在验证过程中调用评价指标函数
评价函数具体实现:通过混淆矩阵计算
感谢!万分感谢!我已经尝试了很久,还是未能解决该问题,希望能够得到帮助
- mean_acc是等同于OA
- PaddleSeg中计算的mIoU和mAcc方法等同于使用混淆矩阵计算
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.