基于卷积神经网络的遥感图像汽车识别
2018-10-13程彬炜安博文赵明
程彬炜,安博文,赵明
(上海海事大学信息工程学院,上海201306)
0 引言
遥感技术是一种使用卫星来采集地球的各种数据、信息的技术方法。遥感技术主要应用于军事侦查等方面。经过20世纪以来的不断进步与发展,遥感技术已经有了很大的进展,并且逐渐的“平民化”,不仅仅应用于军事领域,而且也深入了日常生活的便利之中。基于遥感图像的目标识别是近些年来交叉学科领域的一个热点。由于遥感图像包含了大量可被使用的信息而且能够进行连续拍摄,因而它的应用领域十分的广泛,随着遥感图像的分辨率大幅度的增加,例如汽车、飞机、军舰等的大型附体或者说是重要识别目标也可以清晰地显现出来。本文针对识别目标中的“汽车”这一类进行研究。
在遥感图像汽车识别这一目标之下,我们主要需要完成以下两个目标,一是通过恰当的方法实现提取遥感图像的特征,二是根据适当方法及其改进方法的某些算法达到“识别”也就是“分类”的作用,从而达到我们最终通过遥感图像识别汽车的目的。
1 卷积神经网络
卷积神经网络(Convolutional Neural Networks,CNN)是深度学习中的一个重要的学习模型,CNN在图像的处理等方面有着突出的良好效果,因此图像的处理方向上就会经常使用CNN模型,在具体的实践操作过程中,与其他方法手段的对比也证明了CNN在这个领域内有着独特的优势。卷积神经网络在上个世纪因为研究动物大脑对外界环境的图像处理时被发现,通过构造一个复杂的模型进行研究动物大脑的图像处理功能,因此这个模型在处理图像的领域内极为突出,并逐渐延伸到计算机领域。如今学术界逐渐重视起卷积神经网络在计算机视觉领域中的突出贡献。通过一定的研究表明,卷积神经网络能够最大限度地减少输入原始图像时的损失,其独特之处就在于能够按照原始的图形信息进行数据收集与数理,并且在1000多个自然领域中都证实了该模型的可靠性,因此可以用来进行检测实际应用中的目标物体,帮助人类大大提高物体识别的准确率,在检索及识别领域内有着非常长远的应用意义。
卷积神经网络在很大的程度上是通过模拟动物大脑的图像处理来完成自身任务,学者在对动物的神经元进行实验发现,脑部中部分神经智慧对处于特定边缘的角度才会产生一定的反应,通过神经之间的传递进行连接,在脑部中枢神经中产生图像的意识,因此这就是卷积神经网络的架构基础。在具体的模型应用中,主要进行相关数据的卷积以及修正过程,在此基础进行采样、连接,输入多维空间向量,最终采用分类器进行图片分类。卷积神经网络由卷积层、池化层以及全连接层组成,卷积层是卷积神经网络的关键核心,帮助图片的特征进行提取,通过第一层的运算能够把三维的图片转化成平面上的特征图,卷积原理如图1所示:
图1 卷积原理
卷积神经网络模拟动物大脑的图像处理,利用滤波器模仿神经元对外界信息的回应,在卷积运算中,滤波器就能得到一些信息,在后续的连接过程拼接成图像,如图2所示。
图2 卷积特征
卷积神经网络在卷积层之间存在池化层,主要作用是降低模型中的计算量以及相关参数,能够更好控制拟合现象。全连接层一般情况下位于最后一层,主要机型图像信息的连接,最终形成结果。
由于卷积神经网络的自身结构特征,信息收集主要来源于每一层神经网络的连接,因此计算量通常成指数倍增长,较为复杂,在实际运动当中主要通过局部感知以及参数共享两组特点来克服一定的问题,对参数数量可以有着一定的降低。局部感知主要因为我们在处理图像信息的过程中有时候并不需要所有的信息,而只对局部信息有着重要的联系,对某些不必要的部分可以忽略不计,因此,在神经网络中,可以先从局部出发,了解局部存在的重要信息,再通过更加高层次的连接先进行整体感知,得到全局信息,对于一张1000×1000的图片,仅仅全连接处理的时候,每一个神经元都处理1000×1000的参数,需要10的12次方个参数参与,但如果进行局部处理,每个神经元只需要进行10×10的信息处理,则参数值需要10的8次方,这样大大精简的计算数量。
通过前文所述的局部感知,在进行10×10的局部处理过程中,我们可以近似的把这一小点当做特征的提取,能够进行全局的拓展,每一个神经元可以进行局部处理的参数共享,对于1000×1000的信息就能够只需要100个参数,进行降低参数的数量级,这就是卷积神经网络的参数共享的特性。
2 基于卷积网络模型的算法构建
2.1 汽车识别算法流程
对基于卷积神经网络模型的进行遥感汽车识别,首先需要对图像进行预处理,本文基于图的超像素分割的原理首先进行图像的分割,形成很多待检测的窗口,再通过卷积神经网络进行区分和识别,寻找目标车辆,最后利用非极大值来进行抑制筛选,以得到最终的处理结果。
在进行遥感图像汽车的识别工作之前,首要工作是需要训练卷积神经网络,通过在数据中的图片进行超像素处理,进行图片的分割得到很多分块。在这些超像素分块的信息总提取出自己所需要的样本。这时候就可以对卷积神经网络进行训练。在真正进行车辆的检测过程中,提出一张新的遥感图像,这张图像需要被处理,就要用算法首先提取所感兴趣额的区域,在进行分割处理,以自身的质心处为标准,得到所需要的待检测分块,这些模块首先使用前文训练完成的深度卷积神经网络进行检测处理,当结果表明该区域存在车辆时进入下一步,最后通过抑制手段过滤无用的区域,最终得出结果,作为遥感图像汽车识别的最后结果。
2.2 基于卷积网络的遥感汽车识别算法构建
本文拟采用的卷积神经网络由三层卷积层以及三层池化层组成,每一个卷积图与其上一层的特征图的个数相对应,从起始的输入值一直到最终的输出值中的特征逐级增加,逐渐变得更加抽象和复杂,最后就是全连接层,在全连接层中特征图转换向量,最后以相应的参数产生结果。结果以二分类问题结果产出,控制识别检测区的车辆的是否判断。最终输出两个结果。每一个结果分别表示各自占有的概率,表示最终的车辆判断。
图3 非极大值抑制示意
图4 6层网络的结构输出结果示意
图3 中为检测窗口,分割出来的像素块经过一定的处理,为深度卷积神经网络进行更方便的识别与处理,在概率高于一定的阈值情况下留存下来。在一定程度上,这几个窗口显示的检测结果由于含有目标物体,因此都可以认为是正确的结果,但是每一个窗口检测出的结果都是针对同一个目标,但是同一个目标在多个窗口中的表示较为多余,因此在对于精确表达位置的过程中具有较大难度,不仅仅干扰目标的确定,而且造成资源的浪费以及结果的多余,因此我们更需要只用一个窗口来更准确目标结果,因此在这里引用非极大抑制的方法,目的是过滤掉非最大值的其他窗口,首先需要在多个窗口中找到得分最高的窗口,按照前文的叙述中使用汽车概率为1的窗口,根据相应的面积比找出与目前高分的重叠区,一般为0.4或者0.6等,将这些重叠率超过一定程度的窗口都进行过滤并删除的处理,将最终的结果控制为一个窗口,在接下来的过程中进行不断重复,找出除了最高之外的其他窗口,在经过一段时间的筛选之后,就基本完成了非极大值抑制的处理。本文选择阈值设置为0.6,原因是因为通过对路面上的观察发现,0.6比0.4更加能够在抑制处理的过程中保持较好的效果,避免因为汽车相邻的原因而被过度筛选掉,无形中降低了检测的准确性。
图4是对6层卷积神经网络的结构可视化处理,每一个特征图在图中表现为一个矩形,并根据由低到高的层次进行排列,对真实网络中进行数值的归一化操作,并从中能够较为明显看出,右边的特征图表达出更为复杂的特征,因此所包含的信息更加抽象。
3 实验验证
实验数据从谷歌地图上进行引用截取,一共一百多张图片,在图像中每两个相邻的像素之间的真实长度0.135米。每张图像都经过了预处理,通过人工方法在汽车的所在位置标注中心的实际坐标,并选择了两张包含一两百辆汽车的图像作为测试使用,数据的收集共含有三千多辆车,图片中像素个数为51454582个,前文介绍过超像素分割的算法,以此进行参数的调适,经过不同参数的对比研究不同算法对汽车召回的实际影响,在实际的过程中采用超像素分割。其中,汽车的召回率为召回的汽车数量与数据中的总汽车数量的比值。超像素分割算法对最终的召回效果有着不同的影响,在都对算法后续的处理时间也有着一定的影响,较多的超像素块影响目标的检测,在不考虑其他因素的影响下,超像素块的数量越少越好,但是从另外一个角度上来说,超像素块越少、汽车的召回率有者完全相反的结果。召回率又称为查全率,在实际召回的车辆数量个数会用来记性标记的处理以及阈值的设定。
图5 不同超像素分割对汽车召回的不同影响
根据图5所示,文章对比不同超像素分割算法,并且以一定的参数为基准,对比整体之下产生的超像素个数,绿色部分已SLIC算法为基准,红色部分已基于图的分割形式为主。每个点与相应算法中的参数设置相对应,横坐标表示对应产生的像素块个数,纵轴表示对应检测效果。根据上图所示,超像素块的像素个数越少,数量块越多,当纵轴越往上,则检测效果程度越高,汽车的召回率越高,所采用的研究方法就是基于图的超像素分割。
图6 基于图的超像素分割效果
根据图6可以看出,超像素的分割块分布较为细腻,这样对结束之后的其他汽车检测具有一定的帮助,在分割的时候尽可能使得以目标车辆为中心的矩形框对其他车辆有一定的囊括性,对非车辆部分保留一定的粗犷,尽可能不去影响的车辆的检测识别效果。其中包括的像素个数越多,总体超像素块越少,对后续的算法会有一定的精简效果。
对比几种不同的检测识别效果,并与HOG特征进以及局域HOG的SVM算法进行分类对比,得出这种方法对遥感图像汽车的识别有着较为优异的效果,在实验中也存在着些许不合理的地方,为以后的改进预留了一定的学习方向。深度学习的模型可以当做一个处理问题的暗盒,其最终识别效果与样本的总数存在一定的关系,本文实验的样本包含四万张图片,采用了一种检测训练的学习模式,因此样本的结果分为正、负两个部分,总体的数量分别分成两个一半,训练的样本数量与测试的样本数量保持为3:1。具体的结果如图7所示:
根据前文介绍的集中网络模型,实验中的深度学习模型有GoogleNet、VGGNet等,根据分类的结果可以较为明显的看出,GoogleNet模型的实验效果明显高于其他的模型,在分类识别的上的精度几乎达到1,达到了99.43%,根据实验的模型来看,由于网络参数的影响,微调分类方式比全训练模式要好。
4 结语
本文给出了基于卷积神经网络去识别遥感图像中车辆的方法,该算法可用于解决实际工作中的一些相关问题,具有一定的实际意义。但此方法对于图像的局限性比较大,并且数据量不足,所以在具体实用中还需改进加强。