# yolov5-qt5.13.2-opencv3415-cpu.gpu **Repository Path**: shijingying/yolov5-qt5.13.2-opencv3415-cpu.gpu ## Basic Information - **Project Name**: yolov5-qt5.13.2-opencv3415-cpu.gpu - **Description**: yolov5+cuda10.2+qt5.13.2+opencv3415 cpu版本以及gpu版本 新增目标追踪的实现 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 7 - **Created**: 2021-11-19 - **Last Updated**: 2025-06-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: yolo5, Cpp, CPU, Qt, GPU ## README # YoloV5_UI_V1_10_0_CPU - 2024.9.17 最新YoloV8 + TensorRT-10.4 + cuda12.6 + VS 2022 + cuDNN v8.9.7 + opencv 4.8.1 + Eigen 3.4.0 (目标识别+追踪) - [代码地址](https://gitee.com/shijingying/lht-qt-plugins/tree/master/LhtYolo) #2022-11-4 libtorch11.6+opencv4.5.5+cudnn8.5.0 安装教程 安装包 cuda11.6: 1. CUDA Toolkit https://developer.nvidia.com/cuda-toolkit-archive 2. LibTorch https://pytorch.org/ 3. cudnn https://developer.nvidia.com/rdp/cudnn-archive 4. Cmake 百度 5. Opencv 4.5.5 https://github.com/opencv/opencv/releases 安装顺序: 1. CMake 2. 安装Opencv 3. 安装cuda toolkit 问题:1. .opencvConfig下 set(OpenCV_FOUND TRUE) 2. CUDA support not available with 32-bit windows. ADD -DCMAKE_GENERATOR_PLATFORM=x64 4. cudnn解压拷贝到toolkit目录下 编译问题: 1. 中文注释全部删除 2. C++-》语言-》符合模式 改为否! C++命令行中 添加 /INCLUDE:"?searchsorted_cuda@native@at@@YA?AVTensor@2@AEBV32@0_N1@Z" 链接器命令行中添加 /INCLUDE:"?ignore_this_library_placeholder@@YAHXZ" C++中前20次推理时间过长解决方法 问题说明: 在C++中加载完TorchScript模型之后,前20次左右的推理时间普遍很长,最长能达到十几秒。初步分析大概率是由于在不断读取数据推理时GPU显存不断加大分配,导致推理时间过长。最理想的解决方案是在加载模型之后就将显存分配够,那后续的推理时间就会非常短。下面记录一个比较有效的方法: Python中,在模型加载前使用torch._C._jit_set_profiling_mode(False),代码: torch._C._jit_set_profiling_mode(False) # 效果更好,原因未知 model = torch.jit.load("models.densetnt.1/model_save/model.16_script.bin") 也可以使用torch._C._jit_set_profiling_executor(False),但torch._C._jit_set_profiling_mode(False)效果更好,具体原因还没搞清楚。 C++中,在模型加载前使用torch::jit::getExecutorMode() = false,代码: torch::jit::getExecutorMode() = false; model = torch::jit::load(FLAGS_dense_tnt_torch_script_file, device_); model.eval(); 此后前20次推理时间恢复正常: #### 介绍 YoloV5+VS2019+QT5.13.2+opencv3.4.15 ,2022/4/22 新增cuda编程学习 #### 使用说明 25 ------------------------------------------------2022.9.20----------------------------------------------------- 26 yoloV5的非极大值抑制以及画图等函数库的链接:https://github.com/ncdhz/YoloV5-LibTorch 22 ------------------------------------------------2022.8.17------------------------------------------------------ 23 在工作里发现ipps的fft性能存在瓶颈,故使用cuda做了一个FFT 测试代码数据量越大性能越强 24 cuda耗时主要在主机内存与设备内存间的拷贝,测试3000W点数据做FFT时间在个位数微妙级 19 ------------------------------------------------2022.1.20------------------------------------------------------ 20 增加boost C++ 并发框架ServiceFramework,增加功能设置文档 21 添加服务监听,客户端连接管理,数据包接收   后续完善包解析功能 15 ------------------------------------------------2022.1.11------------------------------------------------------ 16 增加了目标追踪deepsort代码和库文件(原文地址https://github.com/GesilaA/deepsort_tensorrt) 17 集成到项目中如果使用到rtsp流时,需要线程分离(流读取与检测),否则会导致opencv ffmpeg崩溃 18 增加视频流和检测线程分离的示例代码(使用条件变流防止无效的线程损耗),防止视频流卡帧 11 ------------------------------------------------2022.1.8------------------------------------------------------ 12 gpu版本已上传,1050显卡测试检测时间20ms左右、动态库路径跟上面类似、链接地址:链接:https://pan.baidu.com/s/1xWeVjjLy81aJGDq2oEDYiQ 提取码:ndd1 13 电脑需安装cuda10.2 官网直接下载https://developer.nvidia.com/cuda-toolkit-archive、cuda安装时需要自定义安装,精简安装无效,命令行窗口 nvcc --version显示 cuda10.2即可 14 gpu版本只放了release版本的lib debug版本的太大了不放了 1有些路径写了绝对路径需要自己手动修改一下 2编译务必使用msvc否则无法使用 3其中YoloEngine.pri 可以直接集成到自己的项目中,运行时需要将bin下的对应目录下的所有dll放到运行路径 coco.txt 和yolov5s.cpu.pt 是测试使用的模型和分类器文件 4项目中的mainwindows为测试项目,配置好路径加载模型选择需要检测的文件即可运行 5YoloEngine输入的方式为两种 一种为路径、一种为opencv MAT图像矩阵 6构建实例时可以定义是否画出检测出的矩形框 7此版本为CPU版本无法使用GPU 8动态库文件过大 已经压缩放到链接:https://pan.baidu.com/s/1YkKSpGc0tc5DzqRvNa1Rzg 提取码:ndd1 使用时需要手动解压里面的dll放到YoloEngine/bin/下 9cpu版本检测速度不是很快大致在100-500ms之间但是占用内存不大只有100M左右 使用gpu版本可大量缩短此时间10-20ms之间但是会占用极大的内存(2GB左右) 10 qt中可以减少调用py的时间 22 增加接收数据打印 #### 参与贡献 1. 牛顶顶