寒假的时候看了一篇论文——Multimodal Neural Networks: RGB-D for Semantic Segmentation and
Object Detection这篇论文是2017年发表的一篇会议论文介绍将深度图引入计算机视觉的处理任务,下面是我对这篇文章的一些解读。



1.引言


图像内容的语义解释是计算机视觉中最基本的问题之一,并且在各种应用中具有最高的重要性。极大数据集的可用性推动了强大的数据驱动机器学习方法的发展。特别是,卷积神经网络(CNN)已经在各种不同的任务和应用中推动了图像理解领域的发展。同时,分辨率不断提高的相机成本在过去几年大幅下降。我们预计这种趋势会持续下去,因此将重点放在可以处理这种高分辨率图像的方法上。同时,我们对能够满足高实时要求的高效方法感兴趣,例如,机器人或自动驾驶。自然地,计算机视觉社区的主要焦点在于彩色图像的解释,其忽略了来自其他域的互补输入的可用性,例如,深度,红外线或运动。在这项工作中,我们将重点放在深度数据上,作为CNN的附加输入。但是,所提出的方法很容易适用于其他模式。

由于像ImageNet [1],MS COCO
[2]或Place[3]等大型数据集仅提供彩色图像并不提供标签,因此无法使用最先进的CNN方法来训练。已经出现了两种不同方法来处理这个问题。
要么只有少量的数据被用于训练,同时接受导致的降级的性能。或者将现有的RGB网络简单地应用于新域,并与负责颜色域的那些分支进行融合。

本次介绍一种新颖的网络体系结构,它实现了来自各个输入域的特征的中间级融合。
这结合了先前方法的两个优点:首先,网络可以通过联合特征处理利用高度复杂的域内依赖性,以最大化网络的语义准确性。其次,它允许在大型数据集上重用现有的初始化。
此外,我们证明,以颜色作为输入设计和训练的网络在深度域中不是最理想的,并且提出了优化的适应架构和初始化方案,从而在语义准确度方面产生显着的改进。
实验表明,使用这种方法在深度数据上学习的滤波器与通过对RGB数据进行训练所获得的滤波器大不相同。

总体而言,本文提出了一种简单而有效的新型网络体系结构,以及除了单一颜色信息之外还利用深度数据的初始化方案。
这种方法可以显着改善计算机视觉中两种不同的常见任务:语义分割和对象检测。 它基于标准的最先进的网络架构,可以轻松适应不同的模式和任务

2. 基于RGB-D的语义分割和目标检测方法


本章节,我们提出了一种新颖的深度神经网络架构,除了单一的颜色信息之外,还可以利用深度图像等其他方式。我们使用Googlenet[4]并将其用于深度数据优化的网络分支进行融合。注意,这项工作中描述的深度信息也适用于其它形式,例如:光流或红外线,基本网络Googlenet也可以修改成其它的网络体系结构如:NiN[5],VGG[6],Resnet[7]。


如图1所示是这篇文章的网络结构图,该网络结构主要由两部分组成第一部分是深度网络也就是NiN网络[5],该网络主要是处理图像的深度信息,提取深度图像特征,第二部分是卷积网络,该网络使用的构架是Googlenet[4],输入RGB三通道特征图在Googlenet[4]网络中进行特征提取,并将深度NiN[5]网络提取的特征融入Googlenet[4]网络中去。

                               

图1.中级网络结构图

2.1 深度网络


本次介绍处理深度图的网络是NiN模型,该模型实际上是在一种在CNN网络上的改进的网络,经典CNN中的卷积层其实就是用线性滤波器对图像进行内积运算,在每个局部输出后面跟着一个非线性的激活函数,最终得到的叫作特征图。而这种卷积滤波器是一种广义线性模型。所以用CNN进行特征提取时,其实就隐含地假设了特征是线性可分的,可实际问题往往是难以线性可分的,GLM(广义线性模型)的抽象能力是比较低水平的,自然而然地我们想到用一种抽象能力更强的模型去替换它,从而提升传统CNN的表达能力[8]。


什么样的模型抽象水平更高呢?当然是比线性模型更有表达能力的非线性函数近似器比如MLP(多层感知器),NiN模型使用mlpconv网络层替代传统的convolution层。mlp层实际上是卷积加传统的mlp(多层感知器),因为convolution是线性的,而mlp是非线性的,后者能够得到更高的抽象,泛化能力更强。在跨通道(crosschannel,cross
feature map)情况下,mlpconv等价于卷积层+1×1卷积层,多层感知器相比于传统的CNN网络主要有3个优点

1. 非常有效的通用函数近似器

2. 可用BP算法训练,可以完美地融合进CNN

3. 其本身也是一种深度模型,可以特征再利用

                                       

图2.(a)线性卷积层,(b)多层感知卷积层


图2(a)是传统CNN网络中使用的线性卷积层,图2(b)是NiN模型中使用的多层感知卷积层,采用NIN改进CNN后,我们增强了局部模型的表达能力,这样我们可以在分类层对特征图进行全局平均池化,这种方式更有意义和容易解释(可将最后一层输出的特征图的空间平均值解释为相应类别的置信度,为什么可以这样解释呢?因为在采用了微神经网络后,让局部模型有更强的抽象能力,从而让全局平均池化能具有特征图与类别之间的一致性。同时相比传统CNN采用的全连接层,不易过拟合(因为全局平均池化本身就是一种结构性的规则项)。

                                  


图3.NiN模型结构图


图3是3层mlpconv的完整网络结构经典CNN为了解决广义线性模型抽象能力不足的问题,采用了过完备的滤波器集合来补偿,也就是说学习不同的滤波器用来检查同一特征的不同变体。但是过多的滤波器会对下一层施加额外的负担,因为下一层要考虑来自前一层所有的特征变体的组合。为什么采用NIN是有价值的?因为高层的特征来自低层特征的组合,在低层特征组合成高层特征之前,对每一局部块进行更好地抽象是有利的。

对于深度分支,我们训练和修改NiN
[5]变体以获取唯一的深度数据,并使用Cityscapes[9]数据集[6]的大型半监督部分进行初始化。一个NiN网络由多个模块组成,每个模块进一步由一个卷积层组成,其内核大小大于捕获空间信息和多个1x1卷积核的卷积层。
这种模块相当于一个多层感知器(MLP)。 为了进行分类,平均池化层会对每一类得到一个得分。

2.2 RGB特征提取网络     


图像的RGB三色通道的特征提取,本文使用的Googlenet网络,当然除了Googlenet也可以使用其它的基本特征提取网络比如:Resnet,Vgg16等网络。


Googlenet是由9个Inception模块组成,而每个模块又由若干个卷积层和池化层组成,Inception模块如图4所示,该模块采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合,之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了,同时在网络中引用了3*3的池化层,网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加,但是,使用5x5的卷积核仍然会带来巨大的计算量。
为此,Googlenet借鉴NIN2,采用1x1卷积核来进行降维。


例如:上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256。其中,卷积层的参数为128x5x5x256。假如上一层输出先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32
+32x5x5x256,大约减少了4倍。



图4.Inception模块结构

Googlenet的整体结构如图5所示,GoogLeNet采用了模块化的结构,方便增添和修改,网络最后采用了average
pooling来代替全连接层,想法来自NIN,事实证明可以将TOP1
accuracy提高0.6%。但是,实际在最后还是加了一个全连接层,主要是为了方便finetune(微调网络),,虽然Googlenet移除了全连接层,但是网络中依然使用了Dropout,为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度。文章中说这两个辅助的分类器的loss应该加一个衰减系数,但看caffe中的model也没有加任何衰减。此外,实际测试的时候,这两个额外的softmax会被去掉。 

                                     

图5.Googlenet网络结构图

2.2 RGBD整体网络


整体网络结构如图1所示,第一部分由GoogLeNet组成,卷积层和最大池层可以快速降低空间分辨率。这部分之后是九个初始模块,其中包括进一步合并层,每个层将空间维数减半,如图1所示。首先,RGB和深度输入可以直接连接,形成新的第一卷积层。我们将此模型称为早期融合。其次,RGB网络和深度分支的分数可以在最后连接,然后是1x1卷积作为分类器。我们将此称为后期融合。最后,深度分支的分数可以在RGB网络中的一个最大池层之前合并,再次是1x1卷积层。在这种中级融合方法中使用的NiN模块的数量取决于RGB网络中所需的空间尺寸。因此,我们根据NiN模块的数量调用这些模型。

理论上,如上所述的具有早期融合的多模式CNN可以通过学习仅考虑一种输入形式的特征来开发独立的网络流。
因此,早期融合通常比中层融合更具表现力,它可以利用已经在CNN低层次计算上已经存在的模态之间的相关性。 然而,更高的表达能力可能需要大量数据进行训练。
后来的融合的好处是大多数网络初始化可以直接重用,而不必将网络权重全部重新训练。

3. 实验结果和分析

在本次实验中我们使用Cityscapes数据集,在城市内部交通场景中提供19个类别的像素级语义注释,例如人员,汽车,道路等。除了这些精美的注释之外,还提供了
20 000个粗略注释的图像。其中物体通过多边形进行标记。虽然这样许多像素保持未标记,但每个注释像素都被正确标注。

3.1 深度网络实验结果

我们使用20000个粗略注释的图像来训练一个NiN模块,用于场景标记,深度网路由三个NiN组成,每个模块具有两个1×1卷积层。
我们使用全卷积网络并添加两个跳过层,以便利用网络扩展部分的低级图像特征[10]。 Batchsize选择10(Batchasize指每次训练输入网络中的图像数量
),并在培训期间使用随机初始化来解决GPU内存限制问题。在这个初始化阶段之后,该网络在2975个精确标注的Cityscapes数据集上进行了微调。
为了评估,我们使用500个验证图像。我们选择IoU作为评价指标[9],IoU全称交并比(Intersection-over-Union),是产生的候选框(
candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1,表1在
cityscapes数据集[9]上进行微调后对视差网络分支的初始化,表的上部显示随机权重初始化的结果。原始NiN中的大量通道阻碍了成功的训练。
下面显示了不同初始化方案的影响。与在ImageNet上初始化的变体相比,在粗略注释的图像上提出的初始化产生显着改善的结果

表1.NiN模型在不同数据集下初始化结果

                                 

我们认为深度数据的CNN应该与RGB数据的CNN明显不同。首先,我们仅根据深度数据来训练CNN,丢弃可用的RGB输入。表1给出了该模型与原始NiN
的比较结果。从表格上半部分的第一个观察结果表明,我们不能仅在cityscapes数据集上训练原始NiN。然而,所提出的具有1/3
信道的网络产生不错的结果。其次,在RGB ImageNet数据上训练权重的初始化指导学习过程,并且产生4.5
%的改进。不过,对实际深度数据进行初始化会带来显着的改进。总的来说,网络参数的数量减少到1/3,导致计算成本减少1/3
。另一方面,结果显著改善。第一卷积层中所得到的滤波器分别在深度和颜色输入之间基本不同,可以肯定的是,我们的模型中有意义的滤波器数量更高,我们解决了网络中滤波器数量减少的问题。

3.2 RGBD物体检测

对于对象检测,我们也使用Cityscapes数据集[6]。由于所有对象类型都具有高度精确的标记实例,因此可以简单地从像素注释中提取边界框。
对于训练,我们使用公开可用的训练数据集和2975个完全注释的图像。由于测试数据并不公开,我们测试了验证数据集的500张图片。由于并不是所有的类别都是“类似对象”
,所以我们只使用cityscapes数据集的一个子集:车辆(城市景观:汽车,卡车,公共汽车),自行车(城市景观:摩托车,自行车),交通标志,交通信号灯,人
城市风景:人,骑手)




对模型的性能进行评估,不仅需要有效可行的实验估计方法,还需要有衡量模型能力的评价指标,这就是性能度量。性能度量反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果。

                                          

如图6(a)是真实区域,图6(b)是实验结果图。

        
1区域是True-Positive(TP),就是真正例;2区域是True-Negative(TN),就是真反例;3区域就是False-Positive(FP),就是假正例;4区域是False-Negative(FN),就是假反例。查准率(Precision)和查全率(Recall)的定义为:

               

         查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低[11]。

对于我们的实验,我们使用最先进的“单发多盒探测器”框架工作(SSD)[12]。使用基于GoogLeNet的完全卷积方法,并使用建议和预先训练好的NiN
体系结构扩展RGB框架以获得深度图像,结果首先,我们仅使用RGB输入将SSD适配到GoogLeNet架构,其次,我们添加了深度分支。分类和平均精度 -
回忆曲线都显示在图7中。.所有类别的分类都与深度数据类似。特别是人类和自行车类的表现显着增加。如图所示。通过使用我们的方法,与传统的RGB
方法相比,可以更加鲁棒和更准确地检测远距离的5个物体

                                       

图7.5种物体的PR曲线

3.3 RGBD语义分割

我们利用5000个精细注释的图像,即2975用于训练,500个用于测试的验证图像,Cityscapes数据集和IoU作为以前的评估指标
我们不使用验证集中的图像进行训练。使用了batchsize批量大小为2。收敛后,我们以1/10的系数逐步降低学习速率,直到没有观察到验证集的loss进一步改进。
对于每种方法,我们根据验证集上的IoU报告最佳结果。将根据以下实验的最佳模型的结果提交给Cityscapes基准服务器,以对剩余的约1500张测试图像进行评估

融合首先,确定融合颜色和深度分支的最佳水平。为此,我们对早期融合,晚期融合和所有五种中级融合模型NiN-1到NiN-7进行了培训和评估,并将其与RGB
基线进行比较。结果如图8所示,首先显示额外的深度输入可以显着帮助所有融合变体。与基准NiN-2模型的69.1%相比,RGB基线达到了63.9%的IoU(分类)。
这是大约10%的相当大的改善。此外,显而易见的是,在2个NiN模块之后的中等熔合导致最佳结果,最常用的晚融合仅产生67.1%IoU。由图可知NiN-1和
NiN-7变体表现最差。 NiN-1模型中的特征拼接直接发生在局部响应归一化之后,这可能会损害与深度分支的非归一化特征相互作用

                             

图8.融合模型IoU 

4. 结论

本文提出了一种新颖的通用CNN体系结构,除了唯一的颜色信息之外,还利用来自其他模式的输入信息。为此,GoogLeNet
扩展了一个特别适合作为补充输入的分支。联合网络共同实施了中级融合,允许网络在中等功能级别上利用跨模式相互依赖性。到目前为止,最先进的RGB-D的CNN
网路已经使用了预先训练过颜色数据的网络权重。相比之下,提出了一种优越的初始化方案来独立预训练多模式CNN的深度分支。在端到端训练中,使用具有挑战性的
Cityscapes数据集联合优化了网络参数。评估是在两个不同的常见计算机视觉任务上进行的,即语义分割和对象检测。对于后者,本文还介绍了如何从
Cityscapes中的实例级别注释中提取对象级别的groundtruth,以便训练一个强大的SSD对象检测器。在全面的实验中,显示了所提出的多模态CNN
的有效性。 RGB的GoogLeNet和进一步的RGB-D网络基线都表现优异。




 

 

 





 





 
                                                 

                                          

 

        图6 (a) Ground-turth                                    图6(b)FG-map

如图6(a)是真实区域,图6(b)是实验结果图。

        
1区域是True-Positive(TP),就是真正例;2区域是True-Negative(TN),就是真反例;3区域就是False-Positive(FP),就是假正例;4区域是False-Negative(FN),就是假反例。查准率(Precision)和查全率(Recall)的定义为:

                                    ,                                 <>(6)

                                    。                                  <>(7)

         查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低[11]。

对于我们的实验,我们使用最先进的“单发多盒探测器”框架工作(SSD)[12]。使用基于GoogLeNet的完全卷积方法,并使用建议和预先训练好的NiN
体系结构扩展RGB框架以获得深度图像,结果首先,我们仅使用RGB输入将SSD适配到GoogLeNet架构,其次,我们添加了深度分支。分类和平均精度 -
回忆曲线都显示在图7中。.所有类别的分类都与深度数据类似。特别是人类和自行车类的表现显着增加。如图所示。通过使用我们的方法,与传统的RGB
方法相比,可以更加鲁棒和更准确地检测远距离的5个物体



图7.5种物体的PR曲线

3.3 RGBD语义分割

我们利用5000个精细注释的图像,即2975用于训练,500个用于测试的验证图像,Cityscapes数据集和IoU作为以前的评估指标
我们不使用验证集中的图像进行训练。使用了batchsize批量大小为2。收敛后,我们以1/10的系数逐步降低学习速率,直到没有观察到验证集的loss进一步改进。
对于每种方法,我们根据验证集上的IoU报告最佳结果。将根据以下实验的最佳模型的结果提交给Cityscapes基准服务器,以对剩余的约1500张测试图像进行评估

融合首先,确定融合颜色和深度分支的最佳水平。为此,我们对早期融合,晚期融合和所有五种中级融合模型NiN-1到NiN-7进行了培训和评估,并将其与RGB
基线进行比较。结果如图8所示,首先显示额外的深度输入可以显着帮助所有融合变体。与基准NiN-2模型的69.1%相比,RGB基线达到了63.9%的IoU(分类)。
这是大约10%的相当大的改善。此外,显而易见的是,在2个NiN模块之后的中等熔合导致最佳结果,最常用的晚融合仅产生67.1%IoU。由图可知NiN-1和
NiN-7变体表现最差。 NiN-1模型中的特征拼接直接发生在局部响应归一化之后,这可能会损害与深度分支的非归一化特征相互作用



图8.融合模型IoU

 

 

4. 结论

本文提出了一种新颖的通用CNN体系结构,除了唯一的颜色信息之外,还利用来自其他模式的输入信息。为此,GoogLeNet
扩展了一个特别适合作为补充输入的分支。联合网络共同实施了中级融合,允许网络在中等功能级别上利用跨模式相互依赖性。到目前为止,最先进的RGB-D的CNN
网路已经使用了预先训练过颜色数据的网络权重。相比之下,提出了一种优越的初始化方案来独立预训练多模式CNN的深度分支。在端到端训练中,使用具有挑战性的
Cityscapes数据集联合优化了网络参数。评估是在两个不同的常见计算机视觉任务上进行的,即语义分割和对象检测。对于后者,本文还介绍了如何从
Cityscapes中的实例级别注释中提取对象级别的groundtruth,以便训练一个强大的SSD对象检测器。在全面的实验中,显示了所提出的多模态CNN
的有效性。 RGB的GoogLeNet和进一步的RGB-D网络基线都表现优异。