赞
踩
zed调用yolov5进行目标检测时遇到的问题,记录下~~
开发板:Jetson Xviewer NX
摄像头: zed2
系统:Ubuntu18.04
问题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是否得到充分利用? 第二,视觉目标检测算法中会导入一些库,可以提高进程效率的函数一定要提前引入;第三,代码逻辑中是否存在一些影响加载速度的代码程序,优化代码
本文只是自己的一些理解,后续会持续更新,欢迎读者们积极反馈~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。