模型评价、部署与 PnP 影响
从连续视频、角点误差和端到端延迟评价自瞄视觉模型。
训练完成不等于视觉模块完成。一个模型只有在目标硬件、真实预处理和完整后处理下稳定输出,并且让 PnP 得到足够准确的位姿,才真正进入了自瞄系统。相机、镜头、曝光和标定怎样共同决定角点上限,参见相机选型与观测精度;本节继续讨论怎样用下游结果评价模型和部署链路。
1. 评价指标要对应下游任务
检测指标
- Precision:输出的目标中有多少是真的;
- Recall:真实目标中有多少被找到;
- mAP:在不同置信度与 IoU 条件下综合评价检测效果;
- 单位时间误检数:连续运行一分钟或一局比赛会出现多少错误目标;
- 距离分桶召回率:分别统计近、中、远距离目标。
关键点指标
- 每个角点的平均与 95 分位像素误差;
- 按角点语义分别统计误差,观察某个方向是否存在系统偏差;
- 关键点在相邻帧中的抖动;
- 角点交换、交叉和越界比例;
- 重投影误差与 PnP 求解成功率。
实时性指标
- 图像预处理、网络推理、后处理分别耗时;
- 端到端平均延迟、95 分位延迟和最大延迟;
- 连续运行吞吐率以及丢帧情况;
- 输入时间戳到输出观测时间戳是否保持对应。
平均 5 ms、偶尔 40 ms 的系统,和每帧稳定 7 ms 的系统对预测器影响不同。因此延迟分布比单个平均 FPS 更有意义。
2. 角点误差怎样传到 PnP
PnP 使用四个二维角点恢复装甲板的旋转和平移。角点误差会同时影响距离、方向和装甲板朝向。
对于焦距约为 fx 的相机,水平方向一个像素的误差对应近似角误差:
Δθ ≈ Δu / fx例如 fx = 1000 px 时,1 px 大约对应 1 mrad。距离越远,同样的角误差对应越大的横向位置误差。
如果用装甲板投影宽度粗略理解深度:
Z ≈ f · W / w其中 W 是真实宽度,w 是图像中的像素宽度。对它求微分可以得到:
ΔZ / Z ≈ -Δw / w当远距离装甲板在图像里只有几十个像素宽时,一两个像素的宽度误差会占据更大比例。因此远距离角点精度通常比近距离更敏感。
3. 随机抖动与系统偏差不是一回事
随机抖动
角点围绕真实位置随机变化,会让 PnP 位姿产生高频噪声。滤波器可以削弱一部分噪声,但会增加滞后,并且不能恢复已经丢失的几何信息。
系统偏差
如果网络总把发光区域的外边缘当成角点,而物理模型使用灯条中心线,角点会在所有帧中朝同一方向偏移。滤波器会把稳定偏差当成真实观测,最终形成稳定但错误的距离或朝向。
角点顺序错误
一旦左上、左下或左右两侧交换,PnP 的对应关系被破坏,结果可能瞬间翻转。后处理需要统一语义顺序,并对面积、凸性、边长和重投影误差进行检查。
4. 用 PnP 反过来评价模型
视觉模型应在像素空间和物理空间同时评价。可以建立以下验证闭环:
测试图像
→ 模型关键点
→ PnP 位姿
→ 与标注或模拟器真值比较
→ 按距离、角度、光照和运动状态分组统计建议至少输出这些曲线:
- 角点像素误差随目标距离变化;
- 深度、横向位置和装甲板 yaw 误差随距离变化;
- 识别召回率随装甲板像素宽度变化;
- 运动速度或图像模糊程度与角点误差的关系;
- 置信度与真实角点误差的关系。
如果高置信度样本仍有较大角点误差,说明模型置信度不能直接代表几何可靠性,需要重新设计训练目标、数据或下游观测噪声模型。
5. 部署阶段最常见的偏差
RGB 与 BGR
训练框架通常按 RGB 读取图像,OpenCV 默认是 BGR。颜色顺序错误时,网络仍能输出数值,但颜色分类和特征分布会明显变化。
letterbox 坐标没有正确还原
模型输入可能是等比例缩放后补边的 640 × 640 图像。输出关键点需要先去掉 padding,再除以缩放比例,最后加回 ROI 偏移。直接按原图宽高分别缩放会产生位置相关的系统误差。
归一化与张量排布不一致
检查输入范围是 [0, 1] 还是 [0, 255],排列是 NCHW 还是 NHWC,数据类型是 FP32、FP16 还是 INT8。
后处理协议不一致
不同 YOLO 版本的输出维度、是否内置 sigmoid、类别分数计算方式、关键点排列和 NMS 位置都可能不同。替换模型时必须同时更新后处理契约。
推理正确但时间戳丢失
异步流水线中,模型输出必须带回对应输入帧的时间戳。把最新云台姿态和几帧之前的图像结果直接组合,会产生难以通过视觉指标发现的动态偏差。
6. 建立错误样本闭环
每次测试不要只保存“识别成功”的截图。更有价值的是自动记录:
- 漏检前后若干帧;
- 持续误检和高置信度误检;
- 角点突跳、交换或 PnP 重投影误差过大的样本;
- 光照、距离、速度、地图和相机参数;
- 模型版本、阈值和推理后端。
将错误样本重新标注并加入下一轮训练,才会形成真正的数据闭环。模拟器可以快速生成姿态和距离分布明确的样本,真实相机数据负责补充传感器噪声、曝光、镜头和场地差异。训练集需要同时保留两种来源,并在测试报告中分开统计。
7. 本章验收清单
- 能解释传统灯条方案从二值化到配对的完整流程;
- 能说明 YOLO 的 Backbone、Neck、Head 和 NMS 分别做什么;
- 能为装甲板或能量机关定义固定的关键点语义;
- 能训练、验证并导出一个关键点模型;
- 能比较 PyTorch、ONNX 与目标推理后端的输出;
- 能统计角点误差、误检、召回率和端到端延迟;
- 能说明角点抖动、系统偏差和顺序错误对 PnP 的不同影响。