目標檢測AP評估指標

一、AP指標簡介

AP指標(Average Precision)是目標檢測中最經典的評估指標之一,用于衡量目標檢測器在不同置信度下的準確性。該指標結合了目標檢測的準確率和召回率,並計算得出一個綜合的得分。

二、目標檢測與AP指標

在目標檢測任務中,我們需要確定目標的類別和位置。而對於每一個檢測框,有可能存在多個可能的類別,所以我們需要一個閾值來進行判定,判斷框中是否有目標。

以一張照片中有多個狗的檢測為例,圖中狗的位置和大小都是難以預測的,而且狗的數量也是不確定的,因此我們需要使用一種能夠同時檢測出多個目標的演算法,並能夠度量這個演算法檢測的準確性。

AP指標就是為了解決以上問題而被創建的指標,能夠從多個角度度量目標檢測演算法的性能。其中,AP的概念可以被描述如下:對於每一個類別,我們可以計算出多個不同置信度的檢測框(bounding box),然後以不同的IoU作為閾值來繪製precision-recall曲線。之後,我們計算出該類別下的AP值,最後將所有類別下的AP取平均數作為整個模型的AP值。

三、AP計算過程

AP計算過程可以分為兩個步驟:1. 繪製precision-recall(PR)曲線;2. 計算PR曲線下面積,即AP值。 接下來我們將分別進行講解。

1. 繪製PR曲線

首先,我們需要使用不同的置信度作為閾值,對檢測框進行篩選。隨著置信度的逐漸升高,最後剩下的框數量會逐漸減少,而正確的框數量也會同步減少。通過使用不同的置信度,我們得到了一組precision-recall數據點,然後可以使用這些數據點來繪製PR曲線,如下圖所示:

<img src="PR曲線.png" alt="PR曲線">

該曲線存在凸性,當檢測器置信度較高時,這個凸性變得越來越小,當曲線落到x軸時(此時召回率為100%),AP的值也達到最大。

2. 計算AP值

求解AP值就是對1中的PR曲線下面積進行計算的過程。但是由於PR曲線是呈現凹形的,我們需要 對數據進行插值,將其轉換為平滑的曲線。通常採用的方法是:以每個rec對應的最大prec值為基準,將這些maximizes precision points和每個正確的檢測框的(rec,prec)作為插值點,最後將這些點擬合成一條平滑的曲線計算出PR曲線下面積即可。

四、代碼示例

以下是基於Python語言,使用pycocotools計算AP指標的示例代碼。

import cocoapi.eval_coco_map as coco_map

# cocoapi輸入數據類型為RLE格式,需要將預測結果轉換為RLE格式
prediction_RLE = coco_map.encode_mask(prediction) 
coco_map.compute_map(eval_mAP, prediction_RLE, ...)

# 計算AP指標,支持多種AP指標的計算
# 'AP':                   ordinary average precision
# 'AP50':                 average precision over 50 IoU thresholds
# 'AP75':                 average precision over 75 IoU thresholds
# 'APs':                  average precision for small objects (area < 32^2 pixels)
# 'APm':                  average precision for medium objects (32^2 < area < 96^2 pixels)
# 'APl':                  average precision for large objects (96^2 < area)
ap_metrics = coco_eval.summarize()

以上代碼為COCO數據集的mAP計算代碼,其中prediction變數為當前輸入的預測結果,eval_mAP參數則為初始化的COCO數據集對象。在此基礎上,我們可以進一步根據各自需求對AP指標進行計算。

五、總結

AP指標是目標檢測領域中最經典和廣泛應用的評測指標之一,其計算過程和方法已經被標準化。對於既有目標檢測演算法的改進,也為新演算法的評測提供了重要的參考指標。同時注意,文中所提到的計算過程和細節不同演算法庫的實現也會略有不同,可根據具體需求和演算法庫API進行實現。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/158381.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-19 00:41
下一篇 2024-11-19 00:41

相關推薦

  • 如何製作高效的目標識別數據集

    對於機器學習中的目標識別任務來說,製作高質量的數據集對於訓練模型十分重要。本文將從數據收集、數據標註、數據增強等方面闡述如何製作高效的目標識別數據集。 一、數據收集 在製作目標識別…

    編程 2025-04-27
  • 弘曆強弱王指標公式通達信版

    一、指標概述 弘曆強弱王指標是一種技術分析指標,其主要用於辨別股票的強弱,以及預測其未來的走勢。該指標包含4個短期指標和4個中長期指標,分別計算出強勢值和弱勢值,通過比較兩者的大小…

    編程 2025-04-25
  • r2score評估指標詳解

    一、什麼是r2score? r2score是回歸模型的評估指標之一,也被稱為決定係數。r2score的值介於-1和1之間,值越高表明模型預測的準確度越高,值越低表明模型預測的準確度…

    編程 2025-04-24
  • 探究YOLO v2目標檢測技術

    一、YOLO v2簡介 YOLO(You Only Look Once)是一種實時目標檢測演算法,通過一個神經網路直接在圖像上利用單個框檢測物體類別和位置。YOLO的最新版本是v4,…

    編程 2025-04-23
  • 無效的目標發行版

    一、概述 在軟體開發的過程中,我們需要選擇一個合適的發行版,在開發過程中,很容易碰到一些問題,例如無效的目標發行版。一個無效的目標發行版指的是對於某個軟體版本而言,所選擇的發行版不…

    編程 2025-04-12
  • 深度剖析Pysot——一個全能的目標跟蹤框架

    一、Pysot簡介 Pysot,全稱pytorch-based Siamese Object Tracking,是一個基於pytorch實現的目標跟蹤框架。該框架可以用於圖像序列中…

    編程 2025-02-25
  • SSD目標檢測

    一、什麼是SSD? SSD(Object Detection with Scale-Invariant)是一種基於深度學習的目標檢測演算法,它可以在一張圖像中同時檢測多個目標,並且能…

    編程 2025-02-25
  • 深度學習目標檢測網路

    一、卷積神經網路 卷積神經網路(Convolutional Neural Network, CNN)是用於圖像分類與識別的深度學習模型。與其他神經網路模型不同的是,CNN通過卷積層…

    編程 2025-02-17
  • AP聚類演算法

    一、介紹 AP聚類演算法是一種基於指派概率的聚類演算法,由Frey與Dueck提出。它具有不需要預設聚類個數的特點,可以直接輸出聚類結果。 該演算法的核心思想是通過計算每個數據點作為聚類…

    編程 2025-02-17
  • 目標檢測技術詳解

    一、目標檢測技術概述 目標檢測技術是計算機視覺領域中的一個核心問題,它的目標是在圖像或視頻中確定物體的位置和形狀,並為它們分配正確的標籤。目標檢測的應用場景非常廣泛,涵蓋了自動駕駛…

    編程 2025-02-05

發表回復

登錄後才能評論