yolov8轨迹追踪算法无法指定gpu

AI项目十九:YOLOV8实现目标追踪 目标检测和目标跟踪的区别:目标检测任务要求同时完成对象的定位(即确定对象的边界框位置)和分类(即确定对象的类别)。这意味着目标检测算法必须不仅能够确定对象是否存在,还要知道它是什么。目标检测通常用于识别和定位图像或视频帧中的对象,通常需要明确的目标类别信息。目标跟踪任务更关注对象在帧与帧之间的连续性,通常更注重对象的运动特征,而不要求进行目标的分类。目标跟踪可以不涉及目标的类别,它的主要目标是维护对象的位置和轨迹,以实现在视频序列中的跟踪。 阅读详情

问题描述

轨迹追踪模块,仅仅使用demo推理,可以通过 device参数  指定加载模型所使用的GPU,但有时会失效。

class yolov8Tracker(baseTracker):
    def __init__(self):
        super(yolov8Tracker, self).__init__()
        self.init_model()

    def init_model(self):
        self.weights = DETECTOR_PATH
        self.device = gpu if torch.cuda.is_available() else 'cpu'
        self.model = YOLO(self.weights)
        self.model.to(self.device)
        self.m = self.model
        self.names = self.model.module.names if hasattr(self.model, 'module') else self.model.names

    def track(self, im, polys=None):
        res = self.model.track(im, tracker="bytetrack.yaml", persist=True, imgsz=self.img_size, conf=self.conf,
                               iou=self.iou, device=1, verbose=False)

我在开发项目时,发现这种调用方式,有时无法顺利指定期望使用的GPU。

解决方法

通过torch.device的方法传参

之后测试问题解决。

from ultralytics import YOLO
from test.utils import is_point_in_roi
import logging
import torch
try:
    import os

    gpu = int(os.environ["gpu"])
except Exception as e:
    gpu = 0
DETECTOR_PATH = 'weights/yolov8n.pt'
logging.info(f"track_detect.py gpu: {gpu}")

logging.info(os.environ['CUDA_VISIBLE_DEVICES'])

def tracker_infer(weight_path):
    model = YOLO(weight_path)

    def process(frame):
        res = model.track(frame, tracker="bytetrack.yaml", device=torch.device(f"cuda:{gpu}"), verbose=False)

YOLOv8+bytetrack实现多目标追踪 ByteTrack是一种基于检测的目标追踪算法,它在YOLOv8检测器的基础上进行了改进,实现了更高效的目标追踪,具有简单、高效和通用的特点。相较于传统的多目标跟踪方法,ByteTrack不依赖于ReID模型,而是通过关联每个检测框来进行跟踪。这种方法可以有效地解决低分检测框被简单丢弃的问题,从而减少漏检和碎片化轨迹的情况。ByteTrack算法流程如下:首先,使用目标检测器对当前帧进行检测,得到一系列候选目标框。 阅读详情

相关推荐

YOLOv8多目标追踪进阶:用ByteTrack实现车辆轨迹分析与计数

本文详细介绍了如何将YOLOv8目标检测模型与ByteTrack追踪算法结合,构建一个鲁棒的智能交通车辆追踪与计数系统。通过实战代码演示了从环境搭建、轨迹绘制到车辆计数的完整流程,并深入探讨了ByteTrack处理遮挡和低置信度目标的优势,以及模型训练、参数调优等高级技巧,为交通流量监控与行为分析提供了一套完整的解决方案。

weixin_29065959的博客 167

yolov8 device选择与指定gpu不生效

可以看到只有第一次输入的设备编号起作用,后边的编号不再生效,即便后续输入的编号是不存在的设备编号也不会再校验正确与否。则会默认选择gpu进行推理,且后续编号不生效。估计是优先寻找可用gpu进行推理。其中预加载和第二次推理中都调使用了device参数,用于控制推理设备。device后面跟’cpu’或者设备编号,编号加不加单引号都可以。测试代码如下,共进行三次推理,分别是预加载、第一次和第二次。如果想要指定推理设备或者编号,可以使用方式二。把预加载和第二次的cpu和0反过来试试。

熄灯看报 1万+

基于YOLOv8与ByteTrack的网球轨迹追踪与运动分析系统实战

目标检测是计算机视觉的核心任务之一,旨在让计算机识别并定位图像中的特定物体。其工作原理通常基于深度学习模型,通过分析像素数据来预测目标的类别和位置。这项技术的价值在于能将非结构化的视觉信息转化为可量化的数据,为自动化分析奠定基础。在工程实践中,目标检测与轨迹追踪技术结合,广泛应用于安防监控、自动驾驶、工业质检以及体育分析等多个场景。例如,在体育科技领域,通过对高速运动的小目标进行持续追踪,可以提取出运动轨迹、速度等关键指标,实现训练数据的量化分析。本文聚焦于利用YOLOv8模型与ByteTrack算法,构建

weixin_32667439的博客 270

解决yolo无法指定显卡的问题,实测v5、v7、v8有效

模型被送到0号卡,但实际上,送到了4号卡(进程是在4号卡上建立的)**问题:**命令行参数指定的是4号卡,但实际却总是在0号卡建立进程。自己指定显卡即可,也可以在命令行添加一遍,不冲突,但要一样的。

毕竟是Shy哥 4388

【计算机视觉】基于Yolov5+Kalman Filter的多细胞追踪(CELL TRACKING CHALLENGE)

CELL TRACKING CHALLENGE官网:http://celltrackingchallenge.net/ 显微HeLa细胞数据集: Training dataset:http://data.celltrackingchallenge.net/training-datasets/DIC-C2DH-HeLa.zip* (37 MB) Challenge dataset:http://data.celltrackingchallenge.net/challenge-datasets/DIC..

qq_41536059的博客 8089

YOLO8实战:yolov8实现行人跟踪计数

行人跟踪统计是智能监控系统中的重要功能,可以广泛应用于人流控制、安全监控等领域。传统的行人跟踪算法往往受到光照、遮挡等因素的干扰,难以实现准确跟踪。随着深度学习技术的发展,目标检测模型逐渐成为行人跟踪的主流方案。本文介绍使用YOLOv8目标检测模型实现行人跟踪统计的方法。

qq_42681787的博客 1万+

YOLOv8无法使用GPU训练的问题

经过排查,YOLOv8在安装依赖项的时候直接pip install ultralytics,全部集成在了ultralytics里面,但是torch的版本可能是最新的,而你的cuda如果在11.2以下就无法正常调用cuda了。在你的train.py代码中加入:print(torch.cuda.is.available())后运行,如果得到的是false,证明你没有成功的调用cuda来加速你的模型训练。2.下载指定版本的1.10的torch(我这里还使用了清华镜像源进行加速)然后输入y表示yes。

weixin_70800824的博客 3717

baostock实战:如何用Python批量下载多只股票的历史数据(含常见错误排查)

本文详细介绍了如何使用Python和baostock库批量下载多只股票的历史数据。内容涵盖从环境搭建、代码标准化到构建稳健的批量下载框架的全过程,并重点提供了高级错误处理、网络重试、数据验证及内存管理等实战解决方案,帮助用户高效构建股票数据处理流水线。

nice1的博客 1081

YOLOv8目标跟踪环境配置笔记(完整记录一次成功)

YOLOv8是基于目标检测算法YOLOv5的改进版,不仅仅可以实现目标检测,其还内置有Byte-Tracker、Bot-Tracker多目标跟踪算法。因此直接复现YOLOv8来进行这两种算法的调用是十分方便高效的。

m0_70694811的博客 6481

Unity安卓打包实战:SDK与JDK配置全攻略

本文详细介绍了Unity安卓打包过程中SDK与JDK的配置方法,包括工具下载、安装步骤、环境变量设置及常见错误排查。通过实战指南帮助开发者快速完成Unity安卓打包环境搭建,提升开发效率。

weixin_30338481的博客 416

dify离线部署

以bge-m3为例,本地部署bge-m3首先在一台能连网的linux服务器上(部署有ollama)创建想要保存模型的文件夹编辑ollama.service,配置ollama模型的保存路径添加模型存储地址将models目录设置属主,必须做,否则ollama无法启动重新加载配置文件并重启ollama测试ollama 运行是否正常最后拉取 bge-m3可在/opt/LLMModels/bge_m3/models目录下看到拉取得模型使用tar命令压缩文件夹。

weixin_42538734的博客 3071

目标追踪算法的‘矛与盾’:当YOLOv8检测误差遇到ByteTrack轨迹修复

本文详细介绍了YOLOv8与ByteTrack在目标追踪中的协同应用,通过C++和OpenCV实现高效集成,解决复杂场景中的遮挡和检测抖动问题。文章涵盖环境搭建、模型准备、性能优化及实战案例,为工业级目标追踪系统开发提供全面指南。

weixin_29061041的博客 427

【开源】基于TI ADS1299与ESP32的8通道脑电采集设备YuEEG全解析

本文详细解析了基于TI ADS1299芯片与ESP32主控的开源8通道脑电采集设备YuEEG。内容涵盖硬件设计、固件驱动开发及Python上位机软件实现,提供了从电路连接、SPI通信配置到数据读取与实时波形显示的全套教程。该项目为学习脑机接口(BCI)与高精度生物电信号采集提供了完整的开源解决方案,适合创客、学生及嵌入式开发者实践。

weixin_42576410的博客 1247

YOLOv8目标追踪ID+轨迹+模糊化处理与计数技术全流程指南

YOLOv8目标追踪ID+轨迹+模糊化处理与计数技术全流程指南

QQ_1309399183的博客 1220

Docker新手必看:解决‘Unable to find image’错误的完整指南

本文针对Docker新手常见的‘Unable to find image’错误,提供了完整的排查与解决指南。文章深入剖析了权限不足、网络连接失败、Docker服务未运行等核心原因,并给出了将用户加入docker组、配置镜像加速器等实用解决方案,帮助读者彻底理解并解决镜像拉取问题。

weixin_29230901的博客 244

uniapp - 最新实现hbuilder项目运行到ios基座或苹果ios真机设备详细教程,如何在ios苹果手机上真机运行测试,IOS自定义基座在线打包调试(uniapp项目如何在苹果手机上运行调试)

uni-app,苹果,app,ios,设备,自定义基座,运行app到苹果手机,mac电脑,Xcode,hbuilderX,运行ios基座调试Uniapp,无需打包,苹果证书,ipa,运行失败,报错,无法启动,连接失败,出错,详细教程,如何解决这个问题,怎么办,申请iOS证书,运行项目到iOS基座,打包ios自定义基座,在iOS真机上运行,新手小白,超级详细的教程,dcloud如何苹果ios系统真机测试,调试基座失败,真机调试ios app,App基座安装后无法打开问题,真机运行时检测不到手机的问题或者基座安

✅ 精选推荐文章 1万+

YOLOv5目标追踪与目标模糊跟踪与轨迹预测识别

YOLOv5目标追踪与目标模糊跟踪与轨迹预测识别

qq1309399183的博客 1114

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1334

YOLO在体育动作分析中的应用:运动员轨迹GPU追踪

利用YOLO目标检测与GPU加速,结合ByteTrack等追踪算法,可实时精准捕捉体育赛事中运动员的运动轨迹。系统能在多目标交叉、遮挡等复杂场景下稳定运行,支持热力图、速度分析与阵型演化等高级应用,已广泛应用于职业体育数据分析。

weixin_32098457的博客 381

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

YOLOv8能否用于冰川运动监测?位移轨迹追踪

利用YOLOv8强大的实时目标检测能力,结合无人机影像与多帧追踪算法,可高效实现冰川表面特征点的连续位移监测。通过微调模型适应冰川地貌,优化小目标检测,并部署于边缘设备,构建低成本、高时空分辨率的动态观测系统,为气候变化研究提供新路径。

weixin_30598047的博客 639

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

用YOLOv8实现智能监控:手把手教你搭建行人轨迹追踪系统(附完整Python代码)

本文详细介绍了如何利用YOLOv8和BoT-SORT算法搭建行人轨迹追踪系统,涵盖从环境配置、视频流处理到追踪算法调优的全过程。通过实战代码示例,帮助开发者掌握智能监控系统的核心技术,适用于安防、城市管理等多种场景。

weixin_29079671的博客 416

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

重要区域人脸追踪:YOLOv8 系统设计与工程化实践

在安防监控、智能考勤等众多场景中,对特定区域人脸的精准追踪具有重要意义。深度学习技术的发展,尤其是 YOLO 系列目标检测算法的不断迭代,为人脸追踪系统的设计与实现提供了高效且可靠的解决方案。本文将深入探讨基于 YOLOv8 的重要区域人脸追踪系统的架构设计、关键实现步骤以及工程化实践要点。

u014481728的博客 1282

YOLOv8体育赛事分析:运动员动作识别与轨迹追踪

借助YOLOv8实现运动员动作识别与轨迹追踪,结合Docker镜像化部署和多目标跟踪算法,构建高效、可复用的体育赛事AI分析系统,提升训练与战术决策水平。

weixin_35728286的博客 1160
上一篇: 机器学习常见的框架及其对应的模型文件格式
下一篇: 通过ssh访问服务器,显示Offending ECDSA key
你在康什么
博客等级 码龄6年 162粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值