当前位置:首页 期刊杂志

一种结合图像分割掩膜边缘优化的B-PointRend网络方法

时间:2024-08-31

雷晓春,李云灏,梁止潆,江泽涛

(1.桂林电子科技大学 计算机与信息安全学院, 桂林 541004;2.桂林电子科技大学 广西图像图形与智能处理重点实验室, 桂林 541004)

0 引言

自从深度卷积神经网络问世以来,类别层面的语义分割任务取得了长足的进步。但是,分类标签无法提供许多任务需要的各个检测框的详细信息。相比之下,实例级图像分割能产生关于每个人的身份,位置,形状和类别标签的信息。

为了简化这项的任务,大多数现有方法首先检测出单个对象,然后根据对象信息获得分割结果。由选择性搜寻EdgeBox[3]或卷积神经网络生成物体框,例如Deep MultiBox[4],用FasterR-CNN[5]检测出物体。Redmon等提出了“只看一次”(YOLO)[6]方法,该方法可以在对图像的一次完整计算中直接预测检测框和物体的类别。Mask R-CNN[1]用FasterR-CNN检测出物体后对每个物体框做FCN(Fully Convolutional Networks,全卷积)获得分割结果。同样基于Faster R-CNN的MaskLab[7],对于每一个ROI(Region of Interest,感兴趣区域),结合语义预测产生前向/背景分割。Mask scoring R-CNN[8]加入了对预测掩膜的学习。其更进一步的改进是Cascade Mask R-CNN[9],通过将框和掩膜分支以多级层叠的方式交织在一起以及通过语义分割提供空间上下文,加入了一个注意力模块来处理全图的上下文信息,借鉴了渲染和自适应关键点的思想来恢复图像的精细细节,以实现高质量的图像分割。

类似于 Mask R-CNN[1]的二阶段实例分割方法,会面临得到的实例掩膜分辨率相对较低且严重依赖于目标检测产生的边界框的问题。掩膜分支是一个卷积网络,取ROI分类器选择的正确区域为输入并生成它们的掩膜。其生成的掩膜是28×28像素的。但它们是由浮点数表示的软掩膜,相对于二进制掩膜有更多的细节。掩膜的小尺寸属性有助于保持掩膜分支网络的轻量性。在训练过程中,将真实的掩膜缩小为28×28来计算损失函数,在推理过程中,将预测的掩膜放大为ROI边框的尺寸得到最终的掩膜结果。在此之后,虽然有例如PointRend[2]通过寻找难点再使用MLP(Multilayer Perceptron,多层感知机)预测掩膜边缘的方法,但受限于其输入都是图像底层特征,对物体边缘的精度提升效果有限。

为了解决这个问题,B-PointRend(B为boundary的缩写,这里特指对边缘的操作)采用深度学习与传统视觉相融合的方式,在原有的实例分割基础上添加了对预分割掩膜的精细化处理,把分割掩膜边缘映射到目标图像上,利用掩膜边缘附近的目标图像的像素信息,生长或缩小掩膜边缘,直到掩膜完全覆盖检测框中的物体,得到更精细的图像分割结果,在处理时间方面并没有增加太多算法的运行时间。

如图1(a)为PointRend算法实现的图像分割效果,为了便于观察图像边缘的细节,图中用白色覆盖掩膜见图1(c)。图1(b)为B-PointRend算法实现的图像分割效果,用白色覆盖掩膜见图1(d)。

图1 效果图

1 B-PointRend图像分割掩膜边缘优化方法

在PointRend的迭代上采样的过程中,挑选出N个“难点”,即结果很有可能和周围点有不一样的点(例如物体边缘)。对于每个难点,获取其“表征向量”。“表征向量”由两个部分组成:一是低层特征,通过使用点的坐标,在低层的特征图上进行双线性插值获得;二是高层特征。使用 MLP[10]对“表征向量”计算得到新的预测。

改进方案在PointRend的迭代上采样过程中,加入了通过难点确定的掩膜边缘,分析掩膜边缘周围像素值,达到精细化物体边缘的效果。在每次进行上采样过程中,由MLP网络确定难点和判别难点的类别,之后则进行对图片中每个物体掩膜的分析。

得到网络识别出的实例物体框和掩膜,遍历所有掩膜及其周围的像素,以确定边缘掩膜。具体方式为如果掩膜周围的8个像素全为其他掩膜,则此像素不为边缘掩膜,反之则记为边缘掩膜。

接下来分析边缘掩膜。按照一定规则分析边缘掩膜周围的8个像素,如果此区域内的掩膜像素值接近,则把区域内最接近掩膜像素值的像素也视为掩膜。如果掩膜的像素值与区域内非掩膜的像素平均值接近,则把此掩膜视为非掩膜,从而得到更精细化的物体边缘,接着进行下一次上采样,在每一次上采样过程中重复此步骤,把MLP网络和本文使用的掩膜扩张或缩小方法相结合,共同计算网络的损失函数。

网络的损失函数为:

(1)

Lcls为softmax cross entropy loss(交叉熵损失),用于计算logits(预测值)和 labels(真实标签值)之间的差别。在交叉熵损失的公式中,p(xi)表示物体的真实概率分布,q(xi)表示物体预测概率分布。

(2)

Lbox为smooth loss(平滑损失),使模型在训练初期损失输入较大时能够较为稳定在某一个数值,而在后期趋向于收敛时也能够加速梯度的回传。使模型在训练初期损失稳定,更快收敛到更高精度。

图2 PointRend的难点寻找

图3 改进后的难点寻找

Lmask为分割损失,代表平均二值交叉熵损失average binary cross-entropy loss。对于一张图片所有的掩膜,只提取属于一个物体的ROI,如Lmask仅仅考虑第k个掩膜,即单一物体。而其他的掩膜输入不会贡献到损失函数中,采用这样的方法计算损失可以允许对每个类别都生成掩膜,并且不会存在类间竞争。

具体的掩膜像素分析方法如下。

首先,计算出实例分割所得到的物体掩膜边缘部分,进而得到原图上该部分的像素值信息,对每一个位于边缘的像素进行分析。具体的步骤为:

初始化一个自适应阈值t,掩膜自身像素记为a。提取掩膜周围的8个像素,并把其中不是掩膜的像素取平均值,记为avg(b),掩膜的像素取平均值,记为avg(c),扩大或缩小掩膜区域。初始化阈值可以在模型配置文件中提供,阈值在每一次递归调用边缘掩膜修正的过程中都将自适应缩小,以便及时地跳出循环。

在具体分析的过程中,掩膜与周围像素的关系可以分为以下几种情况。

(3)

此情况表示掩膜像素值与非掩膜像素均值之差小于阈值,掩膜像素值与掩膜周围像素均值之差也小于阈值。表明此区域内的像素值接近,则把最接近平均值的像素也视为掩膜min(bi-avg(b))=mask,扩大掩膜区域,视为一次掩膜生长。

(4)

此情况表示掩膜像素值与非掩膜像素均值之差小于阈值,掩膜像素值与周围掩膜像素均值之差大于阈值,表明此掩膜与区域内非掩膜的像素值接近,且与其他掩膜像素值差距过大,把此掩膜视为非掩膜,缩小掩膜区域。

掩膜扩大和缩小如图4和图5所示,蓝色色块是要确定的掩膜像素,橙色是掩膜部分,蓝、紫色块是非掩膜部分。

图4 扩大掩膜

图5 缩小掩膜

递归调用此算法,每次调用按照一定规律缩小自适应阈值t的值,直到某一次边缘像素分析没有造成掩膜的扩张或缩小,就结束边缘分析。最终得到一张经过边缘掩膜分析的实例分割结果图。如图6所示。

图6 效果图

2 实验结果及分析

本实验使用显卡为两张RTX2080TI,数据集采用COCO 2017,训练集共有118 287张图片,验证集有5000张图片,共分为80个类别进行训练。基于detectron2框架运行PointRend网络,在同样的训练参数下分别训练PointRend模型与改进方法B-PointRend模型,在经过足够次数的训练后,测试所得模型结果如图7所示,对其中部分区域放大展示效果如图8所示。

图7 效果图

图8 放大后的效果图对比

从图8可以看到,PointRend网络虽然加入了MLP模块对物体边缘的难点进行了更细致的预测,但是还是存在物体边缘粗糙、没有完全覆盖边缘或者超过边缘的现象。而在加入了本文提出的边缘掩膜优化之后,物体的掩膜边缘精度有了一定程度的提升,表现为物体边缘光滑且连续,且更精确地覆盖了真实的物体边缘,在实例分割的准确率上有一定程度的提升。可以看出,算法对被分割物体与背景颜色值差别较大时有着较好的分割精度,但对于同图片背景颜色相近的物体来说,由于本算法是通过比较边缘掩膜的周围8个像素来进行掩膜的扩大或缩小,对颜色值相近的两个物体进行掩膜操作可能会存在一定程度的精度损失。

采用AP(Average Precision准确度)、APm(测量的面积在分割掩码中的像素数量在322~962之间的物体的AP)、召回率和精确度对分割结果进行评价,将改进的PointRend与原始网络、MaskR-CNN进行对比,实验结果如表1所示。

表1 模型测试结果

而在模型的处理时间方面,使用RTX2080TI处理单张图片的时间,如表2所示。

表2 模型处理时间(单位:张/秒)

由实验结果可知,在加入对掩膜周围像素的分析之后,不管是在R50-FPN(骨干网络采用ResNet50[14])还是在R101-FPN(骨干网络采用ResNet101)上,B-PointRend网络的性能优于PointRend。B-PointRend在各项指标上均有一定的提升,使PointRend的分割精度尤其是物体边缘精度优于原网络。本文所提出的网络性能也优于MaskR-CNN,在精确度上有一定的提升。

3 结论

本文提出了一种改进的B-PointRend的网络,对PointRend的网络添加预分割掩膜的精细化处理,把深度学习和传统视觉融合,通过递归分析边缘掩膜周围像素值,扩张或收缩掩膜。优化了物体边缘的分割精度,可以更准确地识别出物体的边缘。通过实验效果及指标分析,可以看到改进方法优于PointRend方法。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!