论文阅读:基于语义分割的非结构化田间道路场景识别
论文地址:DOI: 10.11975/j.issn.1002-6819.2021.22.017
概要
环境信息感知是智能农业装备系统自主导航作业的关键技术之一。农业田间道路复杂多变,快速准确地识别可通行区域,辨析障碍物类别,可为农业装备系统高效安全地进行路径规划和决策控制提供依据。
本文提出了一种基于深度学习的田间非结构化道路场景语义分割模型,旨在通过图像识别技术对农业田间道路进行高效、准确的语义分割。通过对不同环境条件下采集的田间道路图像进行处理,模型能够识别动态和静态物体,支持自动化农业导航系统的路径规划和动态避障。本文模型结合了轻量级卷积神经网络(MobileNetV2)、混合扩张卷积、通道注意力机制和金字塔池化模块,优化了分割精度和运行效率,适用于农业导航系统中复杂的田间道路场景。
Motivation
随着农业自动化技术的发展,田间道路识别成为农业自动导航系统中的一项关键技术。
- 传统的田间道路图像识别受限于复杂的环境条件,如不同光照、天气、路面类型等,导致识别效果不稳定。
- 非结构化的农业道路(如园区道路、乡村道路)由于形态不规则、存在多种障碍物,给传统算法带来较大挑战。
因此,提出一种高效、鲁棒的田间道路场景语义分割模型,能够准确识别各种动态和静态对象,为农业自动化导航提供精准的场景理解和决策支持。
系统框架
本文的语义分割模型由编码器和解码器两部分组成,采用轻量级卷积神经网络(MobileNetV2)进行特征提取,辅以混合扩张卷积、通道注意力模块和金字塔池化模块以增强模型的分割能力和准确度。具体框架如下:
- 编码器:使用MobileNetV2作为轻量级特征提取网络,通过卷积和池化操作提取图像的低级特征。
- 混合扩张卷积:引入混合扩张卷积来扩大感受野,避免信息丢失,确保细节恢复。
- 通道注意力机制:结合低级和高级特征信息,利用通道注意力机制提升特征融合效果,提高预测准确性。
- 金字塔池化模块:通过多个尺度的池化操作聚合不同区域的信息,增强全局场景上下文信息,提升分割性能。
- 解码器:上采样输出的特征图,并进行像素级分类得到最终的语义分割结果。
技术细节
本文田间道路场景语义分割模型属于全监督学习类型,需要使用人工精细标注的语义图像作为训练样本。采集的图像本身没有标签和语义,利用 Lableme 工具对图像中需要训练的类别进行语义标注,标注后的文件以.jason 格式存储,然后通过批量转换文件将标注文件转换为.png 格式的标签图像。
-
轻量特征提取网络:使用MobileNetV2网络进行图像特征提取,改进了传统的深度卷积神经网络,使得模型在保证准确率的同时,具备较低的计算复杂度和较快的推理速度。MobileNetV2去除了全局池化和分类层,仅使用卷积层提取图像特征。
-
混合扩张卷积:采用混合扩张卷积(Hybrid Dilated Convolution)代替传统的扩张卷积,通过设置不同扩张率(1, 2, 3)来避免信息丢失和感受野出现空间间隙。
-
通道注意力模块:利用通道注意力机制,结合低级和高级特征进行融合,通过权重调整提升重要特征的权重,减少无关特征对结果的干扰,增强类内一致性。
-
金字塔池化模块:采用金字塔池化模块,结合不同尺度的信息来增强全局上下文信息,提升模型在复杂场景中的分割精度。
-
损失函数:结合交叉熵损失和Dice系数损失,使得模型在进行像素级分类时,既能够优化每个像素类别的准确性,又能够提高整体分割质量,特别是针对类别不平衡问题。
小结
根据表 1 的数据,可以得出以下几点分析:
-
静态物体识别(道路、天空、建筑、植被、土壤、水域): 这些对象具有明显的纹理、颜色和形状特征,因此它们的识别准确率较高。由于静态物体在不同环境中的外观变化较小,且在图像中通常具有较为稳定的特征,这使得深度学习模型能够有效提取并识别这些物体。
-
动态物体识别(车辆、行人): 车辆和行人属于动态障碍物,其识别准确率相对较低。动态物体的出现和运动会受到诸如距离、运动方向、速度等因素的影响,这些因素使得它们的外观变化更加不稳定,从而导致模型在分割时出现一定的困难。因此,车辆和行人通常需要更多的上下文信息和动态建模才能提高识别准确度。
-
地面覆盖物识别: 地面覆盖物(如泥土、草地等)的外观在不同季节和环境下变化较大,特征信息复杂多样。随着环境条件的变化,地面覆盖物的纹理、颜色、形状等特征会发生显著变化,给模型带来挑战。因此,这类物体的识别准确率通常较低。
-
小目标识别(线杆): 线杆等小目标在图像中的面积较小,经过多次下采样操作后,特征图的分辨率会显著降低,导致部分像素的空间位置信息丢失。这些小目标在恢复时容易出现不完全的分割或目标丢失的情况。即使通过上采样方法恢复特征图,模型仍难以恢复其准确的位置,因而导致识别准确率较低。
各类对象的识别准确率受到不同因素的影响,静态物体相对容易识别,而动态物体、地面覆盖物及小目标的准确度较低。针对这些问题,未来的研究可以在模型中加入更多的上下文信息、动态建模以及针对小目标的特征增强方法,进一步提升这些对象的识别精度。
根据表 2 的数据分析,可以得出以下结论:
-
HDC 模块的影响:
- 采用 HDC(高效深度卷积)模块替代普通扩张卷积,显著提升了模型的 PA(像素准确率)和 MAP(均值平均精度),分别达到 89.82% 和 85.68%。
- 这一提升表明,HDC 模块通过增大感受野并保留更多的像素空间位置信息,能够有效提高模型在像素预测方面的性能,尤其在处理具有复杂背景的图像时尤为有效。
- 尽管 HDC 模块增加了计算复杂度,但其对模型的整体影响相对较小,参数量增加了 5.35%,检测速度降低了 10.70%。
-
CAB 模块的影响:
- 引入通道注意力模块(CAB)后,模型的 PA 和 MAP 分别提升至 92.46% 和 88.72%。
- CAB 模块利用高级阶段的强语义信息来引导低级阶段提取更具判别性的特征,从而增强了类内预测的一致性,并提升了分割效果。
- 然而,CAB 模块带来了较大的参数量增加,模型的参数量增加了 39.28%,检测速度下降了 22.25%。
-
PPM 模块的影响:
- 添加金字塔池化模块(PPM)使模型的 PA 和 MAP 达到最高值,分别为 94.85% 和 90.38%。
- PPM 模块通过聚合不同区域的信息,增强了模型获取全局上下文的能力,提升了像素级别的预测精度。
- 然而,PPM 模块对模型的计算开销影响较大,模型参数量增加了 54.48%,检测速度降低了 31.41%。
-
总结与对比:
- HDC 模块对模型的性能提升贡献最大,但对计算效率的影响最小,是最优的平衡点。
- CAB 模块虽然显著提高了分割效果,但增加的计算成本较高,影响了检测速度。
- PPM 模块对分割效果的提升作用最大,但其引入的计算开销也最大,导致检测速度下降明显。
因此,综合考虑模型性能和计算效率,HDC 模块的加入是最有效的,而 CAB 和 PPM 模块则在提升性能的同时,增加了较大的计算负担。在实际应用中,需根据具体需求权衡性能和效率。
本文提出了一种基于深度学习的田间非结构化道路语义分割模型,并在不同环境条件下进行数据采集和处理,证明该模型能够在农业导航系统中有效识别和分割复杂的道路场景。通过融合轻量级卷积神经网络、混合扩张卷积、通道注意力机制和金字塔池化模块,本文模型在保证较低计算复杂度的同时,显著提升了分割精度。实验结果表明,该模型能够实现高效的动态物体识别与路径规划,为农业自动导航系统提供可靠的道路场景解析支持。
相关文章:

论文阅读:基于语义分割的非结构化田间道路场景识别
论文地址:DOI: 10.11975/j.issn.1002-6819.2021.22.017 概要 环境信息感知是智能农业装备系统自主导航作业的关键技术之一。农业田间道路复杂多变,快速准确地识别可通行区域,辨析障碍物类别,可为农业装备系统高效安全地进行路径规…...
linux部分问题以及解决方式
目录 1.ubuntu桌面不显示了,只有命令行1.1启动gdm3服务1.2安装lightdm桌面管理包 1.ubuntu桌面不显示了,只有命令行 有如下两种解决方式。 1.1启动gdm3服务 这种方法只能临时生效,每次重启都要手动启动 sudo service gdm3 restart 1.2安装…...

qt QTreeWidget详解
1、概述 QTreeWidget 是 Qt 框架中的一个类,用于以树形结构展示数据。它基于 QTreeView 并提供了更高级别的接口,使得添加、删除和管理树形结构中的项变得更加简单。QTreeWidget 支持多级嵌套,每个项(QTreeWidgetItem)…...

注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型
目录 注意力机制的目的:理解语义中的它是小白兔 词编码器嵌入高纬空间 计算注意力得分“得到S*V” 权重QKV:连接权重 训练阶段使用解码器:翻译后的语句 解码器掩码和交叉注意力层用于训练 最终的编码器和输出实现大模型 Transformer模型中,QKV QKV的作用 举例说明…...
[java][jdk]JDK各个版本的核心特性
JDK 8至JDK 21的主要新特性概览: JDK 8 Lambda表达式:引入了函数式编程的特性,使得代码更加简洁和灵活。Stream API:提供了一种新的抽象,可以让你以声明性方式处理集合数据。新的日期和时间API:引入了jav…...

双十一”买买买!法官告诉你注意这些法律问题
“双十一”等购物节来临之际,某些电商平台为了吸引消费者提前下单预订商品,通过大力宣传付定金可享受更多优惠等方式开启预售模式。那么,如果消费者在支付定金后,因各种原因最终没有支付尾款,能否要求商家退还定金&…...

PyQt5
基于PyQt5的重绘机制实现加载页面 效果预览代码说明控件初始化超时回调重绘事件缩放事件 代码获取 效果预览 直接看图,效果展现为跟随黑点顺时针转动,且有明暗变化 代码说明 控件初始化 initUI主要用于初始化用户界面(UI)。它创建了一个具有特定样式…...

【Linux】常用命令(2.6万字汇总)
文章目录 Linux常用命令汇总1. 基础知识1.1. Linux系统命令行的含义1.2. 命令的组成 2. 基础知识2.1. 关闭系统2.2. 关闭重启2.3. 帮助命令(help)2.4. 命令说明书(man)2.5. 切换用户(su)2.6.历史指令 3.目录…...

Vue3-06_路由
路由 后台路由是根据请求url,匹配请求处理的后台模块(路径) 前台根据访问路径,决定显示的内容。 路由就是: 访问hash 与内容的对应关系 路由的工作方式 用户点击页面的路由链接导致url地址栏中的Hash值发生了变化前…...

物理验证Calibre LVS | SMIC Process过LVS时VNW和VPW要如何做处理?
SMIC家工艺的数字后端实现PR chipfinish写出来的带PG netlist如下图所示。我们可以看到标准单元没有VNW和VPW pin的逻辑连接关系。 前几天小编在社区星球上分享了T12nm ananke_core CPU低功耗设计项目的Calibre LVS案例,就是关于标准单元VPP和VBB的连接问题。 目前…...

量化分析工具日常操作日记-5-通合科技
使用量化分析微信小程序工具“梦想兔企业智能风险分析助手”日常操作日记-5-军工-通合科技(300491)。 周末国家新政策,要大力支持军工行业,我用工具挖掘了两个低位股,供大家参考。通合科技(300491ÿ…...
windows和linux验证MD5码方式
一、linux linux自带MD5码验证: $ md5sum target_file.txt 二、windows windows自带的MD5码验证: $ certutil -hashfile target_file.txt MD5...
构造函数原型对象语法、原型链、原型对象
目录 一、前言 二、编程思想 面向过程 面向对象 三、构造函数 四、原型对象 constructor 属性 对象原型 原型继承 原型链 一、前言 通过本篇博客,我们将了解面向对象编程的一般特征,掌握基于构造函数原型对象的逻辑封装,掌握基于原…...

鸿蒙UI开发——自定义UI绘制帧率
1、概 述 随着设备屏幕的不断演进,当前主流设备采用LTPO屏幕(可变刷新率屏幕),此类屏幕支持在多个档位之间切换屏幕帧率。 对于快速变化的内容,如射击游戏,交互动画等,显示帧率越高࿰…...

鸿蒙基本组件结构
组件结构 1. 认识基本的组件结构 ArkTS通过装饰器Component 和Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件 自定义组件中提供了一个build函数,开发者需要在函数内以链式调用的方式进行基本的UI描述,UI描述的方法请参考UI描述…...

柔性鞋材振动刀智能视觉裁切机市场报告:未来几年年复合增长率CAGR为5.4%
震动刀切割设备是一种利用振动刀片在各种非金属材料表面上切割的设备,振动刀切割机利用刀片高频振动和360度旋转,能保证每分钟上万次的振动频率,可在平面进行垂直切割,锋利裁剪。震动刀切割设备切割速度快,可以单层切割…...
【计算机网络】基础知识,常识应用知识
局域网使用的是广播技术,广域网使用的是点对点技术,使用的协议不同。局域网工作在数据链路层,可以不要网络层,不存在路由选择问题。1968年6月,世界上最早的计算机网络是ARPAnet服务原语:请求、指示、相应、…...

【Linux进程篇1】认识冯·诺依曼体系结构(引出进程详解)
--------------------------------------------------------------------------------------------------------------------------------- 每日鸡汤: 用这生命中的每一秒,给自己一个不后悔的未来。 -----------------------------------------------…...

使用iviewui组件库的坑
背景 使用view-design组件库的Input组件的时候,按照产品的要求,输入框中只能键入正整数。 使用效果 如果直接使用组件的type属性,设置类型为number时,乍一看没啥问题,但是当我们键入 小数点(.) 或者 e/E 后面没有跟任…...
高级sql使用技巧
窗口函数(Window Functions): 窗口函数可以在结果集的行之间进行计算,例如计算移动平均值、排名等。在使用时,可以使用 OVER() 语句来定义窗口。例如: sql SELECT employee_id,salary,AVG(salary) OVER (P…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
为什么要创建 Vue 实例
核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...