YOLOv1

单阶段目标检测

不需要产生区域建议框的就是单阶段目标检测算法,对于需要产生区域建议框的就是双阶段目标检测算法(two-stage)。

产生背景

之前 two-stage 方法如 R-CNN 把检测问题分成两部分,先生成候选区域(region proposal),再用分类器对区域分类,多阶段训练导致不易优化。

核心思想

之前 two-stage 方法如 R-CNN 把检测问题分成两部分,先生成候选区域(region proposal),再用分类器对区域分类,多阶段训练导致不易优化。
在这里插入图片描述
每个网格要预测B个bounding box(不是预先设置好的,而是运算出来的,不同于Faster RCNN所采用的Anchor,,每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值。
其中如果有object落在一个grid cell里,第一项取1,否则取0。 第二项是预测的bounding box和实际的groundtruth之间的IoU(交并比)值。

每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。则SxS个网格,每个网格要预测B个bounding box还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的。
在这里插入图片描述
加入是在Pascal数据集上训练的话:在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。

训练过程

和R-CNN差不多
首先 ImageNet 1000类 竞赛数据集上对卷积层进行预训练
然后再把网络根据检测任务微调

检测流程

  1. 输入一幅多目标图像
  2. 将图像划分成多个网格
  3. 通过网格得到每个网格的分类概率,以及各网路预测的框+置信度
  4. 针对每个框,将概率与置信分数相乘,作为每个框特定于每个类的置信分数
  5. 输出位置和类别信息

总结优缺点

优点

  1. 首先,快!因为回归问题没有复杂的流程(pipeline)
  2. 可以基于整幅图像预测(看全貌而不是只看部分),与基于滑动窗口和区域建议不同,YOLO在训练和测试期间可以看到整个图像,因此它隐式地编码有关类及其外观的上下文信息。因为能看到图像全貌,与 Fast R-CNN 相比,YOLO 预测背景出错的次数少了一半。
  3. 学习到物体的通用表示(generalizable representations),泛化能力好。因此,当训练集和测试集类型不同时,YOLO 的表现比 DPM 和 R-CNN 好得多,应用于新领域也很少出现崩溃的情况。

缺点

  1. 空间限制:一个单元格只能预测两个框和一个类别,这种空间约束必然会限制预测的数量;
  2. 网络损失不具体:无论边界框的大小都用损失函数近似为检测性能,物体 IOU 误差和小物体 IOU 误差对网络训练中 loss 贡献值接近,但对于大边界框来说,小损失影响不大,对于小边界框,小错误对 IOU 影响较大,从而降低了物体检测的定位准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值