YOLOv8_ ByteTrack目标跟踪、模型部署

  • YOLOv8目前支持BoT-SORT和ByteTrack两种多目标跟踪算法,默认的目标跟踪算法为BoT-SORT
    如果要使用ByteTrack跟踪算法,可以添加命令行参数tracker=bytetrack.yaml

一、 VisDrone2019数据集

VisDrone:无人机目标检测和追踪基准数据集。(Detection and Tracking Meet Drones Challenge, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021)
链接: 数据代码

  • 下载yolov8代码
git clone https://github.com/ultralytics/ultralytics.git
pip install ultralytics

二、VisDrone2019数据集处理

需要将VisDrone2019数据集转换为yolo格式数据,labels的生成
在服务器上进入到zip文件所在的文件夹中使用unzip命令解压zip文件。
如:unzip VisDrone2019-DET-train.zip
在这里插入图片描述

import os
from pathlib import Pathdef visdrone2yolo(dir):from PIL import Imagefrom tqdm import tqdmdef convert_box(size, box):# Convert VisDrone box to YOLO xywh boxdw = 1. / size[0]dh = 1. / size[1]return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh(dir / 'labels').mkdir(parents=True, exist_ok=True)  # make labels directorypbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')for f in pbar:img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).sizelines = []with open(f, 'r') as file:  # read annotation.txtfor row in [x.split(',') for x in file.read().strip().splitlines()]:if row[4] == '0':  # VisDrone 'ignored regions' class 0continuecls = int(row[5]) - 1  # 类别号-1box = convert_box(img_size, tuple(map(int, row[:4])))lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")with open(str(f).replace(os.sep + 'annotations' + os.sep, os.sep + 'labels' + os.sep), 'w') as fl:fl.writelines(lines)  # write label.txt
dir = Path('datasets')  # datasets文件夹下Visdrone2019文件夹目录
# Convert
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':visdrone2yolo(dir / d)  # convert VisDrone annotations to YOLO labels

在这里插入图片描述
正确执行代码后,会在’VisDrone2019-DET-train’, ‘VisDrone2019-DET-val’, 'VisDrone2019-DET-test-dev三个文件夹内新生成labels文件夹,用以存放将VisDrone数据集处理成YoloV8格式后的数据。

三、修改数据配置文件ultralytics/cfg/datasets/VisDrone.yaml

在这里插入图片描述
修改path参数

四、yolov8训练

yolo task=detect mode=train model=yolov8s.pt data=cfg/datasets/VisDrone.yaml batch=16 epochs=100 imgsz=640 workers=0 device=0

验证:

yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=cfg/datasets/VisDrone.yaml device=0

五、模型部署

yolo export model=yolov8s.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

预测:

yolo predict task=detect model=yolov8s.onnx source=0  show=True

跟踪:

yolo mode=track model=yolov8s.onnx source=0  show=True

在这里插入图片描述
如果要用TensorRT部署YOLOv8
导出tensorrt

yolo export model=yolov8s.pt format=engine

推理:

yolo task=detect mode=predict model=yolov8s.engineyolo track model=yolov8s.engine source=test_traffic.avi show=True save=True tracker=bytetrack.yaml

需要修改检测类别数量:在 yaml文件里yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

学习交流访:
在这里插入图片描述

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

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

相关文章

《云原生安全攻防》-- K8s攻击案例:权限维持的攻击手法

在本节课程中,我们将一起深入了解K8s权限维持的攻击手法,通过研究这些攻击手法的技术细节,来更好地认识K8s权限维持所带来的安全风险。 在这个课程中,我们将学习以下内容: K8s权限维持:简单介绍K8s权限维持…

【大模型理论篇】主流大模型的分词器选择及讨论(BPE/BBPE/WordPiece/Unigram)

1. 背景分析 分词是将输入和输出文本拆分成更小单位的过程,使得大模型能够处理。token可以是单词、字符、子词或符号,取决于模型的类型和大小。分词可以帮助模型处理不同的语言、词汇和格式,并降低计算和内存成本。分词还可以通过影响token的…

10-1.idea中的项目结构,辅助快捷键,模块的操作

idea中的项目结构和辅助快捷键 IDEA中项目结构 首先是创建项目,新建的项目中有子项目,我们可以创建模块 然后在模块中我们可以创建包,在包中的SRC中写我们的源代码,也就是类。 VScode写Java项目 如何你电脑比较卡的话&#…

Java中自增自减,赋值,逻辑,三元运算符

自增自减运算符 在某个变量前面或者后面加一--在某个变量前面或者后面减一 可以看见,当a输出时,a是没有变化的,说明如果是在变量后就是先使用再增加,而b输出时,b增加了1,说明如果是在变量前面就是先增加再…

【elkb】linux麒麟v10安装ELKB 8.8.X版本(ARM架构)

下载软件 相关版本信息 elasticsearch:8.8.1kibana:8.8.1logstash:8.8.1filebeat:8.8.1 下载地址 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.8.1-linux-aarch64.tar.gzhttps://artifacts.elastic…

配置nginx服务通过ip访问多网站

文章目录 第一种方法第二种方法 先关闭防火墙 # systemctl stop firewalld # setenforce 0第一种方法 #mntui 第二种方法 # vim /etc/nginx/conf.d/test_ip.conf # cat /etc/nginx/conf.d/test_ip.conf server {listen 192.168.234.100:80;#server_nameroot /test/100;loca…

PostgreSQL使用clickhouse_fdw访问ClickHouse

Postgres postgres版本:16(测试可用)docker 安装 插件安装 clickhouse_fdw: https://github.com/ildus/clickhouse_fdw 安装命令 git clone gitgithub.com:ildus/clickhouse_fdw.git cd clickhouse_fdw mkdir build && cd build…

文件下载漏洞

文件安全 文件下载 常见敏感信息路径 Windows C:\boot.ini //查看系统版本 C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件 C:\Windows\repair\sam //存储系统初次安装的密码 C:\Program Files\mysql\my.ini //Mysql配置 C:\Program Files\mysql\data\mysql\user.…

【目标检测01】真实框、预测框、锚框和交并比IoU

文章目录 1. 任务定义2. 基本概念2.1 边界框(bounding box)2.2 真实框、预测框和锚框2.3 交并比 (IoU)2.4 代码实现 1. 任务定义 目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框&#x…

Midjourney上线图像编辑,他们终于知道什么叫开放了。

Midjourney作为文生图领域毋庸置疑的头号选手,之前几乎每次推新都非常惊艳。 前段时间也看到很多消息说Midjourney v7已经训练完毕了,但我左等右等,没等到v7的发布。 却提前等来了可能会更加好玩的一个功能——图像编辑模式。 Midjourney的…

2024-网鼎杯第二次模拟练习-web02

进入做题页面,经过信息搜集和目录扫描,发现只有一个公告是可以利用的 http://0192c74e0f9871c2956795c804c3dde3.8nfp.dg01.wangdingcup.com:43014/OA_announcement.php?id1 这个后面有一个明显的注入点,经过多次刷新和快速刷新后发现&…

Linux中DNS搭建

文章目录 一、DNS介绍1.1、DNS是什么1.2、DNS的工作原理1.3、DNS的域名结构 二、Bind介绍2.1、bind概述2.2、bind主要配置文件 三、DNS安装四、主要配置文件解析(除/etc/named.conf)4.1、/etc/named.rfc1912.zones4.2、/etc/rc.d/init.d/named4.3、/etc/…

批处理操作的优化

原来的代码 Override Transactional(rollbackFor Exception.class) public void batchAddQuestionsToBank(List<Long> questionIdList, Long questionBankId, User loginUser) {// 参数校验ThrowUtils.throwIf(CollUtil.isEmpty(questionIdList), ErrorCode.PARAMS_ERR…

基于neo4j的新冠治疗和新冠患者轨迹的知识图谱问答系统

毕业设计还在苦恼选题&#xff1f;想做一个兼具前沿性和实用性的技术项目&#xff1f;了解下这款基于Neo4j的新冠治疗和患者轨迹的知识图谱问答系统吧&#xff01; 系统可以实现两大功能模块&#xff1a;新冠医疗信息和患者活动轨迹的展示与问答。通过图谱技术&#xff0c;你可…

CLion远程开发Ubuntu,并显示helloworld文字框

1.CLion的介绍以及其在远程开发上的优点 1&#xff09;CLion 是一个由 JetBrains 开发的跨平台 C/C 集成开发环境&#xff08;IDE&#xff09;&#xff0c;功能强大。 2&#xff09;CLion的优点&#xff1a; 远程工具链支持&#xff1a;CLion 支持通过 SSH 连接到远程 Ubuntu…

【AIGC】优化长提示词Prompt:提升ChatGPT输出内容的准确性与实用性

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;长提示词的挑战&#x1f4af;谷歌的优化长提示词技术关键因素分析 &#x1f4af;长提示词的设计原则&#x1f4af;优化长提示词的新框架方法&#x1f4af;实验结果分析不…

解决Github下载速度慢的问题

1. 方式一 先把hosts文件先复制一份到其他文件夹下&#xff0c;以免造成不小心改动出现的后果在C盘的C:\Windows\System32\drivers\etc 下的hosts文件 用编辑器打开后&#xff0c;在末尾处添加访问如下的两个网站所返回的两个IP https://github.com.ipaddress.com/ http://gi…

尝鲜electron --将已有vue/react项目转换为桌面应用

Electron 是一个强大的框架&#xff0c;它允许开发者使用 Web 技术&#xff08;如 HTML、CSS 和 JavaScript&#xff09;构建跨平台的桌面应用程序。它结合了 Node.js 和 Chromium&#xff0c;就相当于在桌面程序web和游览器,所以只需要简单的配置就可以转换为桌面应用 注意:无…

IDEA关联Tomcat——最新版本IDEA 2024

1.链接Tomcat到IDEA上 添加Tomcat到IDEA上有两种方式&#xff1a; 第一种&#xff1a; &#xff08;1&#xff09;首先&#xff0c;来到欢迎界面&#xff0c;找到左侧的Customize选项 &#xff08;2&#xff09;然后找到Build、Execution、Deployment选项 &#xff08;3&am…

Prism 四事件聚合器

#1024程序员节&#xff5c;征文# 不废话&#xff0c;直接上代码一个简单的示例。 1、事件聚合 创建一个文件夹EventBLL&#xff0c;添加EventDemo.cs&#xff0c;代码如下。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using …