news 2026/6/10 4:36:07

给机器学习新手:用QGIS 3.22快速搞定遥感影像切片,构建你的第一个卫星数据集

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
给机器学习新手:用QGIS 3.22快速搞定遥感影像切片,构建你的第一个卫星数据集

给机器学习新手:用QGIS 3.22快速搞定遥感影像切片,构建你的第一个卫星数据集

当机器学习遇上地理空间数据,许多开发者会陷入两难:既需要高质量的卫星影像作为训练素材,又对专业GIS工具望而生畏。本文将打破这种困境——你不需要成为GIS专家,只需掌握QGIS中三个核心操作,就能将遥感影像转化为可直接喂入模型的切片数据集。

与传统GIS教程不同,我们完全从机器学习视角出发:

  • 把QGIS视为空间数据处理黑盒,只关注输入输出接口
  • 所有参数设置直指后续PIL/OpenCV读取需求
  • 重点解决插件安装、坐标匹配、批量导出等真实项目卡点

1. 环境配置:极简QGIS工作流搭建

1.1 安装与插件配置

从QGIS官网下载3.22 LTR版本(长期支持版更稳定)。首次启动后,按Ctrl+Alt+P打开插件管理器,搜索安装以下两个关键插件:

插件名称作用机器学习关联性
QuickMapService快速接入在线卫星影像服务获取高质量输入数据源
Processing Toolbox提供批量处理功能自动化切片流程

提示:若下载速度慢,可在插件管理器设置中更换镜像源为https://plugins.qgis.org

安装完成后,在工具栏空白处右键勾选Processing Toolbox面板。此时你的界面应包含:

  • 左侧图层管理器
  • 中央地图显示区
  • 右侧处理工具箱

1.2 坐标系统选择

机器学习项目最常见的坐标问题是:切片后的图片无法对齐真实地理位置。在QGIS右下角点击EPSG代码(默认可能是4326),建议改为:

  • 3857:Web墨卡托投影,适合全球范围影像
  • 32650:UTM 50N分区,适合中国东部地区
# 后续用Python读取时需保持坐标系一致 import rasterio from pyproj import CRS # 需与QGIS导出设置相同 target_crs = CRS.from_epsg(32650)

2. 数据获取:五分钟接入卫星影像源

2.1 快速加载底图

点击WebQuickMapServicesSearch QMS,搜索并添加以下任一服务:

  • Google Satellite(需代理)
  • Bing Satellites
  • 高德影像(国内直连)

注意:不同影像源分辨率差异显著。北京五环内区域各服务分辨率对比:

服务商最高分辨率更新频率适用场景
Google0.5m1-3年精细目标检测
Bing1m6-12个月中等尺度分类
高德2m不定期更新快速原型验证

2.2 自定义感兴趣区域(ROI)

在工具栏选择:

  1. 图层创建图层新建Shapefile图层
  2. 类型选多边形,坐标系与项目一致
  3. 点击工具栏切换编辑模式,用矩形工具框选目标区域
# 对应Python中的ROI坐标保存 import geopandas as gpd roi = gpd.read_file('study_area.shp') print(roi.total_bounds) # 输出[minx, miny, maxx, maxy]

3. 网格生成:匹配模型输入尺寸

3.1 创建切片网格

通过矢量研究工具创建网格

  • 网格类型:矩形(多边形)
  • 网格范围:选择上步创建的ROI图层
  • 水平/垂直间距:根据模型输入尺寸设置
    (如YOLOv5常用640x640,则间距=实际地面距离/像素)

关键技巧:在高级参数中勾选将网格作为多边形输出,便于后续精确控制切片范围。

3.2 样式优化

右键网格图层选择属性符号化

  1. 填充样式设为无画刷
  2. 边框颜色设置为醒目红色
  3. 宽度调整为0.3mm

此时效果应类似:

+-----+-----+-----+ | | | | +-----+-----+-----+ | | | | +-----+-----+-----+

4. 批量导出:自动化切片流水线

4.1 布局配置

点击项目新建打印布局,进行关键设置:

  1. 画布尺寸设为与模型输入相同的像素值(如640x640)
  2. 添加地图项并调整至充满画布
  3. 地图项属性中:
    • 比例锁定为1:1
    • 勾选受地图集控制
    • 边距设为0

4.2 地图集生成

点击地图集地图集设置

  • 覆盖图层:选择网格图层
  • 排序表达式:按$id升序确保可复现
  • 输出文件名:使用表达式如'tile_'||@atlas_featurenumber||'.png'

4.3 批量导出

布局导出中选择:

  • 格式:PNG(无损)或JPG(高压缩)
  • 分辨率:72dpi(屏幕显示)或300dpi(打印质量)
  • 保存路径:建议按/train/images//val/images/分类存储
# 导出后的典型目录结构 dataset/ ├── train/ │ ├── images/ # 切片图片 │ └── labels/ # 后续标注文件 └── val/ ├── images/ └── labels/

5. 质量验证与常见问题排查

5.1 坐标偏移检查

用Python验证切片地理坐标:

import rasterio from rasterio.transform import from_origin # 假设切片为500mx500m transform = from_origin(minx, maxy, 500, 500) with rasterio.open('tile_001.png') as src: print(src.transform * (0, 0)) # 应返回网格左上角坐标

5.2 高频报错解决方案

错误现象可能原因解决方案
切片全黑地图项未关联到影像图层在布局中重新绑定地图源
切片边缘缺失边距设置过大将地图项边距设为0
文件名不连续地图集排序规则错误$id字段排序导出
图片无法用OpenCV读取中文路径或特殊字符改用全英文数字路径

在最近一个城市绿化识别项目中,这套流程帮助团队在2小时内完成了2000+张标准切片的准备。最实用的经验是:提前用QGIS的测量工具确认实际地面距离与像素比例,避免后期重新切片。比如发现1像素=0.8米时,将网格间距设为模型输入尺寸的0.8倍即可完美匹配。

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

M-LAG实战解析:从防环机制到配置一致性检查

1. M-LAG防环机制深度剖析 第一次在数据中心部署M-LAG时,我最担心的就是环路问题。毕竟传统二层网络要靠STP来防环,而M-LAG号称能构建无环拓扑,这到底是怎么实现的?经过多次实测和抓包分析,终于搞明白了其中的门道。 M…

作者头像 李华
网站建设 2026/6/10 4:10:55

多策略最优决策问题

1. 核心特征 多路径依赖:通常存在两种或多种移动/操作方式(如:平放、爆发技能、资源恢复)。 资源限制:操作之间共用一种或多种资源(如:时间、魔法值、体力)。 时效性:必…

作者头像 李华
网站建设 2026/6/10 4:17:07

KrkrzExtract完整指南:如何高效解包krkrz引擎的XP3游戏资源文件

KrkrzExtract完整指南:如何高效解包krkrz引擎的XP3游戏资源文件 【免费下载链接】KrkrzExtract The next generation of KrkrExtract 项目地址: https://gitcode.com/gh_mirrors/kr/KrkrzExtract 在视觉小说和日式游戏开发领域,krkrz引擎因其出色…

作者头像 李华
网站建设 2026/6/10 4:25:44

ESP32 + BL0942实战:打造低成本家电能耗监测仪(开源项目)

ESP32 BL0942实战:打造低成本家电能耗监测仪(开源项目) 在智能家居和物联网快速发展的今天,能耗监测正成为越来越多家庭和创客关注的重点。想象一下,只需几十元的硬件成本,就能实时监控家中每台电器的用电…

作者头像 李华
网站建设 2026/6/10 4:14:30

Topit终极指南:高效macOS窗口置顶管理解决方案

Topit终极指南:高效macOS窗口置顶管理解决方案 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在macOS的多任务工作环境中,你是否经常需…

作者头像 李华