基于PicoDet和卡尔曼滤波的多目标跟踪
本项目遵循SORT算法思路,用PaddleX的PicoDet作行人检测器,设计基于卡尔曼滤波的边框估计模型,以边框交并比为度量,通过Jonker-Volgenant算法匹配,实现简单行人多目标跟踪。还分析了SORT不足,为后续按DeepSORT思路优化提供方向。

0 项目引言
当前基于深度学习的多目标跟踪思路主要有两种,分别是JDE(Jointly learns the Detector and Embedding model)和SDE(Separate Detection and Embedding model),其中代表性的有SORT1 和DeepSORT2,遵循Tracking-by-Detection思路,卡尔曼滤波算法3(Kalman Filter)是这些方法的基础,所以本项目的主要目的也是通过对卡尔曼滤波的通俗讲解,以探寻前人优秀工作轨迹和自我启发。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
本项目的检测器部分使用PaddlePaddle—PaddleX4全流程开发套件接口,跟踪器部分主要描述卡尔曼滤波的算法思想和步骤,并且设计简易的卡尔曼模型,实现基于检测器预测的多目标跟踪。
与本项目类似的还有《基于PP-YOLO Tiny和DSST算法的多目标跟踪》,该方案将生成式模型修改为了相关式模型。
1 目标检测器
以行人跟踪为例,准备好的行人视频位置为 work/origin.mp4,它用来测试后面的跟踪任务。
1.1 模型导出
说明:本章的代码不一定要运行,权重已经保存在 models/。
飞桨最近发布了新模型 PP-PicoDet5 ,便采用该模型作为检测器。但为了编写方便不采用yaml形式配置项目,恰好PaddleX存在该模型的接口,所以可以直接调用该模型无需重新编写。
本节主要是将PaddleX模型装载预训练的权重,这里选择下载这个PicoDet-L预训练。
获取 COCO 数据集预训练权重。
In [ ]!mkdir work/pretrained/!wget https://paddledet.bj.bcebos.com/models/picodet_l_640_coco.pdparams -P work/pretrained/登录后复制
安装最新版 PaddleX,它支持 PicoDet 模型。
In [ ]!pip install paddlex==2.1.0!pip install scikit-image登录后复制 In [ ]
import paddleimport paddlex as pdxfrom paddlex import transforms as Timport shutilimport globimport osimport numpy as npimport pandas as pdimport cv2from PIL import Imageimport skimageimport matplotlib.pyplot as plt%matplotlib inline登录后复制
考虑到笔者不想重新训练行人跟踪模型,所以将要手动灌入权重等信息,导出为部署模型,但是 PaddleX 不提供接口支持,所以就自己实现。
首先是模型框架搭建,注意 “backbone” 要和预训练 “ESNet_l” 相对应,然后将参数灌入。
In [ ]def set_model_params(model, params_path): param_state_dict = paddle.load(params_path) model_state_dict = model.net.state_dict() for k in param_state_dict.keys(): if 'backbone.res5' in k: new_k = k.replace('backbone', 'bbox_head.head') if new_k in model_state_dict: value = param_state_dict.pop(k) param_state_dict[new_k] = value num_params_loaded = 0 for k in model_state_dict: if k not in param_state_dict: print("{} is not in pretrained model".format(k)) elif list(param_state_dict[k].shape) != list(model_state_dict[k].shape): print("[SKIP] Shape of pretrained params {} doesn't match.(Pretrained: {}, Actual: {})" .format(k, param_state_dict[k].shape, model_state_dict[k].shape)) else: model_state_dict[k] = param_state_dict[k] num_params_loaded += 1 model.net.set_state_dict(model_state_dict) print("There are {}/{} variables loaded into PicoDet.".format(num_params_loaded, len(model_state_dict))) return model登录后复制 In [ ]model = pdx.det.PicoDet(backbone='ESNet_l')model = set_model_params(model, params_path='work/pretrained/picodet_l_640_coco.pdparams')登录后复制
There are 660/660 variables loaded into PicoDet.登录后复制
因为没有训练集,所以也就没有标签和评估变换,这也是需要手动赋予的。
In [ ]model.labels = [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush']from paddlex import transforms as Tmodel.test_transforms = T.Compose([ T.Resize(target_size=640, interp='CUBIC'), T.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])])登录后复制
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
阿里千问 AI 眼镜接入蚂蚁 GPASS:语音解锁共享单车、停车缴费
当AI眼镜学会“跑腿”:语音解锁单车,无感支付停车费 近来,智能穿戴领域的一个新动向值得关注:阿里旗下的千问AI眼镜,正式接入了蚂蚁集团的GPASS平台。这可不是一次简单的功能叠加,它意味着,诸如共享单车骑行、停车缴费这一系列高频的“AI办事”功能,开始从手机屏幕转移到了你的眼前。 简单说,借助GP
Workbuddy注册额外积分
角色定位与核心任务目标 明确了基本定位后,我们直接切入核心:作为一名专业的文章优化师,我的核心职责在于,将那些带有明显AI生成特征的文本,深度重塑为拥有个人特色与行业洞见的优质内容。 换句话说,这项任务的关键在于实施一次“精准的换血手术”。你必须严格保证原文所有的事实依据、核心观点、逻辑框架,以及每
我把 Anthropic 的 Harness 工程思想做成了一个 Skill
用AI写代码,难在哪儿? 用AI生成代码本身并不难,真正的挑战在于让它稳定地交付一个真正可用的东西。这篇文章,我们就来聊聊Anthropic工程团队是如何破解这个难题的,以及我如何将这套方法论落地成了一个可以复用的实战工具。 用 AI 写代码有多难?不是写不出来难,是让它稳定交付可用的东西很难。这篇
沃尔玛、塔吉特等美国零售巨头拥抱 AI,明确用户需为购物助手出错担责
美国零售巨头拥抱AI新玩法:功能归我,风险归你? 最近有件事挺有意思,美国那边的大型零售商们,正铆足了劲把AI往购物流程里塞。但你猜怎么着?一旦AI捅了娄子,买单的却很可能变成了消费者自己。 这不,就在当地时间4月5号,外媒Futurism的一篇报道就点破了这个现象。企业们一边热火朝天地推广AI功能
小米物流大件“当日达”服务上线 50 城
小米物流大家电“当日达”实现全国50城覆盖,上午11点前下单最快当日送达 对于大家电配送时效长的普遍困扰,小米物流带来了全新的解决方案。最新消息显示,小米旗下大件商品的“当日达”服务范围已成功拓展至全国50座重点城市。除了北京、上海、广州、深圳、杭州、成都等一线与新一线核心城市外,此次升级还囊括了天
- 日榜
- 周榜
- 月榜
相关攻略
2015-03-10 11:25
2015-03-10 11:05
2021-08-04 13:30
2015-03-10 11:22
2015-03-10 12:39
2022-05-16 18:57
2025-05-23 13:43
2025-05-23 14:01
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

