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是否得到充分利用? 第二,视觉目标检测算法中会导入一些库,可以提高进程效率的函数一定要提前引入;第三,代码逻辑中是否存在一些影响加载速度的代码程序,优化代码文章来源:https://www.toymoban.com/news/detail-663918.html
本文只是自己的一些理解,后续会持续更新,欢迎读者们积极反馈~文章来源地址https://www.toymoban.com/news/detail-663918.html
到了这里,关于深度学习(八)---zed调用yolov5之目标检测遇到的问题及解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!