人臉識別中的rank n

2021-10-03 21:06:39 字數 3791 閱讀 1283

人臉識別中的rank-n 代表的意思

原創這個暱稱唯一 最後發布於2017-09-02 11:05:13 閱讀數 2247  收藏

展開rank-1

看一些**總是在結果中看到rank-1,等等,但是就不知道什麼意思,今天終於搞明白了,備註一下。

意思rank 1, 就是第一次命中 

rank k,就是在第k次以內命中 

人臉識別中,就代表,與目標人臉,最相似的k個人臉中,成功命中(找到正確人臉)的概率(和)。 

rank曲線,一般又被稱呼為cmc曲線。

擴充套件閱讀:人臉識別中常用的指標:

搜尋結果中最靠前(置信度最高)的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曲線。

人臉識別 人臉庫

1.mit 影象集 美國,麻省理工學院 包括 16 人,每個人有不同光照 不同尺寸 不同角度的 27 張 2.feret 影象集 美 方 此影象集包含大量的人臉影象,並且每幅圖中均只有乙個人臉。該集中,同乙個人的 有不同表情,光照,姿態和年齡的變化。3.umist 影象集 英國,曼切斯特大學 20 ...

人臉識別之人臉檢測

人臉識別分為人臉檢測 人臉預處理 蒐集和學習人臉以及人臉識別四個部分,此部分將人臉檢測。本文基於opencv進行的。在opencv中常用的人臉檢測器有基於lbp的特徵檢測 基於haar的特徵檢測,兩者的區別 前者比後者快好幾倍且不需要許可協議,但很多haar檢測器需要許可協議。基於haar的臉部檢測...

人臉識別API 人臉比對

api協議說明 路徑 輸入引數 字段型別 描述seq可選 string 會話序號 非必填 imga string 資料 base64編碼 原始建議小於3m,格式限定為jpg bmp png三種格式 imgb string 資料 base64編碼 原始建議小於3m,格式限定為jpg bmp png三種...