导读:从算法处理的流程来划分,基于深度学习的目标检测算法可分为两阶段(Two-Stage)算法和一阶段(One-Stage)算法,两阶段算法需要先进行候选框的筛选,然后判断候选框是否框中了待检测目标,并对目标的位置进行修正;一阶段算法没有筛选候选框的过程,而是直接回归目标框的位置坐标和目标的分类概率。
作者:涂铭 金智勇
来源:大数据DT(ID:hzdashuju)
01 两阶段算法
两阶段算法包含选择候选框和修正目标分类/位置两个阶段,对这两个阶段的不同处理方式,构成了不同的算法方案。
1. R-CNN算法
2014年,R. Girshick等人提出了R-CNN算法。R-CNN算法的思路非常简单,首先基于Selective Search方法从原始图像中筛选出若干候选框,然后将每个候选框中的图像缩放的固定尺度送入卷积网络提取特征,最后通过支持向量机(SVM)方法对特征进行分类,判断候选框中的图像是背景还是我们关注的目标类型。
在VOC2007数据集上,R-CNN算法相比之前的检测算法,在性能有了显著的提升(从33.7%提升到58.5%),是检测算法的一个里程碑式的突破。
虽然R-CNN在算法性能上取得了巨大的进展,但弊端也非常明显,因为需要分别从2000多个候选框中提取特征,所以效率非常低,后续各种算法正是为了解决这一问题而提出的一系列改进方案。
2. SPP-Net算法
2014年,何恺明等人提出了SPP-Net(Spatial Pyramid Pooling Networks,空间金字塔池化网络)算法。
R-CNN算法要求输入卷积网络用来提取特征的子图像尺寸固定,比如Alex-Net就要求输入的图像大小为固定的224像素×224像素,而SPP-Net算法则去掉了这一限制。SPP-Net算法基于一个空间金字塔