吉林大学 计算机科学与技术学院, 吉林 长春 130012
收稿日期:2017-11-30
基金项目:国家自然科学基金资助项目(61472161);吉林省科技发展计划项目(20180101334JC, 20190302117GX)。
作者简介:王生生(1974-), 男, 吉林长春人, 吉林大学教授, 博士生导师。
摘要:在高分辨率遥感图像目标检测中, 受云雾、光照、复杂背景、噪声等因素影响, 现有目标检测方法虚警率高、速度慢、精确度低.为此提出基于深度神经网络剪枝的两阶段目标检测(object detection based on deep pruning, ODDP)方法.首先, 给出深度神经网络剪枝方法, 基于深度神经网络剪枝分别提出自主学习区域提取网络算法与优化训练分类网络算法; 然后, 将上述两算法用于卷积神经网络, 得到两阶段目标检测模型.实验结果表明, 在NWPU VHR-10高分辨率遥感数据集上, 相比现有目标检测方法, ODDP的检测速度和精度均有一定提升.
关键词:计算机视觉目标检测高分辨率遥感图像深度学习卷积神经网络
Deep Neural Network Pruning Based Two-Stage Remote Sensing Image Object Detection
WANG Sheng-sheng, WANG Meng, WANG Guang-yao
College of Computer Science and Technology, Jilin University, Changchun 130012, China
Corresponding author: WANG Meng, E-mail: 1030997649@qq.com
Abstract: In the object detection of high-resolution remote-sensing images, affected by cloud, light, complex background, noise and other factors, the existing object detection method has high false alarm, low speed and low precision. So we propose a two-stage object detection method based on deep pruning. First, we propose deep pruning, and then based on the deep pruning we propose an algorithm that learns region proposal network automatically and an algorithm that we train classification network with optimizing training method. We then apply the two algorithms to convolutional neural network and get a two-stage object detection model. The experiment result shows that our method has a certain improvement on precision and speed compared with the state-of-the-art method.
Key words: computer visionobject detectionhigh-resolution remote sensing imagedeep learningconvolutional neural network
光学遥感传感器空间分辨率在过去十年中有了很大的提高, 大量高分辨率图像被用于军事和民用领域.但由于卫星拍摄时受云层、雾霾、光照不均匀等天气影响, 会引入大量噪声, 而且往往遥感图像的背景较为复杂, 基于SIFT,HOG等传统目标检测方法处理这类图像时效果并不好.近来使用深度卷积神经网络的两阶段目标检测方法被应用于高分辨率遥感图像目标检测.两阶段即区域提取(region proposal)阶段[1]和分类(classification)阶段.其中, 区域提取阶段要求能快速提取出候选区域, 分类阶段要求能准确分类候选区域属于哪一个类别.
使用深度卷积神经网络的两阶段目标检测方法在高分辨率遥感图像的舰船、飞机、车辆等单目标、多目标检测中效果显著.Long等[2]使用selective search(SS)算法生成候选区域, 通过卷积神经网络CNN(convolutional neural network)和SVM分类器对光学遥感图像中的多目标进行检测.Jiang等[3]使用基于图的超像素分割方法提取图像碎片, 将遥感图像碎片输入CNN进行分类, 检测碎片是否属于车辆.?evo等[4]直接将高分辨率卫星图像切割为相同大小的图像碎片, 将图像碎片输入训练好的CNN进行分类.Wu等[5]利用遥感图像中目标的边缘信息, 使用Edge Boxes提取候选区域, 并将候选区域输入CNN进行分类.但使用SS、超像素分割方法提取候选区域速度慢,而且直接切割会损失图像信息;Edge Boxes对复杂背景图像的候选区域提取效果不理想, 而且在分类阶段要使用一次训练卷积神经网络.总之, 现有深度卷积神经网络两阶段目标检测方法在面对复杂背景的高分辨率遥感图像时存在虚警率高、速度慢等问题.
为解决上述问题, 本文提出基于深度神经网络剪枝的两阶段遥感图像目标检测方法(object detection based on deep pruning, ODDP).首先提出深度神经网络剪枝, 然后基于该方法提出自主学习区域提取网络算法(learning region proposal network, LRPN).最后提出基于深度神经网络剪枝的优化训练分类网络(optimizing classification network, OCN)算法, 学习多种目标地物不同特征, 以提高分类网络精度.将区域提取和分类两个深度卷积神经网络相结合,建立两阶段目标检测模型, 即可对高分辨率遥感图像进行检测.
1 基于深度神经网络剪枝的两阶段目标检测方法为解决高分辨率遥感图像目标检测中虚警率低、速度慢、精度低的问题, 本文在提出深度神经剪枝的基础上,又提出了基于深度神经网络剪枝的两阶段遥感图像目标检测方法, 包括自主学习区域提取网络算法LRPN和优化分类网络算法OCN.LRPN通过两次剪枝, 获得区域提取网络.OCN利用LRPN输出的区域提取网络, 获得分类网络训练集, 训练时利用剪枝方法获得训练好的分类网络.将区域提取网络和分类网络结合, 即获得两阶段目标检测模型.
1.1 深度神经网络剪枝深度神经网络通常过参数化(over-parameterized), 存在显著的冗余性[6], 导致网络在拟合小模型(即参数少的函数)时, 可能过拟合, 计算速度慢.受神经网络的丢弃(dropout)方法启发, 本研究提出深度神经网络剪枝(deep pruning, DP)算法, 可减小网络容量, 降低过拟合概率, 加速网络计算.具体来说, 首先计算出核的度量值, 然后剪去低于度量值的核(filter), 从而改变网络的结构, 使网络更稀疏.
深度神经网络剪枝分为六步:
① 训练深度神经网络.
② 对第i层中的第j个核Fi, j, 计算其所有权重的绝对值之和Sj:
(1) |
③ 对以上计算的所有Sj进行升序排序.
④ 根据排序结果, 剪去前mi个核, 并剪去这mi个核对应的特征图.
⑤ 在第i层剪完后, 对新的核矩阵进行训练.
⑥ 分析剪枝前后的网络平均精确度差值ΔP, 若ΔP < 0, 则mi=mi-1, 返回步骤④重新剪枝, 否则返回步骤②对第i+1层进行相同操作.
对于网络的全连接部分, 将其看作1×1大小的核, 从而可使用上述方法剪枝.
1.2 自主学习区域提取网络现有技术在高分辨率遥感图像的区域提取阶段使用SS, Edge Boxes等基于手工设计特征的方法;在面对背景干净、目标特征易表达的图像时,这些方法表现很好, 但在面对复杂背景图像时,区域提取效果差.针对此问题,本文提出自主学习区域提取网络(learning region proposal network, LRPN)算法.
LRPN算法使初始网络从数据集中自主学习构建一个具有新结构的卷积神经网络.自主学习的卷积网络有以下优点:
① 网络结构符合数据集分布;
② 既具有初始网络的整体结构又更稀疏;
③ 避免人工设计网络结构的盲目性, 可靠性高.因而LRPN算法计算速度快, 且不影响目标检测的精度.下文讲述LRPN算法及其伪代码.
首先对初始网络进行预训练, 为后续训练提供初级特征, 若后续训练集小, 使用预训练可收敛更快.预训练采用遥感数据集AID(aerial image dataset)[7], 而不采用ImageNet数据集, 因此预训练提取的遥感特征更加适合于遥感任务.为从初始网络自主学习构建新网络结构, 使用深度神经网络剪枝作为一种改变初始网络结构的方式.在第一次剪枝时, 减去对二分类不重要的核, 为后续步骤提供卷积层权重, 并设置较小稀疏度, 为定位任务留下空间.
第一次剪枝后对网络进行重构, 重构时选取网络的卷积层, 在其后加入两个分支:一支为可区分背景与目标的二分类的cls_fc_class, 另一支为提供坐标偏移的cls_fc_bbr.训练时会将cls_fc_class输入到softmax分类器中, 分类器给出图像为背景或目标的概率;cls_fc_bbr在训练时用L1损失函数进行回归训练.重构可使网络具有同时处理二分类和定位的能力.
然后进行第二次剪枝, 去掉对定位、二分类都冗余的核.第二次剪枝和第一次剪枝方式相同, 两次剪枝稀疏度不同.
第二次剪枝再一次改变网络结构, 使网络结构符合数据集的分布.首先对重构后的网络进行训练, 训练任务是二分类(背景与目标)以及定位, 训练目的是判断哪些核不仅对二分类有效, 而且对定位有效.因有两个任务, 相应地,目标函数需采用多任务损失函数.同时优化目标、背景二分类和定位能力的多任务损失函数LODDP为
(2) |
(3) |
最后使用区域提取训练数据集与其类别标签和坐标标签, 对网络进行二分类和定位的训练.
以上训练完成以后就可使用最终网络的卷积层构建区域提取网络RPN(region proposal network), 所以区域提取网络其实是全卷积神经网络.
LRPN算法伪代码如下:
Input:初始网络N; 预训练数据集Dpretrain及其标签Lpretrain; 区域提取训练数据集Drpn及其标签Lclass, Lbbx
Output:区域提取网络Nrpn
步骤1??预训练, 其中TRAIN_NET为训练网络的函数:
① 初始化N的权重W, W(0)~N(0, 0.012);
② Wpretrain=TRAIN_NET(W(0), Dpretrain, Lpretrain).
步骤2??第一次剪枝:
对Wpretrain应用DP算法得到新的网络结构Wpruned-one, 其中数据集使用区域提取训练数据集的Drpn及其标签Lclass.
步骤3??重构:
使用Wpruned-one中的卷积层及其权重Wconv, 组合两分支conv_fc_class(softmax)与conv_fc_bbr(L1回归), 得到Nrpn′.
步骤4??第二次剪枝:
① 将Nrpn′中新加入的核Wnew初始化, Wnew~N(0, 0.012);
② W(0)=(Wconv, Wnew);
③ 对W(0)使用DP算法得到新的网络结构Wpruned-two, 其中数据集使用区域提取训练数据集的Drpn及其标签Lclass, Lbbx;
④ 选取Nrpn′卷积层, 获得Nrpn.
1.3 优化训练分类网络复杂网络的好处是非常具有表现力, 可以捕捉到特征与输出之间高度非线性关系.这种大型网络的缺点是倾向于捕捉训练数据集中的噪声,这种噪声并不能推广到新的数据集中, 导致过拟合和高方差, 泛化能力弱;而简单地减少模型容量会导致另一个极端, 网络会错过特征和输出之间的相关关系, 从而导致欠拟合和高偏差.现有方法在训练分类网络时, 简单地随机选取深度神经网络进行训练, 数据集与网络容量并不能很好匹配, 从而造成过拟合或欠拟合.本文提出了一种基于深度神经网络剪枝的优化训练算法, 在剪枝与核恢复中调节网络, 使网络更好地学习数据集的分布.下文详细讲述优化训练分类网络算法(optimizing classification network, OCN)及OCN的伪代码.
在OCN算法中, 使用区域提取网络生成的分类网络训练集对分类网络进行训练, 可使整个目标检测模型保持一致性.生成分类网络训练集的步骤是:给训练集输入区域提取网络;产生候选区域;按照正:负=1: 3的比例选取候选区域集.本研究定义IoU(intersection over union)≥0.7的图片块为正样例, IoU < 0.3的为负样例.IoU是目标检测中的一个评价指标, 是模型检测出的候选区域与坐标标签区域的交叠率:
(4) |
为和区域提取网络取得一致性, 采用LRPN输出的Wpretrain作为OCN的输入网络.首先对Wpretrain训练, 然后对网络进行DP剪枝.与区域提取网络相比, 分类网络需学习多类别中每个类别具有的专属特征, 并需区分每个类别之间的细微差异, 因此需更大的模型容量, 表现在网络上就是使用更多的核.因此在对网络进行剪枝再训练后, 恢复了剪掉的核.最后在训练网络时, 因剪枝后的网络经过再训练已经到达一个较好的局部最小值, 所以这一步训练时学习率设为上一步的1/10.通过恢复剪掉的核和训练, 模型容量增加, 再训练后网络可能到达一个更好的局部最小值.
OCN算法伪代码如下:
Input:分类网络训练集Dcn及其标签Lclass
Output:Ncn
步骤1??剪枝:
① 用LRPN中的Wpretrain初始化W(0);
② 对W(0)使用DP算法得到新的网络结构Wpruned, 其中数据集使用分类网络训练集Dcn, Lclass.
步骤2??恢复核:
① 恢复剪掉的核Wrecover, 并将Wrecover初始化;
② W(0)=(Wpruned, Wrecover);
③ Wmax-iteration=TRAIN_NET(W(0), Dcn, Lclass);
④ Wmax-iteration即为Ncn的权重.
2 实验与分析为评估ODDP高分辨率遥感图像目标检测方法, 选用公开数据集NWPU VHR-10, 这是一个10类别高分辨率遥感图像目标检测数据集.10类别包括飞机、船舶等(编号1~10).在本实验中, 只使用数据集的正样例, 包括650张高分辨率光学遥感图像;其中部分图片来自于谷歌地图, 其空间分辨率在0.5~2 m之间, 另一部分来自Vaihinge数据集, 其空间分辨率为0.08 m.实验中, 选取数据集的50 %为训练集, 20 %为验证集, 30 %为测试集.采用精确度-召回率曲线、平均运行时间、平均精确度(average precision,AP)和mAP(mean average precision)来定量评估ODDP.
在实验中, 初始网络选取AlexNet; 预训练集选择AID; 最大迭代次数设为80 000.定义TP为IoU≥0.7且被判别为目标; FN为未检测到的目标; FP为IoU < 0.3且被判别为目标.实验硬件环境是2.8GHz, 6核CPU, 32GB内存, GPU型号为GTX Titan X.
图 1是ODDP检测出的部分图片的结果.ODDP算法将检测出的目标圈出,并标注目标区域所属类别及该区域属于此类别的概率.图 2b显示了一个误检的假正区域,图 2c显示了一个漏检的假负区域.可以看出, 尽管被检测物体在大小、形状、纹理上有很大不同, 背景也较为复杂, ODDP仍然检测出大多数目标.为了定量评估ODDP, 本文和4种目前最优的方法对比, 包括COPD[8]、迁移CNN[9]、无微调RICNN[10]、微调RICNN[10].4种方法都采用SS提取候选区域.为公平对比, ODDP与4种方法的对比实验均采用相同训练、测试集.除COPD外, 其余3种方法均采用AlexNet网络结构.
图 1(Fig. 1)
图 1 ODDP检测结果Fig.1 ODDP detection results (a)—检测出的目标;(b)—误检为假正的区域;(c)—漏检的假负区域. |
图 2(Fig. 2)
图 2 十类别PRC曲线图Fig.2 Ten-class PRC curve graphs (a)—飞机;(b)—船;(c)—储油罐;(d)—棒球场;(e)—网球场;(f)—篮球场;(g)—田径场;(h)—海港;(i)—桥;(j)—车辆. |
表 1和图 2是定量对比结果, 由实验结果可看出, ODDP在10个类别的平均精度上, 比其他4种方法的表现更好.和微调后RICNN对比, ODDP检测出的10类别AP分别提高了0.054 4, 0.129 4, 0.012 0, 0.049 3, 0.155 3, 0.329 5, 0.032 7, 0.057 2, 0.195 3, 0.088 8, mAP提高了0.112 6, 表明ODDP的检测能力较强.通过图 2可以看出, 随着召回率的增加, ODDP精确度曲线下降得最慢, 说明ODDP候选区域中正样例占比大, 因此区域提取网络比SS更好.
表 1(Table 1)
表 1 检测方法的平均精度Table 1 Average precision of the detection methods
| 表 1 检测方法的平均精度 Table 1 Average precision of the detection methods |
用平均运行时间评估各个目标检测方法的速度.ODDP平均运行时间为0.38 s;COPD,迁移CNN,无微调RICNN和微调RICNN的平均运行时间分别为1.07, 5.24, 8.77和8.77 s.由此看出, ODDP运行时间最短.
3 结语本文提出了基于深度神经网络剪枝的两阶段高分辨率遥感图像目标检测方法ODDP.受神经网络的丢弃(dropout)方法启发, 首先提出深度神经网络剪枝方法DP, 旨在减小网络容量, 降低过拟合概率, 加速网络计算;然后提出基于DP的目标检测训练算法, 包括自主学习区域提取算法LRPN和优化训练分类网络算法OCN.将初始网络输入LRPN即可得到区域提取网络.根据OCN, 将候选区域用于优化训练卷积神经网络, 从而得到分类阶段的分类网络.由区域提取网络和分类网络结合成两阶段目标检测模型, 因此模型在两阶段均采用深度CNN特征.实验结果表明, 在遥感数据集上ODDP比现有的目标检测方法速度更快,精度更好.
参考文献
[1] | Girshick R, Donahue J, Darrell T, et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Piscataway: IEEE, 2014: 580-587.https://www.cv-foundation.org/openaccess/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf |
[2] | Long Y, Gong Y, Xiao Z, et al. Accurate object localization in remote sensing images based on convolutional neural networks[J].IEEE Transactions on Geoscience & Remote Sensing, 2017, 55(5): 2486–2498. |
[3] | Jiang Q, Cao L, Cheng M, et al.Deep neural networks-based vehicle detection in satellite images[C]// International Symposium on Bioelectronics and Bioinformatics.Piscataway: IEEE, 2015: 184-187.https://ieeexplore.ieee.org/document/7344954 |
[4] | ?evo I, Avramovi? A. Convolutional neural network based automatic object detection on aerial images[J].IEEE Geoscience & Remote Sensing Letters, 2016, 13(5): 740–744. |
[5] | Wu H, Zhang H, Zhang J, et al.Typical target detection in satellite images based on convolutional neural networks[C]// IEEE International Conference on Systems, Man, and Cybernetics.Piscataway: IEEE, 2016: 2956-2961.https://ieeexplore.ieee.org/document/7379646 |
[6] | Denil M, Shakibi B, Dinh L, et al.Predicting parameters in deep learning[C]//Advances in Neural Information Processing Systems.Cambridge, MA: MIT, 2013: 2148-2156.https://papers.nips.cc/paper/5025-predicting-parameters-in-deep-learning.pdf |
[7] | Xia G S, Hu J, Hu F, et al. AID:a benchmark data set for performance evaluation of aerial scene classification[J].IEEE Transactions on Geoscience and Remote Sensing, 2017, 55(7): 3965–3981.DOI:10.1109/TGRS.2017.2685945 |
[8] | Cheng G, Han J, Zhou P, et al. Multi-class geospatial object detection and geographic image classification based on collection of part detectors[J].ISPRS Journal of Photogrammetry & Remote Sensing, 2014, 98: 119–132. |
[9] | Krizhevsky A, Sutskever I, Hinton G E.Imagenet classification with deep convolutional neural networks[C]//Advances in Neural Information Processing Systems.Cambridge, MA: MIT, 2012: 1097-1105.https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf |
[10] | Cheng G, Zhou P, Han J. Learning rotation-invariant convolutional neural networks for object detection in VHR optical remote sensing images[J].IEEE Transactions on Geoscience & Remote Sensing, 2016, 54(12): 7405–7415. |