一、首先理解下“一步法”和“两步法”
two-stage方法,如R-CNN系算法
即是两步法:
-- 第一步选取候选框
-- 第二步对这些候选框分类或者回归
one-stage方法,如Yolo和SSD
即是一步法:
-- 其主要思路是均匀地在图片的不同位置进行密集抽样
-- 抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归
-- 整个过程只需要一步,所以其优势是速度快
二、YOLO
即是YOU ONLY LOOK ONCE,俗称“一次就好”,我陪你去看天荒地老。。。跑题了。
先回忆下 R-CNN 是怎么选取候选框进行目标识别的
-- 可以近似总结为暴力法(实际上是用selective-search选了2000个左右的候选框),本质上是每一个尺寸每一个像素循环一遍
fast R-cnn
-- 本质上就是提取候选框的速度比R-CNN快;
所有R-CNN的方法都是将目标检测分为两部分实现的:
-- 1)物体的类别;分类问题。
-- 2)物体的区域,即bounding box,回归问题。
回到YOLO:
-- 是直接当做回归问题求解,输入图像经过处理,可以直接获取到图像中物体的类别及其confidence以及物体的位置。
-- 具体方法是:
-- YOLO将输入图像分为S×S个grid,每个grid负责检测落入其中的物体。
-- 如果物体的中心位置落入该grid,则该grid就负责检测出这个问题。
-- 每个grid输出B个bounding box的同时还要输出C个物体属于某类的confidence
-- 从B个里面挑选IOU最大的那个bounding box,同时C是总共包含的类的类别。
三、补充说明:什么是grid,什么是IOU
grid是网格的意思,一般YOLO方法会把图片划分为 S*S 的网格,每个网格都负责检测物体并输出物体类别和位置,计算IOU
IOU,简单来讲就是模型产生的目标窗口和原来标记窗口的交叠率
-- 具体计算:检测结果(DetectionResult)与 Ground Truth 的交集比上它们的并集,即为检测的准确率 IoU