TensorRT-Alpha

February 12, 2024 · View on GitHub

Cuda

English | 简体中文


Visualization



Introduce

This repository provides accelerated deployment cases of deep learning CV popular models, and cuda c supports dynamic-batch image process, infer, decode, NMS.
There are two ways to compile model(pth or onnx):

pth -> trt coming soon.
pth -> onnx -> trt:
  • [i]. According to the network disk provided by TensorRT-Alpha, download ONNX directly. weiyun or google driver
  • [ii]. Follow the instructions provided by TensorRT-Alpha to manually export ONNX from the relevant python source code framework.

Update

  • 2023.01.01 🔥 update yolov3, yolov4, yolov5, yolov6
  • 2023.01.04 🍅 update yolov7, yolox, yolor
  • 2023.01.05 🎉 update u2net, libfacedetection
  • 2023.01.08 🚀 The whole network is the first to support yolov8
  • 2023.01.20 🍏 update efficientdet, pphunmanseg
  • 2023.12.09 🍁 update yolov8-pose
  • 2023.12.19 🍉 update yolov8-seg
  • 2023.12.27 💖 update yolonas

Installation

The following environments have been tested:

Ubuntu18.04
  • cuda11.3
  • cudnn8.2.0
  • gcc7.5.0
  • tensorrt8.4.2.4
  • opencv3.x or 4.x
  • cmake3.10.2
Windows10
  • cuda11.3
  • cudnn8.2.0
  • visual studio 2017 or 2019 or 2022
  • tensorrt8.4.2.4
  • opencv3.x or 4.x
Python environment(Optional)
# install miniconda first
conda create -n tensorrt-alpha python==3.8 -y
conda activate tensorrt-alpha
git clone https://github.com/FeiYull/tensorrt-alpha
cd tensorrt-alpha
pip install -r requirements.txt  

Installation Tutorial:

Quick Start

Ubuntu18.04

set your TensorRT_ROOT path:

git clone https://github.com/FeiYull/tensorrt-alpha
cd tensorrt-alpha/cmake
vim common.cmake
# set var TensorRT_ROOT to your path in line 20, eg:
# set(TensorRT_ROOT /home/feiyull/TensorRT-8.4.2.4)

start to build project: For example:yolov8

Onnx

At present, more than 30 models have been implemented, and some onnx files of them are organized as follows:

modeltesla v100(32G)weiyungoogle driver
yolov3weiyungoogle driver
yolov4weiyungoogle driver
yolov5weiyungoogle driver
yolov6weiyungoogle driver
yolov7weiyungoogle driver
yolov8weiyungoogle driver
yoloxweiyungoogle driver
yolorweiyungoogle driver
u2netweiyungoogle driver
libfacedetectionweiyungoogle driver
facemeshweiyungoogle driver
pphumansegweiyungoogle driver
efficientdetweiyungoogle driver
yolov8-poseweiyungoogle driver
yolov8-segweiyungoogle driver
yolonasweiyungoogle driver
more...(🚀: I will be back soon!)

🍉We will test the time of all models on tesla v100 and A100! Now let's preview the performance of yolov8n on RTX2070m(8G):

modelvideo resolutionmodel input sizeGPU Memory-UsageGPU-Util
yolov8n1920x10808x3x640x6401093MiB/7982MiB14%
无法显示图片时显示的文字
cost time per frame


Some Precision Alignment Renderings Comparison


无法显示图片时显示的文字
yolov8n : Offical( left ) vs Ours( right )


无法显示图片时显示的文字
yolov7-tiny : Offical( left ) vs Ours( right )


无法显示图片时显示的文字
yolov6s : Offical( left ) vs Ours( right )


无法显示图片时显示的文字
yolov5s : Offical( left ) vs Ours( right )


无法显示图片时显示的文字
yolov5s : Offical( left ) vs Ours( right )


无法显示图片时显示的文字
libfacedetection : Offical( left ) vs Ours( right topK:2000)


Citation

@misc{FeiYull_TensorRT-Alpha,  
  author = {FeiYull},  
  title = {TensorRT-Alpha},  
  year = {2023},  
  publisher = {GitHub},  
  journal = {GitHub repository},  
  howpublished = {https://github.com/FeiYull/tensorrt-alpha}
}