Faster R-CNN

fasterrcnn深度学习口罩检测

放肆的年华 提交于 2020-08-17 18:25:54
fasterrcnn深度学习口罩检测 前言 FasterRCNN原理详解 训练我们自己的FasterRCNN 使用labelimg制作我们自己的VOC数据集 FasterRCNN训练详解 源码地址与小结 前言 前两周完成了resnet50垃圾分类,但总觉得太过于基础,不能让人眼前一亮,另外由于我自己也是深度学习的爱好者,所以我应该提高一点难度,于是决定做一次目标检测,大概一个月前学习了RCNN,FastRCNN,FasterRCNN的理论。我个人认为FasterRCNN确实是划时代的深度学习模型,在此向何凯明大神表示最大的尊敬。 最初我想做车辆行人与路标的检测,因为在树莓派上实现自动驾驶是我的一个小愿望,但实际实施过程中,本人真的崩溃了很多次,我实在没找到免费的车辆行人路标的voc数据集,自己标注数据集真的心累,所以从闲鱼10元买了口罩数据集,后续的自动驾驶数据集标注训练好后我会补充一篇新的博客,目前就实现一个口罩检测吧。 目前很多博客都没详细讲解fasterRCNN,或者就是让初学者很难懂,因此本文从头到尾全面理解一次,细致到训练中的损失函数计算,文章末尾会附上源码地址 先预览一下检测结果: FasterRCNN原理详解 这是一篇完整的包括原理与实践的博客,请先阅读原理部分,对后续步骤将有更清晰的认识 目前,看到以下是fasterRCNN的结构图,下面进行详细的过程梳理:

MyDLNote-Detection: DETR : End-to-End Object Detection with Transformers

喜你入骨 提交于 2020-08-14 08:52:20
End-to-End Object Detection with Transformers [paper] https://arxiv.org/pdf/2005.12872.pdf [github] https://github.com/facebookresearch/detr Abstract We present a new method that views object detection as a direct set prediction problem. 本文做了啥:提出了一种将目标检测看作直接集预测问题的新方法。 Our approach streamlines the detection pipeline, effectively removing the need for many hand-designed components like a non-maximum suppression procedure or anchor generation that explicitly encode our prior knowledge about the task. 本文工作的亮点:简化了检测流程,有效地消除了许多手工设计的组件的需求,比如一个非最大抑制程序或锚的生成,显式地编码了关于任务的先验知识。 The main ingredients of the

深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现

China☆狼群 提交于 2020-08-11 17:50:49
from: 深度学习中IU、IoU(Intersection over Union)的概念理解以及python程序实现 IoU(Intersection over Union) Intersection over Union是一种测量在特定数据集中检测相应物体准确度的一个标准。我们可以在很多物体检测挑战中,例如PASCAL VOC challenge中看多很多使用该标准的做法。 通常我们在 HOG + Linear SVM object detectors 和 Convolutional Neural Network detectors (R-CNN, Faster R-CNN, YOLO, etc.)中使用该方法检测其性能。注意,这个测量方法和你在任务中使用的物体检测算法没有关系。 IoU是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxex)的任务都可以用IoU来进行测量。为了可以使IoU用于测量任意大小形状的物体检测,我们需要: 1、 ground-truth bounding boxes(人为在训练集图像中标出要检测物体的大概范围); 2、我们的算法得出的结果范围。 也就是说,这个标准用于测量真实和预测之间的相关度,相关度越高,该值越高。 如下图: 下图展示了ground-truth和predicted的结果,绿色标线是人为标记的正确结果

目标检测算法-YOLO算法纵向对比理解

余生长醉 提交于 2020-08-11 14:23:42
目标检测算法-YOLO算法纵向对比理解 DeepLearning的目标检测任务主要有两大类:一段式,两段式 其中两段式主要包括RCNN、FastRCNN、FasterRCNN为代表, 一段式主要包括YOLO,SSD等算法 由于一段式直接在最后进行分类(判断所属类别)和回归(标记物体的位置框框),所以现在一段式大有发展。 YOLO v1 论文地址: You Only Look Once: Unified, Real-Time Object Detection YOLOv1是one-stage detector鼻祖、real-time detector鼻祖。 所谓one-stage,即不需额外一个stage来生成RP,而是直接分类回归出output: YOLOv1直接将整张图片分成 S×S的小格子区域,每个小格子区域生成 B个bbox(论文中B=2),每个bbox用来预测中心点落在该格的物体。但是每个格子生成的所有B个bbox共享一个分类score YOLOv1最后一层的输出是一个S×S×(B∗5+C) 的tensor 其中,S为每维的格子段数,B为每格生成的bbox数,C为前景类别数。 YOLO v1包括24个conv layer + 2 fc layer YOLOv1采用了山寨版的GoogleNet作为backbone,而不是VGG Net; 在第24层时

In Defense of Grid Features for Visual Question Answering论文笔记

会有一股神秘感。 提交于 2020-08-10 18:24:46
Abstract 作为“自底向上”关注[2],基于边界框(或区域)的视觉特征最近已经超过了普通的基于网格的卷积特征,成为视觉和语言任务(如视觉问题回答(VQA))的事实标准。然而,还不清楚地区的区域(例如更好的定位)是否是自下而上注意力成功的关键原因。在这篇文章中,我们重新审视了VQA的网格特性,发现它们可以非常好地工作——以同样的精度运行速度快一个数量级以上(例如,如果以类似的方式预先训练)。通过大量的实验,我们验证了这一观察结果在不同的VQA模型(报告了vqa2.0测试标准72.71的最新精度)、数据集上都是正确的,并很好地推广到其他任务,如图像字幕。由于网格特性使模型设计和训练过程变得更加简单,这使我们能够对其进行端到端的培训,并且还可以使用更灵活的网络设计。我们学习了端到端的VQA模型,从像素直接到答案,并证明了在预训练中不使用任何区域注释就可以获得很好的性能。我们希望我们的发现有助于进一步提高对VQA的科学理解和实际应用。代码和功能将可用。 1. Introduction 目前主流的视觉特征是“bottom-up”特征,作者提出问题是什么导致“bottom-up”特征比传统的网格特征更好的,一种最可能的说法是更好地定位单个对象,因为区域是检测器直接输出的边界框。另一种答案说许多区域可以很容易地捕获图像中的粗级别信息和细粒度细节,即使区域间存在重叠。 但是作者的实验发现

深度学习笔记(十六)Faster RCNN + FPN (PyTorch)

风格不统一 提交于 2020-08-10 07:47:58
之前虽然也了解一丢丢的 Faster RCNN,但却一直没用过,因此一直都是一知半解状态。这里结合书中描述和 PyTorch 官方代码来好好瞅瞅。 论文: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Feature Pyramid Networks for Object Detection 一. 总览 Faster RCNN 从功能模块来看,可大致分为 特征提取 , RPN , RoI Pooling , RCNN 四个模块,这里代码上选择了 ResNet50 + FPN 作为主干网络: model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=False) 1.1 特征提取 这里不用多说,就是选个合适的 Backbone 罢了,不过为了提升特征的判决性,一般会采用 FPN 的结构(自下而上、自上而下、横向连接、卷积融合)。 1.2 RPN 这部分其实可以看成 One-Stage 检测器的检测输出部分。实际上对于只检测一类目标来说,可以直接拿去用了。RPN 在 Faster RCNN 中的作用是,结合先验的 Anchor,将背景和前景区分开来(二分类),这样的话大量的先验 Anchor

飞桨工程师亲授调参技巧,可使 MobileNetv3-YOLOv3 模型压缩 70%,推理速度提升 1 倍

寵の児 提交于 2020-08-07 10:59:44
随着端侧算力日益增长,以及模型小型化方案日趋成熟,使得高精度的深度学习模型在移动端、嵌入式等终端设备上流畅运行成为可能。然而将深度学习融合到终端设备上依旧面临平衡复杂神经网络结构的精度和设备性能约束的挑战,往往需要模型开发者在深入理解模型结构的基础上,各种调参并进行细致全面的优化才能达到理想的效果。 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu ​近期 Paddle Detection推出了一系列针对端侧设备的紧致高效模型,覆盖单阶段及两阶段等主流网络结构,在速度、精度上均取得了不错的表现。这里将模型迭代过程中的设计思路及用到的技巧做一个总结,供感兴趣的同学参考。 为方便大家快速练手,这里提供了一个基于MobileNetv3-YOLOv3的模型优化项目,使用了剪裁、蒸馏的优化策略,所有代码均可以在AI Studio跑通,大家也可以通过AI Studio在线调试。 https:// aistudio.baidu.com/aist udio/projectdetail

RCNN极其细致初学者阅读笔记

。_饼干妹妹 提交于 2020-08-06 06:48:43
版权声明:本文由 Kathy 投稿 1、 Introduction 1.1 R-CNN and SPPnet R-CNN的弊端: 多阶段(3)的训练过程 训练的时间和空间开销大 速度过慢 R-CNN的问题症结在于其不能共享计算,而SPPnet改进了这个问题,通过对整张图卷积得到特征图,从这张特征图上进行region proposal而能够共享卷积的计算结果,加速了 R-CNN;后通过空间金字塔池化实现了任意尺度图像的输入。 SPPnet的问题在于:训练仍是多阶段的;特征提取后仍需存放到磁盘造成大的开销;不像R-CNN,其微调算法不能更新金字塔池化之前的卷积层,从而限制了网络的深度。 1.2 contribution 提出Fast R-CNN,其优点为: 更高的检测精度mAP 训练时单阶段的 训练过程可以更新所有层网络参数 无需为特征图缓存消耗内存 2、 Fast R-CNN architecture and training 网络结构为: 输入整张图片,通过卷积池化提取特征图 在特征图上提取RoI (region of interest),相当于region proposal 阶段。 RoI Pooling输出固定尺寸的RoI特征图(尺度降为1的简易版SPP) FCs映射得到固定维度的特征向量 对特征向量分别进行分类(获得K+1维结果,类别+背景)和回归(获得K4维结果

【CV中的Attention机制】易于集成的Convolutional Block Attention Module(CBAM模块)

こ雲淡風輕ζ 提交于 2020-05-08 10:21:03
前言: 这是CV中的Attention机制专栏的第一篇博客,并没有挑选实现起来最简单的SENet作为例子,而是使用了CBAM作为第一个讲解的模块,这是由于其使用的广泛性以及易于集成。目前cv领域借鉴了nlp领域的attention机制以后生产出了很多有用的基于attention机制的论文,attention机制也是在2019年论文中非常火。这篇cbam虽然是在2018年提出的,但是其影响力比较深远,在很多领域都用到了该模块,所以一起来看一下这个模块有什么独到之处,并学着实现它。 1. 什么是注意力机制? 注意力机制(Attention Mechanism)是机器学习中的一种数据处理方法,广泛应用在自然语言处理、图像识别及语音识别等各种不同类型的机器学习任务中。 通俗来讲:注意力机制就是希望网络能够自动学出来图片或者文字序列中的需要注意的地方。比如人眼在看一幅画的时候,不会将注意力平等地分配给画中的所有像素,而是将更多注意力分配给人们关注的地方。 从实现的角度来讲:注意力机制通过神经网络的操作生成一个掩码mask, mask上的值一个打分,评价当前需要关注的点的评分。 注意力机制可以分为: 通道注意力机制:对通道生成掩码mask,进行打分,代表是senet, Channel Attention Module 空间注意力机制:对空间进行掩码的生成,进行打分,代表是Spatial

小刘的深度学习---Faster RCNN

北慕城南 提交于 2020-05-08 02:54:34
前言: 对于目标检测Faster RCNN有着广泛的应用,其性能更是远超传统的方法。 正文: R-CNN(第一个成功在目标检测上应用的深度学习的算法) 从名字上可以看出R-CNN是 Faster RCNN 的基础。正是通过不断的改进才有了后面的Fast RCNN 和 Faster RCNN。 R-CNN的流程可以分为4个步骤: 用SS(Sekective Search) 找候选区域 >>> CNN提取特征 >>> 用提取的特征训练SVM中做物体识别 >>> 用提取的特征训练回归器提议区域 Sekective Search(选择性搜索)是一种基于区域的目标检测方法。先将图像划分成很多尺寸不同的区域(满足目标多尺寸要求),再将这些区域的层次聚类。其中的相似度计算包含4个方面:颜色,纹理,尺寸和空间交叠 颜色相似度是转HSV,每个通道以bins=25计算直方图,再除以区域尺寸做归一化 纹理相似度采用方差为1的高斯分布在8个方向上做梯度统计,以bins=10计算直方图 尺寸相似度 空间交叠相似度 最终的相似度 点击查看 CNN 部分 点击查看 SVM 部分 以上是R-CNN的基本流程,但是由于一张图可能会生成大约2千个候选区域,导致它运行的非常的慢。 Fast R-CNN(R-CNN的续作) 考虑到R-CNN中候选区域会有许多重叠部分,这里会先抽取特征再用SS选区域