ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

海康工业相机MVS参数调优:帧率与画质平衡的5个关键设置

海康工业相机MVS参数调优:帧率与画质平衡的5个关键设置 工业视觉项目做到一定阶段你会发现一个很现实的问题同样一台海康相机别人跑出来又稳又清晰你这边不是帧率上不去就是画面噪点压不住或者亮度一调高就过曝。很多人第一反应是相机不行其实十有八九是MVS里的参数没调明白。MVS是海康机器视觉工业相机客户端的简称它承担着相机连接、参数配置、图像预览、采集保存这一整套基础工作是工业视觉开发者每天都要打交道的工具。这篇内容围绕帧率和画质的平衡把MVS里最关键的5个设置拆开讲清楚包括曝光、增益、帧率控制、像素格式和ROI同时补充参数之间的联动逻辑和实操中容易踩的坑。不管你是刚接触工业相机的新手还是已经做过几个视觉项目但总觉得图像质量差一口气的开发者都能从里面找到可以直接抄作业的配置思路。1. 先搞清楚帧率和画质为什么总是打架1.1 帧率和画质的本质矛盾工业相机的帧率说白了就是每秒钟能输出多少张图像画质则涉及亮度、对比度、噪声、细节保留这几个维度。这两个指标之所以互相拉扯核心原因在于曝光时间和进光量之间的关系。曝光时间越长传感器接收到的光子越多图像信噪比越好暗部细节越丰富但单帧采集时间变长帧率自然被压下来。反过来想把帧率拉满就得缩短曝光时间进光量不够画面就会发暗这时候如果靠增益去补噪声又上来了。我经常用一个生活化的类比来解释这件事把相机想象成在水龙头下面接水。曝光时间就是你接水的时间接得越久水越多但你要在固定时间内接很多杯水每杯就只能接一小会儿。增益相当于把杯子里的水再兑一点浓缩液看起来量够了但水质变差了。所以帧率和画质的平衡本质上是在有限的光照条件和采集时间内找到那个让图像刚好可用的点。1.2 什么场景下该优先保帧率什么场景该优先保画质不是所有项目都需要同时追求高帧率和高画质关键看你的应用场景。产线上的高速检测比如瓶盖缺陷检测、线材表面瑕疵检测产品在视野里停留的时间可能只有几十毫秒这种场景帧率优先级最高画质只要满足缺陷可辨识就行。而静态测量类应用比如尺寸测量、字符识别产品是静止或者慢速通过的帧率要求不高这时候应该把曝光时间给足把画质拉到位。还有一种情况是运动模糊敏感的场景。即使帧率够高如果曝光时间设置不当运动中的物体依然会拖影。这时候需要根据物体运动速度和允许的模糊像素数反推最大曝光时间。公式很简单最大曝光时间等于允许模糊像素数乘以像素尺寸再除以物体运动速度。举个例子物体运动速度是200毫米每秒像素尺寸5微米允许模糊2个像素那最大曝光时间就是2乘5微米除以200毫米每秒等于50微秒。这个计算在选参数之前就应该做一遍否则后面怎么调都是白费功夫。1.3 MVS在参数链路里的位置MVS是海康工业相机的上位机客户端它直接和相机固件通信你在这里改的每一个参数最终都会写到相机的寄存器里。这意味着MVS里的设置不是软件层面的后期处理而是直接改变相机的采集行为。这一点很重要因为很多人会把MVS当成一个预览工具觉得调不好后期用软件补但工业视觉里后期能补的空间非常有限噪声和运动模糊一旦产生就是不可逆的。MVS里参数分几个大类采集控制类包括曝光、增益、帧率图像格式类包括像素格式、分辨率触发控制类包括触发模式、触发源还有ROI和Binning这些几何变换类。这五类里对帧率和画质影响最直接的就是曝光、增益、帧率控制、像素格式和ROI这五个下面逐个拆。2. 曝光时间画质的地基帧率的第一道闸2.1 曝光时间到底在控制什么曝光时间在MVS里通常叫ExposureTime单位是微秒。它控制的是传感器感光单元积累电荷的时间长度。曝光时间翻倍进光量翻倍图像亮度大约提升一倍但这不是线性的因为传感器有饱和上限超过之后就过曝了。曝光时间对帧率的影响是硬性的相机的最大帧率受限于帧周期而帧周期至少等于曝光时间加上读出时间。也就是说曝光时间设成10毫秒帧率理论上不可能超过100帧实际还要减去读出时间可能只有八九十帧。这里有个容易忽略的点很多海康相机支持曝光时间超过帧周期的设置这时候相机会自动进入长曝光模式帧率会降到曝光时间的倒数以下。比如曝光设成50毫秒帧率最多20帧。所以如果你发现帧率莫名其妙上不去第一件事就是看曝光时间是不是设大了。2.2 曝光时间的实操设置方法在MVS里设置曝光时间一般有两种模式手动模式和自动模式。手动模式下你直接填数值自动模式下相机会根据图像亮度自动调整。工业视觉项目里我强烈建议用手动模式因为自动曝光会导致帧间亮度不一致对后续的图像处理算法是灾难。自动曝光只适合那种光照条件变化大、又不需要精确测量的预览场景。手动设置曝光时间的步骤先把增益设为0然后把曝光时间从一个小值开始往上加比如从1000微秒开始观察图像亮度。目标是把图像中最亮的区域控制在灰度值200左右不要到255留一点余量防止过曝。如果加到某个值亮度还不够再考虑加增益。这个顺序不能反先加增益后加曝光噪声会先被放大后面再调曝光也压不回去。注意曝光时间不是越大越好。超过一定值之后图像亮度提升带来的信噪比改善会趋于平缓但帧率下降是线性的。找到那个亮度刚好够用的最小曝光时间才是最优解。2.3 曝光和帧率的联动计算假设你用一台海康MV-CE系列相机传感器读出时间大约是5毫秒你想跑30帧那帧周期是33.3毫秒留给曝光的时间最多是28.3毫秒。如果你把曝光设成30毫秒帧率就会掉到28帧左右。这个计算在项目初期就要做别等到现场调试才发现帧率不达标。实际操作中我习惯先确定目标帧率反推最大曝光时间然后在这个范围内找亮度合适的值。如果最大曝光时间下亮度还是不够那就只能加增益或者补光。补光是首选因为补光不引入噪声增益会。很多项目现场光照条件差与其在参数上死磕不如加一个条形光源或者环形光源效果立竿见影。3. 增益救急可以别当饭吃3.1 增益对画质的真实影响增益在MVS里叫Gain单位通常是分贝或者倍数。它的作用是把传感器输出的模拟信号或者数字信号放大。放大信号的同时噪声也被放大了。增益每增加6分贝信号和噪声都翻倍但信噪比不变所以图像看起来更亮但更脏。增益增加12分贝噪声放大4倍画质下降非常明显。海康相机的增益一般分模拟增益和数字增益。模拟增益在传感器内部完成噪声增加相对小一些数字增益是在ADC之后做的噪声放大更直接。MVS里通常可以分别设置优先用模拟增益数字增益尽量保持为0或者很小的值。3.2 增益的合理使用边界我的经验是增益在0到10分贝之间是相对安全的图像噪声增加不明显。10到18分贝之间是可用区间噪声开始可见但还能接受。超过18分贝图像质量下降就很明显了除非你的应用对噪声完全不敏感否则不建议超过这个值。有一个判断方法在MVS里打开图像把增益从0慢慢往上加同时观察暗部区域。当暗部开始出现明显的彩色噪点或者颗粒感时就说明增益到极限了。这时候应该回头去检查曝光时间是不是还能加或者考虑补光。3.3 增益和曝光的配合策略正确的顺序是先定帧率再定最大曝光时间然后在最大曝光时间下看亮度够不够。如果不够先加补光补光加不了再加增益。增益加到画质可接受的极限还不行那就只能降帧率或者换更大靶面的相机。我做过一个项目现场光照条件很差客户又不让加光源。最后是把帧率从60帧降到30帧曝光时间翻倍增益保持在6分贝画质才勉强达标。这个取舍过程需要在项目初期就和客户沟通清楚别等到验收的时候才说做不到。4. 帧率控制不只是设个数字那么简单4.1 MVS里帧率控制的几种模式MVS里的帧率控制通常有几种模式连续采集模式下的最大帧率、帧率限制模式、触发模式下的帧率。连续采集模式下相机以当前参数能跑的最大帧率输出你设的帧率限制如果高于实际能力不起作用如果低于实际能力相机会通过插入等待时间来降帧。触发模式下帧率由外部触发信号决定MVS里的帧率设置只作为保护上限。很多产线项目用光电传感器触发这时候帧率实际上是由产线速度决定的你能控制的是曝光时间和增益以及触发延迟和去抖。4.2 帧率上不去的常见原因排查帧率上不去按这个顺序排查第一看曝光时间是不是大于帧周期第二看像素格式是不是选了高比特深度的比如12位比8位数据量大帧率会低第三看ROI是不是全幅全幅读出时间最长第四看是不是开了Binning或者Decimation这些会改变读出方式第五看接口带宽是不是跑满了GigE相机千兆网理论带宽125兆字节每秒实际能用到110左右如果图像数据量超过这个帧率就会被带宽卡住。带宽的计算方法是图像宽度乘以高度乘以像素格式字节数乘以帧率。比如1920乘10808位灰度每帧约2兆字节跑60帧就是120兆字节每秒已经接近千兆网极限了。这时候要么降帧率要么开ROI要么换万兆网或者USB3.0接口的相机。4.3 触发模式和帧率的配合触发模式下帧率设置要和触发信号频率匹配。如果触发信号是50赫兹帧率上限设成60帧那实际输出就是50帧。但如果触发信号有抖动或者毛刺可能会产生误触发这时候需要在MVS里设置触发去抖时间。去抖时间设得太小毛刺还是会触发设得太大快速连续的触发会被漏掉。一般去抖时间设成触发信号最小间隔的十分之一左右比较合适。提示触发模式下如果发现丢帧先检查触发信号的电气特性再看MVS里的触发滤波设置。很多时候问题出在信号源上不在相机参数上。5. 像素格式画质和帧率的隐形开关5.1 像素格式对数据量和画质的影响像素格式决定了每个像素用多少位来描述。常见的8位灰度、10位灰度、12位灰度还有彩色相机的Bayer格式和RGB格式。位深越高灰度层次越丰富画质理论上越好但数据量也越大帧率越低带宽占用越高。8位灰度有256个灰度级对于大多数检测应用够用了。12位灰度有4096个灰度级适合高动态范围场景比如同时有强反光和暗部的金属表面检测。但12位数据量比8位多50%帧率会相应下降。而且很多图像处理库对12位图像的支持不如8位好需要先转成8位再处理转换过程又会损失信息。5.2 不同场景下的像素格式选择字符识别、二维码识别这类应用8位灰度完全够用没必要上高位深。精密测量类应用如果对灰度变化敏感可以考虑10位或12位。彩色检测比如颜色分选需要用Bayer格式或者RGB格式但彩色相机的帧率通常比同规格黑白相机低因为每个像素需要三个颜色分量。Bayer格式输出的是原始数据需要上位机做去马赛克处理这会增加CPU负担。如果上位机性能有限可以考虑在MVS里直接输出RGB让相机内部完成去马赛克但这样数据量会变成三倍帧率下降更明显。这个取舍要看上位机的处理能力和带宽余量。5.3 像素格式切换的注意事项在MVS里切换像素格式相机会重新初始化需要几秒钟时间。切换后要重新检查曝光和增益因为不同位深下同样的曝光时间图像亮度表现可能不一样。另外有些相机在切换像素格式后ROI设置会被重置需要重新配置。我踩过一个坑在一个项目里把像素格式从8位改成12位帧率从60帧掉到40帧当时没注意以为是相机故障排查了半天才发现是像素格式的问题。所以每次改完像素格式都要重新确认帧率和带宽。6. ROI和Binning用几何手段换帧率6.1 ROI如何影响帧率和画质ROI是Region of Interest的缩写意思是只读出图像中感兴趣的区域其他区域不读出。ROI越小读出时间越短帧率越高。而且ROI不改变像素尺寸画质不受影响这是它比Binning更优的地方。在MVS里设置ROI可以手动输入起始坐标和宽高也可以用鼠标在预览画面上拖拽。设置ROI之后相机的视野变小了但帧率会明显提升。比如从全幅1920乘1080改成中心960乘540像素数量变成四分之一读出时间大幅缩短帧率可能翻倍甚至更多。6.2 Binning和Decimation的取舍Binning是把相邻的几个像素电荷合并成一个像素输出相当于降低了分辨率但提高了灵敏度和信噪比。2乘2 Binning之后像素数量变成四分之一帧率提升同时因为电荷合并图像亮度增加噪声相对降低。但分辨率下降了细节丢失不适合精密测量。Decimation是抽点比如每隔一个像素取一个分辨率下降但灵敏度不增加画质不如Binning。一般能用ROI就不用Binning能用Binning就不用Decimation。ROI是纯赚帧率不损画质Binning是拿分辨率换帧率和灵敏度Decimation是拿分辨率换帧率但不改善灵敏度。6.3 ROI设置的实际操作和注意事项在MVS里设置ROI要注意ROI的起始坐标和宽高必须符合相机的对齐要求。很多相机要求ROI的起始坐标是4的倍数或者8的倍数宽高也有最小限制。如果设置不合法MVS会报错或者自动调整到最近的有效值。另外ROI设置之后镜头的视野中心可能和ROI中心不重合需要重新调整相机位置或者镜头焦距。我一般建议在项目初期就把ROI确定下来不要等到现场再调因为现场调整ROI可能意味着重新对焦和重新标定。7. 五个参数的联动调优实战流程7.1 从需求反推参数范围拿到一个项目先明确三个需求目标帧率、最小可接受画质、视野范围。目标帧率决定了最大曝光时间最小可接受画质决定了增益上限视野范围决定了ROI和镜头选型。这三个需求确定之后参数范围就基本框定了。比如一个产线检测项目目标帧率60帧最小可接受画质要求能看清0.1毫米的缺陷视野范围200毫米乘150毫米。那先算最大曝光时间帧周期16.7毫秒读出时间假设5毫秒最大曝光时间11.7毫秒。然后根据缺陷尺寸和视野算所需分辨率200毫米除以0.1毫米等于2000像素所以相机水平分辨率至少2000选2500万像素左右的相机比较合适。ROI可以设成2000乘1500帧率还能再提。7.2 参数调整的先后顺序调参顺序很重要顺序错了会反复推翻前面的设置。我的习惯是第一步设ROI把视野框到最小必要范围第二步设像素格式根据画质需求选8位还是更高第三步设帧率上限根据目标帧率填第四步调曝光时间在最大曝光时间范围内找亮度合适的值第五步如果亮度不够加增益增益从0开始慢慢加。这个顺序的逻辑是ROI和像素格式决定了数据量数据量决定了帧率上限帧率上限决定了曝光时间范围曝光时间决定了亮度亮度不够才用增益补。每一步都是在前一步的约束下做选择不会出现后面改了前面白改的情况。7.3 现场调试的快速检查清单现场调试时间紧我一般带一个检查清单按顺序过一遍检查项正常表现异常处理相机连接MVS能识别到相机预览正常检查网线、IP、驱动曝光时间小于帧周期亮度在150到200之间调整曝光或补光增益小于10分贝暗部无明显噪点降增益加曝光或补光帧率达到目标帧率波动小于5%检查带宽、ROI、像素格式像素格式满足画质需求数据量不超带宽降位深或开ROIROI覆盖检测区域帧率有提升调整ROI对齐触发触发稳定无丢帧检查触发信号和去抖这个清单过一遍大部分参数问题都能定位到。8. 常见问题排查和避坑经验8.1 帧率忽高忽低是什么原因帧率波动大常见原因有三个一是自动曝光在起作用相机会根据亮度动态调整曝光时间导致帧周期变化二是网络带宽不稳定GigE相机走网络传输网络拥塞会导致丢包重传帧率波动三是触发信号不稳定触发间隔不均匀。解决办法关掉自动曝光改手动检查网络交换机是不是专用有没有其他大流量设备用示波器看触发信号波形必要时加去抖。8.2 图像亮度不均匀怎么调亮度不均匀中间亮四周暗这是镜头暗角换镜头或者缩小光圈可以改善。如果是一侧亮一侧暗可能是光源角度问题调整光源位置。如果是随机的不均匀可能是传感器脏了用气吹清理传感器表面。MVS里有平场校正功能可以校正亮度不均匀但平场校正需要先采集一张均匀白板图像现场操作比较麻烦。如果项目对亮度均匀性要求高建议在光学和光源上解决不要依赖软件校正。8.3 高帧率下图像出现横纹怎么办高帧率下出现横纹通常是曝光时间和光源频率不同步导致的。如果用的是交流供电的光源光源亮度会有100赫兹的波动曝光时间如果和这个波动不同步就会出现横纹。解决办法是用直流光源或者把曝光时间设成光源周期的整数倍。另一个可能是相机的读出方式和光源不同步这种情况需要调整相机的读出模式或者改用全局快门相机。卷帘快门相机在高帧率下更容易出现横纹如果项目对横纹敏感选型时就要选全局快门。8.4 参数调好后换台电脑就不对了MVS里的参数是存在相机里的换电脑不影响。但如果换的是相机参数需要重新调。另外如果项目里用了MVS的配置文件换电脑后要重新加载配置文件。我一般会把调好的参数导出成文件换电脑后直接导入省得重新调。还有一个坑不同版本的MVS参数命名和范围可能不一样。比如老版本叫ExposureTime新版本可能叫ExposureTimeAbs。升级MVS版本后要重新确认参数设置。9. 参数之外的画质提升手段9.1 光源和镜头的配合参数调到头了画质还是不行就要考虑光源和镜头了。光源的均匀性、角度、颜色都会影响画质。比如检测金属表面划痕用低角度环形光比同轴光效果好因为低角度光能突出划痕的阴影。镜头方面分辨率要匹配相机像素尺寸镜头分辨率不够相机再好也发挥不出来。镜头的选型公式镜头分辨率要小于等于相机像素尺寸的两倍。比如相机像素尺寸5微米镜头分辨率要小于等于10微米。很多项目用普通工业镜头配高分辨率相机结果画质上不去就是镜头拖了后腿。9.2 相机固件和MVS版本的匹配海康相机的固件和MVS版本要匹配固件太老新功能用不了固件太新老版本MVS可能不支持。升级固件之前先确认MVS版本是否支持。升级过程中不要断电否则相机可能变砖。我一般建议项目开始前把相机固件和MVS都升级到稳定版本不要用最新版最新版可能有未知问题。稳定版本的选择可以参考海康官网的发布说明选发布三个月以上、没有严重bug的版本。9.3 多相机同步的注意事项多相机项目里帧率和画质的平衡还要考虑同步问题。多台相机同时采集如果都用连续采集模式帧率可能会有微小差异导致采集时间不对齐。这时候需要用硬件触发让所有相机共用一个触发源保证同时曝光。硬件触发下曝光时间要设成一样增益也要设成一样否则图像亮度不一致。如果相机型号不同参数范围可能不一样需要分别调整到亮度一致。这个调试过程比较耗时建议在项目初期就规划好。10. 我个人的调参习惯和最后分享调了这么多年参数我最大的体会是不要迷信参数要先看光学和机械。光学和机械到位了参数随便调调就能出好图光学和机械不到位参数调出花来也白搭。我见过太多项目相机选得很贵参数调得很细但光源随便装了一个镜头用的是库存货最后画质一塌糊涂。另一个习惯是每次调参都记录。记录当时的曝光、增益、帧率、像素格式、ROI还有对应的图像效果。下次遇到类似项目直接翻记录能省很多时间。我现在的记录本上已经有几十个项目的参数配置新项目来了先翻记录找到最接近的配置在此基础上微调效率高很多。最后分享一个小技巧MVS里可以保存多组参数配置给每组配置起个名字比如“高速模式”“高画质模式”“低光照模式”。现场调试的时候根据实际情况切换不用每次都重新调。这个功能很多人不知道但用起来非常方便。
返回列表