行人重识别mAP的源代码_DSG66DA的博客-程序员宅基地

技术标签: 模型评估标准  行人重识别  

 			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
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/DSG66DA/article/details/83867992

智能推荐

获取沙盒文件路径的两种方法_androidstudio中如何用代码获取沙盒路径-程序员宅基地

下面是获取沙盒文件路径的两种方法:方法一: NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString*documentsDirectory = [pathsobjectAtIndex:0]; NSString *imgP_androidstudio中如何用代码获取沙盒路径

php create database,CREATE DATABASE语句解释-程序员宅基地

本文为mariadb官方手册:CREATE DATABASE的译文。语法CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name[create_specification] ...create_specification:[DEFAULT] CHARACTER SET [=] charset_name| [DEFAULT] CO..._php create database if not exists

C++ 三五法则_如何理解c++三法则-程序员宅基地

当定义一个类时,我们显式或隐式地定义了此类型的对象在拷贝、赋值和销毁时做什么?一个类通过定义三种特殊成员成员函数来控制这些操作:拷贝构造函数、拷贝赋值函数、析构函数。什么是三法则C++三法则:如果需要析构函数,则一定需要拷贝构造函数和拷贝赋值操作符。如何理解这句话,通常,若一个类需要析构函数,则代表其合成的析构函数不足以释放类所拥有的资源,其中最典型的就是指针成员。所以,我们需要自己写析..._如何理解c++三法则

VirtualBox扩展包下载的位置_vbox7扩展包下载-程序员宅基地

下载了扩展包,安装后也选择不删除,则VirtualBox扩展包在下面目录:C:\Users\Administrator\.VirtualBox这个是Win7的目录,仅供参考,其他平台不一定。_vbox7扩展包下载

二叉树的中序遍历-python实现-Leetcode_最优二叉树中序遍历python-程序员宅基地

递归和非递归方法中序遍历二叉树 Leetcode题递归方法:# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right =..._最优二叉树中序遍历python

利用jackson-dataformat-csv读写csv文件-程序员宅基地

利用jackson-dataformat-csv读写csv文件csv是comma-separated values的缩写,这类文件在日常项目中有时比较常见。sql工具一般具有将数据库数据导入、导出csv格式。利用jackson-dataformat-csv读写csv文件,重点在与两个类:CsvMapper和CsvSchema。其中CsvMapper和我们利用jackson转换son_jackson-dataformat-csv

随便推点

算法识途|回溯问题_python 给你一个无重复元素的整数数组和一个目标整数,找出candidates中可以使得_日拱一卒YOLO的博客-程序员宅基地

题目46. 全排列(中等)47. 全排列 II(中等):思考为什么造成了重复,如何在搜索之前就判断这一支会产生重复;39. 组合总和(中等)40. 组合总和 II(中等)77. 组合(中等)78. 子集(中等)90. 子集 II(中等):剪枝技巧同 47 题、39 题、40 题;60. 第 k 个排列(中等):利用了剪枝的思想,减去了大量枝叶,直接来到需要的叶子结点;93. 复原 IP 地址(中等)正文1、 46. 全排列给定一个不含重复数字的数组 nums ,返回其 所有可能_python 给你一个无重复元素的整数数组和一个目标整数,找出candidates中可以使得

[转]英文标点符号及部分数学符号-程序员宅基地

邻近年假,人也不在状态,在办公室看《JavaScript高级程序设计第3版本》,看到部分标点符号不知道用英文怎么翻译和阅读,所以Google了一把,参考了标点符号的英语名称[1]和英文标点符号翻译大全[2],一并加上英语读音,方便以后的使用过程中查找与参考。符号英文读音含义备注+plus[plʌs]加号;正号备注-minus[...

Tcpreplay让协议测试从此无忧-程序员宅基地

我是一枚在软件测试行业泡了7年的妹纸,想分享点自己的一些心得体会。在我刚接触协议测试那会,相当迷茫。过程中一系列的问题便不约而至,例如:・如何明确入参出参?・如何掌控流量?・如何重现bug?・如何模...

覆盖和重写_覆盖与重写-程序员宅基地

重载(OverLoading) 重载的函数出现在相同的作用域中,具有相同的名字,不同的形参列表。一般用于在一个类中实现若干个方法,这些方法的名字相同而参数的形式不同。规则:1.只能通过相同的方法名、不同的形参来实现。不同的形参指的是参数的类型、个数和顺序(有多个不同类型的参数,以不同的顺序出现)的不同。2.不能基于不同的返回类型、访问权限和抛出的异常实现重载。3.方法抛出的异常_覆盖与重写

基于Dragonboard410c的智能音箱(一)-程序员宅基地

一、简介主要是基于DragonBoard410c开发的可以与用户简单语音交互的智能音箱设备。智能音箱在基础音乐播放的功能上,用户可以用语音控制音乐的播放、停止和切换歌曲。二、语音识别语音识别技术是将计算机接收、识别和理解语音信号转变为相应的文本文件或者命令的技术。它是一门涉及到语音语言学、信号处理、 模式识别、概率论和信息论、发声机理和听觉机理、人工智能的交叉学科。在语音识别系统的帮助下,即使用户

Git最新版 2.28.0详细安装步骤及细节--让你安装不迷茫 (附加经验)_git 2.28-程序员宅基地

Git 最新版 2.28.0详细安装下载Git官网可能有些小伙伴下载慢那么直接百度走起选择操作系统安装根据如下步骤从此刻起,如果想追求速度的小伙伴,那么一套龙服务走起来,直接next到安装完成,然后还有福利哦Git安装完成了,但并没有结束哦。小伙伴们,应该还需要安装[TortoiseGit](),放心继续一套龙服务走起!!!TortoiseGit如果小伙伴们觉得还可以,那么点个小赞或者关注一下呗下一篇:TortoiseGit,马上完成,请稍等…_git 2.28