目標檢測——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.pswp.cn/news/207699.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207699.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207699.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Go語言-讓我印象深刻的13個特性

我們正在加速進入云原生時代,Go語言作為云原生的一塊基石,確有它的獨到之處。本文介紹Go語言的幾個讓我印象深刻的特性。 1、兼顧開發效率和性能 Go語言兼顧開發效率和性能。可以像Python那樣有很快的開發速度,也可以像C那樣有很快的執行速…

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)的信號分解方…

vivado時序方法檢查8

TIMING-30 &#xff1a; 生成時鐘所選主源管腳欠佳 生成時鐘 <clock_name> 所選的主源管腳欠佳 &#xff0c; 時序可能處于消極狀態。 描述 雖然 create_generated_clock 命令允許您指定任意參考時鐘 &#xff0c; 但是生成時鐘應引用在其直接扇入中傳輸的時鐘。此…

電子學會C/C++編程等級考試2021年06月(五級)真題解析

C/C++等級考試(1~8級)全部真題?點這里 第1題:數字變換 給定一個包含5個數字(0-9)的字符串,例如 “02943”,請將“12345”變換到它。 你可以采取3種操作進行變換 1. 交換相鄰的兩個數字 2. 將一個數字加1。如果加1后大于9,則變為0 3. 將一個數字加倍。如果加倍后大于…

JS--異步的日常用法

目錄 JS 異步編程并發&#xff08;concurrency&#xff09;和并行&#xff08;parallelism&#xff09;區別回調函數&#xff08;Callback&#xff09;GeneratorPromiseasync 及 await常用定時器函數 JS 異步編程 并發&#xff08;concurrency&#xff09;和并行&#xff08;p…

Python中一些有趣的例題

下面會寫一些基礎的例題&#xff0c;有興趣的自己也可以練練手&#xff01; 1.假設手機短信收到的數字驗證碼為“278902”&#xff0c;編寫一個程序&#xff0c;讓用戶輸入數字驗證碼&#xff0c;如果數字驗證碼輸入正確&#xff0c;提示“支付成功”&#xff1b;否則提示“數…

Python configparser 模塊:優雅處理配置文件的得力工具

更多資料獲取 &#x1f4da; 個人網站&#xff1a;ipengtao.com 配置文件在軟件開發中扮演著重要的角色&#xff0c;而Python中的 configparser 模塊提供了一種優雅而靈活的方式來處理各種配置需求。本文將深入介紹 configparser 模塊的各個方面&#xff0c;通過豐富的示例代碼…

嵌入式雜記 - 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 清零數據段例子 在嵌入式開發中&#xff0c;我們經常都會使用一些IDE&#xff0c;例…

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 應用程序開發的狀態…

淺談前端代碼里的命名規范與注釋

淺談前端代碼里的命名規范與注釋 在前端代碼中&#xff0c;命名規范和注釋是非常重要的。它們不僅有助于提高代碼的可讀性和可維護性&#xff0c;還可以幫助開發者之間更好地協作和溝通。下面是一些關于命名規范和注釋的常見建議&#xff1a; 命名規范&#xff1a; 使用有意義…

【ArcGIS Pro微課1000例】0053:基于SQL Server創建與啟用地理數據庫

之前的文章有講述基于SQL Server創建企業級地理數據庫,本文講述在SQL Server中創建常規的關心數據庫,然后在ArcGIS Pro中將其啟用,轉換為企業級地理數據庫。 1. 在SQL Server中創建數據庫** 打開SQL Server 2019,連接到數據庫服務器。 展開數據庫連接,在數據庫上右鍵→新…

python中的lambda關鍵字

對于一切很模糊的知識&#xff0c;首要的是抓住概念的定義。 lambda&#xff1a;在 Python 中用于創建匿名函數的關鍵字。 也即&#xff0c;lambda是一種關鍵字&#xff0c;這種關鍵字的作用是創建匿名函數。 這一段很好懂&#xff0c;就是匿名函數有點懵。 什么是匿名函數&…

mybatis-plus構造器查詢

文章目錄 Hutool工具包Vo與entity轉換多表分頁查詢構造器&#xff1a;查詢構造器&#xff1a;拼接構造器&#xff1a;刪除操作構造器&#xff1a;修改操作查詢關鍵字 Hutool工具包Vo與entity轉換 BeanUtils&#xff1a;copyProperties(vo, entity)&#xff0c;vo轉實體類。 L…

在裝有 PostgreSQL 14 的 Red Hat8上安裝 `pg_cron`

要在裝有 PostgreSQL 14 的 Red Hat、CentOS、Fedora 或 Amazon Linux 上安裝 pg_cron&#xff0c;請遵循以下步驟。這些步驟假定您已經安裝了 PostgreSQL Global Development Group (PGDG) 的 PostgreSQL 版本。 安裝 pg_cron 擴展 使用 yum 安裝 pg_cron 擴展&#xff1a;s…