踩坑记录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 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日
    浏览(55)
  • 在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日
    浏览(45)
  • 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日
    浏览(59)
  • 一套rk3588 rtsp服务器推流的 github 方案及记录 -02

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

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

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

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

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

    2024年02月01日
    浏览(75)
  • 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日
    浏览(54)
  • 【论文阅读】YOLO系列论文:YOLO v5

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

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

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

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

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

    2023年04月15日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包