4.1 KiB
Orin 可直接运行目录
相机每次等待默认 2 秒,连续 6 次超时才退出(约 12 秒);有效帧恢复后重新计数。Ctrl+C / SIGTERM 主动停止不需要等待 6 次超时。
本目录包含实际在 Jetson AGX Orin 上编译的 aarch64 程序和 TensorRT FP16 引擎。 目标环境:L4T R35.4.1 / JetPack 5.1.2,CUDA 11.4,TensorRT 8.5.2,OpenCV 4.5.4。 使用系统安装的 CUDA、TensorRT、OpenCV 共享库;不适用于任意 JetPack 版本或 x86 主机。
cd orin
sha256sum -c SHA256SUMS
./scripts/initialize_camera.sh
./run.sh
实时推理、录制和回灌默认开启可视化,显示门区、检测框、手臂/手部关键点及风险信息。使用 ./run.sh --no-visualize 关闭;--visualize 仍可显式开启。需要板端桌面 DISPLAY / WAYLAND_DISPLAY,没有显示环境时自动跳过窗口并继续推理。
默认持续推理直到 Ctrl+C / SIGTERM;正常退出没有统计输出。
预览窗口关闭后推理继续。结果通过 C++ CameraPipeline::latest() 获取,不通过端口或结果文件传递。
程序为 build/camera_risk,配置为 config/camera.json,引擎为 engines/*.engine。 ./run.sh 从所在目录解析路径,也可以在其他工作目录通过绝对路径调用。
bin/drivers 中 GMSL 模块对应内核 5.10.120-tegra。初始化脚本检查内核版本;加载模块需要 root 或现有 sudo 权限。 门区保留当前室内联调设置,door.calibration_verified=false。
可选保存(默认全部关闭)
三个独立参数可以单独使用,也可以组合:
./run.sh --save-original --save-annotated --save-results
开启任一项时,程序自动创建可执行文件所属工程的 output/ 及三个子目录:
original/:--save-original保存未叠加的原图,JPEG 质量 95。annotated/:--save-annotated保存带框、关键点及风险文字的 JPEG,无需开启可视化窗口。results/:--save-results每个完成推理的帧保存一个 JSON,包含帧号、检测框、跟踪 ID、关键点及置信度、风险和耗时;有 CAN 的分支还包含相应状态。
同一帧三类文件同名(扩展名不同),文件名包含运行标识和帧号,多次运行不覆盖。JSON 的 images 提供相对于 output/ 的图片路径,未选择保存的图片为 null。源码入口写入工程 output/;独立包入口写入 orin/output/。默认不创建目录、不保存文件。
保存对象是完成推理的帧;惰性分支暂停时不新增文件。开启保存会增加编码和磁盘 I/O 开销。写入失败时报告错误并停止,不静默丢失文件。
H.264 推理过程录制与回灌
./run.sh --record-session output/sessions/drive-001
# Ctrl+C 正常停止,完成 MP4 封装后再回灌
./run.sh --replay-session output/sessions/drive-001 --save-results
录制目录必须不存在。会话保存一份 H.264 视频、逐帧过程 JSON、推理配置与门区副本;回灌解码视频并重新执行 TensorRT 推理,不打开摄像头,结束后自动退出。使用当前配置指向的引擎;有损压缩会引起推理结果差异。需要 OpenCV FFmpeg 的 H.264 编码支持。强制退出或断电导致未封装完成的会话不可回灌;正常 Ctrl+C / SIGTERM 会完成封装。详细格式与限制见工程 README。
CAN 状态与发送接口
实时运行默认接收 USBCANFD 双通道(500 kbps / 2 Mbps)。预览新增 0x391 的 LF/RF/LR/RR 四门原始位置值,每通道分别显示,并标记新鲜度和收发计数。--no-can 可关闭;设备缺失不停止推理。config/camera.json 的 can.termination 控制终端电阻,默认沿用参考工程的开启设置。
lib/ 包含 SDK 与 libusb 及其 SONAME 链接。回灌使用录制的 CAN 快照,不访问总线;旧会话显示 NOT_RECORDED。按需发送通过 C++ CameraPipeline::sendCan(),参数与完整示例见工程 README。
USB-CAN 首次接入如出现权限不足,运行 ./scripts/enable_can_access.sh(需要 sudo,运行用户属于 plugdev),仅为 3068:0009 适配器安装设备访问规则。