如何基于自己训练的Yolov5权重,结合DeepSort实现目标跟踪

网上有很多相关不错的操作demo,但自己在训练过程仍然遇到不少疑惑。因此,我这总结一下操作过程中所解决的问题。

1、deepsort的训练集是否必须基于逐帧视频?
我经过尝试,发现非连续性的图像仍可以作为训练集。一个实例(如指定某个人、某辆车等)对应一个train\test文件夹即可。当然,逐帧效果更佳。
在这里插入图片描述

2、yolo训练的类型不止一个,该怎么办?
按照问题1中,每个类型都可以制作1个或多个实例(如类型0表示自行车,则可以有红色自行车、蓝色自行车等多个实例,类别1表示xxx,同理),全部都集中存放于train\test即可。

在这里插入图片描述

3、deepsort训练完成后,如何实现对自己视频中的目标进行跟踪?
将track.py相关参数进行修改即可,如下所示。注意,若yolo存在识别多个类别,则需要对应修改’–classes’中参数!!!

if __name__ == '__main__':parser = argparse.ArgumentParser()# 表示yolo训练得到的权重parser.add_argument('--yolo_weights', type=str, default='yolov5/weights/best.pt', help='model.pt path')# 表示训练得到的权重parser.add_argument('--deep_sort_weights', type=str, default='deep_sort_pytorch/deep_sort/deep/checkpoint/ckpt.t7', help='ckpt.t7 path')# 测试视频parser.add_argument('--source', type=str, default='data/test.mp4', help='source')parser.add_argument('--output', type=str, default='inference/output', help='output folder')  # output folderparser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')parser.add_argument('--conf-thres', type=float, default=0.4, help='object confidence threshold')parser.add_argument('--iou-thres', type=float, default=0.5, help='IOU threshold for NMS')parser.add_argument('--fourcc', type=str, default='mp4v', help='output video codec (verify ffmpeg support)')parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')# True表示显示、保存、存储结果parser.add_argument('--show-vid', action='store_true', default=True,help='display tracking video results')parser.add_argument('--save-vid', action='store_true',default=True, help='save video tracking results')parser.add_argument('--save-txt', action='store_true',default=True, help='save MOT compliant results to *.txt')# 表示跟踪所有类别,yolo训练类型共200种parser.add_argument('--classes', nargs='+', default=list(range(200)), type=int, help='filter by class')parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')parser.add_argument('--augment', action='store_true', help='augmented inference')parser.add_argument('--evaluate', action='store_true', help='augmented inference')parser.add_argument("--config_deepsort", type=str, default="deep_sort_pytorch/configs/deep_sort.yaml")args = parser.parse_args()args.img_size = check_img_size(args.img_size)with torch.no_grad():detect(args)

效果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/86911.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js(四):react + three.js

绘制多个立方体 1.搭建reactts 项目 npx create-react-app basics-demo --template typescriptreactts 的用法可参考此链接: https://react-typescript-cheatsheet.netlify.app/docs/basic/setup 2.安装three依赖 npm install three types/three --save3.安装路…

dml dql 约束 数据库设计

dml 1.添加数据 *语法 : *insert into 表名(列名1,列名2,……..列名n)values(值1,值2,…值n) *注意: 1.列名和值要一一对应 2.如果表名后,不写列名,就要给…

【微服务】03-HttpClientFactory与gRpc

文章目录 1.HttpClientFactory :管理外向请求的最佳实践1.1 核心能力1.2 核心对象1.3 HttpClient创建模式 2.gRPC:内部服务间通讯利器2.1 什么是gRPC2.2 特点gRPC特点2.3.NET生态对gRPC的支持情况2.4 服务端核心包2.5 客户端核心包2.5 .proto文件2.6 gRP…

HDFS读写数据流程和NameNode工作机制

HDFS文件系统写数据 1.步骤 文件上传步骤: 向NameNode请求上传文件文件路径(验证请求身份,写权限)响应可以上传文件请求上传第一个Block(0-128M), 请返回DataNode返回dn1,dn2,dn3节点,表示采用这三个节点存储数据 NameNode节点选择存储节…

servletAPI超详__解老公不在家, 一个人偷看Servlet

目录 tomcat的定位 Servlet 详解 HttpServlet 核心方法 Get请求 关于乱码的问题 HttpServletRequest 核心方法 代码案例1: 打印请求信息 代码案例2: 获取GET请求中的参数 代码案例3:获取POST请求中的参数 代码案例4:获取POST请求中的参数(2) 引入JSON库解析String字符…

HCIP-OpenStack组件之neutron

neutron(ovs、ovn) OVS OVS(Open vSwitch)是虚拟交换机,遵循SDN(Software Defined Network,软件定义网络)架构来管理的。 OVS介绍参考:https://mp.weixin.qq.com/s?__bizMzAwMDQyOTcwOA&mid2247485088&idx1…

已解决Gradle错误:“Unable to load class ‘org.gradle.api.plugins.MavenPlugin‘”

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

[ACL2023] Exploring Lottery Prompts for Pre-trained Language Models

Exploring Lottery Prompts for Pre-trained Language Models 文章链接 清深的工作,比较有意思的一篇。作者先给出假设,对于分类问题,在有限的语料空间内总能找到一个prompt让这个问题分类正确,作者称之为lottery prompt。为此&…

探索未来世界,解密区块链奥秘!

你是否曾好奇,区块链是如何影响着我们的生活与未来?想要轻松了解这个引领着技术革命的概念吗?那么这本令人着迷的新书《区块链导论》绝对值得你拥有! 内容丰富多彩,让你轻松掌握: **1章:区块链…

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称: 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 &…

Linux 可重入、异步信号安全和线程安全

可重入函数 当一个被捕获的信号被一个进程处理时,进程执行的普通的指令序列会被一个信号处理器暂时地中断。它首先执行该信号处理程序中的指令。如果从信号处理程序返回(例如没有调用exit或longjmp),则继续执行在捕获到信号时进程…

LeetCode 1267. 统计参与通信的服务器

【LetMeFly】1267.统计参与通信的服务器 力扣题目链接:https://leetcode.cn/problems/count-servers-that-communicate/ 这里有一幅服务器分布图,服务器的位置标识在 m * n 的整数矩阵网格 grid 中,1 表示单元格上有服务器,0 表…