深度学习(九)---zed调用yolov5之目标检测遇到的问题及解决

1.前言

zed调用yolov5进行目标检测时遇到的问题,记录下~~

2.环境信息
开发板:Jetson Xviewer NX
摄像头: zed2

系统:Ubuntu18.04
3.问题及解决

问题1:

RuntimeError: cuDNN error: CUDNN_STATUS_MAPPING_ERROR

原因: cuda 没有正确调用,导致运行报错
解决: 重新正确引用cuda,可以参考 【深度学习(八)—zed调用yolov5模型进行实时图像推理】

import torch

# 检查CUDA是否可用,并设置默认设备为CUDA
if torch.cuda.is_available():
    device = torch.device("cuda")
else:
    device = torch.device("cpu")

# 将模型移动到CUDA设备
model = YourModel().to(device)

# 将输入数据移动到CUDA设备
input_data = input_data.to(device)

# 在CUDA设备上执行模型推理
with torch.no_grad():
    output = model(input_data)

小记:这里还用到了残差网络模块,但作者对此不是很熟悉,暂不讲解

问题2:

AttributeError: Can’t get attribute ‘C3’ on <module ‘models.common’ from ‘/home/bdlf/yolov5-Project/models/common.py’>

原因: 训练的权重pt文件和预测的新环境的YOLOv5的版本不相同,导致无法使用
解决: 直接找到你训练模型的YOLOV5代码,把models文件夹和utils文件夹替换掉即可

问题3:

在cv2.rectangle(im0, c1, c2, color, thickness=2, lineType=cv2.LINE_AA),处报错: TypeError: Argument given by name (‘thickness’) and position (4)

原因: rectangle函数被处理的图片im0格式不正确,最好是原始图像
解决: 更改为原始图像进行处理,或者引用im.copy()

问题4:

RuntimeError: The size of tensor a (80) must match the size of tensor b (56) at non-singleton dimension 3

原因: .pt文件版本不对, yolov5 自带的.pt文件 版本不适合
解决: 下载新的.pt文件 https://github.com/ultralytics/yolov5/releases

问题5:

t = threading.Thread(target=app.run, args=(host,port,debug))
ValueError: signal only works in main thread

原因: 线程debug不能为True
解决: debug =False

问题6:

在用flask框架封装目标检测算法时,出现视频卡顿情况

解决: 这个问题可能是多方面原因,可以从以下一一排除:第一,cuda是否引用正确,cuda是否得到充分利用? 第二,视觉目标检测算法中会导入一些库,可以提高进程效率的函数一定要提前引入;第三,代码逻辑中是否存在一些影响加载速度的代码程序,优化代码

本文只是自己的一些理解,后续会持续更新,欢迎读者们积极反馈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值