Add continuous TensorRT camera inference and ready-to-run Orin package
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Orin 可直接运行目录
|
||||
|
||||
本目录包含实际在 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 主机。
|
||||
|
||||
```bash
|
||||
cd orin
|
||||
sha256sum -c SHA256SUMS
|
||||
./scripts/initialize_camera.sh
|
||||
./run.sh
|
||||
```
|
||||
|
||||
可视化可选:`./run.sh --visualize`,需要板端本地桌面 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。
|
||||
@@ -0,0 +1,11 @@
|
||||
926a5165a4ebffe9568cf694018afb097cfb69b6e696a19939e5d364a9e3dfa5 README.md
|
||||
6d5e874fd27fcfd75d303d7e35d9672028af71041f52dcc82a1e83676faefa65 bin/drivers/max9295.ko
|
||||
8a78d04ef8be44e9b62a5e4ee315d3d6d679e34aedff02a234bbf4d40e222933 bin/drivers/max9296.ko
|
||||
3da628587477cc35d5e3f8aee86e718e2ddf16808e893e00ba6e164b2307e843 bin/drivers/sgx-yuv-gmsl2.ko
|
||||
b5102fe0a529349bb8e9700ae1d8e8ddeaa7c4279cb28e7826c5cc32dce2bb1d build/camera_risk
|
||||
f2334c43e6a48480260c770d46a3ab0edb855f6f52bc8b91d1559e69edfad043 config/camera.json
|
||||
9ba768d559fd3b64e833b50c62c70f2adfd6c169620aea5fba32cfb1b4c5b0e9 config/door_mask.json
|
||||
ebcd09e8c2e35008adbb0c1d222e580b17e0df1c8093df3481ba3374cd9a8174 engines/rtmw_l_384.engine
|
||||
f6a65b926ac1144484f4aa93cd26d7997d32d62310ab93fe867f2bd4412222e9 engines/yolo11s.engine
|
||||
7f42b0e7f9396e0d82313a892fc62c153261dab1206a206a466bce6376f58a36 run.sh
|
||||
54e1d63e3aa72ad9b056a224d55968d4947ca6703a8d1c405570de5707a7e7ef scripts/initialize_camera.sh
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
BIN
Binary file not shown.
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"camera": {
|
||||
"device": "/dev/video5",
|
||||
"width": 1920,
|
||||
"height": 1536,
|
||||
"fps": 30,
|
||||
"buffers": 4,
|
||||
"timeout_ms": 2000
|
||||
},
|
||||
"inference": {
|
||||
"engine_directory": "../engines",
|
||||
"detector_confidence": 0.30,
|
||||
"max_people": 3,
|
||||
"queue_capacity": 2
|
||||
},
|
||||
"door": {
|
||||
"mask": "door_mask.json",
|
||||
"warning_relative": 0.30,
|
||||
"release_relative": 0.45,
|
||||
"calibration_verified": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"version": "x-anylabeling",
|
||||
"flags": {},
|
||||
"shapes": [
|
||||
{
|
||||
"label": "door",
|
||||
"points": [
|
||||
[
|
||||
212.86,
|
||||
145.919
|
||||
],
|
||||
[
|
||||
378.891,
|
||||
851.857
|
||||
],
|
||||
[
|
||||
468.293,
|
||||
996.446
|
||||
],
|
||||
[
|
||||
536.408,
|
||||
1294.131
|
||||
],
|
||||
[
|
||||
553.437,
|
||||
1404.7
|
||||
],
|
||||
[
|
||||
561.951,
|
||||
1532.279
|
||||
],
|
||||
[
|
||||
51.086,
|
||||
1532.279
|
||||
],
|
||||
[
|
||||
8.514,
|
||||
1515.268
|
||||
],
|
||||
[
|
||||
0.0,
|
||||
1468.489
|
||||
],
|
||||
[
|
||||
8.514,
|
||||
26.845
|
||||
],
|
||||
[
|
||||
25.543,
|
||||
5.582
|
||||
],
|
||||
[
|
||||
131.973,
|
||||
-2.924
|
||||
],
|
||||
[
|
||||
191.574,
|
||||
1.329
|
||||
],
|
||||
[
|
||||
208.603,
|
||||
145.919
|
||||
]
|
||||
],
|
||||
"group_id": null,
|
||||
"shape_type": "polygon",
|
||||
"flags": {}
|
||||
}
|
||||
],
|
||||
"imagePath": "constant_door_mask_reference.jpg",
|
||||
"imageData": null,
|
||||
"imageHeight": 1536,
|
||||
"imageWidth": 1920,
|
||||
"sourceVideo": "D:\\huang.xuewei\\CMS\\video\\20260921104502\\segment_009.mp4",
|
||||
"sourceFrameIndex": 244,
|
||||
"constantDoorMask": true
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||
exec "$root/build/camera_risk" --config "$root/config/camera.json" "$@"
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
device=/dev/video5
|
||||
loaded() { test -d "/sys/module/$1"; }
|
||||
root_command() { if [[ $EUID -eq 0 ]]; then "$@"; else sudo -n "$@"; fi; }
|
||||
if [[ -c "$device" ]] && loaded max9295 && loaded max9296 && loaded sgx_yuv_gmsl2; then
|
||||
echo "Camera already initialized: $device"
|
||||
exit 0
|
||||
fi
|
||||
for driver in max9295 max9296 sgx-yuv-gmsl2; do
|
||||
file="$root/bin/drivers/$driver.ko"
|
||||
[[ -f "$file" ]] || { echo "Missing driver: $file" >&2; exit 1; }
|
||||
[[ "$(modinfo -F vermagic "$file")" == "$(uname -r) "* ]] || { echo "Kernel mismatch: $file" >&2; exit 1; }
|
||||
done
|
||||
loaded max9295 || root_command insmod "$root/bin/drivers/max9295.ko"
|
||||
loaded max9296 || root_command insmod "$root/bin/drivers/max9296.ko"
|
||||
loaded sgx_yuv_gmsl2 || root_command insmod "$root/bin/drivers/sgx-yuv-gmsl2.ko" gmsl_mode=2,2,2,2
|
||||
for _ in {1..20}; do [[ -c "$device" ]] && break; sleep 0.25; done
|
||||
[[ -c "$device" ]] || { echo "$device was not created; verify camera/DTB" >&2; exit 1; }
|
||||
v4l2-ctl -d "$device" -c sensor_mode=1,trig_pin=0xffff0007
|
||||
Reference in New Issue
Block a user