目标检测的方法
目标检测大致分为两个方向:基于传统的目标检测算法和基于深度学习的目标检测算法。
1.基于传统的目标检测算法
在利用深度学习做物体检测之前,传统算法对于目标检测通常分为3个阶段:区域选取、特征提取和体征分类。
2.基于深度学习的目标检测算法
目标检测任务可分为两个关键的子任务:目标分类和目标定位。目标分类负责判断所选区域是否有感兴趣类别的物体出现,输出一系列带分数的标签,表明感兴趣的物体在所选区域出现的可能性。目标定位负责确定所选区域感兴趣类别物体的位置和范围,通常存储在称为Bounding Box中。
基于深度学习的目标检测算法大概分为两类:one-stage目标检测算法,two-stage目标检测算法。
one-stage目标检测算法可以在一个阶段内直接产生物体的类别概率和位置坐标值,相比于two-stage目标检测算法不需要产生候选阶段,将目标框的定位问题转化为回归(regression)问题,整体流程比较简单。one-stage在神经网络的尾部展开,成为classification + regression模式。常见的one-stage算法有YOLO、SSD等等。
two-stage算法在第一步特征提取后会生成一个有可能包含待检测物体的候选区域(Region Proposal,RP),第二步通过卷积神经网络进行分类和定位回归。常见的two-stage算法有R-CNN(区域卷积神经网络)、SPP-Net、Fast R-CNN(快速区域卷积神经网络)、Faster R-CNN(更快区域卷积神经网络)等,此类算法以准确率高为特点。