YOLO算法发展史 v1 v2 v3

YOLO系列算法在工程界应用广泛,在与其他检测算法精度相同时,可以达到3到4倍的前向速度。
1.YOLO v1:是一种Anchor-Free的算法
算法利用回归的思想,使用一阶网络直接完成了分类与位置定位两个任务,速度极快。
回归与分类的区别:
其损失函数不同,回归问题建立了一个度量空间。分类问题建立了定性空间;

YOLO v1首先利用卷积神经网络进行了特征提取。输入图像的尺寸固定为448×448,经过24个卷积层与两个全连接层后,最后输出的特征图大小为7×7×30(30通道)。·实际上是将图像划分为了7x7的区域,每个区域均对应特征图上的一个点。v1在每个区域上均预测两个边框(边框的中心点落入区域之内)。
在这里插入图片描述
对于真是你的实物而言,其中心落入网格内时,则该网格负责预测该物体。检测GT与两个框间的IOU,选取其中大的一个框负责回归真实位置。
其预测的结果中包含:(V1中是物体的20分类)
(1)类别概率,只有20个值,两框框选的一定是同一个物体。(Faster rcnn将背景也当成一个类别,yolo则将置信度与物体类别分开处理)
(2)置信度,两框是否包含有物体,无论什么类别,一共2个值
(3)回归边框的位置,两框一共8个值
注意v1中并不存在先验框。
其损失值的计算方法为:
当真实物体中心落于任一区域时,该区域负责检测。其中IOU大的一个框为真值框,其置信度为1,该区域内另一边框为负样本,没有类别及位置损失,其置信度为0
在这里插入图片描述
优点:
处理速度极快,可以达到45 FPS。
缺点:每个区域只有两个框,一个预测类别,故其对靠得特别近的物体,及小物体的检测效果并不好。无先验框,对宽高比变动大的物体不适应。位置损失函数与物体大小直接相关,定位并不精确。
2.YOLO v2
(1)使用了名为DarkNet的新型网络结构,精度与VGG相同,但大幅降低了计算量。
加入了BN层,在每一个卷积之后,激活函数LeakyReLU之前。
利用Passthrough层进行了深浅层特征的融合(将浅层26×26×512的特征变换为13×13×2048)
(2)v2每个区域中有5个边框。每个边框有自己独立的类别值,故每个边框共预测有20个类别+1个置信度+4个位置共25个预测值
(3)引入了先验框,Faster rcnn中的先验框由手工进行设计。聚类算法实现先验框的尺度,预测先验框与真实物体的偏差。
损失的计算:
预测框与真实框的IOU小于0.6时,设置为负样本。
物体落入区域中心时,其中与GT最大的IOU设置为正样本(不受0.6的影响)。
同一区域内如果有多个 IOU大于0.6,取最大的一个进行计算,其余大于0.6的预测框不作为正样本也不作为负样本,不参与计算。
其损失函数最终如下图所示:
在这里插入图片描述
优点:模型的精度提升又保持速度优势。
缺点:工程化调参引入了损失函数,且对小物体检测的改善并不明显。
3 YOLO v3 多尺度特征融合:
(1)提出了创新型的网络结构:
darknet-53,固定416x416x3的网络输入:
网络大量使用了残差连接,牺牲了部分网络速度,进一步提升了精度。
(2)引入了多尺度预测:
YOLO v3输出了3个大小不同的特征图,从上到下分别对应深层、中层与浅层的特征。深层的特征图尺寸小,感受野大,有利于检测大尺度物体,而浅层的特征图则与之相反,更便于检测小尺度物体,这一点类似于FPN结构。
(3)使用聚类算法得到9种大小不同的先验框,并进行分配:
在这里插入图片描述
特征图上每点对应3个先验框。
(4)YOLO v3的另一个改进是使用了Logistic函数代替Softmax函数,以处理类别的预测得分。原因在于,Softmax函数输出的多个类别预测之间会相互抑制,只能预测出一个类别,而Logistic分类器相互独立,可以实现多类别的预测。Softmax可以被多个独立的Logistic分类器取代,并且准确率不会下降,这样的设计可以实现物体的多标签分类,例如一个物体如果是Women时,同时也属于Person这个类别。
总体而言,yolo算法在遮挡及拥挤的情况下,难以实现较好的检测精度,但检测速度较好。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.csdn.net/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值