经典目标检测算法对比分析
经典目标检测算法对比分析
Region Proposal RP 候选区推荐
R-CNN:Region-based convolutional neural networks
基本结构:SS提取RP+CNN提取特征+SVM分类+Bounding boxes Regression
缺点:
改进点:
评价指标 mAP从DPM HSC的34.3%,提上到66%
引入RPN+CNN
训练步骤繁琐(微调网络+训练SVM+训练bbox);
训练及推理速度慢;
训练占用内存大;
Fast R-CNN:Region-based convolutional neural networks
基本结构:SS提取RP+CNN提取特征+Softmax分类+多任务损失函数Bounding boxes Regression
缺点:
改进点:
评价指标 mAP从R-CNN的66%,提上到70%
推理耗时3s
通过SS提取RP耗时长(耗时2-3s),特征提取耗时0.32s;
无法满足实时推理的需求;
没有做到端到端的训练测试;
CNN模块可以利用CNN,但是区域推荐出还是使用CPU
Faster R-CNN:Fast Region-based convolutional neural networks
基本结构:RPN提取RP+CNN提取特征+Softmax分类+多任务损失函数Bounding boxes Regression
缺点:
改进点:
同时提高了检测精度和速度;
实现了端到端的训练和推理框架;
生成RP仅需要10ms
无法满足实时推理的需求;
获取Region Proposal,再对每个Region Proposal分类,计算量仍然比较大;
Mask R-CNN:通用实例分割架构
基本结构:ResNeXt提取特征+RPN提取RP+RoI Align+Faster R-CNN+FCN+Softmax分类+多任务损失函数Bounding boxes Regression
缺点:
改进点:
Mask RCNN以Faster RCNN原型,增加了一个分支用于分割任务,对于Faster RCNN的每个Proposal Box都要使用FCN进行语义分割,分割任务与定位、分类任务是同时进行,实现语义分割;
引入了RoI Align代替Faster RCNN中的RoI Pooling,RoI Pooling并不是按照像素一一对齐的(pixel-to-pixel alignment),对bbox的影响不是很大,但对于mask的精度影响较大;
引入语义分割分支,实现了mask和class预测的关系的解耦,mask分支只做语义分割,类型预测的任务交给另一个分支,与原本的FCN网络是不同的,原始的FCN在预测mask时还用同时预测mask所属的种类
无法满足实时推理的需求;
获取Region Proposal,再对每个Region Proposal分类,计算量仍然比较大;
YOLO:one-stage的目标检测算法,将物体的定位和分类在一起完成,在一个输出层回归bounding box的位置和bounding box所属类别
基本结构:CNN(Google inceptionV1网)提取特征+目标检测层( grid,NMS筛选层)+Softmax分类+多任务损失函数Bounding boxes Regression
缺点:
改进点:
图像分区:将图像隐式的分割为S X S个网格,当物体中心落在哪个网格里哪个网格就负责预测
计算量小:张量大小只有
实现了实时检测;
YOLO将目标检测任务转换成一个回归问题,大大加快了检测的速度,使得YOLO可以每秒处理45张图像。而且由于每个网络预测目标窗口时使用的是全图信息,使得false positive比例大幅降低
没有了Region Proposal机制,只使用7*7的网格回归会使得目标不能非常精准的定位,这也导致了YOLO的检测精度并不是很高;