浅析YOLO网络结构与非极大值抑制

YOLO是一种基于CNN的端到端目标检测算法,它将图像划分为网格并预测每个网格的边界框和类别。每个网格可以预测2个边界框,总共有98个预测区。模型包括24个卷积层和2个全连接层。YOLOv1在PASCALVOC数据集上训练,输入为448×448×3。非极大值抑制(NMS)用于消除重叠的边界框,保留最佳预测。
摘要由CSDN通过智能技术生成

1. YOLO网络结构

YOLO算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。其网络结构主要包含三部分,分别为图片的输入、基础网络以及网络分支,如下图所示。

 Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。该网络结构主要包含24个卷积层和2个全连接层;其中前20个卷积层用来做预训 练,后面4个是随机初始化的卷积层,和2个全连接层。显示效果如下所示。

2. YOLO模型处理

YOLO v1在PASCAL VOC数据集上进行的训练,因此输入图片为 448 × 448 × 3。实际中如为其它尺寸,需要resize或切割成要求尺寸。同时它的模型处理原则为7×7网络划分原则,如下图所示。

 这种方法将图片分割为 s*s个grid(𝑆 = 7),每个grid cell的大小都是相等的。同时,每个格子都可以检测是否包含目标。但在YOLO v1中,每个格子只能检测一种物体(但可以不同大小)。它的输出是一个7 × 7 × 30的张量。对应 7 × 7个cell 。 每个cell对应2个包围框(bounding box, bb),预测不同大小和宽高比, 对应检测不同目标。每个bb有5个分量, 分别是物体的中心位置(𝑥, 𝑦)和它的高 (ℎ) 和宽 (𝑤) ,以及这次预测的置信度。

下图所示的便是每个框代表1个预测的bb,粗细代表不同的置信度,越粗得越高。图片被分成了49个框,每个框预测2个bb,因此有98个bb。

 

3. 非极大值抑制(NMS)

非极大值抑制可以概括为预训练与训练。它保留了许多边界框,预测中 一个物体可能被多个边界框包 围;但实际物体只对应一个边界框。因此NMS核心思想便是在选择得分最高的作为输出,与该输出重叠的去掉,不断重复这一过程直到所有备选处理完。

NMS算法的要点便是首先丢弃概率小于预定IOU阈值(例如0.5)的所有边界框;对于剩余的边界框,选择具有最高概率的边界框并将其作为输出预测; 计算 “作为输出预测的边界框”,与其他边界框的相关联IoU 值;舍去IoU大于阈值的边界框;其实就是舍弃与“作为输出预 测的边界框” 很相近的框框。最后重复上述步骤,直到所有边界框都被视为输出预测或被舍弃。

NMS算法示例可以概括为如下所示。如下图所示,它首先查看与每次检测相关的概率并 取最大的概率。图中选概率为0.9的方框;进一步查看图像中的所有其他框。与当前边界框较高的IoU的边界框将被抑制。 因此图中0.6和0.7概率的边界框将被抑制。(此时面包车已经只剩一个边界框) 从概率最高的所有边界框中选择下一 个,在例子中为0.8的边界框; 再次计算与该边界框相连边界框的 IoU,去掉较高IoU值的边界框。

 ​​​​​​​ 

最后重复这些步骤,得到最后的边界框:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值