当前位置: 首页 > news >正文

【Ubuntu18.04使用yolov5教程】

  • 欢迎大家阅读2345VOR的博客【Ubuntu18.04使用yolov5教程】🥳🥳🥳
  • 2345VOR鹏鹏主页: 已获得CSDN《嵌入式领域优质创作者》称号👻👻👻,座右铭:脚踏实地,仰望星空🛹🛹🛹
  • 本文章属于《Ubuntu学习》和《ROS机器人学习》
    :这里主要是记录Ubuntu下简单使用yolov5测试检测效果的过程,我是使用realsense d435i摄像头的RGB图像。👍👍👍

在这里插入图片描述

1. 前言

Ubuntu环境搭建
【经典Ubuntu20.04版本U盘安装双系统教程】
【Windows10安装或重装ubuntu18.04双系统教程】
【Ubuntu同步系统时间】
【Ubuntu中截图工具】
【Ubuntu安装QQ】
【Ubuntu安装后基本配置】
【Ubuntu启动菜单的默认项】
【ubuntu系统中修改hosts配置】
【18.04Ubuntu中解决无法识别显示屏】
【ROS 开发神器 Visual Studio Code 的安装和设置】
【基于Ubuntu18.04+Melodic的realsense D435安装】
【Ubuntu18配置Anaconda深度学习环境】
ROS学习笔记
【1. Ubuntu18.04安装ROS Melodic】
【2. 在Github上寻找安装ROS软件包】
【3. 初学ROS,年轻人的第一个Node节点】
【4. ROS的主要通讯方式:Topic话题与Message消息】
【5. ROS机器人的运动控制】
【6. 激光雷达接入ROS】
【7. ROS 中的 IMU 惯性测量单元消息包】

我在Ubuntu下配置深度环境的过程可参考:

【Ubuntu18配置Anaconda深度学习环境】

本篇文章主要参考:

Ubuntu下使用yolov5
https://github.com/ultralytics/yolov5

这里参考的github上的yolo v5程序版本和功能比较全面,图片、视频、摄像头实时画面都可以使用,可以以这个程序为基础进行修改。

2. yolov5源码配置

源码地址; https://github.com/ultralytics/yolov5
在这里插入图片描述

2.1 下载文件

首先使用CTRL+alt+t命令下载文件到~/yolov5_test文件夹下,然后准备开始VScode配置和安装相关依赖

git clone https://github.com/ultralytics/yolov5.git yolov5_test

主目录如下文件
在这里插入图片描述

2.2 用VScode打开

进入主目录,打开终端输入code yolo,tab 回车用vscode打开,vscode可参考
【ROS 开发神器 Visual Studio Code 的安装和设置】
在这里插入图片描述
首先使用CTRL+shift+p命令: 打开命令交互面板, 在命令面板中可以输入命令进行搜索(中英文都可以),然后执行。命名面板中可以执行各种命令,包括编辑器自带的功能和插件提供的功能
在打开的命令面板中输入下述命令,如下图所示:

Python: Select Interpreter

在这里插入图片描述选择已经配置好的torch环境,可参考
【Ubuntu18配置Anaconda深度学习环境】
在这里插入图片描述
然后ctrl+shift+`
打开终端

在这里插入图片描述期待下面的操作啦!

2.3 安装相关依赖

接着上面的操作,在终端中输入下面指令,下载相关依赖。如下是添加了清华镜像,下载速度比国外源快。

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installed

一定要完全安装,需要下载好几个G的文件包,否则后面实验会报乱七八糟的错误。反馈如下
在这里插入图片描述

3. 运行detect例子

3.1 语法说明

详细的可以参考https://github.com/ultralytics/yolov5中的README.md

  • source:是选择测试例的来源
$ python detect.py --source 0  # webcamimg.jpg  # imagevid.mp4  # videopath/  # directorypath/*.jpg  # glob'https://youtu.be/Zgi9g1ksQHc'  # YouTube'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream
  • weights:是选择模型,如果weights文件夹里有权重则直接使用,没有就下载,PyTorch框架的权重文件后缀为.pt,,也可等运行时自动下载
# weights: yolov5m, yolov5l, yolov5x, custom
python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt

3.2 测试图片

图片在/data/images文件下,分别是如下两张
在这里插入图片描述
在这里插入图片描述

在终端输入如下

clear
python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt

效果:

在这里插入图片描述

(mytorch) robot@ms:~/yolov5_test$ python3 detect.py --source ./data/images/ --weights weights/yolov5s.pt
detect: weights=['weights/yolov5s.pt'], source=./data/images/, data=data/coco128.yaml, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False, vid_stride=1
YOLOv5 🚀 v7.0-162-gc3e4e94 Python-3.8.0 torch-2.0.0+cu117 CUDA:0 (NVIDIA GeForce RTX 3060, 12051MiB)Fusing layers... 
YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients
image 1/2 /home/robot/yolov5_test/data/images/bus.jpg: 640x480 4 persons, 1 bus, 29.9ms
image 2/2 /home/robot/yolov5_test/data/images/zidane.jpg: 384x640 2 persons, 2 ties, 29.0ms
Speed: 0.3ms pre-process, 29.5ms inference, 0.5ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/detect/exp14

检测出图片内容如下,效果还不错,一张0.03秒,基本都识别出来了。

image 1/2 /home/robot/yolov5_test/data/images/bus.jpg: 640x480 4 persons, 1 bus, 29.9ms
image 2/2 /home/robot/yolov5_test/data/images/zidane.jpg: 384x640 2 persons, 2 ties, 29.0ms
Speed: 0.3ms pre-process, 29.5ms inference, 0.5ms NMS per image at shape (1, 3, 640, 640)

3.3 测试RealSense摄像头实时图像

RealSense摄像头可以采用以下教程配置,主要调用SDK
的图像配置。
【基于Ubuntu18.04+Melodic的realsense D435安装】
在上面终端输入如下,首先查看USB占用情况

lsusb

在这里插入图片描述

  1. 红外画面测试及效果

在上面终端输入如下,红外画面测试

python3 detect.py --source 2 --weights weights/yolov5m.pt

效果
在这里插入图片描述ctrl+c中止当前终端任务

  1. RGB画面测试及效果
    在上面终端输入如下,RGB画面测试
python3 detect.py --source 4 --weights weights/yolov5m.pt

效果
在这里插入图片描述

注意事项:

  1. 对于深度相机,不能像普通的usb相机一样,opencv打开id直接为0。
  2. 对于id为2时打开的是红外的画面,id为4打开的是RBG画面。

相关文章:

【Ubuntu18.04使用yolov5教程】

欢迎大家阅读2345VOR的博客【Ubuntu18.04使用yolov5教程】🥳🥳🥳2345VOR鹏鹏主页: 已获得CSDN《嵌入式领域优质创作者》称号👻👻👻,座右铭:脚踏实地,仰望星空…...

CocoaPods如何发布新版本的Pod Library

当我们修改了一个Pod Library中的代码时,如何让依赖该库的项目能更新到最新代码,步骤如下: 假设现在修改了SamplePod(Pod名称)的代码,希望将最新版本更新到1.0.1,目前版本是1.0.0 修改SamplePo…...

v4l2框架

v4l2框架 文章目录 v4l2框架框架1.硬件相关层uvc_probeuvc_register_chainsuvc_register_termsuvc_register_video 2.核心层__video_register_device 3.虚拟视频驱动vivid分析入口vivid_init注册vivid平台驱动vivid_probevivid_create_instance 框架 1.硬件相关层 driver/medi…...

vue项目中生成LICENSE文件

vue项目中生成LICENSE文件 简介 LICENSE 文件是一个文本文件,它包含了你的项目所使用的开源软件的许可证信息。 在开发过程中,我们经常会使用到各种各样的第三方开源软件,这些软件是有版权和许可证的,我们在使用时需要遵循它们的…...

NewBing最新更新使用体验(无需等待人人可用)

NewBing最新更新使用体验 微软Bing爆炸级更新!无需等待人人可用! 今天,微软突然官宣全面开放BingChat: 无需任何等待。只需注册一个账户,首页即可体验。 NewBing最新更新新特性官方文档 https://www.microsoft.com/en-…...

欧拉奔赴品牌2.0时代,女性汽车真实用户需求被定义?

每年的上海国际汽车工业展览会,不仅是各大汽车品牌的技术“秀场”,也是品牌的营销“修罗场”。今年上海车展出圈的营销事件特别多,热度甚至一再蔓延到汽车行业外,其中欧拉也贡献了不少流量。 据了解,在2023上海车展欧…...

机器视觉工程师,听我一句劝,别去外包,干了三年,废了....对女人没了兴趣

​外包三年,干了就废,最后只会安装软件。 对于年轻人来说,需要工作,更需要生活。 对于年轻人来说,需要努力,更需要“面包”。 对于年轻人来说,需要规划,更需要发展。 对于外包,虽说废的不是很彻底,但那三年几乎是出差了三年、玩了三年、荒废了三年,那三年,技术…...

PBDB Data Service:Special parameters(特殊参数)

Special parameters(特殊参数) 描述参数1:下列参数在大部分请求中可用2:以下参数只与文本格式(.csv, .tsv, .txt)相关 描述 本文将介绍一组特殊参数,它们几乎可以在此数据服务的任何请求中使用…...

腾讯云轻量应用服务器使用限制说明(十大限制)

腾讯云轻量应用服务器和云服务器CVM相比具有一些限制,比如轻量服务器不支持更换内网IP地址,轻量服务器只能套餐整体升级且不支持降配,轻量不支持用户自定义配置私有网络VPC,还有如实例配额、云硬盘配额、备案限制和内网连通性等限…...

Python每日一练(20230507) 丑数I\II\III、超级丑数

目录 1. 丑数 Ugly Number I 2. 丑数 Ugly Number II 3. 丑数 Ugly Number III 4. 超级丑数 Super Ugly Number 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 丑数 Ugly Number I …...

K8S常见异常事件与解决方案

集群相关 Coredns容器或local-dns容器重启 集群中的coredns组件发生重启(重新创建),一般是由于coredns组件压力较大导致oom,请检查业务是否异常,是否存在应用容器无法解析域名的异常。 如果是local-dns重启,说明local-dns的性能…...

测试5年从中兴 15K 跳槽去腾讯 32K+16,啃完这份笔记你也可以

粉丝小王转行做测试已经是第5个年头,一直是一个不温不火的小职员,本本分分做着自己的事情,觉得自己的工作已经遇到了瓶颈,一个偶然的机会,获得了一份软件测试全栈知识点学习笔记,通过几个月的学习&#xff…...

CentOS 临时IP与永久IP配置

CentOS 临时IP与永久IP配置 CentOS是一种广泛使用的Linux发行版,通常用于服务器和企业网络中。在安装和配置CentOS服务器时,必须为其配置IP地址以便访问。在本文中,我们将介绍如何在CentOS中配置临时IP地址和永久IP地址。 临时IP地址配置 临…...

集线器、网桥、交换机

一.集线器 集线器(HUB),它是工作在物理层的设备, 由于它只是工作在物理层的设备,所以它并不关心也不可能关心OSI上面几层所涉及的,它的工作机制流程是:从一个端口接收到数据包时,会在…...

api接口怎么用?

API接口是一种应用程序编程接口,它允许不同的软件应用程序之间进行通信和交互。通过使用API接口,开发人员可以轻松地将自己的应用程序集成到其他应用程序中,从而实现更丰富的功能和更好的用户体验。 API接口的使用方法一般包括以下几个步骤&a…...

Bad minute in crontab?

ERROR 详细 修改crontab出现如下错误: crontab: installing new crontab “/tmp/crontab.MswKCq”:0: bad minute errors in crontab file, can’t install. Do you want to retry the same edit? n crontab: edits left in /tmp/crontab.MswKCq 根因定位 通过…...

【二维矩阵如何存储在一维数组中(行优先和列优先)】

列优先和行优先的性能取决于具体的硬件架构和代码访问模式。在现代计算机中,内存访问的局部性(locality of reference)对性能至关重要。局部性分为两类:时间局部性(temporal locality)和空间局部性(spatial locality)。时间局部性表示最近访问过的数据项很可能在不久的…...

使用Gradle7.6+SpringBoot 3.0+java17创建微服务项目

系列文章目录 学习新版本,菜鸟一枚 会持续更新的 文章目录 系列文章目录前言一、搭建项目1.1、创建git仓库1.1.1、登录gitee,新建仓库1.1.2、得到如下命令(新建仓库使用创建git仓库 即可) 1.2、使用IDEA创建项目1.2.1、开发工具1.…...

pandas使用教程:apply函数、聚合函数agg和transform

文章目录 apply函数调用apply函数描述性统计apply函数lambda自定义 聚合函数aggregate/agg用字典实现聚合 transform函数多函数 Transform 重置索引与更换标签行重置索引行和列同时重置索引 apply函数调用 apply函数描述性统计 import numpy as np df.loc[:,Q1:Q4].apply(np.…...

使用rasterio裁剪遥感影像

文章目录 0. 数据准备1. polygon的坐标系转换1.1 polygon生成1.1.1 输入数据是shapefile1.1.2 输入数据是polygon 1.2 搞清楚遥感的坐标系和polygon的坐标系(重点)1.3 开始转换 2. 基于polygon的遥感影像裁剪2.1 基础裁剪方法2.1.1 使用rasterio保存2.1.2 使用numpy保存2.2 多线…...

BetaFlight统一硬件配置文件研读之set命令

BetaFlight统一硬件配置文件研读之set命令 1. 源由2. 代码分析3. 实例分析4. 配置情况4.1 set4.2 set parameter_name4.3 set parameter_name value 5. 参考资料 统一硬件配置文件的设计是一种非常好的设计模式,可以将硬件和软件的工作进行解耦。 1. 源由 cli命令…...

QT+OpenGL高级数据和高级GLSL

QTOpenGL高级数据和高级GLSL 本篇完整工程见gitee:QtOpenGL 对应点的tag,由turbolove提供技术支持,您可以关注博主或者私信博主 高级数据 OpenGL中的缓冲区 对象管理特定的GPU内存 在将缓冲区绑定到特定的缓冲区目标时候赋予它意义 OpenGL在内部会保…...

接口测试之Jmeter+Ant+Jenkins接口自动化测试平台

目录 平台简介 环境准备 Jenkins简介 下载与安装 平台搭建 依赖文件配置 build.xml配置 Ant构建 阿里大佬倾情演绎,3天让你学会Jmeter接口测试,学不会算我输_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Q84y1K7bK/?spm_id_from333.99…...

FPGA设计中锁存器产生、避免与消除

FPGA设计中锁存器产生、避免与消除 一、锁存器的产生1.1 组合逻辑中使用保持状态1.2 组合逻辑中的if-else语句或case语句未列出所有可能性1.3 小结 二、锁存器的避免三、锁存器的消除3.1 情况一 一、锁存器的产生 锁存器的产生主要有以下两种情况:(1&…...

一份标准的软件测试方案模板

第一章 概述 ​ 软件的错误是不可避免的,所以必须经过严格的测试。通过对本软件的测试,尽可能的发现软件中的错误,借以减少系统内部各模块的逻辑,功能上的缺陷和错误,保证每个单元能正确地实现其预期的功能。检测和排…...

【C++】-对于自定义类型的输入输出运算符重载

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 ❤️‍&#x1fa79;作者宣言&#xff1a;认真写好每一篇博客 &#x1f4a8;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 文章目录 前言一、案例引入二、<<的重载三、>>的…...

(详解)js中什么是宏任务、微任务?宏任务、微任务有哪些?又是怎么执行的?

目录 参考资料 必看强烈建议十分钟看完视频 &#xff0c;即可学会 必看参考详解宏任务微任务 笔记 宏任务与微任务 定时器的任务编排 promise的微任务处理逻辑 DOM渲染任务 任务队列共享内存 进度条的实现 任务拆分成多个任务 promise复杂任务分割 img算同步还是异步…...

Okta 即代码:云原生时代的身份管理

我们为什么应该将 Okta 配置作为代码进行管理&#xff1f; 对于需要跨多个应用程序和环境管理对其数字资源的访问的组织来说&#xff0c;Okta 可能是最受欢迎的选择&#xff0c;因为它提供了一系列使其在身份验证和授权方面很受欢迎的功能&#xff0c;例如&#xff1a; 单点登…...

数据结构(六)—— 二叉树(7)构建二叉树

文章目录 如何使用递归构建二叉树1、创建一颗全新树&#xff08;题1-5&#xff09;2、在原有的树上新增东西&#xff08;题6&#xff09; 1 106 从 后序 与 中序 遍历序列构造二叉树2 105 从 前序 与 中序 遍历序列构造二叉树3 108 将有序数组转换为二叉搜索树&#xff08;输入…...

安装适用于Linux的Windows11子系统(WSL2)

1. 主板BIOS开启虚拟化 开启虚拟化需要在BIOS中进行设置&#xff0c;进入主板BIOS→找到虚拟化设置→开启。 2. 检验是否开启虚拟化 打开Windows命令行&#xff0c;并运行 systeminfo固件中已启用虚拟化为是&#xff0c;代表主板BIOS已经开启虚拟化。 3. 启用Windows功能…...

塘沽网站建设/深圳网络广告推广公司

在 开发Maven 项目的时候&#xff0c;会发现个问题&#xff0c;就是下载下来的项目默认 compiler 为1.5 &#xff0c;项目报错。 明明之前开发用的是1.7的啊。 这里只需要在pom.xml确定下就好了。 <properties><project.build.sourceEncoding>UTF-8</project.bu…...

湘潭县建设投资有限公司网站/seo搜索引擎优化介绍

╮(╯▽╰)╭&#xff0c;又是一年惆怅时。 周围同事也下班啦&#xff0c;一个个的说“来年见”&#xff1b;办公司就剩下我自己&#xff0c;在博客园记录这一年的点点滴滴。 这一年&#xff0c;感觉挺失败的。 年初的时候&#xff0c;24年里&#xff0c;唯一的一次恋爱也早早流…...

集团网站建设案例/推广平台有哪些渠道

今天一起安装了4块1080的卡。也算有一些坑吧&#xff0c;记录一下。 1&#xff09;1080显卡&#xff0c;驱动型号&#xff0c;tensorflow&#xff0c;cuda, cudnn 版本一定要一致。我的清单如下&#xff1a; ############################################# nvidia显卡&#xf…...

网站在线聊天源代码/怎么seo快速排名

信息技术教学计划及学情分析信息技术教学计划及学情分析以计算机技术、微电子技术和通信技术为特征的现代信息技术,在社会各个领域得到了广泛应用,并且逐渐改变着人们的生活方式、工作与学习方式.开展以提升学生信息素养和信息技术操作能力为主要目标的信息技术教育,正是全面推…...

wordpress扁平化主题/成都seo的方法

——阶段 动态规划问题通常都具有时间或空间上的次序性&#xff0c;因此求解这类问题时&#xff0c;首先要将问题按一定的次序划分成若干相互联系的阶段&#xff0c;以便能按一定次序去求解。如例1&#xff0c;可以按空间次序划分为A—B—C—D—E 4个阶段&#xff0c;而例2&…...

深圳大型网站建设公司/合肥seo代理商

本篇文章和大家一起了解一下MySQL数据库多表查询。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。多表查询查询结果来自于多张表&#xff0c;即多表查询子查询&#xff1a;在SQL语句嵌套着查询语句&#xff0c;性能较差&#xff0c;基…...