{"id":14272232,"url":"https://github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT","last_synced_at":"2025-08-13T20:32:25.030Z","repository":{"id":250431523,"uuid":"834459829","full_name":"hamdiboukamcha/Yolo-V10-cpp-TensorRT","owner":"hamdiboukamcha","description":"The YOLOv10 C++ TensorRT Project in C++ and optimized using NVIDIA TensorRT","archived":false,"fork":false,"pushed_at":"2024-10-14T17:56:27.000Z","size":723,"stargazers_count":22,"open_issues_count":1,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-15T03:32:06.516Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hamdiboukamcha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-27T10:33:26.000Z","updated_at":"2024-12-12T15:23:20.000Z","dependencies_parsed_at":"2024-12-15T03:30:39.055Z","dependency_job_id":"dc56f2ac-e492-4a75-9e14-6f7469a46432","html_url":"https://github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT","commit_stats":null,"previous_names":["hamdiboukamcha/yolo-v10-c--tensorrt"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hamdiboukamcha/Yolo-V10-cpp-TensorRT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamdiboukamcha%2FYolo-V10-cpp-TensorRT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamdiboukamcha%2FYolo-V10-cpp-TensorRT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamdiboukamcha%2FYolo-V10-cpp-TensorRT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamdiboukamcha%2FYolo-V10-cpp-TensorRT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hamdiboukamcha","download_url":"https://codeload.github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hamdiboukamcha%2FYolo-V10-cpp-TensorRT/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270305842,"owners_count":24562109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-22T20:01:12.570Z","updated_at":"2025-08-13T20:32:24.673Z","avatar_url":"https://github.com/hamdiboukamcha.png","language":"C++","funding_links":[],"categories":["Lighter and Deployment Frameworks"],"sub_categories":[],"readme":"# YOLO V10  C++ TensorRT\r\n\r\n![Inference Time of Yolo V10 Models](assets/Yolo_v10_cpp_tenosrrt.PNG)\r\n\r\n\r\n\r\n\u003ca href=\"https://github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT\" style=\"margin: 0 2px;\"\u003e\r\n    \u003cimg src='https://img.shields.io/badge/GitHub-Repo-blue?style=flat\u0026logo=GitHub' alt='GitHub'\u003e\r\n  \u003c/a\u003e\r\n\r\n  \u003ca href=\"https://github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT?tab=GPL-3.0-1-ov-file\" style=\"margin: 0 2px;\"\u003e\r\n    \u003cimg src='https://img.shields.io/badge/License-CC BY--NC--4.0-lightgreen?style=flat\u0026logo=Lisence' alt='License'\u003e\r\n  \u003c/a\u003e\r\n\r\n## 🌐 Overview\r\n\r\nThe **YOLOv10 C++ TensorRT Project** is a high-performance object detection solution implemented in **C++** and optimized using **NVIDIA TensorRT**. This project leverages the YOLOv10 model to deliver fast and accurate object detection, utilizing TensorRT to maximize inference efficiency and performance. \r\n\r\n![Inference Time of Yolo V10 Models](assets/Bench_YOLO_V10.jpg)\r\n\r\n\r\n## 📢 Updates\r\n\r\n### Key Features:\r\n\r\n- **Model Conversion**: Convert ONNX models to TensorRT engine files to accelerate inference.\r\n- **Inference on Videos**: Efficiently perform object detection on video files.\r\n- **Inference on Images**: Execute object detection on individual image files.\r\n\r\nBy combining the advanced capabilities of YOLOv10 with TensorRT’s powerful optimization, this project provides a robust and scalable solution for real-time object detection tasks.\r\n\r\n## 📑 Table of Contents\r\n\r\n- [Project Structure](#project-structure)\r\n- [Dependencies](#dependencies)\r\n- [Installation](#installation)\r\n- [Usage](#usage)\r\n  - [Convert ONNX Model to TensorRT Engine](#convert-onnx-model-to-tensorrt-engine)\r\n  - [Run Inference on Video](#run-inference-on-video)\r\n  - [Run Inference on Image](#run-inference-on-image)\r\n- [Configuration](#configuration)\r\n- [Troubleshooting](#troubleshooting)\r\n\r\n## 🏗️ Project Structure\r\nYOLOv10-TensorRT/\r\n\r\n│── include/\r\n\r\n│ ├── YOLOv10.hpp\r\n\r\n│── src/\r\n\r\n│ ├── main.cpp\r\n\r\n│ ├── YOLOv10.cpp\r\n\r\n│── CMakeLists.txt\r\n\r\n└── README.md\r\n## 📦 Dependencies\r\n\r\n- **OpenCV V4.10.0**: For image and video processing.\r\n- **CUDA V11.7**: For GPU acceleration.\r\n- **TensorRT V8.6.1.6**: For optimized inference with YOLOv10.\r\n- **cuDNN V9.2.1**: For accelerating deep learning training and inference on NVIDIA GPUs. \r\n\r\n## 💾 Installation\r\n\r\n### 1. Install Dependencies\r\n\r\n- **OpenCV**: Follow the instructions on the [OpenCV official website](https://opencv.org/) to install OpenCV.\r\n- **CUDA \u0026 cuDNN**: Install CUDA \u0026 cuDNN from the [NVIDIA website](https://developer.nvidia.com/cuda-toolkit).\r\n- **TensorRT**: Download and install TensorRT from the [NVIDIA Developer website](https://developer.nvidia.com/tensorrt).\r\n\r\n### 2. Clone the Repository\r\n\r\n\r\ngit clone [https://github.com/hamdiboukamcha/yolov10-tensorrt.git](https://github.com/hamdiboukamcha/yolov10-tensorrt.git)\r\n\r\ncd yolov10-tensorrt/Yolov10-TensorRT\r\n\r\n      mkdir build\r\n      cd build\r\n      cmake ..\r\n      cmake --build .\r\n\r\n## 🚀 Usage\r\n\r\n### Convert ONNX Model to TensorRT Engine\r\n\r\nTo convert an ONNX model to a TensorRT engine file, use the following command:\r\n\r\n    ./YOLOv10Project convert path_to_your_model.onnx path_to_your_engine.engine.\r\n        \r\npath_to_your_model.onnx: Path to the ONNX model file.\r\n\r\npath_to_your_engine.engine: Path where the TensorRT engine file will be saved.\r\n\r\n### Run Inference on Video\r\nTo run inference on a video, use the following command:\r\n\r\n    ./YOLOv10Project infer_video path_to_your_video.mp4 path_to_your_engine.engine\r\n\r\npath_to_your_video.mp4: Path to the input video file.\r\n\r\npath_to_your_engine.engine: Path to the TensorRT engine file.\r\n\r\n### Run Inference on Video\r\nRun Inference on Image\r\nTo run inference on an image, use the following command:\r\n\r\n    ./YOLOv10Project infer_image path_to_your_image.jpg path_to_your_engine.engine\r\n    \r\npath_to_your_image.jpg: Path to the input image file.\r\n\r\npath_to_your_engine.engine: Path to the TensorRT engine file.\r\n\r\n## ⚙️ Configuration\r\n\r\n### CMake Configuration\r\nIn the CMakeLists.txt, update the paths for TensorRT and OpenCV if they are installed in non-default locations:\r\n\r\n#### Set the path to TensorRT installation\r\n\r\n    set(TENSORRT_PATH \"path/to/TensorRT\")  # Update this to the actual path\r\n    \r\nEnsure that the path points to the directory where TensorRT is installed.\r\n\r\n### Troubleshooting\r\nCannot find nvinfer.lib: Ensure that TensorRT is correctly installed and that nvinfer.lib is in the specified path. Update CMakeLists.txt to include the correct path to TensorRT libraries.\r\n\r\nLinker Errors: Verify that all dependencies (OpenCV, CUDA, TensorRT) are correctly installed and that their paths are correctly set in CMakeLists.txt.\r\n\r\nRun-time Errors: Ensure that your system has the correct CUDA drivers and that TensorRT runtime libraries are accessible. Add TensorRT’s bin directory to your system PATH.\r\n\r\n## 📞 Contact\r\n\r\nFor advanced inquiries, feel free to contact me on LinkedIn: \u003ca href=\"https://www.linkedin.com/in/hamdi-boukamcha-437830146/\" target=\"_blank\"\u003e \u003cimg src=\"assets/blue-linkedin-logo.png\" alt=\"LinkedIn\" width=\"32\" height=\"32\"\u003e\u003c/a\u003e\r\n\r\n## 📜 Citation\r\n\r\nIf you use this code in your research, please cite the repository as follows:\r\n\r\n        @misc{boukamcha2024yolov10,\r\n            author = {Hamdi Boukamcha},\r\n            title = {Yolo-V10-cpp-TensorRT},\r\n            year = {2024},\r\n            publisher = {GitHub},\r\n            howpublished = {\\url{https://github.com/hamdiboukamcha/Yolo-V10-cpp-TensorRT}},\r\n        }\r\n\r\n\r\n\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamdiboukamcha%2FYolo-V10-cpp-TensorRT","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhamdiboukamcha%2FYolo-V10-cpp-TensorRT","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhamdiboukamcha%2FYolo-V10-cpp-TensorRT/lists"}