选型

标定板尺寸与方格尺寸怎么定:一套可直接套用的计算方法

从图像分辨率、像元尺寸、镜头焦距和工作距离出发,一步步算出视场、物方分辨率、标定板外形尺寸和方格尺寸,并核对 ChArUco 标记与 AprilGrid tag 的编码位像素数,附完整算例。

要点

  • 先算视场:视场宽 ≈ 工作距离 × 传感器宽 / 焦距。
  • 标定板的图案区宜占视场宽度(或高度)的 1/3–1/2 以上,同时兼顾倾斜拍摄时的景深。
  • 方格在最不利的姿态下(最远、最倾斜)仍应有约 15–20 像素以上;ChArUco 标记的每个编码位至少 3–5 像素。这些都是经验值。
  • 方格也不是越小越好:太小检测不稳,太大则特征点太少,短边方向常取 7–12 个方格。
  • 标定板尺寸计算器可以自动完成下面的全部计算。

第一步:收集参数

参数 本文算例 说明
图像分辨率 2448 × 2048 px 用实际工作时的分辨率(注意 binning 和 ROI)
像元尺寸 3.45 µm 见相机规格书
镜头焦距 12 mm 定焦镜头的标称焦距
工作距离 400 mm 镜头到被测物的距离
拍摄距离变化范围 ±20% 采集时远近变化的幅度
最大倾斜角 45° 采集时标定板的最大倾斜

第二步:算传感器尺寸、视场和物方分辨率

传感器尺寸:

  • 传感器宽 = 水平像素数 × 像元尺寸 = 2448 × 3.45 µm ≈ 8.45 mm
  • 传感器高 = 2048 × 3.45 µm ≈ 7.07 mm

注意不要直接用“2/3 英寸”“1 英寸”这类靶面规格去换算:这些名称沿用自早期摄像管,并不等于传感器的实际尺寸。用像素数乘以像元尺寸最可靠;如果实际使用时开了 ROI 或 binning,也要按实际输出的图像来算。

视场(针孔近似):

  • 视场宽 ≈ 工作距离 × 传感器宽 / 焦距 = 400 × 8.45 / 12 ≈ 282 mm
  • 视场高 ≈ 400 × 7.07 / 12 ≈ 236 mm

这个公式在工作距离远大于焦距时足够准确。近距离时可以用薄透镜公式修正:视场 ≈ 传感器尺寸 × (工作距离 − 焦距) / 焦距,本例约为 273 × 228 mm,比近似值小 3% 左右。最可靠的还是以镜头厂商的视场数据或实拍为准。

物方分辨率:

  • 物方分辨率 = 水平像素数 / 视场宽 = 2448 / 282 ≈ 8.7 px/mm
  • 即每个像素在物体上约对应 0.115 mm。

第三步:定标定板的大小

下限:图案区至少占视场宽(或高)的 1/3–1/2。本例中,宽度方向约 94–141 mm,高度方向约 79–118 mm。

往上取:单张图中标定板越大,对畸变的约束越强,需要的图像越少。但板太大会带来两个问题:一是倾斜时整板可见类图案(棋盘格、圆点)容易出画;二是景深。倾斜 45° 时,宽 180 mm 的图案在深度方向会跨越约 180 × sin45° ≈ 127 mm,即工作距离前后各约 64 mm,镜头景深必须覆盖这个范围。景深不够时,可以适当缩小光圈并在标定前锁定,或减小倾斜角,或选小一号的板。

本例选择图案区约 180 × 132 mm,约占视场的 64% × 56%。

视场很大(米级以上)时,标定板会变得又大又重。可以选择允许部分可见的 ChArUco 或 AprilGrid,用较小的板多拍几张覆盖全场,或者采用大视场一次标定系统。视场很小(几十毫米甚至更小)时,方格往往只有一两毫米乃至零点几毫米,需要玻璃或陶瓷等能做精细图案的基材,见标定板基材怎么选。

顺便估算一下景深

工作距离远大于焦距时,景深可以用近似公式估算:

景深 ≈ 2 × F 数 × 容许弥散圆 × (工作距离 / 焦距)²

容许弥散圆取 2 个像元(6.9 µm)、光圈 F8 时,本例景深约 2 × 8 × 0.0069 × (400 / 12)² ≈ 123 mm,与倾斜 45° 时需要的 127 mm 相当;如果要求更严格、弥散圆取 1 个像元,景深只有约 61 mm,就需要减小倾斜角或换小一号的板。继续缩小光圈可以增加景深,但衍射模糊也会随之增大、图像变暗,需要在两者之间取舍。这个估算只用于判断量级,最终以实拍时板的远近两端是否都清晰为准。

第四步:定方格尺寸

下限:最不利姿态下也要看得清

方格的像素数在两种情况下最小:拍摄距离最远时,以及标定板倾斜导致方格在一个方向上被压缩时。

  • 最远距离:400 × 1.2 = 480 mm,此时物方分辨率约 8.7 × 400 / 480 ≈ 7.25 px/mm;
  • 倾斜 45°:压缩方向再乘以 cos45° ≈ 0.71,得到约 5.1 px/mm;
  • 方格至少 20 px:20 / 5.1 ≈ 3.9 mm。

也就是说,本例方格不应小于 4 mm。

上限:特征点不能太少

方格太大,每张图的角点太少,对畸变的约束变弱,靠近板边缘的区域也覆盖不到。经验上,图案短边方向安排 7–12 个方格比较合适:本例短边 132 mm,对应方格约 11–19 mm。

取值与核对

本例取 12 mm:

  • 正常姿态下每个方格约 12 × 8.7 ≈ 104 px;
  • 最不利姿态下约 12 × 5.1 ≈ 61 px,满足至少 15–20 px 的要求;
  • 15 × 11 个方格,共 14 × 10 = 140 个内角点。

方格较大时,对离焦和运动模糊的容忍度也更高,因此在满足数量要求的前提下,不必刻意把方格做到最小。

方格太小为什么会检测不稳?

棋盘格检测通常要先把图像二值化、分割出一个个黑色方块,再把它们组织成网格。方格只有十来个像素时,镜头的模糊、轻微离焦和图像噪声就足以让相邻方块在角点处“粘连”或“断开”,分割随之失败。即使检测成功,亚像素细化所用的窗口也会碰到相邻的角点或边缘,精度下降。此外,方格越小,印刷边缘的毛刺、镜头分辨率不足等问题占比越大。因此下限要按最不利姿态来算,而不是按正对相机时来算。

第五步:ChArUco 标记与 AprilGrid tag 的核对

ChArUco 标记由数据位加一圈黑边组成:5X5 字典的标记在边长方向共有 5 + 2 = 7 个编码位(bit)。

  • 每个 bit 的尺寸 = 标记边长 / (字典位数 + 2)

本例标记边长取方格的 0.75 倍,即 9 mm,则每个 bit 约 1.29 mm:正常姿态下约 11 px,最不利姿态下约 6.6 px,满足每个 bit 至少 3–5 px 的经验要求。15 × 11 的板共有 82 个标记,选用 DICT_5X5_100 即可覆盖。

AprilGrid 的 tag 由 6×6 数据位加两圈黑边组成,边长方向共 10 个 bit:每个 bit = tag 边长 / 10。若改用 AprilGrid,tag 边长取 20 mm 时每个 bit 为 2 mm,最不利姿态下约 10 px。

圆点阵列可以按类似思路取圆心距;圆直径一般取圆心距的一半左右,并保证最不利姿态下直径仍有十几个像素以上(经验值)。

算例结果汇总

项目 结果
视场 约 282 × 236 mm
物方分辨率 约 8.7 px/mm
图案类型 ChArUco,15 × 11 方格
方格 / 标记边长 12 mm / 9 mm,字典 DICT_5X5_100
图案区 / 板外形 180 × 132 mm / 约 192 × 144 mm(四周各留 6 mm)
方格像素数 正常约 104 px,最不利约 61 px
标记每 bit 像素数 正常约 11 px,最不利约 6.6 px

如果改用普通棋盘格,可以取 15 × 10 个方格:行列奇偶不同,方向可判定。

几个常见疑问

板比视场还大可以吗? 对 ChArUco 和 AprilGrid 可以,部分可见的图像同样有效,还能把角点推到画面边缘。棋盘格和圆点阵列一般要求整板可见,不适合。

板太小会怎样? 单张图覆盖范围小,需要拍更多图才能覆盖边角;同时板本身的透视变化弱,焦距与距离更难区分,焦距的不确定度会增大。

双目或多相机怎么定? 对每台相机分别计算,方格下限按分辨率最低、视场最大的那台取,板的大小则要保证它能同时出现在相机的共视区内,并且在共视区里仍有倾斜和移动的余地。基线较长、共视区较窄时,板不宜过大。

工作距离变化很大怎么办? 标定数据应覆盖实际的距离范围,并在中间距离对焦。如果远近两端的成像尺度相差很大,一块板难以兼顾,可以分别用两种尺寸的板采集。OpenCV 的 calibrateCamera 允许每张图使用不同的三维点集,两组数据可以放在一起标定。

用打印机先试一下? 可以用在线图案生成器按上述参数生成图案,打印后贴在平整的硬板上试拍,确认检测效果后再订制正式的标定板。注意打印时选择 100% 实际尺寸,并用尺子核对比例。

需要帮您选标定板?

把相机分辨率、像元尺寸、焦距、工作距离和应用场景告诉我们,我们给出图案、尺寸与基材建议。