目标检测网络的介绍及应用(三) -- YOLO系列

本文详细介绍了YOLO(You Only Look At Once)系列目标检测算法,包括YOLO v1、YOLO v2和YOLO v3。YOLO v1因其速度快但精度略低而著名,YOLO v2通过引入多项改进提升了精度,如Batch Normalization、High Resolution Classifier、Anchor Boxes等。YOLO v3则进一步优化,采用多尺度预测和DarkNet53网络结构,提高了小目标检测的准确性。每个版本都通过损失函数优化了bbox预测、置信度和类别概率。YOLO系列算法在实时目标检测任务中表现出色,是工程应用的理想选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三、One-stage的代表—从YOLO到SSD

3.1 YOLO系列算法

尽管之前提到的Faster-RCNN系列算法大幅提高了目标检测的速度和准确度,但是其检测速度大概是10FPS左右,离实时视频检测还有一定距离。于是在2016年CVPR会议上,RGB提出了一种全新的目标检测框架,YOLO(You Only Look At Once)算法。尽管YOLO算法的精度不及Faster-RCNN,但是其速度要远远快于Faster-RCNN,而且YOLO算法经过不断的发展,已经有三个版本的YOLO算法,YOLOv3已经基本能够达到和Faster-RCNN算法差不多精度的同时实现实时检测的任务。下面我们就来一一介绍YOLO系列算法的原理。

3.1.1 YOLO v1算法
3.1.1.1 YOLO v1算法原理

YOLOv1论文原文在这里

作者在论文中指出,RCNN算法之所以速度较慢的原因是其将目标检测分为两部分,首先生成候选框后再对候选框分类回归得到预测框。为了改善算法的检测速度,作者抛弃掉了RCNN中Region proposal方案,YOLO模型能够直接将图像的原始像素作为输入,直接输出目标的bounding boxes和类别,没有生成候选框的步骤,也就所谓的one-stage方法

YOLO算法首先会将图像缩放成固定大小,然后再将图像分解成 S ∗ S S*S SS的网格(论文中S=7),并且每个网格预测 B B B个bounding boxes和这些bounding boxes的置信度(confidence)。其中置信度表示当前bounding
box包含目标的概率,当该网格内存在object时 Pr ⁡ ( object ) = 1 \Pr\left( \text{object} \right) = 1 Pr(object)=1,否则为0,置信度的计算如下

C o n f i d e n c e = Pr ⁡ ( object ) ∗ I o U p r e d t r u t h Confidence = \Pr\left( \text{object} \right)*IoU_{pred}^{truth} Confidence=Pr(object)IoUpredtruth

除了bounding boxes的置信度外,YOLO还要求每个网格输出检测目标的类别概率 P r ( C l a s s i ∣ O b j e c t ) Pr(Class_{i}|Object) Pr(ClassiObject),这是一个条件概率,表示每个当前物体是某个类别的概率。注意这里的类别概率是针对网格的,而不是针对网格预测的bounding boxes的(虽然这样做简化了类别概率的计算,但对于检测小目标物体很不利)。其计算如下:
S c o r e = Pr ⁡ ( Clas s i ∣ object ) ∗ C o n f i d e n c e = Pr ⁡ ( Clas s i ∣ object ) ∗ Pr ⁡ ( object ) ∗ I o U p r e d t r u t h {Score = \Pr\left( \text{Clas}s_{i} \middle| \text{object} \right)*Confidence}= \Pr\left( \text{Clas}s_{i} \middle| \text{object} \right)*\Pr\left( \text{object} \right)*IoU_{pred}^{truth} Score=Pr(Classiobject)Confidence=Pr(Classiobject)Pr(object)IoUpredtruth
这样,对每个网格,其需要预测B个bbox值 ( x , y , w , h ) (x,y,w,h) (x,y,w,h)以及其对应的置信度和 C C C个对应的类别概率, C C C为类别的数量,也就是一副图像需要预测 S ∗ S ∗ ( B ∗ ( 4 + 1 ) + C ) S*S*(B*\left(4 + 1 \right) + C) SS(B(4+1)+C)个值,以VOC数据集为例,YOLO算法每个网格需要预测 7 ∗ 7 ∗ ( 2 ∗ 5 + 20 ) = 7 ∗ 7 ∗ 30 7*7*\left(2*5 + 20 \right) = 7*7*30 77(25+20)=7730</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值