Object Detection网络框架学习:YOLOV1

YOLO V1是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 目标检测速度问题提出的另外一种框架。YOLO V1 其增强版本在 GPU 上能跑45fps,简化版本155fps。

YOLO

1.YOLO 的核心思想

     YOLO 的核心思想就是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框) 的位置及其所属的类别。faster-RCNN 中也直接用整张图作为输入,但是 faster-RCNN 整体还是采用了RCNN 那种 proposal+classifier 的思想,只不过是将提取 proposal 的步骤放在 CNN 中实现了,而 YOLO 则采用直接回归的思路。

YOLO工作的流程图如下:

è¿éåå¾çæè¿°

大致步骤为:

  • 整个图片resize到指定大小,得到图片Inputrs
  • 将Inputrs塞给CNN
  • 使用NMS(非极大值抑制)去除多余框,得到最后预测结果

YOLO 的实现方法

将一幅图像分成 SxS 个网格(grid cell),如果某个 object 的中心落在这个网格中,则这个网格就负责预测这个 object。 

其中,每个单元需要做3件事:

1. 如果一个object的中心落在某个单元格上,那么这个单元格负责预测这个物体。

2. 每个网格要预测 B 个 bounding box,每个 bounding box 除了要回归自身的位置之外,还要附带预测一个 confidence 值。 也就是预测的B个(x,y,w,h,confidence)。其中,(x,y)是bbox的中心相对于单元格的offset,(w,h)是bbox相对于整个图片的比例。

Confidence:
这个置信度有两个含义:一是格子内是否有目标,二是bbox的准确度。我们定义置信度为.

如果格子内有物体,则Pr(Object)=1,此时置信度等于IoU。如果格子内没有物体,则Pr(Object)=0,此时置信度为0。

3.每个单元格需要预测C(物体种类个数)个条件概率值.

每个网格在输出bbox值的同时要给出给个网格存在object的类型。记为:Pr(Classi|Object),这是条件概率。需要注意的是:输出的种类概率值是针对网格的,不是针对bbox的。所以一个网格只会输出C个种类信息。(这样就是默认为一个格子内只能预测一种类别的object了,简化了计算,但对于检测小object很不利)。

在检测目标时,我们把confidenceconfidence做处理: 

这就是每个单元格的class-specific confidence scores,这即包含了预测的类别信息,也包含了对bbox值的准确度。 我们可以设置一个阈值,把低分的class-specific confidence scores滤掉,剩下的塞给非极大值抑制,得到最终的标定框。
 

YOLO 的实现细节

预训练

使用上图的前20个卷积层+平均池化+FC层在ImageNet上跑了一圈。(在ImageNet上跑是用的224×224输入)。

预训练完事后,也就是get到了想要的前20个卷积层权重,在此基础上添加4个卷积层和2个FC层,得到最终模型(也就是上图)。同时将网络的输入尺寸从224×224改成了448×448。
 

损失函数

这个损失函数中: 

1.只有当某个网格中有 object 的时候才对 classification error 进行惩罚。

2.只有当某个 box predictor 对某个 ground truth box 负责的时候,才会对 box 的 coordinate error 进行惩罚,而对哪个 ground truth box 负责就看其预测值和 ground truth box 的 IoU 是不是在那个 cell 的所有 box 中最大。

其他细节,例如使用激活函数使用 leak RELU,模型用 ImageNet 预训练等等。

总结

优点

  • 速度快。YOLO将物体检测作为回归问题进行求解,使用单个网络完成整个检测过程。
  • 召回率低,表现为背景误检率低。YOLO可以get到图像的整体信息,相比于region proposal等方法,有着更广阔的“视野”。
  • 泛化能力强,对其他类的东西,训练后效果也是挺好的。

缺点

YOLO的定位准确率相对于fast rcnn比较差。但是YOLO对背景的误判率比Fast RCNN的误判率低很多。这说明了YOLO中把物体检测的思路转成回归问题的思路有较好的准确率,但是bounding box的定位不是很好。

论文下载:http://arxiv.org/abs/1506.02640

代码下载:https://github.com/pjreddie/darknet 

参考链接:

https://blog.csdn.net/guleileo/article/details/80581858

https://blog.csdn.net/u011974639/article/details/78208773

发布了84 篇原创文章 · 获赞 108 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_42013574/article/details/90381901