【Person Re-ID】常用評測指標
言
最近在研究person re-id相關的演算法,在不少論文中遇到相關的評測指標,例如mAP、CMC、ROC等,這裡做一下總結。
ROC
ROC曲線是檢測、分類、識別任務中很常用的一項評價指標。曲線上每個點反映著對同一訊號刺激的感受性。具體到識別任務中就是,ROC曲線上的每一點反映的是不同的閾值對應的FP(false positive)和TP(true positive)之間的關係。
通常情況下,ROC曲線越靠近(0,1)座標表示效能越好。
CMC
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%;
Precision & Recall
一般來說,Precision就是檢索出來的條目(比如:文件、網頁等)有多少是準確的,Recall就是所有準確的條目有多少被檢索出來了。
正確率 = 提取出的正確資訊條數 / 提取出的資訊條數召回率 = 提取出的正確資訊條數 / 樣本中的資訊條數
準確率和召回率都是針對同一類別來說的,並且只有當檢索到當前類別時才進行計算,比如在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。
F-Score
從上面準確率和召回率之間的關係可以看出,一般情況下,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%