yolov5-ros模型结合zed2相机部署在 Ubuntu系统

前言

本篇文章主要讲解yolov5-ros模型结合zed2相机进行实时检测,经改进实现了红绿灯检测,并输出检测类别与置信度!

目录

  • 一、环境配置
  • 二、zed2驱动安装
  • 三、yolov5-ros功能包配置
  • 四、运行官方权重文件
  • 四、运行自己权重文件

一、环境配置

1、安装

下载地址:https://www.anaconda.com/download#

在这里插入图片描述进入下载完成目录,输入以下指令:

bash Anaconda3-2024.02-1-Linux-x86_64.sh

(1)继续按ENTER

在这里插入图片描述

(2)选yes后回车

在这里插入图片描述

(3)选择默认安装位置

在这里插入图片描述

(4)安装完成后出现是否启动默认环境,选择yes后回车,安装完成

在这里插入图片描述

(5)安装完成再次打开终端可以看到前面的base

在这里插入图片描述
2、加速

(1)终端输入以下命令

sudo gedit ~/.condarc

(2)打开的文本中输入以下内容:

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

换源:

在这里插入图片描述
3、创建、激活yolov5虚拟环境

conda create -n yolov5 python=3.8
conda activate yolov5

4、安装torch

(1)pip安装加速,终端输入如下命令:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

(2)选择与cuda版本匹配的torch

在这里插入图片描述

(3)选择合适的版本

conda install pytorch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 pytorch-cuda=11.8 -c pytorch -c nvidia

在这里插入图片描述
安装完成!

在这里插入图片描述5、yolov5配置

mkdir workspace && cd workspace
git clone https://github.com/ultralytics/yolov5.git
cd yolov5/
pip install -r requirements.txt

在这里插入图片描述

二、zed2驱动安装

zed2相机驱动安装见:Ubuntu18.04下ZED2结合ORB_SLAM2在ROS下运行

验证,打开三个终端,分别输入以下内容:

roscore
roslaunch zed_wrapper zed2.launch
rqt_image_view

效果如下:

在这里插入图片描述可以看到到这相机的驱动安装完成,并且可以选择相机运行的不同节点!

三、yolov5-ros功能包配置

第一步:下载yolov5-ros功能包,将其放入编译完成的catkin_ws/src目录下

下载地址:git clone https://github.com/qq44642754a/Yolov5_ros.git

cd ~/catkin_ws/src
git clone https://github.com/qq44642754a/Yolov5_ros.git
conda activate yolov5 //进入虚拟空间
cd ~/catkin_ws
catkin_make
source devel/setup.sh

在这里插入图片描述
第二步:修改launch文件

进行下载的yolov5-ros功能包下找到yolo_v5.launch文件,修改图像话题节点

在这里插入图片描述

四、运行官方权重文件

打开三个终端,输入以下内容:

roscore
roslaunch zed_wrapper zed2.launch    //打开相机
roslaunch yolov5_ros yolo_v5.launch  //运行yolov5

运行效果如下:

在这里插入图片描述

节点可视化:

在这里插入图片描述
查看ros话题

在这里插入图片描述

四、运行自己权重文件

上一段完整的浮现了官方权重文件的运行效果,接下来将使用自己训练的权重文件进行检测~

第一步:在yolov5_ros.launch文件中更换权重路径:

在这里插入图片描述

再次运行以上三个指令:

可以会出现的报错:

在这里插入图片描述
由于yolov5版本不同,出现的模块缺少问题,替换原始yolo.py

再次运行,检测效果:

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

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

相关文章

vue2转vue3初步下载pnpm遇到的问题 pnpm : 无法加载文件 D:\nodejs\pnpm.ps1

安装pnpm npm install -g pnpm pnpm -v 提示: 解决:nvm install 18.18.0 下载最稳定版本的nodejs nvm use 18.18.0 然后注意重新下载删除pnpm npm uninstall -g pnpm npm install -g pnpmlatest 在vscode使用pnpm报错 解决:管理员运行Windo…

博士毕业论文/CTEX/LATEX

LATEX环境安装 CTEX 安装 (垃圾,不要装) 运行 clean.batcomp.bat 缺少字体 Couldn’t find Adobe Heiti S.cfg’ miktex-maketfm: No creation rule for font “Adobe Heiti Std”.解决方法:其实就是下载这四个字体之后&…

深度学习-语言模型

深度学习-语言模型 统计语言模型神经网络语言模型语言模型的应用序列模型(Sequence Model)语言模型(Language Model)序列模型和语言模型的区别 语言模型(Language Model)是自然语言处理(NLP&…

16:00面试,16:08就出来了,问的问题有点变态。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到8月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…

32. 【Java教程】集合

在前面的小节中,我们学习了数组,本小节学习的集合同样用于存放一组数据,我们将学习什么是集合、集合的应用场景 ,在应用场景部分我们将对比 Java 数组与集合的区别,还将系统介绍 Java 集合的架构,也将结合实…

【课程总结】Day4:信息论和决策树算法

前言 本章内容主要是学习机器学习中的一个重要模型:决策树,围绕决策树的应用,我们展开了解到:熵的定义、熵的计算、决策树的构建过程(基于快速降熵)、基尼系数等,从而使得我们对决策树有了直观认识。 熵的介绍 因为…

用HAL库改写江科大的stm32入门-6-3 PWM驱动LED呼吸灯

接线图: 2 :实验目的: 利用pwm实现呼吸灯。 关键PWM定时器设置: 代码部分: int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*…

10.Halcon3D点云和MESH的相互转换

1.实现效果 这个案例主要是想告诉我们,如何在点云数据(全是点)和MESH(网格数据)中转换,理论上说可以点云数据可以看作的离散的,而MESH网格数据可以看作是连续的。 上图展示了三个(其实是四个)空间中的3d对象,左边第一个是一个立方体,经过降采样之后的点云,中间的是…

匿名函数(lambda)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 匿名函数是指没有名字的函数,应用在需要一个函数,但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只…

LabVIEW中进行步进电机的位置控制

在LabVIEW中进行步进电机的位置控制,通常涉及以下几个关键步骤:设置硬件、配置通信、编写控制算法和实施反馈控制。以下是一个详细的介绍。 硬件设置 步进电机:选择合适的步进电机,根据负载和应用需求选择适当的步数和转矩。 驱…

TensorFlow Playground神经网络演示工具使用方法详解

在现代机器学习领域,神经网络无疑是一个重要的研究方向。然而,对于许多初学者来说,神经网络的概念和实际操作可能显得相当复杂。幸运的是,TensorFlow Playground 提供了一个交互式的在线工具,使得我们可以直观地理解和实验神经网络的基本原理。在这篇博客中,我们将详细介…

IMU状态预积分代码实现 —— IMU状态预积分类

IMU状态预积分代码实现 —— IMU状态预积分类 实现IMU状态预积分类 实现IMU状态预积分类 首先,实现预积分自身的结构。一个预积分类应该存储一下数据: 预积分的观测量 △ R ~ i j , △ v ~ i j , △ p ~ i j \bigtriangleup \tilde{R} _{ij},\bigtrian…

Superset二次开发之更新 SECRET_KEY

SECRET_KEY 的作用 加密和签名:SECRET_KEY用于对敏感数据(如会话、cookie、CSRF令牌)进行加密和签名,防止数据被篡改。安全性:确保应用的安全性,防止跨站请求伪造(CSRF)攻击和会话劫持等安全问题。如何生成 SECRET_KEY openssl rand -base64 42 配置 SECRET_KEY 在sup…

git使用流程与规范

原文网址:git代码提交流程与规范-CSDN博客 简介 本文git提交流程与规范是宝贵靠谱的经验,它能解决如下问题: 分支差距过大,导致合代码无数的冲突合完代码后发现代码丢失分支不清晰,无法追溯问题合代码耗时很长&…

使用Spring Boot自定义注解 + AOP实现基于IP的接口限流和黑白名单

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

数据在内存中的存储<C语言>

导言 在计算机中不同类型的数据在计算机内部存储形式各不相同,弄懂各种数据在计算机内部存储形式是有必要的,C语言的学习不能浮于表面,更要锻炼我们的“内功”,将来在写程序的时候遇见各种稀奇古怪的bug时,也便能迎刃而…

应用案例|精密制造中使用复合机器人得到显著提升

精密制造行业对设备的精度、稳定性和效率要求极高,而复合机器人凭借其多功能性、高度灵活性和精准控制能力,正逐渐成为该领域的新宠。以下是一个富唯智能复合机器人在精密制造中的应用案例。 案例背景 某知名汽车零部件制造企业,专注于生产…

u盘文件保密的方法有哪些?关于U盘的使用你要知道这些!

U盘作为便携式的存储设备,被广泛应用于日常工作和生活中。 然而,U盘的丢失或被盗可能导致敏感数据泄露,因此,掌握U盘文件保密的方法至关重要。 本文将介绍几种有效的U盘文件保密方法,并分享关于U盘使用的关键知识&…

Threejs(WebGL)绘制线段优化:Shader修改gl.LINES模式为gl.LINE_STRIP

目录 背景 思路 Threejs实现 记录每条线的点数 封装原始裁剪索引数据 封装合并几何体的缓冲数据:由裁剪索引组成的 IntArray 守住该有的线段! 修改顶点着色器 修改片元着色器 完整代码 WebGL实现类似功能(简易版,便于测…

cdo | 常用命令

整理一下平时经常会使用的cdo命令 如何来更改netcdf数据中的变量名呢? 假设我现在有一个sst月平均数据,希望将里面的变量名称sst修改为sst_new netcdf oisst_monthly { dimensions:lat 180 ;lon 360 ;time UNLIMITED ; // (476 currently)nbnds 2 ; variable…