踩坑记录2——RK3588跑通YOLO v5+DeepSORT

这篇具有很好参考价值的文章主要介绍了踩坑记录2——RK3588跑通YOLO v5+DeepSORT。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


上篇说到RK3588编译OpenCV, 这篇记录一下跑通YOLO v5+DeepSORT的愉(chi)快(shi)历程.


1. 保证编译OpenCV时关联了ffmpeg

如果本身缺少ffmpeg而编译了没有ffmpeg版本的OpenCV, 则视频无法读取.

解决方案参照CSDN, 首先安装ffmpeg:

sudo apt install -y ffmpeg

之后安装一堆dev:

libavcodec-dev 、libavformat-dev、libavutil-dev 、libavfilter-dev、 libavresample-dev、 libswresample-dev、 libswscale-dev

这个时候再去编译OpenCV, 可以看到ffmpeg的选项可以检测出版本了. (我没有做原博客将头文件加入/usr/include, 也是可以的).

yolov5_deepsort_rknn,其他,RK3588,opencv,人工智能,目标跟踪,目标检测,嵌入式硬件

2. 下载代码

采用的代码是Zhou-sx大神的https://github.com/Zhou-sx/yolov5_Deepsort_rknn, 代码到手后, 要跑通自己的视频, 做如下改动:

2.1 更改CMakeLists.txt中OpenCV的位置

./CMakeLists.txt./deepsort/CMakeLists.txt中, 更改

set(OpenCV_DIR /home/wjp/opencv-4.6.0/install/lib/cmake/opencv4)  # 填入OpenCVConfig.cmake

后面的路径是OpenCV的OpenCVCondif.cmake的路径

2.2 更改图像大小和目标类别个数

./include/common.h中修改IMG_WIDTH, IMG_HEIGHT, IMG_PAD, OBJ_CLASS_NUM, 例如:

#define BYTE unsigned char
#define IMG_WIDTH 1024
#define IMG_HEIGHT 540
#define IMG_CHANNEL 3
#define IMG_PAD 640
#define OBJ_CLASS_NUM     1

./yolov5/src/decode.cpp中修改LABEL_NALE_TXT_PATH, 该txt储存的是视频中类别名称, 必须与 OBJ_CLASS_NUM对应:

#define LABEL_NALE_TXT_PATH "../model/hongwai_2_labels_list.txt"

例如只有一类car, 则txt的内容就是

car

2.3 更改主文件中的路径

./yolov5_deepsort.cpp中, 更改模型, 读取视频与写入视频的路径. 模型必须是对应的rknn格式, 如何产生的以后补充.

string PROJECT_DIR = "/home/codes/yolov5_Deepsort_12_28";


string YOLO_MODEL_PATH = PROJECT_DIR + "/model/best.rknn";
string SORT_MODEL_PATH = PROJECT_DIR + "/model/osnet_x0_25_market.rknn";

string VIDEO_PATH = PROJECT_DIR + "/data/M1401.mp4";
string VIDEO_SAVEPATH = PROJECT_DIR + "/data/M1401_results.mp4";

2.4 编译运行

cd build
cmake ..
make
./yolov5_deepsort

3. 优化

原来的代码有输出跟踪框漂移和没有处理检测框异常的功能, 我fork并完善了一下, 改善了这些问题, 减少了报错的可能. 并增加了如下功能, 欢迎star:

本仓库在原仓库的基础上:

  1. 改善了边界框漂移, 完善了当图中没有目标等其他情形出现的bug, 增加了对cost matrix出现nan时的处理
  2. 加入了隔帧检测的功能. 设置方法:

./yolov5/include/detect.h中 将
const int det_interval = 1;改成期望的数值, 例如3, 表示每隔3帧检测一次, 这样可以显著提升速度.
同时, 也需要更改./deepsort/include/deepsort.hline 39const int track_interval = 1; , 数值要和检测的保持一致.

  1. 加入Re-ID多线程的功能

如果您不希望使用多线程, 则在./deepsort/src/deepsort.cppline 144if (numOfDetections < 2)
改成if (true)

自己使用时, 除了更改OpenCV的路径外, 要在./include/common.h中修改IMG_WIDTH, IMG_HEIGHT, IMG_PAD, OBJ_CLASS_NUM
./yolov5/src/decode.cpp中修改LABEL_NALE_TXT_PATH.文章来源地址https://www.toymoban.com/news/detail-815510.html

https://github.com/JackWoo0831/yolov5_Deepsort_rknn

到了这里,关于踩坑记录2——RK3588跑通YOLO v5+DeepSORT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python Apex YOLO V5 6.2 目标检测 全过程记录

    Python Apex YOLO V5 6.2 目标检测 全过程记录

    博文目录 效果展示 Python YOLO V5 实时截屏与目标检测 GitHub Windows Python PyCharm 开发环境搭建 Windows Python PyTorch CUDA 11.7 TensorRT 环境配置 先根据上述两篇文章将开发环境和虚拟环境都创建好, 然后下载 YOLO V5 6.2 或 YOLO V5 7.0 (最新) 的源码, 用 PyCharm 打开, 选择刚刚创建的虚拟环境 W

    2024年02月03日
    浏览(42)
  • 在RK3588上使用Gstreamer做推拉流并推理记录

    角色 版本 rknn-toolkit2 1.2.0 python 3.7.3 视频流拉取: 视频流推流或显示: 推理结构: 2.1 Gstreamer安装 测试,在终端输入以下正常运行则安装成功 2.2 opencv安装 不能使用python3-opencv,通过pip安装的opencv无法支持gstreamer,必须使用源码编译安装 确保opencv开启对gstreamer与python支持的

    2024年02月11日
    浏览(13)
  • RK3588 PWM调试记录---linux pwm子系统驱动框架

    RK3588 PWM调试记录---linux pwm子系统驱动框架

    RK3588一共有4组PWM,每组有4个通道,共可以产生4*4=16路PWM波形; PWM0 开始地址:0xfd8b0000 PWM1 开始地址:0xfebd0000 PWM2 开始地址:0xfebe0000 PWM3 开始地址:0xfebf0000 即每组PWM的地址空间是(0xfd8b0000-0xfebd0000=0x1000)64KB(0x1000/1024) RK3588的PWM支持捕获、连续和单次触发三种模式。 1.捕获模式

    2024年02月12日
    浏览(12)
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -02

    整体方案参考上一篇博文 https://blog.csdn.net/qq_31764341/article/details/134810566 本篇博文主要介绍基于RK3588进行硬解码 还是之前的套路,我不生产代码,我只是代码的搬运工,今天我们搬运瑞芯微的官方代码,并记录下来整个调试历程。两篇文章下来,我们3588上面的流肯定能出来

    2024年03月24日
    浏览(11)
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -01

    一套rk3588 rtsp服务器推流的 github 方案及记录 -01

    我不生产代码,我只是代码的搬运工,相信我,看完这个文章你的图片一定能变成流媒体推出去。 诉求:使用opencv拉流,转成bgr数据,需要把处理后的数据(BGR)编码成264,然后推流推出去,相当于直播(实时编码) 超低延迟的RTSP播放器 https://github.com/tsingsee/EasyPlayer-RTSP-

    2024年02月04日
    浏览(10)
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -03(完结)

    一套rk3588 rtsp服务器推流的 github 方案及记录 -03(完结)

    解码库使用的时候发现瑞芯微以前做过解码库对ffmpeg和gstreamer的支持 然后最近实在不想再调试Rtsp浪费时间了,就从这中间找了一个比较快的方案 编译流程参考文献 https://blog.csdn.net/T__zxt/article/details/123424359 编译的ffmpeg是这个版本 https://github.com/jjm2473 安装了下面这些东西:

    2024年02月01日
    浏览(8)
  • ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    ubuntu18.04安装Realsense D435i相机SDK及realsense-ros记录,为后期运行yolo v5作准备

    写在前面 :一定要注意各个版本之间的匹配问题,否则会报各种错误。 例如ROS版本和librealsense SDK版本之间的对应关系,以及realsense-ros(Wrapper)与librealsense SDK之间的对应关系 。 系统:ubuntu18.04 ros: melodic 附上Intel® RealSense github网站: https://github.com/IntelRealSense 以及安装教程

    2024年02月05日
    浏览(12)
  • 【论文阅读】YOLO系列论文:YOLO v5

    【论文阅读】YOLO系列论文:YOLO v5

    代码: https://github.com/ultralytics/yolov5github.com 优点 拥有四种模型,可以灵活部署 缺点 在性能上稍弱于YOLO V4 模型的改进 增加了Focus切片、自适应锚框、自适应图片缩放结构,保留信息,加快推理速度 有4个版本,分别是Yolov5s,Yolov5m,Yolov5l,yolov5x四个模型,其中Yolov5s网络是该

    2024年02月16日
    浏览(31)
  • 迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    迅为RK3588开发板-基于瑞芯微RK3588摄像头方案

    硬件: RK3588开发板+摄像头   MIPI摄像头:   1.1 硬件连接 RK3588 底板上有四个摄像头接口,如下图所示,此四个接口均可连接摄像头 ov5695 和 摄像头 ov13850。   摄像头模块连接硬件时要将模块对准插槽缺口处,J1 接口连接摄像头模块如下图所示:   J2 接口连接摄像头模块

    2024年02月09日
    浏览(60)
  • YOLO v5 代码精读(3)YOLO网络结构

    YOLO v5 代码精读(3)YOLO网络结构

    YOLO模型共有五种模型规格,规格越大的模型准确率越高,相应的预测时间也就越长。一般默认选择YOLOv5s,也可根据需求选择更大或更小的模型。 这里以YOLO v5s为例,分析YOLO的网络结构。 配置变量 nc:表示检测的类别数量,这里默认取自coco数据集的80个类别 depth_multiple:控制

    2023年04月15日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包