总述
two-stage:从图像中提取若干候选框,然后逐一对候选框进行甄别,候选框可能变为预测框。代表作:RCNN、FastRCNN fasterRCNN
候选框称为regions for interest (ROI),选择候选框的过程称为region proposal
one-stage:不需要提取候选框,直接把图像喂到模型里面,模型就输出目标检测结果,不需要候选框不需要甄别,代表作:YOLO,SSD,RetinaNet
YOLOv1
相比于fast R-CNN候选框只是图像中的一小部分,丢失了与背景和全景的关系,YOLO使用全图one-stage解决该问题
预测阶段
在YOLOv1中把固定大小的输入图像划分为7*7个grid cell,每个grid cell预测2个bounding box,每个bounding box的中心点落在grid cell里面,bounding box由(x,y,h,w,c)表示,其中c表示置信度即下图中框的粗细程度。而每个grid cell 预测一组条件类别的概率。最后候选框的置信度×类别条件概率就可以得出最终的框以及框中物体类别
具体来说如何获取到置信度和条件概率呢?
答:通过YOLO网络结构可以得到7*7*30 tensor,其中7*7就对应将图片切成7*7的grid cell,而30=(5*2+20),其中5*2 代表每个grid cell生成1个bounding box而每个bounding box又有5个参数
上图可以看出,7*7*30的结构每个grid cell的通道中包含了其2个bounding box的参数和其自身类别。从而可以得到所有候选框及其类别然后再根据置信度过滤和NMS去除多余框
同样的,我们也能发现YOLOv1的缺陷:其划分的每个grid cell只能代表一种类别,那么当遇到小目标(目标大小小于grid cell)的时候效果很差。
训练阶段
预测阶段中最重要的就是7*7*30 tensor,他包含了候选框所有信息,那么他是如何训练得到的?
标注好的图像中真实框中心点落在哪个grid cell中就应该由哪个grid cell预测出的bounding box去拟合(grid cell预测出的有两,选IOU大的去拟合)
若真实框没有中心点落的grid cell,则其预测的bounding box让其置信度c越接近0越好