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.mzph.cn/news/848798.shtml

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

相关文章

微信小程序实现图片转base64

在微信小程序中,图片转base63可以引入第三方插件; 也可以通过下边的方法转base64。 转换方法: imgToBase64(filePath) {return new Promise((resolve, reject) > {let baseFormat data:image/png;base64,let base64 wx.getFileSystem…

记录工作中常用的 JS 数组相关操作

工作中难免会遇到各种各样的数据结构,较为全面的了解数组操作,对于复杂数据结构的处理会非常有用且节省时间 所以想在这里总结一下工作中常用的数组操作,都是一些非常基础的知识,大家看个乐就好~ 目录 工作中常用的数组方法 常…

android睡眠分期图

一、效果图 做医疗类项目&#xff0c;经常会遇到做各种图表&#xff0c;本文做的睡眠分期图。 二、代码 引入用到的库 api joda-time:joda-time:2.10.1 调用代码 /*** 睡眠* 分期*/private SleepChartAdapter mAdapter;private SleepChartAttrs mAttrs;private List<SleepI…

不会制作企业版电子书?学会这几个步骤就好啦!

公司安排你制作一本专业的电子书&#xff0c;不知道如何下手&#xff1f;别担心&#xff0c;今天LookLook同学就来给大家分享一下如何轻松制作企业版电子书。参考这几个步骤&#xff0c;相信你一定能轻松搞定&#xff01; 第一步&#xff1a;明确电子书的目标和受众 在开始制作…

zeppelin 未授权任意命令执行漏洞复现

一、命令执行复现 访问http://ip:8080&#xff0c;打开zeppelin页面&#xff0c;&#xff08;zeppelin默认监听端口在8080&#xff09; 点击Notebook->create new note创建新笔记 在创建笔记的时候选择Default Interpreter为sh&#xff0c;即可执行sh命令 如下图&#x…

Dell服务器使用ipmi控制风扇转速

#关闭自动调速 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x01 0x00 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x23#80%转速 ipmitool -I lanplus -U root -P XXX -H 192.168.3.30 raw 0x30 0x30 0x02 0xff 0x50…

最新去水印小程序源码分享/无需后台/对接接口/支持全网去水印功能

最新去水印小程序源码分享&#xff1a;无需后台、对接接口&#xff0c;支持全网去水印功能&#xff0c;经过测试发现&#xff0c;该去水印小程序的解析接口需要付费使用。如果您有免费的解析接口&#xff0c;可以自行替换原有接口。 不过&#xff0c;不论是否付费&#xff0c;…

JAVA小案例-分别计算100以内奇数和偶数的和

JAVA小案例-分别计算100以内奇数和偶数的和 没啥可说的&#xff0c;就是for循环加if分支&#xff0c;也可以用while写。 代码如下&#xff1a; public class Jiouhe {/*** 分别计算100以内奇数和偶数的和* param args*/public static void main(String[] args){int sum10;in…

老程序员学习AI大模型的焦虑与机遇

前言 在这个科技飞速发展的时代&#xff0c;AI大模型成为了编程领域的热门话题。许多人都认为&#xff0c;学习AI大模型是获取高薪职位和实现职业发展的关键。然而&#xff0c;作为一名拥有十多年编程经验的老程序员&#xff0c;我不得不承认&#xff0c;面对这一新兴技术&…

WebGL开发地理信息系统

WebGL开发地理信息系统&#xff08;GIS&#xff09;是一项复杂且具有挑战性的任务&#xff0c;需要解决一系列技术难点。以下是一些主要的技术难点及其可能的解决方案。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.大规模数据渲染…

SQL语句练习每日5题(一)

一、查询 题目1——查询所有列&#xff1a; 现在运营想要查看用户信息表中所有的数据&#xff0c;请你取出相应结果 答案&#xff1a; select * from user_profile 题目2——查询多列&#xff1a; 请取出用户的设备id对应的性别、年龄和学校的数据 答案&#xff1a;select …

QT:QML中使用Loader加载界面

目录 一.介绍 二.实现 三.效果展示 四.代码 一.介绍 在QML中使用Loader加载界面&#xff0c;可以带来诸多好处&#xff0c;如提高应用程序的启动速度、动态地改变界面内容、根据条件加载不同的组件、更有效地使用内存以及帮助分割应用逻辑等。 1.延迟加载&#xff1a;QML…

区块链学习记录01

在学习过程中所遇到的问题&#xff0c;及其解。 Q:区块链中分布式账本的存在&#xff0c;让所有人都知道资金的变动吗&#xff1f; A:区块链中的分布式账本确实让参与网络的所有节点都能够了解账户之间的资金变动。这是因为区块链是一个分布式数据库&#xff0c;其中包含着所…

Java 基础面试题

文章目录 重载与重写抽象类与接口面向对象a a b 与 a b 的区别final、finalize、finallyString、StringBuild、StringBuffer位运算反射 重载与重写 重载&#xff1a;是在同一个类中&#xff0c;方法名相同&#xff0c;方法参数类型&#xff0c;个数不同&#xff0c;返回类型…

苹果不会在WWDC 2024中推出任何搭载M4芯片的Mac电脑

虽然苹果公司已在上月推出了首搭 M4 芯片的 iPad Pro&#xff0c;不过彭博社的马克・古尔曼在最近的实时通讯中透露苹果公司不会在即将进行的 WWDC 2024 开发者大会中推出任何搭载 M4 芯片的 Mac 电脑&#xff08;不会推出任何硬件产品&#xff09;。 此前报道&#xff0c;苹果…

linux命令别名与shell函数

# 修改网卡配置 alias vinetwork"vi /etc/sysconfig/network-scripts/ifcfg-ens33" 1. 方法和调用在同一个文件 # 定义shell函数,返回值通过$?获取 function say_hello(){ echo "hello shell" return 1 } # 使用shell函数 say_hello # 执行脚本后接收返…

源代码防泄密是什么?

1.源代码防泄密的概念 源代码防泄密是指采取一系列措施和技术手段&#xff0c;以防止源代码被未授权的访问、复制、传播或篡改&#xff0c;从而保障软件的知识产权和系统的安全性。 2.源代码防泄密的重要性 源代码是软件的核心部分&#xff0c;一旦泄露&#xff0c;可能会被…

fastjson序列化对象后属性变更问题

使用fastjson进行JSON序列化存储到数据库后&#xff0c;发现JSON字符串“莫名其妙地”多了一些属性。 public class MyClass {// boolean 类型的属性private boolean isActive;private boolean valid;// int 类型的属性private int id;// 默认构造器public MyClass() {}// 带有…

前端框架之 MVVM

MVVM vue 是典型的 MVVM 框架&#xff0c;v-model 实现了 VM 部分 MVVM 的理解 M&#xff1a;模型层、数据层&#xff0c;简单理解就是定义在 data 中的变量 V&#xff1a;视图层&#xff0c;就是浏览器展示的页面 M > V&#xff1a;数据的改变&#xff0c;需要同步更新…

公寓远程抄表系统:智能管理方法新的篇章

1.界定和功能 公寓远程抄表系统是一种前沿的自动化控制&#xff0c;它允许物业管理管理人员在远离现场部位收集和分析公寓里的电力能源使用数据&#xff0c;似水、电、气等。根据集成传感器、物联网产品和云计算&#xff0c;系统能实时检测并记录公寓的能耗状况&#xff0c;大…