目标检测:R-CNN系列,YOLO系列,SSD总结

概要

对于现在想入门目标检测的同学来说,R-CNN系列,YOLO系列SSD很可能是最早会接触的一些目标检测算法。不得不说,这三个算法真的是非常非常经典的目标检测算法,在熟悉了这三个算法之后,基本就可以说自己已经在目标检测领域入门了。

目前网络上已经有了很多很不错的讲解这三个算法模型的文章,自认为在有限的时间内很难去写到那种高质量的文章,况且也没必要(自己本来已经写了好多这三个算法的详解,不过质量不满意就删掉了。。。。嘤嘤嘤),在这里我主要是来概述一下这三种经典的目标检测方法,并在最后给出一些比较好的文章的链接(强烈推荐阅读!!!)。感谢各位高质量文章的作者!

对这几种算法都有了一定了解(看论文和我文末推荐的文章呀!)之后再来看这个总结相信效果会更好。
在这里插入图片描述

-------------------话不多说,开始正文-------------------

计算机视觉领域(CV)有几大任务,想象一下,如果我们想为盲人设计一款导盲产品,盲人过马路时系统摄像机拍到了如下的图像,那么需要完成那些视觉任务呢?
  1. 图像分类:为图片中出现的物体目标分类出其所属类别的标签,如画面中的人、楼房、街道、车辆数目等;
  2. 目标检测:将图片或者视频中感兴趣的目标提取出来(找到其位置并识别其种类),对于导盲系统来说,各类的车辆、行人、交通标识、红绿灯都是需要关注的对象;
  3. 图像语义分割:将视野中的车辆和道路勾勒出来是必要的,这需要图像语义分割技术做为支撑,勾勒出图像物体中的前景物体的轮廓;
  4. 场景文字识别:道路名、绿灯倒计时秒数、商店名称等,这些文字对于导盲功能的实现也是至关重要的。

以上已经囊括了计算机视觉(CV)领域的四大任务,在CV领域主要有八项任务,其他四大任务包括:图像生成、人体关键点检测、视频分类、度量学习等。

目标检测作为CV的一大任务之一,其对于图片的理解也发挥着重要的作用,本文主要介绍三种“最”经典的目标检测算法:Faster R-CNN,YOLO,SSD。

目标检测如何运作

目标检测定位图像中物体的位置,并在该物体周围绘制边界框,这通常涉及两个过程,分类物体类型,然后在该对象周围绘制一个框(即定位加分类)。现在让我们回顾一下用于目标检测的一些常见模型架构:

  • R-CNN
  • Fast R-CNN
  • Faster R-CNN
  • Mask R-CNN
  • SSD (Single Shot MultiBox Defender)
  • YOLO (You Only Look Once)

R-CNN

该技术结合了两种主要方法:将高容量卷积神经网络应用于自下而上的候选区域,以便对物体进行局部化和分割,并监督辅助任务的预训练。接下来是特定领域的微调,从而产生高性能提升。论文的作者将算法命名为R-CNN(具有CNN特征的区域),因为它将候选区域与卷积神经网络相结合。
在这里插入图片描述
模型接收图像并提取约2000个自下而上的候选区域,然后,它使用大型CNN计算每个候选区域的特征,此后,它使用特定类的线性支持向量机(SVM)对每个区域进行分类,该模型在PASCAL VOC 2010上实现了53.7%的平均精度。

模型中的物体检测系统有三个模块:第一个负责生成与类别无关的候选区域,这些候选区域定义了模型检测器可用的候选检测器集;第二个模块是一个大型卷积神经网络,负责从每个区域提取固定长度的特征向量;第三个模块由一类支持向量机组成。
在这里插入图片描述
模型内部使用选择性搜索来生成区域类别,选择性搜索根据颜色、纹理、形状和大小对相似的区域进行分组。对于特征提取,该模型通过在每个候选区域上应用Caffe CNN(卷积神经网络)得到4096维特征向量,227×227 的RGB图像,通过五个卷积层和两个全连接层前向传播来计算特征。

R-CNN的一些缺点是:

  • 训练是一个多阶段的任务,调整物体区域的卷积神经网络,使SVM(支持向量机)适应ConvNet(卷积网络)功能,最后学习边界框回归;
  • 训练在空间和时间上都很昂贵,因为VGG16是占用大量空间的深层网络;
  • 目标检测很慢,因为它为每个候选区域都要执行ConvNet前向传播。

Fast R-CNN

下图中展示的论文提出了一种基于快速区域的卷积网络方法(Fast R-CNN)进行目标检测,它在Caffe(使用Python和C ++)中实现,该模型在PASCAL VOC 2012上实现了66%的平均精度,而R-CNN则为62%。
在这里插入图片描述
与R-CNN相比,Fast R-CNN具有更高的平均精度,单阶段训练,更新所有网络层的训练,以及特征缓存不需要磁盘存储。

在其结构中,Fast R-CNN将图像作为输入同时获得候选区域集,然后,它使用卷积和最大池化图层处理图像,以生成卷积特征图,在每个特征图中,对每个候选区域的感兴趣区域(ROI)池化层提取固定大小的特征向量。

这些特征向量之后将送到全连接层,然后它们分支成两个输出层,一个产生几个对象类softmax概率估计,而另一个产生每个对象类的四个实数值,这4个数字表示每个对象的边界框的位置(变换因子)。

Faster R-CNN

Faster R-CNN:利用候选区域网络实现实时目标检测,提出了一种训练机制,可以对候选区域任务进行微调,并对目标检测进行微调。
在这里插入图片描述
Faster R-CNN模型由两个模块组成:提取候选区域的深度卷积网络,以及使用这些区域FastR-CNN检测器, Region Proposal Network将图像作为输入并生成矩形候选区域的输出,每个矩形都具有检测得分。
在这里插入图片描述

Mask R-CNN

下面提出的模型是上述Faster R-CNN架构的扩展,它还能够估计人体姿势。
在这里插入图片描述
在此模型中,物体通过边界框和语义分割实现分类和局部化,语义分割是将图片中每个像素分类。该模型通过在每个感兴趣区域(ROI)添加分割掩模的预测来扩展Faster R-CNN, Mask R-CNN产生两个输出,类标签和边界框。

SSD: Single Shot MultiBox Detectorz

下面的论文提出了一种使用单个深度神经网络预测图像中物体的模型。网络使用特征图的小卷积滤波器为每个对象类别生成分数。
在这里插入图片描述
该方法使用前馈卷积神经网络,产生特定目标的一组边界框和分数,添加了卷积特征图层,允许在多个尺度上进行特征检测,在此模型中,每个特征图单元格都关联到一组默认边界框,下图显示了SSD512模型在动物,车辆和家具上的表现。
在这里插入图片描述

YOLO (You Only Look Once)

下图中展示的文章提出了一种单一的神经网络,可以在单次评估中预测图像中的边界框和类概率。

YOLO模型实时处理每秒45帧,YOLO将图像检测视为回归问题,这使得其管道非常简单因此该模型非常快。

它可以实时处理流视频,延迟小于25秒,在训练过程中,YOLO可以看到整个图像,因此能够在目标检测中包含上下文。
在这里插入图片描述
在YOLO中,每个边界框都是通过整个图像的特征来预测的,每个边界框有5个预测,x,y,w,h和置信度,(x,y)表示相对于网格单元边界的边界框中心, w和h是整个图像的预测宽度和高度(相对于整个图像来说的比例)。

该模型通过卷积神经网络实现,并在PASCAL VOC检测数据集上进行评估。网络的卷积层负责提取特征,而全连接的层预测坐标和输出概率。
在这里插入图片描述
该模型的网络架构受到用于图像分类的GoogLeNet模型的启发,网络有24个卷积层和2个完全连接的层,模型的主要挑战是它只能预测一个类,并且它在诸如鸟类之类的小物体上表现不佳。

该模型的网络架构受到用于图像分类的GoogLeNet模型的启发,网络有24个卷积层和2个完全连接的层,模型的主要挑战是它只能预测一个类,并且它在诸如鸟类之类的小物体上表现不佳。
在这里插入图片描述
此模型的平均AP精度为52.7%,但能够达到63.4%。

References(强烈推荐阅读!)

强烈推荐阅读下面的文章,如果有疑惑可以再去论文中找答案。(Talk is cheap, show me the code.)

  • 7
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值