当前位置:   article > 正文

深度学习(九)---zed调用yolov5之目标检测遇到的问题及解决_yolov5调用摄像头没有画面

yolov5调用摄像头没有画面
1.前言

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

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

系统:Ubuntu18.04
  • 1
  • 2
  • 3
  • 4
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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

问题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是否得到充分利用? 第二,视觉目标检测算法中会导入一些库,可以提高进程效率的函数一定要提前引入;第三,代码逻辑中是否存在一些影响加载速度的代码程序,优化代码

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号