行人重识别mAP的源代码

 			def mean_ap(
        	distmat,
        	query_ids=None,
        	gallery_ids=None,
        	query_cams=None,
        	gallery_cams=None,
        	average=True):
    			m, n = distmat.shape
              # Sort and find correct matches
              indices = np.argsort(distmat, axis=1)
              matches = (gallery_ids[indices] == query_ids[:, np.newaxis])
              # Compute AP for each query
              aps = np.zeros(m)
              is_valid_query = np.zeros(m)
              for i in range(m):
                # Filter out the same id and same camera
                valid = ((gallery_ids[indices[i]] != query_ids[i]) |
                         (gallery_cams[indices[i]] != query_cams[i]))
               # 去掉那些id相同,并且摄像头相同的样例 !((gallery_ids[indices[i]]==query_ids[i])&(gallery_cams[indices[i]] == 		query_cams[i]))
                y_true = matches[i, valid]
                y_score = -distmat[i][indices[i]][valid]
                if not np.any(y_true): continue
                is_valid_query[i] = 1
                aps[i] = average_precision_score(y_true, y_score)
                #sklearn 当中用来计算AP的函数,y_true 代表真实的标签 y_score代表检索分数
              if len(aps) == 0:
                raise RuntimeError("No valid query")
              if average:
                return float(np.sum(aps)) / np.sum(is_valid_query)
              return aps, is_valid_query
          
	average_precision 计算方式:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.average_precision_score.html
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值