尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

工业相机与镜头选型实战指南:精度需求与几何约束的计算

工业相机与镜头选型实战指南:精度需求与几何约束的计算 这些年做机器视觉项目隔三差五就会碰到客户拿着需求来问“帮我看看这个检测能不能做相机和镜头该怎么选”说实话工业相机和镜头选型这件事看着简单真正落地的时候坑特别多。分辨率选高了帧率跟不上镜头靶面选小了边缘发黑算好了视野结果工作距离不够装不下这些问题我在现场都踩过。这篇内容就把我平时做选型时的一些思路和完整计算过程拿出来聊聊各位不管是刚开始接触还是已经在项目里踩过坑的应该都能找到点有用的东西。工业相机和镜头的选型不是拍脑袋选个高像素就完事它是一整套从需求推导到参数验证的流程。核心无非是三件事看清测量或检测的精度要求算准光学成像的几何关系再匹配好相机与镜头的接口和信号协议。如果这三样都对齐了项目大概率能稳只要有一环马虎后面调试的时候就会反复折腾。1. 拆解选型背后的两个核心变量可能有人觉得选型嘛不就是看分辨率吗像素数选得越高越清晰。我刚开始也是这么想的后来实际做过几个项目才明白选型真正要关注两个底层变量一个是精度需求另一个是物理几何约束。这两者决定了相机的芯片选多大、镜头焦距用多少跟像素数量并没有直接关系。1.1 精度需求先搞清楚你要看清楚多小的东西在选任何硬件之前第一步永远是回到检测需求本身也就是你最小要看清楚的特征尺寸是多少。举个例子如果我们要检测一个工件表面的划痕划痕宽度是0.1mm那意味着图像上至少要有几个像素来覆盖这个0.1mm的物理宽度才能让算法稳定识别出来。通常我们按一个特征占3到5个像素来估算最稳妥的情况是让物理精度达到0.02到0.03mm每个像素。这个从物理尺寸到像素尺寸的换算直接决定了整个系统的分辨率。很多人在这里会犯一个错误就是觉得分辨率越高越好直接上2000万像素的相机。但传感器分辨率高了之后数据量大、帧率降低而且镜头分辨率和靶面尺寸也要跟着换整套成本立刻翻倍。所以正确的做法是反过来的先计算需要多大的分辨率再反推选择合适的产品而不是盲目追求高像素。1.2 物理几何约束工作距离和视野是硬条件第二个变量是现场的安装空间和拍摄范围。同样一个被测物体如果允许相机离得远那长焦镜头合适如果设备结构紧凑相机只能近距离装着那视野范围就会受限。很多项目里设备结构已经定死了相机的安装位置和能用的接线空间都有限这时候就必须在有限的空间里去反算镜头参数。视野FOV是指相机拍到的实际物理范围宽度它跟工作距离、镜头焦距、相机靶面尺寸四者之间有一个固定的几何关系。实际项目里往往先确定视野大小和工作距离再去算焦距。而焦距一旦选定能买的镜头型号范围也就基本确定了。2. 相机和镜头的参数到底怎么看参数表看起来都差不多其实每一项背后都对应着实际成像效果的差异。我把平时选型时真正会用到的参数摘出来一个一个说清楚它控制的是什么、选不好会有什么后果。2.1 传感器尺寸与像元尺寸决定视野和感光能力的底座传感器尺寸也叫靶面尺寸是相机里最基础也最容易被忽略的参数。常见的工业相机靶面有1/4英寸、1/3英寸、1/2英寸、2/3英寸、1英寸等这个数值并不是真实的对角线长度而是沿用了早期摄像管时代的命名习惯实际使用时我们要去看具体的长宽毫米数。比如常见的2/3英寸传感器实际宽度大约6.6mm1英寸的则是12.8mm左右。靶面尺寸决定了同样焦距的镜头能拍多大的视野同时也决定了镜头能否覆盖整个传感器。老是有人在这踩坑以为是接口一样就能用结果镜头装上去画面四周发暗或者干脆是黑角就是镜头的光学像场小于相机靶面导致的。像元尺寸则是传感器上每个像素的实际物理大小它直接影响相机的感光能力和分辨率极限。像元越大单个像素的进光量越多在低照度下的表现就越好但像元大了同样靶面尺寸下的分辨率就会变低。选型时像元尺寸不能小到接近镜头的光学分辨率极限否则拍出来的图怎么调都不锐利。2.2 分辨率与帧率一对需要平衡的对手分辨率指的是相机传感器的像素阵列数量比如500万像素是2592x1944。它决定了图像的细节丰富程度但同时也直接影响了几个连锁反应数据量变大、传输带宽要求变高、处理端的CPU/GPU压力增大。帧率则是每秒能采集的图像数量单位是FPS。它跟运动速度直接相关如果检测的物体在运动就需要考虑曝光时间内物体移动的距离不能超过一个像素对应物理尺寸的容忍度。这时你就能理解为什么低分辨率高速相机在流水线上那么常见——因为像素少才能跑得快。有时候商家标称的帧率是在特定条件下测出来的实际操作中如果不注意可能会出现帧率不达标的状况。选型的时候要留出至少20%的余量因为实际场景中曝光时间、触发延迟、传输开销都会吃掉一部分帧率。2.3 接口类型传输带宽和供电方式的老大难工业相机接口目前主流有USB3.0、GigE千兆网、Camera Link、CoaXPress等。USB3.0带宽在理论5Gbps左右实际有效带宽约3.2Gbps适合中低分辨率应用优点是即插即用、方便调试。GigE千兆网的带宽只有1Gbps但网线可以拉很长适合分布式安装的场景。Camera Link和CoaXPress则是高分辨率高速场景的常客但这些接口通常需要配专门的采集卡成本会明显上升。选接口的时候要结合项目的实际通信距离和上位机软件架构来考虑。很多项目现场无人值守调试的时候用USB3.0方便但实际部署在远端时网口更稳妥。还有一种情况是工控机空间小没有足够的接口资源这时就要提前规划好采集卡的选型别等设备到了现场才发现装不上。2.4 镜头关键参数焦距、光圈、景深、畸变镜头这块焦距直接决定成像视角也就是拍多大范围。焦距短视野广能看到更多场景焦距长视野窄能把远处细节拉近。但视野和分辨率要一起看焦距太长导致视野不够那检测区域可能都覆盖不全。光圈是镜头上控制进光量的机构用F值表示数值越小光圈越大进光越多但景深越浅。景深是指能在像面上清晰成像的物理距离范围光圈越大景深越浅大光圈下稍微偏离对焦平面就会模糊。在工业现场做检测时如果物体在传送带上有高度波动那景深太浅会让部分区域虚焦算法提取特征会非常费力。所以我个人的经验是在光线允许的前提下尽量不要把光圈开到最大适当收缩一到两档能获得更高的稳定性和更大的景深。畸变是另外一个容易忽略的参数。镜头在成像时画面边缘会出现桶形或枕形畸变。做一般的外观检测时畸变的影响不算大可如果是做尺寸测量畸变会造成边缘位置的偏移从而直接影响测量精度。这时候就需要挑选低畸变镜头或者干脆用远心镜头。远心镜头的特点是光线近似平行入射在一定工作距离范围内放大倍率不变畸变极低是做精密测量的首选。3. 选型计算从需求反推参数值选型计算是整个流程里最枯燥但也最关键的一环。只要公式和单位搞清楚了预算、选型、后续安装基本都不会有大的偏差。我平时做选型时通常按下面几个步骤走一遍。3.1 第一步确定精度需求和相机最少分辨率举个例子假设要检测一个产品的外壳尺寸产品最大尺寸是30mm x 20mm检测精度要求是±0.05mm。为了稳定我一般按3个像素覆盖最小特征来算也就是说一个像素对应的物理尺寸至少要达到0.05mm / 3 ≈ 0.017mm。那么相机传感器上最少需要的像素数是多少呢水平方向需要30mm / 0.017mm ≈ 1765像素垂直方向需要20mm / 0.017mm ≈ 1176像素。这时再看实际情况留一些余量比如希望覆盖面稍微大一点或者让算法判断更可靠一些就可以把单像素物理尺寸定为0.015mm于是水平方向就需要2000像素垂直方向1334像素。这样一算500万像素2592x1944的相机就基本够用了。这里我多说一句留余量不是盲目放大而是考虑到装配误差、震动、光照不均匀等因素对成像质量的影响。很多项目用分辨率刚刚好的相机在现场稍微一调就发现边缘定位不稳定就是因为没留足余量。3.2 第二步确定视野和工作距离反推镜头焦距镜头的焦距计算依赖于一个简单的关系式靶面尺寸 / 视野宽度 焦距 / 工作距离。把刚才的例子继续延伸相机靶面宽度是6.6mm2/3英寸我们想让相机在400mm的工作距离上拍到至少40mm宽的视野。那焦距就是6.6mm x 400mm / 40mm 66mm。这时就得考虑市面上的镜头焦距通常是定焦的标准选择有50mm、75mm等所以要么调整工作距离要么调整视野大小选择一个最接近的实际可用参数。假如选了50mm定焦镜头那实际工作距离和视野的关系就要重新计算。通过公式反推工作距离400mm时视野宽度就变成6.6mm x 400mm / 50mm 52.8mm足够覆盖40mm的视野。但要注意视野放大之后原本计算的像素精度是0.015mm/像素现在单像素对应的物理尺寸变成了52.8mm / 2592 ≈ 0.02mm精度就下降了一点点。虽然在±0.05mm的精度要求下还够用但如果精度再苛刻一些就得换更大靶面的相机或者换更匹配的镜头。3.3 第三步核对镜头像面尺寸与相机靶面的匹配镜头都有一个最大适用像面尺寸比如有些C接口镜头只能覆盖1/2.5英寸的靶面你非要装在1/1.8英寸的相机上成像圆就盖不住传感器画面四周就会发暗甚至全黑。这个匹配关系一定要在选型表上提前确认别等装上去了才发现。常见的情况是相机端选择的靶面较大但镜头端的标称像面较小。稳妥的做法是让镜头的像面尺寸等于或大于相机靶面尺寸。像面过大的镜头可以用在小靶面相机上只是会浪费一部分视野而像面太小的镜头配大靶面相机会出现严重暗角。不要觉得这个问题低级我在现场见过不少工程师被这种问题折腾了一下午。3.4 第四步运动场景下的帧率和曝光时间校验如果被拍摄物体在运动那还要额外算一下运动模糊。假设传送带速度是100mm/s单像素对应的物理尺寸是0.02mm那在曝光时间内物体移动的距离就不能超过0.02mm。这样一算曝光时间最多不能超过0.02mm / 100mm/s 0.0002秒也就是200微秒。这个曝光时间下如果没有足够强的光源画面就会非常暗所以又得回到光源选型的问题。这时可以用频闪光源来配合在相机曝光的那一瞬间发出高亮光这样既保证了曝光时间短又保证了画面亮度。说白了选型是一个多变量互相制约的过程不是看表格挑最大数字就完事每一个参数变化都会引发一连串连锁反应。4. 结合热搜词聊聊几个常被问到的实际问题搜相关参数的时候经常会看到有人在问一些具体问题比如“工业相机如何看芯片方向”、“海康工业相机未收到触发信号”、“沙姆镜头标定”、“像方远心镜头光学总长较长”等等。这些词反映了大家在选型、安装、调试中的高频痛点我这里挑几个展开说说。4.1 工业相机如何看芯片方向安装工业相机时经常需要确认传感器芯片的水平和垂直方向是否与设备的运动方向一致。这里有个很简单的方法拿一个已知方向的物体比如一把尺子放在视野里然后旋转相机或者在软件里查看图像的坐标方向确认水平移动物体时图像中对应的像素是沿x轴还是y轴移动。调试时注意别只看图像是否正向还要留意是否需要通过软件做镜像或旋转。CCD和CMOS的安装朝向在某些相机上会有差异严谨起见还是实测一遍。4.2 海康工业相机未收到触发信号这类问题在现场特别多一般排查顺序是先用IO卡或者信号发生器给相机一个外部硬触发信号看能不能触发再用SDK内部的软触发命令测试最后再查线路和电平标准。很多情况其实是触发电平给反了或者共地没做好导致相机没有收到有效边沿。我自己的经验是先排除软件触发是否正常再怀疑线路问题顺序不能反否则会浪费大量时间。4.3 沙姆镜头与像方远心镜头沙姆镜头主要是为了解决斜面成像的清晰度问题。普通镜头对斜面拍摄时因为物距不一样很难让整个斜面都清晰。沙姆镜头的光路经过专门设计可以让焦平面与物体表面倾斜对齐从而在斜拍时也能得到全画面清晰的图像。这个在激光三角测量、3D检测中有时候会用到。像方远心镜头则是将光路设计成光线从镜头出射后近似平行这样在安装时对相机芯片位置的误差容忍度就大大提高了。但这类镜头的光学总长通常比较长这让很多设备的紧凑布局变得很困难。选用远心镜头前一定要先评估好设备里有没有足够的空间别把机械结构设计完了再发现镜头塞不进去。4.4 从软件角度理解选型评估板、参数和调试工具的联动搜索词汇里出现了“评估板选型”、“xilinx的选型手册”这类词说明不少人是基于嵌入式平台做视觉方案的。这里就涉及到相机接口和采集卡或者开发板的协同选型。用FPGA平台做视觉处理时一定要确认相机的输出协议是哪种比如MIPI、LVDS还是GigE再去看评估板是否支持对应的接口。经常看到有人开发板选好了结果发现相机接口不匹配只好转接或者重新选型耗时耗力。与之相关的还有软件参数设置。很多人问“机器视觉开闭运算参数原理”这类问题其实就是做图像预处理时的形态学操作参数。开运算用于消除小噪点、闭运算用于填充小空洞核的大小和形状直接决定处理效果。在选型阶段对图像质量的要求也决定了后期算法处理时的难易程度镜头和光源选得好后期算法负担小很多。5. 常见问题与排查技巧实录实际项目中最容易出问题的往往不是选型计算那一步而是跑到现场后发现成像不正常。下面这些是我在不同项目里反复遇到过的典型问题整理成一张速查表方便大家排查。症状可能原因排查方向画面全黑或全白曝光时间设置错误、光圈没打开、触发信号异常先调大曝光时间确认镜头盖已摘掉再检查触发模式画面四周暗角镜头像面尺寸小于相机靶面看镜头标称的像面直径是否覆盖传感器必要时换镜头图像模糊、有拖影曝光时间太长、对焦不准、物体运动速度过快调整曝光时间重新对焦必要时用频闪光源边缘波浪形畸变镜头畸变大测量场景未考虑畸变校正换低畸变镜头或者通过标定做校正触发不响应接线错误、共地问题、触发电平极性错误用软触发先验证相机再排查硬触发线路帧率达不到标称值带宽不足、曝光时间过长、传输协议配置不对检查网卡速率、网线规格调整包大小和曝光参数5.1 现场成像不清晰的排查顺序如果现场拍出来的图怎么调都觉得软不要急着怪相机。按我的习惯先看光源是否均匀再看镜头光圈是否过大、是否跑焦最后检查相机软件里的增益设置是不是过高。有一回项目上图像噪点特别大死活找不到原因最后发现是正好有个大功率设备在附近产生了电磁干扰电源线重新走了一遍就没事了。这类环境问题往往比参数问题更难排查所以要有一点耐心。5.2 多相机项目的接线和同步问题有些项目需要多台相机从不同角度拍摄同一个物体这时就涉及到同步触发的问题。最简单的方案是采用同一个信号源给所有相机发触发信号并且确保线路阻抗和电平一致。如果相机之间还要保证严格的曝光同时性那就得用支持硬件同步的采集卡或者专用触发控制器。这里有个容易忽略的点多台相机接同一个触发源时如果线缆长度差异较大会让各相机接收到信号的时间不同导致拍摄时机不一致严重的会造成图像错位。5.3 软件层面的参数调试技巧在做机器视觉算法调试时除了硬件选型软件参数也很关键。比如图像预处理时的二值化阈值、开闭运算的卷积核大小、边缘检测的阈值梯度等这些都直接影响检测结果的稳定性。我的建议是不要一开始就追求完美参数而是先用一份较宽松的参数跑通流程再逐步收紧这样每步出现的问题都能定位出来。6. 聊聊品牌与产品的选择思路热搜词里出现了Basler、海康威视等品牌这里说下我的看法。工业相机品牌之间的差异其实不只是参数表上的数字更主要的是SDK的易用性、驱动稳定性、售后技术支持和生态兼容性。Basler是传统老牌厂商文档完善、Pylon SDK比较稳定在欧美项目里用得很多兼容性做得不错。海康威视作为国产品牌最近几年在机器视觉领域的进步很快产品线丰富而且他的MVS软件和SDK也比较成熟在国内的供货和技术响应速度往往更有优势。选品牌的时候除了看参数还要考虑到团队本身的技术栈。如果团队熟悉某个品牌的SDK就不要轻易换否则光是驱动和接口的适配就需要花掉不少时间。另一个要考虑的点是项目部署现场的维护难度大品牌的售后支持、备件供应在长时间运行中会体现价值这一点做设备出口的项目时尤其明显。实际选型时我通常会根据项目预算、交期、技术服务响应速度、团队技术积累这几个维度综合评估而不是只看某一款相机的单页参数。没有最好的品牌只有最适合当前项目的选择。7. 一个完整选型案例的复盘最后分享一个我几个月前做的实际项目把整个选型流程串一遍。当时客户要检测一批金属垫片的外径尺寸公差范围是±0.1mm垫片最大直径是20mm。在产线上垫片在转盘上匀速转动设备结构已经确定了相机安装位置工作距离大约是100mm。按照之前的公式算一遍先定精度公差±0.1mm按3像素覆盖最小公差带得到单像素物理尺寸约0.033mm但稳妥起见我希望单像素做到0.025mm左右。那拍摄20mm直径的垫片视野至少需要30mm也就是要留一些余量。水平方向需要的像素就是30mm / 0.025mm 1200像素垂直方向因为是圆形所以至少也是1200像素。于是选择200万像素级别的相机就够用了。镜头焦距那一步需要知道选定的相机靶面尺寸。我选的是1/2英寸靶面的相机宽度约6.4mm工作距离100mm视野30mm那么焦距就是6.4mm x 100mm / 30mm ≈ 21.3mm。常规镜头焦距有16mm和25mm我选了25mm但这时实际工作距离下的视野会变成6.4mm x 100mm / 25mm 25.6mm。这个视野刚好比垫片直径20mm大了约5.6mm看起来够用但余量有点小。为了让视野再宽一点我把工作距离稍微调整到120mm重新算就是6.4mm x 120mm / 25mm 30.72mm这样视野余量就比较理想了。镜头选型上因为要做尺寸测量畸变不能太大所以我选了一款低畸变的定焦镜头。相机端考虑到圆检测需要稳定抓拍选了全局快门CMOS传感器型号是某品牌300万像素GB口既能传输足够图像数据又兼容现有交换机网络。整个选型过程复盘下来最关键的几个决策就是把精度需求先量化再从几何约束反推焦距最后校验视野余量和畸变控制。一套选型下来预算也没有超出客户预期后续安装调试相对顺利。这中间最值得分享的经验就是先盯住需求中的最小特征和公差再去套公式永远不要先选相机再定需求。最后再说一个小技巧平时做选型的时候可以给每个可能用到的方案建立一个对照表把相机型号、镜头型号、工作距离、视野、单像素精度、预计成本这些关键项列出来。方案多了之后这个表能帮你快速排除不适合的选项也方便跟同事或客户沟通。这个习惯帮我省下了很多反复计算和沟通的时间。
返回列表