tensorrtx部署yolov5 6.0

一. yolov5 v6.0训练模型

  1. 官网下载yolov5 v6.0代码
    在这里插入图片描述

  2. 下载官方预训练好的模型
    在这里插入图片描述
    在这里插入图片描述

  3. 安装yolov5所需要的库文件,requirements.txt在下载好的yolov5源代码中有

    pip install -r C:\Users\10001540\Downloads\yolov5-6.0\requirements.txt
    

    在这里插入图片描述

  4. 打开yolov5源代码中的detect.py文件,修改模型的位置
    在这里插入图片描述
    运行后可能出现各种错误,可以去参考网上的教程

二.训练好的yolov5模型转tensorrt引擎

  1. 去tensorrtx官网下载代码
    在这里插入图片描述

  2. 将tensorrtx下的yolov5中的gen_wts.py复制到yolov5源代码文件夹中
    在这里插入图片描述
    在这里插入图片描述

  3. 参考yolov5官方说明,将yolov5模型文件yolov5s.pt转换为yolov5s.wts文件
    在这里插入图片描述

    python gen_wts.py -w weights/yolov5s.pt -o yolov5s.wts
    

    在这里插入图片描述
    在这里插入图片描述

  4. 进入tensorrtx下的yolov5文件夹,修改里面的CMakeList.txt,如下:

    cmake_minimum_required(VERSION 2.6)
    
    project(yolov5) #1
    set(OpenCV_DIR "D:\\Program Files\\opencv\\build")  #2
    set(OpenCV_INCLUDE_DIRS ${OpenCV_DIR}\\include) #3
    set(OpenCV_LIB_DIRS ${OpenCV_DIR}\\x64\\vc15\\lib) #4
    set(OpenCV_Debug_LIBS "opencv_world454d.lib") #5
    set(OpenCV_Release_LIBS "opencv_world454.lib") #6
    set(TRT_DIR "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\TensorRT-8.2.3.0")  #7
    set(TRT_INCLUDE_DIRS ${TRT_DIR}\\include) #8
    set(TRT_LIB_DIRS ${TRT_DIR}\\lib) #9
    set(Dirent_INCLUDE_DIRS "Z:\\code\\dirent-master\\include") #10
    
    add_definitions(-std=c++11)
    add_definitions(-DAPI_EXPORTS)
    
    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 ${PROJECT_SOURCE_DIR}/preprocess.cu ${PROJECT_SOURCE_DIR}/preprocess.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)  
    
    if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
    set(CMAKE_CUDA_ARCHITECTURES 70 75 80 86)
    endif(NOT DEFINED CMAKE_CUDA_ARCHITECTURES)
    
    

    这里需要注意:
    在这里插入图片描述

  5. 在tensorrtx下的yolov5文件夹中,打开cmd,输入以下代码

    mkdir build
    cd build 
    cmake ..
    

    在这里插入图片描述

  6. 进入build文件夹,用vs打开yolov5.sln文件,然后点击生成,生成解决方案
    在这里插入图片描述
    出现以下这说明生成成功:
    在这里插入图片描述

  7. 设置yolov5为启动项
    在这里插入图片描述

  8. 进入yolov5属性页,调试选项设置如下:
    在这里插入图片描述
    在这里插入图片描述

  9. 设置完成运行程序
    在这里插入图片描述
    运行可能需要花费一定的时间,出现以下这说明模型转换成功
    在这里插入图片描述

  10. 测试生成的模型,在属性页面中设置如下:
    在这里插入图片描述
    出现以下内容这说明运行成功:
    在这里插入图片描述
    在这里插入图片描述

要在ROS中部署YOLOv5 6.0,你需要按照以下步骤进行操作: 1. 首先,确保你已经在你的系统上安装了ROS,并且已经设置好了ROS工作空间。 2. 下载YOLOv5 6.0的源代码。你可以从YOLOv5的官方GitHub仓库中获取最新的代码。 3. 将YOLOv5的源代码放入ROS的工作空间的src目录中。 4. 在ROS工作空间的根目录下,运行`catkin_make`命令来编译源代码。 5. 在ROS工作空间中创建一个新的ROS功能包,用于运行YOLOv5的节点。你可以使用`catkin_create_pkg`命令来创建一个新的功能包。 6. 在新创建的功能包中,编写一个ROS节点,用于加载YOLOv5的模型和实时检测目标。你可以使用YOLOv5提供的Python API来实现这个节点。 7. 在ROS节点中,订阅来自ROS系统中相机或图像话题的图像数据。你可以使用ROS的`rospy.Subscriber`类来实现这一步骤。 8. 在节点中调用YOLOv5的API,对输入的图像数据进行实时目标检测。你可以使用YOLOv5提供的Python函数来实现这一步骤。 9. 在节点中,将检测到的目标信息发布为ROS话题,以供其他节点或系统使用。你可以使用ROS的`rospy.Publisher`类来实现这一步骤。 10. 在ROS系统中启动你的YOLOv5节点,并观察实时目标检测的结果。 通过以上步骤,你可以成功地将YOLOv5 6.0部署到ROS中,并在ROS系统中实现实时目标检测的功能。请注意,这只是一个简单的指导,你可能会在实际操作中遇到一些问题,需要根据具体情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AoDeLuo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值