【CV 目標檢測】②R-CNN模型

二、R-CNN網絡基礎

2.R-CNN模型

2014年提出R-CNN!網絡,該網絡不再使用暴力窮舉的方法,而是使用候選區域方法(region proposal method)創建目標檢測的區域來完成目標檢測的任務,R-CNN是以深度神經網絡為基礎的目標檢測的模型,以R-CNN為基點,后續的Fast R-CNN,Fast R-CNN模型都延續了這種目標檢測思路

(1)算法流程

步驟:

  1. 候選區域生成:使用選擇性搜索(Selective Search,SS)的方法找出圖片中可能存在目標的候選區域
  2. CNN網絡提取特征:選取預訓練卷積神經網絡(AlexNet或VGG)用于進行特征提取
  3. 目標分類:訓練支持向量機(SVM)來辨別目標物體和背景,對每個類別,都要訓練一個二元SVM。
  4. 目標定位:訓練一個線性回歸模型(修正坐標),為每個辨識到物體生成更精確的邊界框

(1)候選區域生成

選擇性搜索中,使用語義分割的方法,它將顏色,邊界,紋理等信息作為合并條件,采用多尺度的綜合方法,將圖像在像素級上劃分出一系列的區域,這些區域要遠少于傳統的滑動窗口的窮舉法產生的候選區域。(根據圖像像素點的相似性,分成不同的子區域,獲取外包矩形)

SelectiveSearch在一張圖片上提取出來約2000個候選區域,需要注意的是這些候選區域的長寬不固定。而使用CNN提取候選區域的特征向量,需要接受固定長度的輸入,所以需要對候選區域做一些尺寸上的修改。

(2)CNN網絡提取特征

采用預訓練模型(AlexNet或VGG)在生成的候選區域上進行特征提取,將提取好的特征保存在磁盤中,用于后續步驟的分類和回歸

  1. 全連接層的輸入數據的尺寸是固定的,因此在將候選區域送入CNN網絡時,需進行裁剪或變形為固定的尺寸,再進行特征提取。
  2. 預訓練模型在ImageNet數據集上獲得,最后的全連接層是1000,在這里我們需要將其改為N+1(N為目標類別的數目,例如VOC數據集中N = 20,COCO數據集中N= 80,1是加一個背景)后,進行微調即可。

VGG16

  1. 利用微調后的CNN網絡,提取每一個候選區域的特征,獲取一個4096維的特征(將最后的全連接層去掉,該4096維特征即表示某一個候選區域的結果),一幅圖像就是2000x4096維特征存儲到磁盤中。(有2000個候選區域)

(3)目標分類(SVM)

對于N個類別的檢測任務,需要訓練N(目標類別數目)個SVM分類器,對候選區域的特征向量(4096維)進行二分類,判斷其是某一類別的目標,還是背景來完成目標分類

(4)目標定位

通過選擇性搜索獲取的目標位置不是非常準確,實驗證明,訓練一個線性回歸模型在給定的候選區域的結果上去預測一個新的檢測窗口,能夠獲得更精確的位置。修正過程如下圖所示:

通過訓練一個回歸器來對候選區域的范圍進行一個調整,這些候選區域最開始只是用選擇性搜索的方法粗略得到的,通過調整之后得到更精確的位置

(5)預測過程

使用選擇性搜索的方法從一張圖片中提取2000個候選區域,將每個區域送入CNN網絡中進行特征提取,然后保存至磁盤中,然后送入到SVM中進行分類,并使用候選框回歸器,計算每個候選區域的位置。候選區域較多,有2000個,需要剔除掉部分檢測結果。針對每個類,通過計算IOU,采取非極大值抑制NMS方法,保留比較好的檢測結果。

算法總結

  1. 訓練階段多,訓練耗時:微調CNN網絡+訓練SVM+訓練邊框回歸器
  2. 預測速度慢:使用GPU,VGG16模型處理一張圖像需要47s
  3. 占用磁盤空間大:5000張圖像產生幾百G的特征文件。
  4. 數據的形狀變化:候選區域要經過縮放來固定大小,無法保證目標的不變形

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93396.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93396.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93396.shtml

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

相關文章

STM32L051C8與STM32L151C8的主要區別

STM32L051C8與STM32L151C8 有什么區別? LPTIM 有什么特點,為什么STM32L151C8沒有LPTIM,而STM32L051C8有1個? 1. STM32L051C8與STM32L151C8的主要區別 STM32L051C8STM32L151C8內核Cortex-M0Cortex-M3主頻32MHz32MHz閃存/ SRAM64KB/8KB64KB/16KB工作電壓1.65V-3.6V…

【軟考中級網絡工程師】知識點之網關協議深度剖析

目錄一、網關協議基礎探秘1.1 網關協議概念1.2 網關協議作用1.3 網關協議分類總覽二、內部網關協議(IGP)深度解析2.1 距離矢量協議2.2 鏈路狀態協議2.3 混合型協議三、外部網關協議(EGP)探秘3.1 BGP 協議詳解3.2 BGP 協議的關鍵特…

JavaScript 中 call、apply 和 bind 方法的區別與使用

一、核心作用與基礎概念這三個方法都用于顯式改變函數執行時的 this 指向,解決 JavaScript 中函數上下文動態綁定的問題。1.call()立即執行函數,第一個參數為 this 指向對象,后續參數為逗號分隔的參數列表語法:func.call(thisArg,…

【Android】適配器與外部事件的交互

三三要成為安卓糕手 引入:在上一篇文章中我們完成了新聞展示頁面多布局案例的展示,感悟頗多,本篇文章,繼續去開發一些新的功能 一:關閉廣告 所有的view都可以和我們的用戶做交互,循環視圖中也給我們提供了相…

MySQL的分析查詢語句(EXPLAIN):

目錄 基本語法: 各個字段的含義: id: select_type: table: partitions: type: possible_keys: key: key_len: ref: row: …

C++ #if

在 C 中,#if 是 預處理器指令(Preprocessor Directive),用于 條件編譯,即在編譯階段根據條件決定是否包含某段代碼。它通常與 #define、#ifdef、#ifndef、#else 和 #endif 配合使用。基本語法#if 條件表達式// 如果條件…

方案 | 動車底部零部件檢測實時流水線檢測算法改進

項目背景隨著我國高速鐵路運營里程突破4.5萬公里,動車組日均開行超過8000列次,傳統人工巡檢方式已無法滿足密集運行下的安全檢測需求。車底關鍵部件如制動系統、懸掛裝置、牽引電機等長期承受高強度振動和沖擊,易產生疲勞裂紋、螺栓松動、部件…

企業收款統計:驅動業務決策的核心引擎設計開發——仙盟創夢IDE

代碼完整代碼<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>黑金風格職員統計</title><style>/* 頁面基礎樣式 - 黑金風格 */body {font-family: Segoe UI, Tahoma, Geneva, Verdana, …

CIAIE 2025上海汽車內外飾展觀察:從美學到功能的產業躍遷

在智能化、電動化浪潮推動下&#xff0c;汽車產業的市場格局、技術路線、供應鏈結構與用戶體驗正被系統性重塑。汽車感知空間核心的“內外飾件”&#xff0c;正從原本的結構性、功能性部件&#xff0c;逐步躍升為智能化、情感化和差異化體驗的重要承載載體&#xff0c;開啟了從…

Spring IOC容器在Web環境中的啟動奧秘:深入源碼解析

一、為何需要關注IOC容器啟動&#xff1f;在Java Web開發中&#xff0c;Spring MVC框架的基石正是IOC容器。但你是否思考過&#xff1a;獨立的IOC模塊如何與Tomcat等Servlet容器協同工作&#xff1f; 其啟動過程與Web容器的生命周期深度綁定&#xff0c;這是構建穩定Spring應用…

前端JS處理時間,適用于聊天、操作記錄等(包含剛剛、x分鐘前、x小時前、x天前)

export default {// 首頁時間轉化formatDate(val) {var nowDate new Date()var oldDate new Date(val)const Y oldDate.getFullYear()const M oldDate.getMonth() 1const D oldDate.getDate()var diff nowDate.getTime() - oldDate.getTime()var minutes Math.floor(di…

C#---StopWatch類

老方法&#xff0c;想要全面了解和學習一個類必先看文檔 微軟文檔 1.StopWatch 提供一組方法和屬性&#xff0c;可用來測量運行時間。 1.1 屬性和方法 屬性&#xff1a; 方法&#xff1a; 1.2 使用 using System.Diagnostics;namespace Study04_反射專題 {internal cla…

3DTiles轉OSGB格式逆向轉換方法研究

一、概述 在傾斜攝影的應用領域中&#xff0c;3DTiles與OSGB格式的互轉是常見的技術需求。作為專業的GIS處理平臺&#xff0c;GISBox憑借其先進的傾斜攝影反切功能&#xff0c;為用戶提供了高效、穩定的跨格式數據轉換解決方案。 二、3DTiles轉OSGB的意義 保留原始幾何與紋理…

【門診進銷存出入庫管理系統】佳易王醫療器械零售進銷存軟件:門診進銷存怎么操作?系統實操教程 #醫藥系統進銷存

前言&#xff1a; &#xff08;一&#xff09;試用版獲取方式 資源下載路徑&#xff1a;進入博主頭像主頁第一篇文章末尾&#xff0c;點擊卡片按鈕&#xff1b;或訪問左上角博客主頁&#xff0c;通過右側按鈕獲取詳細資料。 說明&#xff1a;下載文件為壓縮包&#xff0c;使用…

華為交換機配置文件的相關命令和用法

文章目錄一、基本配置命令一、基本配置命令 1、查看當前運行的配置文件 <Huawei>display current-configuration2、配置文件保存 <Huawei>save <Huawei>save vrpcfg-20250623.zip #保存為指定文件名3、查看保存的配置 <Huawei>display saved-configu…

【汽車標定數據】動態優先級線程池在異步多文件解析中的應用

目錄 一、需求背景 項目背景&#xff1a;電控數據管理系統優化 優化方案&#xff1a;引入OLAP數據庫和動態線程池 線程池性能急需解決的問題 資源過載與閑置的平衡&#xff1a; 優先級處理與公平性&#xff1a; 任務類型適配性&#xff1a; 二、線程池介紹 2.1、線程池…

Unity人形角色IK優化指南

目錄 Unity中人形角色的IKI 站立、奔跑IK 1. 接觸面法線 2. 調整質心位置 3. 保持原本朝向 攀爬IK 1. 四肢貼合 2. 保持身體與攀爬面的距離 3. 適應外拐角 瞄準IK 1. 頭部朝向 2. 手臂朝向 尾聲 本文將嘗試僅使用Untiy內置的Animator來解決常見的幾種運動所需的IK…

基于wireshark的USB 全速硬件抓包工具USB Sniffer Lite的使用

1、前言 隨著MCU的發展和需求的增多&#xff0c;USB已成為主流MCU的標配外設&#xff0c;但很多還是全速或低速IP&#xff0c;因此往往用不上高速抓包設備。 2、安裝wireshark和拷貝抓包插件 將抓包插件拷貝到wireshark的extcap目錄里&#xff0c;可參考基于wireshark的USB …

easyexcel模板導出Map數據時空值列被下一行列非空數據覆蓋

場景是&#xff1a;我用模板導出數據&#xff0c;sheet數據是一個List<String,Object>集合&#xff0c;然后發現第一行的第三列應該為空&#xff0c;但是不為空&#xff0c;填上了第二行的第三列數據&#xff1b;就像按列寫數據&#xff0c;碰到空值&#xff0c;下一行數…

并行Builder-輸出型流程編排的新思路

如果對于框架的介紹不感興趣的可以直接跳到Getting Started快速開始 在設計一款數據加載編排框架時&#xff0c;除了任何框架都必須具備的可靠性與穩定性之外&#xff0c;對于本次編排框架的設計&#xff0c;我們把核心目標放在高性能與易用性上。這不僅要求框架能夠快速、高效…