做机器视觉项目这几年,被问最多的不是算法怎么做,而是“相机到底怎么选”。尤其新入行的朋友,上来第一句常常是“推荐一个500万像素的工业相机”,好像分辨率选够就万事大吉。实际做过现场项目就会知道,分辨率、帧率、像元尺寸、靶面、镜头、接口、光源、触发方式是一整条链路,任何一环不匹配都会让项目多走弯路。
这篇文章不列那种“XX万像素=多少钱”的配置表,我直接按工业相机选型的真实顺序,把分辨率、帧率、像元尺寸与接口这几个高频核心参数逐个讲透。不管你是给自动化产线找视觉方案,还是准备入行机器视觉,只要照着这几个步骤和公式捋一遍,至少不会犯低级错误。
1. 选型第一步:先别打开相机参数表,先量化场景需求
1.1 用“最小检测特征 + 视野”定出分辨率底线
很多人选型是先翻相机型号,看哪个分辨率大、价格合适就下单。这个顺序是错的。正确做法是先回答三个问题:你需要看多大的视野?你要检出的最小特征是多少?现场的物理空间和光线条件是什么?
视野,也就是FOV,不能只按产品大小来定。我一般会留出安全余量,让产品在运动过程中不会跑出图像,通常四周再加10%到20%的边距。假设产品长40mm宽30mm,那视野放在50mm×40mm附近会舒服很多,而不是刚好卡在30×40。
最小检测特征不是“想当然觉得0.01mm没问题”,而是要去跟工艺或客户确认。比如表面划痕,宽度0.05mm是不是必须稳定检出?如果漏检会造成什么后果?这个数值直接决定你要选多少像素。
在视觉检测里,一个特征要能被算法稳定识别,通常至少要覆盖2到3个像素。如果只是判断有还是没有,2.5个像素勉强能做;但如果后续还要测量、定位或做二维码读取,我建议至少3到5个像素。道理很简单,特征尺寸越接近单像素,灰度过渡就越不清晰,受噪声和照明波动的影响也越明显。
举个例子:视野宽度60mm,最小特征0.05mm,要求最小特征覆盖3个像素。那么单个像素对应的物理尺寸就是0.05除以3,约0.0167mm。横向需要的像素数就是60除以0.0167,约3600像素。如果视野高度45mm,竖向对应的像素需求就是2700左右。所以500万像素的2448×2048根本不够,得看1200万像素及以上。
这一步做完,你的相机分辨率下限其实已经定死了,后面再谈帧率和接口才有意义。
1.2 用“节拍 + 运动速度”约束帧率
很多项目卡在相机标称帧率很高,但实际产线一开,发现画面拖影严重,或者采集软件根本跟不上。原因是帧率不是独立存在的,它和你的产线节拍、运动速度、曝光时间全部耦合在一起。
先算节拍需求。如果产线是每分钟60件,每件需要拍一张图,那相机最低需要1fps,听起来很低。但实际现场不可能卡得这么死,触发抖动、PLC时序、机构停顿都会影响,所以至少要乘以1.5到2倍的冗余。如果以后产线还要提速,冗余倍数还要再放大。
如果是连续运动下飞拍,那就要算曝光时间。假设视觉系统单像素对应的物理尺寸是0.02mm/px,我们允许曝光时间内物体在运动方向上的位移不超过0.5个像素,也就是0.01mm。如果产品运动速度是200mm/s,那么曝光时间必须小于0.01除以200,也就是50微秒。这种曝光量下,你必须有足够强的光源,否则图像会非常暗。
所以我常说,帧率解决的是“拍得过来吗”,曝光时间解决的是“拍得清楚吗”。两者不是一回事。
1.3 现场环境会偷偷改变你的选型
同样一款相机,在实验室和车间现场的表现可能完全不同。
如果安装距离很短,工作距离受限制,镜头焦距就会比较短,视野和物距的关系会变得更敏感。如果现场粉尘大、温度高、振动明显,还需要考虑工业级外壳、散热和抗振等级。再看看你需要的是彩色还是黑白:大部分缺陷检测用黑白就够了,黑白图像没有拜耳阵列插值问题,同等条件下细节还原反而更好。
还有一个经常被忽略的点:如果被检物在运动中本身会有旋转、翻转,那要优先选择全局快门CMOS,而不是卷帘快门。卷帘快门在拍快速运动的物体时会产生果冻效应,同一个产品不同部分可能处于不同位置,后续测量和定位都会出问题。
做完这些需求梳理,你心里其实已经有了一个“理想相机”的轮廓,后面看参数不用再被销售带节奏。
2. 分辨率怎么算才靠谱:像素并非越多越好
2.1 分辨率、精度和最小特征要区分开
参数表上的分辨率只是传感器横向和纵向的像素数量。但实际谈检测能力时,我们要看的是“像素物理尺寸”,也就是每个像素对应到视野里的实际大小。
公式很简单:
像素物理尺寸 = 视野尺寸 / 对应方向的像素数量
如果视野宽度是50mm,相机横向是2448个像素,那每个像素约等于0.0204mm。一个0.05mm的缺陷在这个系统里只能覆盖约2.45个像素,属于有点悬的状态。如果下一步换用1200万像素相机,横向像素变成4024,像素物理尺寸就降到0.0124mm,同样0.05mm的缺陷可以覆盖约4个像素,稳定度立刻不一样。