YOLOv5转onnx格式文件,并将其用netron可视化

YOLOv5转onnx格式文件,并将其用netron可视化

git clone YOLOv5

首先,我们需要进入github官网,找到yolov5的源代码,这里附上链接YOLOv5 点击链接后即可进入Glenn大神写的YOLO系列代码库中(用内网的话有点慢,有可能需要多刷新几次才能出来,耐心等待一下),顺利的话我们可以看到:
在这里插入图片描述

本篇博客讲的是YOLOv5的网络结构可视化,因此我们可以在左上角选择版本,这里链接进入的默认是选择的v5.0。如果你想玩一玩其他的版本,也可以点击Glenn大神头像上方的v5.0来进行一个版本的选择。点击之后会看到下图,选择Tags就可以查看各种版本了。这里我们以5.0版本为例。
在这里插入图片描述
然后我们点击右边的绿色框框code:
在这里插入图片描述
复制下面跳出来的https的链接,然后在我们想放置这个项目的本机路径下,右键选择git bash here(这里需要大家下载一个git工具,可以直接在浏览器中搜索git,进入官网后即可下载)。点击之后进入git的终端中:
在这里插入图片描述
在命令行中输入:

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

然后就可以在本地白嫖到这个YOLOv5的项目。
由于我是习惯用pycharm来开发,此时打开用pycharm以项目的方式打开YOLOv5,点击下方的Terminal栏目,进入项目的终端命令行中:
在这里插入图片描述
输入:

pip install -r requirements.txt

可以下载该项目所依赖的各种包,当然这里其实并不齐全,还有一些包在运行的时候会报错,这个时候我们就手动的pip install一下就可以了,不会消耗很多的时间。
到这里我们就完成了第一步,将YOLOv5项目部署在我们的电脑上了。

转换成onnx文件格式。

进入这一步后,首先我们要知道的是,对于netron工具来说,要想可视化我们的网络架构,需要获得一个onnx格式的文件,而这个文件可以通过我们的pt文件转换而来,也就是我们的权重文件。这里我们可以先进入项目中的model文件下的export.py文件中,运行之后我们会得到一个yolov5s.pt这样一个预训练的权重文件(当然这只是举个例子,对于我们自己训练得到的权重文件也是一样的操作)。这里我们在下载好这个预训练权重文件后,一般来说代码会报错,这里我们先不管它,得到这个pt文件即可。随后我们在我们的pycharm终端中,或者git工具中,我这里打开的是git工具,进行onnx格式的转换。
在这里插入图片描述
打开git工具后,我们可以先查看一下当前文件夹的目录中是否包含了我们的YOLOv5项目:

在这里插入图片描述
可以清楚的看到,我这里是包含了项目文件了,然后我们cd到项目中:
在这里插入图片描述
到这里,我们就已经在项目的目录下了,此时我们在git工具的命令行中输入:

python models/export.py --weights yolov5s.pt --img 640 --batch 1

然后回车运行:
在这里插入图片描述
可以看到,在倒数第三行日志信息中,出现了onnx export success, saved as yolov5s.onnx。此时我们可以打开我们的本地文件夹,可以发现,onnx文件已经顺利得到啦。
在这里插入图片描述

使用netron工具来可视化

然后就进入我们的最后一步,可视化。在浏览器上直接搜索(或者也可以进入github中,下载netron工具,具体的下载方式网上有讲解,这里我就不具体展开了),我这里用浏览器在线转换的方式呈现:
打开必应浏览器,输入netron,首页就出现了netron的官网:
在这里插入图片描述
点击进入之后,会看到这个页面:
在这里插入图片描述
如果我们想下载,可以点击右边的github直接进入它的源代码库中,进行下载。或者我们可以在线转换,点击左边的open model:
在这里插入图片描述
选中我们的onnx格式的文件,然后打开。经过netron的一阵旋转之后,就得到了我们的网络结构可视化的图啦:
在这里插入图片描述
到这里,使用netron来可视化网络结构的教程就结束啦。netron是一个非常强大的算法开发工具,对于我们了解一个算法的网络结构以及后期的改进和开发有着巨大的帮助,能够更直观的让我们享受炼丹的过程,哈哈哈。

猜你喜欢

转载自blog.csdn.net/ycx_ccc/article/details/127798201
今日推荐