当前位置: 首页 > news >正文

如何基于自己训练的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.lryc.cn/news/143644.html

相关文章:

  • C#_委托详解
  • R包开发-2.2:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)
  • 基于数据湖的多流拼接方案-HUDI实操篇
  • Spring MVC 四:Context层级
  • 【C++ 学习 ⑱】- 多态(上)
  • 合宙Air724UG LuatOS-Air LVGL API控件--进度条 (Bar)
  • 图神经网络与分子表征:番外——基组选择
  • rabbitmq笔记-rabbitmq客户端开发使用
  • 13.Oracle中nvl()与nvl2()函数详解
  • 设置某行被选中并滚动到改行
  • React钩子函数之useRef的基本使用
  • 无风扇迷你电脑信息与购买指南
  • 比特币是怎么回事?
  • vue3+ts+uniapp小程序端自定义日期选择器基于内置组件picker-view + 扩展组件 Popup 实现自定义日期选择及其他选择
  • Java进阶篇--泛型
  • android framework之Applicataion启动流程分析
  • Linux Day10 ---Mybash
  • Flask-Sockets和Flask-Login联合实现websocket的登录认证功能
  • 东盟全面覆盖?长城战略部署核心区域市场,首个百万粉丝国产品牌
  • 基于PHP的电脑商城系统
  • 无客户端网络准入方案,为集成电路企业终端管理开启省事更省心模式
  • 5G与4G的RRC协议之异同
  • 横扫“盲区”、“看透”缺陷,维视智造推出短波红外相机
  • cgo踩坑:交叉编译过程出现的问题could not determine kind of name for C.XXX
  • 自然语言处理(NLP)技术的例子
  • Python“牵手”义乌购商品列表数据,关键词搜索义乌购API接口数据,义乌购API接口申请指南
  • ip_vs 原理解析 (四)hook 后的开始 NF_INET_LOCAL_IN
  • 分布式之CAP理论与BASE理论
  • Java之初始化顺序实践
  • 静态库与动态链接库,第三方库集成到VS