← 报告首页 / reports index
2026-09-04 · 标定收益评估 · 数字全部实测

相机内参标定完成后,我们现在能做什么

今天头相机内参标定完成(17 张有效,重投影误差 0.335 px)。 这一页回答一个问题:它到底解锁了什么,又有什么仍然被挡着。 所有数字用我们自己的检测输出和标定结果算出来,不是估计。

标定结果

459.59 / 459.79
fx / fy
此前代码里写死的是猜的 320
323.85 / 240.17
cx / cy
几乎正落在画面中心 320/240
0.335 px
重投影 RMS
留一验证 fx 只飘 ±0.8(0.17%)
69.7° × 55.1°
实际视场角
此前按 90°×73.7° 推算,全错

存放位置:05-training/onsite/head_intrinsics-2026-09-04.json。

误差有多大:用真实检出的杯子算

拿 OWLv2 在我们自己数据集上真实检出的 24 个杯子框,按典型杯距 400 mm, 分别用旧的猜测值和新的实测值换算横向坐标:

53.5 mm
横向坐标平均改变量
中位 41.7 mm,最大 113.8 mm
79%
的帧误差超过夹爪半开口(20 mm)
54%
的帧误差超过整个夹爪开口(40 mm)
43.6%
系统性相对误差
与深度和位置无关的固定比例
翻译成人话:夹爪开口约 40 mm。此前有一半以上的帧, 算出来的杯子横向位置偏差大于整个夹爪的开口宽度——按那个坐标伸手过去,必然抓空。 而且这不是随机噪声,是 43.6% 的固定系统偏差,越远越大。

✅ 现在可以做的

1. 迎宾段:转头看客人 —— 这是最大的一件
把画面里一个人的位置换算成「头要转多少度」,只需要内参,不需要手眼标定。 公式就是 θ = arctan((u − cx) / fx)。此前用 fx=320 算,角度是错的:
人在画面里距中心旧算法给的角度正确角度误差
100 px17.4°12.3°5.1°
200 px32.0°23.5°8.5°
300 px43.2°33.1°10.0°

一个人站在 1.5 m 外,头转错 8.5° 就是视线偏离他 224 mm——看的是他旁边,不是他。 现在这个换算是对的。

为什么这件事重要:迎宾段在路线图里排第 4, 而它是整个产品叙事里最先能演示出来的一段——手臂静止,不和任何东西冲突, 机器人抬头看着你、跟你说话、表情跟着变。人脸检测、表情识别、语音、表情屏这些子系统都已经在跑, 唯一缺的就是「看哪个方向」这个换算。今天这一环补上了。
2. 从掩码 + 深度得到杯子的点云
这是 深度 + VLA 文献清单里 Grounded SAM 那条路的关键一步: RGB 负责「哪个像素是杯子」,深度负责「那些像素有多远」,合起来是物体点云。 这个反投影必须要内参,此前做不了;现在可以了。
3. 相机坐标系里的一切度量都变准了
杯子多大、两个物体隔多远、人离机器人多远——这些量的横向分量此前全部偏 43.6%。 深度相机测的 Z 一直是准的,歪的是 X/Y。
4. 检测评估流程里的毫米数要重算
cup_locate_offline.py 用「空间稳定性(相邻帧坐标跳动多少毫米)」来评价检测器好坏。 那些毫米数此前全部大了 43.6%。换成实测内参重跑,检测器之间的排序可能会变—— 这是纯离线活,不占现场时间。该文件开头写着「坐标准不准要等相机标定做完才谈得上」,这句现在可以删了。
5. 畸变校正(新增能力,此前完全没有)
此前代码里没有任何畸变系数。全画面平均位移 0.57 px,画面角落最大 4.40 px, 在 400 mm 处折合 3.8 mm 的横向误差。数值不大,但它是白拿的——杯子出现在画面边缘时才显现。

❌ 仍然被挡着的

1. 「把夹爪移到杯子那里」—— 需要手眼标定
内参给的是相机坐标系里的坐标。要把它变成机械臂基座坐标系里的目标, 需要「头相机 ↔ 机械臂基座」那个变换,那就是手眼标定。今天没做成。
所以:能算出杯子在相机里的准确位置,但还不能据此命令手臂过去。
2. 抓取位姿估计的下游环节
点云能算出来了,但从点云到「夹爪该以什么姿态从哪个方向合拢」, 还要接上手眼才能落到实机坐标。
3. 现役 VLA 策略不受影响
要说清楚:SmolVLA 是端到端的,吃图像、直接吐关节动作,它根本不用内参。 所以今天的标定不会直接提高现在那条抓取链路的成功率。 它提升的是「模块化感知」这条平行路线,以及迎宾段这类需要几何的功能。

结论:三件事按性价比排序

#做什么需要什么现场时间
1把实测内参写进 cup_locate_demo.py / cup_locate_offline.py,重跑离线评估已具备不需要
2接通迎宾段:人脸位置 → 头部转角 → 转头看人已具备(另需确认头部舵机的度数换算与符号)少量
3掩码 + 深度 → 杯子点云,评估定位精度已具备不需要
—手臂按视觉坐标移动缺手眼标定需要重拍

前三项都不占现场时间,可以全部远程做完。

数据出处:内参来自 head_intrinsics-2026-09-04.json(17 张有效图, OpenCV calibrateCamera,棋盘 9×6 内角点 / 25 mm)。 杯子框来自 05-training/detect/owlv2/records.json 的 24 个真实检出。 所有换算脚本可复现。