图像物体中心点_手把手教你搭建YOLO V3 物体检测模型 (一)

本文是关于从零开始搭建YOLO V3物体检测模型的教程,适合人工智能初学者。介绍了YOLO V3的网络框架,包括卷积层、直连通道、上采样和跨层连接。讲解了模型的输出转换、目标分数和类别置信度的计算,以及非极大抑制法的应用。还提供了代码实现和GitHub资源链接。
摘要由CSDN通过智能技术生成

对于刚刚入门人工智能的小伙伴来说,常常需要阅读其他人员写的代码,更多的时候这些代码可能即没有文档也没有注释。大大超过了我们能够阅读理解的范围。其结果是我们每每下定决心阅读,投入巨大的精力,却收效甚微。本文将为大家详细介绍如何快速上手,从零开始搭建目标检测YOLO V3 模型,此为第一讲。下一讲中,我们将通过使用 Pascal VOC dataset 为例来讲述如何训练模型。希望通过本文,小伙伴们都可以应用YOLO V3 模型训练自己的数据集。大家可以从我的Github上找到详细的代码以及Jupyter 教材文档 - https://github.com/AIrocker/YOLO-V3-in-Pytorch-A-Tutorial-on-Implementation-of-YOLO-V3-Algorithm。其效果图如下。话不多说,直接上干货。

f27de492d5d83f9dcc611f5772ae8dc3.png 985789f8237500d74c93d0a6474cbc68.png

YOLO V3 模型框架


YOLO 的全名是:You Only Look Once,是一个基于深度卷积神经网络的目标检测模型。在工业界应用已经非常广泛,目前已经开发到V3的版本。YOLO V3 的网络框架如下图所示,它是一个全卷积网络(FCN)。网络最终的输出是三个不同尺寸的特征图。在特征图上的每个单元(cell)可以预测3个边框(boundingboxes)。不同的特征图偏向于检测不同大小的物体,将三个特征图预测的边框叠加起来,通过过滤分数较低的框和使用非极大抑制法,便可以输出最终的预测边框。全网络有4种不同的层类型:

1. 卷积层 (convolutional):每个卷积层都嵌入了batch normalization, 非线性激活层leaky relu。使用卷积(stride = 2)代替池化进行下采样,从而降低pooling带来的信息丢失。全网络共有5次的下采样。

2. 直连通道(shortcut):如同Resnet ,YOLO V3 使用了直连通道,即该层输出是通过与倒数第三层网络相加而得到,通过学习残差来降低信息传递过程中的丢失和损耗问题。

3. 上采样(upsampling):当输入图像通过一系列下采样得到第一个检测特征图之后,将采用上采样得到第二个检测特征图。重复相同的上采样过程,得到第三个检测特征图。

4. 跨层连接(route): 在第二和第三个检测特征图的计算过程中,使用了与先前层沿深度方向的维度连接,从而避免上采样所带来的信息丢失,提高后两层特征图的预测精度。  

f15c5ea4350c8b9efc2940ce1944de54.png

YOLO V3 经过5次下采样,所得到的第一个检测特征图尺寸大小将是原输入图像的 1/32((1/ 25),stride = 32)。后两层检测特征图由于依次进行了上采样,特征图尺寸大小分别是原图的1/16(stride = 16) 和 1/8 (stride = 8)。例如输入416 x 416 的图像,检测特征图尺寸将分别为13 x 13,26 x 26,52 x 52。在特征图上的每个单元(cell)深度为B x (5 + C)。B = 3表示每个单元可以预测的bounding box 数量。每个bounding box 包含有5+C 个属性,包括bounding box 的中心坐标,长宽,目标得分(object score),和C个类别的分类置信度。例如COCO 数据集有80个物体类别,因此每个单元的深度为3 x (5 + 80) = 255。

我们如何通过特征图来准确检测物体呢?以下图为例,输入416 x 416 的图像,  第一个检测特征图的维度就是13 x 13,  将输入图像划分为13 x 13 的单元格。我们只希望包含了真实的bounding box (黄色边框)中心坐标的单元(红色格子)来预测对象(狗)。在每个单元格,YOLO V3 都预先定义了三个不同大小的基础边框(称之为anchor),其中与真实的bounding box 的IoU 最大的anchor 来提供预测结果。也就是说,我们希望在红色格子下与黄色边框的IoU 最大的bounding box 的目标得分高于阀值。而其他无关的bounding box 的目标得分要低于阀值。这就是模型训练的基本逻辑。在下一讲中,我们将详细阐述其过程。

3e9ca375f6d493c3fd6b3252ca3b2f45.png

模型输出及转换


目标检测模型通常并不直接预测实际边框的坐标位置,因为这会导致训练过程中的梯度不稳定。YOLO V3 对于物体边框的预测采用下列公式。对于中心点的预测,模型的输出为偏移量(tx, ty) ,预测结果通过一个sigmoid 函数,并和对应单元在特征图的左上角坐标相加,从而得到预测边框中心点在特征图上的位置。对于边界框尺寸的预测,模型输出的是对数空间变换值(tw, th)。pw和ph为anchor在特征图上的长宽维度。

e481bd677a449bcb34ed3bab3df0b89a.png

YOLO V3 对于每一个检测特征图都有预定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值