深度学习之物体检测——YOLO(一)_介绍

YOLO是一种端到端的深度学习物体检测方法,它将图像划分为网格并预测每个网格的物体。网络结构基于GoogLeNet,使用1*1和3*3卷积层。训练时,先对前20层卷积层预训练,再在ImageNet数据集上调整。损失函数包括坐标、置信度和类别误差。测试时,通过阈值筛选和非极大值抑制得到最终检测结果。YOLO速度较快,但在处理单个网格中多个物体时表现不佳。
摘要由CSDN通过智能技术生成

##YOLO网络结构

YOLO把检测问题看成是端到端的回归问题。把输入图片划分成一个个的小格子,让物体中心点所在的格子负责检测到该物体。
YOLO采用的是GoogLeNet结构,但是用1*1和3*3的卷积层来替代GoogLeNet的inception层。网络结构如下:

这里写图片描述

每个卷积层后面都会跟着leaky ReLu非线性层。第一个全连接层后面也跟着leaky ReLU非线性层。对于一张图片,输出的维度是7*7*30(YOLO为每个格子为每个格子预测一个概率分布,并且预测2个box以及每个box的置信度):

这里写图片描述

输出的box是(x_center, y_center, width, height),x_center和y_center是相对于格子的位移并且用格子的长宽进行归一化,width和height用448进行归一化,所以这四个值的范围是[0,1]。

训练

卷积层预训练

取YOLO的前20个卷积层,然后加上一个平均池化层和一个全连接层,在ImageNet 1000-class数据上进行训练。作者讲他训练了大约一周的时间。

损失函数

YOLO会为每个格子预测多个box,但我们希望训练时只有一个box为每个物体负责。责任box是和物体的真实box的IOU最大的box。
训练误差包含下面三种误差:

  • 坐标误差:表示对物体负责的格子中的责任box和真实box标记之间的误差

  • 置信度误差:表示每个预测box的置信度和真实置信度之间的误差。
    目标置信度的表达式如下:

    C^=Pr(Object)IOUtruthpred={ 0boxboxIOUtruthpredboxbox(1)

置信度不仅给出预测的box是否包含物体的信息,而且还给出了预测的box的准确度。作者在文中提到大多数的格子中是不包含物体的,这些格子中的box置信度应该向0趋近,这个目标带来的梯度有可能会比包含物体的格子带来的梯度更大。所以在损失函数中增加box的坐标预测损失,减少不包含物体的box的置信度预测损失,即在公式(2)中引入的系数 λcoor

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值