# 将YOLO模型的检测框和卡尔曼滤波的跟踪框进行匹配
def associate_detection_to_tracker(detections,trackers,iou_threshold=0.3):"""将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配:param detections:检测框:param trackers:跟踪框,即跟踪目标:param iou_threshold:IOU阈值:return:跟踪成功目标的矩阵:matchs新增目标的矩阵:unmatched_detections跟踪失败即离开画面的目标矩阵:unmatched_trackers"""#跟踪/检测为0时:直接构造返回结果if len(trackers) == 0 or (len(detections)==0):return np.empty((0,2),dtype=int),np.arange(len(detections)),np.empty((0,5),dtype=int)# 跟踪/检测不为0时:# iou 不支持数组计算,故IOU 逐个进行交并比计算,构造矩阵scipy.linear_assignment进行匹配iou_matrix = np.zeros((len(detections), len(trackers)), dtype=np.float32)# 遍历目标检测的bbox集合,每个检测框的标识为dfor d,det in enumerate(detections):# 遍历跟踪框(卡尔曼滤波器预测)bbox集合,每个跟踪框标识为tfor t,trk in enumerate(trackers):iou_matrix[d,t] = iou(det,trk)#通过匈牙利算法(linear_assignment)将跟踪框和检测框以[[d,t]...]的二维矩阵的形式存储在match_indices中result = linear_sum_assignment(-iou_matrix)#将匹配结果以 [[d,t]]的形式存储匹配结果matched_indices = np.array(list(zip(*result)))#记录未匹配的检测框及跟踪框#未匹配的检测框放入unmatched_detections中,表示有新的目标进入画面,要新增所要跟踪的目标序列unmatched_detecetions = []for d,det in enumerate(detections):if d not in matched_indices[:,0]:unmatched_detecetions.append(d)#未匹配的跟踪框放入unmatched_trackers中,表示目标离开之前的画面,应删除对应的跟踪器unmatched_tracker = []for t,trk in enumerate(trackers):if t not in matched_indices[:,1]:unmatched_tracker.append(t)#将匹配成功的跟踪框放入matches中进行存储matchs = []for m in matched_indices:# 过滤掉IOU低的匹配,将其放入到unmatched_detections和unmatched_trackersif iou_matrix[m[0],m[1]]<iou_threshold:unmatched_tracker.append([m[1]])unmatched_detecetions.append(m[0])else:matchs.append(m.reshape(1,2))#格式转换:初始化matchs,以np.array的形式返回if len(matchs) == 0 :matchs = np.array((0,2),dtype=int)else:matchs = np.concatenate(matchs, axis=0)return matchs,np.array(unmatched_detecetions,np.array(unmatched_detecetions))

智慧交通day02-车流量检测实现08:目标跟踪中的数据关联(将检测框bbox与卡尔曼滤波器的跟踪框进行关联匹配)相关推荐

  1. php检测txt中重复数据,Python实现检测文件的MD5值来查找重复文件案例

    平时学生交上机作业的时候经常有人相互复制,直接改文件名了事,为了能够简单的检测这种作弊行为,想到了检测文件的MD5值,虽然对于抄袭来说作用不大,但是聊胜于无,以后可以做一个复杂点的. # coding ...

  2. 车流量检测实现:多目标追踪、卡尔曼滤波器、匈牙利算法、SORT/DeepSORT、yoloV3、虚拟线圈法、交并比IOU计算

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) CNN:RCNN.SPPNet.Fast RCNN.Faste ...

  3. 智慧交通day02-车流量检测实现14:代码汇总+问题修正

    代码+权重文件+资源https://download.csdn.net/download/qq_39237205/43072746https://download.csdn.net/download/ ...

  4. 8、智慧交通项目(1)

    简介 环境 NumPy 是使用 Python 进行科学计算的基础包.Numba 是一个开源 JIT 编译器,它将 Python 和 NumPy 代码的子集转换为快速机器码.SciPy 是数学.科学和工 ...

  5. 智慧交通day02-车流量检测实现10:多目标追踪实现

    在这里我们主要实现了一个多目标跟踪器,管理多个卡尔曼滤波器对象,主要包括以下内容: 初始化:最大检测数,目标未被检测的最大帧数 目标跟踪结果的更新,即跟踪成功和失败的目标的更新 初始化 def __i ...

  6. 智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波(汇总)

    from __future__ import print_function from numba import jit import numpy as np from scipy.optimize i ...

  7. 智慧交通day02-车流量检测实现06:目标估计模型-卡尔曼滤波

    在这里我们主要完成卡尔曼滤波器进行跟踪的相关内容的实现. 初始化:卡尔曼滤波器的状态变量和观测输入 更新状态变量 根据状态变量预测目标的边界框 初始化: 状态量x的设定是一个七维向量: 分别表示目标中 ...

  8. 交通运输部办公厅关于印发推进智慧交通发展行动计划(2017-2020年)的通知

    交通运输部办公厅关于印发推进智慧交通发展行动计划 (2017-2020年)的通知 各省.自治区.直辖市.新疆生产建设兵团及计划单列市.经济特区交通运输厅(局.委),部政研室.法制司.综合规划司.公路局 ...

  9. 近期交通部及各省市共发布5大重要政策全力推进智慧交通!

    "发家致富,先修路"这句耳熟能详的话道出了交通对经济社会发展的重要意义. 不仅要先行,交通还要适度超前.不论是公路.铁路还是民航,其建设都需要一定的周期,必须有长远眼光,提前规划. ...

最新文章

  1. Oracle新一代数据库机 助所有规模企业迈向云端
  2. MapReduce示例——WordCount(统计单词)
  3. cursor:hand与cursor:pointer的区别介绍
  4. sed删除空行,#开头的行,以及第一行
  5. .QT-制作最强电压电阻表盘,可以自定义阴影效果,渐变颜色,图标,文字标签等-附带demo程序
  6. vue中有关.env;.env.development,.env.production的相关介绍
  7. python花括号代替缩进_Python 为什么甩掉累赘的花括号,使用缩进来划分代码块?...
  8. pip不是内部或外部命令,也不是可运行的程序 或批处理文件--解决办法
  9. 从技术平台到aPaaS平台
  10. 为什么PostgreSQL是最先进的开源数据库
  11. QQ抢车位外挂(起始篇)--小研究成果展示
  12. 抓取网易云音乐歌曲热门评论生成词云
  13. 线性代数Python计算:矩阵对角化
  14. Windows Server 2008 R2 安装及配置
  15. 项目实训个人报告(二)
  16. CSP 201809-1 卖菜
  17. 对接微信公众号出现【invalid ip xxx.xxx.xxx.xxx 】
  18. 卸载 HI 英文输入法( InputHelp )
  19. 11 贪吃蛇小游戏 js版本 + vue版本
  20. 信息系统项目管理师计算题(进度管理计算)

热门文章

  1. 学成在线--14.使用RabbitMQ完成页面发布
  2. Django REST framework 源码解析
  3. appsettings 连接oracle数据库,ABP .net core集成访问Oracle数据库
  4. 一些Base64编码/解码及数据压缩/解压方面的知识
  5. Spring Boot 2.1.5 正式发布,1.5.x 即将结束使命!
  6. 原型设计+用户规格说明书
  7. Golang切片的三种简单使用方式及区别
  8. 什么时候需要好教材和好教材是怎样的
  9. CSS3选择器的研究
  10. SQL SERVER PIVOT 行转列、列传行