YOLO--目標檢測基礎

一、基本認知

1.1目標檢測的定義

? ? ? ? 目標檢測(Object Detection):在圖像或視頻中檢測出目標圖像的位置,并進行分類和識別的相關任務。

? ? ? ? 主要是解決圖像是什么,在哪里的兩個具體問題。

1.2使用場景

? ? ? ? 目標檢測的使用場景眾多,比如疫情期間有是否帶口罩的目標檢測,現在十分火爆的智能駕駛、安防監控、人臉檢測等都用到了目標檢測。

1.3目標識別與標注

? ? ? ? 目標識別包含了分類標簽信息和圖像坐標信息(x,y,w,h),其中(x,y)是中心點的位置坐標,w為寬度,h為高度。

????????目標標注可以選擇使用labelimg或者labelme ,但是常用的是labelimg,它可以直接生成txt文件,直接用在YOLO算法中。

? ? ? ? labelimg下載指令:

#創建虛擬環境
conda create -n labelenv python=3.9 -y
#激活虛擬環境
conda activate labelenv
#下載pyqt和sip
conda install -c conda-forge pyqt=5.15.4 sip=6.5.1 -y
#阿里云下載labelimg,注釋的內容是降低Set的版本的,根據實際情況查看是否需要
#pip install setuptools==65.5.0 -i https://mirrors.aliyun.com/pypi/simple/
pip install labelimg==1.8.6 -i https://mirrors.aliyun.com/pypi/simple/
#啟動labelimg開始進行圖像標注
labelimg

二、網絡基礎

2.1目標檢測方法

? ? ? ? 這里主要介紹一步到位法:one-stage

one-stage是單階段,一步到位,特點如下:

(1)直接從圖像中提取特征并進行分類和回歸,即同時進行目標分類、位置回歸;

(2)計算速度快,適合實時使用;

(3)經典算法:YOLO系列、SSD。

????????注意:NMS?是?Non-Maximum Suppression(非極大值抑制)?的縮寫,是一種用于去除冗余檢測框的關鍵后處理技術。?

2.2目標檢測指標

2.2.1目標框指標

? ? ? ? 目標框(Bounding Box):檢測目標物體時,會帶有的一個標注框,用于表示目標的位置和大小。

IoU

IoU:預選框正確性的度量指標,其中A通常表示真實框,B表示預測框。計算公式如下:

confidence

confidence:置信度,表示該框包含目標的概率以及預測框的定位準確性。

計算公式:

2.2.2精度和召回率

? ? ? ? 在了解精度和召回率之前,我們要了解的是混淆矩陣:

?????????注意:這里的正類和負類不能按照平常認知來區分,只要是根據目標任務的要求來,若要求檢測的是工廠里的殘次品,那么此刻這里的正類就是殘次品。

????????準確度:預測正確的樣本數與總數的比例

A = TP+TN/(TP+TN+FP+FN)

????????精確度:正類中預測正確的比例

P = TP/(TP+FP)

????????召回率:目標檢測中找到的正類的比例

R = TP/(TP+FN)

????????F1分數:精確度和召回率的平均數

F = 2*(P * R)/(P + R)

2.2.3mAP的計算

? ? ? ? mAP是評估模型的綜合指標,主要是根據召回率和精確度進行計算的。但是暫時只記錄AP的計算方法。

Top-N:?返回前N個框計算指標

AP(平均精度):

(1)根據公式計算,直接求平均值得到AP值

(2)還是會利用公式,然后根據最大值所在高度的矩形面積相加得到AP值

?

三、NMS

3.1簡單介紹

? ? ? ? NMS(Non-Maxmum suppression)非極大值抑制:是目標檢測目標庫后處理的方法。

它的出現主要是為了解決對同一個檢測目標出現多個目標框的問題。

如圖,在最后的結果中,我們往往只需要一個最終的,最準確的目標框,所以NMS就發揮了很大的作用。

3.2運算流程

(1)設置IoU(目標框置信度閾值),一般設為0.5,小于這個值的框會被過濾,一般是用來過濾網格中心Bounding Box中沒有預測到目標的目標框;

(2)根據置信度進行降序排列候選框;

(3)將置信度最大的框添加到輸出列表,并將這個框從候選框中刪除;

(4)候選框中的所有框與輸出列表的框計算IoU,刪除大于IoU閾值的框(這是因為大于閾值的框可能與目標框相似,預測的是同一個目標,這就有一個去重的意思在的感覺)

(5)重復三、四步驟,直到候選框列表為空;

(6)輸出列表就是最后的目標框。

3.3 API

pred?=?non_max_suppression(pred,conf_thres=0.25,iou_thres=0.45,classes,agnostic_nms,max_det=max_det)

參數解釋:

classes

  • 類別限制(Classes):這個參數用于指定只對特定類別的目標進行NMS操作。如果它是一個整數(例如classes=0),則僅對類別0的目標進行NMS;如果它是一個列表(例如classes=[0, 2, 3]),則僅對類別0、2、3的目標進行NMS。如果不傳遞該參數,NMS會對所有類別進行操作。

agnostic_nms

  • 類別無關的NMS(Class-Agnostic NMS):如果該參數設置為True,NMS會忽略目標的類別信息,所有的框會一起進行NMS處理,不論它們屬于哪個類別。如果設置為False(默認值),則會分別對每個類別進行NMS操作,意味著同一類別的框才會相互抑制,而不同類別的框不會相互影響。

max_det=max_det

  • 最大檢測數量(Maximum Detection):這個參數控制NMS后返回的最大框數。它限制了每張圖片中最多保留多少個框(目標)。例如,max_det=100表示每張圖片最多保留100個框,超出這個數量的框會被刪除。

四、檢測速度

4.1前傳耗時

? ? ? ? 從輸入圖像到輸出結果所消耗的時間。單位毫秒。

4.2FPS

? ? ? ? FPS(frames per second),每秒鐘能處理的圖像數量。YOLO目標檢測中要求實時監測的最低要求就是一秒鐘處理30張圖像。

4.3FLOPs

? ? ? ? 浮點運算量,處理一張圖像所需要的浮點運算數量。

五、整體網絡結構

5.1網絡結構圖

簡單理解:?

  • 輸入圖像input

    • 模型的輸入是圖像,圖像經過后續的處理,生成預測結果。

  • 單階段檢測器(One-Stage Detector)

    • Backbone:負責提取圖像的特征,通常使用卷積神經網絡(CNN)來獲取圖像的特征表示。

    • Neck:通常由額外的網絡層(如FPN,特征金字塔網絡)組成,用于進一步處理特征圖并增強不同尺度的信息。

    • Dense Prediction:在這個階段,模型對圖像進行密集的預測,通常會生成大量的候選框,并為每個候選框預測類別和邊界框回歸。

    • Detection Head:最后,模型的檢測頭會處理預測結果,選擇最優的邊界框并進行分類。

  • 雙階段檢測器(Two-Stage Detector)

    • Backbone & Neck:與單階段檢測器類似,特征提取和處理。

    • Sparse Prediction:與單階段檢測器的密集預測不同,雙階段檢測器會在第一階段產生少量候選框(即稀疏預測),然后通過第二階段(如RPN, 區域提議網絡)對這些候選框進行精細調整。

5.2YOLO網絡結構

? ? ? ? 該圖展示了目標檢測模型的架構,模型主要是YOLOv1-v5。參數部分要注意:

FC → 7×7×(5+5+20)(v1):這是一個全連接層(Fully Connected)到7×7的輸出,5表示邊界框的4個坐標(x,y,h,w)加一個置信度值,20表示類別數(即分類任務中的類別數)。

13×13×5×(5+20)(v2):通過卷積層進行目標檢測,每個特征圖位置有5個錨框(Anchor boxes),每個錨框有5個參數(4個坐標(這四個坐標主要是預測參數----邊界框回歸參數(t_x, t_y, t_w, t_h))和1個置信度)和20個類別預測。

13×13×3×(5+80)(v3-v5):這個結構表示輸出為3個尺度的特征圖,每個尺度對應一個不同大小的特征圖,預測5個錨框的坐標和80個類別。不同版本的模型在Head的結構上略有差異。

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

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

相關文章

GitLab 18.2 發布幾十項與 DevSecOps 有關的功能,可升級體驗【四】

沿襲我們的月度發布傳統,極狐GitLab 發布了 18.2 版本,該版本帶來了議題和任務的自定義工作流狀態、新的合并請求主頁、新的群組概覽合規儀表盤、下載安全報告的 PDF 導出文件、中心化的安全策略管理(Beta)等幾十個重點功能的改進…

Python----大模型(大模型微調--BitFit、Prompt Tuning、P-tuning、Prefix-tuning、LORA)

一、大模型微調 1.1、解釋 微調(Fine-tuning)是在預訓練大模型基礎上,針對特定領域數據進行二次訓練的技術過程。這一過程使大型語言模型(如GPT、BERT等)能夠更好地適應具體應用場景,顯著提升在專業領域的表現。 1.2、微調的基本流程 模型選擇&#xf…

本地安裝 SQLite 的詳細步驟

方法 1:使用預編譯二進制文件 下載 SQLite: 訪問 SQLite 官方下載頁面。 下載 Precompiled Binaries for Windows 中的 sqlite-tools-win32-x86-*.zip。 解壓文件: 將下載的 ZIP 文件解壓到一個目錄(例如 C:\sqlite)。 配置環境變量: 右鍵「此電腦」→「屬性」→ 左側「高…

專題:2025醫藥生物行業趨勢與投融資研究報告|附90+份報告PDF、原數據表匯總下載

原文鏈接:https://tecdat.cn/?p43444 圈內人都知道,2024年的BioChina展會現場,某跨國藥企高管盯著融資展板喃喃自語:“去年A輪平均3.2億,今年怎么降到2.1億了?” 這個細節,恰是行業寒冬的縮影…

Chroma安裝教程

Chroma 這里講述的是windows環境 下載Chroma安裝包 下載地址:https://github.com/chroma-core/chroma/releases 運行 chroma-windows.exe run --port 8000通過心跳檢測訪問是否正常 http://localhost:8000/api/v2/heartbeat快速使用 python安裝chromadb pyth…

kali Linux 2025.2安裝教程(解決安裝失敗-圖文教程超詳細)

一,下載鏡像: 進入官網:Get Kali | Kali Linux ,往下滑 等待兩年半,鏡像下載好。 二,虛擬機安裝: 轉:VMware Workstation Pro 17 安裝圖文教程 知乎平臺:VMware Work…

uniapp項目使用ucharts實現折線圖詳細講解(案例)

1.在Hbuildx里面的工具>插件安裝,進入DCloud搜索uchart 2.點擊對應的項目導入該插件 可以看到在該目錄下有該插件 3.進入官網演示 - uCharts跨平臺圖表庫,找一個示例代碼測試一下,是否可以成功應用 因為這里使用的是vue2,如果你…

數據分析師進階——95頁零售相關數據分析【附全文閱讀】

這份資料適合零售行業從業者,尤其是服裝銷售領域的人員,能幫大家用數據分析提升銷售業績。資料先提出 “店鋪 20 問”,引導思考店鋪運營問題,接著點明數據分析對提升銷售、找出銷售不佳原因的重要性 。詳細介紹銷售業績相關公式及…

計算機組成原理(6) - 加法器

加法器是數字電路中用于執行加法運算的基本邏輯單元,廣泛應用于計算機、計算器、數字信號處理器等電子設備中。它能將兩個二進制數相加,并輸出結果及可能產生的進位。一、加法器的基本功能加法器的基本功能是在數字電路中對輸入的二進制數執行加法運算&a…

Qt 與 WebService 交互開發

在現代軟件開發中,WebService 已成為實現跨平臺、跨語言通信的重要標準。Qt 作為一個強大的跨平臺框架,提供了完善的工具和類庫來實現與 WebService 的交互。本文將深入探討 Qt 與 WebService 交互開發的核心技術和實踐經驗,包括 SOAP 協議實…

LLM 模型部署難題的技術突破:從輕量化到分布式推理的全棧解決方案

大語言模型(LLM)的部署一直是工業落地的核心挑戰。動輒百億甚至萬億參數的模型規模,對硬件資源、推理速度和系統穩定性提出了嚴苛要求。本文將系統剖析 LLM 部署中的關鍵技術瓶頸,從模型壓縮、推理加速到分布式架構設計,提供可落地的工程化解決方案,并附具體實現代碼。 …

理解訓練深度前饋神經網絡的困難—— 解鎖深度學習的關鍵鑰匙

2010年,深度學習先驅 Xavier Glorot 和 Yoshua Bengio 發表了這篇里程碑式的論文。它精準地診斷了當時阻礙深度神經網絡發展的核心頑疾——**梯度消失/爆炸問題**,并開出了革命性的“藥方”:**Xavier/Glorot 初始化**。這篇論文掃清了訓練深度…

Objective-c 初階——異常處理(try-catch)

一、try/catch/throw/finally 執行順序 void doSomething() {NSAutoreleasePool *pool [[NSAutoreleasePool alloc] init];try {// 這一步拋異常[self riskyMethod]; } catch (NSException *e) {throw; // 把異常繼續往上拋} finally {// ? 注意:這里的 finally…

計算機網絡:(十二)傳輸層(上)運輸層協議概述

計算機網絡:(十一)多協議標記交換 MPLS前言一、運輸層的作用二、基于端口的復用和分用功能三、屏蔽作用四、可靠信道與不可靠信道五、運輸層的兩個主要協議前言 前面我們講解了計算機網絡中網絡層的相關知識,包括網絡層轉發分組的…

一場關于電商零售增長破局的深圳探索

“電商AI,不再是選擇題”2025年,電商行業正面臨流量成本攀升、用戶留存率下降、供應鏈協同效率低等核心困境,傳統數字化工具已難以滿足精細化運營需求。在此背景下,百度智能云正加速布局電商領域,為零售企業提供從基礎…

當非洲愛上“中國制造”:如何贏在起跑線

非洲大陸的消費浪潮正以前所未有的速度奔涌。2025年前五個月,中非貿易額同比暴漲12.4%,創下歷史新高。在這片擁有14億人口的土地上,60%是30歲以下的年輕人,城鎮化浪潮席卷、中產階級快速崛起,從家電、汽車到建材、電子…

vLLM(3)vllm在線啟動集成openweb-ui

文章目錄**步驟 1: 啟動 vLLM 服務****方式 1: 直接命令行啟動****方式 2: Docker 啟動****步驟 2: 配置 Open WebUI 連接 vLLM****方法 1: 修改 Open WebUI 環境變量****方法 2: 通過 docker-compose.yml 部署****步驟 3: 在 Open WebUI 中添加模型****驗證是否成功****常見問…

Python----大模型(基于Agent的私人AI助理項目)

開發一個智能的問答系統,該系統支持用戶聊天,傳輸文件。通過自然語言處理技術,機器人能夠理解用戶的意圖。機器人將利用互聯網搜索引擎來補充信息,確保用戶能夠獲得全面且準確的回答。 一、web ui界面 我們采用gradio來編寫的ui界…

Python爬蟲實戰:研究scrapely庫相關技術構建電商數據提取系統

1. 引言 在當今數字化時代,網絡上蘊含著海量的有價值信息。如何從這些非結構化的網頁中自動提取出結構化的數據,成為了數據挖掘和信息檢索領域的重要研究課題。網絡爬蟲作為一種自動獲取網頁內容的技術,被廣泛應用于信息收集、數據分析等領域。然而,網頁結構的多樣性和復雜…

Orange的運維學習日記--18.Linux sshd安全實踐

Orange的運維學習日記–18.Linux sshd安全實踐 文章目錄Orange的運維學習日記--18.Linux sshd安全實踐場景模擬sshd配置需求:參數表格:MOTD警告定期備份SSH密鑰與配置登錄防護:fail2ban測試與日志場景模擬 你是某金融科技公司的Linux運維工程…