Files
vision-anti-pinch/orin/README.md
T

2.7 KiB
Raw Blame History

Orin 纯 C++ 运行包

相机每次等待默认 2 秒,连续 6 次超时才退出(约 12 秒);有效帧恢复后重新计数。Ctrl+C / SIGTERM 主动停止不需要等待 6 次超时。

适用 AGX Orin / JetPack 5.1.2 (R35.4.1)、CUDA 11.4、TensorRT 8.5.x、OpenCV 4.5.4。不依赖 Python。

sha256sum -c SHA256SUMS
./scripts/initialize_camera.sh  # 开机后无 /dev/video5 时执行,需要 sudo
./run.sh                       # exec build/camera_risk,默认无可视化
./run.sh --visualize            # 可选 Orin 本地图形窗口
# 直接执行 ELF:
./build/camera_risk --config config/camera.json

只运行一个摄像头进程。Ctrl+C / SIGTERM 停止;关闭可视化窗口不停止推理。无图形桌面时继续无窗口运行。

CAN 0x391 data[0..3] 为左前、右前、左后、右后。默认左侧,--can-side right 切换右侧。缺失或超时报文输出 CAN_UNKNOWN,风险分数为空。

--no-can --active-door both 模拟门状态;--duration 30 限时运行;--save-results FILE.jsonl 显式保存结果,默认不写文件。完整参数见 ./run.sh --help。

最新结果保存在进程内的 shared_ptr<const cms::FrameResult>;C++ 下游调用 pipeline.latest() 读取。接口头文件位于仓库 include/,不是 Python 变量或跨进程共享内存。

模型、驱动和编译产物绑定目标 GPU、TensorRT 与内核环境。标定文件需匹配实际机位,默认 calibration_verified=false。系统 CUDA/TensorRT/OpenCV 库由 JetPack 提供。

可选保存(默认全部关闭)

三个独立参数可以单独使用,也可以组合:

./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 开销。写入失败时报告错误并停止,不静默丢失文件。