首页 游戏 软件 资讯 排行榜 专题
首页
AI
基于PicoDet和卡尔曼滤波的多目标跟踪

基于PicoDet和卡尔曼滤波的多目标跟踪

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

基于picodet和卡尔曼滤波的多目标跟踪 - 游乐网

0 项目引言

当前基于深度学习的多目标跟踪思路主要有两种,分别是JDE(Jointly learns the Detector and Embedding model)和SDE(Separate Detection and Embedding model),其中代表性的有SORT11 和DeepSORT22,遵循Tracking-by-Detection思路,卡尔曼滤波算法33(Kalman Filter)是这些方法的基础,所以本项目的主要目的也是通过对卡尔曼滤波的通俗讲解,以探寻前人优秀工作轨迹和自我启发。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

本项目的检测器部分使用PaddlePaddle—PaddleX44全流程开发套件接口,跟踪器部分主要描述卡尔曼滤波的算法思想和步骤,并且设计简易的卡尔曼模型,实现基于检测器预测的多目标跟踪。

与本项目类似的还有《基于PP-YOLO Tiny和DSST算法的多目标跟踪》,该方案将生成式模型修改为了相关式模型。

1 目标检测器

以行人跟踪为例,准备好的行人视频位置为 work/origin.mp4,它用来测试后面的跟踪任务。

基于PicoDet和卡尔曼滤波的多目标跟踪 - 游乐网        

1.1 模型导出

说明:本章的代码不一定要运行,权重已经保存在 models/。

飞桨最近发布了新模型 PP-PicoDet55 ,便采用该模型作为检测器。但为了编写方便不采用yaml形式配置项目,恰好PaddleX存在该模型的接口,所以可以直接调用该模型无需重新编写。

本节主要是将PaddleX模型装载预训练的权重,这里选择下载这个PicoDet-L预训练。

基于PicoDet和卡尔曼滤波的多目标跟踪 - 游乐网        

获取 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])])
登录后复制    
来源:https://www.php.cn/faq/1421731.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

FDUSD 脱锚危机之下:对币安影响几何?
web3.0
FDUSD 脱锚危机之下:对币安影响几何?

FDUSD脱锚惊魂夜:币安生态稳定币的信任危机与系统性风险 2025年4月2日夜间,加密货币市场经历了一场突如其来的“压力测试”。由香港First Digital Trust Limited发行的美元稳定币FDUSD,在市场上演了惊心动魄的脱锚跳水,其兑USDT价格一度暴跌至0 8726美元。这场震

热心网友
04.01
Obsidian同步方案对比:为什么Git更适合管理笔记库?
科技数码
Obsidian同步方案对比:为什么Git更适合管理笔记库?

最近又折腾了下 Obsidian 的 Git 插件,虽然也有点麻烦,但它是适合我的。下面介绍下怎么配置和使用。 第一次使用 Obsidian 是在 2024 年,这是翻阅之前的文章 《Obsidia

热心网友
02.13
华为8B代码模型突破,32B巨头对手面临新挑战
科技数码
华为8B代码模型突破,32B巨头对手面临新挑战

这项由华为技术有限公司、南洋理工大学、香港大学和香港中文大学联合完成的突破性研究发表于2026年1月,论文编号为arXiv:2601 01426v1。研究团队通过一种名为SWE-Lego的创新训练方

热心网友
01.10
Wavesurf Wave13发布:集成SWE-1.5模型与Git工作流,重塑AI代码编辑
电脑教程
Wavesurf Wave13发布:集成SWE-1.5模型与Git工作流,重塑AI代码编辑

12 月 27 日消息,科技媒体 NeoWin 今天(12 月 27 日)发布博文,报道称 AI 代码编辑器 Windsurf 本周发布 Wave 13 版,通过大幅升级多智能体工作流、性能可访问

热心网友
12.29
小蚁NEO:特性、交易与投资指南
web3.0
小蚁NEO:特性、交易与投资指南

NEO(小蚁区块链)旨在构建智能经济网络。NEO通过资产数字化和智能合约实现自动化管理,用户需在支持NEO交易的平台注册账户并获取数字货币,选择合适的交易对后,即可下单交易并确认。交易完成后,可在账户中查看NEO资产,或转移至个人数字储存中安全保管NEO。

热心网友
12.13

最新APP

火柴人传奇
火柴人传奇
动作冒险 04-01
街球艺术
街球艺术
体育竞技 04-01
飞行员模拟
飞行员模拟
休闲益智 04-01
史莱姆农场
史莱姆农场
休闲益智 04-01
绝区零
绝区零
角色扮演 04-01

热门推荐

《洛克王国》世界圣羽翼王打法攻略-圣羽翼王技能与实战详解
游戏攻略
《洛克王国》世界圣羽翼王打法攻略-圣羽翼王技能与实战详解

速览攻略:世界圣羽翼王核心打法与全面解析 本攻略将为你完整呈现《洛克王国》世界圣羽翼王的通关秘籍,深度剖析两种高效实战打法:追求极致速度的“燃薪虫四回合速通”与稳定输出的“酷拉无限连击流”。文章将进一步解析这位翼系精灵王的技能机制、属性克制关系及其在PVE与PVP中的实战定位,帮助你彻底掌握应对其隐

热心网友
04.06
《异种航员2》工程系统详解-工作坊与资源管理指南
游戏攻略
《异种航员2》工程系统详解-工作坊与资源管理指南

速览:工程系统核心机制解析 在《异种航员2》中,工程系统是整个抵抗力量赖以运转的“战略后勤中枢”。无论是研发新武器、生产重型装甲还是制造先进飞行器,所有实体装备的产出都依赖于此。简言之,该系统的核心运作围绕着两大关键:工程师人力的高效配置与全球稀缺资源的精细化调度。工程师的数量直接决定了每个项目的建

热心网友
04.06
《洛克王国世界》治愈兔位置详解-任务与战斗关键精灵
游戏攻略
《洛克王国世界》治愈兔位置详解-任务与战斗关键精灵

核心速览 在《洛克王国世界》中,治愈兔是一位兼具功能性任务角色与实战辅助能力的精灵。它的价值不仅在剧情推进中体现,更在于对战里出色的治疗与防护表现。本文将为你全面解析治愈兔的精准获取位置、种族属性特点以及实战技能搭配,助你顺利捕捉并最大化其在队伍中的作用。所有关键信息将通过清晰的图文内容详细展示,确

热心网友
04.06
《红色沙漠》传说之狼打法-传说之狼击杀流程详解
游戏攻略
《红色沙漠》传说之狼打法-传说之狼击杀流程详解

速览 在《红色沙漠》中,挑战传说之狼这一强大的任务BOSS,需要玩家进行充分的准备并遵循完整的任务流程。整个过程环环相扣,你必须首先参与塞莱斯特家族的势力任务,通过完成任务将家族声望提升至指定等级,才能解锁【传说之狼】的专属讨伐任务,最终直面这个传说中的强大生物。 红色沙漠传说之狼怎么打 归根结底,

热心网友
04.06
《宝可梦Pokopia》舒适度提升攻略-环境等级与栖息地优化指南
游戏攻略
《宝可梦Pokopia》舒适度提升攻略-环境等级与栖息地优化指南

【宝可梦Pokopia】舒适度全解析:快速提升环境等级的核心秘诀 你是否正在探索《宝可梦Pokopia》世界,并希望有效提升宝可梦栖息地的舒适度?舒适度不仅是衡量宝可梦快乐程度的晴雨表,更是解锁游戏核心内容、加速发展的关键驱动指标。本攻略将系统性地为你揭示提升舒适度的核心途径,涵盖从装饰栖息地、建造

热心网友
04.06