目标检测概述(待完善)

参考:

https://zhuanlan.zhihu.com/p/33544892

https://kuaibao.qq.com/s/20180319G1QL8500?refer=spider


目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型(参考RefineDet):

(1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RPN)产生一系列稀疏的候选框,然后对这些候选框进行分类与回归,two-stage方法的优势是准确度高;

(2)one-stage方法,如Yolo和SSD,==其主要思路是均匀地在图片的不同位置进行密集抽样,产生不同尺度和长宽比的先验框(anchor box)==,然后利用CNN提取特征后直接对先验框进行分类与回归,整个过程只需要一步,所以其优势是速度快,但是均匀的密集采样的一个重要==缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡(参见Focal Loss),导致模型准确度稍低。==

==anchor box产生先验框后,网络对location的学习目标就是从“Predicted box与Default Box/Anchor的差(offset)和类别”到“Ground Truth Box与Default Box/Anchor的差(offset)和类别”,因此计算loss误差就是通过这比较两个计算的;==

使用anchor box的意义和作用:

在Yolo中,每个单元预测多个边界框,但是其都是相对这个单元本身(正方块),但是真实目标的形状是多变的,Yolo需要在训练过程中自适应目标的形状。

而SSD借鉴了Faster R-CNN中anchor的理念,每个单元设置尺度或者长宽比不同的先验框,预测的边界框(bounding boxes)是以这些先验框为基准的,在一定程度上减少训练难度。

训练时,计算anchor box与ground truth间offset的过程称为bbox的编码(encode),预测时,要反向这个过程,即进行解码(decode),从预测值l中得到边界框的真实位置 b

为什么two-stage的方案(Faster RCNN、R-FCN)会比SSD的精度更高?

==Faster RCNN第一步关注proposal的效果,第二步关注refine的效果。提取的ROI区域会有一个zoom in的效果,因而会比SSD混杂在一起单步学习精度更高。==

深度学习目标检测的组成

  1. object detection framework
  2. 用于目标检测的base network(basebone)