深度學習中的目標檢測:從 PR 曲線到 AP

深度學習中的目標檢測:從 PR 曲線到 AP

在目標檢測任務中,評估模型的性能是非常重要的。通過使用不同的評估指標和標準,我們可以量化模型的準確性與效果。今天我們將重點討論 PR 曲線(Precision-Recall Curve)平均精度(AP)交并比(IoU) 等評估標準,并通過具體的例子幫助大家理解如何使用這些指標評估模型表現。


什么是 Precision 和 Recall?

Precision(精度)

精度衡量的是模型預測為正類的樣本中,實際為正類的比例。它反映了預測的準確性。精度計算公式為:

Precision = TP / (TP + FP)

示例
假設模型預測了 100 個目標框,其中 80 個框是正確的,20 個框是錯誤的。則精度為:
Precision = 80 / (80 + 20) = 0.8

Recall(召回)

召回率衡量的是所有實際為正類的樣本中,模型正確預測為正類的比例。召回率計算公式為:
Recall = TP / (TP + FN)

示例
假設有 90 個實際存在的目標,但模型只檢測到 80 個正確的目標,剩下的 10 個目標沒有被檢測到。則召回率為:
Recall = 80 / (80 + 10) = 0.89

這兩個指標在目標檢測中通常是一起使用的。尤其是在 PR 曲線中,我們可以可視化不同閾值下的精度與召回。


什么是 PR 曲線?

PR 曲線(Precision-Recall Curve)是通過繪制 精度(Precision)和 召回率(Recall)之間的關系來評估模型在目標檢測任務中的表現。

例子:如何繪制 PR 曲線?

假設我們有 5 張圖像和模型的預測結果(帶有置信度),以及每個圖像的真實框(ground truth)。我們從低到高選擇預測框,逐個計算精度和召回值,并繪制 PR 曲線。

假設預測框:

圖像預測框(置信度)是否正確預測
10.9
20.8
30.75
40.7
50.5

在這個簡單的例子中,PR 曲線的橫軸是召回率,縱軸是精度。隨著我們逐步增加預測框的數量,精度會下降而召回率上升。最終,PR 曲線會給出一個關于 Precision 和 Recall 的關系圖。

PR 曲線在不同情況的表現

PR 曲線不僅能幫助我們理解模型的整體表現,還能揭示模型在不同類型的預測下的表現差異。通過分析 PR 曲線的形狀和位置,我們可以更深入地了解模型在各類情況下的表現,例如漏檢(低召回、高精度)、誤檢(高假陽性、低精度)等。

1. 漏檢多的情況(低 Recall,高 Precision)

如果模型漏檢很多目標,意味著模型雖然識別出的目標框數量較少,但這些框大多數是正確的。PR 曲線表現為:

  • Precision 高:因為模型預測的正類中,很多都是正確的。
  • Recall 低:因為很多真實存在的目標并未被模型檢測到。

具體表現

  • 該情況通常發生在置信度閾值設置較高時。模型嚴格要求高置信度才能進行預測,因此漏掉了很多低置信度的目標。
  • PR 曲線中的召回率較低,而精度較高。

例如
假設我們有一張包含 10 個目標的圖像,模型只檢測出了 2 個目標,并且這兩個目標預測正確,那么精度可能很高,但召回率較低。

2. 漏檢少的情況(高 Recall,低 Precision)

如果模型漏檢少,意味著它能夠檢測到大部分真實目標,雖然其中一些可能是錯誤的(假陽性)。PR 曲線表現為:

  • Precision 低:由于模型可能多次預測了錯誤的目標框,精度較低。
  • Recall 高:模型能夠檢測到大部分真實目標,召回率較高。

具體表現

  • 這種情況通常發生在置信度閾值較低時。模型對置信度要求不嚴格,因此檢測到了更多的目標,但一些預測可能是錯誤的(誤檢)。
  • PR 曲線中的召回率較高,而精度較低。

例如
假設我們有一張圖像,其中包含 10 個目標,模型檢測到了 12 個框,其中 8 個框是正確的,4 個框是錯誤的。此時,召回率會很高(接近 100%),但精度較低。

3. 誤檢多的情況(高 False Positive)

誤檢通常會影響 PR 曲線的表現,使得精度降低。這意味著模型將許多負類錯誤地預測為正類。PR 曲線表現為:

  • Precision 低:因為模型預測為正類的很多都是錯誤的(假陽性)。
  • Recall 可能較高:如果模型能夠正確地檢測到大部分正類目標,召回率可能還會較高,但誤檢會讓精度顯著降低。

具體表現

  • 誤檢多時,模型錯誤地將一些背景或負類對象識別為目標,導致精度降低。
  • PR 曲線呈現較低的精度和較高的召回率。

例如
假設圖像中包含 10 個目標,而模型錯誤地將 5 個非目標框(誤檢)預測為目標,并且所有實際目標都被正確檢測到。召回率為 100%,但精度將大大降低,因為誤檢占了較大的比例。

4. 誤檢少的情況(低 False Positive)

如果誤檢很少,模型對負類的識別較好,預測框大多數都是正確的,PR 曲線表現為:

  • Precision 高:由于誤檢少,模型的正類預測大部分都是準確的。
  • Recall 可能較低:如果模型沒有足夠的檢測能力,可能漏掉一些真實目標,導致召回率下降。

具體表現

  • 誤檢少時,模型精度較高,但召回率可能受到影響。
  • PR 曲線呈現較高的精度,但召回率較低。

例如
假設圖像中包含 10 個目標,模型準確地檢測出了 8 個目標并且沒有誤檢任何非目標,精度很高,但召回率較低,因為漏掉了 2 個目標。


總結

通過分析 PR 曲線在不同情況下的表現,我們可以更直觀地理解模型的優缺點。例如,在精度與召回率之間做出權衡時,我們可以通過調整閾值來控制模型的表現:

  • 低 Recall,高 Precision:適用于對誤檢非常敏感的場合。
  • 高 Recall,低 Precision:適用于對漏檢非常敏感的場合。
  • 低 Precision,高 Recall:可能表明模型在高置信度下預測準確,但無法檢測到所有目標。

PR 曲線的形狀和位置可以幫助我們針對不同問題調整模型的表現,從而在目標檢測中獲得更好的效果。


如何計算 AP(平均精度)

AP 是基于 PR 曲線 計算的綜合評估指標。為了計算 AP,我們需要通過對不同的 召回率(Recall) 下的 精度(Precision) 進行插值,通常使用 11 點插值法,即在 Recall 從 0 到 1 之間取 11 個不同的值,并計算這些值對應的最大精度。最終的 AP 通過這些最大精度值的平均值來得到。

11 點插值法:

通過對不同 召回率 下的 精度 進行插值,我們可以得到 11 個精度點,然后求其平均值。

示例:計算 11 點插值法的 AP

假設我們已經計算了不同召回率下的精度值,如下表所示:

RecallPrecision
0.00.9
0.10.88
0.20.85
0.30.84
0.40.8
0.50.75
0.60.72
0.70.7
0.80.68
0.90.65
1.00.6

根據 11 點插值法,我們選取每個召回率點下的最大精度,然后取平均:
AP = (0.9 + 0.88 + 0.85 + 0.84 + 0.8 + 0.75 + 0.72 + 0.7 + 0.68 + 0.65 + 0.6) / 11 = 0.75


交并比(IoU)

IoU(Intersection over Union) 是目標檢測中評估模型預測框與真實框之間重疊度的重要指標。它通過計算預測框和真實框交集與并集的比值來衡量預測的準確性。

IoU 的計算公式:

IoU = Area of Overlap / Area of Union

示例
假設我們有一個預測框和一個真實框,如下圖所示:

  • 預測框的面積:0.3
  • 真實框的面積:0.4
  • 交集的面積:0.2
  • 并集的面積:0.5

IoU 為:

IoU = 0.2 / 0.5 = 0.4

如果 IoU ≥ 0.5,認為預測框為 正確的檢測(True Positive, TP)。如果 IoU < 0.5,則認為預測為 假陽性(False Positive, FP)。


小結:如何優化模型表現?

根據 PR 曲線和 AP 的表現,我們可以采取以下措施來優化模型:

  1. 調整置信度閾值:通過調整模型預測框的置信度閾值,我們可以在 Precision 和 Recall 之間做出平衡。
  2. 增加訓練數據:通過數據增強或使用更豐富的訓練數據,幫助模型提高對復雜場景的識別能力。
  3. 非極大抑制(NMS):使用 NMS 篩選出最優的預測框,從而減少冗余框,提升精度。

通過這些手段,我們能夠提升模型的 RecallPrecision,并通過 PR 曲線AP 進一步評估模型性能。


結語

在深度學習中的目標檢測任務中,PR 曲線IoUAP 是重要的評估標準。理解這些標準并靈活運用它們,能夠幫助我們更好地優化模型并獲得更高效的檢測結果。希望這篇文章能幫助你更深入地理解如何評估深度學習模型的性能,并在實際項目中做出更好的決策。

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

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

相關文章

MySQL 1366 - Incorrect string value:錯誤

MySQL 1366 - Incorrect string value:錯誤 錯誤如何發生發生原因&#xff1a; 解決方法第一種嘗試第二種嘗試 錯誤 如何發生 在給MySQL添加數據的時候發生了下面的錯誤 insert into sys_dept values(100, 0, 0, 若依科技, 0, 若依, 15888888888, ryqq.com, 0,…

[ctfshow web入門] web70

信息收集 使用cinclude("php://filter/convert.base64-encode/resourceindex.php");讀取的index.php error_reporting和ini_set被禁用了&#xff0c;不必管他 error_reporting(0); ini_set(display_errors, 0); // 你們在炫技嗎&#xff1f; if(isset($_POST[c])){…

Linux在web下http加密和配置虛擬主機及動態頁面發布

web服務器的數據加密 1.簡介&#xff1a;由于http協議以明文方式發送&#xff0c;不提供任何方式的數據加密&#xff0c;也不適合傳輸一些重要的信息&#xff0c;如銀行卡號、密碼等&#xff0c;解決該缺陷設計了安全套接字層超文本傳輸協議https&#xff1b; 2.https的握手流…

uni-app,小程序中的addPhoneContact,保存聯系人到手機通訊錄

文章目錄 方法詳解簡介 基本語法參數說明基礎用法使用示例平臺差異說明注意事項最佳實踐 方法詳解 簡介 addPhoneContact是uni-app框架提供的一個實用API&#xff0c;用于向系統通訊錄添加聯系人信息。這個方法在需要將應用內的聯系人信息快速保存到用戶設備通訊錄的場景下非…

NHANES稀有指標推薦:HALP score

文章題目&#xff1a;Associations of HALP score with serum prostate-specific antigen and mortality in middle-aged and elderly individuals without prostate cancer DOI&#xff1a;10.3389/fonc.2024.1419310 中文標題&#xff1a;HALP 評分與無前列腺癌的中老年人血清…

【django.db.utils.OperationalError: unable to open database file】

解決platform.sh 環境下&#xff0c;無法打開數據庫問題 場景 在platform.sh 執行python manage.py createsuperuser是提示 django.db.utils.OperationalError: unable to open database file 錯誤 原因 由于settings.py文件中 本地數據庫配置在線上配置后&#xff0c;導致…

【前端分享】CSS實現3種翻頁效果類型,附源碼!

使用 css 可以實現多種翻頁效果&#xff0c;比如書本翻頁、卡片翻轉等。以下是兩種常見的翻頁效果實現&#xff1a; 效果 1&#xff1a;書本翻頁效果 通過 transform 和 rotateY 實現 3D 翻頁效果。 html 結構 <divclass"book"> <divclass"page pa…

【部署滿血Deepseek-R1/V3】大型語言模型部署實戰:多機多卡DeepSeek-R1配置指南

大家好&#xff01;這里是迪小莫學AI&#xff0c;今天的文章是“”大型語言模型部署實戰&#xff1a;多機多卡DeepSeek-R1配置指南“” 前言 隨著大型語言模型的快速發展&#xff0c;如何高效部署這些模型成為技術團隊面臨的重要挑戰。本文將分享基于DeepSeek-R1模型的多機多…

IPM IMI111T-026H 高效風扇控制板

概述&#xff1a; REF-MHA50WIMI111T 是一款專為風扇驅動設計的參考開發板&#xff0c;搭載了英飛凌的IMI111T-026H iMOTION?智能功率模塊(IPM)。這個模塊集成了運動控制引擎(MCE)、三相柵極驅動器和基于IGBT的功率級&#xff0c;全部封裝在一個緊湊的DSO22封裝中。REF-MHA50…

Linux 阻塞和非阻塞 I/O 簡明指南

目錄 聲明 1. 阻塞和非阻塞簡介 2. 等待隊列 2.1 等待隊列頭 2.2 等待隊列項 2.3 將隊列項添加/移除等待隊列頭 2.4 等待喚醒 2.5 等待事件 3. 輪詢 3.1 select函數 3.2 poll函數 3.3 epoll函數 4. Linux 驅動下的 poll 操作函數 聲明 本博客所記錄的關于正點原子…

互聯網SQL面試題:用戶會話時長分析

這是一個基于用戶點擊信息進行會話時長分析的案例&#xff0c;常見于互聯網 App 使用分析。 問題描述 用戶的訪問記錄存儲在 user_access 表中&#xff0c;包含用戶編號&#xff08;user_id&#xff09;以及訪問時間&#xff08;access_time&#xff09;等信息。以下是一個示…

前端取經路——現代API探索:沙僧的通靈法術

大家好,我是老十三,一名前端開發工程師。在現代Web開發中,各種強大的API就像沙僧的通靈法術,讓我們的應用具備了超乎想象的能力。本文將帶你探索從離線應用到實時通信,從多線程處理到3D渲染的九大現代Web API,讓你的應用獲得"通靈"般的超能力。 在前端取經的第…

window 顯示驅動開發-AGP 類型伸縮空間段

AGP 類型的伸縮空間段類似于線性光圈空間段。 但是&#xff0c;內核模式顯示微型端口驅動程序&#xff08;KMD&#xff09;不會通過 AGP 類型的伸縮空間段公開 dxgkDdiBuildPagingBuffer 回調函數的DXGK_OPERATION_MAP_APERTURE_SEGMENT和DXGK_OPERATION_UNMAP_APERTURE_SEGMEN…

從零開始學習three.js(15):一文詳解three.js中的紋理映射UV

1. UV 映射基礎概念 1.1 什么是 UV 坐標&#xff1f; 在三維計算機圖形學中&#xff0c;UV 坐標是將二維紋理映射到三維模型表面的坐標系統。UV 中的 U 和 V 分別代表2D紋理空間的水平&#xff08;X&#xff09;和垂直&#xff08;Y&#xff09;坐標軸&#xff0c;與三維空間…

代碼復用與分層

1. 代碼復用與分層 函數&#xff1a;將常用的代碼塊封裝成函數&#xff0c;提供自己或者團隊使用。 庫&#xff1a;將代碼打包成靜態或者動態庫&#xff0c;提供出來一個頭文件供自己或者團隊使用。比如stm32中的HAL庫。 框架&#xff1a;通常實現一個完整的系統性的代碼&am…

人臉真假檢測:SVM 與 ResNet18 的實戰對比

在人工智能蓬勃發展的當下&#xff0c;人臉相關技術廣泛應用于安防、金融、娛樂等諸多領域。然而&#xff0c;隨著人臉合成技術的日益成熟&#xff0c;人臉真假檢測成為保障這些應用安全的關鍵環節。本文將深入探討基于支持向量機&#xff08;SVM&#xff09;結合局部二值模式&…

類加載器, JVM類加載機制

1.類加載器 Java里有如下幾種類加載器 1.引導類加載器 負責加載支撐JVM運行的位于JRE的lib目錄下的核心類庫&#xff0c;比如rt.jar、charsets.jar等 2.擴展類加載器 負責加載支撐JVM運行的位于JRE的lib目錄下的ext擴展目錄中的JAR類包 3.應用程序類加載器 負責加載Class…

Hadoop 2.x設計理念解析

目錄 一、背景 二、整體架構 三、組件詳解 3.1 yarn 3.2 hdfs 四、計算流程 4.1 上傳資源到 HDFS 4.2 向 RM 提交作業請求 4.3 RM 調度資源啟動 AM 4.4 AM運行用戶代碼 4.5 NodeManager運行用戶代碼 4.6 資源釋放 五、設計不足 一、背景 有人可能會好奇&#xf…

串口屏調試 1.0

http://wiki.tjc1688.com 先把商家的鏈接貼過來 淘晶馳T1系列3.2寸串口屏tft液晶屏顯示屏HMI觸摸屏超12864液晶屏 這是主包的型號 打開這個玩意 有十個基本的功能區 新建工程 在界面的右邊&#xff0c;指令一定要寫在page前面&#xff0c;這里的波特率等等什么的都可以…

《設計數據密集型應用》——閱讀小記

設計數據密集型應用 這本書非常推薦看英語版&#xff0c;如果考過了CET-6就可以很輕松的閱讀這本書。 當前計算機軟件已經不是單體的時代了&#xff0c;分布式系統&#xff0c;微服務現在是服務端開發的主流&#xff0c;如果沒有讀過這本書&#xff0c;則強力建議讀這本書。 …