基于改进Faster R-CNN的高分遥感影像储油罐检测与信息提取
2020-09-23江一帆于海洋李朝亮刘鹏张慧勇
江一帆,于海洋,李朝亮,刘鹏,张慧勇
(1.河南理工大学 测绘与国土信息工程学院,河南 焦作 454000;2.自然资源部矿山时空信息与生态修复重点实验室,河南 焦作 454000;3.河南省国土资源科学研究院,郑州 450053;4.河南省国土资源调查规划院新郑分院,郑州 450053)
0 引言
石油在国民经济生产中占有重要的地位,快速估算当前的全球石油储备并预测产量变化是决定石油采购和运输措施的关键[1]。储油罐是国家石油存储的主要储备容器,通过快速提取储油罐的体积和分布能够实现各国的石油储备量的准确评估。高分辨率遥感影像是快速获取目标信息的一种有效手段,从高分辨率卫星影像中获取储油罐信息,关键是如何从二维图像中快速找到储油罐并有效地获得其高度信息。已有部分文献在遥感影像上直接提取目标阴影[2-4],通过几何关系计算高度,这类方法一般不能很好地区分深色地物与阴影,需要增加一系列的人工干预来剔除非阴影区域[5-8]。近年来深度学习算法发展快速,在图像目标检测领域成果斐然。本文引入Faster R-CNN(region-based convolutional neural network)[9]模型,根据遥感影像中储油罐的特点采用改进特征提取网络和优化区域建议网络(region proposal network,RPN)等策略,改进原始的Faster R-CNN网络模型,能够快速且高精度地检测遥感影像中储油罐,然后结合阴影信息提取油罐目标参数。该方法能够很好地剔除非目标因素对阴影信息的影响,提高了储油罐参数估算的精度。
1 研究方法
1.1 储油罐检测与信息提取技术流程
本文首先构建了储油罐样本集;其次利用改进的Faster R-CNN训练储油罐检测模型,将训练好的模型在GF-2遥感影像上检测储油罐目标;然后基于光谱比值法和阈值分割法来提取检测到的储油罐的阴影,根据提取的阴影长度及遥感成像阴影空间几何关系计算储油罐高度;最后综合Hough变换获取的储油罐半径计算储油罐储量信息。技术流程如图1所示。
图1 技术流程
1.2 基于改进Faster R-CNN的储油罐检测
Faster R-CNN模型的核心网络是RPN,它的优点是能生成高质量建议区域框,实现了与检测网络卷积层的共享,有效地减少了区域建议检测耗费的时间[7]。Faster R-CNN模型主要由3个部分组成,包括特征提取网络、RPN和分类与回归网络。特征提取网络通过一系列的卷积与池化操作,获取特征图。RPN处理特征图得到候选框,通过ROI Pooling[10],将所有获取的候选框转化为固定大小特征图,最后通过分类与回归网络得到目标的类别与准确位置。Faster R-CNN模型结构如图2所示。
图2 Faster R-CNN模型结构
1)改进特征提取网络。原始Faster R-CNN算法中,卷积操作通常使用VGG16[11]网络或者ResNet101[12]网络提取图像特征。其中,VGG16网络包括13个卷积层和4个池化层,每一个卷积层都包括一个非线性ReLU激活函数,并且卷积核大小均为3×3,步长为1。这13个卷积层被分成5组,每组之间通过池化层来连接,每个池化层均采用尺寸为2×2的最大池化形式,步长为2。由于遥感影像中部分储油罐尺寸较小,如果直接使用原始VGG16网络提取特征,卷积操作不会改变特征图的尺寸,但经过4次下采样后,特征图的面积为原来的1/16,会造成小尺寸的特征直接丢失。为了提高遥感影像储油罐目标的检测精度,本文改进了VGG16网络,根据储油罐样本尺寸特点,删除最后一个池化层以及最后3个卷积层,扩大输出特征图的尺寸,使其能包含更多小目标特征,改进的网络结构如图3所示。
图3 改进特征提取网络结构
2)优化区域建议网络。RPN的主要过程是将卷积生成的特征图的点与原始影像的位置进行匹配,并将其作为一个基准点(锚点),然后以这个基准点为中心选取m个不同面积、不同长宽比的anchor[7],再利用边框回归得到多尺度的建议区域,最后将建议区域分别传入分类层与回归层。在分类层中利用softmax分类器判断锚点的类别(前景与背景);在回归层中,通过优化边框的参数,拟合出候选框位置,最后对整张图片产生的候选区域使用非极大值抑制算法剔除多余的候选区域。原始网络中anchor的面积大小为1282、2562、5122,长宽比为1∶1、1∶2、2∶1,但是原始网络的anchor参数对小尺寸目标无法召回。因此,本文在检测遥感影像储油罐目标时,在默认参数的基础上,加入一组面积为642的anchor,使得网络可以检测到更多的小目标。在训练过程中,RPN 部分的每个锚点使用12个anchor,面积分别为642、1282、2562、5122,3个长宽比保持不变。故分类层共输出24个节点,回归层共输出48个节点。利用分类层和回归层的损失函数输出的损失值分别求导,其结果反馈出反向传播的数据。其中,RPN的损失函数、分类层损失函数与回归层损失函数如式(1)所示[13,15]。
(1)
其中
(2)
(3)
(4)
(5)
1.3 基于Hough变换的储油罐半径计算
本文采用Hough变换检测提取储油罐圆形顶部及半径。Hough变换适用于检测直线或者圆形的目标,其实质是利用影像空间与参数空间的点-线对偶性,通过计算圆心坐标(a,b)和半径r建立一个累加数组B(a,b,r)的三维空间,对空间遍历搜索计算出相关参数。圆形的几何方程如式(6)所示[16]。
(x-a)2+(y-b)2=r2
(6)
式中:(a,b)是圆心坐标;r是半径。
1.4 储油罐的阴影提取与高度计算
1)储油罐阴影提取。针对Faster R-CNN检测提取的储油罐及其周边影像,本文利用阴影的色彩空间特征检测储油罐阴影,将RGB影像转换到HSV色彩空间,并利用阈值分割的方法提取阴影。阴影在HSV色彩空间影像中具有高色调和低亮度的性质,利用式(7)得到比值图像。
(7)
式中:Hij为像元(i,j)色调通道分量;Vij为像元(i,j)亮度通道分量。最后采用阈值分割和数学形态学优化得到最终的目标阴影。
2)阴影长度计算。储油罐的阴影类似于新月形,根据阴影与储油罐空间几何关系原理,储油罐沿太阳光线方向上形成阴影。本文基于亚像素细分定位的思想来提取阴影中与太阳光线平行的线段,根据式(8)、式(9)计算线段的长度L。
(8)
S=L×k
(9)
式中:(s,t)、(x,y)分别是线段2端点p、q的坐标;S是储油罐阴影长度;k是空间分辨率。其阴影长度计算的详细步骤如下。
①在提取的储油罐阴影基础上,分别获取阴影的内外边缘像元点坐标;
②在阴影的内外边缘上分别选取一个像元点构建像元对,计算像元对所在直线的方位角,然后分别在内外边缘上遍历所有像元点;
③比较每个像元对的方位角与太阳方位角的差值,记录差值小于1°的像元对坐标;
④根据亚像元细分定位的思想[1],将步骤③选取的像元对的外边缘坐标细等分,通过遍历操作,获得使方位角差值小于0.05°的点,将获得的点与阴影内边缘像元的中心点(阴影内边像元是混合像元,所以选择像元中心点)根据式(8)计算出长度;
⑤对所有求取的像元对长度取均值,根据式(9),计算阴影的实际长度。
3)储油罐高度及体积计算。遥感影像中储油罐阴影的形成与储油罐的大小、太阳高度角、太阳方位角和卫星方位角有关。储油罐的周边一般地面平坦,油罐垂直于地面,储油罐之间具有一定间隔。根据遥感卫星成像角度的不同,选取储油罐的阴影完全落在间隔地面的影像。在上述限定条件下,利用储油罐、卫星方位角、太阳方位角和太阳高度角之间的几何关系,可以计算储油罐的高度信息。储油罐的高度与其阴影之间的位置关系可以分为3种情况:①卫星方位角与太阳方位角的差值大于180°;②卫星方位角等于太阳方位角;③卫星方位角与太阳方位角的差值小于180°[17]。本文选取的实验数据属于第一种情况,以下论述为该条件下数据处理过程,其他条件可以此类推。
在遥感卫星成像时,如果卫星方位角与太阳方位角的差值大于180°,即卫星和太阳位于储油罐的两侧,那么遥感影像包含储油罐所有的阴影,这种情况的几何关系如图4所示。根据式(10)计算储油罐高度。
图4 卫星、太阳和储油罐几何关系示意
h=S×tanα
(10)
式中:α是太阳高度角;h是储油罐高度;S是储油罐阴影长度。然后利用式(11)计算储油罐体积。
V=π×r2×h
(11)
式中:r是储油罐底面半径。
2 实验与结果分析
2.1 实验平台搭建
实验平台为台式计算机,处理器为Intel Core i9-9900k,32 GB内存,512 GB固态硬盘,GPU为NVIDIA RTX2080,运行环境为Ubuntu16.04系统,Python 3.5,Tensorflow1.2.1。
2.2 改进Faster R-CNN储油罐检测模型训练
1)实验数据集。在模型训练的实验中,本文以高分二号数据、部分开放的高分辨率遥感影像以及部分公开的遥感数据集为数据源,按照VOC格式制作数据集。其中,根据储油罐建造方法的不同以及遥感影像观测特点将储油罐分为2类:外浮顶式储油罐(外浮顶罐)和固定顶式储油罐(固定顶罐)。图片尺寸为512像素×512像素,获得共计1 215张图片,最后按照训练集∶验证集∶测试集=2∶2∶1的比例进行训练。
Faster R-CNN训练方式分为2种:分阶段交替训练和近似联合训练。近似联合训练占用的显存更小并且效率更高,2种方法识别效果基本相同,因此,本文采用近似联合训练方式。
2)模型训练实验结果与分析。实验中采用mAP(mean average precision)作为评价指标[18]。mAP的计算方法如式(12)所示。
(12)
式中:n为类别数;Pre为精准率;Rrc为召回率。mAP体现模型识别效果的优劣程度,其值越大效果越好。
为了检验改进方法的效果,实验中分别采用不同的方案来训练和测试网络模型。具体实验结果见表1。在原始网络中anchor默认参数为9,即(长宽比为1∶1、1∶2、2∶1;尺度为1282、2562、5122)。但是原始Faster R-CNN采用的数据集照片不是遥感影像,其获得的尺度参数与本文的数据集不匹配,为了降低漏检率,根据遥感影像中储油罐大小特点增添一种参数为642的尺度,将anchor的数量从原来的9增加到12,使得模型可以检测更多的储油罐。从表1可以得出,运用合适的anchor尺度,可以使mAP提升2%以上;通过对比不同特征提取网络的训练结果,本文改进的特征提取网络相比经典的VGG16网络,可以使mAP值提升3%以上,与层数更多的ResNet101网络相比,也保持较快的检测速度。从整个对比实验可看出,通过改进网络模型,最终可使储油罐检测的mAP达到90.29%,识别每张图片仅需183 ms。实验证明,改进后的Faster R-CNN算法能够有效地优化储油罐检测模型。
表1 不同策略训练模型对比实验
2.3 储油罐参数提取
本文选取兰州地区的一景高分二号影像为实验数据,其卫星成像时间是2018年4月18日,太阳高度角是63.06°,太阳方位角是161.98°,卫星方位角是281.84°。为了保证目标提取的精度,在进行阴影提取之前,原始遥感影像需要预处理,首先对高分二号卫星的原始数据进行辐射定标,并利用FLAASH模型进行大气校正;然后基于RPC模型和DEM数据进行正射校正,并采用超分辨率贝叶斯法融合多光谱影像和全色影像。
利用训练好的改进Faster R-CNN模型对预处理后的影像进行目标检测,得到含有储油罐的锚框,结果如图5(a)所示。影像中40个储油罐全部被检测到,没有漏捡;3个其他地物被错检为储油罐,精准率为93%。一般生成的锚框边长约是储油罐的直径,恰好包括整个的储油罐,如图5(b)所示,而实际生产中大型储油罐的高径比小于1[19],因卫星成像角度的原因,遥感影像中建筑物的阴影长度一般小于高度。本文在原始锚框尺寸的基础上将锚框的边长扩大一倍,将储油罐及储油罐的阴影全部包括,得到图5(c)。由图5(c)可知,图中只有储油罐、阴影及地面,没有其他的地物干扰阴影的提取,达到了预期目的。
图5 目标检测结果
1)储油罐阴影长度提取。将修改尺寸后的RGB色彩空间的锚框图像转化为HSV色彩空间的影像(图6(a)),对HSV色彩空间的影像分别提取影像的H通道分量、V通道分量,利用式(7)计算二者的比值图像,结果如图6(b)所示。然后利用阈值分割得到图6(c)。由图6(c)可知,储油罐阴影为典型的月牙形状,通过数学形态学的闭运算,剔除非目标阴影的图斑,得到储油罐阴影,如图6(d)所示。最后提取阴影的边界(图6(e))得到内外边缘坐标,根据上文中的式(8)、式(9)计算得到阴影长度,由几何关系推算储油罐高度(式(10))。储油罐的半径直接通过Hough变换从RGB影像上提取,结果如图6(f)所示。
图6 阴影提取各步骤结果
2)储油罐参数提取精度分析。本文选取兰州国家石油储备基地的30个储油罐作为实验目标,其参数计算结果如表2所示。根据相关文献资料,实验区内储油罐高度均为21.8 m,半径均为40 m[19]。从表2高度部分可知,绝大部分储油罐计算高度与实际高度的绝对误差在0.5 m以内,相对误差在3%以内,说明本文所采用的利用储油罐阴影长度的均值估算油罐高度的方法是可行的。图7(a)为30个储油罐高度的相对误差统计曲线。
表2 储油罐的参数计算
储油罐的高度估算精度取决于阴影的提取结果,本文中半径提取存在误差的主要原因是储油罐的阴影不是规则的扇形,且因成像角度的原因,阴影中包含储油罐的部分柱面;在储油罐阴影提取过程中,储油罐的柱面被误识别为阴影区域,导致计算出来的储油罐高度偏大。
本文是在目标检测的基础上逐个提取储油罐半径,实验中储油罐的半径全部提取成功。半径统计结果如表2所示,图7(b)为30个储油罐半径的相对误差统计曲线。从表2的统计结果可知,储油罐半径的计算结果与实际长度的绝对误差处于2种误差量级(0.014 m和0.8 m),并且相对误差在2%以内。在半径提取实验中,由于本文先利用Faster R-CNN检测储油罐,然后逐个提取储油罐半径,相比传统的直接采用Hough变换在影像上提取半径的方法,大大减少了储油罐的漏检的情况。表2中储油罐半径的绝对误差都处于2个量级。因为融合后的高分二号影像的分辨率是0.81 m,而储油罐的罐壁存在一定的厚度,导致在提取边界时存在接近一个像元大小的误差,造成计算半径与实际半径存在0.8 m左右的误差。本文将储油罐罐体视为标准圆柱体,然后利用式(11)来估算储油罐体积,结果如表2体积部分所示。图7(c)为30个储油罐预估体积相对误差统计曲线图。
图7 储油罐各参数相对误差曲线
综合上述结论可知,绝大部分储油罐体积的估算结果与实际的绝对误差范围在0.017 8×104~0.512×104m3之间,相对误差范围在0.07%~4.71%之间。说明本文方法具有一定的实际应用价值。
3 结束语
本文首先构建了用于Faster R-CNN网络训练的高分遥感影像储油罐数据集,根据遥感影像中储油罐的特点使用改进特征提取网络、增加锚点数量策略优化原始的Faster R-CNN网络模型。实验结果证明,本文方法对储油罐检测精度相比原始网络提高6.39%,储油罐检测的mAP达到90.29%。本文基于高分二号遥感影像,开展了大面积影像储油罐自动检测实验,得到了含有完整储油罐阴影的锚框影像,通过阴影长度计算储油罐的高度,利用Hough变换计算半径,进而预估储油罐体积。实验中储油罐体积估算结果的平均相对误差为2.37%,说明本文建立的提取方法具有较高的应用价值。