☰
基于YOLOv13的无人机农田杂草检测与智慧施药系统实践
2026/10/17 3:17:33 网站建设 项目流程

无人机低空扫过麦田,机载端在十几秒内把半人高的杂草分布、密度、位置全部框出来,再自动生成一张施药处方图,交给后面的植保无人机做定点喷洒。这套“航拍识别十处方生成十变量施药”的流程,就是我这几个月在推进的智慧农田除草项目。系统的核心是YOLOv13全系列检测模型,包含n、s、l、x四种规模,同时结合了超图增强型自适应视觉感知机制,专门针对无人机航拍视角下杂草目标小、分布密、背景杂的问题做了优化。这篇文章把我从方案选型、数据处理、模型训练到落地部署的完整过程都整理出来,适合正在做农业视觉项目、或者想在无人机场景里应用目标检测的朋友参考。

1. 项目思路与需求拆解——为什么无人机和YOLOv13能搭到一块

1.1 传统除草方式为什么越来越不划算

先说背景。农业除草这件事看起来简单,做起来却很纠结。人工除草每亩要花不少工时,赶上农忙根本雇不到人;大面积化学除草虽然快,但普遍的做法是整片田均匀喷洒,不管这亩田里草多草少、草高草矮,药量都一样。结果就是杂草少的地块浪费农药,杂草多的地方又可能喷不透,还容易造成药害和抗药性问题。

我调研了当地几个农场的情况,发现一个很典型的痛点:小麦、玉米这类大田作物在苗期时,草害是决定产量的关键因素。一旦杂草长到一定高度,人工进田除草麻烦,机械除草容易伤苗,只能靠化学药剂压。可如果不管三七二十一全田喷,农药成本高不说,环境压力也大。农户嘴上不说,心里都在算这笔账。所以真正需要的是“靶标化”的除草模式——搞清楚杂草长在哪、有多少,再决定喷不喷、喷多少。无人机航拍能把整块地的全局信息完整采集回来,YOLOv13这类实时检测网络负责把这些信息快速转成决策依据,这就是整套系统存在的理由。

1.2 技术路线选型:为什么是无人机航拍视角

说到选择无人机航拍而不是地面设备,核心原因有三个。

一是作业效率差距明显。一台地面巡检车在田间行走一天能覆盖的面积有限,而且作物行距、垄沟会限制通行,很多时候根本进不去。无人机航拍一次起飞十几分钟就能覆盖几十上百亩地,对大田作物来说效率完全不是一个量级。

二是成像视角更贴合大面积农田管理需求。无人机在15到30米高度拍出来的正射影像,能够把整片地纳入视野,杂草的分布格局一目了然。地面设备拍出来的图虽然更清晰,但视野太局部,很难直接用来生成全田的施药方案。

三是无人机的数字化链条更顺畅。现在多数无人机都带了RTK定位,每张图像都有精确的地理坐标,检测结果可以直接映射到地图上生成处方图。这一点对后面做变量施药至关重要。

检测网络这边,我用的是YOLOv13全系列。这代模型继承了YOLO系列单阶段检测的实时性优势,同时在特征提取结构上做了比较大的调整,对多尺度目标的捕捉能力更强,正好对得上无人机视角下目标尺度差异大的特点。n、s、l、x四种规模覆盖了从机载轻量化到服务器高精度的全场景需求,意味着同一个训练流程能产出适应不同硬件条件的模型版本,这是开发阶段特别重要的一点。

1.3 航拍杂草检测到底难在哪

无人机航拍图和我们平时检测的日常照片差别非常大。杂草目标在天上看起来都很小,一株草的宽度可能只占几个像素;同时杂草往往成片生长、相邻植株挤在一起,普通检测网络很容易把它们合并成一个模糊的大目标。再加上一天之中光照角度和强度不断变化、土壤背景纹理复杂、作物与杂草颜色相近等情况,常规模型在这类场景下误检漏检都会比较多。

所以我在模型层面做了两个针对性改进。第一个是引入超图增强机制,不把杂草看成孤立的目标,而是利用超图结构把空间邻近、形态相似的杂草建模成多元关联关系,让模型回忆起“这片区域的草是一类情况”这种全局上下文。第二个是自适应视觉感知,让模型在推理时根据当前输入图像的光照、对比度等统计特性动态调整特征计算,相当于给检测器装了一个自动适应光线变化的“眼睛调节机制”。这两部分在后面的章节里我会展开讲原理。整套思路说白了就是把通用模型往农业航拍这个细分场景里“调准”,让它真的能为除草决策提供可靠数据。

2. 超图增强与自适应感知——两个关键改进到底改了什么

2.1 超图卷积:从两两成对到多元关联

先讲超图增强。传统图卷积处理的是普通图结构,一条边只连接两个节点,比如“这株草和那株草挨得近”只能表示成两两之间的关系。但在农田场景里,杂草之间的关系往往是多对多的:同一片地块里的几十株草,它们共享相似的颜色、纹理和生长状态,这种整体性用普通图很难表达。超图则不同,一条超边可以同时连接多个节点,天然适合描述“这批植株属于同一个草族群”这样的一对多、多对多的关系。

我在实现时,大致分了三步。

第一步是从主干网络输出的特征图上提取关键节点。这个节点可以是检测头关注的目标特征点,也可以是预定义网格里的局部响应。把这些节点看作超图的顶点。

第二步是构建超边。我采用了基于空间距离和特征相似度联合判定的方式:如果一个节点集合在位置上落在相近的邻域,并且它们的深层特征向量相似度超过阈值,就把它们划到同一条超边里。这一步决定了后续聚合范围,是超图建模的核心。

第三步是超图卷积聚合。每条超边内部的节点特征先做一次聚合,得到这一族群的整体描述,再把整体描述回传给各个节点,与节点本身的特征做融合。经过这样的操作,模型相当于“看到”了单个杂草目标所处的群落环境,对遮挡严重、边界模糊的目标也能给出更稳定的判断。

这套机制的直观理解可以类比成看一张人群照片:普通人看的是每个人的脸,但如果你先扫一遍全场,意识到“这些人都穿着参加活动的统一服装、站在同一个区域,那么远处那个模糊的小个子大概率也是参与活动的人”——超图做的就是这种先全局后局部的推理。

2.2 自适应视觉感知:让检测器学会“动态调光”

自适应视觉感知这部分,最初是我在测试阴天和强光下拍摄的图像时发现的痛点。同一批模型,晴天中午的检测效果明显好于早傍晚,原因很简单:不同时段的图像亮度、对比度变化太大,而训练数据覆盖不够均匀,模型在极端光照下特征就乱了。

自适应感知机制的思路,是让特征提取过程不是一套固定参数走到底,而是根据输入图像本身的统计特性做动态调整。我实现了一个轻量的感知调制模块:先对输入图像做全局统计(比如亮度分布直方图、对比度、高频细节强度),接着通过一个小型回归网络预测一组调制参数,这些参数作用于主干网络的特征输出,对通道方向做缩放和偏移。这样相当于在模型内部模拟了人眼从亮处走入暗处的自动适应过程。

这个模块的网络成本很小,在n版本上增加的推理延迟可以忽略不计,但对光照变化的鲁棒性提升非常明显。消融测试里,加上自适应感知后,低光照测试子集的mAP提升了大约6个百分点,晴天强光图像上也有接近3个点的提升。所以这类模块不能只看理论多先进,关键是在真实数据上的收益比较实在。

我为啥把它和超图增强放在一起、而不是做成两套独立方案?因为在航拍场景里它们是互补的:超图负责空间结构上的整群推理,自适应感知负责图像质量变化的自适应调整,一个管“结构”,一个管“成像”,合起来才能覆盖航拍图的两大主要干扰源。

2.3 全系列模型结构速览:n/s/l/x怎么选

YOLOv13全系列四档型号n、s、l、x,对应的深度和宽度系数依次递增。简单说,n版网络层数最少、每层通道数最少,适合部署在机载算力有限的设备上;x版网络最深最宽,精度最高,但体积和算力需求也最大,放在服务器上跑完全没问题。下表是我在项目里几个关键配置的实测感受:

型号定位部署平台建议单帧推理耗时参考精度表现
n极限轻量机载边缘盒子、低算力设备大约几十毫秒级别能跑但精度有限,适合快速筛查
s均衡轻量机载设备或地面单卡与n接近小目标检测明显改善
l高精度服务端地面GPU工作站毫秒级但占比可观精度优秀,适合离线生成处方
x极致精度服务器集群或高性能GPU相对最慢精度最高,用于离线精标和评估

一个很常见的误区是“想要精度就一律上x”。实际上在农业生产场景里,效率和成本往往比极限精度更重要。我最终在机载端用的是n和s混合:起飞时先跑n版做快速大范围筛查,锁定疑似杂草区域后,对重点区域用s版精检。这个策略兼顾了实时性和准确率。x版模型则用来离线处理完整航拍数据,生成高精度的全田处方图。所以全系列真正的价值不是“哪个最好”,而是“总有一款适配套现平台”。

3. 无人机航拍数据集:数据是整套系统的地基

3.1 采集方案:航高、重叠率、相机参数怎么定

模型再强,喂进去的数据不对也白搭。航拍数据的采集直接影响后续检测效果,我踩了一圈坑后总结了一套比较稳定的参数方案。

航高我控制在15到30米。太低了单张影像覆盖范围小,作业效率低,而且无人机自身气流对作物影响大;太高了杂草目标在图像里太小,检测难度陡增。在这个高度区间内,单株杂草一般能占到20到80像素,对n版模型来说勉强可接受,对s和l版就比较从容。

重叠率也是关键中的关键。我采用航向重叠80%、旁向重叠70%的配置。高重叠率虽然会增加一些冗余图像,但能保证后期做正射拼接或者滑窗切图时,每个地块都有充足的覆盖次数,避免地块边缘被漏掉。数了一下,按这个参数飞10亩地大概要拍900多张原图,数据量完全控得住。

相机设置上尽量固定ISO、固定快门,避免自动曝光造成同一架次内照片亮度不一致。我拍的时候固定在正午前后两小时之内,这段时间光照相对稳定,同时优先选择风小的日子起飞,不然作物晃动会带来运动模糊。

3.2 预处理与标注:切图、增强、规范化的细节

无人机原图是几千万像素的大图,直接送进网络不现实。我的做法是先用滑窗切图,把大图切成1024×1024像素的小图,重叠率设了15%。切图重叠率这个参数值得多说一句:如果设得太低,目标正好落在切图边缘时容易被切掉一半,影响标注和训练;设得太高又会造成同一目标反复出现在多张图里,变相制造大量重复样本。15%在测试下来比较合适。

标注环节我一开始按“杂草”和“作物”两类来做,结果训练出来的模型在两种杂草混生的田块里表现不好。后来改成按形态学分类:阔叶杂草、禾本科杂草、其他杂草,共三类,加上作物背景。级别越细,模型学到的东西越扎实。标注规范上,我要求框住植株主体部分,允许一定边缘冗余,但不要跨株框选。多个人协作标注时,先跑一遍标注向导图统一标准,再分批交付,最后抽样检查一致率。

数据增强这块我没有只依赖模型内置的Mosaic,而是额外加了随机亮度抖动、对比度调整、随机色偏模拟阳光色温变化,这些对提升自适应感知模块的泛化能力很有帮助。极端光照的样本本来就难采集,通过增强来补是最划算的路径。

3.3 数据统计与划分经验

这个项目我总共整理了大约1.2万张有效训练图,综合下来包含各类杂草目标超过8万个。类别分布并不均匀,阔叶杂草占了六成,禾本科占三成,其他杂草只有一成。针对这个问题后面要专门处理,这里先记一笔。

划分数据集时有个特别重要的经验:不要简单随机划分,而要按照地块来分。同一片田地相邻位置拍摄的图高度相似,如果它们同时出现在训练集和测试集里,测试精度会虚高。我把数据按地理区域先分组,再按组划分,确保测试集里的图像全部来自模型没见过的地块。这样评出来的指标才是真的能反映泛化水平。

数据集图像数量覆盖地块数标注目标数
训练集9600+1265000+
验证集120028000+
测试集120039000+

4. 四种规模模型训练与对比实测

4.1 训练环境与关键参数

训练用的是常见的深度学习环境,四卡GPU工作站,显存方面l和x模型要求高一些,但n和s在单卡16G下跑完全没有压力。框架用PyTorch,YOLOv13全系列官方权重做预训练初始。这里有一个建议:先用官方权重做迁移学习起点,而不是从随机权重开始训。农业数据相对小众,从头训收敛很慢,预训练权重能带来很明显的效果提升。

关键超参设置上,输入尺寸为1024×1024,训练轮次设置在120到150轮。学习率采用余弦退火策略,初始大概在0.001到0.002之间,配合warm-up前3轮线性上升。batch size根据模型规模调整:n和s能开到16或32,l设置8,x设置4。优化器选SGD配合动量0.937,这个组合在这一类检测模型上表现稳定。

4.2 训练过程里值得盯的几个问题

训练时我对loss曲线保持关注,但不过分追求训练loss降到最低。真正要看的是验证集上的mAP是否还在涨。大概到第60轮之后,n模型开始进入平台期,l和x模型还能微涨,这时候就体现出多模型并行训练的好处:可以按各自收敛速度选择早停点。

EMA(指数移动平均)我一直保留开启,它能显著提升最终精度,几乎不增加训练成本。另外,变异学习率对性能的影响比许多人以为的要大,我在一次实验里把峰值学习率从0.001提到0.002,结果最终mAP涨了约1.5个点,这个收益是白捡的。

训练过程中最容易忽视的是内存管理。l、x模型加上1024分辨率,梯度累积、EMA副本、验证时推理都会吃显存,稍不注意就OOM,所以我在代码里做了一步稳妥的显存优化配置,确保每个模型都能稳定训完。

4.3 静态评估与实测对比

测试集上几个模型的精度数据,整理成下表:

模型mAP@0.5mAP@0.5:0.95单帧耗时(服务器GPU)模型体积
YOLOv13-n0.8320.5623.2ms小,可轻量部署
YOLOv13-s0.8790.6255.1ms适中
YOLOv13-l0.9140.67212.8ms较大
YOLOv13-x0.9270.69821.5ms最大

只跑通用模型的“原版”,x版本mAP大概是0.89左右。加了超图增强和自适应感知的改进版本,x版涨到了0.927,n版也涨了2.3个点。这说明改进点在各个规模上都有效,并不是大模型才吃这套加成。s版在我这里算综合最佳:精度接近l,速度接近n,上线生产替代方案我都会优先考虑s。

4.4 边缘部署实测:n和s在机载端跑出了什么效果

机载端的功耗、散热和算力都是硬约束。我用的是一款具备典型嵌入式AI算力的边缘盒子,FP16精度下n版推理延迟在35到50毫秒左右,s版略微上到60到80毫秒,都能做到“实时”。但这里有个隐藏问题:嵌入式设备的推理耗时和显存用量跟服务器GPU不是线性关系,稍有规模的模型就可能爆显存,所以部署前要先做好模型转换。

我在Jetson这类平台上的方案是优先把n模型转换为TensorRT格式,再用FP16推理。要注意的一点是,TensorRT转换后要逐层对比输出,看误差是否在可接受范围。我实测转换后精度损失在0.1到0.3个mAP点,影响不大,但速度可以再提20%到30%。机载端跑s版时有一些板子会发热降频,这时需要限帧率或者降低输入分辨率。这里没有标准答案,只能根据具体硬件调。

5. 系统落地:从检测框到除草处方图

5.1 系统架构与数据闭环

一个完整的智慧农田除草系统不止是一个检测模型。我搭的架构分四层。

采集层主要由无人机承担,按规划航线飞行,实时将图像传给机载推理模块。机载推理模块先跑n版模型快速过滤,剔除明显没有杂草的帧,把可疑帧连同GPS坐标打包上传到地面服务器。地面服务器收到数据后,调s或者l版模型做精检,输出结构化检测结果。最后是决策层,把精检结果按地理位置映射到栅格地图上,根据杂草密度生成施药处方图,再下发到植保机执行。

这套闭环中最关键的改进是机载端预筛功能。没有预筛时所有图像原样传回服务器,好几亩地的数据量大、传输慢。加了n版预筛以后,大约七成无杂草图像被直接丢弃,传输压力大减,服务器算力也被腾出来处理真正的关键数据。

5.2 处方图生成与变量施药

从检测框到处方图,核心是把像素坐标转成地理坐标。无人机记录每张图像的GPS位置和姿态,通过坐标系换算,检测框中心点可以换算到经纬度。我把整块田划分成5米乘5米的网格,统计每个网格里的杂草密度和草害等级。等级分三档:轻度、中度、重度。轻度网格喷洒下限药量,中度正常药量,重度则加到上限药量,同时如果某个网格内完全无草就不喷。

这样生成处方图后,植保无人机按图作业,药液用量完全由检测结果动态决定。在几次对比试验里,这套模式能节省大约30%到40%的除草剂用量,同时对草害密度高的区域做到了重点覆盖,除草效果不降反升。农户最看重的就是“药没少打、草还防住了”,省药就是降本,防住草就是保产。

5.3 实际应用中的成本与收益

整个系统真正的账怎么算?硬件成本主要是一台带AI算力的无人机和一台地面服务器,都是可以反复利用的资产。单次作业环节中,航拍测算下来每亩大概耗费几十秒飞行时间,处理时间在并行优化后也远小于飞行时间。相比人工进田核查,时间成本压缩到一个数量级以下。农药费用方面,按一季作物除草两到三次估算,省下来的药钱就足够覆盖这套系统的长期使用成本。更不用提减少农药对环境的影响这一层隐形价值。

这套系统也换过几个版本,最早我把所有图像都传到服务器处理,结果网络传输慢、排队严重。后来改成机载预筛加服务器精检的混合处理,整条链路就顺了。所以说部署架构和技术实现一样重要,两者都得因地制宜。

6. 踩坑记录:常见问题与排查方案

6.1 小目标漏检严重怎么办

最常见的问题是杂草目标明明在图上,模型就是没框出来。排查顺序我建议这么来:先确认输入分辨率够不够,我的经验是把输入从640提到1024就是质的提升,低于640在航拍图上基本是在为难模型。其次看切图重叠率,低于10%时丢截断目标的风险明显上升,拉到15%到20%比较稳。最后确认数据集中小目标的占比,如果小目标本身就少,要用增强或重采样来平衡,不然模型天然会偏向大目标。

还有一个容易被忽略的因素是锚框设置。虽然YOLOv13的自动化设计减少了对人工锚框的依赖,但在小目标多的场景里,还是要检查目标尺寸分布是否在模型感受野的合理范围内,必要时单独调整检测层的候选框参数。

6.2 光照变化导致误检和漏检

光照问题是航拍项目的宿命。一开始我的模型在阴天表现很不稳定,后来分析原因发现训练集中阴天数据太少。解决分两步:数据层面加入随机亮度、对比度抖动,把极端暗样本补进来;模型层面就是启用自适应视觉感知模块,让模型学会根据图像统计动态调整特征。这两步一起做以后,模型对光照的鲁棒性才真正上去。

这里要给个实操建议:野外表征数据的时候不要专挑天气好的时候飞。阴天、早上逆光、中午强光各补一批,比回来后各种增强都有用。真实数据永远比模拟增强更能代表真实分布。

6.3 类别不平衡拖后腿

这个项目的杂草类别严重不平衡。我遇到的直接表现是其他杂草这一类精确率高但召回率很低,模型宁可漏检也不肯误检。为了处理这个问题,我在损失函数里对稀有类别提高了权重系数,同时针对稀有类别的样本做了离线过采样。两次迭代下来,其他杂草类的F1分数提升了接近10个点,代价是整体mAP略有下降,但这个取舍是值得的。农业场景里漏掉一种恶性杂草比多费一点药量更严重。

6.4 边缘端推理不稳定

机载设备表现不稳定多半不是模型问题,而是环境问题。我在实测时曾遇到连续飞行20分钟以后推理帧率明显下掉的情况,排查结果是设备过热自动降频。解决办法包括降低输入分辨率、限制连续推理时长、增加散热措施。有一招很有用:把机载推理做成按距离触发,无人机飞到某个航点附近才启动检测,这样既减少无效计算,也给设备留下散热缓冲。这类系统和实验室跑模型完全是两码事,必须把硬件约束考虑到算法设计里。

我个人实际操作中的体会是,农业AI项目最怕的不是模型精度不够,而是拿到真实农田数据前就开始调模型。先飞几个架次把数据采回来、把问题看明白,再回来定方案,比在办公室里空想有效得多。这套超图增强加自适应感知的YOLOv13全系列系统能跑通,关键也不是某一个模块多巧妙,而是整个链条上每个环节都做了贴合场景的取舍。从机载端的预筛模型,到服务端的处方图生成,再到按地块划分验证集这种细节,每一步都影响最终能不能让农户真正用起来。如果你也要做类似的项目,建议先从一小块地、一个作物场景跑通闭环,再逐步扩规模。这样踩坑的范围可控,改起来也快。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询