2021SC@SDUSC山东大学软件学院软件工程应用与实践--YOLOV5代码分析(六)yolov1

2021SC@SDUSC

前言

为了更好地理解yolov5的算法,我会在对代码分析的中间穿插yolo其它系列的算法分析,这篇是对yolov1的介绍。之前的文章提到了滑动窗口来进行目标检测,然而存在着一定的问题:检测效果与时间耗费上的tradeoff。yolo算法,即you only look once,解决了这个问题。yolo算法是一种实时的目标检测算法,一个特点就是实现端到端的检测。相对于其它目标检测与识别方法,yolo将目标区域预测和目标类别预测整合于单个神经网络模型中,更适合应用环境。

实现方法

论文地址:https://arxiv.org/abs/1506.02640icon-default.png?t=L9C2https://arxiv.org/abs/1506.02640

yolo首先将一张图片划分成s*s的网格,

 

每个网格都要预测b个bounding box,当一个目标落在多个网格上时,该目标的中心在哪个网格上哪个网格就负责这个目标的检测。

除了需要预测出b个bounding box的位置,还需要有每个bounding box的置信度p,这个置信度代表了预测出来的bounding box的概率。

还需要有一个类别信息,记为c,这样每一个网格需要输出的就是(5*b+c),5是(p,x,y,w,h),总共的输出就是s*s*(5*b+c),一个bounding box对应了一个置信度,而一个网格对应了一个类别c,这样一个网格就只能预测一个类别,当一个网格内有多个类别时就无法预测了。一个网格需要预测多个类别时可以让一个bounding box预测一个类别的目标,假设现在需要预测5个类别的目标,可以是重复的,那么输出就变成了s*s*5*(5+c)。

如上图所示,这样做会导致一个问题,那就是可能会有多个网格认为目标是自己负责的,于是一个目标可能会有多个预测bounding box,解决方法是非极大值抑制NMS。

NMS

首先需要知道一个概念,IOU,也就是交并比,指的是交集与并集的比值。

设图中1、2、3区域的面积分别为s1,s2,s3,lou=s1/(s1+s2+s3)

lou值越大,说明两个bounding box的重合部分越多,两个bounding box就越接近

NMS算法就是依据IOU的值来执行的。

1.对所有bounding box进行排序,依据与Ground Truth的IOU比进行打分,分数越高的排名越靠前

2.选取分数最高的bounding box,计算剩下元素与该bounding box的IOU,若IOU大于一个阈值t,就说明这两个bounding box足够靠近,很有可能是在预测同一个目标,那我们只需要保留更好的那一个,也就是将剩下的bounding box去除

3.重复步骤2,直至列表为空

对每一个类别重复以上操作就可以将同一目标的多个bounding box去除掉。

一些细节

输入的是448*448大小的图像,取s为7,也就是将图像划分成了64*64个网格,b为2,一共有20个类别,即c=20 ,这样最终的输出就是7*7*(2*5+20)=7*7*30。

在测试的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score,得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。

左边等式的每一项分别是每个网格预测的类别信息、每个boundingbox预测的置信度 、与目标框的IOU。

参考:

YOLO系列详解:YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5_AI小白一枚的博客-CSDN博客_yolo

 你一定从未看过如此通俗易懂的YOLO系列(从v1到v5)模型解读 (上) - 知乎

非极大值抑制(NMS)算法讲解|理论+代码 - 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
山东大学软件学院本科毕业论文文件 目 录 第一部分 山东大学软件学院本科毕业论文规范(试行) 2 第二部分 软件学院本科毕业论文写作规范详解 5 1.1论文基本要求及结构 5 1.2论文格式规范及撰写说明 5 1.2.1论文封面 5 1.2.2成绩评定表 6 1.2.3论文目录 6 1.2.4 题目 7 1.2.5中外文摘要 7 1.2.6论文正文 7 1.2.7谢辞 12 1.2.8 注释 13 1.2.9引文出处及参考文献 13 1.2.10附录 15 1.3 论文内容组织结构 15 1.4 论文主要内容写作说明 16 1.4.1绪论 16 1.4.2论文的正文 17 1. 需求分析部分 17 2. 系统概要设计部分 18 3. 系统详细设计部分 18 4. 系统实现与测试部分 19 1.4.3 结论部分 19 第一部分 山东大学软件学院本科毕业论文规范(试行)   为提高本科生毕业论文的质量,保证毕业论文在结构和格式上的规范与统一,特作如下规定。   一、毕业论文的基本要求   本科毕业论文一般应用中文撰写,提倡并鼓励用中、外文撰写。毕业论文正文字数一般为2万字左右,中文摘要为300字左右,外文摘要为250个实词左右。   二、毕业论文的结构要求   毕业论文一般应由以下几部分组成,依次为:(1)论文封面;(2)成绩评定表;(3)目录;(4)题目;(5)中文摘要(含关键字);(6)外文摘要(含关键字);(7)论文正文;(8)谢辞;(9)注释;(10)参考文献;(11)附录(英文原文、中文译文,源代码、图表等)。   三、毕业论文的格式要求   (一)论文封面:采用校教务处统一印制的封面。封面的论文题目用小二号加重黑体字打印,四号加重黑体字打印脊背处论文题目和封面作者姓名、专业、指导教师、论文完成时间。论文题目的字数不宜超过20个汉字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值