IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> win10 使用TensorRT部署 yolov5-v4.0(C++) -> 正文阅读

[人工智能]win10 使用TensorRT部署 yolov5-v4.0(C++)

一、环境及文件准备

  1. 安装 CUDA+cudnn+TensorRT 【查看上一篇文章】
  2. 默认安装Anaconda并安装了pytorch开发环境
  3. 默认安装了 vs2019 + opencv + cmake
  4. 下载yolov5源码:https://github.com/ultralytics/yolov5/tags
    下载yolov5权重:https://github.com/ultralytics/yolov5/releases
    下载dirent.h:https://github.com/tronkko/dirent/blob/master/include/dirent.h 或者 点击下载
    下载tensorrtx:https://github.com/wang-xinyu/tensorrtx/tags (与自己训练的yolov5-xx版本一致)

二、编译

  1. yolov5s.wts生成:将tensorrtx源码中的gen_wts.py复制到yolov5源码中并运行,生成.wts模型。
  2. 将dirent.h放置在工程目录中(随意放置)
  3. 修改CMakeLists.txt #1-10即可,参数详情查看
    cmake_minimum_required(VERSION 2.8)
    
    #=========================================================
    project(yolov5)                                 #1 工程名
    set(OpenCV_DIR "E:\\opencv3\\opencv\\build")    #2 opencv目录
    set(OpenCV_INCLUDE_DIRS ${OpenCV_DIR}\\include) #3 
    set(OpenCV_LIB_DIRS ${OpenCV_DIR}\\x64\\vc15\\lib) #4
    set(OpenCV_Debug_LIBS "opencv_world3412d.lib")     #5
    set(OpenCV_Release_LIBS "opencv_world3412.lib")    #6
    set(TRT_DIR "E:\\Downloads\\TensorRT-7.2.1.6.Windows10.x86_64.cuda-11.0.cudnn8.0\\TensorRT-7.2.1.6")  #7
    set(TRT_INCLUDE_DIRS ${TRT_DIR}\\include) #8
    set(TRT_LIB_DIRS ${TRT_DIR}\\lib)         #9
    set(Dirent_INCLUDE_DIRS "F:\\yolov5trt")  #10
    #=========================================================
    
    add_definitions(-std=c++11)
    
    option(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
    set(CMAKE_CXX_STANDARD 11)
    set(CMAKE_BUILD_TYPE Debug)
    
    set(THREADS_PREFER_PTHREAD_FLAG ON)
    find_package(Threads)
    
    # setup CUDA
    find_package(CUDA REQUIRED)
    message(STATUS "    libraries: ${CUDA_LIBRARIES}")
    message(STATUS "    include path: ${CUDA_INCLUDE_DIRS}")
    
    include_directories(${CUDA_INCLUDE_DIRS})
    
    ####
    enable_language(CUDA)  # add this line, then no need to setup cuda path in vs
    ####
    include_directories(${PROJECT_SOURCE_DIR}/include) #11
    include_directories(${TRT_INCLUDE_DIRS}) #12
    link_directories(${TRT_LIB_DIRS}) #13
    include_directories(${OpenCV_INCLUDE_DIRS}) #14
    link_directories(${OpenCV_LIB_DIRS}) #15
    include_directories(${Dirent_INCLUDE_DIRS}) #16
    
    
    # -D_MWAITXINTRIN_H_INCLUDED for solving error: identifier "__builtin_ia32_mwaitx" is undefined
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Ofast -D_MWAITXINTRIN_H_INCLUDED")
    
    # setup opencv
    find_package(OpenCV QUIET
        NO_MODULE
        NO_DEFAULT_PATH
        NO_CMAKE_PATH
        NO_CMAKE_ENVIRONMENT_PATH
        NO_SYSTEM_ENVIRONMENT_PATH
        NO_CMAKE_PACKAGE_REGISTRY
        NO_CMAKE_BUILDS_PATH
        NO_CMAKE_SYSTEM_PATH
        NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
    )
    
    message(STATUS "OpenCV library status:")
    message(STATUS "    version: ${OpenCV_VERSION}")
    message(STATUS "    lib path: ${OpenCV_LIB_DIRS}")
    message(STATUS "    Debug libraries: ${OpenCV_Debug_LIBS}")
    message(STATUS "    Release libraries: ${OpenCV_Release_LIBS}")
    message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")
    
    add_executable(yolov5 ${PROJECT_SOURCE_DIR}/yolov5.cpp ${PROJECT_SOURCE_DIR}/common.hpp ${PROJECT_SOURCE_DIR}/yololayer.cu ${PROJECT_SOURCE_DIR}/yololayer.h)   #17
    target_link_libraries(yolov5 "nvinfer" "nvinfer_plugin") #18
    target_link_libraries(yolov5 debug ${OpenCV_Debug_LIBS}) #19
    target_link_libraries(yolov5 optimized ${OpenCV_Release_LIBS}) #20
    target_link_libraries(yolov5 ${CUDA_LIBRARIES}) #21
    target_link_libraries(yolov5 Threads::Threads)  
    
  4. 点击Configure,generate,Open Project
    在这里插入图片描述
  5. 依次编译Debug-x64, Release-x64
    在这里插入图片描述

三、测试

打开终端依次执行:(将权重文件复制到生成的目录下执行)
yolov5.exe -s yolov5s.wts yolov5.engine s
yolov5.exe -d ../../model/yolov5s.engine ../../test_tmp
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 13:53:53  更:2022-01-01 13:55:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:09:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码