天天看点

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...
Small Object Augmentation of Urban Scenes for Real-Time Semantic Segmentation 小目标增强的城市场景实时语义分割
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

文章是关于

语义分割

现有主流方法,依赖复杂的网络模型以及多尺度的输入,因此

实时性

很差。另一方面,实时性好的,又对信号灯这类

小物体

分割效果不太好,这对自动驾驶来说,对安全性有很大的威胁。

作者从两个方向入手,要改进算法的效率,同时保证效果。

  1. 算法:Narrow Deep Network (NDNet)
  2. 数据集:cut-and-paste for small object
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

首先概括 的介绍一下作者的方法

一部分就是模型,下边是作者扩充数据集的方法。

Module部分,作者结合瓶颈结构(Bottleneck)和深度可分离卷积,将他用在FCN8的五个阶段中,作者还用了一个

学习的权重参数

去平衡那三个分支的加和(图中红色虚线部分)。

数据集上,作者将原始数据集中的小目标(作者认为这里的小目标,是他相对于汽车来说他是真的小,还有就是它分割效果不好),将这些小目标剪切粘贴到图像中(当然不是随意粘贴,后边会具体讲)。

算法:Narrow Deep Network (NDNet)

下面简单介绍一下深度可分离卷积:

这里引用一篇别人的介绍,写得比较直观了

https://blog.csdn.net/makefish/article/details/88716534

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

最下面算的是参数量,不多说了,一看就能看出来怎么肥事。

作者想通过降低参数量来减少资源消耗,达到Real-time。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

作者这里采用深度分离卷积,将一个3 × 3的标准卷积分离成3 × 3的深度卷积 和 一个1 × 1 的标准卷积。然后结合瓶镜结构利用这两个1×1的卷积来减少和恢复特征维数,在不引入太多参数的情况下增加了网络的深度。网络参数具体如下,对应FCN8的五个阶段。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

红色箭头指的32是下采样倍数,Sc是c类别的score map;Sci是c类在i点的分数,Lp和La是惩罚损失和辅助损失(上图中的红色箭头所指部分),L p和La都是通过对每个像素的交叉熵进行平均计算得到的;公式中 U(第几阶段的score map,上采样倍数)。

不同于FCN8的是,作者在这里加了学习权重(图右上角处的公式),用来平衡各个分支的损失。

数据集:cut-and-paste for small object(数据增广):

Motivation

因为扩充数据集不会增加计算量,而且之前也有研究表示,扩充更多的数据,效果也不一定比改进网络来的少。

Definition of small objects:作者定义的小目标

poles(电线杆), traffic lights, traffic signs, riders, motorcycles and bicycles

三条常识(不可以随便放置小目标,是有一定的先验知识的)

1)近大远小

2)左边和右边的物体还有区别

3)交通灯和交通标志通常安装在电线杆上。

骑自行车的人坐在摩托车或自行车的顶部。因此, 最好将同时出现的小对象提取到一起。

两个大类:pole_traffic ; motorcy_cle_bicycle ,根据距离三个子类: 近,中,远,在每个子类再分左,右对象。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

1. 把所有要提取的目标的像素作为前景,其他的全部作为背景。

2.通过连接不同的标签,区分不同的object

3.把原图和对应的标签截取出来对应分类

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

在放置目标时,还要保证上下文的关联,这你就要满足一些显而易见的先验知识。

1)pole_traffic通常是在人行道上发现的。

2)骑摩托车的人通常在马路上,而没有骑摩托车的人通常在人行道上。

如图,最左侧的是随机放置的;右侧的三个,是作者做的几个数据集,因为要做实验,所以做了好几个不同的,要分析小目标数量对效果的影响。右上角蓝色字体是小目标数量的排序。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...
labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

这部分实验是作者在分析,粘贴不同数量的小目标,结果如何。

Overall是mIou;SO是Small object;加粗的是扩增的小目标。

用改进后的数据集之后,小目标的结果明显有了提升。但是······

小目标粘贴多了,也会影响普通目标,因为小目标多了,会降低普通目标的比例,上表中SC2的train还有Bus就可以看出

。所以可见数据集不同尺度目标数量的平衡是十分重要的。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

作者在别的方法中使用了他的增广后的数据集,

当然那个SC2小目标粘贴的太多,就没在使用,这里用的是较少的SC1和3.

结果表明该方法增广的数据集,对其方法也有效。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

作者的方法,速度和运算量上,要有很大的优势。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

和其他的最好的方法相比,作者的方法兼顾了效率和精度。

因为应用中很多时候是在嵌入式的环境中使用的,所以效率也很关键,嵌入式的设备往往没有那么高的运算速度,所以就要求你的计算效率。

labelme 语义分割数据集_论文阅读分享(实时语义分割+数据集增广提升小目标)...

对比效果比较好的(右侧两个)方法,作者的方法在效果上和他们差不多,但是看他们的效率,和实时性(在上一张表中有,上半部分的第二个和第三个),可以说是碾压,作者的方法,优势就在于此。

作者的实时模型继承了可分离卷积、瓶颈和FCN8结构的优点:与常规卷积相比,可分离卷积在计算成本上具有明显的优势。瓶颈结构可以在很大程度上降低网络的平均宽度,同时又不会对网络的精度带来太多的负面影响。使用的FCN8结构的Feature map平均分辨率明显小于其他大多数分割结构。

通过实验也验证了该数据集增广方式的有效性。

总结:

目前这篇文章对我的工作可能没啥作用,但是他改进网络的方法,还有学习融合分支权重的方法,我觉得可以用上。

对于数据集增广那里,我也有一点疑问,是人工贴?还是跑的代码?

不管怎么分吧,我觉得可以考虑想想用自动的方式去扣小目标,并且自动分类和扩充,这样应该会更好。

也期待作者接下来的实时视频的语义分割。

欢迎讨论,有什么不对的地方也请大家指正。