基于深度卷积神经网络的无人机识别方法研究∗
2019-03-01
(海军装备部 北京 100071)
1 引言
近年来,无人机飞行成为了一种热门的户外活动,使用量逐年增加。但是无人机容易发生跌落、碰撞等安全事故,尤其是在人群和建筑物稠密的地方,存在较大的安全隐患。因此,无人机识别系统的搭载势在必行。无人机识别系统中重要组成部分是图像识别,其功能是将摄像头捕捉到的图像或视频信息进行处理,从图像或视频中识别出无人机,从而实现对无人机的识别、监控和预警。基于图像的无人机识别主要包括无人机图像检测(包含特征提取)和无人机分类。在图像识别领域中,常用的特征提取方法有 HOG[1]、SIFT、Gabor[2]小波图像纹理特征提取、高斯马尔可夫随机场(Gaussian Markov Random Field,GMRF)[3]遥感图像特征提取等,结合后期的分类方法[4],取得了较好的识别率。目前,这些特征提取方法都是人工来完成的,所以存在如下问题:各类特征提取方法非常依赖具体的应用环境,算法要求的条件严格、鲁棒性不好;复杂背景下多无人机特征提取困难等。
针对以上问题,随着大数据、深度学习等技术的迅速发展,尤其是卷积神经网络的广泛应用,以及微软亚洲研究院基于深度卷积神经网络的计算机视觉系统,在ImageNet 1000挑战中首次超越了人类识别的能力,图像识别的精度取得了很大进步,目标检测方法也采用深度神经网络来完成。文献[5]提出了基于卷积神经网络的信息融合识别方法;文献[6]提出了基于深度神经网络的小尺度道路标示识别框架;文献[7]提出了基于卷积神经网络的无人机循迹方法;文献[8]提出了基于稀疏贝叶斯分类器的汽车车型识别方法;文献[9]提出了一种用于图像目标识别的神经网络及其车型识别方法;文献[10]提出了基于模糊神经网络的电力巡线无人机避障技术研究;文献[11]提出了基于卷积神经网络的城管案件图像分类方法。这些方法是在传统卷积神经网络(Convolutional Neural Network,CNN)的基础上,加入了形变处理层,最终学习的特征具有很强的判别力。推广到特定物体的识别乃至场景识别,深度学习也有很多方案。由于无人机图像信息量丰富,且无人机的飞行状态多样,因此识别难度较大。本文基于现有的理论,提出了一种基于深度卷积神经网络的无人机识别方法。
2 相关工作
2.1 卷积神经网络CNN
2006 年,Hinton[12]等首次提出深度学习的概念,并开启了深度学习的研究浪潮,其认为:多隐含层的人工神经网络能够更好地模拟人脑地思考过程,具有更加优异的学习能力,能够对数据进行更本质的刻画,从而提高可视化或分类的能力。卷积神经网络CNN是深度学习中第一个真正多层结构学习算法,其在图像识别领域优势明显。它利用感受野(Receptive field)、局部连接(Sparse Connectivity)等概念极大地减少了参数量,降低了网络模型的复杂度,提高了训练效率,且网络对于平移、缩放的各种变形都具备高度不变性,具有良好的鲁棒性和运算效率。在网络输入的是多维图像时,图像可以直接作为网络输入,避免了传统识别算法中复杂的特征提取和数据重组过程。在二维图像处理时也有较多优势,如网络自行抽取图像特征包括颜色、纹理、形状及图像的拓扑结构。
在图像识别任务中,一个典型的卷积神经网络结构如图1所示。根据不同的处理任务,开展设计网络结构、初始化参数、定义损失函数以及设定超参等准备工作。将经过预处理后的训练数据送入到网络结构中,分别计算卷积层、降采样层和全连接层等的前向结果,最后根据数据标签及前向结果最小化损失函数,求解网络模型参数。从图1可以看出,卷积神经网络与传统深度神经网络的最大区别就是卷积层和降采样层替换了部分全连接层。
图1 卷积神经网络结构图
在CNN的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征平面(Feature Map),每个特征平面由一些矩形排列的神经元组成,同一特征平面的神经元共享权值,这里共享权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中,卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。降采样(Sub-Sampling)层也叫做池化(Pooling)层,通常有最大池化(Maximum Pooling)或平均池化(Average Pooling)两种形式;降采样可以看作一种特殊的卷积过程。卷积和降采样大大降低特征的维数,减少了模型的参数,简化了模型复杂度。
2.2 CNN基准模型VGG16
VGGNet是在2014年由Karen Simonyan和Andrew Zisserman实现的卷积神经网络。它主要的贡献是展示出网络的深度是算法优良性能的关键部分。它们最好的网络是包含了16个卷积/全连接层。网络的结构非常一致,从头到尾全部使用的是3×3的卷积和2×2的汇聚。VGGNet不足在于:耗费更多的计算资源,并且使用了更多的参数,导致较多的内存占用(140M左右)。其中,绝大多数的参数都是来自于第一个全连接层。
VGG是在从AlexNet(即CNN的基准模型之一)发展而来的网络,可以把它看作是加深版的AlexNet,是卷积层加全连接层的组合。它在AlexNet基础上,主要修改了两个方面内容:1)在第一个卷积层使用了更小的滤波器尺寸和间隔(3×3);2)在整个图片和multi-scale上训练和测试图片。VGG系列的结构如图2所示。
图2 VGG系列结构图
多个小滤波器卷积层的组合比单一滤波器卷积层好。一层一层地重叠了3个3×3卷积层(层与层之间有非线性激活函数)。在这个排列下,第一个卷积层中的每个神经元都对输入数据体有一个3×3的视野。第二个卷积层上的神经元对第一个卷积层有一个3×3的视野,也就是对输入数据体有5×5的视野。同样,在第三个卷积层上的神经元对第二个卷积层有3×3的视野,也就是对输入数据体有7×7的视野。假设不采用这3个3×3的卷积层,而是使用一个单独的有7×7感受野的卷积层,那么所有神经元的感受野也是7×7,但是存在一些缺点。首先,多个卷积层与非线性的激活层交替的结构,比单一卷积层的结构更能提取出深层更好的特征。其次,假设所有的数据有C个通道,那么单独的7×7卷积层将会包含7×7×C=49C个参数,而3个3×3的卷积层的组合仅有个3×(3×3×C)=27C个参数。直观说来,最好选择带有小滤波器的卷积层组合,而不是用一个带有大滤波器的卷积层。前者可以表达出输入数据中更多个强力特征,使用的参数也更少。唯一不足的是,在进行反向传播时,中间卷积层可能会导致占用更多的内存。1×1 filter的作用是在不影响输入输出维数的情况下,对输入线进行线性形变,然后通过Relu(Rectified Lineat Units,激活函数)进行非线性处理,增加网络的非线性表达能力。Pooling:2×2,间隔s=2。这里使用的VGG16,总共16层,其结构如图3所示。
图3 VGG16网络结构拓扑图
VGG突出影响包括:一个大卷积核分解成连续多个小卷积核;减少参数,降低计算,增加深度;集成AlexNet结构的特点:简单、有效;网络改造的首选基础网络等。
3 识别系统和识别方法
3.1 识别流程
通常采用网络摄像头对划定区域进行监控。无人机识别流程如图4所示,首先将网络摄像头输出的视频流送入到无人机识别系统中,经过图像抓帧和预处理后,对图像进行无人机检测;然后将检测到的无人机图像抽取出来,对图像特征进行提取,送入VGG16网络;最后,在训练好的后台数据中识别出该图像的无人机种类。可以将无人机的种类标识到原图像中并显示。
图4 无人机识别流程图
3.2 算法框架
Caffe是一套开源软件框架,内部提供了一套基本的编程、模板框架,用以实现GPU并行架构下的深度卷积神经网络、深度学习(Deep Learning)等算法;按照该框架,可以定义多种类型的卷积神经网络结构,且可以在此框架下增加新代码、设计新算法。该框架的优点在于运算速度快、简单、友好。本文设计的无人机识别系统中深度学习算法就是基于Caffe框架实现的。
Caffe框架具有三个基本原子结构,分别是Blobs、Layers和Nets。Blob是用于存储数据的对象,同时Caffe中各种数据(图像输入、模型参数)都是以Blob的形式在网络中传输的。Blob还能在CPU和GPU之间进行同步以支持CPU/GPU的混合运算。Layer是网络的次级单元,也是能在外部进行调整的最小网络结构单元。一般来说,都让同一层的神经元具备相同性质,因此也就没有必要提供对神经元的操作。Net即一个完整的包含输入层、隐藏层、输出层的深度网络,在Caffe中一般是一个卷积神经网络,通过定义不同类型Layer,并用Blob将不同的Layer连接起来,就能产生一个Net。为了减少算法代码的编写负担,这里选择在Caffe框架下对VGG16网络进行Fine-tuning(微调),即使用已用于其它目标、预训练好模型的权重或部分权重,作为初始值开始训练其它数据集。
3.3 识别方法
3.3.1 无人机检测
图像经过预处理后,使用SSD算法对处理后图像做无人机目标检测。SSD算法的主网络结构是VGG16。采用VGG16前面的5层网络,然后利用atrous算法将fc6和fc7层转化成两个卷积层,另外再增加了3个卷积层和一个均值池化层,不同层次的feature map(特征平面)分别用于default box(缺省窗口)的偏移和不同类别得分的预测,最终通过非极大值抑制的方法得到最终的检测结果。
通过以下公式确定default box的大小:
其中,Smin取值0.2,Smax取值0.9,m为feature map的个数。
取横纵比为ar={1'2'3'},则每个defaultbox宽和高计算公式如下:
SSD算法最大的贡献就是提出了多尺度feature map预测的方法,相比YOLO算法能够对不同尺度的物体具有更好的鲁棒性,相比R-CNN系列,抛弃了Region Proposal的过程,计算速度更快。
经过SSD之后,确定了无人机在图片中的位置,并生成bounding box,无人机检测效果如图5所示。
3.3.2 无人机分类
通过无人机检测后,将检测到的无人机图片送入VGG16模型进行特征提取,然后通过Softmax算法,对该特征向量进行预测,得出该无人机的分类类别。在最后一个全连接层中,我们选择输出的是一个5维特征向量[x1'x2'x3'x4'x5],通过如下公式计算出每一个元素对应的概率值。然后选出一个最大的Si作为该无人机为第i类的概率。
图5 无人机检测效果图
3.4 卷积神经网络的训练与验证
CNN本质上是一种输入到输出的映射。由于该映射比较复杂,人为规定的精确数学模型不能够满足实际需求。因此,只需要把海量已知数据对设定好的网络模型进行训练,网络就能够得到这种符合需求的映射。训练与验证是网络模型调优的重要阶段,其核心是误差反向传播(Back Propagation,BP)算法,分为前向计算和后向传导。训练阶段需要BP算法的完整流程,而验证阶段只需要BP算法的前向计算阶段。VGG16网络模型是整个无人机识别系统的核心部分,它不仅仅完成特征提取任务,还涉及网络训练与验证阶段,用于获取能提取较好区分性的无人机特征的网络模型参数。网络训练具体流程如图6所示。
图6 网络训练流程示意图
4 实验结果与分析
4.1 数据集
数据集包括训练集和验证集,其中训练集有1350张无人机图片,验证集有283张无人机图片。将训练集分为3类无人机,分别为固定翼、四旋翼和直升机,验证集也相应的有这三类无人机图片。
4.2 训练结果与分析
训练过程采用Caffe框架,选择在已训练好的模型基础上做微调。训练的批尺寸定为20,学习率初始化为0.001,验证的迭代次数定为60,每隔10次迭代验证1次。权重损失初始化为0.0005,每验证10次保存一次模型。最大迭代为500次。经过多次训练迭代之后选择了最优模型准确率达到83%。最后在验证集上做测试,测试结果如表1所示。
表1 测试结果
从表1可以看出,固定翼的识别率是比较乐观的,其他机型的识别率普遍较低,这是由于训练集中固定翼图片相对于其他机型较多的原因。无人机识别效果如图7所示。
图7 无人机识别效果图
5 结语
本文针对无人机飞行监控问题,提出了基于深度卷积神经网络的无人机识别系统实现方案,能够实时检测无人机的位置,识别无人机的种类,识别率较高。深度卷积神经网络的特征提取方法比传统手工特征提取方法更加简单、效果也更好,但是深度卷积神经网络对数据集的依赖性很大。只有数据集的规模达到要求的参数规模才能提取足够多的特征供神经网络学习。所以下一步工作是收集更多的无人机数据,提高无人机识别准确率。