Jetson Nano-测试YOLOv4系列

将环境准备好后,此处使用到Pytorch 版本的yolov4-tiny,初始yolov4-tiny训练出来的权重文件大小为23M左右。之后在原来模型上进行稍微到调整,训练后到权重文件大小为48M左右,差不多为原2倍左右。

程序移植

首先需要保证torch、torchvision、CUDA等版本的一致。
不同的环境缺少的包也不同,特别是换源问题,在上一篇有提到,换源后会出现安装指定版本失败等结果。建议使用自带源。

  • 问题一:The _imagingft C module is not installed
    这个问题可能是某些依赖包到版本不匹配,如pillow的版本不能太高,若使用更换后到源安装会导致不匹配,自动安装最新的,所以需要使用原始源进行安装,一般pillow<7 即可,最新的会出现兼容性问题。
  • 问题二:程序检测用时过长
    程序加载权重完成后等待输入图像数据时,明显在使用ubuntu桌面的时候会出现卡顿问题,毕竟桌面运行是要占取内存,总共才4GB,而且还是显卡和CPU共用,特别是在输入图像后,一次检测需要差不多两分钟。鼠标开启拉PPT模式,无论是在程序中使用CV2打开图像,还是桌面运行导致的,都是下一步需要优化的方向,以及使用一些程序优化手段。

问题解决

由于水平有限,受限于环境到版本、网络的改进,暂时先把问题搁置在这里。

yolov4

有隔壁描述可以运行yolov4,以此根据此大佬的步骤运行,不需要进行tensorrt自定义网络

步骤

  • 首先git下整个文件夹
  • 根据README中的Example操作即可
    • 可能在这里会遇到以下几个问题

      • Failed to load module “canberra-gtk-module”
        这是由于未安装依赖包,执行以下命令即可

      • no kernel image is available for execution on the device
        这个问题是没有选择指定到GPU,需要在根目录下的CMakeLists.txt中 修改 set(GPU_ARCHS 53) 中的值,NX是62,Nano是53,不同的环境不同,Jetson平台可通过jtop查看
        终端输入jtop,按6INFO查看
        在这里插入图片描述

其他可根据以上github地址中操作

编译问题

注意:yolov4源码在不同的平台编译后,复制到另外一个平台不同直接用,需要直接编译,这是由于make时,是根据主机的环境进行编译,以下错误均是因为此原因。环境不同时,需要进行再次make编译

问题一:/usr/include/cuda_runtime.h:91:27: fatal error: builtin_types.h:
这是由于CUDA环境的不一致

问题二:error while loading shared libraries: libopencv_highgui.so.3.2;这是由于opencv版本不一致

模型转换

  • darknet ->ONNX
python3 tools/yolo_to_onnx.py --cfg model/yolov4.cfg --weights model/yolov4.weights --out model/yolov4.onnx
  • ONNX-> engine
./buildEngine -i model/yolov4.onnx -o model/yolov4.engine -b 1 -m 0
需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》,课程链接 https://edu.csdn.net/course/detail/29865【为什么要学习这门课】 Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. 冗谈不够,放码过来!  代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。【课程内容与收获】 本课程将解析YOLOv4的实现原理和源码,具体内容包括:- YOLOv4目标检测原理- 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算- 代码阅读工具及方法- 深度学习计算的利器:BLAS和GEMM- GPU的CUDA编程方法及在darknet的应用- YOLOv4的程序流程- YOLOv4各层及关键技术的源码解析本课程将提供注释后的darknet的源码程序文件。【相关课程】 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括:《YOLOv4目标检测实战:训练自己的数据集》《YOLOv4-tiny目标检测实战:训练自己的数据集》《YOLOv4目标检测实战:人脸口罩佩戴检测》《YOLOv4目标检测实战:中国交通标志识别》建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。【YOLOv4网络模型架构图】 下图由白勇老师绘制  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值