-
基于
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
分别实现目标检测、关键点检测、实例分割、目标跟踪。