基于Generalized Region Loss的代价函数及在图像分割中的应用
2023-04-03余义斌
张 凯,余义斌
(五邑大学 智能制造学部,广东 江门 529020)
0 引言
深度学习已经彻底改变了从软件到制造业的各个行业,FCN[1]奠定了语义分割深度模型的先驱,医学界也从深度学习中受益。在疾病分割方面有多种创新,使用U-Net[2]网络模型进行肿瘤分割,SegNet[3]网络模型进行癌症检测等。图像分割是深度学习社区对医学领域的重要贡献之一,除了说明某些疾病的存在外,它还显示了疾病确切存在的位置,它极大地帮助创建了在各种类型的医学扫描中检测肿瘤、病变等的算法。在设计基于复杂图像分割的深度学习体系结构时,有许多可变的参数,包括代价函数、优化器、学习率等,都会影响模型最终的结果。而代价函数对深度学习中神经网络的训练有非常重要的作用,对于不同的分割任务使用合适的代价函数可以提高最终的分割精度,最终得到很好的分割效果。
本文从代价函数的角度出发,针对解决分割中困难样本的问题,国内外学者提出了各种各样的代价函数。然而,在处理图像分割任务中困难样本的问题时,没有一种损失能够始终达到最佳性能。本文通过研究各类型代价函数的特性,总结背后的一般规律,最终构建一种通用关注困难样本的代价函数,例如脑CT、胰腺、肾脏等图像语义分割问题。
1 图像分割代价函数的分类
1.1 图像分割代价函数按目的分类
近几年,随着深度学习技术的快速发展,图像语义分割算法的性能有明显的的提升。在图像分割方面,国内外学者提出了许多新的技术致力于提升其分割精度,主要包括对数据集的处理、网络模型的修改、代价函数的改进以及优化器的调整等方面。针对代价函数,国内外学者提出各种各样不同的代价函数用于提升分割效果,从最初的CE Loss,到后来的WCE Loss[2]、Sensitivity Specificity(SS) Loss[5]、Topk Loss[6]、Dice Loss[7]、IoU Loss[8]、Tversky Loss[9]、Lovasz Loss[10]、Focal Loss[11]、Boundary (BD) Loss[12]、Hausdorff Distance (HD) Loss[13]、Focal Tveraky Loss[15]、Asymmetric Similarity Loss[16]、DPCE Loss[17]、Generalized Dice Loss[18]、Penalty Loss[19]等,都是为了解决图像语义分割中某些问题而提出,主要包括类不平衡问题、关注分割中困难样本、关注分割边界等,以及一些复合代价函数Combo Loss[20]、Exponential Logarithmic Loss(ELL)[21]等都是为了更好地解决这些问题。
对于分割中类不平衡的问题来说旨在通过提升不频繁标签的重要性来缓解损失偏差,主要有两种常见的方法,其一是通过对标签频繁下采样来重新平衡类别的先验分布,然而这种方法限制了训练图像的信息;其二是通过类别与标签频率成反比的方法来设置权重,例如WCE Loss[2]、Generalized Dice Loss[18]等,尽管该方法对某些分割中的不平衡问题有效,但对于不常见的那些像素区域使用交叉熵计算有时会加入一些噪声,并且使用大权重对其加权会放大该错误从而导致训练不稳定。
对于分割中困难样本来说旨在提升损失对困难样本的关注度,同样主要有3种常见的方法,其一是对单个像素进行加权,通过数字一减去预测像素概率值的方法加权损失,例如Focal Loss[11]等;其二是将计算好的损失整体加权,例如Focal Tveraky Loss[15]等;其三是使用权重控制FP(False Positive)和FN(False Negative)之间的平衡,例如Tveraky Loss[9]、Asymmetric Similarity Loss[16]、Penalty Loss[19]等。
对于分割边界来说旨在提升损失对图像边界的关注度,例如DPCE Loss[17]、Boundary (BD) Loss[12]、Hausdorff Distance (HD) Loss[13]等,但本文认为图像标签多为人工标注,标注的标签边界区域或多或少都存在一些误差,如果对标签真值边界的关注度过分大于对标签真值内部的关注度,对于计算分辨率比较低的图像是不适合的。
1.2 图像分割代价函数按类型分类
图像分割的代价函数[4]伴随着深度学习的发展,逐渐演化为4种类型,即基于分布、基于区域、基于边界和基于复合的代价函数。
基于分布的代价函数旨在最小化两个分布之间的差异,包括CE Loss、Topk Loss[6]、Focal Loss[11]、DPCE Loss[17]等,该类型代价函数是以交叉熵为基准进行变化,只关注标签图真值内部的损失,而对于真值之外的损失计算没有涉及。交叉熵的计算公式如式(1)所示:
(1)
基于区域的代价函数旨在最小化不匹配或最大化真实值和预测分割之间的重叠区域,包括Sensitivity Specificity Loss[5]、Dice Loss[7]、IoU Loss[8]、Tversky Loss[9]、Lovasz Loss[10]、Focal Tveraky Loss[11]、Asymmetric Similarity Loss[16]、Generalized Dice Loss[18]、Penalty Loss[19]等,该类型代价函数都是以Dice Loss为基准进行变化,虽然对标签图真值内外的损失都进行了计算,但计算过于笼统,针对标签真值内部以及外部关于分类正确或错误的像素区域都没有进行精确区分。Dice Loss 的计算公式如式(2)所示:
(2)
基于边界的代价函数[14]是一种相对较新的代价函数,旨在最小化真实值与预测分割之间的距离,包括Boundary (BD) Loss[12]、Hausdorff Distance (HD) Loss[13]等,该类型代价函数主要是通过距离图加权计算损失值,BD Loss使用边界匹配度去监督网络的损失,而HD Loss使用真实值和分割的距离变换图加权损失,两者都容易导致损失值偏向距离边界近的区域,而对于标签真值内部的区域给予很少的关注。
基于复合的代价函数是基于分布、区域和边界的代价函数之间的加权组合,包括Combo Loss[20]、Exponential Logarithmic Loss(ELL)[21等,该类型代价函数主要是为了解决单个代价函数不能很好的处理分割任务的问题,通常需要至少两种及两种以上的代价函数进行某种变换加权得到,但该种方法在实际应用中变得非常困难,需要用户必须对各类型代价函数都有精准的估计,然后从中选择适合处理某种任务的代价函数。
为了解决以上的这些问题,本文提出了一种新的代价函数Generalized Region Loss,该代价函数也是一种基于区域计算损失的代价函数,同以往基于区域的代价函数不同的是Generalized Region Loss致力于将图像损失区域进行精确地分类计算,使计算的损失结果更加符合该区域的实际损失值,更加有利于激发算法的学习过程,使计算结果更容易收敛。
2 Generalized Region Loss代价函数算法研究
2.1 Generalized Region Loss(GR)函数
本文提出了一种基于像素区域细分计算的Generalized Region Loss代价函数用于图像分割,其表达式如式(3)所示:
GR Loss=β·(l1+l3)+(1-β)·(l2+l4)
(3)
该代价函数主要是计算以下两部分区域的损失值:真值内部区域和真值外部区域,具体如图1所示。真值内部区域主要包括预测和真值重合区域l1、预测和真值非重合区域l3;真值外部区域主要包括预测和背景重合区域l2、预测和背景非重合区域l4。在式(3)中,参数β∈[0.01,0.1]控制代价函数第一项和第二项之间的平衡,在本函数中更加关注那些分类错误区域的损失,所以,此β参数设置参照Sensi-tivity Specificity Loss[3]而定,具体将其置为0.02,l1、l2、l3、l4详细的计算方式在后边给出。
图1 真值内部区域和真值外部区域
其一针对预测和真值重合区域来说,即图1当中的l1区域,在该区域中一般其预测概率已经达到了很大的值,说明该区域预测概率已经基本达到预测标准,但该部分仍就存在损失,需要通过公式log或者标签和预测差值的方法得到其损失。在此公式中使用的是log计算方法,因为在实验中发现使用此计算方法稍微优于另外一种,分析原因是log相比于另外一种计算方式对于那些困难样本的惩罚更加严重。该区域损失的计算如式(4)所示:
(4)
其二针对预测和背景重合区域来说,即图1当中的l2区域,在该区域中一般其预测概率达到了很大的值,说明该区域预测概率同预测标准差异较大,所以本文希望该区域概率变得很小,更加接近0,其单个像素点的预测概率值就是其单个像素点的损失。该区域损失的计算如式(5)所示:
(5)
其三针对预测和真值非重合区域来说,即图1当中的l3区域,在该区域中一般其预测概率非常小,说明该区域预测概率同预测标准差异较大,所以本文希望该区域概率变得较大一些,更加接近1,需要通过公式log或者标签和预测差值的方法得到单个像素损失值,具体计算本文是使用了log计算方法,同式(4)中是一致的。该区域损失的计算如式(6)所示:
(6)
其四针对预测和背景非重合区域来说,即图1当中的l4区域,在该区域中一般其预测概率非常小,说明该区域预测概率同预测标准差异较小,但本文希望该区域概率变得更小,更加接近0,其单个像素点的预测概率值就是其单个像素点的损失。该区域损失的计算如式(7)所示:
(7)
2.2 GR Loss 函数中采用和对比
图2 使用FCN网络结构训练时,GR Loss代价函数使用和对Mean IoU的影响
图3 使用FCN网络结构训练时,GR Loss代价函数使用和对Mean Class Accuracy的影响
图4 使用FCN网络结构训练时,GR Loss代价函数α置为不同参数对Mean IoU的影响
图5 使用FCN网络结构训练时,GR Loss代价函数α置为不同参数对Mean Class Accuracy的影响
2.3 GR Loss 函数中参数α的确定
通过对Generalized Region Loss代价函数的参数α进行测试,从图4当中的对比实验可以明显看出,当α= 2、3、4时,该三条曲线增长趋势基本一致;从图5的对比实验可以看出,当α= 2、3、4时,该三条曲线增长方式同样基本一致。
仔细观察图5可以看到,α= 4的曲线会略微高于α= 3的曲线,但α= 4时公式的计算复杂度也同样高于α= 3的计算复杂度。当α= 0.75、1时,从图4和图5来看,该两条曲线的增长趋势过于缓慢,在网络训练过程中会消耗比较多的时间复杂度和空间复杂度,因此在本文不作考虑。
所以综上所述当α= 3时,Mean IoU以及Mean Class Accuracy效果提升都是比较明显的,因此在后续实验中Generalized Region Loss代价函数中的α采用此参数。
3 代价函数在图像分割中的应用
3.1 数据集描述
CamVid[22]数据集是一种由剑桥大学公开发布的城市道路场景的数据集,同时它也是第一个具有目标类别语义标签的视频集合。该数据集包含了700多张精准标注的图片用于强监督学习,可分为训练集、验证集和测试集。同时,在CamVid 数据集中通常使用 11 种常用的类别来进行分割精度的评估。分别为:道路(Road)、交通标志(Symbol)、汽车(Car)、天空(Sky)、行人道(Sidewalk)、电线杆(Pole)、围墙(Fence)、行人(Pedestrain)、建筑物(Building)、自行车(Bicyclist)、树木(Tree)。
3.2 评估指标
为了评估分割精度,本文使用了在图像分割中4个常用的评估指标,主要包括有Dice similarity coefficien(DSC),Intersection over Union (IoU),精确率(Precision)和召回率(Recall)。DSC、IoU、Precision和Recall分别根据等式(8)~(11)定义:
(8)
(9)
(10)
(11)
3.3 数据集处理
网络部署训练过程中,在FCN网络框架下,本文将CamVid数据集原图和标签统一中心裁剪为[3×256×480]大小的图像,为的是可以一定程度上减少网络训练时间;并且采用了[[0.485,0.456,0.406][0.229,0.224,0.225]]的数据归一化处理,从而消除奇异样本产生异常数据导致的不良影响;优化器为Adam且初始学习率lr置为10-6,并且学习率伴随着训练次数的增加逐渐减小为之前的0.5倍,减小周期为50轮。而在U-Net网络框架下,为适应网络模型结构的输入和输出,本文将CamVid数据集原图统一中心裁剪为[3×572×572]大小的图像,标签中心裁剪为[3×388×388]大小的图像,其它参数像数据归一化、优化器、学习率等同FCN训练时保持一致。
本文实验环境为Windows10操作系统,编程语言为Python3.6,深度学习框架为PyTorch,硬件环境CPU为2.90 GHz Intel(R) Xeon(R) W-2102 (8 G内存),GPU为NVIDIA Tesla T4(12 G显存)。
4 实验结果与分析
4.1 使用FCN网络结构
在图6和图7当中使用FCN网络结构进行测试实验,通过对用于图像分割的主流的12种代价函数进行测试,包括CE Loss、Wce Loss、Topk Loss、Focal Loss、DPCE、dice Loss、Lovasz Loss、Generalized Dice Loss、Tversky loss、Focal Tversky Loss、Asymmetric Similarity Loss、Sensitivity Specificity Loss。因测试曲线过多,在图中不易区分,我们只将表现最好的代价函数曲线同其它代价函数曲线进行区分制线。
图6 使用FCN网络结构训练时,改变其代价函数,将其它12种代价函数同GR Loss代价函数进行对比,对比它们之间的Mean IoU
观察实验结果,从图6当中的Mean IoU 来看,虽然Mean IoU在30轮之前使用Generalized Region Loss代价函数提升精度的趋势有缓慢,但在训练30轮之后提升速度的趋势明显优于其它代价函数,并且Generalized Region Loss在训练80轮左右达到的分割准确率在使用其它代价函数时至少需要100轮训练才能达到,促进了网络的收敛,大大节省训练时间。
从图7当中的Mean Class Accuracy来看,新提出的代价函数同Sensitivity Specificity Loss在15轮和65轮左右都出现了交点,在15轮之前,Sensitivity Specificity Loss提升速度略微高于Generalized Region Loss;15轮到65轮之间,Sensitivity Specificity Loss提升速度却又低于Generalized Region Loss ;65轮之后Sensitivity Specificity Loss提升速度却又略微高于Generalized Region Loss,可以看出新的代价函数与其也是不分伯仲。
图7 使用FCN网络结构训练时,改变其代价函数,将其它12种代价函数同GR Loss代价函数进行对比,对比它们之间的Mean Class Accuracy
4.2 使用U-Net网络结构
在图8和图9当中使用U-Net网络进行测试实验,由于图6和图7已经对12种代价函数在FCN网络上做了测试,为了避免资源浪费,所以图8和图9是以图6和图7为依据,从12种代价函数中挑选出4个表现良好的,明显可以促进网络收敛的代价函数进行测试,主要包括有CE Loss、Topk Loss、Focal Loss、Sensitivity Specificity Loss。
图8 使用U-Net网络结构训练时,改变其代价函数,将其它4种代价函数同GR Loss代价函数进行对比,对比它们之间的Mean IoU
观察实验结果,从图8当中的Mean IoU和图9当中的Mean Class Accuracy来看,将其它4种代价函数同新改进的Generalized Region Loss进行对比,实验结果表明,虽然图8当中的Mean IoU指标在70轮之前使用新的代价函数提升趋势有些缓慢,但训练70轮之后提升趋势明显优于其它4种代价函数,以及新的代价函数在训练90轮左右达到的分割精度在使用其它代价函数时至少需要100轮训练才能达到,同样促进了网络的收敛,大大节省了训练时间。
表1 CamVid数据集上,使用FCN+5种代价函数对应的11种分类精度,黑体代表每种类别精度的最大值
从图9当中的Mean Class Accuracy来看,新的代价函数的提升趋势会略微低于Sensitivity Specificity Loss,但从总体来看,Generalized Region Loss函数也有其优异的地方。
图9 使用U-Net网络结构训练时,改变其代价函数,将其它4种代价函数同GR Loss代价函数进行对比,对比它们之间的Mean Class Accuracy
4.3 使用FCN和U-Net时,CamVid数据集的11种类别精度对比分析
通过在FCN和U-Net两种网络框架上,将表现良好的4种代价函数CE Loss、Topk Loss、Focal Loss、Sensitivity Specificity Loss以及新的代价函数Generalized Region Loss进行对比分析,从表1和表2可以看出,Generalized Region Loss代价函数对Sidewalk、Fence、Car分割精度明显优于其他代价函数,尤其针对Sidewalk和Fence两类分割小目标来说分割精度明显提高。
4.4 使用FCN和U-Net时,四项指标对比分析
从表3和表4来看,使用Generalized Region Loss代价函数在DSC、IoU、Recall几项指标上表现得比较优异,明显优于其它4种代价函数,而在Precision这项指标上会略微逊色于其它代价函数,可见Generalized Region Loss代价函数对误报损失FP(False Positives)不太敏感。
表3 使用5种代价函数在FCN上训练的结果,
表4 使用5种代价函数在U-Net上训练的结果,
4.5 不同代价函数的分割结果
本文使用了4种代价函数对CamVid数据集进行了实际的测验分割,具体分割结果如图10所示。本文随机挑选了CamVid数据集预测图中的4张不同道路场景图进行结果分析,横向来看,第一列是道路真实场景图;第二列是道路真实标签图;第三列是将代价函数置为CE Loss后的分割掩码图像,可以看到该类型代价函数在道路(Road)以及行人(Pedestrian)上的分割效果明显不如其它3种;第四张是将代价函数置为Focal Loss后的分割掩码图像,可以看到该类型代价函数在道路(Road)以及行人(Pedestrian)上的分割效果略微优于使用CE Loss的分割效果,分割轮廓略微准确;第五张是将代价函数置为Sensitivity Specificity Loss后的分割掩码图像,可以看到该类型代价函数在交通标志(Symbol)上的分割效果明显不如其它3种;而第六张是将代价函数置为Generalized Region Loss后的分割掩码图像,可以看到该类型代价函数不论是在在道路(Road)、行人(Pedestrian)或是交通标志(Symbol)上的分割效果明显优于其它3种代价函数,分割轮廓相对来说比较清晰,在CamVid数据集上的整体分割效果已经基本达到了令人满意的程度。
图10 使用CE、Focal、SS以及GR在CamVid数据集上训练150轮后的实际分割结果图