
选型计算例题一PCB 字符识别的相机镜头选型上篇把同一工位的像圈、接口、奈奎斯特那些匹配项勾完了。缺口检测那套 48×40、f35、WD≈234 的数可以先搁一边——今天换一道全新的例题PCB 丝印字符识别。现场挺常见料号、日期码印在阻焊上白字或者浅灰字底下还透着铜皮反光。客户甩过来一句“能读出来就行”光学这边得自己把视野、像素、焦距算死不然装机那天算法同事会先来问你字怎么糊成一团我以前踩过一次按字高估像素看着挺富裕上线却总把细笔画读成噪声。拆开一算字高方向二三十个像素有了笔画方向才刚过三个——OCR 吃的是笔画不是外接矩形。下面就按一条完整链路走需求拆开 → 分辨率 → 相机 → 倍率焦距工作距离 → 景深衍射粗核 → 回头复核。先把需求拆成能算的数别一上来翻样册。先问清四件事看哪一块、字多大、笔画多细、机架上方还能留多高。这道例题我按本地丝印区来设——不是整板是料号加日期码那一小块视野 60×50 mm。纵横比大约 1.2跟后面那颗 2448×2048 靶面差不多两边倍率不会拧着来。字高取 1.2 mm笔画宽 0.18 mm细丝印很常见。OCR 我习惯两道门槛一起卡字高方向至少 24 像素笔画方向至少 4 像素。再乘个余量 k≈1.35给边缘畸变、定位公差、板子放偏留一点肉。机械这边假设顶部相机灯和夹具占掉一截物面到镜头主面大约能留 200 mm 量级的净空——后面算焦距会用到装不上再改。分辨率哪一路先咬死物方分辨率 δ 就是“一个像素对应多少毫米”。两路各算一个上限取更严的那个δchar1.2240.050 mm/px \delta_{\mathrm{char}}\frac{1.2}{24}0.050\,\mathrm{mm/px}δchar241.20.050mm/pxδstroke0.1840.045 mm/px \delta_{\mathrm{stroke}}\frac{0.18}{4}0.045\,\mathrm{mm/px}δstroke40.180.045mm/px笔画这路更紧δ 按 0.045 mm/px 往下走。若有人只按字高 0.050 去选型笔画落到传感器上只剩0.18/0.0503.6 px 0.18/0.0503.6\,\mathrm{px}0.18/0.0503.6px不到 4现场再叠加一点虚焦和铜皮反光细笔画直接糊进背景。这就是我开头说的那个坑——字高像素和笔画像素不是一回事OCR 选型必须两路都过。有了 δ视野除回去就是裸分辨率再乘 kNh600.045×1.35≈1800,Nv500.045×1.35≈1500 N_h\frac{60}{0.045}\times1.35\approx1800,\quad N_v\frac{50}{0.045}\times1.35\approx1500Nh0.04560×1.35≈1800,Nv0.04550×1.35≈1500也就是相机至少得提供大约 1800×1500 有效像素。市面常见的500 万、2448×2048、像元 3.45 µm、2/3 靶面两边都盖得住库存也熟就定它。靶面尺寸8.4456×7.0656 mm 8.4456\times7.0656\,\mathrm{mm}8.4456×7.0656mm装上之后实际 δδh60/2448≈0.0245 mm/px \delta_h60/2448\approx0.0245\,\mathrm{mm/px}δh60/2448≈0.0245mm/px字高大约 49 像素笔画大约 7.3 像素两道门槛都留了余量。比“刚好 24 / 4”舒服得多——丝印对比度本来就不稳像素账宜松不宜贴边。倍率、焦距、工作距离放大倍率还是老规矩靶面除以视野βsensorFOV \beta\frac{\mathrm{sensor}}{\mathrm{FOV}}βFOVsensor水平 β≈8.45/60≈0.141垂直 7.07/50≈0.141两边几乎一样省心。精确焦距用fWD⋅β1βWD⋅sensorFOVsensor f\frac{\mathrm{WD}\cdot\beta}{1\beta}\frac{\mathrm{WD}\cdot\mathrm{sensor}}{\mathrm{FOV}\mathrm{sensor}}f1βWD⋅βFOVsensorWD⋅sensor先按假设 WD200 mm 代入两边算出来大约 24.7 mm。库房没有 24.7靠近的常用规格是25 mm。要维持 60×50 的视野25 mm 反推工作距离大约 202 mm水平 202.6、垂直 201.9取整按 202。跟原先估的 200 只差一截螺丝行程支架微调一下就行。要是机械死守 200 mm 不动、硬上 25 mm视野会收到大约 59.1×49.5 mm——丝印区如果本来就顶满 60×50靠边那几个字符容易蹭到畸变区和照度不均的地方。OCR 对边缘形变比对缺口检测敏感我更愿意把 WD 收到约 202把视野留足而不是事后靠软件裁。顺手对比两档同样 60 mm 水平视野16 mm 大约只要 WD≈130 mm灯和相机抢空间35 mm 要到约 284 mm机架又得加高。这道题上 25 mm 比较老实。还有个口算坑值得提一句。有人用近似f≈WD⋅βf\approx\mathrm{WD}\cdot\betaf≈WD⋅β200×0.141≈28.2 mm跟精确的 24.7 差大约 14%——差不多就是 β 本身。β 到 0.14 这一档近似已经会把镜头选飞一档还是走精确式。景深和衍射顺手粗核镜头光圈别只顾着“关小一点更清楚”。工作 F 数Fw(1β)F F_w(1\beta)FFw(1β)F取常用 F4β≈0.141则 Fw≈4.56。艾里斑Airy≈2.44⋅λ⋅Fw \mathrm{Airy}\approx2.44\cdot\lambda\cdot F_wAiry≈2.44⋅λ⋅Fwλ 按 0.55 µm算下来大约 6.1 µm合 1.8 个像元还在“大约 2 像元”那条线里边。拧到 F5.6艾里斑大约 8.6 µm约 2.5 像元细笔画先被衍射磨掉OCR 比缺口检测更早喊疼。景深近似DOF≈2 Fw cβ2 \mathrm{DOF}\approx\frac{2\,F_w\,c}{\beta^{2}}DOF≈β22Fwc容许弥散圆 c 取 2 个像元约 0.0069 mmF4 下 DOF 大约 3.2 mm。PCB 翘曲加治具公差常见就在 ±1 mm 量级3 mm 出头的景深对字符识别一般够用若板子翘得凶优先找支撑、别急着把光圈拧过 F4。铜皮反光还有个连带问题自动曝光容易被亮斑拽高字符主体反而发灰。像素预算再宽直方图挤在中间一段笔画边缘照样立不起来。所以这道例题里我把 δ 留到大约 0.0245不只是为了“数字好看”是给打光和曝光留下一点容错——现场灯一换角度少两三个笔画像素是常有的事。复核时我还会盯的几件事像素账过了不等于能读。白丝印压在铜皮上对比度本来就虚像素再多也救不了欠打光——低角度或者同轴偏振片有时要上这是光源的账今天不展开但选型评审别只写“500 万够了”。视野也不要卡太死。丝印块名义 60×50定位公差一叠字符就会蹭到画面边缘边缘照度掉、畸变大OCR 误码率往上走。我习惯视野比实际字符区再松半成到一成宁可外面多留一点阻焊别让字符贴边。跟前面塑料外壳缺口那工位比那边 FOV 48×40、缺陷按 0.10 mm 量级、镜头 35 mm、WD≈234这边是 60×50 的丝印窗、笔画 0.18 mm 咬死分辨率、镜头 25 mm、WD≈202。相机可以还是同一档 2448×2048 / 3.45 µm可是 δ、β、焦距整条链都重算过——别拿旧工位的焦距直接抄。装机后拿一块真板看实际字高和笔画各占多少像素跟表上的 49 / 7.3 对一下差得多多半是 WD 或主面没按公式那套在量。这类计算我平时用自己写的小工具核对两路 δ 和精确焦距不容易手算串位。下篇聊选型计算例题二0.01 mm 尺寸测量的远心方案。