41 lines
2.5 KiB
Markdown
41 lines
2.5 KiB
Markdown
# Orin 纯 C++ 运行包
|
||
|
||
适用 AGX Orin / JetPack 5.1.2 (R35.4.1)、CUDA 11.4、TensorRT 8.5.x、OpenCV 4.5.4。不依赖 Python。
|
||
|
||
```bash
|
||
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 提供。
|
||
|
||
## 可选保存(默认全部关闭)
|
||
|
||
三个独立参数可以单独使用,也可以组合:
|
||
|
||
```bash
|
||
./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 开销。写入失败时报告错误并停止,不静默丢失文件。
|