机器人基础与实践 课件 第7、8章 机器人环境识别理论与实践、机器人定位及地图构建理论与实践_第1页
机器人基础与实践 课件 第7、8章 机器人环境识别理论与实践、机器人定位及地图构建理论与实践_第2页
机器人基础与实践 课件 第7、8章 机器人环境识别理论与实践、机器人定位及地图构建理论与实践_第3页
机器人基础与实践 课件 第7、8章 机器人环境识别理论与实践、机器人定位及地图构建理论与实践_第4页
机器人基础与实践 课件 第7、8章 机器人环境识别理论与实践、机器人定位及地图构建理论与实践_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

机器人环境识别理论与实践机器人环境识别的技术发展010203机器人环境识别理论障碍物识别理论0405目标识别实践案例障碍物识别实践案例机器人环境识别的技术发展PART017.1机器人环境识别的技术发展7.1.1应用场景在机器人的各类工程应用中,物体识别至关重要。在加工时需识别零件图纸装配时要识别工件形状搬运时要识别被搬运物体水果采摘时要识别树枝、树干与水果活动环境中要识别障碍物及所在环境7.1.2发展历程20世纪60年代初期:MIT首次尝试构建场景物体智能识别与分类系统,但未能达成预期目标。物体识别的核心困难:物体外观受背景、光照与视角变化影响显著;同一物体的不同形态可能导致视觉表征不同,挑战识别系统的稳定性。20世纪70年代初至90年代:主流思路--将识别问题转化为三维建模与匹配。思路直观,但存在根本性局限:许多物体难以用简单几何形状描述;同类物体形态千变万化,无法为每一姿态预先建模;从真实图像中精准提取几何结构是巨大难题。7.1机器人环境识别的技术发展7.1.2发展历程20世纪90年代:研究重点回归二维图像本身出现了基于外观的技术。方法依赖手工特征进行模式识别。对图像对齐要求高;难以应对遮挡和复杂背景,鲁棒性不足。本世纪以来:物体识别技术迎来了突破一方面,更好的手工特征与机器学习算法相结合,提升了识别能力。另一方面,深度学习的兴起带来了根本性变革。卷积神经网络能自动学习特征,性能远超传统方法;3D传感硬件的普及为融合深度信息提供新途径,推动识别技术走向成熟和广泛应用。机器人环境识别理论PART027.2机器人环境识别理论7.2.1传统方法1、维奥拉-琼斯检测器(VJ)维奥拉-琼斯人脸检测器于2001年提出;首次实现无约束条件下实时人脸检测;通过滑动窗口检测图像中的所有可能位置和比例;结合积分图像、特征选择和检测级联三大技术,大幅提升检测速度。积分图像:加速了卷积计算,使得每个窗口的计算复杂度与窗口大小无关;特征选择:采用Adaboost算法,从大规模特征池中选取有效特征;检测级联:则通过多级分类器逐步剔除背景窗口,减少计算负担。7.2机器人环境识别理论7.2.1传统方法1、维奥拉-琼斯检测器(VJ)优点:

结合了“积分图像”、“特征选择”和“检测级联”等技术,提高了检测速度。缺点:Haar-like特征是一种相对简单的特征,其稳定性较低;弱分类器采用简单的决策树,容易过拟合;对于正面人脸效果好,对于遮挡、姿态、表情等特殊且复杂的情况,处理效果不理想;基于VJ-cascade的分类器设计,进入下一个stage后,之前的信息丢弃,鲁棒性差。7.2机器人环境识别理论7.2.1传统方法2.方向梯度直方图检测器(HOG)

方向梯度直方图(HOG):一种用于物体检测的特征描述方法核心假设是局部区域的梯度方向分布能有效表征目标的形貌。方法: 将图像划分为小的细胞单元,计算并统计各单元内像素的梯度方向直方图; 相邻细胞单元组合为块,通过块内直方图密度进行对比度归一化,以增强鲁棒性; 将所有归一化后的块特征串联,形成完整的HOG特征描述符。7.2机器人环境识别理论7.2.1传统方法优点:是边缘(梯度)的结构特征,因此可以描述局部的形状信息;位置和方向空间的量化一定程度上可以抑制平移和旋转带来的影响;采取在局部区域归一化直方图,可以部分抵消光照变化带来的影响;忽略了光照颜色对图像造成的影响,使得图像所需要的表征数据的维度降低了;图像局部像素点之间的关系可以很好得到表征。缺点: 描述子生成过程复杂且耗时,导致速度慢,实时性差; 难以处理遮挡问题。由于梯度的性质,该描述子对噪点相当敏感。2.方向梯度直方图检测器(HOG)7.2机器人环境识别理论7.2.1传统方法于2008年提出,采用改进的HOG特征、SVM分类器及滑动窗口技术实现物体检测。特点:①通过计算梯度方向直方图获取图像特征,并利用SVM训练目标模型进行分类;②引入多组件策略和基于图结构的部件模型策略,以增强对不同视角和形态变化的适应性;③引入潜变量概念,采用样本类别和部件位置等,多示例学习,提升模型灵活性与准确性。3.形变识别(DeformablePart-basedModel,DPM)7.2机器人环境识别理论7.2.1传统方法优点:是一种基于组件的检测算法;对扭曲、形变、多姿态、多角度等目标检测效果好;目标形变不大,可近似为刚体,DPM可很好地处理目标检测。缺点:模型过于复杂,判断时计算复杂,很难满足实时性要求;后续有改进,如级联分类器、采用积分图方法等,效率有限;工程中很少使用,一般采用AdaBoost框架的算法。3.形变识别(DeformablePart-basedModel,DPM)7.2机器人环境识别理论7.2.2深度学习方法目标检测算法主要分为两类:R-CNN系列为“两阶段”方法先生成候选框再分类回归,精度高但速度慢。YOLO、SSD为“单阶段”方法通过CNN预测类别与位置,速度快但精度相对较低。目标检测算法进展与对比7.2机器人环境识别理论1.R-CNN:Region-basedConvolutionalNeuralNetwork(R-CNN)首个成功将深度学习应用于目标检测的算法,为后续FastR-CNN、FasterR-CNN及MaskR-CNN奠定了基础。遵循传统的目标检测流程,即提取框、特征提取、分类和非极大值抑制。用候选框代替滑动窗口法,用深度卷积网络代替传统特征(如SIFT、HOG),显著提升性能。具体改进包括:

①预先提取可能是物体的候选框,大幅减少计算量;

②利用深度卷积网络的强大特征提取能力,提高识别精度。基于候选框的深度学习目标检测算法7.2机器人环境识别理论1.R-CNN:优点: 与传统方法区别不大,得益于CNN特征提取能力,效果比传统方法好很多;

在VOC2007数据集上,R-CNN比传统方法平均精确度达到了18.5%。缺点: 计算量大;

R-CNN流程较多,包括候选框选取,训练卷积神经网络,训练SVM和训练回归量; 大部分都有重叠; 训练时间非常长(84小时),占用磁盘空间也大。基于候选框的深度学习目标检测算法7.2机器人环境识别理论2.SPP-NET:针对传统神经网络需固定输入尺寸的限制进行了改进。核心思想:

通过空间金字塔池化层(SPPlayer)处理任意大小的图像,从而提取整张图像的特征图;

从中获取各候选框的特征,避免信息丢失与失真。优点:解决了R-CNN区域提取框时裁剪/变形带来的偏差问题;提出了SPP层,使得输入的候选框可大可小;R-CNN要对每个区域计算卷积,SPP-Net只需要计算一次,效率比R-CNN高得多。缺点:是在R-CNN的基础上进行改进;虽然提高了识别速度,但识别精度并没有提升。基于候选框的深度学习目标检测算法7.2机器人环境识别理论3.FastR-CNN:FastR-CNN的流程图如下图所示:网络的输入是原始图片和候选框,输出是分类类别和边框回归值。对于原始图片中候选框区域,映射到卷积特征的对应区域,输入到RoI池化层,得到特征图;将特征图经两个全连接层得到RoI特征,再将特征经过全连接层。使用softmax进行分类,使用回归得到边框回归。CNN的主体结构可来自AlexNet,也可来自VGGNet。基于候选框的深度学习目标检测算法7.2机器人环境识别理论3.FastR-CNN:优点: 全面改进了SPP-Net和R-CNN算法两个算法。 减少了训练步骤,也不需将特征保存在磁盘上。训练速度比R-CNN快了将近9倍,比SPP-Net快大约3倍;测试速度比R-CNN快了213倍,比SPP-Net快了10倍;在VOC2012数据集上的mAP约为66%。缺点: 在训练时依然无法做到端到端的训练; 仍需一些繁琐的步骤。 存在一个尴尬的问题:需要先使用SelectiveSearch提取候选框,方法比较慢。基于候选框的深度学习目标检测算法7.2机器人环境识别理论4.FasterR-CNN如图7-3所示,是基于FastR-CNN的改进。 目标检测四个基本步骤(候选框生成、特征提取、分类、位置精修)统一到一个深度网络,所有计算没有重复,完全在GPU中完成,大大提高了运行速度。可以简单地看作“区域生成网络(RPN)+FastR-CNN”系统,用区域生成网络代替FastR-CNN中的SelectiveSearch方法。基于候选框的深度学习目标检测算法7.2机器人环境识别理论4.FasterR-CNN第一步:向CNN网络输入任意大小的图片M×N;第二步:经过CNN网络前向传播至最后共享的卷积层, 得到供RPN网络输入的特征图, 继续前向传播至特有卷积层,产生更高维特征图;第三步:供RPN网络输入的特征图经过RPN网络得到区域建议和区域得分, 对区域得分采用非极大值抑制(阈值为0.7), 输出其Top-N得分的区域建议给RoI池化层;第四步:第二步得到高维特征图和第三步输出区域同时输入RoI池化层, 提取对应区域建议的特征;第五步:区域建议特征通过全连接层后,输出该区域的分类得分以及回归后的bbox。基于候选框的深度学习目标检测算法7.2机器人环境识别理论5.MaskR-CNN在FasterR-CNN基础上,在分类和坐标回归两个分支上增加了一个分支进行语义分割。如图所示:第一步:输入图片,进行预处理操作;第二步:输入到预训练好的神经网络,获取特征图;第三步:对这个特征图中的每一点设置预定的RoI,从而获得多个候选RoI;第四步:将候选RoI送入RPN网络 进行二值分类(前景或背景)和边界框(BB)回归, 过滤掉部分候选RoI;第五步:对剩下RoI进行特征图和固定的特征对应;第六步:对这些RoI进行分类(N类别分类)、BB回归和MASK生成。基于候选框的深度学习目标检测算法7.2机器人环境识别理论5.MaskR-CNN优点:分析了RoIPool的不足,提升了RoIAlign,提升了检测和实例分割的效果;将实例分割分解为分类和mask生成两个分支,依赖分类标签来选择输出对应mask;利用BinaryLoss,消除了不同类别的mask之间的竞争,生成了准确的二值mask;进行分类和mask生成任务,对模型进行了加速。缺点:比FasterR-CNN速度慢一些,达到了5fps。基于候选框的深度学习目标检测算法7.2机器人环境识别理论1.YOLO算法基于回归方法的深度学习目标检测算法1)YOLO算法的基本原理全称是YouOnlyLookOnce:Unified,Real-TimeObjectDetection,特点包括:只需要一次CNN运算;Unified是一个统一的框架,提供端到端的预测;Real-Time体现了YOLO算法速度快。7.2机器人环境识别理论1.YOLO算法基于回归方法的深度学习目标检测算法1)YOLO算法的基本原理全称是YouOnlyLookOnce:Unified,Real-TimeObjectDetection,特点包括:只需要一次CNN运算;Unified是一个统一的框架,提供端到端的预测;Real-Time体现了YOLO算法速度快。7.2机器人环境识别理论1.YOLO算法基于回归方法的深度学习目标检测算法2)优缺点分析优点:将目标检测转换成回归问题,加快了检测的速度,每秒处理45张图像;每个网络预测目标窗口时使用的是全图信息,使得误检测率大幅降低;采用全图信息进行预测,将背景预测错误率降低一半;可学习到目标的概括信息,准确率比其他目标检测算法高很多。缺点:对小目标和相互靠近的物体检测效果不佳;只能预测一个物体,容易造成漏检;对物体的尺度相对比较敏感;泛化能力较差,尤其是面对尺度变化较大的物体时。7.2机器人环境识别理论基于回归方法的深度学习目标检测算法YOLOv7的架构设计

分为四个核心部分:Input、Backbone、Head和Detect;

优化了特征提取与处理流程,提升了检测速度与准确性。①Input接收分辨率为640×640×3图像,有助于捕捉更多细节,提高检测精度。②Backbone为模型核心。

由CBS(卷积、批标准化、激活函数组合)、ELAN(高效层次化注意力网络结构)及MP-1(最

大池化层)组成,共同提取强大且有效的特征表示。③Head进一步处理特征,准备最终物体检测。

包含CBS、SPPCSPC(空间金字塔池化串联跨阶层连接结构)、E-ELAN(ELAN变体)、MP-2

(第二种最大池化层)和RepConv(重复卷积层);

提高了特征利用效率。④Detect有三个检测头,在不同尺度上进行物体定位与分类,确保精确检测各种大小目标。

每个检测分支使用一系列卷积层进一步提取特征;

通过输出层预测边界框的位置与尺寸、类别概率分数及物体存在置信度。7.2机器人环境识别理论基于回归方法的深度学习目标检测算法7.2机器人环境识别理论2.SSD算法基于回归方法的深度学习目标检测算法SSD(SingleShotMultiBoxDetector)结合FasterR-CNN与YOLO优点,同时提升mAP和实时性。核心原理包括:①采用回归从不同特征图 生成一系列离散化的boundingboxes; 计算每个defaultbox属于各个类别的得分; 省去了候选框生成、像素重采样或特征重采样的步骤,简化了流程并提高了训练效率。②引入anchorbox机制 对boundingboxes的形状微调以; 更好匹配物体外接矩形,增强定位精度。③结合多分辨率特征图的预测结果处理不同尺寸的物体,在各种尺度下实现精准检测 改进使得SSD不仅易于优化训练,还能更便捷地集成到现有系统中; 克服YOLO在不足。7.2机器人环境识别理论2.SSD算法基于回归方法的深度学习目标检测算法优点:速度超过YOLO,精度超过FasterR-CNN。缺点:需人工设defaultboxes初始尺度和长宽比。

defaultboxes的基础大小和形状不能直接通过学习获得; 每层feature的defaultbox大小和形状都不一样; 调试过程非常依赖经验。

对小尺寸的目标识别较差,达不到FasterR-CNN水准。

SSD使用conv4_3低级feature去检测小目标; 低级特征卷积层数少,存在特征提取不充分的问题。障碍物识别理论PART03在机器人运行环境中:障碍物识别最重要的是确定环境是否是静态的,这样唯一移动的就是机器人;当该假设不正确时,移动物体可能在环境模型中被涂抹,并且可能发生假阳性和假阴性识别;碰撞也可能仅仅因为没有正确预测移动障碍物的运动而发生。7.3障碍物识别理论涉及多种方法和技术。偏离期望:基于对环境的假设,通过检测与预期模型的偏差识别障碍物;地板上方的任何物质都被视为障碍信号。占用/存在:假设空旷环境,利用传感器返回信息预测重叠区域作为体积交叉或碰撞指示;适用于分辨能力较差的传感器如声呐和雷达;常使用二维或三维网格结合贝叶斯技术累积证据。7.3.1障碍证据7.2机器人环境识别理论颜色/组成:利用颜色和纹理区分障碍物,例如高尔夫球场上的割草机器人将非草色像素视为障碍物,这种方法依赖于训练分类器来区分不同类别。密度累积:通过激光测距仪跟踪光束穿透情况,在3D网格中估算面积密度,有助于识别薄障碍物。斜率:作为表面属性,可以通过拟合平面到范围数据中估计;用最小二乘法求解平面方程参数以确定其斜率。形状:影响车轮能否顺利通过障碍物,不同形状的障碍物可能成为斜坡或导致车轮卡住。类:根据对象归类于特定环境中,如森林中的水平圆柱形物体可能是倒下的树木,这类信息帮助识别障碍物。从多角度提供了有效的障碍物检测手段,提高了机器人在复杂环境中的自主导航能力。7.3.1障碍证据7.2机器人环境识别理论常用障碍物去遮挡方法主要采用语义分割技术。对图像中的每个像素进行语义级别的分类和标记,将图像中的障碍物准确地分割出来。目前语义分割模型大多采用以下三种结构:7.3.2障碍物去遮挡方法7.2机器人环境识别理论提出轻量化的语义分割网络BUNetBUNet由U型细节分支和U型语义分支组成: 由简化注意力融合模块进行融合输出

BUNet使用了较少的网络层数和通道数,对实时语义分割任务非常有利。7.3.2障碍物去遮挡方法BUNet的整体结构如图所示:7.2机器人环境识别理论浅层网络只能提取较基础的特征信息,如边缘和颜色等。深层卷积层才可以提取更复杂的信息(如形状和模式)。UDB网络层数较浅但通道数较多 旨在提取多样化的特征类型和更丰富的低级别空间信息。USB通道数少但网络层数较深 用来提取高级别的语义信息; 还构建了基于聚合-扩展层的轻量级编码器-解码器结构; 以减少参数,不会丢失过多的特征信息。在特征融合模块方面,提出简化注意力融合模块以有效融合精细的空间信息和准确的语义信息,从而获得最终的预测图。7.3.2障碍物去遮挡方法目标识别实践案例PART041.滑动窗口与CNN滑动窗口目标检测算法思路非常简单:将检测问题转化为图像分类问题。基本原理: 采用不同大小和比例的窗口在整张图片上以一定的步长进行滑动; 对这些窗口对应的区域做图像分类,这样就可以实现对整张图片的检测。7.4.1水果目标识别实践7.4目标识别实践案例R-CNN引入selectivesearch技术:筛选出最有可能包含目标的候选框,显著减少了需分类的子区域数量,提升了效率。利用卷积神经网络(CNN)的特性: 以替代传统的滑动窗口策略,在保留空间位置信息的同时大幅减少了计算负担; 仍受限于固定大小和步长的窗口。YOLO算法在此基础上进行了创新: 将原始图片分割成互不重合的小方块,并通过卷积生成相应大小的特征图; 每个特征图元素对应原图中的一个小方块,用于预测中心点位于该小方格内的目标; 不仅解决了多尺度窗口的问题,还极大地提高了检测速度和效率。7.4目标识别实践案例7.4.1水果目标识别实践2.设计理念采用一个单独的CNN模型实现end-to-end的目标检测,整个系统如图7-15所示;

将输入图片缩放到448×448,送入CNN网络,由处理网络预测结果得到检测目标。 它是一个统一的框架,其速度更快,训练过程也是end-to-end的。YOLO的CNN网络将输入图片分割成S×S网格每个单元格负责检测那些中心点落在该格子内目标。每个单元格会预测B个边界框以及边界框的置信度: 置信度包含两方面: 一是这个边界框含有目标的可能性; 二是这个边界框的准确度。 前者记为Pr(object),当该边界框是背景、不包含目标时,Pr(object)=0; 当该边界框包含目标时,Pr(object)=1; 边界框的准确度可以用预测框与实际框的IOU来表征。7.4目标识别实践案例1.数据集制作(1)用Realsense相机在实验室拍摄的不同角度、不同时间段的苹果照片,共计500张;7.4.2识别环境构建实践(2)创建LabelMe环境。打开终端执行:condacreate-nlabelmepython=3.7。(3)激活LabelMe环境,下载相关依赖包,如pyqt软件包(终端执行命令:condainstallpyqt)。下载并安装LabelMe,终端执行命令:pipinstalllabelme-i/simple。(4)进入LabelMe,对数据集照片进行标注,标注效果图可见下图。标注过程将生成.json文件,用于描述图像及图中目标物体属性,如图像名称、图像大小、目标物体类别和编号、坐标信息等。7.4目标识别实践案例2.模型训练本书在YOLOV7源码的基础上进行实现,读者可以自行通过YOLOV7官网进行源码下载,基于源码进行改进。此处将展示使用YOLOV7训练自己的数据集,具体实现包括以下步骤。(1)安装相应软件包。根据工程的安装说明,新建虚拟环境,并激活虚拟环境,安装requirements目录下的依赖库。终端执行命令:pipinstall-rrequirements.txt-i/simple。(2)使用本文提供的YOLOv7目录下的Toyolo.py文件,如图7-18所示,将.json文件转换为.txt文件。依据照片格式,根据自定义的图像数据格式将代码改为.jpg格式转换或者.png格式转换。

右击Toyolo.py(本书配套提供的脚本文件),点击修改运行配置,填写要转换的照片及.json文件的路径和输出的文件路径,读者可根据自定义路径进行灵活设置。数据集转化之后得到的文件目录结构如图所示:7.4目标识别实践案例7.4.2识别环境构建实践由于这是参考YOLOv5转化的数据格式,需要将其转换为YOLOv7的训练格式,可手动改变文件格式,如图所示:进入voc.yaml文件,修改train和val为正确路径,将nc改为1,name改为apple,如图所示:进入voc.yaml文件,修改train和val为正确路径,将nc改为1,name改为apple,如图所示:进入train.py文件,修改weights路径,添加yolov7.yaml文件路径,根据需求设置迭代次数,根据照片大小设置imagesizes。7.4目标识别实践案例7.4.2识别环境构建实践运行train.py,得到训练结果,结果保存在exp文件。3.模型测试-目标检测进入detect.py文件,添加预训练模型路径,添加需要识别的图像的路径,如果为default为0,则代表运用电脑摄像头动态识别。运行detect.py文件,可成功识别文件夹中的图像目标,识别结果如图所示。7.4目标识别实践案例编写代码将Realsense的应用接口与detect.py脚本的输入端连接,通过Realsense实时获取视频流。视频流由多帧图像组成,YOLOv7模型可实现每秒检测30帧以上的图像,因此将Realsense摄像机的FPS设置为30,也足够满足实际应用。生成的脚本文件命名为detect_rs.py。4.目标物体三维位置识别结合实际的苹果采摘应用,完成苹果识别之后,需要对其位置信息进行计算。根据锚定框识别的结果,得到苹果在二维图像中的位置信息,进而得到苹果在相机坐标系下的信息。根据相机内参数,得到苹果相对于相机原点在世界坐标系下的空间位置信息。最后结合RGB-D相机(Realsense)得出苹果的深度信息,由此获取到苹果在三维空间中的位置。7.4目标识别实践案例本节将基于前述内容重点介绍自主进行目标识别实践的方法和步骤,结合神经网络结构和源码内容进行介绍。仿真软件界面如图所示。该软件将实验室轮式仿人机器人相关功能进行集成,包含五大模块:机器人舵机信息监测、机器人仿真系统、机器人控制系统、机器人感知系统和自定义算法编程模块。7.4目标识别实践案例7.4.3水果识别参数级训练首先需要选择“机器人感知系统”,此模块包括了目标识别和三维重建,在进行目标识别仿真实验时,需要先上传图片,点击“上传图片”,从将需要进行识别的图片上传,上传结果如下图所示。7.4目标识别实践案例7.4.3水果识别参数级训练上传后我们对其进行识别,点击“目标识别”,将在上传图像的侧显示出识别结果,如上图所示。本节将根据算法框架和源码构成进行详细介绍,介绍算法理论与源码的对应关系以及如何自主设计和修改算法。1.算法理论与源码对应关系回顾前述介绍的YOLOv7整体算法框架,结合源码部分对下图核心组成模块进行介绍。本节将介绍各个模块,包括:ELAN、E-ELAN、MP、SPPCSPC和RepConv。(1)介绍ELAN模块。7.4目标识别实践案例7.4.3水果识别参数级训练ELAN模块的结构示意图和与之对应的源码卷积配置

RepConv,左侧展示结构图,右侧是该模块对应的python源码。7.4目标识别实践案例7.4.3水果识别参数级训练SPPCSPC,左侧展示结构图,右侧是该模块对应的python源码。

2.自主设计算法模块示例此处我们将展示如何自主设计算法模块,以ELAN和E-ELAN模块改进为例,对两个模块进行轻量化改进,使整个网络计算量更小,分别命名为Sim-ELAN和Sim-E-ELAN。此处仅仅给出模块自主改进示例,具体的性能提升需要进一步实验验证,需对比Map等指标。首先是对ELAN的改进,ELAN原始结构可见于图7-29,改进后的Sim-ELAN结构图见图(左侧显示),右侧为Sim-ELAN对应的python源码卷积配置。7.4目标识别实践案例7.4.3水果识别参数级训练其次将对E-ELAN进行改进,E-ELAN原始结构可见于图7-30,改进后的Sim-E-ELAN结构图(左侧显示),右侧为Sim-E-ELAN对应的python源码配置展示。7.4目标识别实践案例7.4.3水果识别参数级训练本节介绍的网络自主化设计部分仅仅是对网络的模型参数和计算量进行了调整,在实际应用中还可以结合其他改进策略(如注意力机制、深度可分离卷积、残差连接等手段)对神经网络进行相关性能提升的实验验证。本节展示了如何根据网络结构进行代码实践的过程,其他模块(MP、SPPCSPC和RepConv)的设计和改进可以参照本节的Sim-ELAN和Sim-E-ELAN实现方法进行相关实践。障碍物识别实践案例PART057.5.1构建枝干语义分割数据集实践7.5障碍物识别实践案例在中国陕西省北部的苹果园共采集了1443幅图像,分辨率为1280×720,并保存为JPEG格式。数据集中的1154张图片用作训练集,其余289张用作测试集。图像拍摄时间为2022年4月至6月,上午9:00至下午6:00。为了更好地贴近实际采摘场景,对200多棵苹果树进行了随机角度拍摄,每棵树拍摄不超过5张图片。为了更好地适应采摘机器人的工作范围,拍摄距离保持在0.5米至1.5米之间。苹果树高在2至2.5米之间,行距约为4米(果园总体环境如图所示)。在实际果园场景中,采摘机器人必须面对光照变化和采摘角度变化等复杂情况。因此,分别在晴天和阴天的不同时刻采集数据。摄像机的拍摄方向随机,包括但不限于阳光直射,背光和侧光。摄像机的角度也不同,可模拟各种采摘角度,包括水平采摘、向上采摘、侧面采摘等。7.5障碍物识别实践案例使用AdobePhotoshop的磁性套索工具,对所有可见的枝干进行标注。将枝干部分设置填充颜色为RGB[255,0,0],后续将其余像素点都处理为图像分割背景。标注和处理数据集的过程如图7-39所示,图(a)展示了原始图像样本;图(b)是使用Photoshop进行标注的图像;图(c)展示了相应的最终伪彩色标注图。7.5.2代码工程配置实践案例7.5障碍物识别实践案例1.数据集文件目录结构将本节7.5.1中描述的数据集重新组织,按照下图所示的目录结构组织数据集,文件目录下JPEGImages文件夹存放原图,SegmentationClassPNG文件夹存放标注图,train.txt存放训练集信息,包括原图路径和与之相对应的标签图路径,val.txt存放验证集信息,训练集与验证集比例为8:2,labels.txt存放标签信息。7.5.2代码工程配置实践案例7.5障碍物识别实践案例2.训练文件配置本文基于PaddleSeg-release-2.8框架实现,在BiSeNet模型的基础上进行网络改进,搭建了BUnet。使用BUnet训练自己的数据集。按照本实践需求将该模型中配置参数重新设置,num_classes根据实际需求设置为自己的检测类别数,如图所示。7.5.2代码工程配置实践案例7.5障碍物识别实践案例3.模型训练完善好数据集和配置文件后,使用tools/train.py文件进行训练。4.模型预测使用tools/predict.py文件进行预测。为了直观展示分割效果,下图展示了在不同光线和遮挡条件下的枝干检测结果,结果显示,几乎所有可见枝条都被准确检测出来。这表明,本文使用的分割网络具有较强的鲁棒性,可以高精度地检测出真实果园环境下不同长势的苹果树枝干。本章小结本章主要解决了目标物和障碍物的识别问题,以水果识别和果树枝干检测为例进行了详细介绍。首先,针对小目标区域的识别问题,我们以YOLOv7算法为例,从理论和实践两个方面详细介绍了目标识别的方法,包括数据集的准备、模型的训练和评估。接着,采用自主改进的语义分割算法对果园环境中的枝干进行了检测,涵盖了数据集构建、模型选择与搭建、模型训练及预测等全过程,展示了该网络在复杂光照条件下的鲁棒性和有效性。通过本章的学习,读者应掌握环境识别的相关理论和技术,包括传统的物体识别和障碍物识别方法,以及深度学习方法。通过水果识别及果树枝干检测的实践,培养读者在环境识别方面的能力和实际应用技能,为将来的研究和开发打下坚实的基础。习题7.1简述物体识别的发展历程。7.2设计并实践传统物体识别方法。7.3设计并实践基于深度学习的目标检测算法。7.4设计并实践YOLO算法。7.5设计并实践常用的障碍物识别方法。本章结束机器人定位及地图构建理论与实践地图表示与环境感知01020304机器人同步定位与建图定位及地图构建实践案例定位及地图构建训练地图表示与环境感知PART018.1地图表示与环境感知机器人在未知环境中完成给定任务,需要依靠其自身携带的传感器提供的信息建立环境地图,环境地图构建直接决定任务是否能够顺利完成,地图表示直接关系着环境地图的构建。8.1.1地图表示方法是机器人导航和任务执行的基础,分为几何地图和拓扑地图两大类。几何地图进一步细分为栅格地图和特征地图:①栅格地图

将环境分解为一系列离散栅格表示障碍物占用情况;

适用于详细描述环境信息并易于定位和路径规划;

缺点:大规模环境下内存和计算资源消耗大,难以实现实时处理。②特征地图

从感知数据中提取抽象几何特征(如线段、曲线)来描述环境;

更为紧凑,利于位置估计和目标识别;

但需要额外的数据处理步骤和一定量的感知数据支持。8.1地图表示与环境感知8.1.1地图表示方法③拓扑地图:采用高抽象层次的方法;将环境表示为节点和边组成的图结构,节点代表特定地点或特征状态,边为连接路径;特别适合大规模环境下的快速路径规划,对位置误差有较好鲁棒性;但面对相似地点时可能难以准确区分不同节点。不同表示方法各有优劣,选择合适的方法需考虑具体应用场景的需求:

环境规模、计算资源限制以及任务复杂度等因素。方法构成了机器人在动态环境中有效导航和执行任务的关键技术基础。8.1地图表示与环境感知8.1.2二维地图构建方法1.栅格地图构建

在传感器坐标系下的占用栅格地图记为m

其中M为栅格单元总数;

表示每个栅格的取值,为一个二元量,取值为0或1,0表示空闲,1表示被占。

将传感器得到的数据记为S:

每个数据表示在某一个角度上面所测量得到的障碍物与传感器间距离;

它包括了距离和角度的信息;

占用栅格构建可以表示为一个概率问题。

在给定的激光测量数据条件下,估计局部占用栅格被占用的概率:其中m为栅格总的集合,把上式展开,得到:8.1地图表示与环境感知8.1.2二维地图构建方法表示任意mi等于1的联合概率分布估计;在这些激光测量数据下去计算每一个栅格被占用的联合概率分布。构成了整个地图被占的概率分布:假设栅格单元独立,根据乘法规则展开为:可以以激光测量数据为条件估计每个栅格单元被占的概率;每个栅格单元被占概率的乘积就为所求栅格地图被占的概率。8.1地图表示与环境感知8.1.2二维地图构建方法估计每个栅格单元的占用概率的估计:

假设环境是静态,栅格单元的被占概率不会随时间变化,

因为mi的取值只能为0或1:静态量的二元估计问题。

常采用几率对数形式结合二元贝叶斯滤波求解, p的几率求解方法是利用它在该条件下的被占概率除上空闲概率,即其中表示mi第i个栅格,N表示激光数据的总数。对上式求对数,记

的几率对数值为,即:8.1地图表示与环境感知如果我们可以求得

,则根据其定义可以计算得到从初始问题出发,

表示在N个激光测量数据下的栅格被占概率。将该问题转换为一个递归的形式:利用贝叶斯规则(

),得:8.1地图表示与环境感知由于每个激光数据是独立的:化简得:对

利用贝叶斯规则展开得:

构成上面迭代式,要迭代得到

,初始值

由定义求得为1,但存在未知量

。只要求出未知量,我们就可以得到。8.1地图表示与环境感知未知量求取--逆传感器模型:表示根据某个激光测量数据,估计栅格单元被占的概率;根据测距仪检测障碍物的射线模型进行推导,如图所示。在某角度上发射光束,通过反射光回到发射点的时间和相位差,获取障碍物到传感器的距离距离和角度就是传感器sj得到的数据;A1为空闲区域,A2为被占区域。当距离被占区域点的距离以及角度越近被占概率越高,可以描述为:对于区域A2:其中8.1地图表示与环境感知对于A1区域:其中2.

线段特征地图构建主要是在激光传感器坐标系,根据激光数据点构建局部线段特征地图。存在两个问题:问题1:如何对这些数据点进行分簇,以明确哪些点属于同一条线段?问题2:在给定属于某条线段的点的情况下,如何求取这条线段?8.1地图表示与环境感知是求解一个线性最小二乘问题,令k,b的偏导数为0,求出使得误差最小的k,b;方法缺点在于:

将误差假设在y方向,对垂直线段时就会出现较大误差或者错误拟合。针对这样的问题,我们提出另一种线段表示,如图所示:对于激光数据点,则有:该方程的求解存在cos和sin的非线性,并且存在约束

,我们令

,得到:要求

准确,线段参数应使得所有点到线的距离的平方和最小,即8.1地图表示与环境感知变成了带约束的最小化问题(Constrainedminimization),通过引入拉格朗日乘子进行求解该方法问题是:线段拟合受噪声影响,对噪声参数有影响。

有了直线拟合方法后,要解决的是这些点分别属于哪条线,也就是问题1的内容。采用不断分割然后合并法:面向有序点。主要思想:先迭代分割然后再合并。步骤:首先获得穿过两个端点的线段,再找这两个端点间距离线段最远的点;如果该点到该线段的距离大于误差阈值,将线段分成两部分,并对每部分重复分割过程,即不断取两个端点,然后求得它的线段,再找到它最远的点,用它最远的点距离去判断是否进行分割,如图所示。8.1地图表示与环境感知合并操作:

如果相邻两个线段足够近,获得共同的线段和距离较远的点;

如果得到的距离是小于阈值的,则合并这两条线段,如图所示。两步之后,删除该过程产生的短线段,重新估计线段参数。由此,我们就解决了在特征地图构建中特征线段处理的问题。3.拓扑地图构建基于激光传感器数据构建拓扑地图;基本思想:利用激光传感器扫描的数据构建环境几何地图,再利用自由空间中线法提取环境的拓扑结构,生成拓扑地图。具体分为3步:1)移动机器人的运动模型,如图所示。8.1地图表示与环境感知计算单位采样时间(

)内车体位姿的变化,累加求出车体在世界坐标系中的位姿8.1地图表示与环境感知

机器人用激光扫描周围环境,用极坐标

表示1次扫描所有距离信息,极点为扫描中心,极轴为激光的主扫描方向(0°),其中n表示扫描到的障碍物对应的序号。

将激光测量的距离信息映射到世界坐标中,得:其中,

为机器人参考中心在世界坐标中的位置。2)中线法提取自由空间中线在环境地图上,提出中线法提取环境自由空间的骨架,以其为环境的拓扑地图。记激光传感器单次扫描的数据为Z,为从环境边界到传感器的距离值。将单次扫描数据以机器人为中心,分为左右两侧、和前方扫描数据3部分,分别表示为

,即有:8.1地图表示与环境感知将前方数据Z以机器人运动方向,分为左右两组测量数据:=[L,R]。其中,L,R分别为中的左前方扫描数据和右前方扫描数据分别取L,R中测量的环境边界到机器人的最小距离从而机器人所测量两侧最短距离的中点:机器人移动过程中,连续扫描得到的左右两侧环境边界到Midpt点间连线,形成环境自由空间的中线,作为环境的拓扑地图的弧线。8.1地图表示与环境感知3)节点的构建

将中线的分支点和拐道处作为环境拓扑地图的拓扑节点,构成拓扑地图;

通常情况下,中线分支发生在走廊与房间的连接处,或走廊之间的连接处(拐道)。若机器人左前方扫描数据L和左侧扫描数据

中分别存在2个测量点,使

,则这两区域中相应测量点连线中点Midpt为中线分支点,并将其作为拓扑节点,即

其中,i和j分别表示测量的左侧和左前方距机器人最短距离相等的环境测量点的序号。

若机器人右前方扫描数据R和右侧扫描数据中分别存在2个测量点,使

,则这两区域中相应测量点连线中点Midpt为中线分支点,将其作为拓扑节点。

为便于节点的识别,将中线分支点处的部分度量信息如机器人朝向、位置坐标,拓扑节点的绝对坐标

加入到拓扑节点。由此,完成环境拓扑地图的构建。8.1地图表示与环境感知8.1.3三维地图构建方法(1)三维地图构建介绍

多视立体视觉构建方法,采用端到端设计思路,将特征提取、代价计算、代价聚合和深度回归等步骤,集成到同一网络,可减少手工参与、提高准确度和泛化能力,提升系统完整性。

在机器人作业环境中,可实现无人智能化操作,由输入可直接恢复三维点云。 MVSNet:作业环境三维地图构建

基于多视立体视觉技术(MVS)设计的端到端、轻量级、精确3D环境重建网络;

计算消耗少、精准度高、速度快。8.1地图表示与环境感知8.1.3三维地图构建方法(2)三维地图构建网络设计

MVS网络:训练需有可信度的真实深度值和真值点云数据。目前尚无专门针对环境构建的训练数据。使用公开MVS数据集进行网络训练和模型评价,在环境图片上三维地图重建。主流公开数据集包括:DTU、Tanks&Temples和BlendedMVS DTU包含固定相机轨迹拍摄的室内场景。

Tanks&Temples是包含室内和室外场景数据,分为中级和高级。 使用DTU训练scan和验证scan进行模型训练 在DTU评估scan上进行测试,在Tanks&Temples的中级场景泛化验证; 采用光度深度图滤波、几何深度图滤波和深度融合等后处理步骤生成3D点云。8.1地图表示与环境感知1)网络整体结构设计MVS通过给定Reference图像、Source图像、及相机内参数和外参数,预测对齐的深度图,随后对这些深度图进行融合,生成重建的点云地图。MT-MVSNet与MVS相似:通过FeaturePyramidNetwork(FPN)提取四个分辨率水平的多尺度特征。在传递局部信息特征到提取全局信息模块前,使用FeaturesSmoothTransition(FST)进行特征传播。8.1地图表示与环境感知MobileTransformerBlock(MTB)聚合FST输出低分辨率全局上下文路径信息,经EdgeAttentionforFeature(EAF)传播到高分辨率特征上;EAF处理的特征经可微分单应性构建源,再经正则化操作获得概率体积,用于深度估计;MBPS进行多阶段深度采样、估计和传播,提高预测精度、减小计算量;参考TransMVSNet法,在模糊区域用焦点损失和增强惩罚,用于MT-MVSNet训练。8.1地图表示与环境感知FeatureSmoothTransition(FST)Transformer经位置编码将全局上下文信息编码为特征映射,可近似看作具有全局接收域的卷积层;FPN用于提取特征,关于相对局部邻域内的上下文信息两种模块在对特征处理的上下文范围方面存在差异:在特征传递阶段如果不处理,很难保证特征传递平滑过渡,对端到端网络训练非常不利在FPN输出端,使用FST协助FPN,输出的多尺度特征,能平滑过渡到MTBFST通过可形变卷积实现,通过采样位置的额外偏移量、并根据局部环境信息,自适应地扩大接收域,自适应地调整特征提取的范围。8.1地图表示与环境感知MobileTrans-Block(MTB)在MobileVitV3轻量化视觉Transformer的基础上,提出移动式Transformer模块,称为MTB;MTB在Transformer块中引入自关注和交叉注意力机制,用于增强局部和全局特征的表达能力。MTB由三个部分组成:Localrepresentation、Globalrepresentation、Fusion在Localrepresentation部分,采用深度卷积(DWconv)抽取特征,以减小计算负载;在Fusion中,局部特征和全局特征的有效信息被充分融合;

剩余连接已被证明有助于架构中更深层次的优化,对输入特征进行融合。

融合块的目标:通过允许它融合输入和全局特征来简化,而不依赖于特征图中的其他位置。级联融合部分输入是初始输入和全局表示块特征的串联,使用3x3卷积将会导致MTB的FLOPs(浮点运算次数,可以用来衡量算法复杂度)大幅增加,因此,更换使用1x1卷积层。Globalrepresentation结构相对复杂。8.1地图表示与环境感知机器人同步定位与建图PART028.2机器人同步定位与建图8.2.1视觉SLAM常用视觉SLAM算法:MonoSLAM,PTAM、ORB-SLAM。MonoSLAM:第一个实时单目SLAM系统以扩展卡尔曼滤波(EKF)为后端,追踪前端稀疏特征点;以相机当前状态和所有路标点为状态量,更新其均值和协方差。缺点:场景窄、路标数有限、稀疏特征点易丢失等。PTAM:实现跟踪和构建地图并行化

首次区分出前后端(跟踪需要实时响应图像数据,地图优化放在后端进行);

第一个使用非线性优化作为后端方案;

并提出关键帧(keyframes)机制,把几个关键图像串起来优化其轨迹和地图。

该方法的缺点是:场景小、跟踪容易丢失。8.2机器人同步定位与建图8.2.1视觉SLAMORB-SLAM:围绕ORB特征计算,包括视觉里程计与回环检测的ORB字典。ORB特征计算效率比SIFT或SURF高,又具有良好的旋转和缩放不变性。ORB-SLAM创新地使用了三个线程完成SLAM:

实时跟踪特征点的Tracking线程;

局部BundleAdjustment的优化线程;

全局PoseGraph的回环检测与优化线程。该方法的缺点:每幅图像都计算一遍ORB特征非常耗时,三线程结构给CPU带来了较重负担。稀疏特征点地图只能满足定位需求,无法提供导航、避障等功能。8.2机器人同步定位与建图8.2.1视觉SLAM视觉slam的框架与slam经典框架基本一致视觉slam的框架的应用更加具体:传感器数据部分主要是进行相机图像信息的读取和预处理;前端部分则通过视觉里程计来实现;后端部分则采用非线性优化方法进行优化。8.2机器人同步定位与建图8.2.1视觉SLAM前端视觉里程计:作用是根据相邻图像信息,估计出粗略的相机运动,给后端提供较好的初始值。主要算法有两类:特征点法和直接法。基于特征点法的前端,是视觉里程计的主流方法,具有运行稳定,对光照、动态物体不敏感的优势,是目前比较成熟的解决方案。一般利用特征点法来实现:先提取特征点,再进行图像特征点的匹配,最后估计出两帧之间相机的运动。后端优化:前端视觉里程计能给出一个短时间内的轨迹和地图,但因不可避免的误差累积,地图在长时间内是不准确的,此基础上,需要进行后端优化,以保证长时间内最优的轨迹和地图。8.2机器人同步定位与建图8.2.1视觉SLAM回环检测:前端提供特征点的提取和轨迹、地图的初值。后端负责对这所有的数据进行优化。如果仅考虑相邻时间上的关联,误差将不可避免,使整个SLAM会出现累积误差。长期估计的结果将不可靠,无法构建全局一致的轨迹和地图。建图:在经典的SLAM模型中,地图是所有路标点的集合。一旦确定了路标点的位置,那就可以说我们完成了建图。建图可以实现对未知环境的描述,以满足移动机器人的定位、导航、避障以及三维构建的功能。8.2机器人同步定位与建图8.2.1视觉SLAM常用激光雷达SLAM算法:HectorSLAM,Gmapping、Cartographer算法。HectorSLAM算法:需要使用高更新频率,小测量噪声的激光扫描仪,不需要里程计。可应用于空中无人机和地面小车,能在不平坦的区域中高精度扫描。核心思路:利用已经获得的地图对激光束点阵进行优化,估计激光点在地图上的表示和占据网络的概率。其中扫描匹配利用的是高斯牛顿方法,导航中的状态估计使用惯性测量,并进行EKF滤波。8.2机器人同步定位与建图8.2.1视觉SLAMGmapping算法:基于粒子滤波理论;当前使用最广泛的激光2D-SLAM算法,使用粒子滤波重采样的方式进行地图匹配;粒子滤波需要使用到大量的粒子来获取较好的采样结果,但这会大大增加计算的复杂度;核心工作:降低计算工作量,但效果并不显著。Cartographer算法:基于图优化理论的激光雷达SLAM算法;主要适用于室内场景,也可适用于室外较大场景,其精度可达5厘米;对传感器精度要求不高,但对处理器性能要求较高;传感器系统由一个激光雷达和一个IMU元件构成。核心思路:将每一帧激光雷达扫描数据匹配到子图submap中;每生成一个submap就进行一次回环检测,利用分支上界法和预先计算的网格;在所有submap完成后进行一次全局回环构建全局地图。8.2机器人同步定位与建图8.2.1视觉SLAM激光SLAM也与SLAM经典框架保持一致,它的流程图如图所示。定位及地图构建实践案例PART038.3定位及地图构建实践案例8.3.1果园二维路径规划实践采用Cartographer算法,以机器人实验室环境的二维地图构建为例,实验验证。整个实验过程分为实验环境搭建、二维栅格地图构建两个部分。(1)实验环境搭建Ubuntu20.04平台,配置有RTX3050显卡(6G),机器人配四轮全向麦克纳姆轮移动底盘,搭载rplidar二维激光雷达和IMU-TL740D陀螺仪,安装激光雷达与IMU的ROS驱动。(2)栅格地图构建打开激光雷达驱动节点以及Cartographer建图节点。保存地图pbstream地图转栅格地图(栅格地图用于导航)8.3定位及地图构建实践案例8.3.2果园三维地图重建实践采用深度神经网络实现环境三维重建,以非结构化的果树结构重建为例。实验过程包括:网络运行环境搭建、输入数据准备、网络模型训练和网络模型测试。(1)实验运行虚拟环境搭建本文实验平台为Ubuntu20.04,配置有RTX3090显卡(24G)。训练和测试显存占用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论