结合YOLOv8实现目标追踪

news2024/11/29 8:55:31

博主使用YOLOv8在自制数据集上取得了不错的效果,考虑到后期的安排,需要在完成目标检测后完成目标追踪功能。因此在本篇博文中主要介绍结合YOLOv8实现目标追踪。
项目源码:

https://github.com/mikel-brostrom/yolov8_tracking

接下来便是调试过程,博主依旧使用的是远程服务器来运行项目。

环境部署

老生常谈,首先便是创建环境了

conda create -n tracking python=3.8

随后使用Pycharm连接服务器并将源码上传至服务器,这里可以选择使用服务器直接在github上下载。直接在命令行中输入下面命令即可。
这里博主还是推荐使用Pycahrm来进行上传,这样可以保证你本地的与服务器上的代码完全是一致的。

git clone --recurse-submodules https://github.com/mikel-brostrom/yolov8_tracking.git

下载成功如下图:

在这里插入图片描述
随后使用Pycharm连接下服务器上的cuda环境,并配置地址映射。
这里就不一一赘述了,有需要的可以参考博主的这篇博文:

云GPU服务器部署及pycharm远程连接

随后我们切换到yolov8_tracking文件夹下,并激活conda环境,并执行按照依赖命令

cd yolov8_tracking  #切换目录,这个目录名自己起
source activate tracking   #激活环境
pip install -r requirements.txt   #安装依赖

此外使用git命令时会将在yolov8文件夹内自动下载好我们的yolov8项目源码而不需要我们自己再去上传。
完成上面的配置后,我们运行该项目中的track.py文件
它会自动帮我们下载需要的权重文件,这个过程可能比较长,可以耐心的等待,当然博主推荐我们自己手动下载。
在这里插入图片描述
随后我们将下载好的权重文件放到指定位置后,我们再次运行track.py
报错:

qt.qpa.xcb: could not connect to display
qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “/home/ubuntu/.conda/envs/tracking/lib/python3.8/site-packages/cv2/qt/plugins” even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

先前博主就曾被这个困扰过,这是什么问题呢,我们都知道平时我们在本地运行时,为了方便实时观测数据变化,会使用plt作图来展示,而我们在使用pycharm时与服务器连接,他的图像无法回传到本地从而无法显示进而中断,如何解决呢?两种方法,第一是修改代码,可以将我们的变化图不再显示而是保存起来,等运行完成后观看即可,还有就是安装其提示:

qt.qpa.xcb: could not connect to display 10.0

我们修改下让其找到即可:在
Run-Edit Configurations, 在Environment variable添加

DISPLAY=localhost:10.0

在这里插入图片描述

完成后:

在这里插入图片描述
再次运行,该错误消失,报其他错误了,哈哈哈哈,呜呜呜

global obsensor_uvc_stream_channel.cpp:156 getStreamChannelGroup Camera index out of range

盲猜是由于远程服务器导致无法调用摄像头导致的,好吧,就先不考虑这个问题了,先使用本地环境跑吧。
切换回本地环境 python38
再次运行,摄像头成功调用。
然后又报错:
import lap
ModuleNotFoundError: No module named ‘lap’

原本以为使用pip安装一下就可以的,但却失败了,后来看到有人提到要使用该命令:

conda install -c conda-forge lap

OK了,今天就到这吧。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS变量

前端的开发工作中,CSS 是不可或缺的部分;实际工作中,我们通过JavaScript 来进行数据和交互工作,CSS 为用户呈现可视化的界面。有时,CSS 来进行部分交互效果是不是会比 JavaScript 更高效、更省事呢? 一、变…

python并发编程(并发与并行,同步和异步,阻塞与非阻塞)

最近在学python的网络编程,学了socket通信,并利用socket实现了一个具有用户验证功能,可以上传下载文件、可以实现命令行功能,创建和删除文件夹,可以实现的断点续传等功能的FTP服务器。但在这当中,发现一些概…

《JeecgBoot系列》 如何设计表单实现“下拉组件二级联动“ ? 以省市二级联动为例

《JeecgBoot系列》 如何设计表单实现"下拉组件二级联动" ? 以省市二级联动为例 一、准备字典表 1.1 创建字典表 CREATE TABLE sys_link_table ( id int NULL, pid int NULL, name varchar(64) null );1.2 准备数据 idpidname1全国21浙江省32杭州市42宁波市51江苏…

postgres 源码解析50 LWLock轻量锁--1

简介 postgres LWLock(轻量级锁)是由SpinLock实现,主要提供对共享存储器的数据结构的互斥访问。LWLock有两种锁模式,一种为排他模式,另一种是共享模式,如果想要读取共享内存中的内容,需要在读取…

kafka如何动态消费新增topic主题

一、背景使用spring-kafka客户端,每次新增topic主题,都需要硬编码客户端并重新发布服务,操作麻烦耗时长,对于业务逻辑相似场景,创建新主题动态监听可以用kafka-batch-starter组件二、核心设计点1、动态接入消息&#x…

Scala模式匹配详解(第八章:基本语法、模式守卫、模式匹配类型)(尚硅谷笔记)

模式匹配第 8 章 模式匹配8.1 基本语法8.2 模式守卫8.3 模式匹配类型8.3.1 匹配常量8.3.2 匹配类型8.3.3 匹配数组8.3.4 匹配列表8.3.5 匹配元组8.3.6 匹配对象及样例类8.4 变量声明中的模式匹配8.5 for 表达式中的模式匹配8.6 偏函数中的模式匹配(了解)第 8 章 模式匹配 Scal…

Redis:缓存穿透、缓存雪崩和缓存击穿(未完待续)

Redis的缓存穿透、缓存雪崩和缓存击穿一. 缓存穿透1.1 概念1.2 造成的问题1.3 解决方案1.4 案例:查询商铺信息(缓存穿透的实现)二. 缓存雪崩2.1 概念2.2 解决方案三. 缓存击穿(热点key)3.1 概念3.2 解决方案3.3 案例&a…

网络基础概述

1.计算机网络背景 ​ 计算机刚刚发展的时候,是没有网络的,每一台计算机都是相互独立的。后来,人们有了多人协作的需求,人们就想办法把多台计算机用“线”连接起来,实现数据共享。后来,连接到一起的电脑越来…

地球板块运动vr交互模拟体验教学提高学生的学习兴趣

海陆变迁是地球演化史上非常重要的一个过程,它不仅影响着地球的气候、地貌、生物多样性等方面,还对人类文明的演化产生了深远的影响。为了帮助学生更加深入地了解海陆变迁的过程和机制,很多高校教育机构开始采用虚拟现实技术进行教学探究。 V…

Go语言进阶与依赖管理-学习笔记

1 语言进阶 1.1 Goroutine 线程:内核态,栈MB级别 协程:用户态,轻量级线程,栈KB级 1.2 CSP 提倡通信实现共享内存 1.3 Channel 创建方法 make(chan 元素类型,缓冲区大小) 无缓冲通道&#x…

【Storm】【二】安装

1 准备 1.1 准备linux服务器 本文搭建的是3节点的集群,需要3台linux服务器,我这里使用的是centos7版本的linux虚拟机,虚拟机网络配置如下: 主节点: master 192.168.92.90 从节点: slave1 192.168.92.…

Git 教程

目录1.简介:2.安装Git3.Git 如何工作状态区域4.使用Git5.Git配置5.1 创建仓库 - repository5.2 配置5.2.1 --global5.2.2 检查配置6. 查看工作区的文件状态6.1什么是工作区6.2 如果显示乱码的解决方式7.在工作区添加单个文件8. 添加工作区文件到暂存区9. 创建版本10…

Docker启动RabbitMQ,实现生产者与消费者

目录 一、Docker拉取镜像并启动RabbitMQ 二、Hello World (一)依赖导入 (二)消息生产者 (三)消息消费者 三、实现轮训分发消息 (一)抽取工具类 (二)启…

网络安全——数链路层据安全协议

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.数据链路层安全协议简介 1.数据链路安全性 二.局域网数据链路层协议 1.…

git应用笔记(三)

在新增虚拟机linux的基础上,做git的下载与提交 1、初始化自己的用户名和邮箱。 git config --global user.name “输入你的用户名” git config --global user.email “输入你的邮箱” 2、将本地公钥及配置如图1复制粘贴到虚拟机当前用户.ssh\目录下 4929a0205f43…

面渣逆袭:分布式十二问,万字图文详解

大家好,我是老三,不管今年金三银四如何,面渣逆袭系列继续,这期我们来看看分布式。 分布式理论 1. 说说CAP原则? CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性…

硬件学习 软件Cadence day07 PCB 底板电路图布线

1.根据原理图的元器件, 选择在 PCB 芯片制作的元器件 (allegro中原理图和pcb中元件的交互) 1.首先完成下列操作 可以尝试先关闭再打开, 等下操作的时候就好 发现新增的发光物体!! 2.完成操作 ,…

Web3中文|香港拟允许比特币交易,瞄准“全球web3中心”

香港再次成为全球加密行业关注的焦点。在美国SEC对于加密货币交易所Kraken、BUSD发行商Paxos以及BA的重磅打击对比下,香港从去年开始持续拥抱Web3的姿态,让投资者开始押注香港。2023年2月20日,香港证监会宣布,就适用于虚拟资产交易…

Linux:基于libevent读写管道代码

基于libevent读写管道代码&#xff1a; 读端&#xff1a; #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <event2/event.h> #include…

gdb的简单练习

题目来自《ctf安全竞赛入门》1.用vim写代码vim gdb.c#include "stdio.h" #include "stdlib.h" void main() {int i 100;int j 101;if (i j){printf("bingooooooooo.");system("/bin/sh");}elseprintf("error............&quo…