深度學習 目標檢測常見指標和yolov1分析

目錄

一、常見指標

1、IoU

2、Confidence置信度

3、精準度和召回率

4、mAP

5、NMS方法

6、檢測速度

前傳耗時

FPS

7、FLOPs

二、YOLOv1

檢測流程

1、圖像網格劃分

2、類別預測

3、輸出張量

損失函數

優點

缺點


如題,這篇介紹一下目標檢測中常見的一些指標以及簡單分析一下 yolov1 的模型結構。

首先得知道什么是目標檢測:目標檢測(Object Detection)是計算機視覺領域的核心任務之一,旨在識別圖像或視頻中感興趣的物體,并確定它們的位置和類別。與圖像分類(僅識別物體類別)不同,目標檢測需要同時解決分類(whats)和定位(where)兩個問題。

一、常見指標

1、IoU

I 代表【交集】Intersection ,U 代表【并集】Union,IoU全稱是?Intersection over?Union,也就是交并比,舉個例子:

?IoU 值越大代表兩個框的重疊度就越高

2、Confidence置信度

在 YOLO 中,每個預測框都有一個 置信度分數,表示該框包含目標的概率以及預測框的定位準確性,公式如下:

?因此,一個框的置信度越高說明:模型認為該框中高概率存在目標,以及預測框和真實框的位置高度吻合。

3、精準度和召回率

首先要了解混淆矩陣:

  • TP(真正例):模型正確預測為正類(如“是貓”且真是貓)。

  • FN(假反例):模型錯誤預測為負類(真實是貓但預測“非貓”)。

  • FP(假正例):模型錯誤預測為正類(真實非貓但預測“是貓”)。

  • TN(真反例):模型正確預測為負類(真實非貓且預測“非貓”)。

混淆矩陣可以直觀展示分類模型的預測結果與真實標簽的對比,而由混淆矩陣又衍生出精準度(Precision )和召回率(Recall )。

精準度(Precision )定義:模型預測為正類的樣本中,有多少是真正的正類,一句話:檢查誤檢的情況。

公式:
?

召回率(Recall )定義:真正為正類的樣本中,有多少被模型正確地預測,一句話:檢查漏檢的情況。

公式:

4、mAP

首先要知道 AP是什么,AP 是針對單個類別的檢測質量評估,綜合考量不同置信度閾值下的精準率(Precision)和召回率(Recall),而 mAP(Mean Average Precision) 就是所有類別的AP的平均值,綜合評估模型在所有類別上的整體性能。先計算AP才能得到 mAP,舉個小例子:

現在假設有8個目標,但是檢測出來有20個目標框,目標框的置信度以及正負樣本預測結果如下(IoU閾值假設為0.5):

IDConfidenceTPFPIoULabel
10.23010.10
20.76100.81
30.01010.20
40.91100.91
50.13010.20
60.45010.30
70.12100.81
80.03010.20
90.38100.91
100.11010.10
110.03010.20
120.09010.40
130.65010.30
140.07010.20
150.12010.10
160.24100.81
170.10010.10
180.23010.10
190.46010.10
200.08100.91

計算AP步驟:首先將所有目標框按置信度從高到低排序(這里嚴格來講是要再重新標記TP 和FP的,但是因為表格的 TP/FP 列嚴格基于 IoU≥0.5 和 Label 匹配規則所以可以直接使用,然后我直接用 label 為1 表示 TP,為0 表示 FP ):

IDConfidenceLabel
40.911
20.761
130.650
190.460
60.450
90.381
160.241
10.230
180.230
50.130
70.121
150.120
100.110
170.100
120.090
200.081
140.070
80.030
110.030
30.010

然后對前 N?個框計算?Precision 和?Recall,N取 1-20:例如 N 為5時,前五行的 TP=2,FP=3,目標一共有8個,則 Precision = 2/5 = 40%,Recall = 2/8 = 25%,計算表格如下:

前N行ConfidenceLabelRecallPrecision
10.9111/8(0.125)1/1
20.7612/8(0.25)2/2
30.6502/8(0.25)2/3
40.4602/8(0.25)2/4
50.4502/8(0.25)2/5
60.3813/8(0.375)3/6
70.2414/8(0.5)4/7
80.2304/8(0.5)4/8
90.2304/8(0.5)4/9
100.1304/8(0.5)4/10
110.1215/8(0.625)5/11
120.1205/8(0.625)5/12
130.1105/8(0.625)5/13
140.1005/8(0.625)5/14
150.0905/8(0.625)5/15
160.0816/8(0.75)6/16
170.0706/8(0.75)6/17
180.0306/8(0.75)6/18
190.0306/8(0.75)6/19
200.0106/8(0.75)6/20

最后再由11點插值法計算 AP,公式如下:

比如當 Recall=0.1時,精度值為?Recall=0.1-0.2 (當前閾值和下一級閾值都能取到)之間的最大值,即1,當Recall=0.2時,?精度值為?Recall=0.2-0.3?之間的最大值,也為1,依次計算得到:

R00.10.20.30.40.50.60.70.80.91.0
P1.01.01.00.50.5710.5710.4550.375000

所以 AP 為:

這里因為只有一個類別,所以 mAP = AP = 49.75%,若再多一個類別 label = 2,則再重復上面的操作,假設得到 label = 2的 AP 為70.25%,則整個 mAP 為 (0.4975+0.7025)/2 = 0.6,即 60%

5、NMS方法

NMS 非極大值抑制(Non-maximum suppression)不是一個指標,而是一個目標檢測的后處理方法,當檢測目標有多個目標框時就需要 NMS來確定最終的一個框,主要用于優化檢測結果,計算步驟如下:

  1. 設定目標框置信度閾值,常用閾值0.5,小于該值的框(質量不太好)會被過濾掉

  2. 根據置信度降序排列候選框;

  3. 選取置信度最高的框A 將其添加到輸出列表,并從候選框列表中刪除;

  4. 候選框列表中所有框依次與 框A 計算 loU,刪除大于IoU閾值(高度重疊)的框(可以檢測同一個類別的多個目標,比如一張圖中不會只有一個人,如果光找置信度最高的框,只會選出一個的框,因為置信度包含某一個大類別的概率)

  5. 重復上述過程,直到候選框列表為空;

  6. 輸出列表就是最后留下的目標框,在保留多個目標的同時,去掉對同一個目標的重復預測框。

但是缺點也比較明顯,就是一個框只能預測一個結果,如果有兩個及其以上的目標重疊在一起,則可能會丟失目標,所以后續會優化

6、檢測速度

前傳耗時

單位 ms,從輸入圖像到輸出最終結果所消耗的時間,包括前處理耗時(如圖像歸一化)、網絡前傳耗時、后處理耗時(如非極大值抑制)。

FPS

Frames Per Second,每秒鐘能處理的圖像數量,一般每秒處理36幀才能處理實時數據。

7、FLOPs

浮點運算量,處理一張圖像所需要的浮點運算數量,跟具體軟硬件沒有關系,可以公平地比較不同算法之間的檢測速,計算公式為:

例如,一張64x64x128的特征圖用 3x3 的卷積核卷完后,最終輸出的通道數為256,則這個過程中的浮點運算量為 (64x64) x128x (3x3) x256 .

二、YOLOv1

YOLOv1(You Only Look Once version 1)是2016年由Joseph Redmon等人提出的首個基于單階段(one-stage)目標檢測算法,其核心思想是將目標檢測任務轉化為單一的回歸問題,通過一次前向傳播即可直接預測目標的類別和位置,下面具體講解一下檢測流程(網絡結構這些苯人就不說了):

檢測流程

1、圖像網格劃分

?將輸入圖像劃分為 SxS 個網格(論文中S=7),每個格子預測 B 個?Bounding Box(論文中B=2),其中每個框包括中心點坐標(x, y)、寬w、高h、置信度conf

2、類別預測

每個格子預測 20 個類別的概率(當時VOC數據集是20分類 )

3、輸出張量

最終輸出維度為 7x7x30:

這里的 7x7 代表格子數,30 = 2x5+20,2x5 表示兩個框內的中心坐標、寬高以及置信度,20表示每個格子代表的20個類別概率,最終會選擇置信度較大的框作為預測結果。

損失函數

整個YOLOv1的損失函數由五部分組成:

合并后的公式如下:

這里就不詳細介紹了,可以自己研究研究,那個?1{}^{}{}^{obj}(下標為ij) 代表的意思是如果第i個格子第j個框有物體時則值為1,反之為0.

優點

  • 速度快:單階段檢測,實時性強(45 FPS,快速版達150 FPS)。

  • 全局推理:直接處理整張圖像,減少背景誤檢(相比R-CNN系列)。

  • 端到端訓練:簡化流程,無需區域提議。

缺點

  • 定位精度較低:尤其對小目標和密集目標檢測效果差(網格劃分限制)。

  • 每個網格僅預測一類:難以處理重疊目標。

  • 邊界框形狀受限:預設的Anchor機制未引入(YOLOv2改進)

這篇就到此為止,下一篇可能是YOLOv2?~ (??????)??

以上有問題可以指出。

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

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

相關文章

31. 偽類和偽元素區別

總結 選擇對象不同內容說明偽類作用對象元素的狀態或位置偽元素作用對象元素的一部分內容或虛擬內容是否新增節點均不新增節點常用符號:(偽類)、::(偽元素)推薦場景偽類用于交互與狀態控制;偽元素用于樣式修飾與內容插…

ChatGPT、Playground手動模擬Agent摘要緩沖混合記憶功能

01. 摘要緩沖混合記憶 摘要緩沖混合記憶中,所需的模塊有: chat_message_history:存儲歷史消息列表。moving_summary_buffer:移除消息的匯總字符串。summary_llm:生成摘要的 LLM,接收 summary(…

全國青少年信息素養大賽(無人飛行器主題賽(星際迷航)游記)

作者 FHD_WOLF 發布時間 2025-07-30 21:31 分類 生活游記 騎你的 白馬啊 行你欲行的路 風吹來 花落涂 點一欉香祈求 ---------萬千花蕊慈母悲哀從考場出來,剩下的只有無盡極樂 考前準備: 1.電腦充電。 (這個賽項需要自帶設備&#x…

Kubernetes (K8s) 部署資源的完整配置OceanBase

Kubernetes Deployment 配置(oceanbase-deployment.yaml) # oceanbase-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: oceanbase-deployment spec:replicas: 1selector:matchLabels:app: oceanbasetemplate:metadata:labels:app…

ACS-電機控制Buffer-任意路徑規劃(PVSPLINE繪制圓形)

該程序是一個雙軸運動,繪制圓形 原始程序(可以直接使用) GLOBAL INT X1,Y1,ii GLOBAL REAL MY_ARRAY(4)(12) GLOBAL REAL piX1 0; Y1 1 ! Axis assignment pi ACOS(-1) ! Shortcut for generating piii 0 LOOP 12MY_ARRAY(0)(ii) COS(…

MongoDB Change Streams 實時數據變更流處理實戰指南

MongoDB Change Streams 實時數據變更流處理實戰指南 業務場景描述 在大型電商平臺或高并發的在線系統中,業務數據的變更(如訂單狀態、庫存變動、用戶行為日志)需要實時通知下游系統,以便做流式分析、緩存更新或消息推送。傳統的輪…

TIME WEAVER: A Conditional Time Series Generation Model論文閱讀筆記

TIME WEAVER: A Conditional Time Series Generation Model 摘要 想象一下,根據天氣、電動汽車的存在和位置生成一個城市的電力需求模式,這可以用于在冬季凍結期間進行容量規劃。這樣的真實世界的時間序列通常包含配對的異構上下文元數據(天氣…

Day 4-2: PyTorch基礎入門 - 從NumPy到深度學習的橋梁

Day 4-2: PyTorch基礎入門 - 從NumPy到深度學習的橋梁 ?? 核心概念(5分鐘理解) 一句話定義 PyTorch是Facebook開發的深度學習框架,將NumPy的數組計算能力擴展到GPU,并加入了自動微分功能,讓構建和訓練神經網絡變得簡單直觀。 為什么重要 GPU加速:比CPU快10-100倍的矩…

法式基因音響品牌SK(SINGKING AUDIO)如何以硬核科技重塑專業音頻版圖

在專業音響的競技場,當多數品牌還在功率參數上纏斗時,一個流淌著法蘭西血液的品牌——SK(SINGKING AUDIO),早已構建起令人仰望的技術巔峰。它完美詮釋了真正的聲學藝術:不是技術的炫耀,而是讓尖…

ZooKeeper學習專欄(五):Java客戶端開發(原生API)詳解

文章目錄前言一、核心類解析1.1 ZooKeeper類 - 連接管理核心1.2 Watcher接口 - 事件處理核心二、原生API實踐2.1 創建會話(連接管理)2.2 創建節點(支持多種類型)2.3 獲取節點數據和狀態信息2.4 修改節點數據(版本控制&…

卸油管鏈接檢測誤報率↓76%:陌訊多模態融合算法實戰解析

原創聲明本文為原創技術解析,核心技術參數與架構設計引用自《陌訊技術白皮書》,禁止未經授權的轉載與商用。一、行業痛點:卸油管鏈接檢測的三大技術瓶頸在石化倉儲與運輸場景中,卸油管鏈接的密封性檢測是保障安全生產的關鍵環節。…

MongoDB用戶認證authSource

文章目錄authSource遇到的問題authSource MongoDB用戶認證邏輯與以往我認知的關系型數據庫邏輯不太一樣,多了一層用戶與數據庫關系的綁定。 在建立用戶時,需要先指定數據庫,則存在一個概念:用戶歸屬于數據庫。額外,依…

插件升級:Chat/Builder 合并,支持自定義 Agent、MCP、Rules

TRAE 插件全新升級,Chat、Builder 合并,支持自定義智能體、MCP 及自定義規則,體驗對齊 IDE,現已上線 JetBrains 和 VSCode。 1. Chat/Builder 合并,一個對話框即可智能協作 在 TRAE 插件的 Chat 對話框中&#xff0…

【歷史人物】【王安石】簡歷與生平

目錄 一、王安石個人簡歷 二、個人主要經歷 三、個人成就及影響 1、散文 2、詩歌 3、詞 四、經典評價摘錄 一、王安石個人簡歷 基本信息? 姓名:王安石,字介甫,號半山。小名獾郎 性別:男 年齡:1021年-1086年…

Codeforces Round 1040 (Div. 2) A - D題詳細題解

本文為Codeforces Round 1040 (Div. 2) A - D題的詳細題解, 覺得有幫助或者寫的不錯可以點個贊! 目錄 題目A: 題目大意: 解題思路: 代碼(C): 題目B: 題目大意: 解題思路: 代碼(C): 題目C: 題目大意: 解題思路: 代碼(C): 題目D: 題目大意: 解題思路:…

數據結構 之 【排序】(計數排序)

目錄 1.計數排序的思想 2.計數排序圖解 3.計數排序代碼邏輯 3.1求原數組最大最小值及計數數組的創建 3.2計數 3.3覆蓋寫 3.4釋放資源 4.計數排序的注意事項 5.計數排序的時間復雜度與空間復雜度 以升序為例 1.計數排序的思想 前面我們學習的快排、歸并排序、希爾排序.…

Ascend CANN/ACL API 模型部署加速最佳實踐

1. 模型輸入相關問題 圖像尺寸信息 模型輸入尺寸由原始模型決定,在轉換時固定 圖像尺寸信息是模型固有屬性,不是轉換時添加的 對于使用動態尺寸,可以在推理時自動根據當前的輸入尺寸推導輸出尺寸。 輸入格式(NCHW/NHWC) --input_format 不同框架默認格式不同: Caffe: 支持…

QT信號和槽怎么傳輸自己定義的數據結構

在 Qt 中,信號(Signal)和槽(Slot)機制默認支持許多內置類型(如 int、QString、QList 等),但如果要傳輸 自定義數據結構(如結構體、類對象),需要額…

借助于llm將pdf轉化為md文本

pdf轉化為md格式后,意味著非結構化文本轉為結構化文本,能清晰定位大標題、子標題,圖表。 方便后續處理,因為llamaindex和langchain能更有效切分md類文本,避免信息丟失。 1)讀取pdf為txt 讀取pdf&#xf…

設計模式:中介者模式 Mediator

目錄前言問題解決方案結構代碼前言 中介者是一種行為設計模式,能讓你減少對象之間混亂無序的依賴關系。該模式會限制對象之間的直接交互,迫使它們通過一個中介者對象進行合作。 問題 假如你有一個創建和修改客戶資料的對話框, 它由各種控件…