44物体检测算法:R-CNN,SSD,YOLO【动手学深度学习v2】

44物体检测算法:R-CNN,SSD,YOLO【动手学深度学习v2】

深度学习学习笔记
学习视频:https://www.bilibili.com/video/BV1if4y147hS/?spm_id_from=333.337.search-card.all.click&vd_source=75dce036dc8244310435eaf03de4e330

目标检测中的常用算法,首先是区域卷积神经网络,最早的模型是R-CNN(居于区域的CNN)。

R-CNN

启发式搜索算法来选择锚框:选出很多锚框之后,对每个锚框当做一张图片,使用训练好的模型来抽feature,训练一个SVM来对类别进行分类。使用线性回归来预测锚框与真实框的偏移。
在这里插入图片描述
锚框选择后,怎么保证锚框能变成一个batch,使用办法为兴趣区域池化(RoI 池化): 将一个锚框均匀切分成 nm 块,输出每块中的最大值,做 RoI Pooling,输出nm个值,这样不同的锚框会输出同样大小的batch。
在这里插入图片描述

之后出现的模型是 Fast RCNN

Fast RCNN

改进:一张图片抽1000个锚框的话,要用1000次CNN抽取feature,那么计算量就太大了,Fast RCNN 首先对图片抽feature,对整张图片抽,而不是对一个锚框,然后再在图片上搜锚框,将锚框映射到CNN上面,再得到更小的锚框,之后用RoI pooling上对每个锚框抽取特征,最后到全连接层,在上面对每个锚框做预测和与真实边缘框的偏移。

主要地方是不是对每个锚框做抽取,而是对整个图片做抽取。再在抽取的特征上面再找锚框抽feature,之后就做预测了。
在这里插入图片描述

Faster RCNN

用神经网络替代之前的选择性抽取算法。

图片输入进CNN,把CNN的输出(再做一次卷积,然后生成很多的锚框,进行一次二分类训练,来预测这个锚框到底有没有框住物体和计算真实边界框之间的差别,输出一些好的锚框)送到RoI pooling ,最后对锚框中的物体预测和真实边框差别计算。(做了两次预测,一次糙一点的,一次精确一点的预测)。
在这里插入图片描述
Faster RCNN 精度很高,主要应用在对精度关注特别高时。工业界大多数更关心速度。
在这里插入图片描述

Mask RCNN

跟fast RCNN 没有太大区别,新变化为:如果有像素级标号,对每个像素做预测。 对RoI出来的东西,进行FCN和Mask预测。
RoI align
在这里插入图片描述
在这里插入图片描述

单发多框检测(SSD)

核心思想:RCNN主要是做了两个预测,SSD就只做一次预测。
SSD现在用的不多。

主要思想:对每个像素,以每个像素为中心生成多个锚框(与锚框那节生成方式一样)。
在这里插入图片描述
SSD模型:对给定的那些锚框,直接做预测。输入图片,先CNN抽取特征,每个像素生成多个锚框,每个锚框变成一个样本,进行预测类,判断是圈出了背景还是类并且计算与真实锚框之间的差别。SSD通过在多个分辨率下抽取特征,下层拿到比较大的输出,越到上层越小,在底层检测一些小的物体,在上面就检测 到大的物体。

在这里插入图片描述
SSD 相对来说速度比较快,但精度不太高。
在这里插入图片描述
在这里插入图片描述

YOLO (你只看一次)

YOLO 追求的是快,也是一个单神经网络的算法。
尽量让锚框不重叠,将一张图片均匀成多块,每一块就是一个锚框。
在这里插入图片描述
如绿色部分,一个块就是一个锚框。
每个锚框会去b个边缘框(也就是b个物体都和这个锚框很近)(最原始的做法,后面v2 v3 等等有些改进)。
在这里插入图片描述
Yolo v3 使用很多别的trick性能会提高, 比faster RCNN 要快很多。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值