1. 创建docker container, 参考 :
https://docs.nvidia.com/deeplearning/tensorrt/container-release-notes/index.html
1.1 拉取docker镜像: docker pull nvcr.io/nvidia/tensorrt:24.02-py3
1.2 创建容器:
docker run --gpus all -it -v local_dir:container_dir nvcr.io/nvidia/tensorrt:<xx.xx>-py<x>
2. 下载YOLOv8-TensorRT
github地址:GitHub - triple-Mu/YOLOv8-TensorRT: YOLOv8 using TensorRT accelerate !
csdn下载地址:https://download.csdn.net/download/love_xunmeng/89324164
3. 操作
3.1 转换为onnx:
python3 build.py --weights yolov8s.onnx --iou-thres 0.65 --conf-thres 0.25 --topk 100 --fp16 --device cuda:0
3.2 转换为trt engine:
/usr/src/tensorrt/bin/trtexec --onnx=yolov8s.onnx --saveEngine=yolov8s.engine --fp16
3.3 python推理:
python3 infer-det.py --engine yolov8s.engine --imgs data --out-dir outputs --device cuda:0
3.4 结果,上一张经典的bus图:
---------------------------------------------------------------------------------------------------------------------------
后面发现,yolov8本身可以实现。。。
转换:
yolo export model=weights/yolov8n.pt format=engine
预测:
yolo predict model=weights/yolov8n.engine source='https://ultralytics.com/images/bus.jpg'
具体参数参考:
Export - Ultralytics YOLOv8 Docs
---------------------------------------------------------------------------------------------------------------------------------
c++参考: