基于目标轮廓的实例分割方法
2022-04-29孙劲光
孙劲光,王 雪
(辽宁工程技术大学 电子与信息工程学院,辽宁 葫芦岛 125105)
1 引 言
实例分割是计算机视觉领域中的一个经典任务,是目标检测和语义分割两项任务的组合任务,通过目标检测定位图像中每个单独实例的位置,并对每个单独实例标记类别信息,区分同一类别的实例。随着深度学习的不断发展,许多实例分割框架被提出,并推陈出新,目前广泛应用于病灶检测、无人驾驶、虚拟现实、安防监控等领域,因此对实例分割精度和速度的要求也越来越高。
实例分割最早是Hariharan[1]等人受到RCNN 目标检测的启发,于2014 年提出了SDS 模型,可以同时完成检测与分割任务。2017 年,Li等人提出FCIS[2],是首个实现端到端训练的图像实例分割算法。随着深度学习的不断发展,2017 年,He 等人提出了Mask R-CNN[3]模型,在Faster RCNN[4]的基础上添加了掩码分支来预测分割掩膜,并设计RoIAlign 层,消除RoI Pooling 的量化误差,采用双线性插值的方法计算每个感兴趣区域采样点输入特征值,保证提取特征与输入对齐,得到了惊人的分割效果,为后续的图像分割工作奠定了好的基础。2019 年,Huang 等人针对Mask R-CNN 模型中以分类分支置信度作为掩膜质量评价标准的问题,提出了Mask Scoring R-CNN[5]模型,采用预测掩膜与标注掩膜的交并比MaskIoU 来描述掩膜的分割质量,并引入新的分支MaskIoU Head,将MaksIoU 与分类的分数相乘计算掩膜分数,这样的计算方式校准了掩码质量和掩码得分之间的偏差,提升了分割性能。对于Mask R-CNN 的改进,Liu 等人还提出PANnet[6],引入了一种自适应特征池化,并设计了一种可以将不同层级特征融合的信息融合路径。以上的工作在基于检测框的实例分割领域取得了十分优秀的效果,但同时也存在两个问题:一是对于检测框检测不准确的物体,很难在后续得到精准的分割结果;二是基于检测框进行分割时,要对物体进行逐像素计算,将导致计算量大、速度慢的问题。
不同于基于检测框的实例分割方法,无锚框的实例分割方法是沿着物体的外围轮廓进行划分,解决了物体检测框局限性的问题。2018 年,Liu 等人提出GMIS[7]模型,这是一种自底向上像素聚类的方法,用独立的两个子网络分别产生语义分割结合和像素亲和性信息,并利用语义分割的先验信息,得到每一类别所有个体的像素区域。2020 年,Wang 等人提出CenterMask[8]模型,不依赖预先设定的感兴趣区域(ROI)进行掩码预测,将分割分成两个子任务:局部形状预测,从每个对象的中心点表示预测的粗略的形状,以约束每个对象的局部区域;全局显著性映射,预测整个图像的显著性图,以实现精确分割,将两分支的输出相乘计算构造出每个实例的掩码。对于构建物体轮廓的实例分割方法,Liu 等人于2017 年提出SGN[9]模型,构建了序列组合网络,采用由点到线再到区域的聚合方式,把像素聚合为线段,再对相邻的线段进行判断,进而得到一个连通区域,连通区域的组合结果即为实例分割的掩 膜。2020 年,Xie 等 人 提 出PolarMask[10]模 型,一种全卷积、无锚框的实例分割方法,以FCOS[11]目标检测网络为基础,从4 根射线扩成36 根射线,以极坐标的方式对物体轮廓进行建模,不需要检测框,把实例分割问题转化为实例中心点分类问题和密集距离回归问题,虽然在精度和速度上优势并不大,但对基于无锚框实例分割方法的研究有着很大的意义。2020 年,Peng 等人提出Deep Snake[12]模型,以主动轮廓模型Snake[13-15]为基础,采用深度学习的方式替代人为能量函数,获得更加逼近目标物体的轮廓,从而达到高精度的实例分割,且加快了计算速度。但是现有方法仍然存在小物体分割精度低,分割边缘不平滑的问题。
针对现有方法的不足,本文提出了基于目标轮廓的实例分割网络,采取渐进式的分割模型,内部设计多尺度融合模块进行特征融合,以迭代的方式多次将分割模块输出的偏移量进行计算,得到新的目标物体轮廓并作为输入,以求得到最优的分割结果,并配以一定的标准化方法减少目标物体对轮廓变形的影响。本文方法相较于Deep Snake 方法以及其他优秀工作,在Cityscapes 数据集和KINS 数据集上,分割精度都有所提升。
2 相关工作
2.1 传统Snake 算法
1987 年Michael Kass 等 人 提 出 了Snake 算法,可以用于图像实例分割。Snake 是一种主动轮廓模型,即预先给定一个初始轮廓,以初始轮廓为基础进行逐步迭代,将得到的结果多次作为输入,得到更加贴合图像边缘的轮廓,从而完成实例分割任务。Snake 算法将分割问题转化为能量函数最小化的数学问题,利用首尾相连的闭合曲线的函数规律,设计能量函数控制曲线的形变,最终目标是得到最小化能量函数使闭合曲线充分贴合分割目标的边缘,以此达到精确的物体分割结果。其中定义的能量函数包括轮廓能量和图像能量,具体公式如公式(1)所示:
其中:Eint(v(s))是轮廓能量,即轮廓本身的能量也称为内部能量;Eimage(v(s))为图像能量,即图像上轮廓对应点的能量,也称为外部能量;Econ(v(s))是方差相关项。
Snake 算法已经被应用在很多模型设计中,但这种人为设计的函数很容易得到局部最优解,对于边缘不平整的目标,想要轮廓和目标物体达到理想的贴合度是不可能的,从而很难得到理想的分割效果。
2.2 目标检测
目标检测的主要任务是定位出图像中实例个体的位置,是实例分割必不可少的一部分。CenterNet[16]是 在CornerNet[17]的 基 础 上 进 行 改进,提出的一种无锚框的目标检测方法。该方法只需将图像输入全卷积网络,得到一个热力图,热力图峰值即目标物体的中心点,且通过峰值点预测目标物体的宽和高。CenterNet 提出了3 种backbone 的网络结构,分别是Resnet-50、DLA-34和Hourglass-104。
本文采用基于DLA-34 的Centernet 目标检测网络,该网络无锚框的检测方式更适用于针对物体轮廓的实例分割方法。其中DLA-34 网络是通过多级的跳跃连接,迭代地将网络结构的特征信息融合起来,让模型有更高的精度和更少的参数,可以加快网络速度。
2.3 圆形卷积
圆形卷积是一维卷积的一种特殊卷积形式,多数应用于离散信号。本文方法针对目标物体轮廓上的特征点进行特征提取,由于组成物体轮廓的点之间的关系是离散的,相较于图像处理中常用的二维卷积,圆形卷积更加适合这种离散关系的特征计算。
圆形卷积的计算方式如图1 所示,其中在下面圆形轮廓上的结点为轮廓上的输入特征,内部相连的结点为内核函数,在上面圆形轮廓上的结点是通过卷积后输出的特征。图中表示了输出特征由输入特征和内核函数计算所得的过程,计算与标准卷积类似,圆形卷积输出特征与输入特征长度相同。
图1 圆形卷积Fig.1 Circle convolution
将轮廓顶点视为一个离散的一维信号,f∶Z→RD,将它拓展为一组周期信号,轮廓特征的定义如公式(2)所示:
采用圆形卷积计算的周期特征,具体计算如公式(3)所示:
3 本文方法
针对小物体分割不准确,边缘不清晰问题,本文提出了基于目标轮廓的实例分割网络(Instance segmentation network based on target contour points,TCPN),具体流程如图2 所示,主要由目标检测、构建初始轮廓、计算偏移量3 个任务完成整个分割工作,通过3 次迭代的轮廓变形得到最终分割结果。在Deep Snake 的基础上构建渐进式分割网络,对目标物体的边缘分割得到更加准确的效果。构建多尺度特征融合模块,对渐进式分割网络中经过粗割模块得到的特征经过不同的空洞卷积,融合多个尺度的特征,减少浅层特征的丢失。
图2 基于目标轮廓的实例分割网络流程图Fig.2 Flow chart of instance segmentation network based on target contour
3.1 渐进式分割网络
Deep Snake 方法是采用深度学习的方式实现传统Snake 算法,以构建网络模型的方式代替能量函数。通过对Deep Snake 实验结果的观察,发现对于自行车、行人这类边缘不平滑的物体,分割结果很难逼近物体边缘,从而降低了分割精度。针对这个问题,本文方法对Deep Snake 算法做了优化改进,构建了渐进式分割网络,如图3 所示。通过两阶段的分割模块,由浅入深,以此使分割结果更好地逼近物体轮廓。通过渐进式分割网络对轮廓上结点的特征进行学习,得到指向目标物体轮廓的偏移量,通过得到的偏移量变形输入的轮廓,经过多次迭代,得到最终的分割结果。
图3 渐进式分割网络Fig.3 Progressive segmentation network
渐进式分割网络包括粗割模块、多尺度融合模块(Multi-scale-fusion module)、精割模块和预测模块。粗割模块和精割模块内部都是由相同的Circonv-BN-Relu 层组成,包括圆形卷积、批量标准化和激活函数,但数量和连接方式不一样,由此达到一种渐进的效果。因为是对物体轮廓上的特征进行计算,而轮廓上的结点首尾相连,度为2,更类似于离散的信号,所以采用圆形卷积进行计算。粗割模块内部采用残差[18-20]的连接方式,连接5 个Circonv-BN-Relu 层。精割模块内部采用类似于DenseNet[21-22]的连接方式,连接8 个Circonv-BN-Relu 层,通过这种连接方式可以更好地保留浅层特征,相较于粗割模型可以更好地提取轮廓上的特征值。
通过粗割模型对轮廓特征进行特征提取并将所有层的特征连接,通过1*1 卷积层和最大池化层将融合的特征和每个顶点的特征连接,以此得到一个初步轮廓特征,并保留与下一步的精割结果连接。将结果通过多尺度融合模块后,输入精割模块,计算过程与粗割模型相同,加深了网络并更大程度地保留了浅层信息。最后将粗割结果和精割结果连接并输入预测模块,对轮廓特征应用了3 个1*1 卷积层,得到最终的偏移。通过对偏移量和初始轮廓的坐标位置进行计算,得到目标物体轮廓,以此作为初始轮廓输入分割模块,完成迭代过程。
3.2 多尺度融合模块
多尺度融合模块如图4 所示,由多个圆形卷积组成,为了得到多尺度的上下文信息,本文方法中采用的是卷积率为1、3、5 的空洞卷积分别提取特征,扩大感受野,防止经过粗割模块后大物体的特征丢失,将得到的不同感受野的特征进行拼接,通过1*1 卷积进行融合,再通过1*1 卷积输出作为精割模块的输入。将多尺度融合模块的设计加入渐进式分割网络,作为粗割模块后的特征融合和精割模块前的特征处理,是出于实验数据考虑,将在实验部分具体介绍。
图4 多尺度融合模块Fig.4 Multi-scale fusion module
3.3 初始轮廓
如图5 所示,基于目标轮廓的实例分割过程通过CenterNet 目标检测网络,得到目标物体的中心点以及宽和高,从而得到检测框。取矩形检 测 框4 个边的中心点,记为{P|i=1,2,3,4},将这4 个点连接成菱形,作为初始轮廓,输入渐进式分割网络,得到4 个偏移量,使P逼近P。
图5 分割过程Fig.5 Segmentation process
通过上一步得到的P定义一个新的边界框,以P点沿着边界框延伸方向向两侧画一条线段,长度为一条边的1/4,连接4 个线段的端点形成八边形。以这个八边形为输入,从P开始沿着八边形轮廓均匀采样N个点,记为{Pi|i=1,2,...N,N=128},且沿着目标物体轮廓均匀采样N个点,通过渐进式分割网络的计算,输出N个偏移值,使初始轮廓向目标物体轮廓偏移。采用三次迭代的方式,使得图像中目标物体无论远近,都可以得到很好的分割结果。
在Deep Snake 算法中,为了使轮廓变形不受图像中轮廓平移的影响,取轮廓上所有顶点的值减去最小的顶点值。本文为了更大程度地减少这种影响,在迭代过程中采用极差标准化,具体计算如下。
使输入渐进式分割网络的初始轮廓在[0,1]的有界范围内,相应地可以使用激活函数tanh 使偏移量也缩小到固定范围,输出再对应宽高比例放大,这样可以最大程度地减少对轮廓变形的影响。
3.4 损失函数
针对渐进式分割方法采用Smooth L1方法设置两个损失函数约束轮廓偏移,一个是取极值点Piep 时的损失函数,记为
损失函数对应轮廓变形时的极差标准化操作,对物体坐标做等比例变换处理,这里p代表轮廓上标注的真实值。
3.5 二次检测
针对Cityscapes 数据集中被遮挡而分为多部分的物体,由于数据集标注时是分别对多部分物体进行标注,若采用本文方法直接对整个物体进行实例分割,则会降低精度,因此采用二次检测的方式对检测框内被分为多部分的物体进行再次检测,这也是Deep Snake 中所采取的处理方式,具体方式如图6 所示。
图6 二次检测网络Fig.6 Secondary detection network
针 对 检 测 框,使 用RoIAlign[2]方 法 来 提 取 特征图,并在特征图上添加一个检测器分支对被遮挡的目标物体生成各部件的检测框;对于检测到的各部件,我们使用渐进式分割方法分别对它们进行分割,通过合并的方式得到最终的分割结果。
4 实验结果及分析
4.1 实验数据集
实例分割旨在解决不同实例个体像素分割的问题,为了提高网络对复杂场景的理解能力,需要高清晰度、数量规模庞大的数据库作为支撑。本文采取了以下两个公开的大型数据集。
Cityscapes 数 据 集[23]:Cityscapes 数 据 集 是关于城市街道场景的语义理解图片数据集。它主要包含来自50 个不同城市的街道场景,拥有5 000 张在城市环境中驾驶场景的高质量像素级注释图像;此外,它有20 000 张粗糙标注的图像。该数据集按照与城市场景的相关性,将30 个目标类别分为8 类数据集,最终的评价标准是根据数据集中8 个语义类的平均精度来评估。
KITTI 数据集是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集,包含市区、乡村和高速公路等场景采集的真实图像数据集,每张图像中最多达15 辆车和30 个行人,还有各种程度的遮挡和截断。KINS 数据集[24]是对KITTI 数据集进行实例级语义标注得到的一组数据。该数据集目的是在遮挡下恢复完整的实例形状,包括7 474 张训练图像和7 517 张测试图像。根据它的设置,最终的评价标准是根据数据集中7 个对象类别的平均精度来评估的。
4.2 评价指标
为了验证本文所提出的基于目标轮廓的实例分割网络在实例分割任务中的有效性,采用平均精度(Average Precision,AP)作为评价指标。平均精度是在图像分割情况下,将每个结果与正确标注结果计算IoU,且IoU 从0.5~0.95 之间以0.05 为标准进行十等分,计算这10 个不同IoU 阙值下交并比的平均值,AP50是指IoU 阙值取0.5时的计算结果。
4.3 实验设置
本文的实验环境是Python3.7.0,操作系统为Ubuntu 18.04,主要基于开源的机器学习框架Pytorch1.3.1-gpu、CUDA 和CuDNN 来 实 现GPU 加速。本文使用Cityscapes 数据集和KINS数据集进行训练,在Cityscapes 数据集上设计消融实验和对比实验,消融实验通过测试多种扩张率的扩张卷积,验证多尺度融合模块的有效性,并得到效果最佳的一组扩张率;对比实验通过和目前优秀的实例分割工作进行对比,验证本文方法的有效性;且通过KINS 数据集测试迭代次数对实例分割结果的影响,并验证本文方法对存在遮挡部分的图像进行分割的有效性。由于两种实验数据集的标注情况不同,所要实现的实验结果不同,所以采取不同的模型文件进行训练、验证和测试。
4.4 实验效果
在实验过程中,对于八边形作为初始轮廓时的采样点个数,本文设置N=128。实验中也尝试选取过N=256,不仅会降低分割精度,且大幅增加了运行时间。
4.4.1 迭代次数测试
在KINS 数据集下进行多次测试,确定最终TCPN 网络模型中渐进式分割网络的迭代次数,图7 显示不同迭代次数下的实验效果,经过3 次迭代时实验效果最佳。通过表1 的测试数据也不难看出,迭代次数为3 时实例分割精度最高。
图7 不同迭代次数的实验效果对比。(a)自行车和行人;(b)轿车;(c)轿车和较远物体。Fig.7 Comparison of experimental effects with different iterations.(a)Bicycle and person;(b)Cars;(c)Cars and distance objects.
表1 不同迭代次数下的实验效果Tab.1 Experimental results of different iterations
4.4.2 二次检测模块的表现
由于本文方法是通过闭合曲线进行实例分割,在Cityscapes 中进行实验时,对于被遮挡而一分为多的数据情况,只能针对其中一部分。通过对物体进行二次检测,识别其中的多部分,从而对每部分物体分别进行实例分割,得到最终结果,效果如图8 所示。
图8 二次检测效果图Fig.8 Experimental rendering of secondary detection
4.4.3 多尺度融合模块的对比实验
多尺度融合模块的设计可以在粗割模块和精割模块中起到衔接作用,增强上下文语义信息,扩大感受野,从而得到更加精确的分割结果。对于多尺度融合模块的有效性,本文做了对比实验,表2 的实验结果分别是不加多尺度融合模块,和加不同扩张率的多尺度融合模块的最终平均分割精度,表中-Multi-scale fusion module 代表不加多尺度融合模块的实验结果,+Multi-scale fusion module_1 代表加扩张率为2、4、8 的多尺度融合模块的实验结果,+Multi-scale fusion module_2 代表加扩张率为1、3、5 的多尺度融合模块的实验结果。通过表2 中的数据可以发现,添加多尺度融合模块有助于提升分割精度,尤其是对图像中大物体的分割精度,减少了精度损失,且扩张率为1、3、5时分割精度最高。
表2 多尺度融合模块实验结果Tab.2 Experimental results of multi-scale fusion module
4.4.4 在Cityscapes 数据集上的表现
在Cityscapes 数据集上采用分段式训练方式,先对检测网络CenterNet 进行训练,再将训练好的结果与渐进式分割网络共同训练。实验中设置学习率lr=9le-5,batch-size=4,经过训练,最终的测试结果如图9 所示。从图9 中的实验效果可以看出,基于目标轮廓的实例分割网络可以很好地对图片中的物体进行实例分割,如图中的小汽车分割出的物体轮廓很好地贴合了物体边缘,对于较远、较小的物体也都很好地给出了物体轮廓。通过表3 和表4 中的实验数据也不难发现,本文方法相较于Mask R-CNN 经典的基于检测框的实例分割方法,无论在整体实例分割精度还是部分物体实例分割精度都有明显优势;相较于PANet 自底向上“双塔战术”的方法,在平均精度以及部分实例物体的分割精度都有所提升;对比Deep Snake 方法,平均精度也提升了0.7%AP 和1.5%AP50。
表3 Cityscapes 数据集实验结果(AP)Tab.3 Results from the Cityscapes dataset(AP)
表4 Cityscapes 数据集实验结果(AP50)Tab.4 Results from the Cityscapes dataset(AP50)
图9 Cityscapes 数据集实验效果Fig.9 Experimental effect of Cityscpes dataset
4.4.5 在KINS 数据集上的表现
将检测网络CenterNet 与渐进式分割网络共同训练。实验中设置学习率lr=le-4,batchsize=4,经过训练后,得到最终的测试结果如图10 所示。从图10 中的实验效果可以看出,图像中即使部分物体被遮挡,也可以很好地满足数据集要求得到正确的分割结果,且对于图中小汽车、自行车和行人的分割轮廓贴合目标物体,光滑无突出棱角。通过表5 中的实验结果可以看出,在KINS 数据集中,本文方法较目前其他优秀工作在平均分割精度上有所提高,对比Deep Snake 方法提升了0.7%AP。
表5 KINS 数据集实验结果Tab.5 Results from the KINS dataset
图10 KINS 数据集实验效果Fig.10 Experimental effect of KINS dataset
5 结 论
本文针对实例分割中存在小物体分割慢、分割精度低、分割边缘不平滑等,提出了基本目标轮廓的实例分割方法。通过提取物体轮廓上的结点,可加快分割速度;通过渐进式分割网络,多层次提取轮廓特征,再进行多尺度融合,利用扩张的圆形卷积增大感觉野,丰富了特征细节;通过极差标准化降低轮廓对轮廓回归变形的影响。算法在实验数据集Cityscapes 和KINS 中的分割精度达到了32.4%和32.0%,分割边缘的平滑程度与贴合程度更佳,实验结果验证了算法的有效性和正确性。