深度学习目标检测

在深度学习出现之前,传统的目标检测方法大概分为区域选择(滑窗)、特征提取(SIFT、HOG等)、分类器(SVM、Adaboost等)三个部分,其主要问题有两方面:一方面滑窗选择策略没有针对性、时间复杂度高,窗口冗余;另一方面手工设计的特征鲁棒性较差。

自深度学习出现之后,目标检测取得了巨大的突破,最瞩目的两个方向有:

1 以RCNN为代表的基于Region Proposal的深度学习目标检测算法(RCNN,SPP-NET,Fast-RCNN,Faster-RCNN等);

2 以YOLO为代表的基于回归方法的深度学习目标检测算法(YOLO,SSD等)。

RCNN,Fast,Faster,YOLO,SSD比较


RCNN

流程狂徒如下:


算法特点:

1 使用Selective Search提取Proposes,然后利用CNN等识别技术进行分类。

2 使用识别库进行预训练,而后用检测库调优参数。

3 使用SVM代替了CNN网络中最后的Softmax,同时用CNN输出的4096维向量进行Bounding Box回归。

4 流程前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用;同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。

缺点:

1 训练分为多个阶段,步骤繁琐: 微调网络+训练SVM+训练边框回归器。

2 训练耗时,占用磁盘空间大:5000张图像产生几百G的特征文件。

3 速度慢: 使用GPU, VGG16模型处理一张图像需要47s。

SPP-NET

流程框图

算法特点

1 通过Spatial Pyramid Pooling解决了深度网络固定输入层尺寸的这个限制,使得网络可以享受不限制输入尺寸带来的好处。

2 解决了RCNN速度慢的问题,不需要对每个Proposal(2000个左右)进行Wrap或Crop输入CNN提取Feature Map,只需要对整图提一次Feature Map,然后将Proposal区域映射到卷积特征层得到全链接层的输入特征。

下图为SPP与RCNN对比:




Fast-RCNN

流程图:


算法特点

1 Fast-RCNN直接使用Softmax替代了RCNN中SVM进行分类,同时在网络中加入了多任务函数边框回归。

2 借鉴SPP-NET,提出了一个ROI层。ROI Pooling Layer实际上是SPP-NET的一个精简版,SPP-NET对每个Proposal使用了不同大小的金字塔映射,而ROI Pooling Layer只需要下采样到一个7x7的特征图。对于VGG16网络conv5_3有512个特征图,这样所有Region Proposal对应了一个7*7*512维度的特征向量作为全连接层的输入。

3 使用了不同于SPP-NET的训练方式,训练时,把同张图片的Prososals作为一批进行学习,而Proposals的坐标直接映射到conv5层上,这样相当于一张图片的所有训练样本只卷积了一次。

存在问题

使用Selective Search提取Region Proposals,没有实现真正意义上的端对端,操作也十分耗时。

Faster-RCNN

流程框图:




算法特点

1 提出了Region Proposal Network(RPN),将Proposal阶段和CNN分类融到了一起,实现了一个完全的End-To-End的CNN目标检测模型。RPN可以快速提取高质量的Proposal,不仅加快了目标检测速度,还提高了目标检测性能。

2 将Fast-RCNN和RPN放在同一个网络结构中训练,共享网络参数。


YOLO


算法特点

1 将物体检测作为回归问题求解。基于一个单独的End-To-End网络,完成从原始图像的输入到物体位置和类别的输出,输入图像经过一次Inference,便能得到图像中所有物体的位置和其所属类别及相应的置信概率。

2 YOLO网络借鉴了GoogLeNet分类网络结构。不同的是,YOLO未使用Inception Module,而是使用1*1卷积层(此处1*1卷积层的存在是为了跨通道信息整合)+3*3卷积层简单替代。

3 Fast YOLO使用9个卷积层代替YOLO的24个,网络更轻快,速度从YOLO的45fps提升到155fps,但同时损失了检测准确率。

4 使用全图作为 Context 信息,背景错误(把背景错认为物体)比较少。

5 泛化能力强。


存在问题

1 YOLO对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框,并且只属于一类。

2 测试图像中,当同一类物体出现的不常见的长宽比和其他情况时泛化能力偏弱。

3 由于损失函数的问题,定位误差是影响检测效果的主要原因,尤其是大小物体的处理上,还有待加强。

SSD

网络结构图:



算法特点

1 SSD结合了YOLO中的回归思想和Faster-RCNN中的Anchor机制,使用全图各个位置的多尺度区域特征进行回归,既保持了YOLO速度快的特性,也保证了窗口预测的跟Faster-RCNN一样比较精准。

2 SSD的核心是在特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移。为了提高检测准确率,SSD在不同尺度的特征图上进行预测。


SSD和YOLO速度快的原因:

时间节省在proposal步骤 。对图像划分网格,直接对每个grid回归Bbox, 速度有提升。

其他

感受野:卷积神经网络每一层输出的特征图(Feature Map)上的像素点在原始图像上映射的区域大小。

卷积输入和输出计算公式:

output field size = ( input field size - kernel size + 2*padding ) / stride + 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值