https://github.com/a-rison/tensorrt-for-yolo

Tensorrt cpp api implementation for yolo models with docker support

https://github.com/a-rison/tensorrt-for-yolo

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (7.7%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Tensorrt cpp api implementation for yolo models with docker support

Basic Info
  • Host: GitHub
  • Owner: a-rison
  • Language: Python
  • Default Branch: main
  • Size: 0 Bytes
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme

README.md

CUDA OpenCV with Contrib Modules - Docker Setup

This project provides a Docker-based setup for building OpenCV with the opencv_contrib modules using CUDA (version ≥ 12.4). It is ideal for applications that require GPU acceleration for computer vision tasks.


✅ Requirements

  • CUDA Version: >= 12.4
  • NVIDIA GPU with drivers compatible with CUDA 12.4+
  • Docker (version 20.10+ recommended)
  • NVIDIA Container Toolkit for GPU support in Docker

🐳 Docker Setup

1. Install Docker (Ubuntu)

Follow these steps to install Docker on Ubuntu:

```bash

Update package lists and install dependencies

sudo apt-get update sudo apt-get install -y ca-certificates curl

Add Docker's official GPG key

sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc

Add Docker repository to APT sources

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTUCODENAME:-$VERSIONCODENAME}") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Update and install Docker Engine

sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Set up the NVIDIA Docker repository

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

Install NVIDIA Container Toolkit

sudo apt update sudo apt install -y nvidia-docker2

Restart Docker daemon

sudo systemctl restart docker

docker compose build

docker compose up ```

2. Exec into the docker

bash docker exec -it yolo-tensorrt-container bash

3. Build with Opencv_contrib

```bash wget -O opencv.zip https://github.com/opencv/opencv/archive/4.x.zip wget -O opencvcontrib.zip https://github.com/opencv/opencvcontrib/archive/4.x.zip unzip opencv.zip unzip opencv_contrib.zip

Create build directory and switch into it

mkdir -p build && cd build

Configure

cmake \ -D CMAKEBUILDTYPE=RELEASE \ -D CMAKEINSTALLPREFIX=$(python3 -c "import sys; print(sys.prefix)") \ -D INSTALLPYTHONEXAMPLES=ON \ -D INSTALLCEXAMPLES=ON \ -D WITHTBB=ON \ -D ENABLEFASTMATH=1 \ -D CUDAFASTMATH=1 \ -D WITHCUBLAS=1 \ -D WITHCUDA=ON \ -D BUILDopencvcudacodec=ON \ -D WITHCUDNN=ON \ -D OPENCVDNNCUDA=ON \ -D WITHV4L=ON \ -D WITHQT=OFF \ -D BUILDopencvapps=OFF \ -D BUILDopencvpython2=OFF \ -D OPENCVGENERATEPKGCONFIG=ON \ -D OPENCVPCFILENAME=opencv.pc \ -D OPENCVENABLENONFREE=ON \ -D WITHOPENGL=OFF \ -D WITHGSTREAMER=ON \ -D OPENCVPYTHON3INSTALLPATH=$(python3 -c "from distutils.sysconfig import getpythonlib; print(getpythonlib())") \ -D OPENCVEXTRAMODULESPATH=../../opencvcontrib-4.x/modules \ -D PYTHONEXECUTABLE=$(which python3) \ -D BUILDEXAMPLES=ON \ -D CUDNNINCLUDEDIR=/usr/include \ -D CUDNNLIBRARY=/usr/lib/x8664-linux-gnu/libcudnn.so \ -D CUDAARCHBIN="8.6" \ ..

Build

make -j$(nproc) make install ```

4. Prepare TRT Env

bash pip install tensorrt pip install cuda-python

5. Export ONNX

```bash pip install ultralytics

from ultralytics import YOLO model = YOLO("yolo12n.pt") model.export(format='onnx') ```

6. Generate TRT File

bash python export.py -o yolo112n.onnx -e yolo12n.trt --end2end --v8 -p fp32

tensorrt-for-yolo

Owner

  • Name: Aryan Sinha
  • Login: a-rison
  • Kind: user
  • Location: Bhubaneshwar
  • Company: IIIT Bhubaneshwar

Intuitive Programmer

GitHub Events

Total
  • Push event: 1
  • Create event: 1
Last Year
  • Push event: 1
  • Create event: 1

Dependencies

Dockerfile docker
  • nvidia/cuda ${CUDA_VERSION}-devel-ubuntu22.04 build
docker-compose.yml docker
  • yolo-tensorrt-image latest
requirements.txt pypi
  • cuda-python *
  • tensorrt *