学习笔记搜索

08|视觉几何:YOLO 框能告诉控制器什么

检测、跟踪和控制是三件事

检测给出某一帧的类别、位置和置信度;跟踪维护跨帧身份;视觉伺服根据几何误差生成运动。检测置信度不是位置误差方差,跟踪 ID 也可能在遮挡或交叉时切换。控制器真正需要的是“哪一个目标、哪一个时刻、什么几何量、误差有多可信”。

框中心 u_c=(u_min+u_max)/2、v_c=(v_min+v_max)/2。控制前先把缩放、裁剪或 letterbox 坐标还原到标定图像,再由内参转换为归一化像点:

x = uc−cxfx, y = vc−cyfy

这里 x=X/Z、y=Y/Z,Z 是沿相机光轴的深度,不是压力计的下潜深度。目标在画面右侧可能通过右移或转艏居中;选择哪个自由度取决于任务希望保持什么姿态和距离。

面积为什么只能提供有条件的距离线索

若目标投影形状与朝向近似固定,归一化框面积 a≈K/Z²,因此 Z/Z*=√(a*/a)。目标面积变成期望的四倍,意味着距离约变为一半。可若目标转身、被遮挡或检测框截断,面积也会变化;此时前后移动未必是正确反应。

米制距离需要额外几何:已知尺寸、双目视差、已知特征 PnP 或声学测距。不同方法解决的是不同歧义。不要急着增加模型复杂度,先问任务究竟需要“图像里大小稳定”还是“真实距离为 2 m”。

观测年龄决定还能不能用

图像采样到推进器作用之间包含曝光、排队、推理、通信和执行时间。若目标每秒在画面移动 100 px,观测晚 0.3 s,中心误差就可能落后 30 px。实时队列通常优先最新可用帧,录像另行保存完整帧;让控制线程等推理结束,会把计算抖动直接引入闭环。

实验

固定相机,把目标分别横移、改变距离和原地转身,观察中心与面积的变化。随后给同一视频加入队列延迟,对比使用所有排队帧与只用最新帧。这个实验能把“检测准确”与“适合闭环使用”清楚分开。

仅保存在当前浏览器,可在学习记录页导出。