目录
各优缺点比较
各性能比较
各优缺点比较
R-CNN是最早使用卷积特征的深度学习目标检测法,这种模型不是一种端到端的模型,只使用了CNN特征,在进行候选区域推荐和目标检测定位的过程中,依然沿用传统的目标检测算法的那一套框架,只不过在特征表示的部分改成了CNN特征。虽然,也算是基于深度学习的目标检测算法,但整个检测框架依然沿用传统的目标检测算法。因此,RCNN依然具有传统目标检测的缺点,比如说耗时高,准确率低等特点。
在R-CNN网络提出之后,之后的网络叫SPP-net。而SPP-NET的主要优点就是,考虑了任意尺寸的输入图片,而且在提取特征的时候,采用了共享特征,这意味着我们输入的图像数据是多尺度的,(共享特征指的是我们对一张图采用一个卷积神经网络来完成特征的提取而不是针对于每个proposals来分别进行CNN的提取),因此SPP-Net相对于R-CNN在速度上会更快一点,但是,SPP-Net依然也是沿用了传统的目标检测的框架。只不过是在特征和输入上进行了一些新的变化,来提高模型的速度。
接着就发展到了Fast-RCNN,该模型建立在上两种模型的基础上,代表性的点就是采用了ROIpooling来完成特征图的抠取。并且,采用bbox回归和cls回归来完成框的定位和分类,而且,从发展角度上讲,深度检测网络发展到Fast-RCNN的这个时候,深度检测网络结构基本成型。但Fast-RCNN所存在的问题,依然是在于提取proposals的时候,采用selective search的方式,这种方式相对于原来的滑动窗口的方式提取proposals的确提高了速度和精度,但相对于后续的目标检测算法,它的耗时依旧是非常大的,另外,要说明是,即便是发展到了Fast-RCNN这种地步,深度目标检测算法依然不是一个端到端的检测过程,还存在一些额外的操作(比如selective),整个训练的过程不能通过一个训练的网络来完成。
再往后,就到了Faster-RCNN,相比于Fast-RCNN最大的改进就是proposals提取的过程用RPN网络来完成,发展到这个时候,基于目标检测算法的two-stage检测模型的框架,就出来了!后续算法也就主要围绕这种框架进行优化。那它的缺点是什么呢?还是速度慢,应该强调的是,Faster-RCNN相对于之前发展的目标检测算法的速度,依旧提升很多了,但相对于One-stage的目标检测算法,速度还是慢。而且,还要一个就是训练时间长(因为多了一个RPN网络,需要先训练RPN网络再训练外围网络)。
YOLO算法,同two-stage的比较来看,采用直接回归的方式来进行设计,优点很明显(上图中把优势和缺点的描述放反了,看的时候注意),误报少,耗时少,但缺点也是有的,因为采用直接回归的方式进行,导致边框定位不够准,检出率低,小目标难。这个算法也是经常使用的一个模型框架。模型检测在实时性上会有优势。
SSD算法,将Faster-RCNN和YOLO算法的优势都结合在了一快,实际项目中优先考虑SSD算法。相对于来说是比较中庸,平和的算法。
Mask RCNN多任务网络,泛化好,但训练时间长,训练难度大些,通过一个网络实现区域分割,检测,分类等任务,
RetinaNet 综合性能最佳,类似SSD算法,只不过在设计LOSS的时候,针对样本不平衡的时候,设计新的loss.
各性能比较
我们经常说说One-stage比Two-stage的速度快性能低,反过来Two-stage比One-stage的性能高速度慢。但究竟是怎么个快法怎么个差法呢?接下来就分析对比一下。
Fps表明one是远远大于two(服务端评价,设备的性能显卡高,不针对于嵌入式)。
但从性能mAP来看,two相对于one是具有非常大的优势的,能够有6到7个百分点的提升。