Print

发布时间: 2019-04-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.180424
2019 | Volume 24 | Number 4




    图像分析和识别    




  <<上一篇 




  下一篇>> 





深度卷积网络卫星图像水泥厂目标检测
expand article info 徐刚1, 岳继光1, 董延超1, 娄启佳2, 熊文成2, 聂忆黄2
1. 同济大学电子与信息工程学院, 上海 201804;
2. 环境保护部卫星环境应用中心, 北京 100094

摘要

目的 水泥厂作为重要的污染源企业需要对其进行统计和监管,近几年随着卫星遥感技术的发展和遥感影像分辨率的提高,使得基于卫星影像进行水泥厂目标检测成为可能。但是由于遥感图像中建筑目标的环境复杂多变,同时各个水泥厂在生产规模、设备构成、厂区结构、坐落方位上存在较大差异,图像表观上的形态各异和复杂环境干扰使得传统图像识别方法难以设计和提取有效特征。鉴于深度学习在视觉目标检测领域的成功应用,本文将研究应用深度卷积神经网络方法,实现在卫星图像上识别与定位水泥厂目标,为环保部门提供一种高效便捷的水泥厂目标检测和统计方法。方法 基于面向目标检测与定位的Faster R-CNN深度学习框架,以准确检测与定位水泥厂区域为目的,以京津冀地区的水泥厂位置作为训练和测试数据集,选用3种结构不同的提取特征卷积神经网络模型进行了对比实验。并针对小样本训练容易出现的过拟合和误检问题,采用图像去雾预处理、数据扩充、引入负样本等技术进一步提升模型能力。结果 测试集实验结果表明ResNet特征提取网络效果最好,准确率达到74%。为了进一步提高检出率并降低误检率,引入3种模型能力提升方法,在扩充检测数据集中的检出率达到94%,误检率降低到14%;在全球水泥厂数据集中的图像检出率达到96%,万幅随机图像的误检数量为30幅(0.3%)。对上海地区的卫星图像进行扫描检测,结果检测出11个已登记的水泥厂(共登记16个),另外还检测出17个未登记的水泥厂。结论 对于卫星地图上水泥厂这种具有特殊建筑构造但也存在厂区几何形状各异、所处地理环境复杂、随季节性变化等特点,本文提出的基于深度卷积网络的卫星图像水泥厂检测方法,能够自动学习提取有效的图像特征并对目标进行准确检测。针对小样本训练问题,引入3种方法显著提高了模型的检测精度。在模型泛化能力测试中,经过优化后的模型在水泥厂建筑目标检测任务中表现良好,具有重要的应用价值。

关键词

高分辨率卫星图像; 目标检测; 卷积神经网络; 深度学习; 模型优化

Cement plant detection on satellite images using deep convolution network
expand article info Xu Gang1, Yue Jiguang1, Dong Yanchao1, Lou Qijia2, Xiong Wencheng2, Nie Yihuang2
1. College of Electronic and Information Engineering, Tongji University, Shanghai 201804, China;
2. Satellite Environment Center, Ministry of Environmental Protection, Beijing 100094, China
Supported by: National Natural Science Foundation of China(61873189);Fundamental Research Funds for the Central Universities (KX0080020172601)

Abstract

Objective The problem of environmental pollution in China has become increasingly serious with the rapid development of society and economy. Creating a beautiful ecological environment is becoming an important issue in the current national planning. Environmental pollution problems affect the sustainable development of the country and society. As an important source of pollution, cement plants must be effectively counted and monitored. With the development of satellite remote sensing, high-resolution and good quality images become available. At the same time, deep learning has made great progress in the field of target detection, and many excellent deep convolutional network models, such as Faster R-CNN, YOLO, SSD, and Mask R-CNN, have been proposed recently. In the object detection task on satellite images, huge differences lie in the plant area scales, the structures of equipment composition, and the orientations of each cement plant. Thus, various cement plants are presented with various appearances due to the complex natural geographical surroundings. Overcoming the problem of cement plant target detection and recognition using traditional artificial image feature methods is difficult. However, deep learning has achieved excellent performance in the field of image target recognition. The application of the deep convolutional network may be a brilliant method to locate cement plants on satellite images. Method A method of detecting and locating cement plant position using high-resolution satellite images was proposed based on the convolutional neural network of Faster R-CNN framework for image target detection. First, we used GoogleMap API to download Google Earth satellite images. We developed this high-resolution satellite image dataset of cement factory target using GoogleMap web API, which contains 464 cement plant locations, according to the Beijing-Tianjin-Hebei cement dataset given by the Satellite Environment Center, Ministry of Environmental protection. Through the training and testing datasets of the cement plant in Beijing-Tianjin-Hebei with three different feature extracting modules (namely, VGG(visual geometry group network), ZF, and ResNet), we compared the testing results among the three CNN models. Three methods, which include image haze removal using dark channel prior, data augmentation, and adding negative training samples, were introduced to solve the problems of overfitting and reduce high false positive rate because of insufficient amount of training data. We also verified the influence of different numbers of negative training samples on model training. We used these features to assist cement plant target detection, considering the characteristics of cement buildings with evident cylindrical cement tanks and heating reaction tower buildings. Result The visualized images of the convolutional feature map show that the identification of the deep convolution network for cement plant target detection is mainly based on special buildings in the plant area, such as cylindrical cement tanks, heating towers, and rectangular plants. The experimental results on the test set reveal that the ResNet achieves the best performance with the average accuracy rate of 74%. An optimization method by three methods is proposed to further enhance the detection of accurate rate and suppress the false positive rate. The precision of the promoted CNN model reached 94% in the augmented testing dataset, and the false positive rate was reduced to 14%. The true positive detection rate in the global cement plant dataset reached 96%, and the number of false detection of 10 000 random satellite images was reduced to 30 (0.3%). The actual cement plant target scan detection of the satellite images in the entire Shanghai area was conducted. To avoid dividing the cement plant into two image parts, we used the overlapping detection method, which also detected adjacent areas between satellite images. As a result, 11 out of 16 registered cement plants, and 17 unregistered cement plants are detected. Conclusion The cement plant has special buildings of different shapes and background, even varying over time, thereby resulting in relatively difficult detection task. However, the method of cement plant detection on satellite images based on deep convolutional networks can automatically learn to extract effective features and can identify the position of the target in the image. In addition, some optimization methods, including image preprocessing, data augmentation, and adding negative samples to promote the performance of the model, are adopted to improve the model detection accuracy and solve the problem of few training data. The geographic latitude and longitude coordinates of cement targets are easy to obtain based on the result of the image object detection and its position information because the satellite image is geocoded. We can also estimate the cement plant area using information of detected boxes. In the model generalization capability test experiment, the proposed method achieves good performance in the detection and location tasks in the global cement dataset. The scanning results of the entire satellite image set in Shanghai indicate that the deep convolution network target detection method not only can detect most registered cement plants but also multiple unregistered cement plants. The method provides a reliable reference for monitoring environmental pollution sources. Furthermore, this model can be easily converted to detect other architectural targets using transfer learning techniques.

Key words

high-resolution satellite image; target detection; convolutional neural network; deep learning; model optimization

0 引言

环境污染问题影响国家和社会的可持续发展,水泥厂作为重要的污染源企业需要对其进行有效监控。目前环保部门对其主要的监控方法包括:实地调研、公共监督、污染指数监控等,但是监控的对象一般是已经登记在案的企业,对私自建厂或扩建的厂区很难进行有效监控。近几年随着卫星遥感技术的发展,遥感卫星能够提供多种类型的地面图像数据,而且分辨率越来越高,更新速度也越来越快,使用遥感图像目标识别技术对污染源建筑进行定位、统计和监控成为可能。

遥感图像本身具有以下几个特点,可以用于地面目标的检测与定位:多光谱特性,信息量丰富;像素级地理位置编码,可以得到较为精确的经纬度信息;遥感图像目前已经达到很高的空间分辨率,Google地图存在20级空间分辨率,最高可达0.27 ${\rm{m}}$/像素;数据量庞大,可以定时采集目标地区的卫星图像。

目前高分辨率图像已经应用在道路、机场、水域、地表类型等目标的分类和识别任务中[1]。常用方法[2-3]大部分是基于人工设计的特征和视觉显著性特征进行分类识别。例如,2005年Pal[4]使用支持向量机、随机森林的方法实现了7种农作物田地的遥感图像分类,分类准确度为88 %左右。

但是目前还没有公开发表的关于使用卫星图像对水泥厂这种建筑目标进行检测与定位的研究。卫星图像目标检测需要实现定位和分类两种任务,传统定位方法一般需要进行窗口扫描或者提取前景目标框,再进行图像分类,处理速度极慢而且目标检测框也不准确。人工设计特征的方法对水泥厂这种特殊建筑目标是不合适的,因为在生产规模、设备构成、厂区结构、坐落方位等方面差异很大,导致卫星图像中的水泥厂呈现多种多样的表观。从图 1列举的几个水泥厂卫星图像可以看出,厂区之间差异巨大,除此之外复杂多变的自然地理形貌和人工建筑的干扰,使得传统图像特征处理方法难以胜任卫星图像水泥厂目标检测与识别任务。

图 1 卫星图像上形态各异的水泥厂
Fig. 1 Different cement plants on satellite images

自2012年Krizhevsky等人[5]设计的AlexNet卷积神经网络在ImageNet图像识别挑战比赛中获得第一名后,卷积神经网络(CNN)就成为人工智能和计算机视觉领域的研究热点。这是一种能够自动学习卷积核参数来提取图像特征的监督式学习方法。

近几年,有学者开始将卷积神经网络技术应用在遥感卫星图像的目标检测识别中。2017年周明非等人[6]用卷积神经网络的3种模型(AlexNet、CaffeNet、VGG)在UC Merced Land Use高分辨率卫星图像数据集上对机场、停车场、立交桥等21类地物进行目标分类。其中VGG-19模型的分类准确度高达96 %,验证了深层卷积模型具有强大的特征提取和分类能力。Maggiori等人[7]提出了一种针对卫星图像上密集目标的全卷积神经网络检测框架,实现了对卫星图像上人工建筑目标区域的分割和像素级别的定位,但这种方法只能区分人工建筑类型与非建筑类型,在水泥厂目标检测中,需要识别目标属于水泥厂建筑或非水泥厂建筑。Chen等人[8]设计了一种3D卷积结构网络,用来提取高光谱图像的空间和光谱特征,从而进行分类,在3个高光谱数据集中检测精度达到了先进水平。高光谱图像数据量庞大,存在冗余,获取成本较高,而卫星上普通光学相机拍摄的RGB图像具有信息丰富、符合人眼观察规律、获取成本低、渠道来源广的特点,更适合作为水泥厂目标检测的卫星图像数据源。

2014年Girshick[9]利用深度卷积神经网络设计了基于预选区域的R-CNN方法,在图像目标检测与定位任务中打破了传统的可变部件模型(DPM)[10]算法在图像目标检测领域的领先地位。后续又提出了Faster R-CNN[11]模型,进一步提高了目标检测速度和识别准确度。该方法在图像目标检测领域有着优异表现,也符合水泥厂目标检测的任务需求。

针对以上研究现状, 结合水泥厂目标的特点和实际任务需求,本文将探索应用深度学习技术实现在高分辨率卫星地图上实时快速检测水泥厂目标,提取精确的地理位置和粗略估计厂区大小,从而便于环保部门对各地区水泥厂的地理位置、规模和数量进行统计和监控。

1 卫星图像目标检测方案

卫星图像目标检测本质上是一个目标识别与定位问题,图 2展示的是在VOC数据集上一些主流的目标检测方法及其性能(处理速度(FPS)、平均准确度(mAP)),过去由人工设计特征的DPM(deformable parts model)模型[10]主导,但是检测精度很低,Faster R-CNN[11]是当前迭代优化的检测精度最高的模型,目前也出现了检测速度很快的SSD(single shot multibox detector)[12]、YOLO(you only look once)[13]模型,但考虑到卫星图像检测对实时性要求并不高,所以采用了检测精度较高的Faster R-CNN深度检测框架。

图 2 目标检测算法及其性能
Fig. 2 Target detection algorithms and their performance

在特征提取方面,选取ZF-Net[14]、VGG-16[15]以及ResNet-50[16],作为Faster R-CNN提取卷积特征的基础网络,通过京津冀地区水泥厂数据集的训练测试,研究基于Faster R-CNN深度学习框架的高分辨率遥感图像水泥厂建筑目标的识别技术,并进行模型泛化能力测试,验证该技术能用于高分辨率卫星图像的目标检测与识别领域。

1.1 Faster R-CNN简介

在使用深度学习卷积神经网络的R-CNN目标检测算法的研究基础之上,2015年Ren等人[11]提出了使用region proposal(预选区域)+CNN的方法,代替“滑动窗口+手工设计特征”的传统方法,设计了Faster R-CNN基于建议区域检测框架。将分离的检测框和CNN分类融合到一起,使用端到端的网络进行目标检测,在速度和精度上都得到了极大提升。在PASCAL VOC和MS COCO数据集上获得当时的最好表现,在GPU Titan X上的处理速度可达10 ${\rm{ms}}$/帧。

Faster R-CNN模型设计的核心是建议区域网络(RPN),结构示意图如图 3所示,锚点(anchor)结构是RPN核心的创新点。处理流程如下:在共享卷积特征层上进行3×3的滑动窗口,每个滑动窗口对应着9个比例大小不同的映射回原始图像的框,根据滑动窗口构建特征向量,对此进行分类和坐标偏移量回归,锚点框的坐标加上回归后的偏移量得到最后的检测框。RPN和检测网络共享底层卷积特征,能够降低区域提取的损耗时间。

图 3 RPN结构示意图
Fig. 3 Structure of RPN layer

1.2 水泥厂目标检测流程

基于候选区域的目标检测算法通常需要两步:1)从图像中提取卷积特征; 2)对每个候选区域进行定位(包括分类和回归)。本文根据Faster R-CNN卷积神经网络框架,设计了基于卫星图像的水泥厂目标检测方法,整体处理流程如图 4所示。具体检测流程步骤描述如下:

图 4 基于Faster R-CNN框架的水泥厂图像检测流程
Fig. 4 Cement detection process based on the Faster R-CNN framework

1) 图像输入。单幅RGB图像,按比例缩放至短边长度为600像素。

2) 特征层输出。经过多层卷积池化操作得到的共享卷积特征图。

3) RPN输出。选取前景目标类得分最高的前300个候选框作为region proposals。

4) 目标输出。对候选区域进行分类,计算候选框的回归偏移量, 得到最终的目标检测框。

1.3 特征提取网络

用于提取图像特征的卷积层网络,目前已经有很多较为成熟的模型,这些模型曾经在图像分类任务中表现突出,本文选取以下3种网络进行训练和对比测试实验。

ZF-Net[14]是ILSVRC 2013图片分类竞赛的冠军,Top-5错误率为11.2 %,具体网络结构如图 5所示。在ZF-Net中使用了一些优化性能的关键技术,ZF使用的滤波器大小逐层减小(7×7,5×5,3×3),有助于保留大量的原始像素信息。利用ReLU的激活函数,将交叉熵代价函数作为误差函数。

图 5 ZF-Net网络结构
Fig. 5 ZF-Net network structure

VGG网络模型由牛津大学的Simonyan等人[15]提出,获得了2014年ImageNet物体分类比赛的第2名,通过使用3×3的卷积核和2×2池化层,加深网络深度,多个卷积层与非线性的激活层交替的结构,使得非线性表达能力增强,能提取出更好的深层特征,在VOC数据集上mAP值达到73.2。具体网络结构如图 6所示。

图 6 VGG16网络结构
Fig. 6 VGG16 network structure

由于损失梯度在反向回传时,随着网络层数的增加,会出现梯度弥散的现象,使得浅层参数很难学习,表现为性能不但没有提升,反而出现了显著的下降。为了解决这个问题,He等人[16]提出了基于残差学习的网络,层数设计深度可达152层,并获得了2015年ImageNet物体分类竞赛的冠军。其主要思想为:在标准的前馈卷积网络上,每隔几层进行跳跃连接。每绕过一层就产生一个残差块,结构如图 7所示。

图 7 残差块结构
Fig. 7 Residual learning block

1.4 水泥厂数据集制作

目前水泥厂作为国家建筑行业的重要产业,没有对外公开的地点或图像数据库,数据量小是本文所面临的难题之一。模型训练使用的是京津冀地区登记的水泥厂(由环境保护部卫星环境应用中心提供),共有464个坐标位置,具体分布如图 8所示。

图 8 京津冀地区水泥厂分布
Fig. 8 Distribution of cement plants in Beijing-Tianjin-Hebei region

采用Google地图API[17]来生成训练和测试数据库。生成数据的参数如下:放大倍数zoom=17;分辨率size=640×640像素。对从Google地图下载的水泥厂图像数据进行手工数据标注,其中有3个目标类:水泥厂区、柱形水泥罐、圆形水泥仓。图 9展示了包含明显标志水泥厂建筑的图例和卫星图像上水泥厂的标注实例。

图 9 水泥厂卫星图像对应标注实例
Fig. 9 Cement satellite image annotation example
((a)example of common cement building; (b)labeled satellite image of cement plant)

1.5 评价指标

信息检索、图像分类识别领域两个最基本指标[18]是召回率和准确率,召回率也叫查全率,准确率也叫查准率。根据改变置信度阈值得到测试框集合,${\rm{IoU}}$(intersection over union)为目标检测框和真值标记框的重叠率,定义如图 10所示,${\rm{IoU}}$大于0.5的认为是正例,其他则为反例,计算得到一系列的P-R值,P-R曲线下的面积作为一个平均准确度(mAP)的衡量尺度。对于卫星图像水泥厂检测,本文定义准确率$p$和查全率$r$指标来评价检测模型的好坏,这个指标主要和检测框与真值框的${\rm{IoU}}$相关,置信度阈值$\alpha$决定是否为正检目标框

$ p = \frac{a}{N} \times 100\% $ (1)

$ r = \frac{b}{M} \times 100\% $ (2)

式中,$N$表示置信度大于$\alpha$的检测框总数量,$a$表示正检框的数量,与真值框的${\rm{IoU}}$大于0.5。$M$表示检测集中标注框的总个数,$b$表示被击中标注框的个数,被击中表示该标注框至少存在一个${\rm{IoU}}$大于0.5的检测框。${\rm{IoU}}$表示真值框$A$与检测框$B$的重叠比例,$A \cap B$表示重叠面积,$A \cup B$表示组合总面积。

$ {\rm{IoU}} = \frac{{A \cap B}}{{A \cup B}} $ (3)

计算以上的评价指标,需要真值标注的测试图像,对于无人工标注的测试集图像,可以简单定义图像检出率为检出图像数占测试图像总数的比例,用来评价模型的检测能力。对某个未知地区进行图像扫描检测时,由于图像基数十分巨大,而包含水泥厂的图像只是极少数,所以针对误检的情况,这里定义“万张随机负样本被误检的图像数量”作为误检评价指标。

2 模型训练与测试

2.1 调参训练阶段

模型定义的损失函数为

$ \begin{array}{l} L\left( {{p_i}, {t_i}} \right) = \frac{1}{{{N_{{\rm{cls}}}}}}\sum\limits_i {{L_{{\rm{cls}}}}\left( {{p_i}, {p_i}^ * } \right)} + \\ \;\;\;\;\;\;\;\lambda \frac{1}{{{N_{{\rm{reg}}}}}}\sum\limits_i {{p_i}^ * {L_{{\rm{reg}}}}} \left( {{t_i}, {t_i}^ * } \right) \end{array} $ (4)

式(4)描述了Faster R-CNN定义的多任务训练损失函数,将分类误差和检测框坐标的回归误差同时作为目标函数的输入,$p$代表概率,$t$代表边框的图像坐标,分类损失${{L_{{\rm{cls}}}}}$使用的是Softmax损失函数,坐标回归${{L_{{\rm{reg}}}}}$使用的是L1损失函数,$*$表示标注真值的数据,$N$表示参与训练的样本数量。生成正负训练样本时基于以下原则:根据Anchors结构映射在原始图像的框,如果与真实标注框的${\rm{IoU}}$大于0.7则认为是正样本,小于0.3则认为是负样本。采用批量随机梯度下降的方法更新网络参数,损失参数设置为${{L_{{\rm{cls}}}}}$=256,${{L_{{\rm{reg}}}}}$=2 400,为了平衡两个不同任务的损失函数,通常设$\lambda $=10。

网络参数的初始化方法,选择经过ImageNet数据预训练的模型参数用于Faster R-CNN网络的初始化,若使用随机的初始化参数,由于梯度弥散导致浅层参数不易学习,导致收敛速度慢,检测效果也不尽人意。

将数据集按7 : 3的比例随机生成训练验证集和测试集。实验在NVIDIA Titan X GPU配置的Ubuntu16.04系统上完成,整个实验均在伯克利大学开发的深度学习框架Caffe[19]上进行,使用随机梯度下降算法更新权值, 将初始学习率设置为0.001, 经过5 000次迭代后, 减少学习率为0.000 1, 迭代1万次结束训练。

3种模型的准确率随训练迭代次数的变化曲线如图 10所示。从图中可以看出3种网络的准确度都随着训练逐渐增加,之后又略微下降,表现最好的是残差网络模型ResNet。

图 10 3种模型的准确率随训练迭代次数的变化曲线
Fig. 10 Accuracy of three models during training process

为了了解经过训练的模型是依靠什么特征进行目标检测的,图 11表示在不同深度上进行卷积特征图可视化,其中分别提取了网络中的第1层、中间层、共享卷积层的部分特征图。从中可以发现浅层主要提取的是边缘、阴影、颜色的特征,从最后一层卷积图已经能够看出响应区域主要是圆形水泥仓、加热塔、矩形厂房等。说明网络主要是靠学习水泥厂的特殊建筑进行目标检测的。

图 11 水泥厂不同深度的卷积特征图
Fig. 11 Convolution map visualization of cement plant

2.2 测试集表现

为了评估这3种不同的检测模型,首先对3种网络使用相同的数据进行训练,具体数据结果如图 10所示。残差网络平均准确率可达到74 %,而相对的VGG16和ZF网络的测试集准确率均低于ResNet。运行速度上,ZF处理速度最快为50帧/${\rm{s}}$,VGG16速度为11帧/${\rm{s}}$,ResNet速度为8帧/${\rm{s}}$。对比实验发现,3种网络的收敛速度不同,随着训练次数的增加,网络的平均准确率逐步提升,表明网络一直在学习数据,但每种网络都会出现最高值,也就是学习过程中泛化能力最好的时刻,随后网络继续学习,出现了过拟合现象。

从3种网络的训练结果中,选出每种网络平均准确度最高的数据,进行正负样本测试,负样本数量有200张,覆盖典型的地貌,包括城市、乡村、工厂等。从图 12的检测结果中,可以发现残差网络对正样本的提取检测效果最好,图像检出率达到78 %,但是相对的误检率也很高。因此接下来将使用基于ResNet的残差网络进一步优化,降低其误检率。

图 12 3种网络的测试集表现
Fig. 12 Testing performance of three networks

图 13展示了使用ResNet网络模型的部分正检(图 13(a))和误检(图 13(b))结果图像。对测试集中的实际检测结果图像进行分析,发现由卷积神经网络构建的Faster R-CNN水泥厂检测模型,对不同大小、形态各异的大部分水泥厂都能够有效检出,说明卷积神经网络能够从小样本训练中提取出有效的水泥厂特征。通过分析误检的图像,发现对于存在阴影的高楼群、泥土田地、相似工厂容易被误认为是水泥厂。解决办法可以利用这些误检的图像作为负样本进行训练,来降低误检率。

图 13 卫星图像上的检测结果
Fig. 13 Detection results on satellite images
((a)examples of true positive result; (b)examples of false positive result)

2.3 置信度的选择

根据Faster R-CNN的检测流程,对RPN网络提取出的300个region proposals进行分类,并赋予每个预选框一个置信度,即这个预选区域属于某个类的概率,下面研究这个阈值对检测结果的影响,模型采用的是ResNet经过6 000次迭代训练的模型,但没有负样本参与训练。

图 14表示的是不同置信度下的正检率和误检率变化。在置信度阈值很低的时候,正检率和误检率都很高,随着阈值的增大,两者逐渐降低,但是误检率比正检率下降得快。曲线趋势表明,在不同置信度下存在不同比例的真值框和误检框,只能根据实际情况和需求来选择合适的置信度,目前0.5的置信度较为合理。

图 14 置信度对正检率与误检率的影响
Fig. 14 Influence of confidence threshold on positive rate and negative rate

3 模型能力提升

3.1 图像预处理

卫星图像是由运行在地球轨道的遥感光学卫星使用不同波段的高清摄像机拍摄而成的,因空中出现的云层会造成图像整体白雾化,另外由于拍摄时间的不同,拍摄的照片整体的曝光也存在差异,这些图像成像质量原因也影响着实际的检测效果。

采用基于图像暗通道的经典去雾算法[20]进行卫星图像的预处理,同时使用伽马变换[21]来降低过曝和提亮阴影,使得图像的细节更为清楚,预处理之后的效果如图 15所示。对训练的数据进行预处理之后,训练VGG16网络,在未经预处理的测试集上的平均准确率与之前使用原始数据训练的基本持平,但在经过相同预处理测试集上得到了2 %的小幅度提升(表 1)。

图 15 图像去雾化效果对比
Fig. 15 Image dehazing effect comparison
((a)examples of haze images; (b)examples of dehazing result)

表 1 去雾化预处理的检测结果(平均准确度)
Table 1 Test result after image preprocessing(mAP)

下载CSV
/%
去雾化图像 原始图像
预处理测试集 67.4 65.3
原始测试集 65.5 65.7

3.2 正样本扩充

深度学习需要大量数据进行学习训练,网络参数又极其繁多,如果数据量很少就很容易出现过拟合现象,即随着训练迭代次数增加,泛化能力反而降低。由于水泥厂训练数据少,卷积网络的参数多、模型复杂,这很容易导致随着训练加深造成过拟合现象,导致检测效果最好的模型出现在训练过程的某个时刻。

针对这个问题,使用图像数据扩充技术对水泥厂图像数据进行扩充。具体操作是,在属于某个水泥厂区内,随机选经纬度点作为图像的中心,然后对图像进行平移、旋转、缩放3种操作,而且参数都是合理范围内的随机值。由原始数据的水泥厂位置,经过5次平移、3次旋转、3次缩放,最终将数据库扩充为14 310幅图像,数据的多样性大大增加。随机选取其中的10 000幅作为训练数据,4 310幅作为测试数据,也对原始的负样本进行测试。

在原始数据集上表现最好的残差网络,对经过不同迭代次数训练的模型进行测试,图像检出率和误检率如图 16所示,可以看出,扩充数据集上的表现非常好,可以达到96 %的图像检出率,而且没有加入额外负样本训练,误检率也降到了14 %左右。

图 16 扩充数据训练模型在测试集的表现
Fig. 16 Performance of model trained by augmented data

3.3 引入负样本

在实际地区的大量卫星图像数据检测扫描中,容易出现误检的情况,例如存在阴影的高楼群、泥土田地、工厂厂房,这些误检图像与水泥厂图像存在部分相似特点。解决办法可以利用这些误检的图像作为负样本进行训练,使得卷积神经网络可以区别水泥厂与误检图像,以降低误检率。

根据误检的图像特征,在卫星地图上出现的误检临近区域,制作了203幅负样本训练数据,作为背景类加入到模型训练中来。为了验证这种方法的可行性,本文通过控制参与训练负样本的数量(0,80,110,203),来观察正检率与误检率的变化趋势,如图 17所示。由测试结果可以发现,加入负样本训练后,误检率明显下降,但正检率也会相应下降,说明参与训练的负样本数量和迭代训练次数会影响实际的检测效果,为了平衡二者的矛盾,选择使用80幅负样本图像参与模型训练。一般情况下需要实际的调参训练去找到表现最佳的模型。

图 17 控制负样本训练的测试集表现
Fig. 17 Model performance trained by negative dataset of different size

4 泛化能力测试

4.1 Global Cement数据集测试结果

目前表现最好的模型是经过扩充数据集训练的基于残差网络结构的Faster R-CNN模型。由于测试数据数量以及多样性都不足,难以说明模型的泛化能力,这里的泛化能力是指经过某省市的水泥厂数据训练后在其他地区的检测表现,以及针对水泥厂处在不同地理环境、季节、厂区大小、位置姿态的情况下是否具有良好的检测精度。为了进一步检测模型的泛化能力,使用京津冀地区训练好的模型去检测现有公开数据库中的水泥厂数据,根据CemNet发布的全球水泥厂报告[22],数据库包含全球2 495个水泥厂信息,具体分布如图 18所示,其中不同图标代表着不同功能的厂区:综合厂、磨粉厂、原料厂。剔除了与国内水泥厂建筑设施和厂区分布存在较大差异的国外水泥厂数据,以及训练集中不存在的磨粉厂、原料厂数据。最后得到了1 479幅测试数据,这些数据未参与模型训练。通过对这批Global Cement数据集进行检测,其中有1 356幅图像被检出存在水泥厂,检出率达到了96 %。

图 18 全球水泥厂数据
Fig. 18 Global cement plant dataset

为了评价检测模型在卫星地图上的误检情况,在地图上随机选点生成10 000幅图像,生成包含各类地形地貌的卫星图像数据集,误检评价标准是万幅误检图像数量。对这10 000幅负样本测试,经过以上3个优化技术后的残差Faster R-CNN检测网络检出30幅错误图像。

4.2 上海地区扫描测试结果

为了测试训练模型对实际地区的检出效果,本文对上海地区进行整体扫描,使用的图像是来自Google地图离线下载的瓦片图像,图像参数与京津冀地区水泥厂训练集保持一致,图像分辨率为640×640像素,共计23 008幅图像。使用的是在测试集中表现最好的ResNet模型。为了防止出现水泥厂被分割到多幅图像中,难以被检出的情况,使用了拼接式扫描方法,除了自身图像需要进行检测以外,对图像的邻域之间还需要进行3次检测,由相邻瓦片组成的间隙①、②、③作为水泥厂检测模型的输入,如图 19所示,其中一个水泥厂被4个瓦片分割,只有检测②时才能准确地将此水泥厂检测出来。同时,水泥厂检出位置与真值位置的分布如图 20所示。

图 19 卫星图像的邻域拼接扫描策略
Fig. 19 Neighborhood scanning strategy for satellite imagery
图 20 上海地区扫描结果分析
Fig. 20 Scanning result of ResNet detection model in Shanghai

测试完成时间约2.5 h,总计检出28个水泥厂图像,其中11个与上海市已登记的水泥厂位置表(数据为环境保护部卫星环境应用中心提供的上海地区登记在案的水泥厂,共计16个)中的水泥厂相对应(与真值相符用绿色表示),有5个登记水泥厂真值数据没有被检出(用红色标记表示),而剩下17个检出水泥厂(小型厂居多)的地理位置未曾登记在上海市水泥厂数据中(未登记水泥厂用黄色表示)。说明由京津冀水泥厂数据集训练出的模型能够检出上海地区的大部分水泥厂,甚至是未登记过的水泥厂,具有较强的泛化能力。

5 结论

本文使用Faster R-CNN深度卷积神经网络框架模型对卫星图像水泥厂目标进行检测,比较测试了VGG16、ZF、ResNet 3种特征提取网,使用京津冀地区的水泥厂数据作为训练数据,实现了卫星图像水泥厂目标检测与定位,根据检测框的大小可以粗略估计厂区面积。实验结果表明ResNet网络的表现最好,经过调参训练后的平均准确率为74 %。但由于样本数量小且误检率相对较高,本文进一步采用了图像预处理、数据扩充、加入负样本训练等方法提升了模型的能力。在扩充测试集上达到了94 %的检出率,在Global Cement数据集上达到了96 %的检出率,万幅随机负样本误检降低至30幅。对上海地区整个卫星图像集的扫描检测结果表明,深度卷积目标检测模型不仅能检出大部分已登记的水泥厂,还能检测出未登记的水泥厂,为环境污染源监控提供可靠参考。

通过本文的实验表明,深度学习在卫星图像的目标检测任务中表现良好。针对水泥厂这种训练数据样本较少的情况,在未来的研究中将考虑结合水泥厂的内部建筑功能划分加入先验知识,以及结合迁移学习的前沿技术训练通用的卫星图像目标检测模型。另外还将考虑使用图像分割的方案,将水泥厂建筑区域分割出来,这样检测区域更符合现实情况,还可以准确估计厂区大小。

参考文献

  • [1] Richards J A, Jia X P. Remote Sensing Digital Image Analysis[M]. Berlin Heidelberg: Springer-Verlag, 2006: 381-433.
  • [2] Zhang G M, Yin J P, Zhu E, et al. Hierarchical object detection in remote sensing image based on vision saliency[J]. Journal of Jilin University:Engineering and Technology Edition, 2007, 37(3): 625–629. [张国敏, 殷建平, 祝恩, 等. 遥感图像中基于视觉显著性的分层目标检测[J]. 吉林大学学报:工学版, 2007, 37(3): 625–629. ] [DOI:10.13229/j.cnki.jdxbgxb2007.03.028]
  • [3] Geng L L, Lin J, Long X X, et al. Research on feature matching algorithm for ZY-3 image[J]. Spacecraft Recovery & Remote Sensing, 2012, 33(3): 93–99. [耿蕾蕾, 林军, 龙小祥, 等. "资源三号"卫星图像影像特征匹配方法研究[J]. 航天返回与遥感, 2012, 33(3): 93–99. ] [DOI:10.3969/j.issn.1009-8518.2012.03.012]
  • [4] Pal M. Random forest classifier for remote sensing classification[J]. International Journal of Remote Sensing, 2005, 26(1): 217–222. [DOI:10.1080/01431160412331269698]
  • [5] Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe, Nevada: ACM, 2012: 1097-1105.
  • [6] Zhou M F, Wang X L, Wang L, et al. Convolutional neural network models for high spatial resolution satellite imagery classification[J]. Journal of Image and Graphics, 2017, 22(7): 996–1007. [周明非, 汪西莉, 王磊, 等. 高分辨卫星图像卷积神经网络分类模型[J]. 中国图象图形学报, 2017, 22(7): 996–1007. ] [DOI:10.11834/jig.160627]
  • [7] Maggiori E, Tarabalka Y, Charpiat G, et al. Convolutional neural networks for large-scale remote-sensing image classification[J]. IEEE Transactions on Geoscience and Remote Sensing, 2017, 55(2): 645–657. [DOI:10.1109/TGRS.2016.2612821]
  • [8] Chen Y S, Lin Z H, Zhao X, et al. Deep learning-based classification of hyperspectral data[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2014, 7(6): 2094–2107. [DOI:10.1109/JSTARS.2014.2329330]
  • [9] Girshick R. Fast R-CNN[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1440-1448.[DOI:10.1109/ICCV.2015.169]
  • [10] Felzenszwalb P F, Girshick R B, McAllester D, et al. Object detection with discriminatively trained part-based models[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(9): 1627–1645. [DOI:10.1109/TPAMI.2009.167]
  • [11] Ren S Q, He K M, Girshick R, et al. Faster R-CNN:towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137–1149. [DOI:10.1109/TPAMI.2016.2577031]
  • [12] Liu W, Anguelov D, Erhan D, et al. SSD: single shot multibox detector[C]//Proceedings of the 14th European Conference on Computer Vision. Amsterdam, The Netherlands: Springer, 2016: 21-37.[DOI:10.1007/978-3-319-46448-0_2]
  • [13] Redmon J, Divvala S, Girshick R, et al. You only look once: unified, real-time object detection[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016: 779-788.[DOI:10.1109/CVPR.2016.91]
  • [14] Zeiler M D, Fergus R. Visualizing and understanding convolutional networks[C]//Proceedings of the 13th European Conference on Computer Vision. Zurich, Switzerland: Springer, 2014: 818-833.[DOI:010.1007/978-3-319-10590-1_53]
  • [15] Simonyan K, Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition[EB/OL]. 2015-04-10[2018-05-01]. https://arxiv.org/pdf/1409.1556.pdf.
  • [16] He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA: IEEE, 2016: 770-778.[DOI:10.1109/CVPR.2016.90]
  • [17] Xiang Y Y, Gao S, Chen Y H, et al. A Comparative study of Baidu map API, Lbs Amap API and Google maps API[J]. Software Guide, 2017, 16(9): 19–21, 25. [向玉云, 高爽, 陈云红, 等. 百度、高德及Google地图API比较研究[J]. 软件导刊, 2017, 16(9): 19–21, 25. ] [DOI:10.11907/rjdk.171478]
  • [18] Nasrabadi N M. Pattern recognition and machine learning[J]. Journal of Electronic Imaging, 2007, 16(4): 049901. [DOI:10.1117/1.2819119]
  • [19] Jia Y Q, Shelhamer E, Donahue J, et al. Caffe: Convolutional architecture for fast feature embedding[C]//Proceedings of the 22nd ACM International Conference on Multimedia. Orlando, Florida, USA: ACM, 2014: 675-678.[DOI:10.1145/2647868.2654889]
  • [20] He K M, Sun J, Tang X O. Single image haze removal using dark channel prior[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341–2353. [DOI:10.1109/TPAMI.2010.168]
  • [21] Gonzalez R C, Woods R E, Eddins S L. Digital image processing using MATLAB[M]. Upper Saddle River, New Jersey: Pearson-Prentice-Hall, 2004: 37-38.
  • [22] CemNet. The global cement report-online database of cement plants[EB/OL]. 2017-06-01[2017-12-01]. https://www.cemnet.com/global-cement-report/