点击蓝字
关注我们
AI TIME欢迎每一位AI爱好者的加入!
讲者简介
王子夫
KU Leuven四年级博士生,研究方向主要包括语义分割的优化和评估
Title
语义分割的细粒度评价指标
Content
内容简介
语义分割数据集通常表现出两种类型的不平衡:类别不平衡,其中一些类别出现的频率比其他类别高;以及大小不平衡,其中一些对象占有的像素比其他对象多。这导致传统的评价指标偏向于多数类(例如,overall pixel-wise accuracy)和大对象(例如,mean pixel-wise accuracy和per-dataset mean IoU)。为了解决这些缺点,我们提出使用细粒度的评价指标以及相应的最坏情况指标,从而为分割技术提供更全面的评估。这些细粒度指标对大对象的偏见较小,能提供更丰富的统计信息,并能为模型和数据集审计提供有价值的见解。此外,我们进行了一项广泛的基准研究。我们的基准研究强调了不应基于单个指标进行评估的必要性,并确认了细粒度的评价指标能减少对大对象的偏见。我们还发现了神经网络结构和损失函数对优化细粒度指标的关键作用。
论文链接
https://arxiv.org/pdf/2310.19252.pdf
代码链接
https://github.com/zifuwanggg/JDTLosse
现有的评价指标
语义分割是一个像素级别的分类任务,因此可以计算每个像素的准确率:overall pixel-wise accuracy(Acc)。但因为Acc会偏向于多数类,所以PASCAL VOC 2007采用了分别计算每个类别的像素准确率再取平均的评价指标:mean pixel-wise accuracy(mAcc)。但由于mAcc不会考虑假阳性,从PASCAL VOC 2008之后,就一直采用平均交并比(per-dataset mIoU, mIoUD)来作为评价指标。PASCAL VOC是最早的引入了语义分割任务的数据集,它使用的评价指标也因此被之后的各个数据集所广泛采用。
具体来说,交并比(IoU)可以写成:
为了计算mIoUD,我们首先需要对每一个类别c统计其在整个数据集上所有I张照片的true positive(真阳性,TP),false positive(假阳性,FP)和false negative(假阴性,FN):
有了每个类别的数值之后,我们按类别取平均,从而消除对多数类的偏好:
因为mIoUD把整个数据集上所有像素的TP,FP和FN合计在一起,它会不可避免的偏向于那些大的物体。在一些对安全要求较高的应用场景中,经常会存在一些很小但是很关键的物体,例如自动驾驶和医疗图像。如下图所示,不同照片上的汽车的大小有着明显的不同。因此,mIoUD对大物体的偏好会严重的影响其对模型安全性能的评估。
细粒度的评价指标
为了解决mIoUD的问题,我们提出细粒度的评价指标。这些指标在每张照片上分别计算IoU,从而能有效的降低对大物体的偏好。
mIoUI
对每一个类别c,我们在每一张照片i上分别计算一个IoU:
接着,对每一张照片i,我们把这张照片上出现过的所有类别进行平均:
最后,我们把所有照片的数值再进行平均:
mIoUC
类似的,在计算出每个类别c在每一张照片i上的IoU之后,我们可以把每一个类别c出现过的所有照片进行平均:
最后,把所有类别的数值再进行平均:
由于不是所有的类别都会出现在所有的照片上,所以对于一些类别和照片的组合,会出现NULL值,如下图所示。计算mIoUI时先对类别取平均再对照片取平均,而计算mIoUC时先对照片取平均再对类别取平均。这样的结果是mIoUI可能会偏向那些出现得很频繁的类别(例如下图的C1),而这一般是不好的。但另一方面,在计算mIoUI时,因为每张照片都有一个IoU数值,这能帮助我们对模型和数据集进行一些审计和分析。
最差情况的评价指标
对于一些很注重安全的应用场景,我们很多时候更关心的是最差情况的分割质量,而细粒度指标的一个好处就是能计算相应的最差情况指标。我们以mIoUC为例,类似的方法也可以计算mIoUI相应的最差情况指标。
对于每一个类别c,我们首先把其出现过的所有照片(假设有Ic个这样的照片)的IoU数值进行升序排序。接着,我们设q为一个很小的数字,例如1或者5。然后,我们仅用排序好的前Ic * q%张照片来计算最后的数值:
有了每个类c的数值之后,我们可以像之前那样按类别取平均,从而得到mIoUC的最差情况指标。
实验结果
我们在12个数据集上训练了15个模型,发现了如下的一些现象。
现象1:没有一个模型在所有的评价指标上都能取得最好的效果。每个评价指标都有着不同的侧重点,因此我们需要同时考虑多个评价指标来进行综合的评估。
现象2:一些数据集上存在部分照片使得几乎所有的模型都取得一个很低的IoU数值。这一方面是因为这些照片本身就很有挑战性,例如一些很小的物体和强烈的明暗对比,另一方面也是因为这些照片的标签存在问题。因此,细粒度的评价指标能帮助我们进行模型审计(发现模型会犯错的场景)和数据集审计(发现错误的标签)。
现象3:最差情况指标的数值远远低于相应的平均指标的数值。下表展示了DeepLabV3-ResNet101在多个数据集上的mIoUC和相应的最差情况指标的数值。一个值得考虑的问题是,我们应该如何设计网络结构和优化方法来提高模型在最差情况指标下的表现?
现象4:神经网络的结构对优化细粒度的评价指标有着至关重要的作用。一方面,由ASPP(被DeepLabV3和DeepLabV3+采用)等结构所带来的感受野的提升能帮助模型识别出大的物体,从而能有效提高mIoUD的数值;另一方面,encoder和decoder之间的长连接(被UNet和DeepLabV3+采用)能使模型识别出小的物体,从而提高细粒度评价指标的数值。
现象5:损失函数对优化细粒度的评价指标有着至关重要的作用。与Cross Entropy损失的基准相比,如下表的(0,0,0)所示,当评价指标变得细粒度,使用相应的损失函数能极大的提升模型在细粒度评价指标上的性能。例如,在ADE20K上,JML [1]和Cross Entropy损失的mIoUC的差别会大于7%。
参考文献
[1] Zifu Wang, Xuefei Ning, Matthew B. Blaschko. Jaccard Metric Losses: Optimizing the Jaccard Index with Soft Labels. NeurIPS, 2023
提醒
点击“阅读原文”跳转到00:02:05
可以查看回放哦!
往期精彩文章推荐
记得关注我们呀!每天都有新知识!
关于AI TIME
AI TIME源起于2019年,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法和场景应用的本质问题进行探索,加强思想碰撞,链接全球AI学者、行业专家和爱好者,希望以辩论的形式,探讨人工智能和人类未来之间的矛盾,探索人工智能领域的未来。
迄今为止,AI TIME已经邀请了1600多位海内外讲者,举办了逾600场活动,超700万人次观看。
我知道你
在看
哦
~
点击 阅读原文 观看回放!