一种基于CNN与梯度分水岭算法的卫星图像区域分割识别方法
2017-03-26张日升朱桂斌张燕琴陈威静
张日升,朱桂斌,张燕琴,陈威静
一种基于CNN与梯度分水岭算法的卫星图像区域分割识别方法
张日升1,朱桂斌1,张燕琴2,陈威静1
(1. 重庆通信学院应急通信重庆市重点实验室;重庆 400035;2. 中国人民解放军95894部队,北京 102211)
卫星图像的准确分割与识别在军事、环境、民生方面都有着重要的研究意义与价值。传统的区域分割算法如分水岭算法、k-means算法等在错综复杂的卫星图像中表现不佳,且不能同时给出区域的类别。为解决上述问题,本文提出一种结合CNN与分水岭算法的图像区域分割方法。该方法首先使用人工标记的区域图像训练CNN(卷积神经网络)分类器,且使其具有旋转不变性及平移不变性,从而能适应不同状态下的图像分类。然后用分水岭算法对图像进行区域粗粒度的聚类,针对分割出的每一个候选区域,使用CNN分类器对其迭代打分,最后得到分割区域并给出识别结果。实验结果表明,该方法较传统方法有更好效果。
卷积神经网络;梯度分水岭;卫星图像;分割识别
0 引言
图像分割技术一直是计算机视觉领域中的一个研究热点。图像分割是指将数字图像细分为多个图像子区域的过程[1],通常用于定位图像中的物体和边界。对于卫星图像,因其错综复杂的区域交叉特性与区域间的不规则连接,传统的图像分割技术,如Chen等[2]提出的基于颜色的聚类方法和Fowlkes等[3]提出的基于梯度的图像分割方法,容易造成多分、重分等问题,效果不佳。
随着深度学习的兴起,卷积神经网络越来越多的被应用到了图像识别中[4],卷积神经网络的稀疏连接、权值共享的特殊结构,不仅大大降低了模型的运算复杂度,而且旋转不变性与缩放不变性也使其具备良好的鲁棒性。目前,Google利用卷积神经网络在ImageNet数据集上已取得了96.9%的惊人准确率。同时,将卷积神经网络运用到卫星图像的分类问题中,可以较好地解决卫星离地距离不同、遥感设备拍摄角度不同和大气层多光谱散射等带来的噪声等问题。
我们也考虑到了RCNN(Region with Convo- lutional Neural Network)与 Fast-RCNN[5]对于区域的分割方法。由于Fast-RCNN在训练与识别时,所计算出的区域均为矩形,对于弯曲的公路或河流,具有较低的召回率,因此只能解决局部的准确率问题,大幅的卫星图像中表现不佳。如图1所示。
为解决多分、重分以及召回率过低的问题,我们结合卷积神经网络[6]对图像精准分类的优点,提出分割区域重组思想。首先使用梯度分水岭算法[7]对预处理后的图像按颜色进行粗粒度聚类,再使用卷积神经网络对每一个聚类区域按一定规则进行迭代识别,并按识别结果对每一个类别进行打分,将得分最高的类别认为是该区域所属类别。针对相同类别的相邻区域,将其合并为一个区域,进而解决多分重分问题。
1 算法实现
本文利用卷积神经网络在分类时具有平移不变性、旋转不变性的特点,对卫星图像块进行准确分类(准确率97%),进而对候选区域打分并重组,实现区域分割识别。本文首先利用梯度分水岭算法对整幅卫星图像按颜色聚类,得到粗略的区域划分,然后对候选区域使用CNN分类器为所属类别打分,最后根据得分,重新整理候选区域,得到分割识别结果。算法流程如图2所示。
1.1 数据预处理
首先采用小波变换[8]对图像进行去噪处理,然后将图像转为灰度图,采用中值滤波算法[9]对图像做平滑处理,便于梯度分水岭算法聚类。
1.1.1 小波变换
采用自适应阈值法去噪。相比于固定阈值方法,该方法可自适应地调节阈值,使之对于不同噪声的适应性与稳定性都得到了提升。自适应阈值定义如公式(1):
式中:为小波的总分解尺度;为阈值小波尺度。可见,不同尺度有不同阈值,与小波分析的多分辨率相适应。
图像经小波变换去噪后效果如图3所示(左图为原始图像,右图为去噪后图像)。
1.1.2 中值滤波
针对灰度图,采用中值滤波算法对其处理,如公式(2):
(,)=med{(-,-),(,Î)} (2)
式中:(,)和(,)分别为处理后的图像与原始图像;和分别为图像横坐标和纵坐标的滑动距离;为二维模板,本方法中选取9×9大小的区域。
针对图像中混杂的一些椒盐噪声,采用中值滤波方法可以很好地起到过滤作用,如图4所示(左图为输入图像,右图为中值滤波后图像)。
1.2 区域粗分割
1.2.1 梯度分水岭算法
分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。
分水岭变换得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显然,分水岭表示的是输入图像极大值点。因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,如公式(3):
图1 基于RCNN的卫星遥感图像区域识别结果
图2 基于CNN与梯度分水岭算法的区域分割算法流程图
式中:函数表示原始图像;grad函数表示梯度运算。
为降低分水岭算法产生的过度分割,通常要对梯度函数进行修改,一个简单的方法是对梯度图像进行阈值处理,以消除灰度的微小变化产生的过度分割,如公式(4):
(,)=max(grad((,)),()) (4)
式中:函数表示阈值。
1.2.2 候选区域获取
结合实际图像,对预处理后的图像使用梯度分水岭算法进行区域粗分割,当阈值为10时分割结果如图5所示(从左至右依次是输入图像、梯度化后图像、标记后图像和分割后图像)。
1.3 卷积神经网络模型
1.3.1 卷积神经网络的特点
卷积神经网络受猫脑皮层的局部感知与方向选择的启发而被设计提出。一方面,卷积神经网络中神经元之间的稀疏链接与权值共享,可使其在深层次上挖掘出数据在空间上的关系,因此使网络具有旋转不变性与平移不变性;同时,参数共享也减少网络中可训练参数的数量,提高了训练速度与计算效率。
1.3.2 针对卫星图像搭建的卷积神经网络模型
模型分为两个部分。一是特征提取部分,一是分类部分。其中,特征提取部分负责学习图像块中的有效特征以助于后续分类;分类部分利用上述特征对图像所属类别进行精准预测。
特征提取部分是由卷积层与池化层组成。其中,卷积层又由众多卷积核组成,最后经过激活函数后将结果输出,如公式(5):
式中:x表示第层卷积层中第个圈结合对应的特征;M表示当前神经元的感受域;W表示第层中第个卷积核的第个加权系数;b表示第层中第个卷积核的偏执系数,在这里,我们选取ReLu函数作为激活函数,如公式(6):
()=max(0,) (6)
池化层利用局部相关性原理对数据进行子抽样,在减少数据维度的同时又保证了信息的有效性,且使模型具有了平移不变性。如公式(7):
式中:down函数表示卷积函数;表示加权系数;表示偏执系数。
针对35×35像素大小的遥感卫星图像设计的卷积神经网络模型图,如图6所示。
1.3.3 训练方法
卷积神经网络是输入到输出的映射,能够在不需要任何输入和输出之间的精确数学表达式的前提下,利用已标记的数据进行训练,建立输入输出对之间的映射关系。卷积神经网络训练流程如图7所示。
据经验值,将设为60,偏置系数初始为1,卷积核加权系数按照公式(8)初始化:
式中:Fin为输入数据的维度;Fout为输出数据的维度。
图4 中值滤波
图5 梯度分水岭算法区域粗分割
图6 识别卫星图像的卷积神经网络模型图
图7 卷积神经网络训练流程图
1.4 区域分割方法
1.4.1 区域打分
对于2.2节给出的候选区域,我们使用2.3节中CNN分类器对候选区域中的每一个图像块进行识别分类,步长为25,如图8所示。
对于边界外区域,我们采用0填充,如图9所示。
为所属类别打分,分值即为softmax给出的概率值,如公式(9):
式中:Ci为第i类别的得分;n为大区域中小区域块的数量;Sji为第j个区域块属于i类别的概率。
Fig. 8 Region marking
图9 边界填充
图10的打分结果如表1所示,精确到小数点后两位,小于0.01时得分为0。
1.4.2 区域重组
对上述打分后的区域,认为得分最高的类别为该区域所属类别,同时,将属于同一类别而相邻的区域合并,如图10所示。
图10 区域合并
Fig. 10 Region merging
表1 遥感图像分割区域打分表
2 测试结果及分析
2.1 卷积神经网络超参数选取方法
2.1.1 训练数据的选取
实验所使用数据来自谷歌卫星地图19级图像,随机区域采集后切分成25×25像素图像,按照类别分为5类,即草地、湖泊、公路、居民区、土地,每类5000张,合计25000张。为了增加样本的相关性,使模型具有更好的泛化能力,现将训练数据依次顺时针旋转90°、180°和270°,如图11所示。
经过旋转处理后,每类图片扩增至20000张,合计100000张。在每类20000张数据中,随机取12000张作为训练集,其余部分随机分成两部分,每部分4000张,分别为测试集与验证集。
2.1.2 训练次数选择
我们将数据按每128张图片为一个batch,最后一个batch不足128时随机抽取补充,共160个batch,迭代到360次之后,loss不再下降,模型训练完毕,如图12所示。
2.2 与经典BP神经网络对比
为证实设计的卷积神经网络更加有效,我们将相同数据集用经典BP神经网络训练,并作比较实验,结果如表2所示。
2.3 与传统图像分割方法比较
同时,为证实本方法较传统方法的有效性,作对比实验,结果如表3所示。
2.4 结果分析
由于卫星图像的特殊性,直接采用传统的梯度分水岭算法会产生明显的多分和重分现象,无法达到识别的目的。若直接使用CNN方法进行区域识别,由于识别的区域均为矩形,对于弯曲的公路或河流,不能够准确地表现出目标轮廓范围,因此只能个别目标识别而无法做到大幅卫星图像识别。基于CNN与梯度分水岭算法的卫星图像区域分割识别方法充分发挥了梯度分水岭算法和卷积神经网络的优势,图像分割后边界清晰,类别明显,较好地实现了卫星图像的区域分割与识别功能。
3 总结
本文研究了CNN与梯度分水岭算法相结合的卫星图像区域分割与识别方法,解决了传统分割方法重分、多分与深度学习方法只能精准识别的问题。但是还有一些不足之处,如区域打分依赖于准确率较高的分类器、区域合并运算速度较慢等。同时,在讨论本方法的时候,封闭区域的选取也是需要重点讨论的对象。在下一步的工作中,我们将对如何选取封闭区间与如何进一步提高运算速度进行优化。
图11 旋转卫星图片
Fig. 11 Rotating satellite images
图12 Loss曲线
Fig. 12 Loss curve
表2 卷积神经网络与经典BP神经网络算法对比结果
表3 CNN与梯度分水岭结合方法与传统方法对比结果
[1] Acharya J, Gadhiya S, Raviya K. Segmentation techniques for image analysis: A review[J]., 2013, 2(1): 1218-1221.
[2] CHEN J, Pappas T N, Mojsilovic A, et al. Adaptive image segmentation based on color and texture[C]//, 2002, 3: 777-780.
[3] Fowlkes C, Martin D, Malik J. Learning affinity functions for image segmentation: Combining patch-based and gradient-based approaches[C] //, 2003, 2: II-54-61.
[4] Sharif Razavian A, Azizpour H, Sullivan J, et al. CNN features off-the-shelf: an astounding baseline for recognition[C]//, 2014: 806-813.
[5] Girshick R. Fast r-cnn[C]//, 2015: 1440-1448.
[6] Ciregan D, Meier U, Schmidhuber J. Multi-column deep neural networks for image classification[C]// 2012(), 2012: 3642-3649.
[7] MA J, BAI H, FENG J, et al. Image segmentation algorithm based on wavelet transformation and watershed[C]//, 2016: 100331L-100331L-5.
[8] YAN R, SHAO L, LIU Y. Nonlocal hierarchical dictionary learning using wavelets for image denoising[J]., 2013, 22(12): 4689-4698.
[9] Hsieh M H, CHENG F C, Shie M C, et al. Fast and efficient median filter for removing 1%-99% levels of salt-and-pepper noise in images[J]., 2013, 26(4): 1333 -1338.
Method of Satellite Images Region Segmentation and Recognition Based on CNN and Gradient Watershed Algorithm
ZHANG Risheng1,ZHU Guibin1,ZHANG Yanqin2,CHEN Weijing1
(1.,,400035,; 2.95894,100102,)
The accurate segmentation and recognition of satellite images is very important in military and environmental matters and for people's livelihoods. Traditional region segmentation algorithms, such as the watershed algorithm, k-means algorithm, etc., do not perform well on complex satellite images, and cannot simultaneously display the region category. To address this problem, a method of satellite images region segmentation is proposed based of a convolutional neural network (CNN) and the gradient watershed algorithm. Firstly, the artificial markers of regional images are used to train the CNN classifier to adapt to the different categories of image classification with rotation in variant and translation in variant. Then, the watershed algorithm is used for regional images’ coarse-grained clustering. For each candidate region segmented, CNN classifiers were used to iterate and mark. The experimental region segmentation and the recognition results show that the proposed method is better than the traditional methods.
convolutional neural network,gradient watershed,sensing images,segmentation and recognition
TP389.1
A
1001-8891(2017)12-1114-06
2017-01-10;
2017-12-01.
张日升(1988-),男,硕士研究生。研究方向:智能信号与信息处理。E-mail:15320339816@163.com。
重庆市科技研发基地能力提升项目(cstc2014ptsy40003)。