← 报告首页 / 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
43.6%
系统性相对误差
与深度和位置无关的固定比例
翻译成人话:夹爪开口约 40 mm。此前有一半以上的帧,
算出来的杯子横向位置偏差大于整个夹爪的开口宽度——按那个坐标伸手过去,必然抓空。
而且这不是随机噪声,是 43.6% 的固定系统偏差,越远越大。
✅ 现在可以做的
1. 迎宾段:转头看客人 —— 这是最大的一件
把画面里一个人的位置换算成「头要转多少度」,只需要内参,不需要手眼标定。
公式就是 θ = arctan((u − cx) / fx)。此前用 fx=320 算,角度是错的:
| 人在画面里距中心 | 旧算法给的角度 | 正确角度 | 误差 |
| 100 px | 17.4° | 12.3° | 5.1° |
| 200 px | 32.0° | 23.5° | 8.5° |
| 300 px | 43.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 个真实检出。
所有换算脚本可复现。