Yolo底層原理學習--(第二篇)

一,IOU置信度與非極大值抑制NMS

在第一篇文章中我們講到,對于一張圖片,在前向傳播的過程后(也就是卷積,池化,全連接等等),會生成許許多多個預測框,那么怎么從這么多預測框篩選出最好的幾個框來達到預測功能呢?這里就需要用到IOU和非極大值抑制。


(1)IOU:

什么是IOU?

(1.1)訓練階段:

在模型訓練階段IOU會首先篩選置信度小于閾值的檢測框,接著將剩下的預測框與人工標注的真實框做IOU匹配,用來判斷是否正確檢測到了目標,為后面的反向傳播做準備

(1.2)推理預測階段:

用于非極大值抑制,

推理階段計算IoU的主要目的是篩選重疊的預測框,避免重復檢測同一個目標。具體步驟如下:

  1. 按置信度排序:將所有預測框按置信度從高到低排序。
  2. 選擇最高置信度的框:保留置信度最高的框作為有效檢測。
  3. 計算IoU:計算該框與其他所有未處理的框的IoU。
  4. 抑制重疊框
    • 如果某個框與當前最高置信度框的IoU超過閾值(如0.5),則認為它們檢測的是同一個目標,因此丟棄置信度較低的框
      這里是什么意思呢?就是說因為一個物體必然會占據7*7個小方格中的許多個,都是有效檢測的,如果采取只保留置信度最高的,那么如果圖片里面有多個同類物體,那么只能檢測一個類別物體中的一個,所以我們采用IoU超過閾值(如0.5)舍棄的方法,因為如果兩個同類物體雖然置信度都很高,但是彼此不重疊,所以iou值很低,不會被刪除,這樣既能獲取最高的置信度框,又能避免刪去同類的其他物體,而這就是非極大值抑制
    • 重復上述過程,直到處理完所有框。

ps:類別置信度=(確實有目標物體的前提下)置信度×類別概率

后處理階段=IOU+NMS?

二,關于YOLOV2的改進點?

在yolov1的基礎上,yolov2進行了許多改進,讓我們來看看吧~

改進點有:

2.1 引入批歸一化(Batch Normalization, BN)層

問題來源:如下圖左邊:

當我們在進行數據輸入時,我們知道,很多數據的量綱是不統一的。如果此時大小較小的數據?

更為重要,那很明顯w1的值就要很大,但是由于梯度下降時漸進的,這時參數更新可能需要很多步才能到達最優點。而如果我們進行歸一化操作(如右圖),那么梯度更新將變得不那么復雜。也就是說,歸一化后的數據分布更穩定,網絡在訓練時更容易找到最優解,從而加快收斂速度。

當然,加入BN層還有其他好處。


2.1.1 BN層計算步驟


2.2 采用高分辨率網絡訓練?

相較于yolov1,yolov2先用低分辨率進行訓練,之后再用實際檢測需要的高分辨率數據進行再訓練,有效提高了準確率。

?2.3 刪去全連接層 -->convolutional

?

(1)最后的幾個全連接層以及前面的最后一個pool層被刪去,這有利于獲得更高分辨率的圖片。

(2)采用416*416進行輸入的原因是最后的輸出是13*13是奇數矩陣,原來是偶數矩陣的弊端是,按照統計規律,圖片目標物體位于中心的可能性較大,這時物體中心點很可能位于映射邊框上,使得模型難以區分該點是屬于哪一格子里的。

(3)采用解耦合的好處,原來的格子是2個檢測框,每個格子的類別概率同屬2個檢測框,這樣會使得兩個檢測框只能檢測同一種物體。而解耦合能使得每個檢測框都有自己獨立的類別檢測概率,從而實現一個格子里面可以檢測出多種物體。


2.3.1 采用anchor錨框

?怎么理解這個錨框呢?就是我們考慮到yolo模型通過主干網絡提取的信息來確定框框的大小還是有點難的,所以我們給他點“提示”,我們先設定了大小,長寬比不同的box(共9個,后面會通過聚類算法減成5個),之后模型基于此anchor等比例縮放(而不是從0開始畫),就能比較好的結合獲取到的全局特征,檢測出物體并正確畫框。


因此,基于convolutional+anchor,我們最后的輸出將變成13×13×125.其中125=(5(5個框)*25(每個框都有獨立的x,y,w,h,c+20個類別,且每個框都有anchor輔助)

?

同時,作者還采用聚類分析來自動設定anchor錨框,極大提高了準確性。

?2.3.2 引入了新的網絡架構Darknet-19

?2.4 采用了passthrough

這里就是說為了能夠保留細節信息,我們將某一階段卷積之后圖像先通過passthrough(也就是說如果最后輸出是13*13*m,那么我們就要將該圖像變換成13*13*4*n(n代表通道數,可以和m不一樣),然后將該圖像與最后輸出的特征圖進行contact操作,這樣最后輸出的圖像既有特征提取的,也保留了細節信息。

?

2.5 多尺度訓練?

?ok,that's all。知識瘋狂涌進腦子,消化不過來了

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

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

相關文章

國內短劇CSP系統開發:技術架構與合規實踐全解析

一、行業背景與政策驅動2025年,中國網絡微短劇行業迎來法治化轉型的關鍵期。國家廣播電視總局《關于進一步統籌發展和安全促進網絡微短劇行業健康繁榮發展的通知》明確實施"分類分層審核"制度,將微短劇劃分為重點微短劇(投資≥100萬…

http請求訪問響應慢問題解決的基本思路

一、明確問題現象:先確定 “慢” 的特征在排查前,需先收集基礎信息,縮小問題范圍:是否所有請求都慢? 還是僅特定接口(如帶數據庫操作的接口)、特定時間段(如高峰期)、特定…

Vue.js的核心概念

Vue.js的核心概念可歸納為以下關鍵點,結合最新技術演進與實踐場景:一、響應式數據綁定?雙向綁定機制?:通過Object.defineProperty(Vue 2)或Proxy(Vue 3)實現數據劫持,自動追蹤依賴…

新手小白做一個簡單的微服務

我不太懂微服務框架,自己跟了個視頻嘗試做一套簡單的微服務框架,跟著做的時候,發現這個視頻很適合初學者 https://www.bilibili.com/video/BV1684y1T7oW/?spm_id_from333.337.search-card.all.click&vd_source61882010e50d6b158eb87c148…

C語言筆記4:錯題整理

#1.1 編程題 判斷101-500之間有多少個素數&#xff0c;放入數組中&#xff0c;遍歷數組輸出所有素數&#xff0c; 素數&#xff1a; 除了1和它本身以外不再有其他的因數。 具體實現 就用DeepSeek了 以下是AI生成代碼&#xff1a; #include <stdio.h> #include <math.h…

Mysql join語句

join 語句用于實現多表查詢。 Index Nested-Loop Join select * from a join b on a.idb.id。對于兩張表 a 和 b&#xff0c;Mysql 優化器會選擇其中一張表執行全表掃描&#xff0c;稱為驅動表。對于驅動表每一數據行&#xff0c;在被驅動表查詢數據&#xff0c;將結果組合返回…

Spring AI 系列之三十 - Spring AI Alibaba-其它模型

之前做個幾個大模型的應用&#xff0c;都是使用Python語言&#xff0c;后來有一個項目使用了Java&#xff0c;并使用了Spring AI框架。隨著Spring AI不斷地完善&#xff0c;最近它發布了1.0正式版&#xff0c;意味著它已經能很好的作為企業級生產環境的使用。對于Java開發者來說…

【Flutter3.8x】flutter從入門到實戰基礎教程(五):Material Icons圖標的使用

flutter給我們內置準備了很多圖標&#xff0c;這些圖標可以使我們在沒有設計師的前提下&#xff0c;也能做出自己滿意的app icon網站 https://material.io/tools/icons/進入網站后&#xff0c;點擊我們需要的圖標&#xff0c;然后滑動找到flutter的tab選項&#xff0c;就可以看…

算法訓練營day38 動態規劃⑥ 322. 零錢兌換、279.完全平方數、139.單詞拆分、多重背包

動態規劃的第六篇&#xff01;背包問題總結篇&#xff01; 322. 零錢兌換 題目中說每種硬幣的數量是無限的&#xff0c;可以看出是典型的完全背包問題。但是如何找最小的“組合”呢&#xff1f;&#xff08;通過dp數組的不同定義 與 遞推公式&#xff09; 確定dp數組以及下標的…

vue+element 實現下拉框共享options

背景 用戶的需求總是多樣的&#xff0c;這不用戶想做個下拉連選&#xff0c;每選一個基金&#xff0c;下方表格多一行&#xff0c;選擇對應的重要性&#xff0c;任務&#xff1b;問題 其他都好弄&#xff0c;任務是遠程搜索&#xff0c;選擇人的單選下拉&#xff0c;如果每個下…

centos服務器安裝minio

1.創建目錄和下載文件 #創建相關文件夾 mkdir -p /home/minio mkdir -p /home/minio/bin mkdir -p /home/minio/data#進入上面創建的bin目錄下 cd /home/minio/bin#下載minio&#xff08;最新版minio無法通過頁面的控制臺配置accesskey建議選擇2024年的版本操作&#xff09; ht…

【云故事探索】NO.16:阿里云彈性計算加速精準學 AI 教育普惠落地

智能精準學寒雪老師 X 阿里云彈性計算&#xff1a;以堅實算力底座&#xff0c;實現 AI 一對一教育普惠的愿景 【導語】 當全球首個 K12 教育超級智能體“寒雪老師”在深夜為萬千學子答疑解惑&#xff0c;支撐其流暢互動的&#xff0c;是阿里云彈性計算 15 年淬煉的堅實算力底座…

forge篇——配置

從這篇文章開始,我們開始研究forge代碼,以下是forge源代碼和代碼解析 ForgeConfigSpec 類詳細解析 ForgeConfigSpec 是 Minecraft Forge 模組開發中的核心配置類,基于 NightConfig 庫實現,提供了類型安全、驗證和自動糾正功能。以下是關鍵部分的詳細解釋: 1. 類定義與基…

全新發布|知影-API風險監測系統V3.3,AI賦能定義數據接口安全新坐標

7月31日&#xff0c;全知科技「知影-API風險監測系統V3.3」版本正式上線。在版本發布直播中&#xff0c;全知科技資深產品經理裴向南系統講解了V3.3版本的核心亮點、能力升級與后續產品規劃方向。作為全知科技自主研發的核心產品&#xff0c;「知影-API風險監測系統」自2017年起…

動作捕捉技術重塑具身智能開發:高效訓練與精準控制的新范式

具身智能&#xff08;Embodied AI&#xff09;是指智能體通過與環境交互實現感知、學習和決策的能力&#xff0c;其核心在于模擬人類或生物的形態與行為。具身智能的發展意義在于突破傳統AI的局限性&#xff0c;使機器能夠適應復雜多變的真實場景&#xff0c;從而在工業制造、醫…

【Andriod Studio】勾選不了Android SDK,提示unavailable

首先&#xff0c;直接說結論——網絡&#xff08;代理&#xff09;有問題 先看第一個文章里面說的&#xff0c;https://blog.csdn.net/weixin_53485880/article/details/128200878 要確定自己沒有開啟代理&#xff08;就是Set proxy里選cancel&#xff09;&#xff0c;安裝SDK…

數據結構與算法——字典(前綴)樹的實現

參考視頻&#xff1a;左程云--算法講解044【必備】前綴樹原理和代碼詳解 類實現&#xff1a; class Trie {private:class TrieNode {public:int pass;int end;vector<TrieNode*> nexts;TrieNode(): pass(0), end(0), nexts(26, nullptr) {}};TrieNode* root; // 根指針…

STORM代碼閱讀筆記

默認的 分辨率是 [160,240] &#xff0c;基于 Transformer 的方法不能做高分辨率。 Dataloader 輸入是 帶有 pose 信息的 RGB 圖像 eval datasets ## 采樣幀數目 20 num_max_future_frames int(self.timespan * fps) ## 每次間隔多少個時間 timesteps 取一個context image n…

2025電賽G題-發揮部分-參數自適應FIR濾波器

&#xff08;1&#xff09;測評現場提供由RLC元件&#xff08;各1個&#xff09;組成的“未知模型電路”。 按照圖3所示&#xff0c;探究裝置連接該電路的輸入和輸出端口&#xff0c;對該電路進行 自主學習、建模&#xff08;不可借助外部測試設備&#xff09;&#xff0c;2分鐘…

Linux基礎 -- 內核快速向用戶態共享內核變量方案之ctl_table

系統化、可直接上手的 /proc/sys sysctl 接口使用文檔。內容涵蓋&#xff1a;機制原理、適用場景、ctl_table 字段詳解、常用解析器&#xff08;proc_handler&#xff09;完整清單與選型、最小樣例到進階&#xff08;范圍校驗、毫秒→jiffies、字符串、數組、每網絡命名空間&a…