【Bootstrap Faster R-CNN】《Is Faster R-CNN Doing Well for Pedestrian Detection?》

在这里插入图片描述

ECCV-2016

中山大学


文章目录

  • 1 Background and Motivation
  • 2 Related Work
  • 3 Advantages / Contributions
  • 4 Method
    • 4.1 Region Proposal Network for Pedestrian Detection
    • 4.2 Feature Extraction
    • 4.3 Boosted Forest
  • 5 Experiments
    • 5.1 Datasets and Metrics
    • 5.2 Ablation Experiments
    • 5.3 Comparisons with State-of-the-art Methods
  • 6 Conclusion / Future work


1 Background and Motivation

Faster R-CNN has not presented competitive results on popular pedestrian detection datasets

用 RPN 跑行人检测结果还行,跑第二阶段的 fast rcnn 时候,结果变差了,作者分析直接用 faster RCNN 跑行人检测不太行的可能原因

  • 接头部结构的特征图 stride 太大了——1/16,容易丢失小目标
  • false predictions are dominantly caused by confusions of hard background instances,不像通用的目标检测,confusion 主要来自于 multiple categories.

在这里插入图片描述
关于 Fast RCNN 和 Faster RCNN 的介绍可以参考

  • 【Fast RCNN】《Fast-RCNN》
  • 【Faster RCNN】《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》

2 Related Work

  • Integrate Channel Features (ICF) detector
  • ACF
  • LDCF
  • SCF
  • TA-CNN
  • DeepParts
  • CompACT
  • CCF

hand-craft features + CNN

3 Advantages / Contributions

分析了 Faster R-CNN 处理不好行人检测的原因,提出解决方案,high resolution features and bootstrapping are the key to good accuracy

其中 high resolution 是通过空洞卷积实现

bootstrapping 是去掉 Faster RCNN 的第二阶段,改为训练 RealBoost

4 Method

在这里插入图片描述

用 RPN 的特征来 train Boosted Forest (BF)

effective bootstrapping is performed for mining hard negative examples.

4.1 Region Proposal Network for Pedestrian Detection

anchor:

  • a single aspect ratio of 0.41——接近完整人形的比例
  • 9 different scales——multi scale 可以省去用特征金字塔

主干 VGG-16,RPN 输出特征图为原始输入的 1/16

IoU 大于 0.5 正样本,小于 0.5 负样本

正负样本比例 1:5,共 120 个样本

4.2 Feature Extraction

VGG-16 结构如下
在这里插入图片描述

we adopt RoI pooling to extract fixed-length features from regions

Conv3_3 (of a stride = 4 pixels)

Conv4_3 (of a stride = 8 pixels)

Conv5_3 (of a stride = 16 pixels)

多个步长的特征图都可以通过 ROI pooling 成固定空间分辨率 7×7,特征 simply concatenated without normalization

有时候特征图分辨率比较小(eg: 1/16),目标的尺寸小于 ROI pooling 后的尺寸 7 x 7,the pooling bins collapse and the features become “flat” and not discriminative,此时 `a trous trick(空洞卷积) 就派上了用场

提取特征的时候,we can set the stride of Pool3 as 1 and dilate all Conv4 filters by 2, which reduces the stride of Conv4 from 8 to 4——空洞卷积,扩大感受野,保持分辨率不变

The `a trous trick is only exploited when extracting features, but not for fine-tuning

4.3 Boosted Forest

用的是 RealBoost algorithm

RealBoost算法是Boosting集成学习算法的一种,其核心理念是通过多个简单的弱分类器来构建一个准确率较高的强分类器。以下是关于RealBoost算法的详细介绍:

一、算法背景:
RealBoost算法是Boosting算法家族中的一员,其设计初衷是为了提高分类器的性能。
与传统的AdaBoost算法相比,RealBoost算法让弱分类器输出样本属于某个类的概率,而不是简单的二分类结果(如1或-1)。

二、算法原理:
初始化:为每个样本赋予一个初始权重,通常是均匀分布的。
弱学习器训练:从训练数据中选择一个弱学习器进行训练,训练过程中会根据样本权重来调整样本的重要性。
概率输出:每个弱分类器训练完成后,会输出样本属于某个类的概率。
权重更新:根据弱分类器的性能(如分类误差)来调整样本的权重,增加被错误分类的样本的权重,降低被正确分类的样本的权重。
弱学习器组合:将多个训练好的弱学习器组合成一个强学习器。在RealBoost中,这通常是通过将每个弱分类器输出的概率进行某种形式的组合(如加权求和)来实现的。
迭代:重复上述步骤,直到达到预设的停止条件(如达到指定迭代次数或弱学习器性能不再显著提升)。

三、算法特点:
概率输出:与AdaBoost不同,RealBoost允许弱分类器输出概率值,这使得算法在处理复杂分类任务时具有更高的灵活性。
性能提升:通过迭代和样本权重的调整,RealBoost能够逐步学习并修正错误,从而提高分类器的性能。
应用广泛:RealBoost算法已经在多个领域得到了成功应用,如人脸识别、图像分类等。

四、算法优化:
RealBoost算法可以通过不同的方式进行优化,如改进样本权重的更新策略、选择更合适的弱分类器类型或调整组合方式等。
例如,在人脸检测领域,有研究者对RealBoost算法进行了改进,通过优化样本空间的划分和引入新的特征选择策略来提高算法的性能。

总结来说,RealBoost算法是一种基于Boosting的集成学习算法,它通过多个弱分类器的概率输出和迭代优化来构建一个强分类器。该算法在处理复杂分类任务时具有较高的灵活性和性能优势,并在多个领域得到了成功应用。

For BF training, we construct the training set by selecting the top-ranked 1000 proposals (and ground truths) of each image

训练集还是挺大的

bootstrap the training by 6 times——{64, 128, 256, 512, 1024, 1536} trees,更多 bootstrap 的信息可以参考 Bagging and Boosting,树的深度可以根据数据集的大小灵活调整

在这里插入图片描述

a forest of 2048 trees is trained after all bootstrapping stages

具体细节可以结合代码实现去加深理解

5 Experiments

5.1 Datasets and Metrics

数据集

  • Caltech
  • INRIA
  • ETH
  • KITTI

评价指标

  • log average Miss Rate on False Positive Per Image (FPPI) in [ 1 0 − 2 10^{−2} 102, 1 0 0 10^0 100] ,简称为 MR-2 或者 MR,[ 1 0 − 4 10^{−4} 104, 1 0 0 10^0 100] 简写为 MR-4

  • mean Average Precision (mAP)
    在这里插入图片描述

log-average Miss Rate 和 False Positive Per Image (FPPI) 是两个在目标检测,特别是行人检测中常用的评估指标。下面我将分别解释这两个指标,并尝试解释它们之间的关系(尽管在标准的定义中,log-average Miss Rate 和 FPPI 并没有直接的关系,但我会尝试在概念上进行联系)。

False Positive Per Image (FPPI)
定义:FPPI 描述的是每张图片的平均误检率。给定一定数目N的样本集,内含N张图像,每张图像内包含或不包含检测目标。FPPI 的计算公式为 FPPI = FP / N,其中 FP 是所有图片中误检(预测为正样本但实际是负样本)的数量。
意义:FPPI 越低,表示检测器在每张图片上的误检率越低,即检测器更准确地识别出哪些目标不是行人。

log-average Miss Rate
定义:log-average Miss Rate 是一种用于评估缓存性能或其他系统性能的重要指标。在目标检测的上下文中,它可能不是直接使用的指标,但通常 Miss Rate (MR) 会被用来评估检测器的性能。MR 的计算公式为 MR = FN / GT,其中 FN 是漏检(本应该被检测出来的样本未被检测出来)的数量,GT 是实际目标(Ground Truth)的数量。log-average Miss Rate 可能是对多个不同阈值下的 Miss Rate 取对数后平均得到的,这样可以更全面地评估检测器在不同条件下的性能。
意义:log-average Miss Rate 越低,表示检测器在不同阈值下的平均漏检率越低,即检测器更准确地识别出图片中的目标

5.2 Ablation Experiments

(1)Is RPN good for pedestrian detection?
在这里插入图片描述
CNN vs hand-craft,RPN 在各种 IoU 下还是全方面领先的

在这里插入图片描述

漏检率,越低越好,RPN stand-alone 的性能也很猛了

(2)How important is feature resolution?

在这里插入图片描述

RPN+R-CNN 就很猛,因为 RCNN 会把 proposal resize 到 224x224

Fast RCNN中用conv5_3 空洞特征明显比 conv5_3 效果好

RPN + BF 中加了空洞或者采用了分辨率更高的特征图,效果会更好

更多细节可以看下表

在这里插入图片描述
Conv5_3 -> Conv3_3 充分说明了分辨率的重要性

Conv5_2 效果不好的原因, the weaker representation of the shallower layers

用了空洞后时间变长的原因

it requires to re-compute the Conv4 features maps with the `a trous trick

(3)How important is bootstrapping?

在这里插入图片描述
we replace the last-stage BF classifier with a Fast R-CNN classifier.

after the 6 stages of bootstrapping, the bootstrapped training set is used to train a Fast R-CNN classifier (instead of the final BF with 2048 trees).

作者想表达的是,bootstrapped 的过程更重要,而局限于分类器是什么——tree-structured BF classifier and the region-wise MLP classifier (Fast R-CNN)

5.3 Comparisons with State-of-the-art Methods

(1)Caltech

在这里插入图片描述

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

0.7 下性能还这么猛,说明 better localization accuracy

在这里插入图片描述
(2)INRIA and ETH

在这里插入图片描述
在这里插入图片描述
(3)KITTI

在这里插入图片描述

6 Conclusion / Future work

  • high resolution features and bootstrapping are the key to good accuracy
  • OHEM 已经出来了,作者的方法还做不到 end-to-end,比作者的 bootstrapping 创新点好
  • 晚几年出现的 FPN,就更好的解决了作者的 high resolution features

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

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

相关文章

python主线程捕获子线程异常

目录 问题抛出:子线程出现异常,主线程仍会正常进行吗 设计实现python主线程捕获子线程异常 需求 问题 解决思路 示例代码 问题抛出:子线程出现异常,主线程仍会正常进行吗 结论:子线程出现异常,主线程…

【C++进阶学习】第一弹——继承(上)——探索代码复用的乐趣

前言: 在前面,我们已经将C的初阶部分全部讲完了,包括类与对象、STL、栈和队列等众多内容,今天我们就进入C进阶部分的学习,今天先来学习第一弹——继承 目录 一、什么是继承?为什么会有继承? 二…

构建实时搜索与推荐系统:Elasticsearch与业务结合

在当今这个信息爆炸的时代,搜索引擎和推荐系统已成为我们日常生活中不可或缺的一部分。它们不仅帮助我们快速找到所需信息,还根据我们的喜好推荐相关内容,提升了用户体验。本文将探讨如何使用Elasticsearch构建实时搜索与推荐系统&#xff0c…

WPS JS宏获取自动筛选后的行数

//WPS JS宏获取自动筛选后的行数 function getFilterRowCnt(shtRng)//shtRng表示筛选目标工作表范围 {let lngRowCnt 0;for(let rngCell of shtRng.SpecialCells(xlCellTypeVisible).Areas)//获取自动筛选后的单元格行数{lngRowCnt lngRowCnt rngCell.Rows.Count;}return ln…

Web--CSS基础

文章目录 定义方式选择器文本字体背景边框元素展示格式内边距与外边距盒子模型位置浮动实战&#xff1a;个人信息卡片 flex布局响应式布局 定义方式 行内样式表 直接定义在style属性中&#xff0c;作用于当前标签 <img src "/imges/logo.jpg" alt "" …

Vue37-非单文件组件

一、组件的两种编写形式&#xff1a; 非单文件组件&#xff1b;单文件组件。 二、创建一个组件 2-1、组件中的el 组件中不写el&#xff0c;不说为谁服务。 2-2、组件中的data 因为对象形式&#xff0c;多处复用的话&#xff0c;有引用关系&#xff0c;改一处&#xff0c;另一…

atcoder ABC 355-C题详解

atcoder ABC 355-C题详解 ​ Problem Statement There is an NN grid, where the cell at the i-th row from the top and the j-th column from the left contains the integer N(i−1)j. Over T turns, integers will be announced. On Turn i, the integer Ai​ is anno…

[Nacos]No spring.config.import property has been defined

在学习 Spring Cloud Alibaba &#xff0c;Nacos组件&#xff0c;创建一个cloudalibaba-config-nacos-client&#xff0c;加载多配置集时遇到问题 配置了 bootstrap.yml 后启动项目报错&#xff1a; 是因为在springcloud 2020.0.2版本中把bootstrap的相关依赖从spring-cloud-s…

算法分析与设计期末考试复习GDPU

重点内容&#xff1a; 绪论&#xff1a; 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法&#xff1a; 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法&#xff08;快速幂&#xff09; 分治法解决平面最近点对问…

OpenCV单词轮廓检测

OpenCV单词轮廓检测 0. 前言1. 策略分析2. 检测字符轮廓3. 检测单词轮廓相关链接 0. 前言 在根据文档图像执行单词转录时&#xff0c;通常第一步是识别图像中单词的位置。我们可以使用两种不同的方法识别图像中的单词&#xff1a; 使用 CRAFT、EAST 等深度学习技术使用基于 O…

C++中的解释器模式

目录 解释器模式&#xff08;Interpreter Pattern&#xff09; 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式是一种行为设计模式&#xff0c;它定义了一种语言的文法表示&#xff0c;并使用解释器…

【Python入门与进阶】Python面向对象编程练习

练习题 1&#xff1a;定义一个 Person 类 定义一个 Person 类&#xff0c;它有以下属性和方法&#xff1a; 属性&#xff1a; name&#xff08;字符串&#xff09;&#xff1a;表示人的名字。age&#xff08;整数&#xff09;&#xff1a;表示人的年龄。 方法&#xff1a; __…

用Python处理Excel的资源

用Python处理Excel的资源 python-excel 读写Excel文件 openpyxl openpyx文档l 读写Excel2010文件&#xff08;即xlsx&#xff09; openpyxl示例&#xff1a; from openpyxl import Workbook wb Workbook()# 获取active worksheet ws wb.active# 给单元格赋值 ws[A1] 4…

代码随想录算法训练营第二十六天

题目&#xff1a;455. 分发饼干 贪心第一题 这里的局部最优就是大饼干喂给胃口大的&#xff0c;充分利用饼干尺寸喂饱一个&#xff0c;全局最优就是喂饱尽可能多的小孩。或者小饼干先喂饱小胃口 首先要对 g 和 s进行排序这样才能知道最大的胃口和最大的饼干然后进行遍历即可…

I/O Stream设计实验

实验要求和目的 深入理解java输入输出流相关类的基本用法&#xff0c;并且可以掌握Java程序的编写和调试。 实验环境 Java语言&#xff0c;PC或android平台 实验具体内容 设计和编写以下程序&#xff1a; 程序1&#xff1a; 从键盘读入多行字符串&#xff08;英文&#xf…

(第32天) 513、找树左下角的值 112、路径总和 113、路径总和II

目录 513、找树左下角的值题目描述思路代码112、路径总和题目描述思路代码113、路径总和II题目描述思路代码思考总结513、找树左下角的值 题目描述 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 思路 题目分析:…

ElasticSearch是什么?有哪些应用?有哪些优缺点?

ElasticSearch是什么&#xff1f;有哪些应用&#xff1f;有哪些优缺点&#xff1f; Elasticsearch 是一个开源的分布式搜索和分析引擎&#xff0c;设计用于实时、大规模数据的搜索和分析。它基于Apache Lucene构建&#xff0c;但通过提供一套简单易用的RESTful API、分布式特性…

Web前端接口探秘:深入解析四大方面、五大维度、六大关键及七大实践

Web前端接口探秘&#xff1a;深入解析四大方面、五大维度、六大关键及七大实践 在Web前端开发的广阔领域中&#xff0c;接口作为连接前后端的关键桥梁&#xff0c;扮演着至关重要的角色。本文将带领读者一同深入探索Web前端接口的四大方面、五大维度、六大关键及七大实践&…

Go语言中的函数项模式

函数项模式&#xff08;Functional Options Pattern&#xff09;是一种创造性的设计模式&#xff0c;允许使用接受零个或多个函数作为参数的可变构造函数来构建复杂结构 在没有函数项模式之前&#xff0c;在包初始化加载配置选项的时候&#xff0c;一般有两种做法 编写不同的构…

【微信小程序 事件绑定】

事件绑定 条件渲染 1. block包裹性容器&#xff1a;条件成立渲染 <block wx:if"{{ true }}"><block wx:if"{{true}}"><view>view1</view><view>view2</view> </block>2. wx:if&#xff1a;动态创建移除元素控…