ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【基于Ubuntu下Yolov5的目标识别】保姆级教程 | 虚拟机安装 - Ubuntu安装 - [打印本页]

作者: 忿忿的泥巴坨    时间: 2024-6-27 05:44
标题: 【基于Ubuntu下Yolov5的目标识别】保姆级教程 | 虚拟机安装 - Ubuntu安装 -
目次

一.【YOLOV5算法原理】
1.输入端
2.Backbone
3.Neck
4.输出端
二.【系统环境】
1.虚拟机的安装与创建
2.安装Ubuntu操作系统
3.环境的设置
3.1.Ubuntu下Anacoda安装以及虚拟环境设置
3.2.Pytorch安装
3.3.Vscode安装
3.4.Yolov5源码及环境获取安装
三. 【测试Yolov5】
四. 【实现本身输入图片/笔记本摄像头的目标检测】
1.输入本身的图片
2.使用笔记本摄像头目标检测
更多细节:
【使用外接USB摄像头进行目标检测】
【Ros下搭载yolov5实现目标检测】


最终效果:


------------------------全文8963字102图一步一步完成约莫耗时2h------------------------

所需软件以及环境: 

Vmware Workstation 17pro
内存                             8GB
处理惩罚器                               6
硬盘                           20GB
Python                           3.8
Yolo                                V5
Pytorch                          2.1
系统             Ubuntu20.04.6


一.【YOLOV5算法原理】

此步是对算法原理进行介绍,如需实战,直接跳过这一节(没有任何影响)到下一节【二、系统环境】

参考链接:
【YOLOV5】https://github.com/ultralytics/yolov5
【知乎江明白】https://zhuanlan.zhihu.com/p/172121380
【YOLO-YOLOV5】https://blog.csdn.net/guanjing_dream/article/details/123705221
结构:
1.输入端:Mosaic数据增强、自顺应锚框计算、自顺应图片缩放
2.Backbone:Focus结构,CSP结构
3.Neck:FPN+PAN结构
4.Prediction:GIOU_Loss

1.输入端

(1)Mosaic数据增强
Yolov5的输入端采用了和Yolov4一样的Mosaic数据增强的方式,Mosaic数据增强提出的作者也是来自Yolov5团队的成员,不过,随机缩放、随机裁剪、随机排布的方式进行拼接。

(2)自顺应锚框计算
在Yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。在网络练习中,网络在初始锚框的根本上输出推测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。Yolov5中将此功能嵌入到代码中,每次练习时,自顺应的计算不同练习集中的最佳锚框值。
(3)自顺应图片缩放
在Yolov5的代码中datasets.py的letterbox函数中进行了修改,对原始图像自顺应的添加最少的黑边。


2.Backbone

(1)Focus结构
Focus结构,在Yolov3&Yolov4中并没有这个结构,其中比力关键是切片操作。以Yolov5s的结构为例,原始608*608*3的图像输入Focus结构,采用切片操作,先变成304*304*12的特性图,再经过一次32个卷积核的卷积操作,最终变成304*304*32的特性图。
(2)CSP结构
Yolov5中筹划了两种CSP结构,以Yolov5s网络为例,CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。

3.Neck

Yolov5如今的Neck和Yolov4中一样,都采用FPN+PAN的结构,但在Yolov5刚出来时,只使用了FPN结构,背面才增加了PAN结构,此外网络中其他部门也进行了调解。Yolov5的Neck结构中,采用鉴戒CSPnet筹划的CSP2结构,增强网络特性融合的本事。

4.输出端

(1)Bounding box损失函数
Yolov5中采用其中的CIOU_Loss做Bounding box的损失函数。

(2)nms非极大值抑制
在目标检测的后处理惩罚过程中,针对很多目标框的筛选,通常需要nms操作。因为CIOU_Loss中包含影响因子v,涉及groudtruth的信息,而测试推理时,是没有groundtruth的。所以Yolov4在DIOU_Loss的根本上采用DIOU_nms的方式,而Yolov5中采用加权nms的方式。可以看出,采用DIOU_nms,下方中央箭头的黄色部门,本来被遮挡的摩托车也可以检出。


二.【系统环境】


1.虚拟机的安装与创建

起首需要安装虚拟机软件Vmware Workstation 17pro(这里我选择的是这个版本,不一定需要这个版本)百度即可下载
虚拟机软件打开后就是如许的界面:

点击新建虚拟机:

点击自定义,下一步:

下一步

稍后安装操作系统,下一步

选择Linux(我们稍后要安装的Ubuntu就是基于Linux的)下一步:

给虚拟机起一个名字(本身喜欢就行)
位置更改到自定义文件夹下(需要新建一个本身喜欢的文件夹)


选择处理惩罚器数量2,每个处理惩罚器的内核3(根据本身的笔记天性能来),我的笔记本是16核,最好不超过一半(装备管理器 – 处理惩罚器 - 查看)



分配虚拟机内存,建议4GB-8GB(我是8GB)


选择网络,桥接网络(之后可以更改)


下一步


下一步


选择新建虚拟机,下一步


分配磁盘大小,默认20GB有点小,下面需要安装设置各种环境和包,最好30GB,之后不够了可以很轻松的扩容,选择将虚拟磁盘拆分成多个空间。


需要新建一个目次文件夹(本身喜欢就行),这个文件夹就是你的虚拟磁盘


欣赏一下你刚才的设置,确认无误后点击完成~
恭喜你完成了虚拟机的创建(进度1/9加油加油!!)


---------------------------------------------------------------------------------------------------------------------------------

2.安装Ubuntu操作系统

打开刚刚创建的虚拟机


第2步就是你这一步创建的目次文件夹(去找找啦)


我的虚拟机名字我起的ubuntu_Akaxi_20.04(虚拟机名字随便起)
打开后你就可以看到,如许的界面:

左边的红色框框就是你为虚拟机设置的信息(第一步调干的事变)

如今我们需要正式的给他安装一个操作系统——Ubuntu
【Ubuntu镜像】http://mirrors.aliyun.com/ubuntu-releases/20.04/
这里选择Ubuntu版本20.04.6的桌面desktop-amd64位的iso镜像,如图,点击下载:


下载完成后,打开虚拟机的CD/DVD


点击欣赏,找到刚刚下载的Ubuntu20.04.6的镜像文件,使用ISO镜像文件打开,如许就在虚拟机插入了Ubuntu噜


点击开启虚拟机(准备在虚拟机里面安装Ubuntu20.04.6操作系统)

进入安装界面,选择语言,中文,然后安装Ubuntu

选择安装Ubuntu时下载更新,表现不全,用win键 + 鼠标拖拽


选择清除整个磁盘并安装Ubuntu


磁盘分区,点击继承


选择系统时间,我们是东八区,默认上海,继承


设置Ubuntu系统信息与暗码,姓名,计算机名字,暗码,登录时需要暗码,这个暗码要记取噜,之后很多地方使用超等管理员权限需要输入暗码。


等待安装(大概5-10分钟)


安装完毕,点击如今重启,看到此界面,就完成Ubuntu系统的安装噜。

进度(2/9)快啦快啦,加油加油

---------------------------------------------------------------------------------------------------------------------------------

3.环境的设置


****************************************************************************

3.1.Ubuntu下Anacoda安装以及虚拟环境设置


参考链接:http://Ubuntu系统下安装Anaconda3及设置 - 知乎 (zhihu.com)
在Ubuntu打开火狐欣赏器:(没有网络,把虚拟机网络模式改成NAT模式)如图:


在清华源网址下载Anaconda3-2021-11-Linux-x86_64.sh
【清华源】https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/


速度嘎嘎快


下载完成后,可以在文件夹,下载中找到下好的软件包


将其复制到主目次下面


在空缺处鼠标右键,选择在终端打开


输入
  1. bash Anaconda3-2021.11-Linux-x86_64.sh
复制代码
准备安装啦


输入后,终端输出串串英文,让你阅读一些事项,一起回车即可,遇到让你输入‘yes’ or ‘no’,全输入yes回车即可


之后他会让你确认Anaconda安装目次,默认在你主文件夹下,天生一个anaconda3的文件夹,回车开始嘎嘎安装


安装完成,输入yes,可以看到真的在主目次下天生了anaconda的文件夹。


看到此界面,就代表你已经在Ubuntu系统下装上了anaconda噜,如图:


装好后我们还需要进行一些环境设置
输入
  1. sudo gedit ~/.bashrc
复制代码
进入bashrc文件设置环境变量(gedit是一个文本编辑器)


输入你的暗码后在bashrc文件的末尾添加路径:
  1.       export PATH="/home/你的用户名/anaconda3/bin:$PATH"
  2. 我就是export PATH="/home/Akaxi/anaconda3/bin:$PATH"
复制代码


添加后生存退出
输入
  1. source ~/.bashrc
复制代码
更新下环境
输入
  1. conda list
复制代码
可看到一系列的包名输出,代表完成啦,撒花~~


由于annaconda自带的下载工具pip默认使用的是外网的网址,接下来需要对其网址进行更新,用我们国的自带的网址,如许使用conda pip就嘎嘎快
  1. pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
复制代码


由于annaconda也自带的conda工具默认使用的是外网的网址,我们也需要对其进行设置,方便接下来的环境管理与使用,输入:
  1. conda clean -i
  2. sudo gedit ~/.condarc
复制代码


进入condarc文件,将设置信息粘贴写入,生存退出

设置信息:
  1. channels:
  2. - defaults
  3. show_channel_urls: true
  4. default_channels:
  5. - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  6. - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  7. - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
  8. custom_channels:
  9. conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  10. msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  11. bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  12. menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  13. pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  14. pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  15. simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
复制代码

输入conda安装第三方包测试:
  1. Conda install scrapy
复制代码
测试时间比力长,大概3min

然后使用annaconda的conda下令创建虚拟环境,我的环境My_torch
  1.      conda create -n <环境名称自定义> python=<python的版本号>
  2. 例如:conda create -n My_torch python=3.8   输入后回车
复制代码


完成后表现done,如许我们就创建好啦:


接下来
  1. source activate <你的虚拟环境>
复制代码
成功后可以看到你的环境从base变成了My_torch


至此,在Ubuntu上anaconda安装并且设置完成啦,还设置了本身的虚拟环境My_torch,这个环境就是接下来yolov5需要的环境噜,恭喜恭喜,已经完成了(3/9)加油!

****************************************************************************

3.2.Pytorch安装


在虚拟机打开火狐欣赏器里输入pytorch官网用来获取下载指令
【Pytorch官网】https://pytorch.org/

选择conda版本,选择cpu版本,下面得到安装指令
  1. conda install pytorch torchvision torchaudio cpuonly -c pytorch
复制代码


在终端粘贴就可以进行pytorch的下载


输入y(yes)开始下载


看到以下界面就代表下载好啦~~~~撒花


我们测试一下:
  1. 输入    python3
  2. 再输入  import torch
  3. 再输入  torch.__version__
复制代码
出现你的pytorch版本号就代表下载成功噜~~~~


进度(4/9)加油!


****************************************************************************

3.3.Vscode安装


打开火狐欣赏器,输入vscode官网(此步是为了方便后续欣赏代码以及展示效果)
【Vscode官网】https://code.visualstudio.com/Download
选择linux版本的.deb_x64版本,点击下载


等待下载


下载完成后,在文件的下载中找到安装包,点击用软件安装打开


点击安装,输入暗码(假如提示历程被琐,重启办理)


安装完成后,belike:


右上角关闭,左下角点击打开应用列表,顶上输入vscode查找应用


双击打开,可以鼠标右键-添加到收藏夹栏


进入后我们点击拓展,下载拓展中文包


输入chinese找到中文包,点击install下载


下载完成后,右下角更改系统语言并且重启vscode


接下来设置Python拓展,同样在vscode拓展里输入python下载拓展并安装


如许我们就在ubuntu系统下安装了最好用的代码编辑器vscode噜


撒花~~~~~
进度(5/9)

****************************************************************************

3.4.Yolov5源码及环境获取安装


在火狐欣赏器输入gitee(一个国内的代码堆栈),输入yolov5查找相干开源堆栈,找到其中一个就行,当然用我的堆栈也行
这是链接:https://search.gitee.com/?skin=rec&type=repository&q=yolov5


点击进入,点击克隆/下载 – 下载zip(可能需要账号登录)


下载完成后,在文件夹下载中找到yolo-master压缩包,将其解压(提取)


将解压后的文件夹复制到桌面,方便操作


右键打开终端,进入文件夹目次
  1. cd yolo-master
复制代码



留意指令前面一定要是你之前设置pytorch的环境,我的是My_torch
  1. 输入指令进入环境:conda activate <你的环境>
  2. 例如我的:conda activate My_torch
复制代码

使用指令用清华源安装需要的环境:
  1. pip install -U -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
留意 -U 是大写噜


输入指令后开始嘎嘎安装(约莫2分钟)


安装完成后,全部的环境以及包都安装好啦!!!!!!!恭喜
进度(6/9)



三. 【测试Yolov5】

接下来就是最激动人心的时候!测试Yolov5!
打开vscode,点击打开文件夹(也就是我们的工作目次),点击我们之前下载的yolov5-mater文件夹


打开后,信任文件夹


接下来点击我们用来测试yolov5的detect.py文件,点击右下角的环境表明器,在上面选框中找到我们的之前设置的My_torch表明器。


选择表明器后可以发现表明器变成了My-torch,然后点击右上角的三角运行。


然后就可以在vscode终端看到一些列输出


运行成功!!yolov5实现目标检测效果生存在目次runs/detect/exp中,我们找到目次看看效果~~


可以看到yolov5检测效果十分的不错,测试成功!!!!!!!
进度(7/9)



四. 【实现本身输入图片/笔记本摄像头的目标检测】



---------------------------------------------------------------------------------------------------------------------------------

1.输入本身的图片


在文件夹找到yolov5-master文件夹,点击进入,找到data文件夹,继承找到images文件夹,这就是yolov5获取源图片的位置,将我们需要自定义检测的图片放入即可。



这里我用QQ将一张车人图片放在images里面,图片名字是xiantao_Car_person.jpg(留意图片是jpg格式)


(当然也可以在火狐欣赏器上面下载你喜欢的图片放在images里面)

xiantao_Car_person.jpg


再次打开vscode,重复前面一节的【三、测试yolov5】过程,运行步调,看看yolov5这次能不能对我们给定的图片进行目标检测呢。


运行detect.py步调,终端输出成功运行信息,效果生存在runs/detect/exp2目次下,我们找到xiantao_Car_person.jpg


可以看到,yolov5对我们自定义输入的图片目标检测成功!!!!!
进度(8/9)
接下来我们本身插入一个Usb摄像头,进行实时的目标检测~~


---------------------------------------------------------------------------------------------------------------------------------

2.使用笔记本摄像头目标检测


照旧用vscode打开detect.py文件,找到第245行的参数行


  1. 将   default = ROOT / ‘data/images’
  2. 改为 default = ‘0’  【0表示使用笔记本默认摄像头】
复制代码

然后将摄像头毗连到虚拟机上,否则运行detect,py就会报错
虚拟机 – 可移动装备 – 找到笔记本摄像头 – 毗连


之后点击运行detect.py就可以看yolov5跑出来的效果啦
(这里很可能会遇到报错:什么什么no shape读不到摄像头)
打开茄子相机应用看看有没有图像输出,假如没有很大可能是虚拟机的Usb设置不对,先关机,在USB适配器将兼容性改为USB3.1


再次打开虚拟机(记得将摄像头毗连到虚拟机!)打开茄子相机,就可以看到摄像头啦~
点击运行,可以看到出现一个界面,动态的表现摄像头的图像,就是yolov5进行的目标检测噜,成功检测到摄像头的输出并目标检测啦。


点击终端,按下q结束步调,可以在
yolov5-mater/runs/detect/最新的exp文件下看到刚刚运行的视频


至此,在Ubuntu下使用yolov5进行目标检测已经完全成功!完结撒花!!!!!!!!!!!进度(9/9)


更多细节:


【使用外接USB摄像头进行目标检测】

将这里的default = ‘0’改为default = ‘1’或者‘2’等,这个看你的usb摄像头搭载在哪里,输入指令ls -l /dev/video* 查看。


【Ros下搭载yolov5实现目标检测】

作为一名Ros机器人学习者,当然想到能将yolov5搭载在Ros环境中,那对于很多机器人都可以实现目标检测,检测到车辆或者行人照旧其他事物时,在不同的应用场景进行筹划。我比力感兴趣的是在车辆上搭载yolov5,实现自动驾驶场景,目标检测,信息判断,消息通信,话题发布通信,路径规划导航等,在Ros的环境下本身实现车辆的自动避险,自动驾驶等,想必也是帅的嘞。
可能需要一时半会,码一下这篇博主的文章
https://blog.csdn.net/svfsvadfv/article/details/129825613


----------------------------------------------------------------------------------------------------

信赖读到这里的朋友,一定是坚持且良好的

给博主一个免费的赞




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4