Person Re ID 常用評測指標

2021-09-07 18:05:12 字數 3415 閱讀 4845

搜尋結果中最靠前(置信度最高)的n張圖有正確結果的概率。

例如: lable為m1,在100個樣本中搜尋。

如果識別結果是m1、m2、m3、m4、m5……,則此時rank-1的正確率為100%;rank-2的正確率也為100%;rank-5的正確率也為100%;如果識別結果是m2、m1、m3、m4、m5……,則此時rank-1的正確率為0%;rank-2的正確率為100%;rank-5的正確率也為100%;如果識別結果是m2、m3、m4、m5、m1……,則此時rank-1的正確率為0%;rank-2的正確率為0%;rank-5的正確率為100%

當待識別的人臉集合有很多時,則採取取平均值的做法。

一般來說,precision就是檢索出來的條目(比如:文件、網頁等)有多少是準確的,recall就是所有準確的條目有多少被檢索出來了。

precision:準確率 output為1中ground truth也為1的 佔ground truth為1的概率

recall:召回率 output為1中ground truth也為1的 佔output為1的概率

正確率 = 提取出的正確資訊條數 / 提取出的資訊條數 

召回率 = 提取出的正確資訊條數 / 樣本中的資訊條數

準確率和召回率都是針對同一類別來說的,並且只有當檢索到當前類別時才進行計算,比如在person re-id中,乙個人的label為m1,在測試集中包含3張此人的影象,檢索出來的影象按照得分從高到低順序為m1、m2、m1、m3、m4、m1….,此時

第一次檢索到m1,提取出的正確資訊條數=1,提取出的資訊條數=1,樣本中的資訊條數=3,正確率=1/1=100%,召回率=1/3=33.33%;

第二次檢索到m1,提取出的正確資訊條數=2,提取出的資訊條數=3,樣本中的資訊條數=3,正確率=2/3=66.66%,召回率=2/3=66.66%;

第三次檢索到m1,提取出的正確資訊條數=3,提取出的資訊條數=6,樣本中的資訊條數=3,正確率=3/6=50%,召回率=3/3=100%;

平均正確率ap=(100%+66.66%+50%)/3=72.22% 

而當需要檢索的不止乙個人時,此時正確率則取所有人的平均map。

recall和precision的調和平均數  2 * p * r / (p + r) 

從上面準確率和召回率之間的關係可以看出,一般情況下,precision高,recall就低,recall高,precision就低。所以在實際中常常需要根據具體情況做出取捨,例如一般的搜尋情況,在保證召回率的條件下,盡量提公升精確率。

很多時候我們需要綜合權衡這2個指標,這就引出了乙個新的指標f-score。這是綜合考慮precision和recall的調和值。

當β=1時,稱為f1-score,這時,精確率和召回率都很重要,權重相同。當有些情況下,我們認為精確率更重要些,那就調整β的值小於1,如果我們認為召回率更重要些,那就調整β的值大於1。

比如在上面的例子中,在第三次檢索到m1時的爭取率為50%,召回率為100%,則f1-score=(2*0.5*1)/(0.5+1)=66.66%,而f0.5-score=(1.25*0.5*1)/(0.25*0.5+1)=55.56%

pr曲線下的面積(pr曲線: 所有樣本的precision和recall繪製在圖里)

例如:query-id = 1,query-cam = 1,gallery共有5張圖,按照下圖方式計算出recall和precision,以recall為橫座標,precision為縱座標,繪製pr曲線,曲線下方面積即為ap,當需要檢索的不止乙個人時,此時取所有人的平均map。。

曲線下方面積計算方法有多種,例如 ap = ap + (recall - old_recall)*((old_precision+precision)/2);

ap衡量的是學出來的模型在單個類別上的好壞,map衡量的是學出的模型在所有類別上的好壞

對於single gallery shot來說,每一次query,對samples排序,找到匹配上id的gallery後,排除掉同乙個camera下同乙個id的sample。

cmc曲線是算一種top-k的擊中概率,主要用來評估閉集中rank的正確率。舉個很簡單的例子,假如在人臉識別中,底庫中有100個人,現在來了1個待識別的人臉(假如label為m1),與底庫中的人臉比對後將底庫中的人臉按照得分從高到低進行排序,我們發現:

如果識別結果是m1、m2、m3、m4、m5……,則此時rank-1的正確率為100%;rank-2的正確率也為100%;rank-5的正確率也為100%;

如果識別結果是m2、m1、m3、m4、m5……,則此時rank-1的正確率為0%;rank-2的正確率為100%;rank-5的正確率也為100%;

如果識別結果是m2、m3、m4、m5、m1……,則此時rank-1的正確率為0%;rank-2的正確率為0%;rank-5的正確率為100%;

同理,當待識別的人臉集合有很多時,則採取取平均值的做法。例如待識別人臉有3個(假如label為m1,m2,m3),同樣對每乙個人臉都有乙個從高到低的得分,

比如人臉1結果為m1、m2、m3、m4、m5……,人臉2結果為m2、m1、m3、m4、m5……,人臉3結果m3、m1、m2、m4、m5……,則此時rank-1的正確率為(1+1+1)/3=100%;rank-2的正確率也為(1+1+1)/3=100%;rank-5的正確率也為(1+1+1)/3=100%;

比如人臉1結果為m4、m2、m3、m5、m6……,人臉2結果為m1、m2、m3、m4、m5……,人臉3結果m3、m1、m2、m4、m5……,則此時rank-1的正確率為(0+0+1)/3=33.33%;rank-2的正確率為(0+1+1)/3=66.66%;rank-5的正確率也為(0+1+1)/3=66.66%;

roc曲線是檢測、分類、識別任務中很常用的一項評價指標。曲線上每個點反映著對同一訊號刺激的感受性。具體到識別任務中就是,roc曲線上的每一點反映的是不同的閾值對應的fp(false positive)和tp(true positive)之間的關係。

曲線上的每一點反映的是不同的閾值對應的fp(false positive)和tp(true positive)之間的關係。通常情況下,roc曲線越靠近(0,1)座標表示效能越好。

tp : true positive **為1,實際也為1;tn:true nagetive **為0,實際也為0

fp:false positive **為1,實際為0的;fn:false nagetive **為0,實際為1的

tpr=tp/(tp+fn)=recall。

fpr=fp/(fp+tn),fpr即為實際為好人的人中,**為壞人的人佔比。

以fpr為x軸,tpr為y軸畫圖,就得到了roc曲線。

--------------------- 

原文: 

原文: 

指代消解評價指標 共指消解評測演算法

共指消解的評價方法和演算法非常重要,它不但可以給出不同系統之間效能優劣的指標,同時能為進一步提高系統效能指明方向。乙個好的用於評價共指消解效能的標準應該具備兩點一是辨別能力二是解釋能力。前者是指能夠判斷出系統共指關係消解處理好壞的能力後者是指具備對評價結果合理直觀解釋的能力。muc評測演算法 muc...

常用vi指命

vi的使用 功能最強在的編輯器 vi vi是所有unix系統都會提供的螢幕編輯器,它提供了乙個視窗裝置,通過它可以編輯檔案。當然,對unix系統略有所知的人,或多或少都覺得vi超級難用,但vi是最基本的編輯器,所以希望讀者能好好把它學起來,以後在unix世界裡必將暢行無阻 游刃有餘,因為其他幾種文字...

jupyter notebook常用快捷指令

jupyter有兩種模式 按esc切換到命令模式,單元格的邊框是藍色的。這個模式下的常用快捷鍵 shift enter可能是我們最常用的命令 enter 轉入編輯模式 shift enter 執行本單元,選中下個單元 ctrl enter 執行本單元 alt enter 執行本單元,在其下插入新單元...