野火鲁班猫教程关于yolo3在RK3588上的部署(开发日志)

野火鲁班猫教程关于yolo3在RK3588上的部署(开发日志)

本文参考链接:

YOLOv3

准备一:conda的安装

参考链接:conda安装

版本选择最新即可,另外安装上需要注意的两点是:

bash Miniconda3-py39_4.10.3-Linux-x86_64.sh

source ~/.bashrc

否则将无法正常安装。

部署流程

安装相关环境,使用conda创建虚拟环境,可以参考下前面环境搭建章节:

使用conda创建一个名为yolov3的环境,并指定python版本

conda create -n yolov3 python=3.8

进入环境

conda activate yolov3

获取ultralytics yolov3源码,安装相关环境:

获取程序

git clone https://github.com/ultralytics/yolov3 -b archive

切换到yolov3目录

cd yolov3

注意:pip换源

pip3 config set global.index-url https://mirror.baidu.com/pypi/simple

安装相关软件库,

pip install -r requirements.txt

默认会安装pytorch,支持gpu等,可以自行到Pytorch官网https://pytorch.org/get-started/previous-versions/查看命令安装,下面命令示例是安装cuda11.6的版本:

pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116

pytorch和nmupy建议按requirements.txt中的要求安装,如果安装高版本可能有很多小问题(可以从网上搜索到答案)。

目标检测测试

野火教程如下:

# 获取darknet权重文件,yolov3-tiny是轻量级的yolov3,,yolov3-spp是添加了spp网络的权重文件
wget -c https://pjreddie.com/media/files/yolov3.weights
wget -c https://pjreddie.com/media/files/yolov3-tiny.weights
wget -c https://pjreddie.com/media/files/yolov3-spp.weights

# 或者获取pytorch 权重文件

# darknet53 weights (first 75 layers only)
# wget -c https://pjreddie.com/media/files/darknet53.conv.74

# 或者通过工程的download_yolov3_weights.sh获取权重

执行目标检测程序,–weights指定权重文件,这里测试yolov3.weights;–cfg指定配置文件,不指定时默认是cfg/yolov3-spp.cfg, 这里测试是cfg/yolov3.cfg;–source指定需要检测的图片路径,或者指定图片文件夹路径。

测试单张图片推理

python3 detect.py  --source data/samples/bus.jpg --weights weights/yolov3.weights --cfg cfg/yolov3.cfg

多张图片推理,推理工程目录data/samples下的所有图片

python3 detect.py  --source data/samples --weights weights/yolov3.weights --cfg cfg/yolov3.cfg

但是实际测试发现报错,仔细阅读报错原因可知权重文件没有找到,我们发现我们找的权重文件是放在weights文件夹中的,仔细看之前的步骤,发现实际上是因为我们下载权重文件的时候是在yolo3文件夹中,我们可以cd weights再下载一遍权重文件,或者把我们需要用到的权重文件yolov3.weights 直接copy到weights文件夹中也可以。

再次运行之后发现问题解决,成功输出图片在output文件夹中。

稍后再搞搞yolo3的训练

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【资源介绍】 基于RK3588上部署yolov5s模型源码(实时摄像头检测)+部署说明文档.zip 该项目是个人毕设项目,答辩评审分达到95分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 yolov5模型(.pt)在RK3588(S)上的部署(实时摄像头检测) - 所需: - 安装了Ubuntu20系统的RK3588 - 安装了Ubuntu18的电脑或者虚拟机 <details> <summary>一、yolov5 PT模型获取</summary> [Anaconda教程](https://blog.csdn.net/qq_25033587/article/details/89377259)\ [YOLOv5教程](https://zhuanlan.zhihu.com/p/501798155)\ 经过上面两个教程之后,你应该获取了自己的`best.pt`文件 </details> <details> <summary>二、PT模型转onnx模型</summary> - 将`models/yolo.py`文件中的`class`类下的`forward`函数由: ```python def forward(self, x): z = [] # inference output for i in range(self.nl): x[i] = self.m[i](x[i]) # conv bs, _, ny, nx = x[i].shape # x(bs,255,20,20) to x(bs,3,20,20,85) x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous() if not self.training: # inference if self.dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]: self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i) if isinstance(self, Segment): # (boxes + masks) xy, wh, conf, mask = x[i].split((2, 2, self.nc + 1, self.no - self.nc - 5), 4) xy = (xy.sigmoid() * 2 + self.grid[i]) * self.stride[i] # xy wh = (wh.sigmoid() * 2) ** 2 * self.anchor_grid[i] # wh y = torch.cat((xy, wh, conf.sigmoid(), mask), 4) else: # Detect (boxes only) xy, wh, conf = x[i].sigmoid().split((2, 2, self.nc + 1), 4) xy = (xy * 2 + self.grid[i]) * self.stride[i] # xy wh = (wh * 2) ** 2 * self.anchor_grid[i] # wh y = torch.cat((xy, wh, conf), 4) z.append(y.view(bs, self.na * nx * ny, self.no)) return x if self.training else (torch.cat(z, 1),) if self.export else (torch.cat(z, 1), x) ``` 改为: ```python def forward(self, x): z = [] # inference

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值