基于无人机遥感的植被覆盖度测量实践与经验分享

基于无人机遥感的植被覆盖度测量实践与经验分享

分享基于无人机遥感的植被覆盖度测量实验经验,主要任务是利用大疆Mavic 3无人机进行植被覆盖度地面测量,包含样方设计、航线规划、现场拍摄以及借助AI算法计算覆盖度。

一、实验概况与目的

实验测量的植被覆盖度(Fractional Vegetation Cover, FVC)定义为植被地上部分垂直投影面积占统计区总面积的百分比,是反映生态环境状态的重要参量,传统地面测量耗时耗力,而无人机遥感凭借其高机动性和高分辨率成为主流手段。本次实验的主要目的是:

  • 掌握无人机遥感监测的标准化操作流程
  • 学习植被覆盖度地面测量的技术方法
  • 熟悉使用AI(DeepSeek算法)完成植被覆盖度计算
  • 总结无人机监测中的常见问题及解决方案二、技术方法与工作流程

二、技术方法与工作流程

2.1 植被覆盖度地面测量技术简介

植被覆盖度指单位面积内植被冠层(叶、茎、枝)垂直投影面积所占的比例。目前最常用的地面测量方法是照相法——利用数码相机或无人机拍摄样方照片,然后通过图像识别计算植被像素占比。本次实验采用无人机垂直向下拍摄小样方(1m×1m),再通过算法批量计算覆盖度。

2.2 工作流程全记录

整个流程分为三个阶段:前期准备、现场作业、数据处理。下面逐一展开。

2.2.1 前期准备

① 样方设计
基于最新的高分影像(如Google Earth、91卫图),在测区内选择具有代表性的样方,确保覆盖不同植被类型(草地、灌木等)和覆盖度梯度。每个样方大小为10m×10m,并在其中均匀布设9个1m×1m的小样方用于地面验证。

② 设备检查
使用的设备是大疆Mavic 3,每次出发前必须完成以下检查:

检查项目标准要求检查方法
电池电量≥80%短按电池开关查看指示灯
螺旋桨无损坏,安装正确目视检查,确认标记对应
存储卡剩余空间≥32GB在DJI Fly App中查看
云台无遮挡,可自由活动开机观察云台自检
固件版本最新版本连接DJI Fly检查更新

③ 飞行计划
在DJI Fly App中规划自动航线:

  • 飞行高度:根据样方大小设置,一般15~20m可保证地面分辨率优于1cm
  • 重叠率:航向80%,旁向70%(确保后期拼接或覆盖度计算无遗漏)
  • 飞行速度:平稳模式5m/s
2.2.2 现场作业

① 样方定位
使用RTK或高精度GPS测量样方四个角点坐标,并在现场用标尺或喷漆标记。对于1m×1m小样方,采用预先制作好的1m×1m样方框放置在地面。

② 无人机飞行

  • 自动航线飞行:起飞后执行预设航线,获取整个样方的正射影像。
  • 手动拍摄小样方:切换至手动模式,将无人机悬停在小样方正上方2m高度,云台角度调至-90°(垂直向下),拍摄照片。注意保持画面清晰,避免阴影遮挡。

③ 地面测量
同时使用数码相机垂直拍摄小样方照片,并记录样方内植被类型、高度等信息,用于后续验证。

2.2.3 数据处理

① 照片整理
按样方编号建立文件夹,将无人机拍摄的小样方照片和地面验证照片分类存放。照片命名格式统一为:样方编号_小样方编号.jpg(如P01_01.jpg)。

② 植被覆盖度计算
采用基于Lab色彩空间的植被识别算法(我称之为SHAR-LAB FVC),该算法能够有效抵抗阴影和过曝的影响,准确提取绿色植被。

以下是完整的Python脚本,只需修改图片路径即可运行:

""" SHAR-LAB FVC 植被覆盖度计算脚本 功能:读取指定无人机照片,基于Lab色彩空间进行抗阴影植被分类,计算植被像素占比。 用法:直接修改下方 IMAGE_PATH 变量为图片路径,然后运行。 """ import numpy as np from skimage import io, color import os import sys # ================== 用户配置区 ================== # 请将下面的路径改为您的图片文件路径 IMAGE_PATH = "D:/drone_photos/sample_plot.jpg" # 例如:"/home/user/photo.jpg" # ============================================= def shar_lab_fvc(image_path, a_thresh=2, b_thresh=2, L_min=5, L_max=98): """ 使用SHAR-LAB FVC算法计算植被覆盖度。 参数: image_path : str -- 图像文件路径 a_thresh : float -- a* 通道上限(小于此值视为偏绿) b_thresh : float -- b* 通道下限(大于此值视为偏黄/绿) L_min : float -- 亮度下限(排除阴影等过暗区域) L_max : float -- 亮度上限(排除过曝区域) 返回: fvc : float -- 植被覆盖度百分比,若处理失败返回None """ # ---------- 文件存在性检查 ---------- if not os.path.exists(image_path): print(f"错误:文件不存在 -> {image_path}") return None # ---------- 图像读取 ---------- try: img = io.imread(image_path) except Exception as e: print(f"读取图像失败:{e}") return None # ---------- 图像格式归一化 ---------- if img.ndim == 2: # 灰度图 -> 转为RGB img = color.gray2rgb(img) elif img.shape[2] == 4: # 含Alpha通道 -> 去除Alpha img = img[:, :, :3] elif img.shape[2] != 3: print(f"不支持的图像通道数:{img.shape[2]},需要3通道RGB图像。") return None # ---------- 转换到Lab色彩空间 ---------- # rgb2lab要求输入范围[0,1]或[0,255]均可,函数会自动处理 lab = color.rgb2lab(img) L = lab[:, :, 0] # 亮度 (0~100) a = lab[:, :, 1] # 绿-红分量 (负值偏绿) b = lab[:, :, 2] # 蓝-黄分量 (正值偏黄) # ---------- 植被像素判别(核心规则)---------- # 条件:a* 小于阈值(偏绿),b* 大于阈值(偏黄/绿),且亮度在合理范围(抗阴影) vegetation_mask = (a < a_thresh) & (b > b_thresh) & (L > L_min) & (L < L_max) # ---------- 计算覆盖度 ---------- veg_pixels = np.sum(vegetation_mask) total_pixels = vegetation_mask.size fvc = (veg_pixels / total_pixels) * 100.0 return fvc if __name__ == "__main__": # ---------- 确定图片路径(优先使用命令行参数)---------- if len(sys.argv) > 1: image_path = sys.argv[1] else: image_path = IMAGE_PATH if not image_path: print("错误:未指定图片路径。请在代码中设置 IMAGE_PATH 或在命令行提供路径。") sys.exit(1) # ---------- 计算并输出结果 ---------- fvc = shar_lab_fvc(image_path) if fvc is not None: print(f"\n植被覆盖度 FVC = {fvc:.2f}%") else: sys.exit(1)

运行环境:需要安装numpy和scikit-image,在终端执行:

pip install numpy scikit-image

样方尺度覆盖度计算:对于整个样方(10m×10m),其覆盖度等于9个小样方照片覆盖度的算术平均值。


三、大疆无人机遥感监测标准化操作手册

3.1 飞行前准备

  • 环境检查:风速<8m/s,无降水,能见度>5km;尽量避开正午强光(10:00-14:00),以免产生过多阴影;远离高压线、通讯基站等电磁干扰源。
  • 设备准备:按照前文检查清单逐项确认,准备备用电池。

3.2 飞行操作流程

3.2.1 自动航线飞行
  1. 在DJI Fly App中进入“航线飞行”模式,规划矩形区域(覆盖整个样方)。
  2. 设置飞行高度、速度、重叠率(建议航向80%,旁向70%)。
  3. 执行自动飞行,实时关注飞行状态和电量,必要时手动干预。
3.2.2 手动拍摄小样方
  1. 降落无人机,将样方框放置在地面。
  2. 起飞无人机至小样方正上方2m高度,调整云台垂直向下。
  3. 切换至拍照模式,连续拍摄2~3张,确保清晰无模糊。
  4. 移动样方框,依次拍摄所有小样方。

3.3 数据处理流程

  1. 照片导出:从无人机存储卡中导出照片,可利用DJI软件获取每张照片的经纬度(用于位置验证)。
  2. 筛选:删除模糊、过曝或欠曝的照片。
  3. 重命名:按“样方编号_小样方编号”格式命名,便于批处理。
  4. 计算:运行Python脚本批量计算每个小样方的覆盖度,最后取平均得到样方覆盖度。

四、参考文献

  1. GB/T 41282-2022《植被覆盖度遥感产品真实性检验》
  2. DJI Mavic 3用户手册v2.3

Read more

Qwen3-Embedding-4B部署教程:llama.cpp集成详细步骤

Qwen3-Embedding-4B部署教程:llama.cpp集成详细步骤 1. 技术背景与学习目标 通义千问3-Embedding-4B是阿里云Qwen3系列中专为文本向量化任务设计的高性能模型,参数规模达40亿,支持高达32,768个token的长文本编码,并输出2560维高质量语义向量。该模型于2025年8月开源,采用Apache 2.0协议,允许商用,适用于跨语言检索、知识库构建、文档去重、聚类分析等场景。 本文是一篇从零开始的实战部署指南,重点介绍如何将 Qwen/Qwen3-Embedding-4B 模型通过 llama.cpp 进行本地化部署,并结合 vLLM 和 Open WebUI 构建完整的可视化知识库系统。读者将掌握以下技能: * 下载并转换Qwen3-Embedding-4B为GGUF格式 * 使用llama.cpp运行嵌入模型 * 部署vLLM服务以提供API接口 * 配置Open WebUI实现交互式知识库体验 * 验证embedding效果及性能指标 本教程适合具备基础Linux命令和Python环境管理能力的开发者,前置知识包括D

By Ne0inhk
Continue插件实现本地部署一个“cursor”或“github copilot”

Continue插件实现本地部署一个“cursor”或“github copilot”

本地部署 AI 代码助手,制作一个 Cursor/GitHub Copilot 的替代版本 一 需求分析 * 本地部署的定义与优势(数据隐私、离线使用、定制化)。 * Cursor 与 GitHub Copilot 的功能(代码补全、对话交互、模型差异)。 * 本地部署的AI 代码助手适用场景:企业内网开发、敏感数据环境。 二 环境准备与工具选择 * 硬件要求:GPU 要对应上你所部署的模型大小 * 模型选择:qwen2.5-14b-instruct (这里选择千问的大模型) 三 部署开源模型 这里不详细介绍具体的大模型部署的具体过程,部署完成之后,你应该得到对应的模型的以下信息 model: "qwen2.5-14b-instruct" apiBase: "http://你的ip地址(自己的本机就写localhost)

By Ne0inhk
AIGC实战测评:蓝耘元生代通义万相2.1图生视频的完美部署~

AIGC实战测评:蓝耘元生代通义万相2.1图生视频的完美部署~

文章目录 * 👏什么是图生视频? * 👏通义万相2.1图生视频 * 👏开源仓库代码 * 👏蓝耘元生代部署通义万相2.1图生视频 * 👏平台注册 * 👏部署通义万相2.1图生视频 * 👏使用通义万相2.1图生视频 * 👏总结 👏什么是图生视频? 图生视频是一种通过图像生成技术,结合文本信息生成视频的创新方式。通过输入一张图像和相关的描述文本,系统能够根据这些输入生成一个符合描述的视频。该技术利用深度学习和计算机视觉技术,将静态图像转化为动态视频,实现视觉内容的快速生成。这种技术的应用广泛,涵盖了内容创作、影视制作、广告生成等多个领域。 👏通义万相2.1图生视频 阿里巴巴旗下“通义”品牌宣布,其AI视频生成模型“通义万相Wan”正式推出独立网站,标志着其生成式AI技术的重大进展。新网站现已开放(网址:wan.video),用户可直接登录体验“文本生成视频”和“图像生成视频”功能,无需本地部署,极大降低了使用门槛。此外,每天登录网站还可获赠积分,激励用户持续探索。 文章链接:https:

By Ne0inhk

GitHub Copilot 使用笔记

GitHub Copilot 是 VSCode 自带的 AI Agent 插件,需要登录 GitHub 账号使用,分为免费版和付费版。 关于个人额度,可以在 Github 的 Copilot 菜单里查看 支持模型 添加第三方模型 通过 Manage Models 选中对应厂商。 可以通过 OpenRouter 来导入免费的模型,需要先到 OpenRouter 注册 API Key,输入后即可使用,也可以使用兼容 OpenAI 接口的三方 API,比如 硅基流动 SiliconFlow 使用帮助信息 切换到 Ask 模式,输入 /help 即可获取帮助命令,可以查看当前有什么可用命令和使用方法。 翻译后的内容,方便查看,

By Ne0inhk