YOLOv2 笔记

YOLOv2在YOLO基础上进行了多项改进,包括使用Darknet-19提升速度,引入BN层,多尺度训练,K-means选取anchor box,联合训练方法等。此外,通过细粒度特征和passthrough层增强了小目标检测。YOLOv2的多尺度训练策略使其能适应不同大小的图片,提高预测准确性。
摘要由CSDN通过智能技术生成

前言
1.本文重点是YOLOv2在YOLO的基础上做了哪些改进,尽量用较少篇幅表达清楚论文算法,其他一些不影响理解算法的东西不做赘述
2.博客主要是学习记录,为了更好理解和方便以后查看,当然如果能为别人提供帮助就更好了,如果有不对的地方请指正(论文中的链接是我经过大量搜索,个人认为讲解最清楚的参考)

论文链接
代码链接
论文翻译

创新点
1.使用分类网络Darknet19提升速度
2.使用BN层
3.多尺度训练网络
4.使用K-means选取anchor box
5.提出一种新方法,使用对象分类的分层视图,将不同的数据集组合在一起,扩展当前能够检测的类别
6.提出联合训练方法,同时使用检测数据集和分类数据集训练检测网络,用检测数据集学习精确定位对象,用分类数据集来增加可检测物体类和鲁棒性
7.基于YOLOv2用联合训练方法在ImageNet的9000多个类的分类数据和COCO的检测数据训练出了YOLO9000(一个可以检测超过9000种不同物体类别的实时检测器)

主要解决YOLOv1的问题
1.YOLOv1产生大量的定位误差
2.YOLOv1的召回率比较低

YOLO9000:Better, Faster, Stronger
(主要针对以上问题,作者提出YOLOv2/YOLO9000,从YOLO9000的名字就可以看出它有三方面的改进:Better、Faster、Stronger)
1.Better
1)Batch Normalization(使用批量归一化)
通过在所有卷积层上添加批量归一化可以显著提高收敛性,代替其他正则化(如删除DropOut)而不会发生过拟合(mAP提高2%以上)
2)High Resolution Classifier(用高分辨率分类图片微调分类网络)
给图片标注类别容易,分类数据很多,但是标注边框工作量太大,检测数据集少,所以检测网络的提取特征的基础网络都是用分类数据集训练的,而分类数据集如ImageNet上的图片分辨率都比较低,相反检测数据集分辨率相对会高,比如最初的YOLO在224x224的数据上训练分类网络,检测数据却是448x448,这样肯定会影响性能,所以对于YOLOv2会用448x448的数据微调分类网络(这种高分辨率使mAP提高近4%)
3)Convolutional With Anchor Boxes(去掉全连接层,并改用anchor box预测bounding box)
使用anchor box时有两个问题。第一个是anchor box是手工挑选的尺寸,不一定合适,虽然网络可以学习着调整这些框,但是如果选择更适合网络的先验框,就可以让网络更容易学习;第二个问题是采用anchor box预测的是offset,中心坐标 t x t_x tx t y t_y ty不受控制,如果落在其他栅挌中,应该有中心落入的栅挌负责(注意这是因为YOLO有栅挌的概念),训练初期,模型初始化,由于中心坐标位置不一定在哪,导致模型很不稳定

第一个问题:解决方案就是不再手工选择先验框,而是用k-means聚类算法自动找到好的先验框分布,但是如果使用欧氏距离,大尺寸的框会比小尺寸的框误差大,为了使iou与框的尺寸无关(YOLOv1损失函数w开根号也是解决这个问题),所以把欧氏距离改为新的距离公式:
在这里插入图片描述
centroid是聚类时被选作中心的边框,box就是其它边框,d就是两者间的“距离”,IOU越大,“距离”越近
第二个问题:YOLOv2不预测offset,而是延续YOLOv1预测bbox的中心相对于所在栅挌左上角的坐标(相对于栅挌边长的比例,(0,1)之间),为了使bbox中心坐标在(0,1)之间(即在对应的栅挌中),使用sigmoid函数来约束预测值所以新的坐标计算公式为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值