目标检测——OverFeat算法解读

论文:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
作者:Pierre Sermanet, David Eigen, Xiang Zhang, Michael Mathieu, Rob Fergus, Yann LeCun
链接:https://arxiv.org/abs/1312.6229

文章目录

  • 1、算法概述
  • 2、OverFeat细节
    • 2.1 分类
    • 2.2 定位
  • 3、创新点

1、算法概述

OverFeat算法同时实现图像分类、定位及检测任务,也证明了采用一个网络同时做三种任务可以提高分类、定位、检测的准确率。文章介绍了一种通过累积预测边界框来定位和检测的方法。通过结合许多定位预测,可以在没有背景样本训练的情况下进行检测任务,不进行背景训练也可以让网络只关注正面类,以获得更高的准确性。文中报道的结果是基于ILSVRC2013的,分类报道TOP5(分类概率前5个包含groundTruth就算正确);定位也是报道TOP5但是需加上TOP5各自对应目标的bounding box预测且bounding box与groundTruth矩形框标注的iou大于50%才能算bounding box预测正确;检测任务就需要预测图像中的每个目标了(类别加定位,包括背景类)并以mAP的指标报道结果。

2、OverFeat细节

2.1 分类

OverFeat仿照AlexNet设计,但是对网络结构和推理步骤进行了改进;文中分类网络分为两种:速度和精度,结构如下:
在这里插入图片描述
在这里插入图片描述
相对于AlexNet,它没有采用对比度归一化,没有用带重叠的池化层,网络前两层使用了小的stride从而保留了比较大的特征图,因为大的stride虽然能快速减小特征图从而对网络推理提速但是对精度有损害。最终精度模型比速度模型的TOP5错误率少了2.21%(14.18%对16.39%)。

  • 多尺度分类
    AlexNet中,应用了多视角(multi-view)投票技术用来提升最后预测类别的精度,即通过4次corner_crop加一次center_crop,同时应用水平翻转共计10次分类结果来投票出最终的类别;然而这种方式还是忽略了大量图片区域,也在图片重叠区域存在计算冗余,此外,这种方式也只是图片的单一尺度,不一定是卷积神经网络最合适的推理尺度。所以作者采用了6种不同尺度的测试图像作为输入(每个尺度图像还增加了水平翻转),而且作者认为在特征提取最后一层(conv 5)直接做 max pooling,将导致最终输入图像的检测粒度不足,提出用偏移池化(offset pooling)操作实现让分类器的视角窗口在特征图上滑动,最终将偏移池化得到的特征图组合在一起输出结果。如下表、下图所示:
    在这里插入图片描述
    在这里插入图片描述
  • 卷积和高效的滑窗
    在此之前,很多滑动窗口技术都是为每个窗口重复进行所有的计算,这对计算资源的消耗是巨大的。而卷积天然就带有滑窗的方式,如下图所示,因为卷积操作是共享卷积核滑动操作,所以计算非常高效,作者最后在测试阶段,将最后的全连接层替换成了1x1卷积层,这样就能适应比训练图像大的图片测试了。
    在这里插入图片描述

2.2 定位

由分类到定位,基于之前的分类网络,把网络的分类器替换成回归器,训练这个网络预测每个位置和尺度的物体边界框,就可以实现定位任务。回归器也取网络的前5层的feature map输出作为bounding box的输入,该feature map也用作分类器训练,所以分类器和回归器共用前面的特征。回归器的输出是4个值,代表bounding box的坐标,每个类都有对应的bounding box预测。训练回归器时,前5层不参与训练;如果样本和真实标签的重叠小于50%,则样本不参与回归器的训练。(由于样本预处理和增强的原因,可能导致样本的范围和真实标签已经重叠较小)。下面看看定位/检测具体的工作步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、创新点

采用multiscale、sliding window、offset pooling实现多尺度滑窗采样,基于卷积高效实现滑窗思想,在同一网络框架下实现分类、定位、检测。

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

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

相关文章

SpringAOP专栏二《原理篇》

上一篇SpringAOP专栏一《使用教程篇》-CSDN博客介绍了SpringAop如何使用,这一篇文章就会介绍Spring AOP 的底层实现原理,并通过源代码解析来详细阐述其实现过程。 前言 Spring AOP 的实现原理是基于动态代理和字节码操作的。不了解动态代理和字节码操作…

【C语言】函数递归详解(一)

目录 1.什么是递归: 1.1递归的思想: 1.2递归的限制条件: 2.递归举例: 2.1举例1:求n的阶乘: 2.1.1 分析和代码实现: 2.1.2图示递归过程: 2.2举例2:顺序打印一个整数的…

机器学习---集成学习的初步理解

1. 集成学习 集成学习(ensemble learning)是现在非常火爆的机器学习方法。它本身不是一个单独的机器学 习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。集 成学习可以用于分类问题集成,回归问题集成&#xff…

多线程并发Ping脚本

1. 前言 最近需要ping地址,还是挺多的,就使用python搞一个ping脚本,记录一下,以免丢失了。 2. 脚本介绍 首先检查是否存在True.txt或False.txt文件,并在用户确认后进行删除,然后从IP.txt的文件中读取IP地…

CSS——sticky定位

1. 大白话解释sticky定位 粘性定位通俗来说,它就是相对定位relative和固定定位fixed的结合体,它的触发过程分为三个阶段 在最近可滚动容器没有触发滑动之前,sticky盒子的表现为相对定位relative【第一阶段】, 但当最近可滚动容…

【MATLAB】tvfEMD信号分解+FFT+HHT组合算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 TVFEMDFFTHHT组合算法是一种结合了总体变分模态分解(TVFEMD)、傅里叶变换(FFT)和希尔伯特-黄变换(HHT)的信号分解方…

电子学会C/C++编程等级考试2021年06月(五级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:数字变换 给定一个包含5个数字(0-9)的字符串,例如 “02943”,请将“12345”变换到它。 你可以采取3种操作进行变换 1. 交换相邻的两个数字 2. 将一个数字加1。如果加1后大于9,则变为0 3. 将一个数字加倍。如果加倍后大于…

Python configparser 模块:优雅处理配置文件的得力工具

更多资料获取 📚 个人网站:ipengtao.com 配置文件在软件开发中扮演着重要的角色,而Python中的 configparser 模块提供了一种优雅而灵活的方式来处理各种配置需求。本文将深入介绍 configparser 模块的各个方面,通过丰富的示例代码…

嵌入式杂记 - MDK的Code, RO-data , RW-data, ZI-data意思

嵌入式杂记 - Keil的Code, RO-data , RW-data, ZI-data意思 MDK中的数据分类MCU中的内部存储分布MDK中数据类型存储Code代码段例子 RO-data 只读数据段例子 RW-data 可读写数据段例子 ZI-data 清零数据段例子 在嵌入式开发中,我们经常都会使用一些IDE,例…

Hadoop学习笔记(HDP)-Part.17 安装Spark2

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

Web前端 ---- 【Vue】Vuex的使用(辅助函数、模块化开发)

目录 前言 Vuex是什么 Vuex的配置 安装vuex 配置vuex文件 Vuex核心对象 actions mutations getters state Vuex在vue中的使用 辅助函数 Vuex模块化开发 前言 本文介绍一种新的用于组件传值的插件 —— vuex Vuex是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态…

【ArcGIS Pro微课1000例】0053:基于SQL Server创建与启用地理数据库

之前的文章有讲述基于SQL Server创建企业级地理数据库,本文讲述在SQL Server中创建常规的关心数据库,然后在ArcGIS Pro中将其启用,转换为企业级地理数据库。 1. 在SQL Server中创建数据库** 打开SQL Server 2019,连接到数据库服务器。 展开数据库连接,在数据库上右键→新…

(四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法(TTA&#xf…

基于SSH的java记账管理系统

基于SSH的java记账管理系统 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型:Java EE项目 项目名称:基于SSH的记账管理系统 项目架构:B/S架构 开发语言:Java语言 前端技术:HTML、CS…

初识优先级队列与堆

1.优先级队列 由前文队列queue可知,队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,在此情况下,使用队列queue显然不…

git常用命令指南

目录 一、基本命令 1、创建分支 2、切换分支 3、合并分支 4、初始化空git仓库 二、文件操作 1、创建文件 2、添加多个文件 3、查看项目的当前状态 4、修改文件 5、删除文件 6、提交项目 三、实际操作 1、创建目录 2、进入新目录 3、初始化空git仓库 4、创建文…

C++STL的string模拟实现

文章目录 前言string的成员变量成员函数构造函数拷贝构造赋值重载 模拟实现string各种接口print迭代器普通迭代器const迭代器 string比较大小push_backinsert 和 eraseinserterase reserve和resizereserveresize swapfindcout和cincoutcin 前言 今天要讲string的底层实现&…

总线(什么是南北桥?您都用过哪些总线?)

什么是总线? 计算机系统中的总线(Bus)是指计算机设备和设备之间传输信息的公共数据通道,是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多…

python基于轻量级GhostNet模型开发构建23种常见中草药图像识别系统

轻量级识别模型在我们前面的博文中已经有过很多实践了,感兴趣的话可以自行移步阅读: 《移动端轻量级模型开发谁更胜一筹,efficientnet、mobilenetv2、mobilenetv3、ghostnet、mnasnet、shufflenetv2驾驶危险行为识别模型对比开发测试》 《基…

Vue 核心 数据监听 computed | watch

Vue 核心 数据监听 computed | watch 一、今日学习目标 1.指令补充 指令修饰符v-bind对样式增强的操作v-model应用于其他表单元素 2.computed计算属性 基础语法计算属性vs方法计算属性的完整写法成绩案例 3.watch侦听器 基础写法完整写法 4.综合案例 (演示&…