news 2026/5/21 8:39:56

yolo11卫星影像与光学遥感图像船舶与飞机等检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
yolo11卫星影像与光学遥感图像船舶与飞机等检测

文章目录

      • 卫星图像中的目标检测:基于YOLOv11和DIOR数据集的实现
        • 项目结构
        • 引言
        • 目标
        • 数据集
        • 数据预处理
        • 模型训练与测试
        • 结论

卫星图像中的目标检测:基于YOLOv11和DIOR数据集的实现

项目结构

完整的代码位于名为 yolov8.ipynb` 的Jupyter Notebook中。所有模型训练和测试的结果存储在项目的“runs”目录下。

引言

深度学习技术日新月异,计算机视觉领域中出现了多种神经网络架构,这些模型能够进行分类、检测、跟踪和分割等任务。然而,在遥感图像或卫星影像的应用上,仍然存在改进的空间。自然场景图像与卫星影像之间的主要区别在于图像表示方式的不同。卫星影像中物体的信息仅限于俯视角度,即物体的顶部,而自然场景图像则包含来自不同方向的各种信息。在卫星图像中,物体边缘提供了大量关于物体表征的信息,但这也可能使模型产生混淆;此外,阴影、季节变化、昼夜时间差异以及拍摄高度等因素都会影响图像的亮度和对比度,从而对图像质量造成影响。因此,对于计算机视觉模型而言,处理卫星图像是一项具有挑战性的任务。

目标

本项目的首要目标是构建一个能够在卫星影像/光学遥感图像中分类并检测多个不同类型物体的模型。另一个目标是测试最新版本的YOLO模型(YOLO V8)的能力。

数据集

在这个项目中,我使用了DIOR数据集。该数据集包含了20个不同的类别,涵盖了从微小到大型的物体。整个数据集共有23,463张图像,按照50%的比例划分为训练集和测试集。这些图像是随机打乱的,并且具有高质量(800 x 800像素)。尽管如此,数据集中也存在一些不足之处,例如某些物体缺少标注信息,以及各物体之间样本分布不均的问题。

数据预处理

预处理工作主要集中在注释文件上。原始注释采用Pascal VOC格式,即.xml文件,这种格式不适用于YOLO模型。因此,我将注释文件转换为了符合YOLO格式的.txt文件。

原始的数据划分是50%用于训练,50%用于测试,这样的比例并不理想。为了改善这一点,我进行了调整:保持50%的图像仅用于训练,而将测试集进一步划分为20%-80%,分别用于验证和最终测试。

模型训练与测试

我选择了的YOLOv8n模型来进行本项目的实验 - 。针对这个自定义数据集,我在原始大小为800px的图像上以16的批量大小从零开始训练模型,总共训练了50个epoch。我没有改变图像尺寸,因为压缩图像会导致数据丢失,而且考虑到物体本身已经很小,这样做会降低物体及其整体数据集的质量。模型在9391张图像上进行了测试,取得了良好的效果:mAP50为0.71,mAP50-95为0.485。您可以在Notebook和“runs”目录中查看完整的代码和模型结果。

除了在数据集上的测试外,我还使用了一段Google Earth视频片段来测试模型对视频文件的表现,以下是部分测试结果:

  • ships_test_pred.1.mp4
  • airplane_test_pred.1.mp4
结论

YOLOv8不仅速度快,而且功能强大。最值得注意的是它的轻量级特性,这使得它可以在成本较低的GPU上轻松运行。在我的案例中,使用A4000 GPU训练超过20,000张图像的过程非常顺利,整个模型训练耗时不到两个半小时。这对于利用小型数据集快速进行实验来说是非常理想的。

DIOR数据集是一个大型且高质量的数据集。通过合并整个数据集,并用不同大小的YOLOv8模型进行更小规模和受控的实验,可以进一步提升性能。目前我只使用了最轻量级的模型,实际上还有四个更大、更复杂的YOLOv8模型可供选择。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 8:32:04

N_m3u8DL-CLI-SimpleG实用指南:3分钟快速掌握M3U8视频下载

N_m3u8DL-CLI-SimpleG实用指南:3分钟快速掌握M3U8视频下载 【免费下载链接】N_m3u8DL-CLI-SimpleG N_m3u8DL-CLIs simple GUI 项目地址: https://gitcode.com/gh_mirrors/nm3/N_m3u8DL-CLI-SimpleG 还在为复杂的命令行操作而头疼?想要轻松下载网络…

作者头像 李华
网站建设 2026/5/21 8:29:43

3大核心功能揭秘:AMD Ryzen SMU调试工具如何解锁CPU隐藏性能

3大核心功能揭秘:AMD Ryzen SMU调试工具如何解锁CPU隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: http…

作者头像 李华
网站建设 2026/5/21 8:27:22

LED控制板常见到问题记录 排查

24V电源供电不足,导致报错(有错误代码)–灯板供应商出现过老的板子最大输出电压只有6.5V,导致灯板供电不足,而不能达到我们所需的设置电流,也会报错。通过拔掉灯板线,打开灯板,看最大…

作者头像 李华
网站建设 2026/5/21 8:25:37

2657. 找到两个数组的前缀公共数组 | 难度:中等

2657. 找到两个数组的前缀公共数组 | 难度:中等 题意理解(用样例说话) 题目给定两个排列 A 和 B(长度都是 n,包含 1 到 n 的每个数字恰好一次),要求我们计算「前缀公共数组」C。 关键定义&#…

作者头像 李华
网站建设 2026/5/21 8:25:03

STM32CubeMX配置FreeRTOS信号量:解决串口打印‘乱码’的实战记录与思考

STM32CubeMX配置FreeRTOS信号量解决串口资源竞争实战 当两个FreeRTOS任务同时调用printf通过同一个UART发送数据时,输出信息会交错混乱形成"乱码"。这本质上是典型的共享资源竞争问题——UART作为非线程安全的外设,在多任务环境下必须通过同步…

作者头像 李华