AI智能摘要
厌倦了在Jetson设备上反复配置环境?这篇容器化部署指南将带你绕过所有坑点。从精准匹配L4T版本的镜像选择,到解决Jetson Orin的Docker兼容性问题,再到最终实现YOLO26的TensorRT加速推理——完整流程实测推理速度从143.9ms飙升至5.2ms。手把手教你用容器技术构建高集成度环境,告别依赖冲突,即刻开启高效目标检测。
— AI 生成的文章内容摘要

前言

上篇教程是通过虚拟环境来管理环境,这篇教程尝试通过容器技术来构建高大全的镜像以此来推理 YOLO

构建容器

注意煮包的运行环境是 JetPack 6.2.1 [L4T 36.4.7],如果不符需要寻找适合自己的镜像 JP

# 查看 L4T 版本
cat /etc/nv_tegra_release
jetson_release

示例如下

1768638436 image

如果 L4T ['>=35'] 前往 jetson-containers/packages/pytorch at master · dusty-nv/jetson-containers

如果 L4T ['<=35'] 前往 jetson-containers/packages/ml/l4t/l4t-pytorch at master · dusty-nv/jetson-containers

根据文档的要求选择适合的镜像,使用以下代码来运行,例如匹配我的版本是 2.7-r36.4.0

# 安装容器工具
git clone https://github.com/dusty-nv/jetson-containers
bash jetson-containers/install.sh

# 指定版本拉取并运行容器
jetson-containers run dustynv/pytorch:2.7-r36.4.0

# 自动选择适合的镜像
jetson-containers run $(autotag pytorch)

如果没找到合适的镜像进行 build 的话可能会遇到以下报错,原因是 Jetson Orin (或更老)上的 docker 不支持 --gpus=all 这个参数

1768638805 image

选择自己喜欢的文件编辑器修改 /etc/docker/daemon.json,在 "default-runtime" 和 "runtimes" 字段中与下面保持一致,然后重新 build,放心,优秀的 docker 有缓存机制,会自中断点后构建,不会重来

{
    "default-runtime": "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

推理 YOLO

等待拉取完成后就会进入容器的命令交互界面

1768645543 image
mkdir -p /root/yolo
cd /root/yolo

apt-get update && apt-get install -y libgl1 libglib2.0-0
pip3 install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install "numpy<2" "opencv-python<4.10" -i https://pypi.tuna.tsinghua.edu.cn/simple

验证

yolo check
1768646743 image

使用 Pytorch 推理

yolo predict model=yolo26n.pt source='https://ultralytics.com/images/bus.jpg'

Speed: 6.1ms preprocess, 143.9ms inference, 15.2ms postprocess per image at shape (1, 3, 640, 480)

构建 TensorRT 推理引擎

pip3 install onnxslim -i https://pypi.tuna.tsinghua.edu.cn/simple
yolo export model=yolo26n.pt format=engine half=True device=0
# onnxruntime 报错不用管

推理引擎

yolo predict task=detect model=yolo26n.engine source='https://ultralytics.com/images/bus.jpg'

Speed: 6.4ms preprocess, 5.2ms inference, 13.4ms postprocess per image at shape (1, 3, 640, 640)