摘要:以后语义宰割办法面临3个挑战。
本文分享自华为云社区《语义宰割数据集Cityscapes上SOTA办法总结》,原文作者:fdafad。
1 Cityscapes数据集介绍
Cityscapes评测数据集即城市景观数据集,在2015年由奔驰公司推动公布,是目前公认的机器视觉畛域内最具权威性和专业性的图像宰割数据集之一。Cityscapes领有5000张精密标注的在城市环境中驾驶场景的图像(2975train,500 val,1525test)。它具备19个类别的密集像素标注(97%coverage),其中8个具备实例级宰割。具体类别名称见于下表1。
表1 Cityscapes数据集中的类别名称
2 Deep High-Resolution Representation Learning for Visual Recognition(HRNet)
2.1动机
以后语义宰割办法面临3个挑战,其中第一个挑战是基于FCN的分辨率由高到低会损失信息。
语义宰割办法须要高分辨率特色,图中1展现了几种基于FCN的经典办法的,它们的共同点通过一个网络失去 低分辨 feature map,而后通过上采样或反卷积复原到高分辨率。
图1 基于FCN办法的几种经典构造
这些看起来不同,但实质外围思路是差不多的。这些办法存在一个毛病,分辨率由高到低会损失信息!
2.2 模型构造与外围代码
为了解决2.1中的问题,作者团队(MSRA和中科院)提出一个办法,外围思路是“不复原高分辨率,而是放弃分辨率”。如下图2中是一个根本的高分辨率放弃网络结构,该构造把不同分辨率的feature map并联,雷同分辨率的占一条分支,不同分辨率的占不同分支。并在不同分支之间增加通路(图中的斜线),造成high-resolution network。
图2 根本的high-resolution network构造
图2中的机构由4个stage组成,每一个蓝底色块为一个stage。在SOTA办法中,采纳的是HRNet-W48,其结构图如图3所示。
图3 HRNet-W48结构图
HRNet V2-W48是在4个stage(图3中蓝、绿、红、黄4种底色区域)的头部加上stem net(图3中红色底色区域),尾部加上segment head后(图中未画出)组成。上面依照先后顺序顺次对stem net、4个stage以及segment head进行介绍。
(1)stem net
stem net由两个Bottelneck组成,与Resnet的构造一样,通过两个Bottelneck当前,输出图像的维度由HW3变成了(H/4)(W/4)256
(2)4个stage
- 每个 stage 上的各个组件配置如下表2,以 hrnet_48 为例
- stage之间通过transition_layer连贯,stage内由反复的根本单元HighResolutionModule组成。
- HighResolutionModule由分支以及分支开端的fuse_layers组成。
- 每条分支内由反复的basicblock组成,具体数量见表2
表2 HRNet-W48模型配置表
A:stage间的transition layer:实现 stage之间通道转换和尺寸下采样,即图3中不同底色之间连贯的直线和斜线stage之间的斜线,指向不做任何解决。
图4 stage间的transition layer构建代码
B:构建stage
每个stag均是有若干反复的HighResolutionModule组成,因而构架stage的外围在与构建HighResolutionModule。构建HighResolutionModule分两步:构建分支、构建分支开端的fuse_layers。
构建分支:图3种的4个间断的basicblock即一个分支。
图5 HighResolutionModule内分支构建代码
构建fuselayer:
以下图中蓝色框为例阐明fuselayer层的处理过程:
图6 fuselayer层
图6 HighResolutionModule内fuselayer层构建代码
3 Object-Contextual Representations for Semantic Segmentation(OCR)
3.1 动机
以后语义宰割办法面临3个挑战中第二个挑战是没有解决好物体上下文信息。
上下文特色:图像中的每一个像素点不可能是孤立的,一个像素肯定和四周像素是有肯定的关系的,大量像素的互相联系才产生了图像中的各种物体,所以上下文特色就指像素以及周边像素的某种分割。具体到图像语义宰割,就是在判断某一个地位上的像素属于哪品种别的时候,不仅考查到该像素的灰度值,还充分考虑和它邻近的像素。
以后办法剖析上下文信息如下图7所示,比如说红色点是咱们关注的点,四周绿色几个点是采样进去的,能够看到,绿色点分为两局部,一部分是属于车的,还有一部分是属于背景的。以后办法并没有进行辨别。
图7 上下文信息图
那咱们该怎么办?咱们找这个物体,要通过四周物体的象素表征来帮忙。因而,咱们须要把红色像素四周属于 object 的pixel取出来做为上下文,如下图8所示:
图8 对象区域上下文信息图
3.2 模型构造与外围代码
外围思路:OCR提出了一种新的关系上下文办法,该办法依据粗宰割后果学习像素与对象区域特色之间的关系来加强像素特色的形容。模型构造如下图所示。
图9 OCR模型结构图
计算步骤:
- STEP1:取得粗宰割后果。
从backbone最初输入的FM,在接上一组conv的操作,而后计算cross-entropy loss。
- STEP2:取得对象区域特色。
联合图9中可知,该步骤须要两个分支的tensor进行矩阵乘:
Tensor1:pixel representation,骨干网络最初一层FM,维度为b×c×h×w->b×c×hw
Tensor2:soft object region,FM通过softmax后的后果,维度为b×k×h×w->b×k×hw
将Tensor1和tensor2相乘后的输入后果为b×k×c,b×k×c便是图9中对象区域特色的示意。
图10 对象区域特色计算代码
- STEP3:取得pixel-region relation。
联合图9中可知,该步骤须要两个分支的tensor进行矩阵乘:
Tensor1:pixel representation,骨干网络最初一层FM,维度为b×c×h×w->b×c×hw
Tensor2:STEP2中的对象区域特色,维度为b×k×c
代码中将两个tensor的维度进行了转化,转化两个tensor的维度别离为b×key×hw和b×key×k。两个tensor相乘后失去pixel-region relation的表达式为b×k×h×w。
- STEP4:计算最终对象特色上下文示意。
联合图9中可知,该步骤须要两个分支的tensor进行矩阵乘:
Tensor1:STEP3中取得的pixel-region relation,维度为b×k×h×w
Tensor2:STEP2中的对象区域特色,维度为b×k×c
两个特色相乘后便失去对象上下文特色,即图10中的红色块。
图11 step2-step4中相干代码
4 SegFix: Model-Agnostic Boundary Refinement for Segmentation(SegFix)
4.1SegFix的动机
基于FCN的办法面临的第三个挑战是边缘宰割不精确。下图12显示了宰割后果的误差图。下图12中的第一列显示了宰割GT图,第二列/第三/ 第四列别离显示了DeepLabv3 / HRNet / Gated-SCNN的误差图。 这些示例是从Cityscapes val set中裁剪的。 咱们能够看到,对于这三种办法,在细边界上都存在许多谬误。
图12 模型宰割后果误差图
基于教训察看的后果,即外部像素的标签预测更加牢靠,因而用外部像素的预测代替边界像素的最后不牢靠的预测,可能进步模型对边缘的宰割成果。提出了一种新鲜的模型无关的后处理机制,通过将边界像素的标签替换为对应外部像素的标签来缩小宰割后果,从而缩小了边界误差。
4.2模型构造与外围代码
依据4.1中的形容,天经地义的会牵引出两个问题:(1)如何确定边缘(2)如何关联边缘像素与外部像素。这里借助于一个边缘预测分支和一个方向预测分支来实现。在取得良好的边界和方向预测之后,就能够间接拿来优化现有办法预测的宰割图了。所以另一问题在于,如何将现有的针对边缘的关联方向的预测利用到理论的预测优化上。这次要借助于一个坐标偏移分支。这三个分支形成了SegFix的次要构造,其结构图如图13所示。
图13 SegFix模型结构图
边缘预测分支:
方向预测分支:
获取真值:
坐标偏移分支:
5 Hierarchical Multi-Scale Attention for Semantic Segmentation
5.1动机
大尺度物体在较小分辨率的特色图上会宰割的更好,而小尺度物体则须要精密的细节去推理宰割后果,所以在较高分辨率的特色图上进行预测后果会更好。且论文也举例剖析了此状况的原因,如下图所示。
图12 不同尺寸物体在不同分辨率上的宰割体现
因而本文采纳注意力机制的办法让网络去学习如何最好地组合多个尺度的推理预测。十分直观的做法就是输出不同分辨率的图片,让网络学习一下,什么样的物体应该用什么样的分辨率。
5.2模型构造
图13 分层多尺度注意力机制
训练阶段:
本文提出的attention机制与之前的某个办法相似(Attention to scale: Scale-aware semantic image segmentation,图13中左侧办法),对于每个尺度学习一个密集的mask,而后不同尺度的预测再联合起来,这些多尺度预测通过在mask之间进行像素相乘,而后在不同尺度之间进行像素求和,从而失去最终后果。
在本文的分层办法中,学习相邻尺度之间的绝对attention掩码,而不是学习每个固定尺度集的所有attention掩码。在训练网络时,只训练相邻尺度对。如上图13所示,给出一组来自lower scale的特色图,预测一个两个图像尺度之间的密集的相干attention。在试验中,为了失去scaled图像对,应用一个输出图像而后将其下采样两倍利用scale尺度2,这样,就有一个1x的输出和一个0.5x的缩放输出,当然其余scale-down尺度也能够抉择。须要留神的是,网络输出自身是原始训练图像的从新缩放版本,因为咱们在训练时应用图像缩放加强。这使得网络学会预测一个范畴内的图像尺度的绝对注意力。
在训练过程中,给定的输出图像按因子r进行缩放,其中r= 0.5示意向下采样按因子2进行,r= 2.0示意向上采样按因子2进行,r= 1示意不进行操作。对于训练过程,抉择r= 0.5和r= 1.0。因而,对于两种尺度的训练和推断,以U为双线性上采样操作,将∗和+别离作为像素级的乘法和加法,方程能够形式化为:
上式中注意力权重的计算步骤:
1)取得OCR模块输入的augmentations,即图9中的正蓝色块。
2)见过若干次间断的conv-bn-relu后,取得维度为b×1的向量
3)对b×1的向量进行sogmoid后,便取得一个batch上的注意力权重。
推理阶段:
在推理阶段,分层的利用学到的注意力来联合N个不同的scale预测。对于各尺度的组合优先思考较低的scale,而后逐渐回升到较高的scale,因为,它们具备更多的全局上下文信息,对于须要改良的scale能够应用更高scale的预测。
多尺度推理时,各尺度组合先后顺序:{2.0,1.5,1.0,0.5}
6 论文链接
1.HRNet:https://arxiv.org/abs/1908.07919
2.OCR:https://arxiv.org/abs/1909.11065
3.SegFix:https://arxiv.org/abs/2007.04269
4.Hierarchical Multi-Scale Attention:https://arxiv.org/abs/2005.10821
点击关注,第一工夫理解华为云陈腐技术~