TensorRT-YOLOv8-ByteTrack

emptysoalMIT长期未更新

用 YOLOv8 做检测、ByteTrack 做跟踪的目标跟踪工程,通过 C++ 和 TensorRT 加速推理,适合需要实时多目标跟踪的部署场景。

An object tracking project with YOLOv8 and ByteTrack, speed up by C++ and TensorRT.

暂无版本250star27fork同步于 2026-11-07 07:32 UTC

怎么上手

由 README 提炼,执行前请确认
apt install libeigen3-dev
mkdir build && cd build && cmake .. && make
./main ../videos/demo.mp4
硬件要求按 README 说明

需 TensorRT 8.0+ 与 OpenCV 3.4.0+;支持 Jetson 系列嵌入式设备和 Linux x86_64 服务器;README 未说明具体显存要求。

需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用 TensorRT 和 C++ 加速 YOLOv8 与 ByteTrack 的目标跟踪部署项目

用 YOLOv8 做检测、ByteTrack 做跟踪的目标跟踪工程,通过 C++ 和 TensorRT 加速推理,适合需要实时多目标跟踪的部署场景。

核心能力

  • 将 YOLOv8 推理封装为 C++ 类并编译成动态链接库
  • 用自写 CUDA 预处理替代原预处理
  • ByteTrack 也编译为动态链接库以解耦项目
  • 大幅降低 NMS 的 conf_thres 以适配 ByteTrack 原理
  • 支持在 main.cpp 中按类别过滤要跟踪的目标

容易踩的坑

需先自行下载 yolov8s.wts 并转换成 .engine 文件放到 yolo/engine 目录;需安装 Eigen 库并确认 CMakeLists.txt 中库路径;Jetson 上需使用 Jetpack 4.6.1 等对应 TensorRT v8 的系统镜像。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    TensorRT C++ api 部署 YOLOv8 + ByteTrack

    一. 项目简介

    • 基于 TensorRT-v8 ,部署YOLOv8 + ByteTrack 的目标跟踪;

    • 支持 Jetson 系列嵌入式设备上部署,也可以在 Linux x86_64的服务器上部署;

    本人所做的主要工作:

    1. 参考 tensorrtx 项目,模型 .pth -> .engine,提取出推理部分代码,封装为C++的类,便于其他项目调用;
    2. 预处理更换成了自己写的 CUDA编程预处理;
    3. 后处理去掉了CUDA编程,因为测试其相比CPU后处理提速并不明显;
    4. 后处理的 NMS 大幅减小conf_thres超参数,源于 ByteTrack 跟踪的原理,这一点非常重要;
    5. YOLOv8 推理编译为一个动态链接库,以解耦项目;
    6. 参考官方 ByteTrack TensorRT部署,修改其与YOLO检测器的接口;
    7. ByteTrack 也编译为一个动态链接库,进一步解耦项目;
    8. 增加类别过滤功能,可以在main.cpp第 8 行设置自己想要跟踪的类别。

    二. 项目效果

    三. 环境配置

    1. 基本要求:
    • TensorRT 8.0+
    • OpenCV 3.4.0+
    1. 本人在 Jetson Nano 上的运行环境如下:
    • 烧录的系统镜像为 Jetpack 4.6.1,该jetpack 原装环境如下:
    CUDAcuDNNTensorRTOpenCV
    10.28.28.2.14.1.1

    关于如何在 Jetson nano 上烧录镜像,网上资料有很多,这里就不赘述了,注意下载 Jetpack镜像时选择 4.6.1 版本,该版本对应的 TensorRT v8 版本

    • 安装Eigen库
    apt install libeigen3-dev
    
    1. 如果是服务器上,保证基本环境版本满足,再安装Eigen库即可

    提示:无论何种设备,记得确认 CMakeLists.txt 文件中相关库的路径。

    四. 模型转换

    目的:得到TensorRT的序列化文件,后缀 .engine

    • 首先获取 wts 格式的模型文件,链接:yolov8s.wts,提取码:gsqm

    • 然后按以下步骤执行:

    cd {TensorRT-YOLOv8-ByteTrack}/tensorrtx-yolov8/
    mkdir build
    cd build
    cp {path/to/yolov8s.wts} .
    cmake ..
    make
    ./yolov8 -s yolov8s.wts yolov8s.engine s
    
    cd ../../
    mkdir yolo/engine
    cp tensorrtx-yolov8/build/yolov8s.engine yolo/engine
    

    五. 运行项目

    • 开始编译并运行目标跟踪的代码
    • 按如下步骤运行
    mkdir build
    cd build
    cmake ..
    make
    ./main ../videos/demo.mp4  # 传入自己视频的路径
    

    之后会在 build 目录下得到result.mp4,为跟踪效果的视频文件

    如果想要跟踪的视频实时播放,可解开main.cpp第 94 行的注释。

    六. 项目参考

    主要参考了下面的项目: