Yolo(You Only Look Once)是一个end-to-end的目标检测算法。作者在论文中提出,人类的视觉系统是快速和准确的, 人们瞥一眼图像,立即知道图像中的物体是什么,它们在哪里以及它们如何相互作用。而对于Rcnn系列的方法,都是需要先找到有可能有物体的框(anchor box),然后进行前背景分类,nms消除重叠框,重新进行坐标回归和分类,这个流程就比较复杂,并且每个步骤的组件的优化都比较麻烦,无论是训练还是最终的测试,速度都非常慢。
因此,yolo的作者提出,将目标检测的问题转化为一个回归问题,只通过一个步骤就能找到目标的位置。
Yolo的检测步骤:
- 将图像划分成 S×S S × S 的网格,如果一个目标物体的中心点落在一个网格中,那么这个网格就负责预测这个目标。
- 每个网格预测B个边框和置信度分数。
- 边框用 x,y,w,h x , y , w , h 表示, (x,y) ( x , y ) 表示目标边框的中心相对于网格的位置(论文里没说是相对于网格的中心还是左上角之类的,实际情况两种应该没什么差别),而 w,h w , h 是相对于整个图像的大小。
- 置信度表示预测框与实际框之间的IOU。
- 每个网格还预测 C C 个类的概率 ,也就是在这个网格有物体的情况下,是某个类的概率。值得一提的是,一个网格只预测一组类的概率,和预测的框的数量 B B 没有关系。
- 最终,网络的输出就为