遥感图像蚁群算法和加权图像到类距离检索法
2021-06-25叶发茂孟祥龙聂运菊陈晓勇
叶发茂,孟祥龙,董 萌,聂运菊,葛 芸,陈晓勇
1. 东华理工大学测绘工程学院,南昌 330013; 2. 南昌大学信息工程学院,南昌 330031; 3. 南昌航空大学软件学院,南昌 330063
随着遥感卫星的日益增多,遥感图像数据获取量逐渐增大,如何有效地管理和利用这些遥感图像数据成了一个待解决的难题。遥感图像检索(remote sensing image retrieval,RSIR)是一种较好的解决方法,已成为遥感应用研究领域的一个重要方向[1]。
遥感图像检索研究主要任务是如何提取有效的检索特征。传统的遥感图像检索方法提取图像的光谱、纹理、形状等视觉特征。例如,文献[2]采用双数复小波变换提取颜色描述子以提高高分辨率遥感图像检索精度。然而,这些底层特征都是人工设计的,只针对特定的目标对象,难以准确、全面地表达图像的内容,容易出现“语义鸿沟”问题,所以基于该类特征的检索方法容易导致检索结果不理想[3]。为了解决“语义鸿沟”问题,一些检索方法通过聚合方法将底层特征转化为中层特征,以提升特征的检索性能。文献[4]采用SIFT特征构建成低维的视觉词袋(bag of visual words,BoVW)特征并与Gabor纹理特征融合进行遥感图像检索;文献[5]采用一种基于自动编码器的无监督特征学习框架将低层特征集映射成新的稀疏特征,并应用于高分辨率遥感图像检索;文献[6]提取局部模式谱的密度信息,并利用局部聚合描述符(vectors of locally aggregated descriptors,VLAD)方法进行编码应用于遥感图像检索。
近年来,随着深度学习的发展,卷积神经网络(convolutional neural network,CNN)模型展现出强大的提取高级视觉特征的能力,已广泛地应用于图像分类[7]、物体识别[8-9]、图像匹配[10]等领域,并取得巨大的成功,同时也被应用于遥感图像检索。这些方法大致可以分为两类:第1类是利用目标数据库的图像训练或者微调CNN模型[11-16];第2类是不利用目标数据库图像[17-19]。第1类是目前较为常见的方法,例如,文献[11]利用目标数据库样本微调CNN模型,再利用微调的模型提取CNN特征和图像类别概率用于遥感图像检索;文献[12]通过有监督方法提取遥感图像CNN特征,再利用改进的模糊C均值对其进行聚类,以提高检索性能;文献[14]提出了一种基于CNN特征和重排序方法的遥感图像检索方法;文献[15]提出了稀疏自动编码算法与CNN共享权值相结合的方法来提取图像高层特征,进行海量遥感图像检索。第2类方法包括迁移学习方法和无监督学习方法。迁移学习利用已有的、与目标数据库图像类型相似的带标签图像库对CNN模型进行微调,学习该领域知识并迁移到目标图像上[17-18]。无监督学习方法利用其他带标签的图像库通过无监督学习方法学习有关目标域知识[19]。第1类方法由于使用了带标签的目标数据库图像,能够获取到较好的检索特征,但需要人工标注标签;第2类方法不需要带标签的目标数据库图像,但提取检索特征的检索性能不如第1类。本文采用的是第1类的方法。
遥感图像检索另一个方面的研究是图像相似测度的研究。文献[20]对欧氏距离、余弦距离、曼哈顿距离和卡方距离4种常见的相似性度量进行了对比分析,试验结果表明欧氏距离和余弦距离能够取得更好的效果。文献[17]提出一种基于检索结果图像系列的排名相似测度;文献[21]提出将图的节点和区域的边相结合的图相似测度,该相似度考虑了区域的特征和区域间的相互关系;文献[22]提出一种加权图像到类距离的相似测度,不仅考虑查询图像与待检索图像之间的距离,还考虑待检索图像与遥感图像库中与查询图像同一类别的图像之间的距离。
遥感图像检索是要从遥感图像库中检索出与查询图像语义相关的图像,但在检索过程通常利用的是查询图像与待检索图像间的距离,而遥感图像库中图像间的语义信息通常被忽视[23]。如果在检索过程中,考虑遥感图像库中图像之间的语义相似度,将可以增加检索结果中的图像之间的语义相似度,将有助于提升图像检索性能。蚁群算法(ant colony optimization,ACO)是模拟蚂蚁寻找食物的群智能优化算法[24]。该算法起初用于求解旅行商问题,后来被广泛地应用于各种优化问题,如移动机器人路径规划[25]、车间作业调度问题、航迹规划[26]。ACO也被用于图像检索,如文献[27]利用蚁群算法从扫描的文档中寻找最优的商标所在位置;文献[28]利用ACO为图像检索系统从较大的特征集中选择出最小、最合适的特征集用于检索。而本文将ACO强大、自适应求解最优化问题能力应用于优化遥感图像库中图像间语义相似度。通过在检索过程中充分利用改善的图像间语义相似度,使检索结果中的图像具有更高的语义相似度,从而提高遥感图像检索精度。同时,本文还将信息素浓度与加权图像到类距离相结合,提出了改进的加权图像到类距离,进一步提高度量图像间相似度的准确性。
1 原理与方法
1.1 基于ACO的遥感图像检索的思想
ACO对蚂蚁觅食的群体智能行为进行了模拟。蚂蚁外出觅食过程中,会在所经过的路径上留下具有挥发性的化学刺激物——信息素[24]。当一条路径上经过的蚂蚁越多,该路径上积累的信息素越多,该路径则会被更多的蚂蚁选择。而某些路径上经过的蚂蚁较少时,该路径上的信息素会随时间的推移而逐渐挥发。通过这种正反馈机制,最终蚁群能够寻找到蚁穴与食物源之间的最优路径[24]。ACO利用信息素浓度矩阵(以下简称信息素矩阵)存储蚂蚁觅食经过路径的留下的信息素浓度信息,并通过正反馈机制使得较短的路径(较优解)的信息素得以更多积累,从而引导算法逐步寻找到最优解。
遥感图像检索是利用从遥感图像中提取的图像特征在遥感图像库中寻找出与查询图像语义相关的图像的过程。检索过程利用的是图像特征的相似度,但当提取的图像特征不完美时,会导致图像特征相似度不能够较好地反映图像语义相似程度,从而导致有些与查询图像不相关,但特征相似度大的图像出现在检索结果列表的前列。
为了改善这种情况,本文通过信息素浓度描述遥感图像库中图像间的语义相似度,并通过ACO改善这些图像语义相似度。该方法主要思想如下:将遥感图像库中的每幅图像认为是图的一个节点,图像两两相连,形成无向全连接图。再把遥感图像库中的每一幅图像作为查询图像,并将其作为蚂蚁行走路径的起点,蚂蚁在该全连接图上进行游走。然后,把每只蚂蚁行走的路径看作是以查询图像为起点的一次检索过程,并且如果某蚂蚁行走的路径较短,即该检索结果较好,则该路径分配较多的信息素。最后,通过蚂蚁不断的游走,语义相似度高的图像间分配的信息素会增多,而语义相似度低的图像间的信息素由于不断挥发会逐步减少,通过这种方式就可以不断改善图像间的语义相似度。
在遥感图像检索过程中,充分利用通过ACO获取到的遥感图像库中图像间信息素浓度改善查询图像与待检索图像间的距离。也就是说,计算图像间的距离时不但利用图像特征间的距离,还利用待检索图像之间的语义相似度信息,从而使得检索结果中的图像具有更高的语义相似度,并提高遥感图像检索精度。
1.2 信息素矩阵初始化和更新
1.2.1 信息素矩阵初始化
信息素被用于描述图像间的语义相似度,其值越大则图像间语义相似度越大。因此,本文根据图像特征的欧氏距离对信息素矩阵初始化,两图像特征间的欧氏距离越小,该图像间的信息素越大。假设遥感图像库RD中有N幅图像,Ph表示该遥感图像库中图像的信息素矩阵,则信息素矩阵Ph根据式(1)进行初始化
Ph(Ii,Ij)=1-ND(Ii,Ij)
(1)
式中,Ph(Ii,Ij)是图像Ii与Ij间的信息素;ND(Ii,Ij)是图像Ii与Ij间的欧氏距离,D(Ii,Ij)根据式(2)归一化后的距离
(2)
1.2.2 加权图像到类距离
如何准确地衡量查询图像与待检索图像间(遥感图像库中的图像)的距离是遥感图像检索中一个关键问题,为了更精确地衡量查询图像与待检索图像间的距离,文献[22]提出了一种加权的图像到类距离。图像到类距离是指待检索图像到查询图像类(遥感图像库中所有与查询图像类别相同的图像)间的距离。文献[22]根据CNN预测的图像类别置信度和图像到类距离预测的图像类别置信度计算待检索图像的类别权重,赋予与查询图像有更大可能是同一类别的待检索图像更大的权重,并将该权重与图像到类距离相结合得到加权图像到类距离。
给定查询图像Iq,由于查询图像Iq和遥感图像库RD中图像的类别都是未知的,所以要在遥感图像库RD找出所有与查询图像Iq类别相同的图像是困难的。本文采用K-means法在遥感图像库RD找出与一些查询图像Iq最相似的图像,并将这些图像与查询图像一起作为查询图像类,查询图像Iq在遥感图像库中的K近邻图像集合为
NkNN(Iq,k)={R ⊆RD,|R|=k∧∀Ix∈R,
Iy∈RD-R:D(Iq,Ix)≤
D(Iq,Iy)}
(3)
式中,D(Iq,Ix)是查询图像Iq与图像Ix特征间的欧氏距离。然后,根据式(4)计算Iq与Ir间的图像到类距离为
D(Ir,Ix))
(4)
最后,如果查询图像Iq与待检索图像Ir两者具有较高的概率是同一类的图像,就给该待检索图像Ir赋予更大的权重。根据文献[22]确定待检索图像Ir的权重WIr,从而得到加权图像到类距离为
WQCD(Iq,Ir)=(1-WIr+0.000 1)×QCD(Iq,Ir)
(5)
根据查询图像与待检索图像的加权图像到类距离的进行排序,就可以得到最终的检索结果。
1.2.3 路径生成
为了改善遥感图像库中图像间的信息素浓度,本文以遥感图像库中每幅图像作为蚂蚁行走路径的起点,通过模仿蚂蚁觅食的过程,生成每幅图像的检索路径,然后再根据这些路径对信息素矩阵进行更新。每只蚂蚁行走的路径就是以路径起点为查询图像,在遥感图像库中进行检索的一个结果。单条路径生成的过程如下:
(1) 从遥感图像库中取出任一幅图像作为查询图像Iq,采用改进的加权混合距离,WPD(Iq,Ir),获取Iq的邻域。改进的加权混合距离WPD(Iq,Ir)是根据归一化的距离ND(Iq,Ir)和信息素Ph(Iq,Ir)进行计算,定义如下
WPD(Iq,Ir)=(α×ND(Iq,Ir)+β×(1-Ph(Iq,
Ir)))×(1-WIr+0.000 1)
(6)
式中,α和β分别是控制ND(Iq,Ir)和Ph(Iq,Ir)影响的参数,两者之和为1。
(2) 根据式(7)确定查询图像Iq的邻域
NKNN(Iq,k)={R ⊆RD,|R|=k∧∀Ix∈R,
Iy∈RD-R:WPD(Iq,Ix)≤
WPD(Iq,Iy)}
(7)
式中,k为邻域的大小。将查询图像Iq和其邻域NKNN(Iq,k)作为查询图像类。
(3) 根据式(8)计算查询图像Iq与待检索图像Ir之间的改进的图像到类距离
(8)
(4) 将改进的图像到类距离QCD(Iq,Ir)代入式(5)就得到改进的加权图像到类距离WQCD(Iq,Ir),并根据该距离对待检索图像从小到大排序,寻找前M幅图像,形成一条完整的蚂蚁行走路径PIq。
1.2.4 信息素更新
遥感图像库中的每幅图像都根据以上路径生成方法生成一条路径,就可以得到N条路径。再根据下式计算每条路径PIq的长度
(9)
最后,根据路径的长度对信息素矩阵Ph利用式(10)进行更新
(10)
式中,ρ∈[01],(1-ρ)表示挥发系数,ΔPhk(Iq,Ix)是第k只蚂蚁在(Iq,Ix)边上分配的信息素。ΔPhk(Iq,Ix)计算公式为
(11)
1.3 基于ACO的遥感图像检索流程
基于ACO的遥感图像检索方法首先利用以上信息素初始化和更新方法获取遥感图像库中图像间的信息素矩阵,得到图像间的语义相似度。然后,利用得到的图像间信息素矩阵,根据以上路径生成方法进行查询图像的检索,获取检索结果。
在检索过程中,如果查询图像Iq不属于遥感图像库,查询图像Iq与待检索图像Ir之间的信息素是缺失的,则根据以式(12)确定两者间的信息素浓度
Ph(Iq,Ir)=1-NQD(Iq,Ir)
(12)
基于ACO的遥感图像检索过程可以分为两部分:离线部分和在线部分。离线部分主要包括提取遥感图像库中图像的特征和生成、更新信息素矩阵,其具体流程见算法1。
算法1:离线过程
i. 输入遥感图像库RD。
ii. 利用微调的CNN模型提取每幅图像的CNN特征和获取图像的类别概率。
iii. 计算任意两幅图像间的欧氏距离和利用式(1)和式(2)初始化信息素矩阵Ph。
iv. Foreach图像Ixin 遥感图像库RD。
v. 利用式(6)和式(7)获取图像Ix的邻域NKNN(Ix,k)。
vi. 根据式(8)和式(5)计算Ix与遥感图像库中其他图像Ir的距离WQCD(Ix,Ir),获取路径PIx。
vii. 利用式(9)计算路径PIx的长度。
viii. End for
ix. Foreach路径PIx
x. 利用式(10)和式(11)更新信息素矩阵Ph。
xi. End for
xii. 输出遥感图像库RD每幅图像的特征和类别概率,信息素矩阵Ph。
在线部分包括一幅查询图像检索过程,具体过程见算法2。
算法2:在线过程
i. 输入查询图像Iq。
ii. 利用微调的CNN模型提取查询图像Iq的CNN特征和获取图像的类别概率。
iii. 计算查询图像Iq与遥感图像库RD中每幅图像间的距离。
iv. 如果查询图像不属于遥感图像库RD,则根据式(12)和式(13)计算查询图像Iq与遥感图像库RD中图像间的信息素。
v. 利用式(6)和式(7)获取图像Iq的邻域NKNN(Iq,k)。
vi. 根据式(8)和式(5)计算Iq与遥感图像库中每幅图像Ir的距离WQCD(Iq,Ir),并从小到大排序。
vii. 输出排序结果。
2 试验与结果分析
2.1 试验环境
采用两个公开的遥感数据集,the UC Merced dataset (UCMD)[29]和PatternNet[30],进行算法评估。UCMD包含21类地物,每类有100张图像。每张图像大小是256×256像素,图像的分辨率是0.3 m左右。PatternNet包含38类,每类图像800张,图像大小也是256×256像素,图像分辨率有较大的差别,分辨率从0.062~4.693 m。
采用VGG16和ResNet50两个CNN模型提取检索特征,这两个模型在图像分类、物体识别、图像检索中都取得令人瞩目的成绩。本文选用这两个模型的高层特征,分别是VGG16的FC7层和ResNet50的Pool5层,作为检索特征。这两个模型采用ImageNet数据集进行预训练;为了使这两个模型更适合遥感图像检索,从UCMD每类图像中随机选择50幅图像用于微调这两个模型,PatternNet每类选择90幅。模型训练参数如下:采用均值为0,方差为0.01的高斯分布对CNN模型最后一层的权重进行随机初始化;采用Adam(adaptive moment estimation)学习方法,学习速率的初始值设为0.001,权重设为0.005,批大小(batchSize)设为256,动量设为0.9,迭代次数设为300次。
采用平均查准率(mean average precision,mAP)和平均归一化检索秩(average normalized modified retrieval rank,ANMRR)作为检索性能的评判标准。mAP取值范围是[0,1],值越大检索精度越高。ANMRR取值范围也是[0,1],但值越小,检索精度越高。
试验环境为:CPU型号为Intel CPU i7-7700,主频3.60 GHz,内存16 GB。深度学习框架为Matconvnet,操作系统为Ubuntu 14.04。模型的相应参数如下:k=9,M=29,α=0.01,β=0.99,ρ=0.1。
2.2 类别mAP比较
将本文方法与采用初始的欧氏距离方法利用两种特征在两个数据集中的类别mAP进行对比,分析每个类别的检索性能差异,结果见图1和图2。由图1可以看出,大部分类别采用本文方法的结果(Pool5_ACO和FC7_ACO)都优于初始采用欧氏距离的检索结果(Pool5和FC7)。一些容易被识别的类别,如高尔夫球场和停车场,两种方法的类别mAP值都能达到100%;但是对于一些比较难以识别的类别,如密集住宅区,初始方法的Pool5的类别mAP值仅为51.34%,而本文方法的Pool5的类别mAP值可以达到70.28%,增长近20%;本文方法的所有的类别mAP的平均值比初始方法大约增长了6.5%。由图2可以看出在PatternNet库中也可以得到类似结论。因此,由于在检索过程中利用了通过蚁群算法得到的遥感图像库图像间的语义相似度以及改进的加权图像到类距离,本文方法相对于初始方法无论是从各个类别还是整体性能都能有所提升。
图1 UCMD库中本文方法与初始检索结果的类别mAP比较Fig.1 Performance comparison of per class mAP values of our method with the initial result on UCMD
图2 PatternNet库中本文方法与初始检索结果的类别mAP比较Fig.2 Performance comparison of per class mAP values of our method with the initial result on PatternNet
2.3 使用信息素对检索结果的影响
为了验证信息素对检索结果的影响,本文对不使用信息素方法[22]和使用信息素方法进行比较。不使用信息素方法利用了加权图像到类距离,没有使用信息素矩阵。结果见表1,在UCMD中,FC7特征使用信息素能够使mAP从92.0%提升到93.21%;ANMRR从0.063 6下降到0.059 7。Pool5特征使用信息素能够使mAP从95.62%提升到96.71%;ANMRR从0.035 9下降到0.027 8。在PatternNet中,FC7特征使用信息素能够使mAP从96.48%提升到97.01%;ANMRR从0.027 3下降到0.025 5。Pool5特征使用信息素能够使mAP从98.49%提升到98.67%;ANMRR从0.011 8下降到0.011 1。由此可见,对于两个数据库,使用信息素的两种特征方法都能够提升检索性能。
同时,在UCMD中不使用信息素方法FC7和Pool5特征检索时间是43.1 ms和34.7 ms,而使用方法的检索时间分别是44.4 ms和37.5 ms,相应增长了3%和7%。在PatternNet库中,使用信息素方法相对于不使用信息素方法时间FC7和Pool5特征检索时间分别增长了6%和7%,见表1。由此可见,本文方法由于计算相似度时增加了计算信息素的时间,从而提高了检索时间,但是增加的时间不超过7%。
表1 是否使用信息素的检索性能比较
2.4 与其他算法的对比
为了验证本文方法的有效性,将本文方法与其他相关方法在UCMD和PatternNet上的检索性能分别进行了比较,结果见表2和表3。表2前5种方法和表3中的前两种方法是使用其他遥感图像库微调的CNN模型;其他方法是使用目标图像对应的遥感图像库微调的CNN模型。根据表2和表3所示,在UCMD数据集中,本文方法中的Pool5特征得到了最好的结果能够将mAP值从95.62%上升到96.71%,提升了1.09%;ANMRR值从0.035 9下降到0.027 8,下降了约22%;PatternNet数据集中,mAP值从98.49%上升到98.67%,提升了0.18%;ANMRR值从0.011 8下降到0.011 1,下降了约6%。因此本文方法相比这些方法能够得到更好的检索性能。
表3 与其他方法在PatternNet上检索性能对比
同时,由表1、表2可知,使用目标图像库训练的CNN模型取得的检索精度要优于使用其他遥感图像库微调的CNN模型,这主要是因为这些模型利用了目标图像库的标签信息。在这些方法中,本文方法取得较好的结果,主要是因为利用了遥感图像库中图像间的语义相似度,提高了检索精度。
表2 与其他方法在UCMD上检索性能对比
3 结 论
为了提高遥感图像检索精度,本文提出了一种基于ACO和改进图像到类距离的遥感图像检索方法。该方法利用信息素浓度描述遥感图像库中图像之间的语义相似度,并通过模仿蚁群觅食的过程,不断更新信息素浓度。同时,在寻找路径的过程中,还利用了改进的加权图像到类距离方法,提高了检索路径的质量,从而提高计算路径长度的可靠性。试验结果证明,利用ACO可以改善遥感图像库中图像之间的语义相似度,从而提高遥感图像检索精度。