赞
踩
Two-Stage:先产生候选区域,后对目标分类与位置精修,准确率高但速度较慢
One-Stage:直接回归目标类别与位置,速度快但准确率较低
YOLO v5s:模型小、推理时间短、准确率较高
打开设备管理器查看是否拥有NVIDIA独立显卡:
查看NVIDIA独立显卡是否支持CUDA:
https://developer.nvidia.com/cuda-gpus
环境 | 版本 | 地址 |
---|---|---|
Visual Studio | Visual Studio 2019 版本 16.11 Community | 点击下载 |
CMake | cmake-3.24.0-rc2-windows-x86_64 | 点击下载 |
OpenCV | OpenCV – 3.4.16 | 点击下载 |
Anaconda | 64-Bit Graphical Installer (594 MB) | 点击下载 |
CUDA Toolkit | CUDA Toolkit 11.3.1 | 点击下载 |
cuDNN | cuDNN v8.2.1 (June 7th, 2021), for CUDA 11.x | 点击下载 |
TensorRT | TensorRT 8.2 GA Update 4 for x86_64 Architecture | 点击下载 |
安装Visual Studio 2019勾选C++桌面开发工具:
添加系统环境变量:
测试:
换国内源:
新建.condarc文件保存以下代码,并替换C:\Users\XXX下的.condarc文件
channels:
- defaults
show_channel_urls: true
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch-lts: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
选择自定义
全部安装
添加系统环境变量:
上述两项是安装完成Cuda后,已自动生成的环境变量的配置,我们需要自行添加的下述变量:
CUDA_BIN_PATH: %CUDA_PATH%\bin
CUDA_LIB_PATH: %CUDA_PATH%\lib\x64
CUDA_SDK_PATH: XXX\NVIDIA Corporation\CUDA Samples\v11.1
CUDA_SDK_BIN_PATH: %CUDA_SDK_PATH%\bin\win64
CUDA_SDK_LIB_PATH: %CUDA_SDK_PATH%\common\lib\x64
并在系统变量Path中,添加一下四个信息:
%CUDA_BIN_PATH%
%CUDA_LIB_PATH%
%CUDA_SDK_BIN_PATH%
%CUDA_SDK_LIB_PATH%
测试:
nvcc -V
复制XXX\cudnn-11.3-windows-x64-v8.2.1.32\cuda全部内容到XXX\NVIDIA GPU Computing Toolkit\CUDA\v11.3
添加环境变量:
复制XXX\TensorRT-8.2.5.1\lib以下所有dll文件到XXX\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin下
安装XXXTensorRT\TensorRT-8.2.5.1\python目录下tensorrt-8.2.5.1-cp39-none-win_amd64.whl:
activate pytorch
pip install tensorrt-8.2.5.1-cp39-none-win_amd64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
添加环境变量:
添加环境变量:
https://pytorch.org/get-started/locally/
以管理员模式在命令行中运行:
conda create -n pytorch python=3.9
activate pytorch
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
测试:
# cuda test
import torch
print(torch.__version__)
x = torch.Tensor([1.0])
xx = x.cuda()
print(xx)
print(torch.cuda.is_available())
# cudnn test
from torch.backends import cudnn
print(cudnn.is_acceptable(xx))
下载YOLOv5源代码:
进入XXX\yolov5-master目录执行:
activate pytorch
pip install -r requirements.txt
测试:
activate pytorch
python detect.py
运行结果保存在XXX\yolov5-master\runs\detect\exp下
下载YOLOv5 TensorRT加速版本:
https://github.com/wang-xinyu/tensorrtx
在XXX\tensorrtx下创建include文件夹,下载文件dirent.h放置在include文件夹中,
下载地址 https://github.com/tronkko/dirent/tree/master/include/dirent.h
修改XXX\tensorrtx\yolov5目录下CMakeLists.txt内容为(按自己的安装目录修改#1 #2 #3 #4):
cmake_minimum_required(VERSION 2.6) project(yolov5) set(OpenCV_DIR "D:/Environment/OpenCV/opencv/build") ##1 set(OpenCV_INCLUDE_DIRS "D:/Environment/OpenCV/opencv/build/include") ##2 set(OpenCV_LIBS "D:\\Environment\\OpenCV\\opencv\\build\\x64\\vc14\\lib\\opencv_world3416.lib") ##3 set(TRT_DIR "D:/Environment/TensorRT/TensorRT-8.2.5.1") ##4 add_definitions(-DAPI_EXPORTS) 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) include_directories(${TRT_DIR}\\include) include_directories(D:\\Environment\\TensorRT\\tensorrtx\\include) ##5 #find_package(OpenCV) include_directories(${OpenCV_INCLUDE_DIRS}) include_directories(${OpenCV_INCLUDE_DIRS}\\opencv2) #6 # -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 "libraries: ${OpenCV_LIBS}") message(STATUS "include path: ${OpenCV_INCLUDE_DIRS}") include_directories(${OpenCV_INCLUDE_DIRS}) link_directories(${TRT_DIR}\\lib) link_directories(${OpenCV_DIR}\\x64\\vc14\\lib) #8 add_executable(yolov5 ${PROJECT_SOURCE_DIR}/calibrator.cpp yolov5 ${PROJECT_SOURCE_DIR}/yolov5.cpp ${PROJECT_SOURCE_DIR}/yololayer.cu ${PROJECT_SOURCE_DIR}/yololayer.h ${PROJECT_SOURCE_DIR}/preprocess.cu ${PROJECT_SOURCE_DIR}/preprocess.h) target_link_libraries(yolov5 "nvinfer" "nvinfer_plugin") #9 target_link_libraries(yolov5 ${OpenCV_LIBS}) #10 target_link_libraries(yolov5 ${CUDA_LIBRARIES}) #11 target_link_libraries(yolov5 Threads::Threads) #12
在XXX\tensorrtx\yolov5目录下新建build文件夹
运行XXX\CMake\bin\cmake-gui.exe配置:
Where is the source code: XXX\tensorrtx\yolov5
Where to build the binaries: XXX\tensorrtx\yolov5\build
依次执行Configure -> Generate -> Open Project
下载YOLOv5 TensorRT Win10加速版本:
https://github.com/Monday-Leo/Yolov5_Tensorrt_Win10
复制XXX\Yolov5_Tensorrt_Win10-master\yolov5.cpp文件内容,替换XXX\tensorrtx\yolov5\yolov5.cpp内
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。