热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

FasterRCNN原理及Pytorch代码解读——FasterRCNN总览

这篇博客记录我在学习《深度学习之PyTorch物体检测实战》一书中关于FasterRCNN这一算法的理解,以及pytorch代码的解读。pytorch复现代码链接:https:gi

这篇博客记录我在学习《深度学习之PyTorch物体检测实战》一书中关于Faster RCNN这一算法的理解,以及pytorch代码的解读。
pytorch复现代码链接:https://github.com/dongdonghy/Detection-PyTorch-Notebook/tree/master/chapter4/faster-rcnn-pytorch
当然pytorch官方已经在torchvision 模块集成了 FasterRCNN代码。如果对官方源码感兴趣的话,这里有一篇文章介绍的很不错:捋一捋pytorch官方FasterRCNN代码

Faster RCNN总览

纵观整个网络,其结构如下论文所描述的图,可以分为四个部分:特征提取网络模块、 RPN模块、 RoI(Region of Interest)Pooling 模块与区域分类模块。Faster RCNN延续了RCNN系列的思想, 即先进行感兴趣区域RoI的生成, 然后再把生成的区域分类, 最后完成物体的检测, 这里的RoI使用的即是RPN模块, 区域分类则是RCNN网络。
Faster RCNN原理及Pytorch代码解读——Faster RCNN总览

  1. 特征提取网络:Faster RCNN使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。以VGGNet为例, 假设输入图像的维度为3×600×800, 由于VGGNet包含4个Pooling层(物体检测使用VGGNet时, 通常不使用第5个Pooling层) , 下采样率为16, 因此输出的feature map的维度为512×37×50。
  2. RPN模块:这一模块用于生成region proposals,作用是生成较好的建议框, 即Proposal, 这里用到了强先验的Anchor,其可以分为五个子模块:Anchor生成、RPN卷积网络、计算RPN loss、生成Proposal、筛选Proposal得到RoI,后面会详细介绍这5个子模块。
  3. Roi Pooling:该层收集输入的feature maps和proposals,输出送到RCNN网络中。 由于RCNN模块使用了全连
    接网络, 要求特征的维度固定, 而每一个RoI对应的特征大小各不相同, 无法送入到全连接网络, 因此RoI Pooling将RoI的特征池化到固定的维度, 方便送到全连接网络中。
    4.区域分类模块:将RoI Pooling得到的特征送入全连接网络, 预测每一个RoI的分类, 并预测偏移量以精修边框位置, 并计算损失, 完成整个Faster RCNN过程。整个模块可以分为三个部分:RCNN全连接网络部分、计算RCNN的真值,计算RCNN loss。

整个Faster RCNN的流程图如下图所示,虚线表示仅仅在训练时有的步骤。
Faster RCNN原理及Pytorch代码解读——Faster RCNN总览
从上面的过程中,我们可以看出为什么Faster RCNN是一个两阶的算法, 因为整个过程中RPN与RCNN, 这两步都需要计算损失, 只不过前者还要为后者提供较好的感兴趣区域。


推荐阅读
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 文章目录题目:二叉搜索树中的两个节点被错误地交换。基本思想1:中序遍历题目:二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下 ... [详细]
  • Python15行代码实现免费发送手机短信,推送消息「建议收藏」
    Python15行代码实现免费发 ... [详细]
author-avatar
尚伦旺
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有