- 
基于 TensorRT-v8,部署YOLOv8目标检测、关键点检测、实例分割、目标跟踪;
- 
支持嵌入式设备 Jetson系列上部署,也可以在Linux x86_64的服务器上部署;
- 
本项目无需编译安装支持 cuda的OpenCV,前后处理相关的张量操作都是作者通过cuda编程实现;
- 
模型转换方式: .pth->.onnx->.plan(.engine);
- 
作者使用 Python和C++2 种api分别做了实现;
- 
均采用了面向对象的方式,便于结合到其他项目当中; 
- 
C++版本的还会编译为动态链接库,便于在其他项目种作为接口调用;
| 原图 | 目标检测 | 
|---|---|
|  |  | 
| 关键点检测 | 实例分割 | 
|  |  | 
- ByteTrack目标跟踪
| detect | pose | segment | |
|---|---|---|---|
| C++ | 4 ms | 5 ms | 8 ms | 
| python | 15 ms | 15 ms | 58 ms | 
- 这里的推理时间包含前处理、模型推理、后处理
- 这里基于 x86_64 Linux服务器,Ubuntu系统,显卡为GeForce RTX 2080 Ti
- 基本要求:
- TensorRT 8.0+
- OpenCV 3.4.0+
如果基本要求已满足,可直接进入各目录下运行各任务
环境构建可以参考下面内容:
- 如果是 Linux x86_64服务器上,建议使用docker
- 具体环境构建,可参考这个链接 构建TensorRT环境 的环境构建部分,也是作者的项目
- 如果是边缘设备,如:Jetson Nano
- 烧录 Jetpack 4.6.1系统镜像,网上烧录镜像资料有很多,这里就不赘述了
- Jetpack 4.6.1系统镜像原装环境如下:
| CUDA | cuDNN | TensorRT | OpenCV | 
|---|---|---|---|
| 10.2 | 8.2 | 8.2.1 | 4.1.1 | 
- 
本项目 Python和C++目录下均包含detect、pose、segment、track;
- 
按照各自目录下的 README分别实现目标检测、关键点检测、实例分割、目标跟踪。
