ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

工业缺陷检测视觉系统选型:光源、相机与算法全攻略

工业缺陷检测视觉系统选型:光源、相机与算法全攻略

简介:机器视觉工业缺陷检测的那些事是一份面向工业质检与机器视觉入门/进阶者的技术总结型PDF,系统梳理视觉检测系统的基本组成,围绕硬件选型、图像处理分析和数据管理三部分展开。文档重点讲解了光源分类与照明方式的选择原则、工业相机与镜头及图像采集卡的选型要点,并介绍了边缘检测、模板匹配、灰度变换等常用算法,以及常见算法库的适用场景,可帮助读者在尺寸测量、表面划痕检测、Logo识别等实际任务中快速建立方案思路。内容还结合金属/塑料制品划痕、PCB焊点、玻璃杂质、纸张色差等典型缺陷场景,给出了光源颜色、照射角度与相机参数的实际选型思路。整个资源为1个PDF文件,压缩包大小1.26MB,便于下载后随时查阅。发布至今已有1188人学习浏览,适合作为机器视觉缺陷检测领域的入门参考和内部技术分享素材。

1. 机器视觉工业缺陷检测:先定光源,再谈相机和算法

去年部门接到一个手机壳表面划痕检测的需求,团队一开始把精力全压在算法选型上,结果在实验室里换了好几轮 Halcon 和 OpenCV 的算子,图像始终不稳定。后来一位做视觉集成多年的同事一句话点醒了我:你们的光源方案就没定,换什么算法都白搭。我花了两周时间把整个工业缺陷检测的知识链——光源、相机、镜头、采集、算法、软件——从头到尾梳理了一遍,才发现这个行业真正的决策顺序和大多数人想的相反:打光方案决定图像质量的上限,相机镜头决定分辨率的下限,最后才轮到算法。这篇就把我梳理出来的每个环节的判断依据、计算公式和踩过的坑写下来,正要搭视觉检测方案的人,或者选型选到一半卡住的人,可以直接对照着排。

2. 光源选型:打光定生死,三种光源与四种照明方式怎么选

2.1 为什么说打光是基础,而不是相机

做工业缺陷检测的人常挂在嘴边一句话:光源是基础,打光是艺术。我第一次听到以为是在夸张,直到自己上手调试才明白,一个好的打光效果基本决定了视觉检测成功的一大半。原因很直接:光源的合理性选择直接决定了输入图像数据的质量,图像质量又直接决定了后续算法的处理难度和稳定性。同样的相机和镜头,打光角度差一点,缺陷的对比度可能就从清晰变成可见、再变成不可见。算法再强,也救不回过曝、欠曝、反光严重或者阴影压在缺陷上的图。

我一般会这么比:把整个视觉系统看成一条流水线,光源是第一道工序,它的输出是图像。图像上缺陷和背景的灰度差不够,后面的分割、特征提取、分类全都是在噪声里找信号。所以选型的第一步不是打开相机参数表,而是先回答三个问题:被测物是什么材质、反不反光;要突出的是轮廓还是表面细节;现场环境光干扰有多大。三个问题答完,光源方案基本有方向了。

2.2 三种常见光源的寿命、亮度与响应速度权衡

工业现场最常用的是可见光光源,其中 LED 灯、萤光灯、光纤卤素灯三者的特性差异非常明显,选错一个后面就要不停补偿。

光源类型使用寿命优点缺点常见场景
LED 灯约 10000-30000 小时可组合成不同形状达到高亮度;响应速度快;波长可按需选择制成不同颜色单颗亮度有限,需要多颗组合大多数静态与动态检测,最通用
萤光灯约 1500-3000 小时扩散性好,适合大面积均匀照射响应速度慢,亮度较暗大范围均匀照明
光纤卤素灯约 1000 小时亮度高响应速度慢,光亮度和色温变化小需要高亮度的特殊工位

实际选的时候,我优先考虑 LED,因为它的响应速度快意味着可以配合频闪照明做高速检测,波长可选又给了颜色对比度的调节空间。萤光灯在很多老设备上还在用,但新项目已经很少碰了。卤素灯亮度高,但寿命只有 LED 的十分之一,维护成本算下来不划算。

照射方式上,背向照明是被测物放在光源和相机之间,图像效果是黑白分明的轮廓,常用于尺寸测量;前向照明是光源和相机在被测物同侧,便于安装,主要用于检测表面细节、缺陷和划痕;结构光照明把光栅或线光源投射到物体上,通过畸变解调三维信息;频闪光照明则是高频率光脉冲配合相机同步,应对高速运动场景。这里有个常见误区:有人做尺寸测量用了前向照明,结果边缘因为反光和阴影发虚,怎么调阈值都切不干净。换背向照明以后,轮廓立刻清晰了。

2.3 穹形、环形、条形、同轴:四种照明形式怎么选

照明形式的选择要结合被测物的形状、材质和要突出的特征。我把最常用的几种整理成一个速查表:

照明形式图像效果典型适用场景
穹形光源均匀漫射,背景柔和球型或曲面物体缺陷、金属或镜面表面检测,如玻璃瓶、滚珠、铝制容器
环形光源环形高光,字符和边缘清晰集成电路料带与管脚字符、金属工件刻印字符、光滑表面划痕、瓶口尺寸或裂痕
条形光源(45° 侧光)避免正面强反光,边缘高亮LCD 缺陷、包装文字、包装膜破损、纸张质量、常规印刷质量、裂纹检测
同轴光源明亮背景上的黑色特征,增强纹理反光厉害的平面,如金属玻璃划痕、芯片硅片破损、冲压字符、线路板焊点

条形光源我单独说一句,它是尺寸测量和外观检测里应用最广的照明方式之一。侧面 45 度打光可以避免正面照射产生的强烈反光,同时对边缘部分实现高亮照明,很多包装和纸张的缺陷检测都用它。同轴光源则特别适合反光平面,它能加强有差异角度的表面特征,比如划痕、凹陷、压印,同时减少阴影——但要注意它的图像是亮背景上的黑色特征,和普通前向照明的直觉相反,第一次用的人容易把黑白关系搞反。此外高角度照射图像整体偏亮,适合表面不反光的物体;低角度照射图像背景为黑、特征为白,能突出轮廓和表面凹凸变化;多角度照射效果柔和,适合曲面物体。

2.4 颜色、形状、漫射:三个实用判断维度

光源颜色和背景颜色的关系是一条非常实用的经验:使用与被测物同色系的光会使图像变亮,比如红光让红色物体更亮;使用与被测物相反色系的光会使图像变暗,比如用蓝光照射黄色物体会呈现黑色。这就是通过颜色拉对比度的底层逻辑。波长方面,波长越长穿透能力越强,红外适合检测透光性差的物体,比如棕色口服液里的杂质检测;波长越短扩散能力越强、对表面细微特征更敏感,紫外适合对比度不够明显的地方,比如食用油瓶上的文字检测。

形状的选择相对简单:通常情况下选用与被测物体形状相同的光源,比如圆形的测圆形工件、条形的测长条物料,最终效果以实测为准。光源尺寸上,要求保障整个视野内光线均匀,比视野略大一点是比较稳的选择。至于漫射光源,只要被测物表面反光,我基本都会优先考虑。多角度漫射照明能让表面整体亮度均匀、图像背景柔和,检测特征不会受到背景干扰。换句话说,你拍的物体越像镜子,就越需要漫射。

3. 相机选型:从精度反推参数,八参数速查与 CCD/CMOS 之争

3.1 先想清楚检测任务,再打开参数表

相机选型最忌讳一上来就比像素,因为像素只是参数表里的一个数字,真正决定选型的是检测任务。我一般先把任务拆成几个问题:是静态拍照还是动态拍照,拍照频率是多少;做的是缺陷检测、尺寸测量还是定位;产品大小也就是视野范围是多少;需要达到的精度是多少;软件性能跑不跑得动;现场环境温度、湿度、干扰和光照情况如何;有没有特殊要求。这些答案问完,相机的分辨率、帧率、曝光方式和接口类型基本都确定了。

如果是动态拍照,还要多算一步运动速度,根据速度选择最小曝光时间,同时判断是否需要逐行扫描的相机。相机的帧率也就是最高拍照频率,跟像素数是绑定关系,通常分辨率越高帧率越低,不同品牌的同规格相机帧率也略有不同。所以高精度和高速度在相机选型里是一对需要权衡的矛盾,后面计算实例里会看到这个矛盾怎么量化。

3.2 八个核心参数:哪些决定能不能用,哪些决定好不好用

相机的主要参数有八个:分辨率、速度(帧频/行频)、噪声、信噪比、动态范围、像元深度、光谱响应、光学接口。我的判断方法是把参数分成两类:分辨率、速度、接口决定"能不能用",是硬指标;噪声、信噪比、动态范围、像元深度、光谱响应决定"好不好用",是品质指标。

分辨率是芯片靶面排列的像元数量,面阵相机用水平垂直表示,比如 1920(H)x1080(V),前面的数字是每行像元数,后面是行数。现在也叫多少 K,1K 是 1024、2K 是 2048。同样的视场,分辨率越高细节越明显。速度方面,面阵相机用帧频 fps,比如 30fps 就是一秒最多采 30 帧;线阵相机用行频 KHz,12KHz 就是一秒最多采 12000 行。运动物体成像必须满足速度要求,这是硬约束。噪声方面,欧洲标准 EMVA1288 把噪声分成两类:一类是有效信号带来的泊松分布统计涨落噪声,也叫散粒噪声,任何相机都有、不可避免;另一类是相机自身固有的与信号无关的噪声,由读出电路、信号处理与放大电路带来,每台都不一样。数字相机还有模数转换产生的量化噪声,量化位数越高噪声越低。

信噪比是有效信号平均灰度值与噪声均方根的比值,代表图像质量,越高越干净。动态范围是饱和曝光量与噪声等效曝光量的比值,可以用倍数、dB 或 Bit 表示,它衡量相机对光照强度的适应能力,光照变化大的现场优先选大动态范围。像元深度是数字输出的灰度位数,黑白相机通常在 8-16bit,8bit 有 256 个灰阶,10bit 有 1024 个,12bit 有 4096 个。光谱响应是相机对不同波长光线的响应能力,通常用光谱曲线表示,可见光相机响应 400nm-1000nm、峰值在 500nm-600nm,红外相机在 700nm 以上,紫外相机可以响应 200nm-400nm 的短波。注意像元深度不是越高越好,从 8bit 升到 12bit 确实增强测量精度,但同时降低系统速度、提高集成难度,线缆增加、尺寸变大,这个代价要在项目里算清楚。

3.3 分辨率计算实例:为什么一个像素对应一个缺陷必翻车

原文里给了一个非常经典的算例,我直接复述一遍:假设要检测一个 108mm 物体表面的划痕,要求检测精度 0.01mm,拍摄视野范围设为 1210mm。那么相机最低分辨率应该选多少?计算逻辑是:

# 视野与精度反推相机最低分辨率 fov_w, fov_h = 12, 10 # 视野范围,单位 mm precision = 0.01 # 检测精度,单位 mm # 最低分辨率:每个像素对应 0.01mm pixels_w = fov_w / precision # 1200 pixels_h = fov_h / precision # 1000 base_resolution = pixels_w * pixels_h # 120 万像素 # 但一个像素对应一个缺陷极不稳定,缺陷面积至少占 3~4 个像素 stable_resolution = base_resolution * 3 # 约 360 万 print(f"最低分辨率约 {base_resolution/10000:.0f} 万像素") print(f"稳定方案约需 {stable_resolution/10000:.0f} 万像素,市面常见取 300 万")

算出来最低分辨率是 120 万像素,市面上常见 130 万像素的相机,看上去够用。但实际问题是,如果一个像素就对应一个缺陷,那系统一定会极不稳定——图像里随便一个干扰像素点都可能被误认为缺陷。所以在工程上,我习惯让缺陷面积占到 3 到 4 个像素以上,这样 130 万乘 3,最低不能少于 300 万像素,通常取 300 万像素为最佳。有人会抱着亚像素不放,说要做零点几亚像素精度,那确实可以不用这么高分辨率,但亚像素是算法层面的细分,前提是图像本身已经清晰稳定,硬件基础不能省。

3.4 CCD 还是 CMOS:动态和静态要分开看,别被老经验带偏

工业相机按芯片类型分 CCD 和 CMOS 两大类,这是选型里争论最多的地方。CCD 叫电荷耦合器件,本质上是一种把图像半导体中出来的电子有组织地储存起来的方法;CMOS 叫互补金属氧化物半导体,把光敏元件、放大器、A/D 转换器、存储器和接口控制电路集成在一块硅片上。两者的差异可以整理成一张表:

对比项CCDCMOS
图像质量高,灵敏度高、对比度高一致性稍差,光灵敏度一般
噪声相对低相对大
功耗较高低
像素访问不能直接访问每个像素能直接访问单个像素,支持 AOI 局部读出
Blooming 现象有没有
动态范围一般可达 120dB
帧率受限于读出方式可更高,AOI 下优势明显
价格较贵便宜
适用场景高速动态测量低速或静态测量,全局曝光 CMOS 也可用动态

从这张表能看出一个清晰的结论:CCD 的优势在成像质量,适合高速动态测量;CMOS 胜在集成度、功耗、价格和灵活的读取方式,适合低速动态或静止场景。但现在有一个重要的变化:全局曝光的 CMOS 已经可以用于动态测量,而且随机读取特性让它对较小的 ROI 区域可以获得更高帧率,填充因子低的问题也可以通过微镜来提高。从趋势上看,CCD 目前还是主流,但 CMOS 正在赶上,而且 CMOS 是未来。新项目如果预算允许,我一般建议直接考虑全局曝光 CMOS,别被"CCD 一定更好"的老经验带偏。

相机的输出信号接口也要一并考虑,主要有 USB2.0、IEEE1394、CameraLink、GigE 等。其中 GigE 和 USB3 现在最省事,直接网线或数据线进主机,不需要额外装采集卡;CameraLink 虽然稳定但需要专用采集卡,成本和复杂度都高。图像采集卡的主要功能是 A/D 转换、图像传输、采集控制和部分 FPGA/DSP 图像处理,随着计算机速度和接口速度提升,独立的视觉处理器已经用得很少了,这个趋势选型时要心里有数。

4. 成像链路选型:镜头接口、焦距公式与快门拖影计算

4.1 焦距、视场、工作距离:三个必须先定的量

镜头的选择必须和相机、光源放在一起考虑,因为它决定了最终成像的视野、清晰度和畸变水平。先把三个核心概念理清:视场(FOV)是观测物体的可视范围,也就是充满相机采集芯片的物体部分;工作距离(WD)是从镜头前部到被测物体的距离,即清晰成像的表面距离;焦距(f)是透镜光心到光聚焦焦点的距离。这三者的关系是镜头选型的基本框架。

焦距有一个重要公式:f =(工作距离 / 视野范围长边)× CCD 长边。举例,如果工作距离是 200mm、视野长边是 50mm、相机靶面长边是 6.4mm,那焦距就是 200/50×6.4=25.6mm,选 25mm 定焦镜头比较合适。视场角可以通过 Y=f×tanθ 估算,比如 1/2 寸摄像机配 12.5mm 镜头时,画面横向视场角大约是 28.72°。这些计算都不复杂,但我在实际项目里见过不少人跳过这一步,凭感觉配镜头,结果装上去发现视野不对,要么拍不全要么浪费分辨率。

工作距离还要确认是否可调以及现场有没有安装空间。这个问题在改造项目里特别常见——方案图上工作距离留了 300mm,实际设备里前面挡着一个气缸,镜头根本装不到位。所以在镜头选型阶段就要把安装空间作为一个硬约束提出来,而不是等机械设计完成后再回头改镜头。

4.2 景深、光圈、接口:镜头和相机怎么配才能不返工

镜头参数里最容易忽略的是靶面尺寸匹配。镜头尺寸不能小于相机芯片尺寸,一定要大于或等于相机芯片尺寸。比如 2/3 英寸镜头支持的最大相机靶面是 2/3 英寸,它不能支持 1 英寸以上的相机,装上去边缘直接发黑,这就是靶面不匹配的典型症状。另一点相对反直觉:同样视野下,视野越小分辨率越好;而镜头本身的成像质量受结构、材质、加工精度影响,同档次的固定焦距镜头比变焦镜头分辨率高,短焦镜头一般边缘分辨率比中心低,长焦镜头则相反。光源的光波波长也影响分辨力,波长越短分辨率越高,所以精密尺寸测量系统尽量采用短波长的单色光照明。

景深(DOF)是物体离最佳焦点较远或较近时,镜头保持所需分辨率的能力。三个关键规律:光圈越小景深越大;拍摄距离越大景深越大;焦距越短景深越大。有景深特殊要求的项目,要了解清楚再选。光圈和 F 值的关系则是:光圈越大,图像亮度越高、景深越小、分辨率越高。所以高精度和高景深在光圈上是矛盾的,需要在项目里做权衡。

接口匹配是一个容易翻车的地方,先看一张表:

接口类型后截距接口形式
C 口17.526mm螺口
CS 口12.5mm螺口
F 口46.5mm卡口

C 与 CS 接口的区别在于镜头与摄像机接触面至镜头焦平面的距离不同。配合规则是:C 型镜头与 C 型摄像机、CS 型镜头与 CS 型摄像机可以配合使用;C 型镜头与 CS 型摄像机之间加一个 5mm 的 C/CS 转接环可以配合使用;CS 型镜头与 C 型摄像机则无法配合。F 口是通用型接口,一般适用于焦距大于 25mm 的镜头;焦距小于 25mm 的镜头尺寸不大,通常采用 C 型或 CS 型接口。M42 接口源于更高端的摄像标准,相机的 Z 轴通常依据适配器优化过,一般情况下不要轻易拆卸镜头适配器。

另外,光学放大倍数的计算公式是 PMAG = CCD Size / FOV,也就是感光芯片尺寸和视野的比率。在显微应用中还用显示放大倍率,等于镜头光学倍率 × 显示器尺寸 × 25.4 / 靶面对角线尺寸。选镜头时还需要问清楚客户对视野、放大倍数、工作距离、景深、芯片大小和接口、安装空间的要求,在方案可选择的情况下,尽量让镜头去适应设备尺寸,而不是让客户改设备。

4.3 快门速度计算:运动物体不拖影的底线

动态检测里最常见的翻车场景是拖影:物体在快门时间内移动超过一定像素,图像就糊了,缺陷边缘全是残影。工程上的经验线是,物体在快门时间内的运动大于 1.5 个像素就会产生可感知的拖影。所以快门时间的上限可以用一个公式算:t(快门)≤ 像素当量 × 1.5 / 运动速度。

拿原文的例子里,假设速度是 0.5m/s,sensor 为 640×480 分辨率,视场是 4.2×3mm。先算像素当量:长方向 4.2mm/640=0.00656mm,短方向 3mm/480=0.00625mm,取更严格的短方向 0.00625mm。代入公式:

# 快门速度下限估算 speed = 0.5 * 1000 # 运动速度 0.5m/s 换算为 500mm/s fov_w, fov_h = 4.2, 3.0 # 视场 4.2x3mm res_w, res_h = 640, 480 # 分辨率 px_w = fov_w / res_w # 长方向像素当量 0.00656mm px_h = fov_h / res_h # 短方向像素当量 0.00625mm px = min(px_w, px_h) # 取更严格的值 t_max = px * 1.5 / speed # 单位为秒 print(f"像素当量 {px:.5f}mm,快门需 ≤ {t_max:.8f}s ≈ {t_max*1e6:.1f}μs")

算出来快门必须小于等于 0.00001875s,也就是 18.75 微秒。这个数值意味着光源照度必须非常高,否则图像会暗到没法看。这就是我反复强调光源和相机要一起定的原因——很多项目算完快门才发现光源功率不够,再回头换光源,工期就耽误了。另一个常见误区是把像素当量和精度混为一谈,实际计算时取两个方向里更小的像素当量,因为短方向的约束更严格,用大的那个算会把拖影风险掩盖掉。

5. 视觉检测避坑:五个翻车现场与排查办法

做视觉检测这么久,踩过的坑比看过的参数表还多。这里把最典型的五个翻车现场写下来,每条按现象、原因、解决的思路整理,新手碰到类似问题可以直接按图索骥。

坑一:尺寸测量用了前向照明,边缘永远切不干净。现象是测量工件的长宽尺寸时,图像边缘总有一圈虚影,阈值分割怎么调都不稳定,同一个工件放十次测出十个尺寸。 原因是尺寸测量需要的是黑白分明的轮廓,而前向照明下边缘受反光和阴影影响,灰度过渡带太宽,边界检测自然不稳定。 解决方法是把照明方式换成背向照明,让被测物处在光源和摄像机之间,获得高对比度的轮廓图像。从那以后我做尺寸测量项目,第一件事就是确认照明是不是背向的。

坑二:分辨率盲目堆高,帧率和处理速度双双崩溃。现象是有人觉得像素越高越好,选了 1200 万像素相机,结果帧率掉了一半,图像数据量翻了四倍,后端的图像处理软件跑不动,整个检测节拍被拖垮。 原因是脱离了检测精度需求谈分辨率。按照前面的算例,0.01mm 精度、12×10mm 视野,稳定方案 300 万像素已经足够,再高的分辨率不会带来缺陷检出率的提升,只会带来速度和成本的负担。 解决方法是先确认缺陷的最小尺寸,按 3 到 4 个像素覆盖缺陷的原则反推,而不是从像素数字出发。

坑三:镜头靶面小于相机芯片,图像边缘直接发黑。现象是相机是 1 英寸靶面,镜头配了 2/3 英寸的,拍出来的图中心清楚、四周发黑,像是加了暗角滤镜。 原因是镜头的成像圆不够大,无法覆盖相机芯片的全部面积,边缘部分收不到光。 解决方法是选镜头时确认镜头支持的靶面尺寸大于等于相机芯片尺寸,2/3 英寸镜头最多只能配 2/3 英寸或更小的相机。

坑四:C 口镜头配 CS 口相机,成像在焦平面后面。现象是镜头装上去以后怎么调对焦环都是模糊的,画面始终不清晰。 原因是 C 口和 CS 口的后截距不同,C 口是 17.526mm、CS 口是 12.5mm,C 口镜头直接装到 CS 口相机上,成像面落在了传感器后面。 解决方法是查清楚接口类型:C 镜头配 CS 相机加一个 5mm 的 C/CS 转接环,CS 镜头配 C 相机则没法用,只能换其中一头。这个坑在采购二手镜头或混用品牌时最容易出现。

坑五:运动物体的快门时间靠猜,拍出来全是拖影。现象是流水线上的工件拍出来边缘有残影,缺陷特征像被拉长了,算法检出率直线下降。 原因是没按运动速度计算快门上限,默认了相机的自动曝光。0.5m/s 的速度下,按 0.00625mm 像素当量算,快门必须小于等于 18.75 微秒,普通相机的自动曝光远达不到这个速度。 解决方法是先算像素当量和运动速度,确定快门上限,再反推需要多大功率的光源。如果不满足,考虑降低运动速度、提高光源亮度或者换更高帧率的相机。

6. 算法与软件栈:Halcon 还是 OpenCV,取决于交付节奏

6.1 一套完整的缺陷检测算法管线长什么样

硬件定完之后才轮到算法。从工程视角看,工业缺陷检测的图像处理流程一般分四步:预处理、分割、特征提取、识别分类。预处理包括几何变换和尺度变换,插值算法有最近邻、双线性、双三次三种,增强环节用灰度变换、直方图均衡化、平滑降噪(均值、中值、高斯、双边滤波)和边缘锐化(Roberts、Laplace、Sobel)。分割环节最常用的是阈值分割,有固定阈值、OTSU 最优阈值、自适应阈值三种;复杂一点的用 Canny 边缘检测、Hough 变换直线和圆检测、区域生长或分水岭分割。特征提取方面,缺陷检测最常用的是几何特征(位置、方向、周长、面积、长轴短轴)、形状特征(Blob 分析里的矩形度、圆形度、不变矩、偏心率)和直方图统计特征(均值、方差、能量、熵),LBP 局部二值模式因为对光照变化鲁棒,在表面缺陷检测里也很有用。识别分类的传统算法有贝叶斯、KNN、人工神经网络、SVM、K-means,现在深度学习方案越来越多,但传统算法在样本少、可解释性要求高的场景仍然稳。

模板匹配是很多定位项目的核心,包括轮廓匹配、归一化积相关灰度匹配、不变矩匹配和最小均方误差匹配。我的经验是:先用简单的阈值和 Blob 分析跑通流程,再根据缺陷类型决定要不要上更复杂的特征和分类器,不要一上来就堆深度学习。

6.2 选型结论:按交付节奏排 Halcon 和 OpenCV 的优先级

软件层面的选择主要落在 Halcon 和 OpenCV 两个库上,它们的差异可以直接用交付节奏来衡量。

对比项HalconOpenCV
算法数量与成熟度底层功能算法多,性能优化好算法较多但部分要自己写
上手难度低,开发项目周期短较高,开发周期长
商用成本收费,加密狗大约 10K-15K开源免费可商用
适用项目交付周期紧、现场调试时间有限团队有算法能力、愿意长期自研
典型姿势快速验证和交付打样验证后做产品化落地

我的判断逻辑很直接:项目交付周期赶、团队缺人手、预算能覆盖授权成本,选 Halcon,它的集成算子和性能优化能省掉大量调参时间;团队有算法积累、要控制成本、并且打算把视觉能力沉淀成自研产品,选 OpenCV,但要有心理准备,缺陷检测里不少特殊算子要自己写。还有一种混合用法是 Halcon 做原型验证、OpenCV 做最终落地,先确认算法链路可行,再逐步替换。无论选哪个,背后的选型顺序是一致的:先定光源,再定相机和镜头,最后排算法和软件栈。从那以后我每做一个视觉检测方案,都强制先写一页光源方案说明,再碰相机参数和算法选型——这个习惯帮我避免过至少三次返工,希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进