目标检测(一)之 R-CNN

目标检测 (Object Detection) 算法汇集 基于深度学习的目标检测综述(一)(2018年03月16日) 图像分类,检测及分割是计算机视觉领域的三大任务。图像分类模型(详情见这里)是将图像划分为单个类别,通常对应于图像中最突出的物体。但是现实世界的很多图片通常包含不只一个物体,此时如果使用图像分类模型为图像分配一个单一标签其实是非常粗糙的,并不准确。对于这样的情况,就需要目标检测模型,目标检测模型可以识别一张图片的多个物体,并可以定位出不同... 阅读详情

一、论文相关信息

  1.论文题目

    Rich feature hierarchies for accurate object detection and semantic segmentation

  2.论文时间

    2013年

  2.论文文献

     https://arxiv.org/abs/1311.2524

  3.论文源码

     暂无

二、论文背景及简介

  在过去几年,目标检测常用的算法是机器学习的SIFT以及HOG,其使用机器学习方法融合多种低维图像特征和高维上下文环境的复杂融合系统的方法,结果准确率不高,且运行慢。同时,近几年,深度学习异军突起。RCNN作者便想使用卷积网络提取图像特征,用于目标检测。最终R-CNN在pascal VOC 2012数据集上取得了mAP 53.3%的成绩。


三、知识储备

   1、selective search

     selective search 是一种从一张图片中选择region proposal的方法。在之前的机器学习算法中,大多采用回归或者slide window的方法进行候选框的选择,十分耗时,该篇论文使用selective search 大大节省了时间。
     selective search 根据图片的颜色直方图等大量的信息来对图片进行提取,其大体步骤如下:

  • step1:计算区域集R里每个相邻区域的相似度S={s1,s2,…}
  • step2:找出相似度最高的两个区域,将其合并为新集,添加进R
  • step3:从S中移除所有与step2中有关的子集
  • step4:计算新集与所有子集的相似度
  • step5:跳至step2,直至S为空

     可以看selective search的论文进行更深一步了解

   2、IOU

     IOU是计算矩形框A、B的重合度的公式:IOU=(A∩B)/(A∪B),重合度越大,说明二者越相近。
在这里插入图片描述

   3、mAP(mean Average Precision)

    所有类AP(Average Precision)值的平均值

   4、非极大值抑制(NMS)

     当在图像中预测多个bbox时,由于预测的结果间可能存在高冗余(即同一个目标可能被预测多个矩形框),因此可以过滤掉一些彼此间高重合度的结果
     具体操作就是根据各个bbox的score降序排序,剔除与高score bbox有较高重合度的低score bbox,那么重合度的度量指标就是IoU;

   5、Bounding-box regression

     经过NMS获得的候选框往往与ground-truth box有一定的差距,因此,我们需要通过Bounding-box regression来对得到的候选框进行一定程度的修正。
     可以设region proposal 为 P = (Px,Py,Pw,Ph) , 设 ground-truth box 为 G = (Gx,Gy,Gw,Gh)
在这里插入图片描述
在这里插入图片描述

四、test阶段

在这里插入图片描述

假设该模型为N分类结果,一些细节将会在下文进行介绍

  • 输入一张图片
  • 候选框提取:使用selective search方法,获取该图片的候选框(region proposal),一般有2000多个,这里假设为2000
  • 特征提取:将得到的候选区域,resize后,送入卷积网络,在最后得到特征图(feature map)
  • 分类:根据feature map使用线性SVM(每一个分类有一个SVM分类器),对得到的候选框进行打分 ,得到打分的矩阵(2000 * 20)
  • 候选框选择:使用非极大值抑制(NMS),去除重复率高的一些候选框
  • 回归:对最后的候选框进行回归修正(Bounding-box regression),得到最后的Bounding box(b-box) 以及分类结果

五、train阶段

根据test阶段,我们可以知道在训练阶段,主要有三个任务,1、卷积网络的确定以及fine tuning   2、SVM的训练    3、Bounding-box regression的训练
下文将会对其原因以及细节进行讲解

  1、卷积网络的确定以及fine tuning

     检测问题中由于带标签的样本数据量比较少,难以进行大规模训练,因此在RCNN中,卷积网络使用在imageNet数据集上预训练好的AlexNet。当应用到自己的数据集上时,要进行适当的fine tuning。
    在fine tuning 过程中,作者将region proposal与ground-truth box 的IOU大于0.5的设为正例(positive),剩下的作为反例(negative)。取代AlexNet的1000 way分类器,增加全连接层N+1 way(还有背景这个标签) 进行分类。一个batch有128个样本,其中32个正例,96个反例,因为IOU大于0.5的太少了。设置learning rate = 0.001 使用SGD 进行fine tuning

  2、SVM的训练

     在得到卷积网络后,下一步应该就要训练好分类器。在这里,作者使用了SVM对每一个分类进行二分类,而没有用softmax,具体细节可看下文细节说明。因此,N分类任务,就要训练N个SVM。
     需要注意的是,在训练SVM时,其训练样本采用了不同的标注方式,在这里,作者只将ground-truth box作为positive , 将IOU 小于 0.3 的设为negative,0.3是作者调参调出来的。梯度下降来对SVM进行训练即可。

  3、Bounding-box regression的训练

需要为每一个类别都训练一个regression
Bounding-box regression的完整训练过程将在本文的细节部分进行介绍

     经过NMS获得的候选框往往与ground-truth box有一定的差距,因此,在论文中便使用Bounding-box regression的方式来对得到的候选框进行修正。
     将NMS 获得的每个类别的region proposal(x、y、w、h),pool5输出的特征图(6 * 6 * 256维)作为输入,根据ground-truth box进行回归的训练。

六、实验结果

在这里插入图片描述
在这里插入图片描述

七、论文细节

  1、为什么SVM训练与fine tuning的样本采样方式不同?

     其实,作者实现进行的SVM训练,之后再想到的fine tuning。由于SVM有较少的样本依旧训练的很好,所有作者给了SVM比较严格的样本点,数量少,但仍然可以训练的比较好。但是在卷积网络上,样本点太少,很难训练,所有作者利用了IOU 0.5~1之间的样本及进行fine turing

  2、在Bounding-box regression 为何使用pool5输出的特征图?

    在论文中,作者对AlexNet的pool5、fc6、fc7得到的特征图进行了可视化的分析,作者发现,pool5的feature map与类别更加无关,所以可以把pool5之前的部分充当特征提取器,而fc6 fc7 更适用于根据特征图进行分类,如果想要深入了解,请看论文。

  3、在得到region proposal后,送入卷积网络时要进行缩放,缩放方式是怎样的?

    在附录A中讨论了很多的预处理方法,

在这里插入图片描述
    A. 原图
    B. 等比例缩放,空缺部分用原图填充
    C. 等比例缩放,空缺部分填充bounding box均值
    D. 不等比例缩放到224x224

    实验结果表明B的效果最好,但实际上还有很多的预处理方法可以用,比如空缺部分用区域重复。


八、论文不足

    由于R-CNN流程众多,包括region proposal的选取,训练卷积神经网络,训练SVM和训练 regression,而且,对得到的每一个region proposal都要进行卷积,使得其训练时间很长(84小时),而且中间结果都要保存,占用磁盘大,而且测试一张图片的时间也较长(13s/image on a GPU or 53s/image on a CPU)。

OKCC呼叫中心部署实战指南:从零搭建高效外呼系统 本文提供OKCC呼叫中心系统的完整部署实战指南,从服务器选型、操作系统准备到详细安装步骤和性能优化,帮助企业从零搭建高效外呼系统。重点介绍FreeSWITCH核心组件的安装配置技巧,以及常见问题排查方法,助力企业提升客户服务效率。 阅读详情

相关推荐

uniapp 使用摄像头 live-pusher (APP)

uniapp 中开发 app 时使用live-pusher踩过的坑

随身笔记 1万+

小样本训练方法

介绍留出法、交叉验证法、自助法等训练模型和评估模型的常用方法。内容包括定义、例子和存在的弊端。

weixin_43797015的博客 4287

告别编译报错!STC32G12K128在Keil C251下的完整Target配置指南(附ROM设置详解)

本文详细介绍了STC32G12K128在Keil C251下的完整Target配置指南,包括ROM设置、CPU模式选择、内存模型优化等关键步骤。通过实战技巧和常见错误解决方案,帮助开发者高效搭建编译环境,避免常见报错,充分发挥STC32G系列芯片的性能优势。

weixin_29186249的博客 339

Mask rcnn调参

1.学习率 我是设的0.001 2.训练轮数 如果是之前训好的模型,那么20/40,训到loss降到0.6左右应该比较合适 3.MIN_DIM,短边的长度,我这里是用的原图训,就960了,长边1280,要求能整除64 4.TRAIN_ROIS_PER_IMAGES。这个比较关键,训练和测试不一样。这个值是指提取的ROI的数量,也就是候选框的数量,最好先大概看一下一张图上有多少个目标,然后x3。如果训练用了crop,则训练和测试这个参数要做对应调整 5.IMAGE_RESIZE_MODE,一般用默认的“squ

lt1103725556的博客 3628

别再瞎试了!手把手教你用DC NXT的compile_ultra命令搞定物理综合(附完整脚本)

本文详细介绍了如何使用DC NXT的compile_ultra命令进行物理综合,包括环境配置、设计库创建、RTL加载、物理约束加载等关键步骤。通过实战示例和完整脚本,帮助工程师快速掌握TOPO模式下的物理综合流程,提升设计效率。

weixin_30413765的博客 295

opencv实现“找茬”

// 111.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include using namespace std; #define CVX_RED CV_RGB(0xff,0x00,0x00) #define CVX_BLUE CV_RGB(0x00,0x00,0xff)//定义宏,轮廓边框颜色 in

yanHa007的专栏 2095

目标检测:Faster rcnn 安装、训练、测试

说明:这个是Faster RCNN刚出来时候的博文记录,最新的可能会有更变,如有问题,请大家查阅官网链接。 先上个检测效果: (1)图片人脸检测+关键点 (2)摄像头实时人脸+关键点 **********************************************************...

微风❤水墨 1万+

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

# 执行 DISM 命令时出错 87 未在此上下文中识别出 restorehealth 选项。解决方法

段子手168的博客 1万+

R-CNN

2014年加州大学伯克利分校的Ross B. Girshick提出R-CNN算法,其在效果上超越同期的Yann Lecun提出的端到端方法OverFeat算法,其算法结构也成为后续two stage的经典结构。    R-CNN算法利用选择性搜索(Selective Search)算法评测相邻图像子块的特征相似度,通过对合并后的相似图像区域打分,选择出感兴趣区域的候选框作为样本输入到卷积神经网络结...

yzy的博客 339

电赛经验分享——赛前准备

⏩ 大家好哇!我是小光,想要成为系统架构师的嵌入式爱好者。⏩在之前的电赛中取得了省一的成绩,本文对电赛比赛前需要准备什么做一个经验分享。加入小光嵌入式交流群(qq群号:737327353)免费获取博主所有资料哦!

qq_52608074的博客 7779

Python电商网站全站爬虫实战:以京东为例的数据采集与分析

随着电子商务的蓬勃发展,电商数据已成为市场研究、竞争分析和消费者行为研究的重要资源。本文详细介绍了如何使用Python最新技术栈构建一个高效的电商网站全站爬虫,以京东为例实现商品数据的自动化采集。文章涵盖了爬虫的法律与伦理考量、技术选型、反爬虫策略应对、分布式架构设计以及数据存储方案,并提供了完整的代码实现。本爬虫系统采用Scrapy-Redis分布式框架、Selenium动态渲染、智能代理轮换和机器学习验证码识别等先进技术,能够稳定高效地抓取京东全站商品数据,为电子商务研究提供数据支持。关键词。

2201_76125261的博客 415

调参经验

1. 假设一次训练有10个epoch,可能会出现以下情况:训练好一次模型去测试,测试的准确率为0.92。又去训练一次模型(不是在之前训练模型的基础上,而是单独进行一次训练),模型训练好去测试,测试准确率为0.93或者0.89。如果我改变一个模型的参数,比如调小dropout的值,可能训练出来的模型去测试准确率为0.94,这不能就得出调小dropout就能很明显提升模型的效果。因为单独训练一次模型,...

weixin_34184158的博客 779

TIA protal与SCL从入门到精通(1)——SCL编程入门

SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进...

苦走一口田 7万+

人工智能目标检测模型总结(一)——R-CNN、Fast R-CNN、Faster R-CNN

目标检测是人工智能的一个重要应用,就是在图片中要将里面的物体识别出来,并标出物体的位置,一般需要经过两个步骤: 1、分类,识别物体是什么 2、定位,找出物体在哪里 image 除了对单个物体进行检测,还要能支持对多个物体进行检测,如下图所示: image 这个问题并不是那么容易解决,由于物体的尺寸变化范围很大、摆放角度多变、姿态不定,而且物体有很多种类别,可以在图片中出现多种物体、出现在任意位置。因此,目标检测是一个比较复杂的问题。 最直接的方法便是...

YBAdiam的博客 3074

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

智能计算系统笔记——第三章深度学习(3.3基于卷积神经网络的图像目标检测算法)

学习《智能计算系统》课程第三章深度学习的笔记。

夏风喃喃的博客 3273

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【目标检测经典算法】R-CNN、Fast R-CNN和Faster R-CNN详解系列一:R-CNN图文详解

是一种常用于目标检测的候选区域生成方法。在传统的目标检测算法中,需要对图像中的每个可能包含目标的区域进行检测,但这样做会导致计算量巨大,尤其是在图像具有大量区域时。Selective Search的目标是通过一种高效的方式生成一组可能包含目标的区域,以减少后续目标检测算法的计算复杂度。Selective Search算法的核心思想是通过结合不同的图像特征(如颜色、纹理、大小等)来生成候选区域。具体来说,

CV在读 1900

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

目标检测——R-CNN(一)

简介 R-CNN的全称是Region-CNN,它可以说是是第一个成功将深度学习应用到目标检测上的算法。它是2014年发布的一篇论文,题目是 《Rich feature hierarchies for accurate oject detection and semantic segmentation》,通俗地来讲就是一个用来做目标检测和语义分割的神经网络。 原论文地址:https://arxiv....

散修炼丹师手记 1231

目标检测(一)——R-CNN

简介 R-CNN作为经典目标检测算法,由Ross Girshick在CVPR 2014提出,获得了当时VOC2007,VOC2010等目标检测任务最优的成绩。 原理 完整R-CNN结构 不使用滑动窗口方法(候选框多,费时间)。 而是使用候选区域方法(region proposal method),创建目标检测的区域改变了图像领域实现物体检测的模型思路,R-CNN是以深度神经网络为基础的物体检测的模型 ,R-CNN在当时以优异的性能令世人瞩目,以R-CNN为基点,后续的SPPNet、Fast R-CNN、F

hhhcbw的博客,欢迎各位来访 1326

目标检测CNN经典网络(一)R-CNN

在早期计算机视觉研究时,人们很好的将CNN应用在目标分类的问题中,但是一直不能很好的解决目标检测的问题,目标检测不仅要分析出其是什么东西,而且还要回归出其位置。这是其在CNN训练的痛点。为此出现了R-CNN网络。

CloudCver 1709

目标检测模型(一):R-CNN

文章目录一、R-CNN二、生成候选区域三、特征提取四、区域分类 R-CNN目标检测模型被称为将卷积神经网络引入目标检测的开山之作,尽管现在看来其性能早已达不到应用的标准,但是它的一些设计思想至今仍具有学习的意义。 一、R-CNN   R-CNN,全称Region CNN,即区域卷积神经网络。其进行目标检测的主要思想就是生成可能存在目标的候选区域region proposal,然后通过CNN、分类器等手段判断区域中是否存在检测目标,并进行分类。最后再对识别出目标的区域范围进行精细的调整即可。   R-CN

qq_43116030的博客 2906

【目标检测算法系列】一、R-CNN算法

R-CNN 是第一个成功将深度学习应用到目标检测上的算法,也是后续Fast R-CNN , Faster R-CNN等系列算法的鼻祖 一、R-CNN整体架构 R-CNN的全貌如下图所示 它主要分为4个模块 候选区域(region proposal)提取 一个大型的CNN网络用来特征提取 使用SVM分类模型进行类别分类 使用回归(Regression)模型进行具体定位 具体R...

u010057965的专栏 2252

目标检测算法(一)——R-CNN

一)简介   RCNN的全称是Region-CNN,是第一个成功将深度学习应用在目标检测上的算法,作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖。后续的Fast R-CNN、Faster R-CNN都是建立在RCNN上的。 二)R-CNN介绍   R-CNN遵循传统目标检测的思路,同样采取提取框、对每个框提取特征、图像分类、非极大值...

封狼居胥 1341

目标检测(一):R-CNN系列

目标检测:R-CNN系列,包括 R-CNN、Fast R-CNN、Faster R-CNN 的算法流程、损失函数和优势不足

Aiolei的博客 1013

目标检测(一)——R-CNN

目标检测=目标识别+定位,常见的算法有:R-CNN,Fast R-CNN,Faster R-CNN,YOLO,R-FCN 等,RCNN(Regions with CNN features)是将CNN方法应用到目标检测问题上的一个里程碑,本文我们先介绍R-CNN。 分类与检测的区别 物体检测和图片分类的区别: 1.图片分类不需要定位,而物体检测需要定位出物体的位置,也就是相当于把物体的bbox...

weixin_41940752的博客 428

目标检测算法(一):R-CNN,Fast R-CNN,Faster R-CNN

对R-CNN,Fast R-CNN,Faster R-CNN进行了简单介绍

caiji00001的博客 469

(一)目标检测-R-CNN模型

目标检测-R-CNN模型 在CVPR 2014年中Ross Girshick提出R-CNN。 1.1 完整R-CNN结构 不使用暴力方法,而是用候选区域方法(region proposal method),创建目标检测的区域改变了图像领域实现物体检测的模型思路,R-CNN是以深度神经网络为基础的物体检测的模型 ,R-CNN在当时以优异的性能令世人瞩目,以R-CNN为基点,后续的SPPNet、Fast R-CNN、Faster R-CNN模型都是照着这个物体检测思路。 步骤(以AlexNet网络.

MIge_的博客 2215
上一篇: 目标检测之目录
下一篇: 目标检测(二)之Fast R-CNN
Bai丁
博客等级 码龄9年 97粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值