推理端 Ai 功能使用手册
副机侧 Ai.exe 的模型加载、推理、输出和运行状态检查。
版本日期:2026-05-09
适用对象:NVIDIA CUDA/TRT 通用版推理端。
程序名称:Ai.exe
一、推理端作用
推理端 Ai.exe 负责接收发射器发送过来的画面,加载模型,执行 TensorRT 推理,然后根据配置进行目标筛选、瞄准计算和输入设备控制。
推理端不负责采集远端机器画面。当前标准部署中,画面由发射器发送,推理端通过 UDP 接收。
二、目录结构
标准 NVIDIA CUDA/TRT 通用环境包解压后,根目录通常包含:
| 文件或目录 | 作用 |
|---|---|
Ai.exe | 推理端主程序,EXE 更新包提供 |
config.ini | 推理端主配置文件 |
models | 模型目录,包含 .onnx 和运行后生成的 .engine |
*.dll | CUDA、TensorRT、OpenCV、运行库依赖 |
session_logs | 运行日志目录,运行后自动生成 |
pid_logs | 调试数据目录,开启后自动生成 |
注意:
Ai.exe必须放在环境包根目录运行。- 不要只单独复制
Ai.exe到空目录运行,否则会缺少 DLL、模型或配置。 - 第一次运行 TensorRT 模型时,可能会根据当前显卡自动生成
.engine文件。
三、启动前检查
启动前确认:
| 项目 | 要求 |
|---|---|
| 显卡 | NVIDIA RTX 显卡 |
| 驱动 | 已安装支持当前 CUDA/TRT 包的 NVIDIA 驱动 |
| 运行目录 | Ai.exe 与 config.ini、models、DLL 在同一根目录 |
| 模型 | models 目录内存在配置指定的 .onnx |
| 发射器 | 发射器目标 IP 指向推理端机器 IPv4 |
| 端口 | 发射器目标端口与推理端 udp_port 一致 |
四、标准启动步骤
- 解压 NVIDIA CUDA/TRT 通用环境包。
- 解压 EXE 更新包。
- 把
Ai.exe放到环境包根目录。 - 打开
config.ini,确认capture_method = udp_capture。 - 确认
udp_port = 1234。 - 双击运行
Ai.exe。 - 观察控制台是否出现
Listening on UDP 0.0.0.0:1234。 - 启动发射器,并把目标 IP 设置为推理端机器 IPv4,端口设置为
1234。 - 推理端控制台出现
g_capture_fps大于 0 后,说明接收正常。 - 第一次构建 TensorRT engine 时等待完成,不要中途关闭。
五、默认热键
当前标准配置的默认热键:
| 功能 | 默认按键 |
|---|---|
| 开启 / 触发瞄准 | RightMouseButton |
| 射击按键识别 | LeftMouseButton |
| 退出程序 | F2 |
| 暂停 / 恢复 | F3 |
| 重新加载配置 | F4 |
说明:
- 修改
config.ini后,可以按F4重新加载配置。 - 涉及模型、后端、输入设备初始化的配置,建议重启
Ai.exe。 - 如果客户反馈按键不生效,先检查配置里的
button_targeting、button_shoot、input_method。
六、核心配置说明
配置文件:config.ini
1. 采集和接收
| 配置项 | 当前推荐 | 说明 |
|---|---|---|
capture_method | udp_capture | 使用 UDP 接收发射器画面 |
udp_ip | 0.0.0.0 | 监听本机所有网卡 |
udp_port | 1234 | 推理端监听端口 |
udp_payload_xor | true | 与当前发射器协议匹配 |
capture_fps | 240 | 推理端采集或接收处理目标帧率 |
detection_resolution | 320 | 模型推理输入分辨率 |
重要说明:
udp_ip = 0.0.0.0是监听地址,不是发射器目标地址。- 发射器目标 IP 必须填写推理端机器真实 IPv4,例如
192.168.1.20。 - 发射器目标端口必须与
udp_port一致,当前标准是1234。
可选采集方式:
| 配置值 | 说明 |
|---|---|
udp_capture | 当前标准,UDP 接收发射器画面 |
tcp_capture | TCP 接收,必须发射器也切换 TCP |
duplication_api | 本机 DXGI 桌面采集 |
winrt_capture | 本机 WinRT 采集 |
virtual_camera | 虚拟摄像头输入 |
uvc_capture | UVC 采集卡或摄像头输入 |
客户标准部署优先使用 udp_capture。
2. 模型和后端
| 配置项 | 当前推荐 | 说明 |
|---|---|---|
backend | TRT | 使用 NVIDIA TensorRT 推理 |
ai_model | sunxds_0.8.2.onnx | ONNX 模型文件名 |
confidence_threshold | 0.30 | 置信度阈值 |
nms_threshold | 0.50 | NMS 阈值 |
max_detections | 22 | 单帧最大检测数量 |
export_enable_fp8 | true | 支持时启用 FP8 导出 |
export_enable_fp16 | true | 支持 FP16 |
use_cuda_graph | true | CUDA Graph 优化 |
use_pinned_memory | true | 固定内存优化 |
说明:
- 第一次运行会根据 ONNX 和当前显卡生成 TensorRT
.engine。 .engine与显卡架构、TensorRT 版本、部分配置相关,不建议跨机器直接复用。- 如果更换显卡、升级 TensorRT 或模型异常,优先删除旧
.engine,保留.onnx后重新运行生成。
3. 输入设备
| 配置项 | 当前示例 | 说明 |
|---|---|---|
input_method | KMBOX_NET | 当前默认输入方式 |
kmbox_net_ip | 172.16.2.114 | KMBOX 网络地址 |
kmbox_net_port | 1472 | KMBOX 网络端口 |
kmbox_net_uuid | 按设备填写 | KMBOX UUID |
arduino_port | COM0 | Arduino 串口 |
arduino_baudrate | 115200 | Arduino 波特率 |
makcu_port | COM0 | MAKCU 串口 |
makcu_baudrate | 115200 | MAKCU 波特率 |
处理原则:
- 使用 KMBOX_NET 时,先确认 IP、端口、UUID 正确。
- 使用串口设备时,先在设备管理器确认 COM 口。
- 输入设备不工作时,先不要调模型,先确认
input_method和设备连接。
4. 按键配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
button_targeting | RightMouseButton | 触发瞄准 |
button_shoot | LeftMouseButton | 射击按键 |
button_zoom | RightMouseButton | 开镜按键 |
button_exit | F2 | 退出程序 |
button_pause | F3 | 暂停 / 恢复 |
button_reload_config | F4 | 重载配置 |
5. 目标筛选和瞄准
| 配置项 | 说明 |
|---|---|
aim_mode | 瞄准模式,当前常见为 prefer_head |
fovX / fovY | 横向和纵向目标搜索范围 |
head_y_offset | 头部目标 Y 偏移 |
body_y_offset | 身体目标 Y 偏移 |
auto_aim | 是否自动瞄准 |
auto_shoot | 是否自动开火 |
class_def_0 等 | 模型类别映射和类别阈值 |
类别配置示例:
class_def_0 = Class0,player,0.50
class_def_1 = Class1,head,0.50
class_def_3 = Class3,player,0.50
class_def_6 = Class6,head,0.50
说明:
player表示身体或人物目标。head表示头部目标。disabled表示忽略该类别。- 类别阈值越高越保守,误识别更少,但可能漏检。
6. 显示和日志
| 配置项 | 说明 |
|---|---|
show_window | 是否显示预览窗口 |
show_fps | 是否显示 FPS |
debug_log_enabled | 是否开启调试日志 |
session_log_enabled | 是否保存会话日志 |
session_log_root | 会话日志目录 |
pid_csv_enabled | 是否输出 PID CSV 调试数据 |
pid_csv_dir | PID CSV 输出目录 |
aimdbg_console_enabled | 是否在控制台输出 AimDbg 调试信息 |
客户排查问题时,建议保留 session_log_enabled = true。
七、控制台正常日志判断
启动正常时,控制台通常会出现以下信息:
[Startup] exe_path=...
[Startup] config_path=...
[Capture] capture_method=udp_capture udp_ip=0.0.0.0 udp_port=1234
[UDPCapture] Listening on UDP 0.0.0.0:1234
[Detector] Loading engine: ...
[MAIN] TRT 检测器已初始化
接收到发射器画面后,应看到:
[AimDbg][Capture] g_capture_fps=...
判断标准:
g_capture_fps=0:没有收到有效画面。g_capture_fps大于 0:推理端已经收到画面。- 持续出现
Detector Error:模型推理或 CUDA/TRT 环境异常。
八、常见问题
1. 双击 Ai.exe 后提示缺少 DLL
原因:
- 只复制了
Ai.exe,没有放在完整环境包根目录。 - 环境包没有完整解压。
- 杀毒软件隔离了 DLL。
处理:
- 重新解压 NVIDIA CUDA/TRT 通用环境包。
- 把
Ai.exe放到环境包根目录。 - 确认根目录存在 CUDA、TensorRT、OpenCV 相关 DLL。
- 把目录加入杀毒软件信任区。
2. 首次启动很慢
原因:
- TensorRT 正在根据当前显卡和 ONNX 模型构建
.engine。
处理:
- 等待构建完成。
- 不要中途关闭程序。
- 后续启动会直接加载已生成的
.engine,速度会明显变快。
3. RTX 50 系显卡报 no kernel image is available for execution on the device
原因:
- 使用了旧 CUDA/OpenCV 构建包,里面的 CUDA 内核没有包含 RTX 50 系 Blackwell 架构需要的
sm_120。
处理:
- 使用 2026-05-09 后整理的 NVIDIA CUDA/TRT 多架构通用包。
- 确认 OpenCV CUDA、TensorRT、CUDA DLL 来自同一套新环境包。
- 不要混用旧包里的 OpenCV CUDA DLL。
4. 控制台一直 g_capture_fps=0
原因:
- 推理端没有收到发射器画面。
检查顺序:
- 发射器是否已经点击启动。
- 发射器目标 IP 是否是推理端机器真实 IPv4。
- 发射器目标端口是否是
1234。 - 推理端是否显示
Listening on UDP 0.0.0.0:1234。 - 推理端
config.ini是否为capture_method = udp_capture。 - Windows 防火墙是否允许 UDP
1234。 - 两台机器是否网络互通。
5. 日志里 decoded=0
原因:
- 收到了数据,但数据没有成功解码。
常见原因:
udp_payload_xor与发射器协议不匹配。- 发射器版本和推理端版本不配套。
- 发射器用 TCP,推理端用 UDP,或反过来。
- 端口被其他程序占用或收到非本软件数据。
处理:
- 当前标准保持
udp_payload_xor = true。 - 发射器和推理端使用同一次交付的配套版本。
- 默认使用 UDP。
- 保证端口只给当前软件使用。
6. 检测器持续报错
处理顺序:
- 关闭
Ai.exe。 - 备份日志。
- 删除
models目录下旧的.engine。 - 保留
.onnx模型。 - 重新运行
Ai.exe让 TensorRT 重新构建。 - 如果仍然报错,检查显卡驱动、CUDA/TRT 包和显卡型号。
7. 输入设备不动
处理顺序:
- 确认
input_method是否符合实际设备。 - KMBOX_NET 检查 IP、端口、UUID。
- 串口设备检查 COM 口和波特率。
- 检查设备是否被其他程序占用。
- 检查是否按下了
F3进入暂停状态。 - 检查是否按住了正确的
button_targeting。
8. 修改配置后没有变化
处理:
- 保存
config.ini。 - 按
F4重新加载配置。 - 如果修改的是模型、后端、输入设备初始化相关配置,直接重启
Ai.exe。
9. 延迟高或跟随慢
先排除画面链路:
- 发射器降低分辨率到
640x640或416x416。 - 发射器 JPEG 质量降低到
70左右。 - 发射器 FPS 设置为
120或60。 - 使用 UDP。
- 尽量使用有线网络。
- 推理端确认
g_capture_fps稳定。
再排除推理端配置:
- 检查
detection_resolution。 - 检查
confidence_threshold是否过高。 - 检查
fovX/fovY是否过小。 - 检查输入设备是否响应慢。
九、客户排查资料要求
推理端问题建议客户提供:
Ai.exe控制台完整截图。config.ini。session_logs目录。models目录文件列表。- 显卡型号。
- NVIDIA 驱动版本。
- Windows 版本。
- 发射器系统页截图。
- 发射器参数页截图。
如果问题和 RTX 50 系相关,必须确认客户使用的是新版 NVIDIA CUDA/TRT 多架构通用包,不要继续在旧包上排查。