1. 视觉系统概述:工业视觉系统组成、光源与镜头选型、相机与采集卡选型、视觉系统搭建流程

大家好,我是老张。在工业视觉这行摸爬滚打了十几年,从最早的模拟相机到现在的智能相机,从黑白图像到高光谱,踩过的坑比走过的路还多。今天咱们聊聊视觉系统的基础——这部分看似简单,但恰恰是决定项目成败的关键。

很多人一上来就急着调算法、跑模型,结果发现图像质量不行,光源打不好,镜头选错了,最后折腾半天还得回头改硬件。我个人的习惯是:硬件选型花的时间,至少占整个项目周期的30%。别嫌多,这钱花得值。

1.1 工业视觉系统的组成

一个完整的工业视觉系统,说白了就是「眼睛+大脑+手脚」的组合。我习惯把它拆成五个核心模块:

  • 成像模块:光源、镜头、相机——负责把物理世界变成数字图像
  • 采集模块:采集卡、线缆、触发传感器——负责把图像数据传到计算机
  • 处理模块:工控机、视觉控制器、GPU——负责跑算法、做判断
  • 执行模块:PLC、机械臂、剔除装置——负责根据结果干活
  • 交互模块:显示器、HMI、数据库——让人看得见、管得着

你想想看,任何一个模块出问题,整个系统就废了。我在一条汽车零部件产线上遇到过,相机和光源都选得挺好,结果采集卡带宽不够,帧率上不去,产线一跑快就丢图。嗯,这就是典型的「木桶效应」。

核心原则:视觉系统的性能上限,由最弱的那个环节决定。别只盯着算法精度,硬件选型才是地基。

工业视觉系统五大模块结构图 工业视觉系统五大核心模块 工业视觉系统 成像模块 采集模块 处理模块 执行模块 交互模块 各模块典型设备与作用: • 成像模块:LED光源、工业镜头、CCD/CMOS相机 → 获取高质量原始图像 • 采集模块:Camera Link/CoaXPress采集卡、触发线缆 → 稳定传输图像数据 • 处理模块:工控机+GPU、嵌入式视觉控制器 → 运行检测算法 • 执行模块:PLC、气动剔除阀、机器人 → 根据检测结果分拣/报警 • 交互模块:触摸屏、MES系统接口 → 显示数据、记录日志

1.2 光源与镜头选型

光源和镜头,是视觉系统的「眼睛」。眼睛不好使,后面算法再牛也白搭。我见过太多项目,算法工程师花三个月调模型,最后发现是光源没打好,换个光源精度直接提升20%。

光源选型要点

光源的核心任务就一个:让缺陷和背景产生最大的对比度。说白了,就是让好的地方亮,坏的地方暗,或者反过来。

光源类型 适用场景 我的经验
环形光源 PCB焊点、字符检测 适合表面反光不强的物体,打光均匀
条形光源 大尺寸平面、玻璃划痕 角度可调,适合突出纹理和凹凸
同轴光源 高反光表面、镜面物体 消除反光干扰,但亮度损失大
背光源 轮廓测量、透明物体 边缘最清晰,适合尺寸测量
穹顶光源 球形物体、曲面检测 漫反射效果,无阴影死角

我的小技巧:选光源颜色时,记住一个原则——互补色增强对比。比如检测红色物体上的划痕,用蓝色光源;检测绿色PCB上的焊点,用红色光源。这招在大多数场景下都管用。

镜头选型核心参数

镜头选型,我一般看四个参数:焦距、光圈、畸变、分辨率。别被那些花里胡哨的参数吓到,抓住核心就行。

  • 焦距:决定视场大小。公式很简单——焦距 = 工作距离 × 传感器尺寸 / 视场宽度。我习惯先定工作距离,再算焦距。
  • 光圈:影响进光量和景深。光圈越大(F值越小),进光多但景深浅。产线上一般用F8-F11,兼顾亮度和景深。
  • 畸变:广角镜头畸变大,长焦畸变小。做尺寸测量时,畸变必须控制在0.1%以内。
  • 分辨率:镜头的分辨率要匹配相机的像素尺寸。别用低分辨率镜头配高像素相机,那是浪费钱。

避坑提醒:我曾经在一个锂电池极片检测项目上,选了高分辨率相机但配了个普通C口镜头。结果图像边缘模糊,算法死活检测不出微小的毛刺。后来换了远心镜头,问题立刻解决。记住:镜头的分辨率必须高于相机的分辨率,否则相机再贵也白搭。

1.3 相机与采集卡选型

相机是视觉系统的「视网膜」,采集卡是「视神经」。两者必须匹配,否则数据传不过去。

相机选型

选相机,我主要看三个维度:传感器类型、分辨率、帧率。

参数 选项 我的建议
传感器类型 CCD vs CMOS 高精度静态检测用CCD,高速动态检测用CMOS。现在CMOS进步很快,大部分场景够用了
分辨率 30万~2000万像素 根据检测精度算:分辨率 = 视场宽度 / 最小缺陷尺寸 × 3(3倍采样)
帧率 30fps~1000fps 产线速度决定:帧率 = 产线速度 / 检测视野长度 × 1.5(留余量)
接口 GigE / USB3 / Camera Link / CoaXPress 短距离低速用GigE,高速大带宽用CoaXPress

采集卡选型

采集卡这东西,很多人容易忽略。我个人的经验是:采集卡的带宽要留至少30%的余量。

举个例子:你用的是500万像素相机,帧率60fps,8位灰度图。数据量是:500万 × 60 × 8bit = 2400Mbps ≈ 2.4Gbps。如果你用GigE接口(理论带宽1Gbps),肯定不够。这时候要么降帧率,要么换Camera Link或CoaXPress。

带宽计算公式:所需带宽 = 分辨率(像素) × 帧率 × 位深 / 8 / 1024 / 1024 (MB/s)。选采集卡时,带宽必须大于这个值,而且最好留30%余量应对突发数据。

1.4 视觉系统搭建流程

搭建一套视觉系统,我有一套固定的流程。这套流程帮我避开了至少80%的坑。

  1. 需求分析:搞清楚检测什么缺陷、精度要求、产线速度、环境条件。这一步别省,我见过有人连检测对象都没搞清楚就买设备。
  2. 打光实验:用不同的光源、角度、颜色做对比实验。我习惯拍一组「好品」和「坏品」的对比图,看哪个光源方案对比度最好。
  3. 相机镜头选型:根据打光结果和精度要求,计算分辨率、焦距、工作距离。出方案对比表。
  4. 采集方案确定:根据帧率和数据量,选接口和采集卡。别忘了考虑传输距离——GigE最长100米,USB3只有5米。
  5. 机械结构设计:设计相机支架、光源固定架、防震结构。产线上的振动是图像质量的隐形杀手。
  6. 软件集成调试:写采集程序、标定相机、调算法参数。这一步往往最耗时。
  7. 现场联调:接上PLC、跑产线、测节拍、调触发。我一般会连续跑24小时,看系统稳定性。

我的习惯:在打光实验阶段,我会把每种光源方案拍的照片都存下来,标注好参数。这些照片就是后续调试的「证据」,出了问题可以回溯。别偷懒,这一步能省你后面很多时间。