【模式识别目标检测】——基于机器视觉的无人机避障RP-YOLOv3实例

目录

引入

一、YOLOv3模型

1、实时目标检测YOLOv3简介

2、改进的实时目标检测模型

二、数据集建立&结果分析

1、数据集建立

2、模型结果分析

 三、无人机避障实现

参考文献:


引入

目前对于障碍物的检测整体分为:激光、红外线、超声波、雷达、GPS、机器视觉六种避障技术,其中基于机器视觉的设备廉价获取信息方便,应用广泛。

超声波测距避障的距离一般在5m左右,障碍物表面的材质对于精度有很大干扰!

激光雷达避障主要用光脉冲进行测距,时间测量法和三角测量法是目前经常采用的两种测距方法。相比超声波,雷达测距更远,精度相对较高。在测距过程易导致光污染,影响测距精度,导致避障失败。

超声波和类带避障是被动接受信息,而机器视觉是主动接受光源信息,获取的信息量更大,硬件处理器要求较高。

下面介绍YOLO(You only Look Once)SIFT(尺度不变特征变换)和两种视觉算法,用于目标检测和图像识别。SIFI在下次!

一、YOLOv3模型

传统方法:如基于Haar小波提取障碍物候选区域,对生成的候选区域进行HOG特征提取,最终采用支持向量机(SVM)实现障碍物判断等方法,特征提取过程繁杂且不可有效提取,甚至出现无效特征。

近年基于深度学习的不断发展,卷积神经网络可实现障碍物特征自动提取,典型的基于区域建议的R-CNN系列的R-CNN、Fast R-CNN和Faster R-CNN的目标检测模型不断提出。无需区域建议(one stage)的目标检测模型只需要一次前向传播运算即可完成目标检测,典型one stage系列的YOLO(You only look once)模型在检测速率上体现出其优越性。

下面的所要介绍的就是基于YOLOv3改进目标检测模型的检测识别!

1、实时目标检测YOLOv3简介

YOLOv31x1的卷积层和3x3的卷积层交替连接构成基础网络darknet-53。在每个卷积层之后均连接一个BN层(Batch Normalization)和一个激励函数Leaky Relu——BN层可加速网络收敛、避免训练模型过拟合。

YOLOv3检测模型没有池化层全连接层,网络通过调整卷积核的步长进行降维。将输入数据通过回归分析得到目标位置和目标所属类别。

YOLOv3沿用YOLO思想,将输入图像分成若干网格,每个网格负责预测目标中心落在该网格内的相应目标,且每个网格有3个相应的滑动窗口,通过训练选择得分值最高的滑动窗口作为最终的目标预测框其中每个网格对滑动窗口的得分:

        

YOLOv3将目标分类和定位都转化为回归问题,其损失函数坐标误差、IOU误差和分类误差3部分组成:

loss=loss_{coord}+loss_{IOU}+loss_{class}

2、改进的实时目标检测模型

YOLO作为one stge系列,检测实时性强,但相比two stage系列准确率较低。原因在于one stage系列将图片输入后经过卷积运算直接输出目标类型滑动窗口而two stage在检测之前先生成一些候选区域再进行目标分类和滑动窗口预测。借鉴产生候选区域的思想,改论文采用区域候选网络RPN(Region Proposal Network)生成候选区域对YOLOv3改进——RP-YOLOv3

RP-YOLOv3将输入图像大小统一归化为416x416采用基本网络darknet-53进行特征提取,图中虚线部分即为darknet-53基本结构,通过卷积层步长的调整进行降维(分别以stride=2^3,stride=2^4和stride=2^5对输入的图片进行特征提取)获得大小分别为52x5226x26,和13x13三种尺度的特征图。

然后采用RPN网络通过3x3的卷积核在相应的特征图上进行窗口滑动判断anchor与ground truth的重叠率IOU阈值θ的关系小于阈值则为背景将其舍弃,大于或等于阈值则为前景将其保留,并通过非极大值抑制筛选出相应的proposal(候选区域),将proposal与提取的特征图结合最终获得ROI(感兴趣区域),并将该ROI作为YOLO层的输入。

接着YOLO层通过上采样进行多尺度融合对输入图片中的障碍物的bounding box(滑动窗口)和种类做回归运算,最终输出预测结果。


二、数据集建立&结果分析

1、数据集建立

①原始数据收集:拍照、网上搜索、COCO数据库选取方式获得图片,每种类别1000张左右。

②数据标注:可在python环境下采用labeling对每张图片的障碍物所在区域画框,进行人工数据标注形成障碍物的ground truth。

③数据增强:为了进一步增强数据集的数量和多样性,可采用一些方法如增加噪声、改变亮度或cuntout三种方式对标注后的数据进行增强。(形象理解为是copy了一份加了”滤镜“的数据集,可使数据翻倍和多样性变多)。可拿出总数据集的80%作为训练集,20%作为测试集。

2、模型结果分析

模型结果可通过准确率 P(Precision)、召回率R(Recall)、 平均精度AP (Average Precision)、mAP(mean Average Precision)和检测速率,将该模型与传统模型进行比对进行比较。
①准确率P P=\frac{TP}{TP+FP}
②召回率RR=\frac{TP}{TP+FN}
其中TP为真正例(被检测物A被正确检测为A的数量);FP为伪正例(不是A但被五检测为A的数量);FN是伪反例(是实际检测物A但是未被检测为A的数量)。
下图左侧 矩形为正确目标物体圆圈为检测结果框。可发现 准确率P以检测框区域为分母,召回率R以实际物体区域为分母。

③平均精度APAP=\int_{0}^{1}P(R)dR

检测系统中,精确率P与召回率R不会同时高,两者常呈现相反变化关系,只看R或P缺乏科学性,AP可起到兼顾精度和召回率的作用,且可以衡量比较单类型数据集训练效果的优劣。

④mAPmAP=\frac{1}{n}\sum_{i=1}^{n}AP_i

对各个检测算法进行综合比较采用衡量指标mAP,mAP是各个类别AP之和的平均值。n为障碍物类别总数。


 三、无人机避障实现

使用GPU可保证检测的实时性,但是由于GPU的重量和供电等原因放在无人机上不太现实,可采用将摄像头采集的图像无线传输到地面障碍物检测系统的方式。然后通过改进的RP-YOLOv3模型惊醒检测识别,检测结果通过串口传输给后台程序后台程序通过对无人机各个电机不同的控制方案实现无人机的动作控制。(无人机的上升、下降和偏航运动可以通过控制四个电机各自的转速和转向控制)


SIFT算法及与YOLO的关系和区别见下次!

参考文献:

[1]杨娟娟,高晓阳,李红岭等.基于机器视觉的无人机避障系统研究[J].中国农机化学报,2020,41(02):155-160.DOI:10.13733/j.jcam.issn.2095-5553.2020.02.24.

[2]杨磊,陈海华,娄鹏彥.基于机器视觉的无人机避障技术研究[J].内蒙古科技与经济,2019(17):73-75+78.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/22197.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【超全面】Linux嵌入式干货学习系列教程

文章目录 一、前言二、Linux基础篇三、数据结构与算法基础三、Linux应用篇四、Linux网络篇五、ARM篇六、Linux系统移植篇七、Linux驱动篇八、Linux特别篇九、Linux项目篇 一、前言 博主学习Linux也有几个月了,在这里为广大朋友整理出嵌入式linux的学习知识&#xff…

Matplotlib入门与实践(一)

Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误…

oceanbase基础

与mysql对比 分布式一致性算法 paxos 存储结构(引擎)用的是两级的 数据库自动分片功能,提供独立的obproxy路由写入查询等操作到对应的分片 多租户 方便扩展 存储层 http://www.hzhcontrols.com/new-1391864.html LSM tree,is very…

渲染流程(上):HTML、CSS和JavaScript,是如何变成页面的?

在上一篇文章中我们介绍了导航相关的流程,那导航被提交后又会怎么样呢? 就进入了渲染阶段。这个阶段很重要,了解其相关流程能让你“看透”页面是如何工作的,有了这些知识,你可以解决一系列相关的问题,比如…

干货分享|SOLIDWORKS Composer如何解决缺失的actor?

​SOLIDWORKS Composer导入SOLIDWORKS模型,以便用户可以创建图形内容并与更广泛的受众共享项目。但是,有时模型导入时缺少Actor或组件,通常是由于在SOLIDWORKS中以轻量模式加载组件或Composer中的导入设置排除了曲面实体。 轻量模式 轻量模式…

学习C#基础知识和应用:

C#语言基础知识:了解C#的开发环境、变量、语法和程序结构等基础内容。这些知识是理解和开发C#自动化控制系统的前提。刚好,我这里有上位机入门,学习线路图,各种项目,需要留个6。 Winform窗体控件的应用:Wi…

WTM框架页面被其他网站引用免登录

用ASP.NET CORE开发通常都会有这样一个需求,自己框架开发的页面,要被其他网站嵌套引用,但其他网站通过链接到自己的开发页面的时候,通常会有一个登录页面,有的时候网站无缝集成的时候,这就会要求跳过这个WT…

Flutter:自定义错误显示

为什么要自定义错误处理 以下面数组越界的错误为例&#xff1a; class _YcHomeBodyState extends State<YcHomeBody> {List<String> list [苹果, 香蕉];overrideWidget build(BuildContext context) {return Center(child: Column(children: [Text(list[0]),Tex…

库迪身陷“价格”囹圄,融资苦难户还有突围的希望吗?

作者 | 心怡 来源 | 洞见新研社 三伏天已至&#xff0c;正是咖啡品牌借冰咖笑傲市场的好时机。没想到的是&#xff0c;靠低价狂奔的库迪却率先传出涨价的消息。 消息称&#xff0c;7月起&#xff0c;库迪划线价格上调1-2元&#xff0c;8.8元的团购价涨到9.9元&#xff0c;热门…

open3d 通过vscode+ssh连接远程服务器将可视化界面本地显示

当使用远程服务器时&#xff0c;我们希望能像在本地一样写完代码后能立刻出现一些gui窗口。但是目前网络上的资料都不能很好的解决这个问题。本文尝试尽可能简短地解决这个问题。 步骤 1、在服务器上安装open3d 已经非常简化了&#xff0c;可以使用一行代码完成 pip3 insta…

【Distributed】分布式Ceph存储系统

文章目录 一、存储基础1. 单机存储设备1.1 DAS1.2 NAS1.3 SAN1.4 单机存储的问题1.5 商业存储解决方案 2. 分布式存储&#xff08;软件定义的存储 SDS &#xff09;分布式存储的类型 3. Ceph 简介4. Ceph 优势5. Ceph 架构6. Ceph 核心组件7. OSD 存储后端7.1 Filestore7.2 Blu…

java 通过Json -schema完成对数据的效验

Json -schema 1.对象的效验2.数组套对象的效验3. 字符串的效验长度效验(minLength)(maxLength)正则效验日期和时间 4.对象套对象效验5.对象套数组6. 其他参数required(必须要填&#xff09;enum(范围之内&#xff09;not&#xff08;不&#xff09;anyOf 和allOf&#xff08;双…