【RCNN系列】RCNN论文总结

news2024/12/24 8:44:47

目标检测论文总结

【RCNN系列】
RCNN


RCNN

  • 目标检测论文总结
  • 前言
  • 一、Pipeline
  • 二、模型设计
    • 1.warp
    • 2.SVM
    • 3.阈值设定
    • 4.box回归
  • 三、思考
  • 四、缺点


前言

一些经典论文的总结。


一、Pipeline

在这里插入图片描述
首先传入Input image,利用Selective Search(比较古老)算法取搜索图片中可能有物体的区域,并保存到本地磁盘。然后把这些得到的proposals(大约2000个)传入CNN也就是卷积网络抽取特征(只抽取特征不进行分类预测),最后再接一个SVM来进行预测分类(20类物体+1类背景)。

二、模型设计

1.warp

获取region proposals时,作者再每个原始的proposal上增加了16个像素。比如,红框是SS(selective search)算的得到的proposal,作者在周围多提取16个像素,也就是最终得到的是黄框。这样可以获取更多的边缘信息,防止某些特征被截断。
在这里插入图片描述

获取region proposals后,因为用的是AlexNet有全连接层,需要统一成227*227大小才能输入进CNN。在Reshape时,作者尝试了很多方法。
在这里插入图片描述
A列表示proposal,B列表示根据proposal在原图上直接进行缩放,也就是截取原图上227*227大小,C列表示等比缩放,也就是把长缩放到227,宽缩放相同的倍数(如果此时宽没有达到227就用像素平均值进行padding),D表示不等比缩放,也就是长宽各自缩放成227大小。每张图都有两行,第一行表示不进行每个原始的proposal增加16个像素,第二行表示增加16个像素。最终作者采用D不等比缩放,D的效果最好。

2.SVM

作者并没有把21个SVM分类器分开设计,而是写成矩阵运算的形式。
(x1,x2,...,x4096)表示CNN得到的特征向量即全连接层的最后4096维向量。
(w1,w2,...,w4096)表示参数
由于总共有2000个候选区,所以组成一个2000*4096维的矩阵,最后的输出结果是21类,所以乘上一个4096*21维的参数矩阵。最后输出2000*21维的分类结果。
在这里插入图片描述

3.阈值设定

通过SS算法得到2000多个proposal,但很多都不是我们想要的物体框,这时就涉及到正负样本的划分。
在CNN中:正样本是与GT(真实标注框)IoU≥0.5 的proposal,其他均为负样本(即分为背景类),且输入CNN的batchsize=128=32(正)+96(负)有32个正样本和96个负样本组成,来平衡正负样本的输入。

原因:
0.5阈值实验效果效果最好
SS算法提取的region大部分都都不包含目标即大部分应该都是负样本而CNN需要大量的数据进行训练,0.5阈值让正样本数扩大了30倍。

在SVM中:正样本是GT,负样本与GT的IoU≤0.3(一个个阈值实验所得)的proposal,作者发现如果阈值设为0.5效果会变差。而IoU大于0.3的会被抛弃,既不是正样本也不是负样本。因为这些样本可能都是比较好区分的,对于SVM来说,往往那些好区分的样本是不会影响SVM参数的取值的,对于SVM来说,远离支持向量的样本是不影响SVM效果的,也就是关键是要区分支持向量。也即是论文中说的难例挖掘。
在这里插入图片描述

注:其实作者一开始是没打算微调AlexNet,直接使用ImageNet训练得到的AlexNet。所以是先制定了SVM的正负样本划分阈值。后来引入了微调才需要划分正负样本重新训练,但发现CNN用SVM的划分方法效果太差,所以设定了不同的划分方法。

4.box回归

框回归是作者后来改进的做法,是为了得到更准确的预测目标框。就是把预测的目标框进行一些偏移,更加接近GT。
在这里插入图片描述
为什么不直接预测框的坐标而是预测偏移呢?因为这样大小目标可以有相同的损失
在这里插入图片描述

三、思考

为什么要额外用SVM?

1.作者实验发现直接用CNN分类精度会降低

2.CNN和SVM的正负样本划分不同。CNN中正样本的定义并不是精确的目标框,会导致误差

3.CNN的负样本是随机采样的,大部分都是容易识别的负样本。这里可以使用SVM进行难例挖掘,对于SVM来说,远离支持向量的样本是不影响SVM效果的,也就是关键是要区分支持向量。

四、缺点

RCNN是RCNN系列的第一个两阶段检测器,肯定是不完善的:

1.分阶段训练。流程太繁琐,每个region proposal都要送进CNN去跑一遍还要训练SVM分类(Fast RCNN改进点).
2.SS算法太弱而且还要保存到本地磁盘(Faster RCNN改进点)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】数据链路层:拓展的以太网

在物理层拓展以太网: 使用光纤拓展:主机使用光纤和一对光纤调制解调器连接到集线器。 使用集线器拓展:使用集线器连成更大的以太网 集线器优点: 使原来不同碰撞域的计算机能够跨碰撞域通信,扩大了以太网覆盖的地理范…

GDB使用技巧和相关插件

GDB使用-小技巧 参考:《100个gdb小技巧》 链接中的文档有许多关于GDB的使用小技巧; $info functions - 列出函数的名称 $s/step - 步入,进入带有调试信息的函数 $n/next - 下一个要执行的程序代码 $call/print - 直接调用函数执行 $i/info …

jvm简介

.什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成。JVM屏蔽了与操作系统平台相…

Postman如何做接口测试,那些不得不知道的技巧

目录:导读 前言 Postman如何做接口测试1:如何导入 swagger 接口文档 Postman如何做接口测试2:如何切换测试环境 Postman如何做接口测试3:什么?postman 还可以做压力测试? Postman如何做接口测试4&…

电源控制测试老化系统-国产电源测试仪器-电源模块测试系统NSAT-8000

*测试仪器:可编程直流电源、可编程直流电子负载、数字示波器、功率计 *测试产品:电源模块。纳米软件电源ATE自动测试系统适用于大功率工业电源、AC/DC类DC电源供应器、适配器、充电器、LED电源等开关电源之综合性能测试。 *被测项目:有效值电…

快来组战队,赢iPhone啦!

常见问题 问:我邀请的人再去邀请,也算我的战队队员么?我最多可以有多少个队员? 答:您将和您直接邀请的人组成战队,并担任该战队的队长。如果被您邀请的小伙伴再去邀请其他人,那么您邀请的小伙…

跨域推荐(Cross-Domain Recommendation)的最新综述

论文解读系列第十六篇:IJCAI 2021--跨域推荐(Cross-Domain Recommendation)的最新综述 - 知乎 数据稀疏问题 目录 1.背景介绍 (1)内容层级相关性(content-level relevance) (2)用户层级相关性(user-level relevance) (3)产品层级相关性…

OpenCV从2到3的过渡

与版本2.4相比,OpenCV 3.0引入了许多新算法和功能。有些模块已被重写,有些已经重组。尽管2.4中的大多数算法仍然存在,但接口可能不同。本节描述了一般性的最显着变化,过渡操作的所有细节和示例都在本文档的下一部分中。 1、贡献存…

nginx安装与配置反向代理

Nginx (engine x) 是一款基于异步框架的轻量级/高性能的Web 服务器/反向代理服务器/缓存服务器/电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev(伊戈尔赛索耶夫)所开发.话不多说直接上步骤 1.安装nginx,我是在root用户下不需要加sudo yum install nginx 安…

嵌入式分享合集116

一、DC-DC升压电路模块原理 DC-DC 转换器是一种电力电子电路,可有效地将直流电从一个电压转换为另一个电压。 DC-DC 转换器在现代电子产品中扮演着不可或缺的角色。这是因为与线性稳压器相比,它们具有多项优势。尤其是线性稳压器会散发大量热量&#x…

什么是天气预报 API 接口?如何获取天气预报 API?

什么是天气预报API接口? 天气的好坏和人们的生活、工作息息相关,每天的天气如何?总是牵动着人们的心,关注天气就行了人们茶余饭后的话题了。如何获得准确的天气预报?还得从天气预报API接口说起。 天气预报API是提供未…

150398-22-4,三肽Phe-Arg-Arg

The tripeptide FRR was found to exert a Zn⁺ dependent, insulin-mimetic inhibitory action on myocardial proteolysis. 三肽FRR对心肌蛋白水解具有Zn⁺依赖性、胰岛素样抑制作用。 编号: 197811中文名称: 三肽Phe-Arg-Arg英文名: Phe-Arg-ArgCAS号: 150398-22-4单字母: H…

yolov1 论文精读 - You Only Look Once

YOLOv1 Introduction 作者将目标检测进行重构并看作为单一的回归问题,直接从图像到边界框坐标和类别概率。使用我们的系统,您只需要在图像上看一次(you only look once, YOLO),以预测出现的目标和位置。 系统将输入…

SpringMVC(九):作用域传参

文章目录 作用域传参 一、传统方式传递数据 二、使用Model传递数据

PHP反序列化与SESSION

php存储session的三种模式php_serialize&#xff08;php>5.5.4&#xff09; 经过serialize()函数序列化数组 php 键名竖线经过seralize()序列处理的值 php_biary 键名的长度对应ASCII字符键名serialize()序列化的值 测试代码 <?php //ini_set("sessi…

cubeIDE开发,在LCD显示摄像头抓取的图片数据

一、摄像头相关资料信息 在LCD上显示当前camera的图像数据&#xff0c;类似我们前面提到的LCD显示图片数据&#xff0c;就是实时将摄像头抓取的视频数据帧&#xff08;图片&#xff09;转换成图片字码表&#xff0c;即LCD宽*LCD高像素大小的颜色点阵&#xff0c;然后推送到LCD接…

(三) Spring Security Oauth2.0 源码分析--认证中心全流程分析

一 引言 Spring Security Oauth2.0 的认证中心可以简单的理解为是对Spring Security的加强,也是通过FilterChainProxy(其原理可参考前面的Security源码分析)对客户端进行校验后在达到自定义token颁发站点,进行token的颁发,具体流程如下: 用户发起token申请请求(‘/oauth/to…

ARM异常处理(4):SVC和PendSV的作用详解

SVC(Supervisor Call)和PendSV(Pendable Service Call)是针对软件和操作系统的两个异常。 1 SVC SVC用于生成系统函数调用&#xff0c;例如&#xff0c;用户程序不允许直接访问硬件&#xff0c;操作系统可以通过SVC提供对硬件的访问。因此&#xff0c;当用户程序想要使用某些…

STC 51单片机56——摇摇棒

主要代码&#xff1a; //增减图像时&#xff0c;需要修改 switch_show&#xff08;&#xff09;和 H对应参数 //所用单片机&#xff1a;STC15W408S 内部Rc 11.0592MHz #include <STC15.H> #include <intrins.h> #define POSITIVE 0 #define OPPOSE 1 //sbi…

Vector-常用CAN工具 - CANoe入门到精通_02

​咱们话接上回&#xff0c;前面已经介绍了CANoe的基本信息和硬件环境搭建&#xff0c;下面我们就要打开CANoe&#xff0c;配置CANoe工程了&#xff0c;只有完成了CANoe工程配置才能真正的使用CANoe完成测试&#xff0c;本次主要介绍的是手工测试环境&#xff0c;至于自动化测试…