位置: IT常识 - 正文

(HOTA)多目标跟踪MOT指标计算方法(多目标pso)

编辑:rootadmin
(HOTA)多目标跟踪MOT指标计算方法 基本内容:

推荐整理分享(HOTA)多目标跟踪MOT指标计算方法(多目标pso),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:多目标模型,多目标优化百度百科,多目标是什么意思,多目标break,多目标处理方法,多目标处理方法,多目标处理方法,多目标算法有哪些,内容如对您有帮助,希望把文章链接给更多的朋友!

先附上Track_eval下载地址:.GitHub - JonathonLuiten/TrackEval: HOTA (and other) evaluation metrics for Multi-Object Tracking (MOT).

各个指标的原理我在这里不谈了,主要讲一下使用该工程计算指标的方法 

我们在计算MOT评价指标的时候需要用到以上这个工程,下载好后,新建工程。

在算多目标跟踪指标的时候,我之前使用了motmetrics这个库,但是这个库不能算最新的HOTA指标,所以我们使用以上工程。

目录结构:data├─ gt│ └─ mot_challenge│ ├─ MOT17-train│ │ ├─ MOT17-02-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ ├─ MOT17-04-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ ├─ MOT17-05-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ ├─ MOT17-09-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ ├─ MOT17-10-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ ├─ MOT17-11-DPM│ │ │ ├─ gt│ │ │ │ └─ gt.txt│ │ │ └─ seqinfo.ini│ │ └─ MOT17-13-DPM│ │ ├─ gt│ │ │ └─ gt.txt│ │ └─ seqinfo.ini│ └─ seqmaps│ └─ MOT17-train.txt└─ trackers └─ mot_challenge └─ MOT17-train └─ MOT └─ data ├─ MOT17-02-DPM.txt ├─ MOT17-04-DPM.txt ├─ MOT17-05-DPM.txt ├─ MOT17-09-DPM.txt ├─ MOT17-10-DPM.txt ├─ MOT17-11-DPM.txt └─ MOT17-13-DPM.txt

        在下载好的项目主目录中创建data目录,需要创建的结构如上所示,其中trackers目录下的txt文件就是我们检测跟踪到的信息,gt下的gt.txt就是我们标定的目标信息文件。注意gt目录中的MOT17-train目录下的这些文件目录名要与trackers下的txt的文件名对应。seqinfo.ini是此视频序列的信息。(在不改变原代码的情况下,请按照上图配置)

 上图所示,序列名,视频长度,像素等信息。对于要评测的MOT17数据集这个是给定的。

注意到gt目录下seqmaps中有一个MOT17-train.txt文件,此文件中记录了我们要评测的序列名字,格式如下:

请注意此文件在项目中从第二行开始读取,第一行一定空出来或者写其他标注信息。

运行代码:

打开工程中主目录下的scripts,运行run_mot_challenge.py 则可得到MOTA,MOTP,HOTA等结果。完成对行人跟踪的评测。

使用此项目评价自己的数据集:(HOTA)多目标跟踪MOT指标计算方法(多目标pso)

该工程不仅可以评价MOT数据集,也可以评价自己数据集,接下来进行讲解:

打开run_mot_challenge.py文件,找到如下代码,进入到get_default_dataset_config()

default_dataset_config = trackeval.datasets.MotChallenge2DBox.get_default_dataset_config()

修改default_config字典中的值

default_config = { 'GT_FOLDER': os.path.join(code_path, 'data/gt/demo/'), # Location of GT data 'TRACKERS_FOLDER': os.path.join(code_path, 'data/trackers/demo/'), # Trackers location 'OUTPUT_FOLDER': None, # Where to save eval results (if None, same as TRACKERS_FOLDER) 'TRACKERS_TO_EVAL': None, # Filenames of trackers to eval (if None, all in folder) 'CLASSES_TO_EVAL': ['pedestrian'], # Valid: ['pedestrian'] 'BENCHMARK': 'DEMO', # Valid: 'MOT17', 'MOT16', 'MOT20', 'MOT15' #'VIS19' 'SPLIT_TO_EVAL': 'val', # Valid: 'train', 'test', 'all' 'INPUT_AS_ZIP': False, # Whether tracker input files are zipped 'PRINT_CONFIG': True, # Whether to print current config 'DO_PREPROC': True, # Whether to perform preprocessing (never done for MOT15) 'TRACKER_SUB_FOLDER': 'data', # Tracker files are in TRACKER_FOLDER/tracker_name/TRACKER_SUB_FOLDER 'OUTPUT_SUB_FOLDER': '', # Output files are saved in OUTPUT_FOLDER/tracker_name/OUTPUT_SUB_FOLDER 'TRACKER_DISPLAY_NAMES': None, # Names of trackers to display, if None: TRACKERS_TO_EVAL 'SEQMAP_FOLDER': None, # Where seqmaps are found (if None, GT_FOLDER/seqmaps) 'SEQMAP_FILE': None, # Directly specify seqmap file (if none use seqmap_folder/benchmark-split_to_eval) 'SEQ_INFO': None, # If not None, directly specify sequences to eval and their number of timesteps 'GT_LOC_FORMAT': '{gt_folder}/{seq}/gt/gt.txt', # '{gt_folder}/{seq}/gt/gt.txt' 'SKIP_SPLIT_FOL': False, # If False, data is in GT_FOLDER/BENCHMARK-SPLIT_TO_EVAL/ and in # TRACKERS_FOLDER/BENCHMARK-SPLIT_TO_EVAL/tracker/ # If True, then the middle 'benchmark-split' folder is skipped for both. }

        第一行和第二行分别指的是自己的数据集gt主目录和检测跟踪结果的主目录,第五行是要评价的类别,这里先不提,要与下文进行对应,第六行和第七行就是上述的主目录下的目录(用杠连接起来如下所示)。

整理下就是gt目录为:data/gt/demo/DEMO-val/ 

跟踪结果主目录为:data/trackers/demo/DEMO-val ,其他不变动。

在此py文件往下翻找代码找到如下属性,将这个改成自己数据集标号和类别。

self.valid_classes = ['pedestrian'] #有效类别设置self.class_name_to_class_id = {'pedestrian': 1, 'person_on_vehicle': 2, 'car': 3, 'bicycle': 4, 'motorbike': 5, 'non_mot_vehicle': 6, 'static_person': 7, 'distractor': 8, 'occluder': 9, 'occluder_on_ground': 10, 'occluder_full': 11, 'reflection': 12}

继续向下翻找找到如下属性。下图为干扰类别项,将其改为自己类别的干扰项,不要为空会报错,博主已试。

distractor_class_names = ['person_on_vehicle', 'static_person', 'distractor', 'reflection'] #这个是mot评价的干扰项

到这里需要改的代码就已经修改完毕了。这个时候还需要添加一些文件到目录中。

对于我的设置,在data/gt/demo中创建seqmaps目录,在该目录下创建DEMO_val.txt,请注意这个文件名字与我们之前设置的default_config字典中的第六行和第七行的值要匹配。

文件内容的类型与之前所描述的MOT17-train.txt中的一致。

接下来就可以参考目录结构中第一个图进行创建目录和文件了,注意gt中序列目录的名字要和trackers的txt文件名对应上。

全部配置完后运行run_mot_challenge.py即可得到结果。

我这里附上一张效果图,仅供参考,计算了一个序列。

本文链接地址:https://www.jiuchutong.com/zhishi/293146.html 转载请保留说明!

上一篇:浦那的黄胸织布鸟鸟巢,马哈拉施特拉邦 (© Samyak Kaninde/Alamy Stock Photo)(井冈山游击队的口号)

下一篇:Vue状态管理--Pinia使用详解(vue状态管理有哪些)

  • ppt怎么画直线(ppt怎么画直线加粗)

    ppt怎么画直线(ppt怎么画直线加粗)

  • 爱奇艺一起看功能在哪(爱奇艺一起看功能怎么没有了)

    爱奇艺一起看功能在哪(爱奇艺一起看功能怎么没有了)

  • 抖音屏幕显示不全(抖音屏幕显示不出来怎么办)

    抖音屏幕显示不全(抖音屏幕显示不出来怎么办)

  • 已经注销的手机号可以找回来吗(已经注销的手机号微信怎么登录)

    已经注销的手机号可以找回来吗(已经注销的手机号微信怎么登录)

  • 8p指纹键裂了能换吗(苹果8指纹键碎了多少钱)

    8p指纹键裂了能换吗(苹果8指纹键碎了多少钱)

  • 淘宝买多少东西才能有三个心(淘宝买多少东西淘气值500)

    淘宝买多少东西才能有三个心(淘宝买多少东西淘气值500)

  • 抖音小店要多少保证金(抖音小店要多少钱周转)

    抖音小店要多少保证金(抖音小店要多少钱周转)

  • iphone待机一晚上耗电多少正常(iphone待机一晚上掉30%)

    iphone待机一晚上耗电多少正常(iphone待机一晚上掉30%)

  • 如何申请淘宝店铺注册(如何申请淘宝店铺个人)

    如何申请淘宝店铺注册(如何申请淘宝店铺个人)

  • u盘为什么要求格式化(为什么u盘使用要求格式化)

    u盘为什么要求格式化(为什么u盘使用要求格式化)

  • 充电器一闪一闪的是什么原因(充电器一闪一闪绿色灯)

    充电器一闪一闪的是什么原因(充电器一闪一闪绿色灯)

  • ctrl+p是什么快捷键(ctrl+p快捷键的作用)

    ctrl+p是什么快捷键(ctrl+p快捷键的作用)

  • 怎么修改微信提示音(怎么修改微信提示音 安卓)

    怎么修改微信提示音(怎么修改微信提示音 安卓)

  • 抖音时间锁是啥(抖音时间锁是干嘛的)

    抖音时间锁是啥(抖音时间锁是干嘛的)

  • vivo的运动记步在哪(vivo计步数)

    vivo的运动记步在哪(vivo计步数)

  • 怎么拍出抖音中间小屏(抖音视频中视频怎么拍)

    怎么拍出抖音中间小屏(抖音视频中视频怎么拍)

  • 怎么阻止别人呼叫转移(怎么阻止别人打鼾)

    怎么阻止别人呼叫转移(怎么阻止别人打鼾)

  • 12306手机号换了怎么办(12306手机号换了密码忘了)

    12306手机号换了怎么办(12306手机号换了密码忘了)

  • 蚂蚁森林偷能量(蚂蚁森林偷能量放话语录)

    蚂蚁森林偷能量(蚂蚁森林偷能量放话语录)

  • iphone怎么退订包月(苹果手机取消包月订单怎么取消)

    iphone怎么退订包月(苹果手机取消包月订单怎么取消)

  • Windows 10找不到共享计算机怎么办(windows10找不到用户和组)

    Windows 10找不到共享计算机怎么办(windows10找不到用户和组)

  • Yolov5添加注意力机制(yolov5添加注意力机制真的有用吗?)

    Yolov5添加注意力机制(yolov5添加注意力机制真的有用吗?)

  • react——路由(react中路由有哪些常用组件)

    react——路由(react中路由有哪些常用组件)

  • python函数如何返回多个值(python函数如何返回列表)

    python函数如何返回多个值(python函数如何返回列表)

  • 个税汇算清缴系统找不到扣缴义务人
  • 不得公开发行股票的情形
  • 费用报销怎么做账务处理
  • 如何自己开小公司
  • 新公司成立需要刻哪些章
  • 可转债如何不转换的财务处理
  • 折旧会影响利润表吗
  • 小微企业零申报多久报一次税
  • 多开票要交多少税
  • 小规模纳税人差额征收税率是多少
  • 税务局代开的劳务费发票可以入账吗
  • 房产税没交会怎么样
  • 周转材料核算科目是什么
  • 商业企业向供货方收取的进场费,不可以开具增值税发票
  • 行政事业单位长期挂账属于什么财务问题
  • 企业收到跨年度的政府补贴款,是否计入当年企业所得税
  • 季度所得税申报表营业收入怎么填
  • 购方收到红字发票怎么办
  • 入住酒店报销
  • 小规模纳税人缴纳增值税怎么做账
  • 公司生产的产品
  • 供应商质量扣款通知单
  • 公司工会需要单独做账么
  • windows修复网络
  • appdata文件夹在用户文件夹哪里
  • php输出一维数组
  • php date_diff
  • 两台mac怎么一起用
  • vue页面获取url参数
  • PHP:ftp_rename()的用法_FTP函数
  • PHP:pg_fetch_row()的用法_PostgreSQL函数
  • yolov3与yolov2
  • 人均劳效的意义
  • 权重函数公式
  • 如何设置长期有效的群二维码安卓手机
  • vget命令
  • Editorial Calendar为你的WordPress添加编辑日历 让文章定时发布更简单
  • 机器学习——果蔬分类
  • 教大家8天学通MongoDB——第一天 基础入门篇
  • 个人重组债务怎么交税
  • 销售熟食卤制品怎么做
  • 科技型中小企业有什么好处
  • 固定资产哪几类
  • 预付款已经开了发票要怎么做账
  • 外商投资有限合伙企业
  • 交税务局的工会经费现金流
  • 视频制作开票属于现代服务吗?
  • 开办费入哪个会计科目
  • 一正一负发票要做凭证吗
  • 新发票和旧发票的区别
  • 会计一般用什么软件
  • 固定资产净额怎么计算公式
  • sqlserver2005iis警告
  • VMware虚拟机中卸载java命令
  • 如何做电脑系统备份
  • win10系统中怎么打开IE浏览器
  • centos5.10安装
  • windows xp系
  • win1020h2版好不好
  • Android游戏开发教程
  • 游戏unity报错
  • react-redux用法
  • jquery网页设计
  • Android ViewStub 布局延迟加载
  • 中国现在很多网站
  • 基于专业性的家校双向互动,需要家长的学校教育参与
  • Node.js中的事件循环是什么意思
  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
  • javascript设置字体
  • jquery 菜单
  • 快速解决偏头痛的6个方法
  • 欢迎使用来电提醒业务是什么意思
  • Javascript字符串奇数位替换
  • 房产的原值以什么为准
  • 软件即征即退软件是什么
  • 辽宁事业单位职测考试时间多长
  • 12366属于哪个部门
  • 内蒙古机关事业单位工资调整最新消息
  • 四川投诉电话查询
  • 许昌祥和小区二手房出售
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设