社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

遥感卫星图像中目标检测的最新深度学习方法

计算机视觉研究院 • 11 月前 • 190 次点击  

点击蓝字


关注我们

关注并星标

从此不迷路

计算机视觉研究院

公众号ID|计算机视觉研究院

学习群|扫码在主页获取加入方式

https://pmc.ncbi.nlm.nih.gov/articles/PMC10347255/

计算机视觉研究院专栏

Column of Computer Vision Institute

遥感卫星图像中的目标检测对于社会经济、生物物理和环境监测至关重要,是预防洪水、火灾等自然灾害、提供社会经济服务以及开展城乡规划与管理的必要手段。尽管深度学习方法近年来在遥感图像分析中备受关注,但由于景观异质性复杂、类间相似性高且类内多样性大,以及难以获取能体现这些复杂性的合适训练数据等原因,其在高效检测图像目标方面仍存在不足。

PART/1

     概述   

为应对这些挑战,本研究采用多目标检测深度学习算法,并结合迁移学习方法,对在异质景观中拍摄的遥感卫星图像进行分析。在研究中,使用了一个新的多特征数据集,该数据集包含通过谷歌地球引擎在南非夸祖鲁-纳塔尔省南部多个地点收集的五类目标。数据集图像的特点是目标具有不同的尺寸和分辨率。基于R-CNN和YOLO架构的五种目标检测方法在我们新创建的数据集上通过实验进行了研究。

结论:本文对最新的基于深度学习的目标检测方法在高分辨率遥感卫星图像目标检测中的性能进行了全面的评估与分析。这些模型还在两个公开可用的数据集(Visdron和PASCALVOC2007)上进行了评估。结果显示,植被和游泳池实例的最高检测准确率超过90%,而YOLOv8的检测速度最快,达到0.2毫秒。


PART/2

     背景   

遥感卫星图像分析对于土地覆盖制图、城市规划、灾害管理和环境监测等一系列应用至关重要。具体而言,从遥感卫星图像中识别住宅建筑、水体等目标,对于景观规划与管理以及洪水、火灾等灾害的预防和缓解等工作至关重要。然而,由于图像尺寸大、光照条件多变、背景复杂等因素,从遥感卫星图像中进行目标检测仍然是一项挑战。尽管深度学习方法近年来在目标检测和识别任务中表现出色,但由于缺乏能体现景观复杂性的训练数据集,这些方法在图像分析中效率低下。近年来,研究人员提出了不同的基于卷积神经网络(CNN)的架构,如快速区域卷积神经网络(FasterR-CNN)、你只看一次(YOLO)和RetinaNet,用于卫星图像中的目标检测。这些架构采用了不同的技术,如区域提议、锚框和特征金字塔网络,以优化图像中的目标检测。R-CNN是一种流行的基于区域的卷积神经网络(R-CNN),它首先提出目标区域,然后执行分类。尽管深度学习方法在图像目标的识别和检测方面显示出巨大潜力,但复杂的图像特征和有限的训练数据集阻碍了其应用。因此,需要进一步研究以解决图像中目标检测和识别的挑战,并为相关应用开发更鲁棒、更准确的深度学习模型。通常,在将深度学习方法用于图像目标检测和识别时,存在若干挑战。这些挑战包括目标外观的高变异性、噪声和伪影的存在,以及标注数据的有限可用性。

以下将讨论这些挑战,包括遥感图像的复杂特征以及用于训练基于深度学习的目标检测方法的标注数据集的有限可用性。

遥感图像的复杂特征

目标检测是一项具有挑战性的任务,涉及在图像中识别和定位目标。然而,现有目标检测方法存在若干局限性,包括复杂的目标特征、图像背景和实例标注。此外,还存在类内方差高和类间方差低的相关挑战。

l 尺寸、结构和分辨率多变:遥感图像中的目标具有尺寸和分辨率多变、类间相似性高和类内多样性大的特点。这对目标检测方法构成了挑战,因为它们必须准确识别图像中不同尺寸和形状的目标。此外,高类间相似性和类内多样性使得区分不同目标类别变得困难,进一步复杂化了目标检测过程。而且,在高度相似的图像中,目标之间可能会出现高度相似性,这使得提取相似特征对检测器来说具有迷惑性,从而导致错误的结果。近期研究专注于开发专门用于卫星图像的目标检测方法,包括使用多尺度目标检测技术和基于深度学习的方法,这些方法能够处理复杂的目标特征。在本研究中,我们确定了在一个从多场景捕获的、具有多样特征的环境感知数据中创建的新数据集上训练模型,对这些模型性能的影响。

l背景复杂:图像的背景会给目标检测方法带来挑战,因为它会使目标与其周围环境的区分变得困难。在遥感卫星图像中尤其如此,其背景变化性强,且包含与感兴趣目标相似的纹理和颜色模式。人们采用了各种方法来处理复杂的图像背景,包括使用上下文信息(如将上下文特征纳入目标检测过程)和使用目标提议方法来预先选择图像内的潜在目标区域。然而,这些方法尚未达到最佳性能。

l标注数据集有限:实例标注是指用各自的类别标签和边界框对图像内的单个目标进行标注的过程。然而,这一过程可能复杂且耗时,特别是在图像内存在大量目标或目标具有复杂形状或遮挡的情况下。这可能导致标注过程中的错误,进而对目标检测方法的准确性产生负面影响。因此,在本研究中,不准确的样本标注被确定为增加检测实施复杂性的主要因素。城市监测、灾害预测和一般环境监测等应用需要准确且有效的目标检测方法。为了应对这些挑战,本文提出了一个新创建的多样化图像数据集,该数据集的特点是目标具有不同的尺寸和分辨率,是在真实条件和质量下获取的,且具有高类间相似性和类内多样性。该数据集还进行了数据增强,以增加训练数据的多样性。本研究采用迁移学习和动态数据融合方法,在新创建的数据集上对基于最新深度学习的目标检测方法进行建模,以提高性能。基于R-CNN和YOLO的五种流行目标检测算法(Detectron2、YOLOv5、YOLOv6、YOLOv7和YOLOv8)在提出的数据集上进行了建模和评估。迁移学习方法包括在大规模数据集上使用预训练模型,以提高遥感卫星图像中目标检测和识别的性能。本研究是对图像目标检测最新技术的实验性综述。

PART/3

     新算法框架解析   

数据集创建

数据集创建过程是图1所示目标检测流程的第一步。这一过程至关重要,因为深度学习模型的性能和准确性取决于所用数据集的质量和数量。图像中有效的目标检测需要大量且优质的数据集。近年来的技术进步推动了定制化大规模数据集的创建,以开发用于从图像中特定位置检测目标的深度学习模型。

在本研究中,我们使用GoogleEarthEngine获取图像,并将其分辨率设置为640×640像素。该引擎用于获取南非夸祖鲁-纳塔尔省德班市南部的哨兵2号多光谱仪器(Sentinel-2MSI)图像(坐标:纬度-29.8579,经度31.0292)。每张图像均以640×640的尺寸从影像中截取。我们使用端到端计算机视觉平台Roboflow来组织和标注图像并创建数据集。数据集采集区域如图2和图3所示。


图2



图3


该数据集包含92张卫星图像,这些图像以多类别分类格式进行标注。图像中包含五种目标:住宅、道路、海岸线、游泳池和植被。数据集的样本图像如图4所示。

图4


该数据集进一步分为训练集、验证集和测试集三类,其中训练集包含61张图像和一个标注文件,验证集包含21张图像和一个标注文件,测试集包含10张图像。我们对图像进行了一些预处理任务,包括像素数据的自动定向。然后对训练数据集进行图像增强以增加数量。我们对提出的数据集采用数据增强方法,以提高模型在检测准确性和鲁棒性方面的性能。该方法采用几何增强和变换,这些操作会改变图像的空间方向但不改变内容。这有助于丰富训练集,使模型更能适应视角或方向的变化。具体包括将图像水平翻转以创建镜像图像,垂直翻转以反转图像;还包括将图像旋转90度、180度或270度,以模拟图像中目标的不同视角。这些过程被反复执行,使训练图像的数量增加了100倍。在最终数据集中,目标在图像中分布均匀,每个目标在最终数据集中的每张图像上被识别和标注四到五次。不同目标的标注示例如图5所示。

图5


广义目标检测系统架构

大多数基于深度学习的目标检测方法由三个主要组件构成——头部(预测部分)、颈部(特征金字塔网络)和骨干网络(特征提取网络),如图6所示,

图6


具体说明如下:

头部:头部模块是架构的最终组件,负责预测输入图像中每个目标的边界框、类别概率和目标置信度分数。头部模块接收颈部模块生成的特征图,应用一组卷积滤波器来预测每个目标的边界框位置和大小。头部由多个执行回归和分类任务的全连接层组成。例如,头部部分使用锚框预测目标的位置和大小,并应用softmax激活函数输出类别概率。头部模块还可以预测每个边界框的类别概率,指示与该边界框对应的目标类别;同时预测每个边界框的目标置信度分数,指示该边界框包含目标的可能性。头部模块的输出通常是一组边界框,每个边界框都有对应的类别和目标置信度分数。

骨干网络:骨干网络是处理输入图像并提取对目标检测有用的高层特征的核心网络架构。通常,骨干网络由若干层卷积神经网络(CNN)组成,如卷积层、池化层和激活函数,这些层相互堆叠。这些层执行卷积、池化和激活等操作,以逐步降低输入图像的空间分辨率,同时增加其深度。例如,YOLO架构使用Darknet-53或ResNet等常用网络作为骨干网络。骨干网络的输出是一组特征图,这些特征图捕捉了不同层次的抽象信息和空间尺度信息。

颈部:颈部模块将特征金字塔与架构的头部连接起来。特征金字塔是由骨干网络生成的多尺度特征图。这些特征图包含不同尺度和分辨率下目标的信息,使架构能够检测不同大小的目标。它们是通过对骨干网络在不同尺度下的输出应用一组卷积滤波器和空间池化操作而创建的。特征金字塔用于检测不同大小和尺度的目标。颈部区域由一系列卷积层和池化层组成,用于对从骨干区域提取的特征图进行上采样。颈部区域的一个常见示例是特征金字塔网络。

网络架构

本研究采用的模型系列包括基于R-CNN的Detectron2、YOLOv5、YOLOv6、YOLOv7和YOLOv8,详见表2。


表2


Detectron2架构通常基于R-CNN框架,并在包含上下文常见目标(COCO)和PascalVOC的数据集上进行预训练。Detectron2框架由以下组件构成:数据加载、骨干网络、特征金字塔网络(FPN)、区域建议网络(RPN)和检测头。

YOLO系列通常由三个主要部分组成:骨干网络、颈部和头部。骨干网络负责从输入图像中提取特征,颈部整合骨干网络不同层级的特征,头部生成目标检测预测结果。

YOLOv5还使用“Swish”激活函数,该函数比之前YOLO版本中使用的传统“ReLU”函数更快、更准确。YOLOv6研究了回归损失和分类损失:VariFocal损失以及SIoU、GIoU。它还在头部区域探索了使用RepOptimizer和通道级蒸馏的量化方案。YOLOv5和YOLOv6在骨干网络和颈部区域采用跨阶段局部网络(CSP)模块及其他模块。

YOLOv7在骨干网络部分采用基于连接的模型和高效层聚合网络,在颈部区域使用基于路径聚合网络(PAN)的FPN,并采用多个头部:主导头和辅助头。YOLOv5和YOLOv8采用无锚框目标检测方式,无需锚框,并采用动态锚框分配方法。

YOLOv8架构通过用新型C2f模块替换颈部和骨干网络区域的CSP模块,减少了参数数量和张量的整体规模。如我们的结果所示,这使得YOLOv8计算速度更快、计算资源消耗更少,且检测效率更高。

模型网络训练——迁移学习

在本研究中,我们采用迁移学习方法来提升模型的有效性。具体而言,这涉及在一个包含大量日常生活常见目标图像的更大数据集上对模型进行预训练。通过在大型且多样化的数据集上预训练我们的模型,我们可以利用其中丰富的信息来创建一个更具泛化性的特征提取器。预训练完成后,我们再在新创建的数据集上对模型进行再训练。本研究中,所提数据集的类别是定制化的主要目标任务。通过在这些特定类别上对模型进行再训练,我们对模型进行微调,以提高其在目标任务上的准确性和性能。总体而言,这种方法使我们能够利用大量可用数据创建强大的特征提取器,进而可以更高效地在新创建的数据集上微调模型,以实现更高的准确性和泛化能力。


PART/4

     实验及可视化   

最先进模型的实验分析

本研究采用精确率、召回率、mAP50和mAP(50:95)指标,在构建的数据集上评估目标检测性能。

表 3

表3展示了相关结果,数据表明,当前最先进的检测方法在所有评估指标上均表现出较强的竞争力。具体而言,YOLOv8在精确率、召回率、mAP50和mAP(50:95)上分别达到68%、60%、43%和17.5%,同时保持着0.2毫秒的最高检测速度。YOLOv5、YOLOv6和YOLOv7虽有小幅性能提升,但整体表现相近。Detectron2的精确率为50%,但其检测速度低于各YOLO系列模型。


表4


表4展示了YOLOv8模型在构建数据集上的各类别检测性能,该模型从测试图像样本中识别出住宅(Residence)、道路(Roads)、海岸线(Shorelines)、游泳池(SwimmingPool)和植被(Vegetation)这五类目标。在这些目标中,游泳池的精确率最高,达62.7%;其次是植被,精确率为57.3%;海岸线紧随其后,精确率为54.6%。召回率方面,游泳池同样表现最佳,达62.9%;海岸线以62.4%的召回率位列第二;植被则以62.3%的召回率排名第三。住宅和道路的检测率表现相近。住宅在精确率、召回率、mAP50和mAP(50:95)上的得分分别为41.1%、42.1%、19.3%和12.8%;道路在相同指标上的得分分别为41.2%、57.1%、13.7%和4.75%。二者检测率相近,原因在于它们的视觉外观相似。模型对海岸线、游泳池和植被的检测性能更优,这主要得益于这些目标更大的尺寸、更高的分辨率以及优质的背景条件。

检测结果输出通过边界框和检测到的目标呈现。

图7

图7i显示,游泳池、植被和住宅的检测准确率分别为59%、47%和51%,海岸线和道路也得到了较好的检测。

图8

图8i、iii证实模型检测出了更多游泳池,而图9ii则体现出模型对道路的检测效果更优。此外,从图7ii、iii和图8i、ii中可以看出,模型对植被这类密集目标的检测效果较好;

图 9

图9i、iii中模型对住宅的检测表现出色;图8iii中则展现了模型对海岸线的良好检测能力。通过对结果输出的分析可知,植被的检测次数最多,其次是游泳池和海岸线。这表明密集型目标更易于被检测。结果还显示,植被的检测准确率最高,达97%;游泳池的检测准确率为96%。

图10

图10i-iii和图11中的检测结果示例表明,即便目标分布均匀且密集(如植被和住宅的示例所示),模型仍能精准检测出目标。从图7至图11可见,检测算法表现优异,即便相邻目标存在高度密集重叠的情况,几乎所有目标仍能被成功检测。

图11

图12

最后,图12通过精度、平均精度、召回率及误差图,展示了YOLOv8模型在构建数据集上的整体性能。从图中可知,该模型的精度和召回率均超过60%,mAP超过50%。损失曲线显示模型训练过程稳定,且在训练数据上表现良好。这一积极现象表明,该模型在构建的数据集上实现了有效的训练。

有相关需求的你可以联系我们!

END



转载请联系本公众号获得授权


计算机视觉研究院学习群等你加入!


ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

往期推荐 

🔗

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/188955