行人重识别——评价标准

行人重识别——评价指标

Rank-n

Query前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%

CMC

CMC,全称Cumulative Matching Characteristics,亦称CMC-kRank-k matching accuracy,是目前行人重识别领域最流行的性能评估方法。

考虑一个简单的 single-gallery-shot 情形,每个数据集中的ID(gallery ID)只有一个实例. 对于每一次query, 算法将query图像与gallery中所有图像按照“距离”从小到大排序。CMC top-k accuracy 计算如下:
A c c k = { 1 i f   t o p − k   r a n k e d   g a l l e r y   s a m p l e s   c o n t a i n   t h e   q u e r y   i d e n t i t y 0 o t h e r w i s e Acc_k=\begin{cases} 1& if\ top-k\ ranked\ gallery\ samples\ contain\ the\ query\ identity\\ 0& otherwise\\ \end{cases} Acck={10if topk ranked gallery samples contain the query identityotherwise

这是一个平移后的阶跃函数(shifted step function)。CMC曲线的计算方法就是,把每个query的 A c c k Acc_k Acck曲线相加,再除以query的总数,即平均 A c c k Acc_k Acck曲线。典型的CMC曲线如下:
在这里插入图片描述
由于 A c c k Acc_k Acck曲线是一个单位阶跃函数,因此CMC曲线必定是一个单调递增的曲线。曲线上某个点如(R5, 0.96)就表示正确结果在前返回所有结果中排名前5的准确率能达到5%。 实际论文中,常取CMC曲线上的某几个点之间对比,比如常出现的Rank1,Rank5,就分别是CMC曲线上,K=1,5时的值。

尽管在 single-gallery-shot 情形下,CMC 有很明确的定义,但是在 multi-gallery-shot 情形下,它的定义并不明确,因为每个gallery identity 可能存在多个instances,所以CMC只适用于“only one ground truth match for a given query”的情况。

CMC曲线显示了待查询行人出现在不同大小的候选列表中的概率。只有在给定查询只有一个真实匹配的情况下(见图3( a a a) ),该评估测量才有效。在这种情况下,精确度(Precision)和召回率(Recall)是同样的问题。但是,如果存在多个真实匹配,则 CMC曲线存在偏差,因为未考虑“召回率”。例如,图3( b b b) 和图3( c c c) 的CMC曲线都等于1,这不能公平地比较两个排序的质量。

图3. AP和CMC度量之间差异的一个简单例子。真实匹配和错误匹配分别为绿色和红色。对于所有三个排序列表,CMC曲线都等于1.但AP分别等于1, 1, 和0.71.


Precision & Recall

查准率指预测结果中,究竟有多少是真的正?(找出来的对的比例)
P r e c i s i o n = T P T P + F Precision=\frac{TP}{TP+F} Precision=TP+FTP

查全率指所有正样本中,究竟预测对了多少个?(找回来了几个)
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP

查准率和查全率看上去都很有意义,但我们能直接用它俩来评判ReID模型的性能了吗?当然不行,由于查准率和查全率都是通过比例来计算,完全忽略了返回的结果是有排序的!当查询时,可能返回结果的顺序是一样的,但其查准率和查全率却是一样的。

值得注意的是,查准率和查全率是一个相互矛盾的度量,比如为了增加查全率,我们可以通过增加查询结果的数量来实现,当查询结果数量等于数据集大小时,查全率一定等于1,因为这时所有图片都被查询得到了。但此时查准率就成了最小值。所以比较模型的性能不是那么简单的事情。

那怎么比呢?肉眼比对时,我们常从结果的第一个开始,一个一个比对。借鉴这种思路,我们可以逐渐增加查询结果的数量,从第一个开始,一直到系统给出的查询结果的最后一个,把中间每个点对应的查准率和查全率绘制到图上,得到类似下面的结果:
在这里插入图片描述
P-R图直观地显示出了ReID模型的查全率和查准率,显而易见,如果一个模型的P-R曲线包住了另一个模型的P-R曲线,这个模型的性能就好于另一个模型。

显然,PR曲线与坐标轴围起来图形的面积一定程度上反应了ReID模型的性能,我们把这个面积叫做Average Precision。这个面积怎么求?由积分知识可得:

A P = ∫ 0 1 p ( r ) d r AP=\int_0^1{p\left( r \right) dr} AP=01p(r)dr

可惜,我们得到的是曲线上一个个点,得不到 p ( r ) p(r) p(r)的准确公式,没法用上面的公式计算。 但是,这个积分可以视作多个长方形条的面积之和,离散化后得到如下公式:

A P = ∑ k = 1 n p ( k ) Δ r ( k ) AP=\sum_{k=1}^n{p\left( k \right)}\varDelta r\left( k \right) AP=k=1np(k)Δr(k)

其中, p ( k ) p\left( k \right) p(k)是前k查准率, Δ r ( k ) = r ( k ) − r ( k − 1 ) \varDelta r\left( k \right) =r\left( k \right) -r\left( k-1 \right) Δr(k)=r(k)r(k1)。需要注意的是,前k-1个查询结果和前k个查询结果中的同ID结果数量可能一样,所以 Δ r ( k ) \varDelta r(k) Δr(k)可能为0。用公式写出来就是:假设数据集中有 N N N个同ID查询结果,则有:

Δ r ( k ) = { 1 N I D ( R E S U L T k ) = I D ( q u e r y ) 0 I D ( R E S U L T k ) ≠ I D ( q u e r y ) \varDelta r\left( k \right) =\begin{cases} \frac{1}{N}& ID\left( RESULT_k \right) =ID\left( query \right)\\ 0& ID\left( RESULT_k \right) \ne ID\left( query \right)\\ \end{cases} Δr(k)={N10ID(RESULTk)=ID(query)ID(RESULTk)=ID(query)


mAP

mean Average Precision

在这里插入图片描述


mINP

理想的ReID算法应该使得所有query到的图片排得尽可能靠前,而CMC和mAP都无法体现这一点。
在这里插入图片描述
如图7,当CMC相同时,Rank List 1的AP更高,但要更多次查找才能找全正确的匹配。

为了体现这种差异,首先定义negative penalty(NP)

N P i = R i h a r d − ∣ G i ∣ R i h a r d NP_i=\frac{R_{i}^{hard}-\left| G_i \right|}{R_{i}^{hard}} NPi=RihardRihardGi

其中, R i h a r d R_{i}^{hard} Rihard指最后一个正确匹配的序号(the rank position of the hardest match)、 ∣ G i ∣ \left| G_i \right| Gi指正确匹配的数量(the total number of correct matches for query i i i

根据定义,NP越小,算法越好。但是,为了与CMC和mAP保持一致,因此使用inverse negative penalty(INP)。mINP计算式如下:

m I N P = 1 n ∑ i ( 1 − N P i ) = 1 n ∑ i ∣ G i ∣ R i h a r d mINP=\frac{1}{n}\sum_i{\left( 1-NP_i \right) =\frac{1}{n}\sum_i{\frac{\left| G_i \right|}{R_{i}^{hard}}}} mINP=n1i(1NPi)=n1iRihardGi


参考资料

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值