1. 程式人生 > >目標檢測和分類的評價指標

目標檢測和分類的評價指標

評價指標:

  準確率 (Accuracy),混淆矩陣 (Confusion Matrix),精確率(Precision),召回率(Recall),平均正確率(AP),mean Average Precision(mAP),交除並(IoU),ROC + AUC,非極大值抑制(NMS)。

1、準確率 (Accuracy)

  分對的樣本數除以所有的樣本數 ,即:準確(分類)率 = 正確預測的正反例數 / 總數。

  準確率一般用來評估模型的全域性準確程度,不能包含太多資訊,無法全面評價一個模型效能。

2、混淆矩陣 (Confusion Matrix)

  混淆矩陣中的橫軸是模型預測的類別數量統計,縱軸是資料真實標籤的數量統計。

  對角線表示模型預測和資料標籤一致的數目,所以對角線之和除以測試集總數就是準確率。對角線上數字越大越好,在視覺化結果中顏色越深,說明模型在該類的預測準確率越高。如果按行來看,每行不在對角線位置的就是錯誤預測的類別。總的來說,我們希望對角線越高越好,非對角線越低越好。

3、精確率(Precision)與召回率(Recall)

  

  一些相關的定義。假設現在有這樣一個測試集,測試集中的圖片只由大雁和飛機兩種圖片組成,假設你的分類系統最終的目的是:能取出測試集中所有飛機的圖片,而不是大雁的圖片。

  • True positives : 正樣本被正確識別為正樣本,飛機的圖片被正確的識別成了飛機。 
  • True negatives: 負樣本被正確識別為負樣本
    ,大雁的圖片沒有被識別出來,系統正確地認為它們是大雁。 
  • False positives: 假的正樣本,即負樣本被錯誤識別為正樣本,大雁的圖片被錯誤地識別成了飛機。 
  • False negatives: 假的負樣本,即正樣本被錯誤識別為負樣本,飛機的圖片沒有被識別出來,系統錯誤地認為它們是大雁。

  Precision其實就是在識別出來的圖片中,True positives所佔的比率。也就是本假設中,所有被識別出來的飛機中,真正的飛機所佔的比例。

  

  Recall 是測試集中所有正樣本樣例中,被正確識別為正樣本的比例。也就是本假設中,被正確識別出來的飛機個數與測試集中所有真實飛機的個數的比值。

  

  Precision-recall 曲線:

改變識別閾值,使得系統依次能夠識別前K張圖片,閾值的變化同時會導致Precision與Recall值發生變化,從而得到曲線。

  如果一個分類器的效能比較好,那麼它應該有如下的表現:在Recall值增長的同時,Precision的值保持在一個很高的水平。而效能比較差的分類器可能會損失很多Precision值才能換來Recall值的提高。通常情況下,文章中都會使用Precision-recall曲線,來顯示出分類器在Precision與Recall之間的權衡。

4、平均精度(Average-Precision,AP)與 mean Average Precision(mAP)

  AP就是Precision-recall 曲線下面的面積,通常來說一個越好的分類器,AP值越高。

  mAP是多個類別AP的平均值。這個mean的意思是對每個類的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]區間,越大越好。該指標是目標檢測演算法中最重要的一個。

  在正樣本非常少的情況下,PR表現的效果會更好。

  

5、IoU

  IoU這一值,可以理解為系統預測出來的框與原來圖片中標記的框的重合程度。 計算方法即檢測結果Detection Result與 Ground Truth 的交集比上它們的並集,即為檢測的準確率。

  IOU正是表達這種bounding box和groundtruth的差異的指標:

  

6、ROC(Receiver Operating Characteristic)曲線與AUC(Area Under Curve)

     

  ROC曲線:

  • 橫座標:假正率(False positive rate, FPR),FPR = FP / [ FP + TN] ,代表所有負樣本中錯誤預測為正樣本的概率,假警報率;
  • 縱座標:真正率(True positive rate, TPR),TPR  = TP / [ TP + FN] ,代表所有正樣本中預測正確的概率,命中率。

  對角線對應於隨機猜測模型,而(0,1)對應於所有整理排在所有反例之前的理想模型。曲線越接近左上角,分類器的效能越好。

  ROC曲線有個很好的特性:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。

  ROC曲線繪製:

  (1)根據每個測試樣本屬於正樣本的概率值從大到小排序;

  (2)從高到低,依次將“Score”值作為閾值threshold,當測試樣本屬於正樣本的概率大於或等於這個threshold時,我們認為它為正樣本,否則為負樣本;

  (3)每次選取一個不同的threshold,我們就可以得到一組FPR和TPR,即ROC曲線上的一點。 

   當我們將threshold設定為1和0時,分別可以得到ROC曲線上的(0,0)和(1,1)兩個點。將這些(FPR,TPR)對連線起來,就得到了ROC曲線。當threshold取值越多,ROC曲線越平滑。

   AUC(Area Under Curve)即為ROC曲線下的面積。AUC越接近於1,分類器效能越好。

   物理意義:首先AUC值是一個概率值,當你隨機挑選一個正樣本以及一個負樣本,當前的分類演算法根據計算得到的Score值將這個正樣本排在負樣本前面的概率就是AUC值。當然,AUC值越大,當前的分類演算法越有可能將正樣本排在負樣本前面,即能夠更好的分類。

  計算公式:就是求曲線下矩形面積。

  

 7、PR曲線和ROC曲線比較

  ROC曲線特點:

  (1)優點:當測試集中的正負樣本的分佈變化的時候,ROC曲線能夠保持不變。因為TPR聚焦於正例,FPR聚焦於與負例,使其成為一個比較均衡的評估方法。

      在實際的資料集中經常會出現類不平衡(class imbalance)現象,即負樣本比正樣本多很多(或者相反),而且測試資料中的正負樣本的分佈也可能隨著時間變化。

  (2)缺點:上文提到ROC曲線的優點是不會隨著類別分佈的改變而改變,但這在某種程度上也是其缺點。因為負例N增加了很多,而曲線卻沒變,這等於產生了大量FP。像資訊檢索中如果主要關心正例的預測準確性的話,這就不可接受了。在類別不平衡的背景下,負例的數目眾多致使FPR的增長不明顯,導致ROC曲線呈現一個過分樂觀的效果估計。ROC曲線的橫軸採用FPR,根據FPR ,當負例N的數量遠超正例P時,FP的大幅增長只能換來FPR的微小改變。結果是雖然大量負例被錯判成正例,在ROC曲線上卻無法直觀地看出來。(當然也可以只分析ROC曲線左邊一小段)

  PR曲線:

  (1)PR曲線使用了Precision,因此PR曲線的兩個指標都聚焦於正例類別不平衡問題中由於主要關心正例,所以在此情況下PR曲線被廣泛認為優於ROC曲線。

  使用場景:

  1. ROC曲線由於兼顧正例與負例,所以適用於評估分類器的整體效能,相比而言PR曲線完全聚焦於正例。
  2. 如果有多份資料且存在不同的類別分佈,比如信用卡欺詐問題中每個月正例和負例的比例可能都不相同,這時候如果只想單純地比較分類器的效能且剔除類別分佈改變的影響,則ROC曲線比較適合,因為類別分佈改變可能使得PR曲線發生變化時好時壞,這種時候難以進行模型比較;反之,如果想測試不同類別分佈下對分類器的效能的影響,則PR曲線比較適合。
  3. 如果想要評估在相同的類別分佈下正例的預測情況,則宜選PR曲線。
  4. 類別不平衡問題中,ROC曲線通常會給出一個樂觀的效果估計,所以大部分時候還是PR曲線更好。
  5. 最後可以根據具體的應用,在曲線上找到最優的點,得到相對應的precision,recall,f1 score等指標,去調整模型的閾值,從而得到一個符合具體應用的模型。

 8、非極大值抑制(NMS)

   Non-Maximum Suppression就是需要根據score矩陣和region的座標資訊,從中找到置信度比較高的bounding box。對於有重疊在一起的預測框,只保留得分最高的那個。

  (1)NMS計算出每一個bounding box的面積,然後根據score進行排序,把score最大的bounding box作為佇列中首個要比較的物件;

  (2)計算其餘bounding box與當前最大score與box的IoU,去除IoU大於設定的閾值的bounding box,保留小的IoU得預測框;

  (3)然後重複上面的過程,直至候選bounding box為空。

  最終,檢測了bounding box的過程中有兩個閾值,一個就是IoU,另一個是在過程之後,從候選的bounding box中剔除score小於閾值的bounding box。需要注意的是:Non-Maximum Suppression一次處理一個類別,如果有N個類別,Non-Maximum Suppression就需要執行N次。

相關推薦

目標檢測分類評價指標

評價指標:  準確率 (Accuracy),混淆矩陣 (Confusion Matrix),精確率(Precision),召回率(Recall),平均正確率(AP),mean Average Precision(mAP),交除並(IoU),ROC + AUC,非極大值抑制(N

在opencv3中利用SVM進行影象目標檢測分類

採用滑鼠事件,手動選擇樣本點,包括目標樣本和背景樣本。組成訓練資料進行訓練 1、主函式 #include "stdafx.h" #include "opencv2/opencv.hpp" using namespace cv; using namespace cv::ml; Mat img,image

目標檢測中準確率評價指標

caffe中實現SSD準確率評價方法是TestDetection()函式。mAp指標值是每個類別的Average precision的平均值。在計算Average Precision之前需要先計算出所有預測框與gt_bboxes的匹配。SSD evaluation  laye

目標檢測模型的評價指標 mAP

在使用機器學習解決實際問題時,通常有很多模型可用。每個模型都有自己的怪癖(quirks),並且基於各種因素,效能會有所不同。 模型效能的評定都是在某個資料集上進行的,通常這個資料集被稱為 “validation 或 test” 資料集。模型效能的評價常用的指標

詳細講解準確率、召回率綜合評價指標

質量 .com http all strong average 均值 比例 har 為了對實驗結果進行評價,用到準確率、召回率和F值,下面對此進行詳細介紹。 1、準確率與召回率(Precision & Recall) 準確率和召回率是廣泛用於信息檢索和統計學分類領

使用Caffe完成圖像目標檢測 caffe 全卷積網絡

-h alt avi 5.0 type multi 序號 forward lin 一、【用Python學習Caffe】2. 使用Caffe完成圖像目標檢測 標簽: pythoncaffe深度學習目標檢測ssd 2017-06-22 22:08 207人閱讀 評論(0)

顯著性檢測(saliency detection)評價指標之KL散度距離Matlab代碼實現

mean enc gray SM tla function cor 代碼 ati 步驟1:先定義KLdiv函數: function score = KLdiv(saliencyMap, fixationMap) % saliencyMap is the saliency

分類評價指標python代碼

onf labels cores 允許 car matrix true 工具 估計 from sklearn.metrics import precision_score,recall_score print (precision_score(y_true, y_score

(轉載)準確率(accuracy),精確率(Precision),召回率(Recall)綜合評價指標(F1-Measure )-絕對讓你完全搞懂這些概念

自然語言處理(ML),機器學習(NLP),資訊檢索(IR)等領域,評估(evaluation)是一個必要的工作,而其評價指標往往有如下幾點:準確率(accuracy),精確率(Precision),召回率(Recall)和F1-Measure。 本文將簡單介紹其中幾個概念。中文中這幾個評價指標翻譯各有不同,

Yolo目標檢測識別(第二課)

引用地址: 承接上一章 由於上一章修改Makefile中的OPENCV=1重新make卻一直報錯,因此一直在網上查詢解決方案。最後重灌了opencv,並且嘗試了這個網站給出的解決方案,依然不能重新得到darknet的檔案(因為只有得到了這個檔案才算是make成

目標檢測模型的評估指標mAP詳解(附程式碼)

文章轉自:https://zhuanlan.zhihu.com/p/37910324 對於使用機器學習解決的大多數常見問題,通常有多種可用的模型。每個模型都有自己的獨特之處,並隨因素變化而表現不同。 每個模型在“驗證/測試”資料集上來評估效能,效能衡量使用各種統計量如準確度(accuracy

準確率(accuracy),精確率(Precision),召回率(Recall)綜合評價指標(F1-Measure )

自然語言處理(ML),機器學習(NLP),資訊檢索(IR)等領域,評估(evaluation)是一個必要的工作,而其評價指標往往有如下幾點:準確率(accuracy),精確率(Precision),召回率(Recall)和F1-Measure。 本文將簡單介紹其中幾個概念。

RCNN系列(2):Fast R-CNN—用於精準目標檢測語義分割的快速功能結構~

論文地址: Fast R-CNN 0. 摘要   該論文對上一篇R-CNN進行改進,在訓練速度,推斷速度和精度上都有了很大的提升。 1. 介紹   相比於分類,目標檢測的計算代價大幅提升,這是因為目標檢測除了分類還需要精準的定位,帶來了兩個方面的問題,涉及速度,精度和模型

RCNN系列(1):R-CNN—用於精準目標檢測語義分割的功能結構

論文地址: Rich feature hierarchies for accurate object detection and semantic segmentation MATLAB實現:github連結 0. 摘要   論文中提出的方法包含兩個關鍵的點 將卷積神

關於學習使用Faster-RCNN做目標檢測物件捕捉問題

這裡主要是為了做遙感方向的物件捕捉問題而從目標檢測開始入手,首先大體採用的是遷移學習的思路,注主要是對模型遷移,在img做了切割和西工大及北航的資料集上進行一個交叉訓練,這樣使得RPN的網路外面的打分函式有了一個更好的0.7的結果, 這個結果主要是通過對reu

動態視訊目標檢測跟蹤技術(入門)

動態視訊目標檢測和跟蹤技術 http://m.qingqingsk.com/ztnews/lvvozlzrztkzrqwqqlnrluqk.html 傳統電視監控技術只能達到“千里眼”的作用,把遠端的目標影象(原始資料)傳送到監控中心,由監控人員根據目視到的視訊影象對

python實現多分類評價指標

1、什麼是多分類? 參考:https://www.jianshu.com/p/9332fcfbd197 針對多類問題的分類中,具體講有兩種,即multiclass classification和multilabel classification。multiclass是指分類任務中包含不止一個類別時,每條資

目標檢測/分類常用資料集評價指標小彙集

二:混淆矩陣 (Confusion Matrix) 三:召回率(Recall)、精確率(Precision) 四: P-R曲線、平均精度(Average-Precision,AP)、F指標 五:受試者工作特徵曲線(Receiver Operating

目標檢測評價指標mAP 精準率召回率

首先明確幾個概念,精確率,召回率,準確率 精確率precision 召回率recall 準確率accuracy 以一個實際例子入手,假設我們有100個腫瘤病人. 95個良性腫瘤病人,5個惡性腫瘤病人. 我們有一個檢測系統,去檢測一個腫瘤病人是否為惡性. 那麼,對我們的系統來說,有100個樣本,5個正樣本,