目标检测算法fasterr-cnn(详解)(代码片段)

ZSYL ZSYL     2022-12-21     629

关键词:

学习目标

  • 目标

    • 了解Faster R-CNN的特点
    • 知道RPN的原理以及作用

【目标检测算法】Fast R-CNN(详解)

Fast R-CNN还存在着瓶颈问题:Selective Search(选择性搜索)。要找出所有的候选框,那我们有没有一个更加高效的方法来求出这些候选框呢?

1. Faster R-CNN

Faster R-CNN中加入一个提取边缘的神经网络,也就说找候选框的工作也交给神经网络来做了。这样,目标检测的四个基本步骤(候选区域生成,特征提取,分类,位置精修)终于被统一到一个深度网络框架之内。

Faster R-CNN可以简单地看成是区域生成网络+Fast R-CNN的模型,用区域生成网络(Region Proposal Network,简称RPN)来代替Fast R-CNN中的选择性搜索方法,结构如下:

  • 1、首先向CNN网络(VGG-16)输入图片,Faster RCNN使用一组基础的conv+relu+pooling层提取feature map该feature map被共享用于后续RPN层和全连接层。
  • 2、Region Proposal Networks。RPN网络用于生成region proposals,faster rcnn中称之为anchors
    • 通过softmax判断anchors属于foreground或者background
    • 再利用bounding box regression修正anchors获得精确的proposals,输出其Top-N(默认为300)的区域给RoI pooling
  • 生成anchors -> softmax分类器提取fg anchors -> bbox reg回归fg anchors -> Proposal Layer生成proposals
  • 3、后续就是Fast RCNN操作

2. RPN原理

RPN网络的主要作用是得出比较准确的候选区域。整个过程分为两步

  • 用n×n(默认3×3=9)的大小窗口去扫描特征图,每个滑窗位置映射到一个低维的向量(默认256维),
  • 并为每个滑窗位置考虑k种(在论文设计中k=9)可能的参考窗口(论文中称为anchors)

2.1 anchors

  • 3*3卷积核的中心点对应原图上的位置,将该点作为anchor的中心点,在原图中框出多尺度、多种长宽比的anchors,三种尺度 128,256,512 , 三种长宽比1:1,1:2,2:1,每个特征图中的像素点有9中框

举个例子:

3. Faster RCNN训练

3.1 Faster R-CNN的训练

Faster R-CNN的训练分为两部分,即两个网络的训练。

  • RPN训练
    • 目的:从众多的候选区域中提取出score较高的,并且经过regression调整的候选区域
  • Fast RCNN部分的训练
    • Fast R-CNN classification (over classes) :所有类别分类 N+1,得到候选区域的每个类别概率
    • Fast R-CNN regression (bbox regression):得到更好的位置

3.2 候选区域的训练

  • 训练样本anchor标记
    • 1.每个ground-truth box有着最高的IoU的anchor标记为正样本
    • 2.剩下的anchor/anchors与任何ground-truth box的IoU大于0.7记为正样本,IoU小于0.3,记为负样本
    • 3.剩下的样本全部忽略
    • 正负样本比例为1:3

  • 训练损失
    • RPN classification (anchor good / bad) ,二分类,是否有物体,是、否
    • RPN regression (anchor -> proposal) ,回归
    • 注:这里使用的损失函数和Fast R-CNN内的损失函数原理类似,同时最小化两种代价

候选区域的训练是为了让得出来的 正确的候选区域, 并且候选区域经过了回归微调。在这基础之上做Fast RCNN训练是得到特征向量做分类预测和回归预测。

4. 效果对比

R-CNNFast R-CNNFaster R-CNN
Test time/image50.0s2.0s0.2s
mAP(VOC2007)66.066.966.9

5. Faster R-CNN总结

  • 优点
    • 提出RPN网络
    • 端到端网络模型
  • 缺点
    • 训练参数过大

可以改进的需求:

  • RPN(Region Proposal Networks) 改进对于小目标选择利用多尺度特征信息进行RPN
  • 速度提升,如YOLO系列算法,删去了RPN,直接对proposal进行分类回归,极大的提升了网络的速度

6. 总结

  • Faster R-CNN的特点
  • RPN的原理

7. 问题

1、Faster RCNN改进之处?

2、如何得到RPN的 anchors?

8. 开源keras Faster RCNN 模型介绍

地址https://github.com/jinfagang/keras_frcnn

请参考开源Keras Faster RCNN 模型介绍

加油!

感谢!

努力!

目标检测算法详解yolo(youonlylookonce)

...单元格(gridcell)2.1网格输出筛选3.非最大抑制(NMS)4.训练5.与FasterR-CNN比较6.YOLO总结7.总结学习目标目标知道YOLO的网络结构知道单元格的意义知道YOLO的损失在正式介绍YOLO之前,我们来看一张图:可以看出YOLO的最大特点是速 查看详情

tensorflow2深度学习实战(十七):目标检测算法fasterr-cnn实战

前言:本专栏以理论与实战相结合的方式,左手看论文,右手敲代码,带你一步步吃透深度学习原理和源码,逐一攻克计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub仓库更新... 查看详情

tensorflow2深度学习实战(十七):目标检测算法fasterr-cnn实战

前言:本专栏以理论与实战相结合的方式,左手看论文,右手敲代码,带你一步步吃透深度学习原理和源码,逐一攻克计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub仓库更新... 查看详情

tensorflow2深度学习实战(十六):目标检测算法fasterr-cnn解析

本专栏以理论与实战相结合的方式,左手看论文,右手撸代码,带你一步步掌握深度学习原理和源码,玩转计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub... 查看详情

论文解读fasterr-cnn实时目标检测

前言FasterR-CNN的亮点是使用RPN来提取候选框;RPN全称是RegionProposalNetwork,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。RPN特点是耗时少。FasterR-CNN是“RCNN系列算法”的杰出产物,也是two-stage中经典的物体... 查看详情

自动驾驶感知算法实战4——目标检测网络详解(r-cnnfastr-cnnyolossd等)

...-CNN系列的开山之作小结2.1.2FastR-CNN:共享卷积运算小结2.1.3FasterR-CNN:两阶段模型的深度化小结2.2单阶段(1-stag 查看详情

tensorflow2深度学习实战(十六):目标检测算法fasterr-cnn解析

...#xff1a;https://github.com/Keyird/DeepLearning-TensorFlow2文章目录一、FasterR-CNN介绍二、算法流程三、网络结构1、Convlayers2、RegionProposalNetworks3、ROIPooling4、ClassiferandDetector四、损失函数五、网络训练一、FasterR-CNN介绍2015年,微软研究团队... 查看详情

自动驾驶感知算法实战4——目标检测网络详解(r-cnnfastr-cnnyolossd等)

...-CNN系列的开山之作小结2.1.2FastR-CNN:共享卷积运算小结2.1.3FasterR-CNN:两阶段模型的深度化小结2.2单阶段(1-stage)检测模型2.2.1YOLO小结 查看详情

目标检测算法改进-sppnet(详解)(代码片段)

目标检测算法之改进-SPPNet学习目标1.SPPNet1.1映射1.2spatialpyramidpooling2.SPPNet总结3.总结4.问题学习目标目标说明SPPNet的特点说明SPP层的作用【目标检测算法】R-CNN(详解)R-CNN的速度慢在哪?每个候选区域都进行了卷积操... 查看详情

论文解读fasterr-cnn实时目标检测

前言FasterR-CNN的亮点是使用RPN来提取候选框;RPN全称是RegionProposalNetwork,也可理解为区域生成网络,或区域候选网络;它是用来提取候选框的。RPN特点是耗时少。FasterR-CNN是“RCNN系列算法”的杰出产物,也是two... 查看详情

目标检测fasterr-cnn浅析(代码片段)

简介FasterR-CNN是RossB.Girshick在2016年提出的两阶段目标检测算法。FasterR-CNN将特征提取(featureextraction),感兴趣区域提取regionproposalnetwork,和最终的boundingboxregression和classification都整合在一个网络中,使得网络的... 查看详情

目标检测算法总结(代码片段)

...RCNN开始介绍基于候选区域的目标检测器,包括FastR-CNN、FasterR-CNN和FPN等。第二部分则重点讨论了包括YOLO、SSD和Re 查看详情

fasterr-cnn:使用rpn实时目标检测

参考技术A论文:FasterR-CNN:TowardsReal-TimeObjectDetectionwithRegionProposalNetworks目标检测网络大多依靠区域生成(regionproposal)算法来假设目标的位置。R-CNN是采用SelectiveSearch算法来提取(propose)可能的RoIs(regionsofinterest)区域,然后对每个提... 查看详情

转:目标检测算法总结(代码片段)

...RCNN开始介绍基于候选区域的目标检测器,包括FastR-CNN、FasterR-CNN和FPN等。第二部分则重点讨论了包括YOLO、SSD和RetinaNet等在内的单次检测器,它们都是目前最为优秀的方法。一、基于候选区域的目标检测器1.1&nb 查看详情

目标检测算法r-cnn(详解)(代码片段)

目标检测算法之R-CNN学习目标1.目标检测-Overfeat模型1.1滑动窗口1.2Overfeat模型总结2.目标检测-R-CNN模型2.1完整R-CNN结构2.2候选区域(RegionofInterest)得出2.3CNN网络提取特征2.4特征向量训练分类器SVM2.5非最大抑制(NMS)2.... 查看详情

使用nwpuvhr-10数据集训练fasterr-cnn模型(代码片段)

...下载链接二、基础环境配置三、训练及测试过程  使用FasterR-CNN算法在NWPUVHR-10数据集上实现目标检测。  使用FasterR-CNN算法在VOC2007数据集上实现目标检测的详细步骤→Windows10+Faster-RCNN-TensorFlow-Python3-master+VOC2007数据集。... 查看详情

matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)

本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情

matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)

本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情