拓冰建站拓冰建站
首页 / 资讯中心 / 正文

AI视觉检测与传统机器视觉分界线:从玻璃划痕实战看选型

先说明一下我的背景我从2013年开始做机器视觉相关项目前几年一直用的是传统算法OpenCV、Halcon、VisionPro都摸得比较熟后来AI视觉检测起来之后我陆续接手过玻璃、3C、纺织、汽车零部件好几个方向的视觉项目算是亲手在产线上把传统方案换成深度学习方案的人。这两年经常有人问我一个问题AI视觉检测到底比传统机器视觉强在哪里真的只是为了追热点吗我的回答是不是追热点是传统视觉真的有很多事搞不定。在有些场景下传统算法不是“不太好用”而是“压根没法用”。这背后的分界线非常清晰搞懂这条分界线你就能判断一个项目该用传统视觉还是该上AI也能理解这几年视觉检测行业为什么在快速洗牌。这篇文章我就围绕这个话题展开把两类技术方案的边界、原理、实操方法和学习路线一次说透。如果你是刚入门机器视觉的新手或者是正在评估视觉方案的工程师这篇文章值得你认真看完。1. 传统机器视觉的看家本领规则、形态学与特征工程想搞清楚AI视觉检测解决了什么先得知道传统机器视觉一直是怎么干活的。很多新手一上来就啃深度学习反而把传统视觉的基本功落下了这在项目实战中会吃大亏。1.1 传统视觉解决问题的基本套路从图像到规则传统机器视觉的核心思想是“用数学描述图像特征”。什么意思呢就是我们把一张图片当成一个像素矩阵通过各种算法把这个矩阵变成我们关心的数值然后拿这些数值和设定好的阈值做比较最后输出“OK”或“NG”。一个典型的传统视觉检测项目流程大概是这样的图像采集用工业相机、镜头、光源拍下产品图像图像预处理灰度化、滤波去噪、增强对比度形态学处理用开运算、闭运算去掉小噪点、补上小孔洞阈值分割把目标和背景分离开来变成二值图特征提取计算区域的面积、周长、长宽比、圆度、灰度均值等规则判定设定一个阈值区间比如“面积大于500像素的算缺陷”这个流程看似简单但里面的每一个环节都有讲究。比如阈值分割怎么选形态学的核选多大特征怎么组合这些都靠工程师的经验去调。我当年做一个轴承外圈划伤检测项目光是在“灰度阈值”和“形态学开闭运算参数”之间来回调就花了两三天时间。为什么难调因为阈值选大了会把轻微划伤漏掉选小了会把钢材表面的加工纹路误判成缺陷。开运算的核选得太大真实的细小划痕也被当噪点去掉了选得太小又去不掉反光造成的干扰。这个过程说白了就是盲人摸象我们不断猜测“什么特征像缺陷”然后通过规则去逼近这个定义。对于特征非常固定的场景比如螺丝的有无、标签的正反传统视觉又快又准完全够用。但一旦场景复杂起来这套规则的脆弱性就暴露出来了。1.2 开闭运算到底是怎么回事形态学的底层逻辑既然关键词里有“机器视觉开闭运算参数原理”我就多花点篇幅把这个讲透因为这是传统视觉最核心、也最容易被新手搞混的知识点。开运算和闭运算都属于形态学操作它们的底层操作就是两个腐蚀和膨胀。腐蚀取图像每个局部区域的最小值。作用是把亮的目标区域“瘦一圈”可以把细小噪点、毛刺消掉。膨胀取图像每个局部区域的最大值。作用是把亮的目标区域“胖一圈”可以把断裂的线条连接起来把孔洞填上。开运算 先腐蚀后膨胀。它的作用是去除小噪点、断开细小的连接、平滑大物体边界。比如玻璃表面有一些灰尘颗粒你想保留划痕、去掉灰尘就可以用开运算。闭运算 先膨胀后腐蚀。它的作用是填充物体内部的小孔洞、连接邻近的物体、平滑边界。比如一个金属工件表面有个小凹坑你想把它补上看它是否会影响整体轮廓可以用闭运算。这里有一个非常关键的问题结构元素也就是核的大小怎么选我的经验是看你要保留的目标最小尺寸是多少以及要去掉的噪声最大尺寸是多少。如果你要保留的划痕宽度是3个像素而去除的噪点直径是5个像素那么开运算的核就应该选得比5个像素大一点比如7×7这样才能把噪点整个吃掉同时又不至于把3像素宽的划痕全部腐蚀掉。但实际情况往往没有这么理想划痕可能只有2像素宽噪点又和划痕宽度接近这时候传统的形态学方法就非常吃力了。这也是传统视觉天花板的一个典型体现——它在处理“尺寸重叠的干扰目标”时几乎只能靠运气。1.3 传统视觉的舒适区它适合干什么活说了这么多传统视觉的局限但我也要客观说一句传统视觉并不是一无是处它至今仍在工业界大规模使用因为它在很多场景下是“性价比之王”。传统视觉最适合的场景有三个特点目标特征单一且稳定。比如检测螺丝是否拧紧、胶路是否断胶、零件是否装反这些任务的判别标准非常明确。环境光照可控。产线遮光罩一扣光源一开图像质量是固定的不会有大变化。实时性要求极高。传统视觉算法在普通工控机上跑单张图通常只需要几毫秒到十几毫秒延迟非常可控。在这类场景下传统视觉不仅便宜、稳定而且算法逻辑透明出了问题容易排查。甲方审核时你可以一条一条跟他对“为什么判这个产品不合格”这在很多行业是刚需。所以我的结论是传统视觉不是被AI淘汰的而是它在面对“复杂特征、复杂背景、复杂光照”时确实力不从心。AI视觉检测的本质是接管了传统视觉搞不定的那部分战场。2. AI视觉检测的破局点传统算法搞不定的三类难题我自己在项目里碰到的传统视觉翻车案例绝大多数可以归结为三类特征无法量化、背景不稳定、缺陷定义模糊。这三类问题恰恰就是AI视觉检测的优势区。2.1 特征无法量化你说不清你看到了什么这是传统视觉最尴尬的地方。举个例子做纺织品检测的时候布面上有一种疵点叫“起球”就是面料表面起了一些小毛球。你问一个质检老师傅怎么判断起球他会告诉你“一看就知道”。但你要是问他“亮度多少算起球轮廓圆度超过多少算起球”他根本说不出来。传统视觉要求你把所有判别标准变成数字但在很多场景下人类的视觉判断是一种“整体印象”根本没法拆解成几条明确的数学规则。强行拆解的结果就是规则越堆越多越堆越乱最后变成一锅粥。我见过一个PCB板检测项目传统方案的规则写了上千行覆盖了几十种缺陷模式但每次换一批板材漏检误检率就飙升。为什么因为PCB板表面的铜箔反光、字符印刷、焊盘分布等变化太多了你很难用几十个特征值把这些情况全部覆盖。AI视觉检测的逻辑完全不一样。深度学习模型不是靠人来定义特征而是自动从大量标注样本中学习特征。它不需要你告诉它“起球长什么样”只需要你给它看几千张标好的起球图片它会自己在不同层级的特征图中把“起球”的模式抽象出来。这也是为什么AI视觉检测在纺织、皮革、木材这类纹理复杂、特征说不清的行业里落地最快。2.2 背景不稳定光照一变规则全崩传统视觉有个致命弱点对图像一致性要求极高。光照变一下、角度偏一点、产品表面有油污二值化结果就会大变接着整个特征计算和判定逻辑就全乱套了。我经历过的经典翻车场景是金属表面的划痕检测。金属表面是强反光面你用条形光源从左侧打光拍出来的照片和从右侧打光拍出来的照片划痕看起来完全不一样。而且同一个产品放在载物台的不同位置反光角度都不同。传统视觉要稳定处理这种情况需要非常苛刻的机械定位和光源设计这在产线上往往是很难长期维持的。AI视觉检测对光照变化的鲁棒性要强得多。因为训练的时候你会把不同光照、不同角度、不同位置拍到的图像都标注进去深度学习模型会学会忽略掉那些“不重要的变化”专注于真正和缺陷相关的特征。这就像人眼一样我们在各种光线下都能认出一个人是因为我们见过他的各种光线下的样子而不是因为我们记住了一个固定的亮度值。当然这不意味着AI视觉检测就不需要好的成像系统了。我后面会讲到成像质量依然是项目成败的关键只是说AI的容错空间比传统算法大得多。2.3 缺陷定义模糊AI学会的是“语义”不是“像素规则”第三类问题是“缺陷定义模糊”这类问题在玻璃、陶瓷、塑料制品行业尤其常见。以玻璃划痕检测为例玻璃是透明的光线穿透过来表面既有划痕又有气泡、杂质、水渍、指纹印。传统视觉的问题是划痕和水渍在灰度图上都表现为“一条亮线”你怎么用阈值区分它们你可能会说那我用形态学特征啊看长宽比划痕是细长的水渍是圆润的。这个思路没错问题是玻璃上的水渍往往呈现长条形流淌痕迹和划痕的长宽比非常接近你再怎么调参数误判率都压不下来。AI视觉检测在处理这个问题时有本质优势它学到的不是“亮线就是划痕”这样的像素级规则而是“这个形态、这个走向、这个对比度组合在一起更像是划痕”这样的语义级判断。模型会自动把“水滴痕迹”和“真正的划痕”在特征空间中分开因为你在训练数据里已经明确告诉它哪些是水滴、哪些是划痕。这个区别我想用一个生活化的类比来说传统视觉像一个只会背公式的考试机器你给它输入明确的数值它返回明确的判断AI视觉像一个见过无数样本的老师傅它不一定能说出自己是怎么判断的但它判断得就是准。在工业检测场景里我们最终要的是判断准确率而不是一套可以手写推导的公式这就决定了AI在很多场景下是更优解。3. 玻璃划痕检测实战传统方案与AI方案的完整对比既然热搜词里出现了“机器视觉玻璃划痕检测”我就把这个案例展开作为贯穿全文的主线案例。这个案例我做过不止一次很有代表性既包含传统方案的挣扎也体现了AI方案的优势。3.1 传统方案的完整实现过程与踩坑记录先说传统方案怎么做玻璃划痕检测。我那次做的产品是手机盖板玻璃需要检测表面的细微划痕要求是“长度大于0.3mm、宽度大于0.05mm”的划痕必须判NG。第一步是图像采集。为了突出划痕我们用了低角度环形光源让光线以很小的角度照射玻璃表面这样划痕会散射光线在暗场下呈现为亮线。第二步是预处理。灰度化之后用高斯滤波降噪然后做闭运算目的是把划痕周围的一些细小噪点合并到划痕主体里让它看起来更连续。这里我用了5×5的核如果核太大会把细小的划痕糊掉。第三步是阈值分割。我一开始用的是固定阈值把灰度值大于一定数值的像素设为前景。结果发现随着产线环境温度变化玻璃表面偶尔会有一层薄薄的水雾导致整体灰度漂移固定阈值完全失效。后来改成自适应阈值比如Otsu才稍微好转但仍然不能完全解决水雾带来的干扰。第四步是形态学后处理。分割后的二值图有很多孤立噪点我用开运算去掉它们。这里我花了很多时间调整核的大小最后定在3×3。核再大一点一些浅划痕就被当成噪点直接干掉了。第五步是特征提取与判定。我用连通域分析计算每个区域的面积、长宽比、主轴方向然后设定规则面积大于一定值、长宽比大于3判定为划痕缺陷。这套方案在实验室测试时准确率能达到95%左右。但到了产线上问题全出来了。首先是水渍干扰。玻璃经过清洗工序后表面偶尔会残留水渍水渍在低角度光下也是明亮的条带连通域分析后长宽比跟划痕非常接近严重的时候误检率飙到10%。其次是边缘反光。玻璃的边缘切割面在特定角度下会有一条很亮的线形态上跟划痕很像我们不得不加了一个“扣除边缘区域”的ROI限制。但产品尺寸稍有波动边缘位置一偏移算法又开始误判。最后的结局是传统方案上线跑了两周误检率大概在3%5%甲方生产线每班要安排一个人专门处理误判样品非常痛苦。3.2 AI方案怎么解决从标注到部署的全流程后来我们把这个项目换成了深度学习方案用的是分割网络具体来说是U-Net的变体配合少量分类网络做二次确认。第一步是数据采集和标注。我们专门跑了两条产线用高拍仪和工业相机在不同光照条件下采集了大概两万张玻璃图像然后由质检经验丰富的工程师标注出所有划痕区域。标注的时候特别留意了水渍、指纹、边缘反光这些干扰项把它们单独标成一类“伪缺陷”这样模型不仅能学到“什么是真划痕”还能学到“什么是常见假划痕”。第二步是数据增强。玻璃检测很怕过拟合所以我们做了大量数据增强随机旋转、平移、缩放、亮度变化、对比度变化、模拟水雾。实测下来加了模拟水雾的增强后模型在真实产线的误检率明显下降。第三步是训练与调优。用U-Net做像素级分割输出一张和输入同尺寸的掩膜缺陷区域标为白色背景为黑色。训练的时候我用的是Dice Loss配合二值交叉熵学习率设置在1e-4用了Cosine退火策略。这里loss的选择比网络结构更重要我试过只用交叉熵结果小划痕的召回率明显偏低加Dice Loss之后改善很多。第四步是后处理。模型输出掩膜后还要做连通域分析把碎片化的预测区域合并再计算每个区域的面积和长宽比过滤掉小于设定阈值的干扰。这一步和传统视觉很像但输入的掩膜已经比传统二值图干净太多了所以规则非常简单几乎不会有误判。第五步是部署。模型用ONNX导出在工控机上用OpenCV的DNN模块或者ONNX Runtime推理。一张1080P的图分割网络的推理时间大概在80150ms加上前后处理单片节拍控制在200ms以内能满足产线要求。如果节拍更快可以考虑用TensorRT加速或者换用轻量级分割网络。最后的结果是AI方案的漏检率低于0.1%误检率低于0.5%在线跑了一个月没有再出现过大批量误判的情况。甲方不需要再安排专人复判人工成本大幅下降。3.3 两组方案的本质差异为什么AI能赢我们复盘一下这两个方案。对比维度传统视觉方案AI视觉检测方案特征来源工程师手工设计规则模型自动从数据中学习对光照变化容忍度很低光照稍有漂移就出问题较高训练时见过多种光照对干扰项处理靠堆规则容易顾此失彼模型隐含学习了“干扰项”模式缺陷定义能力只能定义“数值特征”可以定义“语义特征”调试周期参数调整以天为单位主要是数据标注和训练迭代上线后误检率3%5%0.5%以下你要说传统方案完全没有优势也不对。传统方案的优点是算法可解释性强CPU算力要求低单套硬件成本便宜而且不需要标注数据。对于螺丝有无、标签正反这种简单任务传统视觉又快又省完全没必要上AI。但只要你面对的是“人眼能看出来但说不清规则”的缺陷AI几乎是必经之路。我个人的判断标准很简单如果我在心里能快速用10条以内规则描述这个缺陷的特征那就先用传统视觉如果我发现需要11条以上规则或者描述到一半自己都觉得矛盾就直接上AI。这条经验帮我避了很多坑。4. AI视觉检测落地要避开的坑数据、模型与部署很多团队上AI视觉项目失败的真正原因不是模型不够先进而是踩了数据、评估、部署这几个环节的坑。这一部分我把自己真实经历过的坑梳理一下给准备上项目的朋友做个参考。4.1 数据问题标注质量决定准确率上限深度学习有一个“Garbage inGarbage out”的铁律你标注得不准模型练出来就不可能准。但这里我想强调的不是“要标注准”而是“标注标准要统一”。我在玻璃项目里吃过一次亏。当时让两个工程师同时标注数据一个人比较严格把很小的点状划痕也标成缺陷另一个人比较宽松只标了细长的划痕。结果模型训练出来对点状凹陷的预测一会儿有一会儿没有非常不稳定。后来我们规定了一套标注SOP长度大于多少像素、宽度大于多少像素、什么形态必须标什么形态不标两个人统一标准后重新标了一批效果立刻稳定下来。另外数据集一定要包含“正常但有干扰”的样本。很多团队只顾着标“缺陷”样本忽略了标“容易误判但其实是OK”的样本。你不给模型看足够的反例它就会把一切看起来像缺陷的东西都当成缺陷。我们玻璃项目里水渍、指纹印、气泡、灰尘全部单独成一类标注这对降低误检率帮助极大。4.2 模型选择先确定你的任务再选网络AI视觉检测的任务类型本质上可以分成三类不同任务要选不同网络千万别一上来就套YOLO。第一类是图像分类只判断“有瑕疵”还是“无瑕疵”。适合简单场景网络可以用ResNet、EfficientNet这样的轻量分类模型。第二类是目标检测需要知道“缺陷在哪个位置”用框标出来。适合缺陷数量少、形态比较完整的场景比如螺丝缺牙、标签污损可以用YOLO系列、Faster R-CNN。第三类是语义分割需要精确到像素级把每个缺陷的轮廓完整画出来。适合缺陷形态复杂、面积大小不一的场景比如玻璃划痕、布匹疵点、钢材表面缺陷用U-Net、DeepLabV3这类分割网络。我的建议是能分类就不检测能检测就不分割。因为分割标注成本最高、训练调试最复杂、推理速度最慢。只有当缺陷形态不规则、位置精度要求高时才用分割。很多项目其实用目标检测就足够了没必要杀鸡用牛刀。4.3 部署与实时性实验室性能不等于产线性能算法跑得好不好最终要看部署环境。实验室用2080Ti显卡跑得很好不代表产线工控机上也能跑。部署环节常见的问题有三个推理框架选型不当。不同框架在不同硬件上的性能差异很大同样的模型ONNX Runtime在CPU上的速度通常比直接用PyTorch快TensorRT在NVIDIA GPU上又有额外加成。我的建议是先量化你的算力预算再选框架不要从一开始就锁定一个。前后处理耗时被忽略。有时候模型推理只要50ms但图像缩放、归一化、通道转换、后处理加起来花了80ms整体就超时了。这些细节要在设计阶段就考虑进去尽量用OpenCV的C接口替代Python端转换。算力消耗在长期运行中不稳定。有些设备跑一段时间后内存占用持续增长最后死机。这通常是内存泄漏要特别关注动态显存分配和图像缓冲区的释放。我给新手的建议是部署问题在设计方案时就要想清楚不要等模型训练完了再考虑。不然你训练出一个精度99%但实时性不达标的模型最后还是得推倒重来。5. 给入门者的一份机器视觉学习路线图有关键词提到了“机器视觉入门”和“机器视觉学习路线”这里我想结合自己带人的经验给想往视觉检测方向转的朋友一份比较务实的学习路线。这份路线不是什么学院派课程表而是我验证过的“能上手干活最短路径”。5.1 阶段一掌握传统视觉基本功23周不要因为AI火就跳过传统视觉。很多AI项目的前处理、后处理还是要用到形态学、阈值分割、连通域分析这些传统技术。我的建议是花23周把OpenCV基础打牢。第一步熟悉图像数据类型理解灰度图、RGB图、二值图的区别。 第二步掌握滤波、阈值分割、边缘检测这几个最常用操作。 第三步重点理解形态学操作尤其是开闭运算的原理和参数选择前面写过。 第四步熟练使用连通域分析掌握面积、周长、外接矩形、长宽比等特征的计算。学完这些你至少能看懂传统视觉项目里的代码逻辑也能自己写一个简单的缺陷检测demo。这一步非常关键因为它能帮你建立“图像就是像素矩阵”的直觉这种思维学深度学习时一样离不开。5.2 阶段二补上基础数学与机器学习概念12周深度学习的底座是线性代数、微积分和概率统计。不需要学得多深但梯度下降、过拟合、训练集/验证集/测试集、准确率和召回率这几个概念必须扎扎实实搞懂。尤其是“准确率”和“召回率”这两个指标视觉检测项目里天天要用。很多新人只看准确率结果做出一个“把所有产品都判为OK准确率也能有95%”的模型根本没有意义。做缺陷检测我们通常更看重召回率因为漏放一个缺陷到客户手里比多判几个NG严重得多。如果时间有限我的建议是不要系统去啃机器学习教材而是把《南瓜书》配合几篇经典博客刷一遍重点看梯度下降和神经网络反向传播的原理。有这几个概念打底后面看深度学习框架的文档就不会一头雾水。5.3 阶段三深度学习视觉入门34周这个阶段是最核心的目标是跑通一个完整的训练流程。第一步选一个深度学习框架PyTorch是首选生态好、调试方便。 第二步用图像分类任务入门跑通MNIST、CIFAR-10理解神经网络训练的完整流程。 第三步学习目标检测和语义分割的基本思想跑通YOLO和U-Net的官方示例。 第四步用一个小规模工业数据集完整走一遍“数据标注-数据增强-模型训练-模型评估-导出部署”的流程。很多新手在这里会犯一个错误就是不停换数据集、不停换模型但从来没有把一条流程完整走通。其实第一次走通全流程比你在10个数据集上各跑一遍要有价值得多。走通一次以后你对整个AI视觉的“工作流”就有整体概念了后面遇到新项目都是对这套流程的局部优化。5.4 阶段四面向落地学部署与优化2周以上学完训练还要学会部署。建议至少掌握ONNX格式转换和ONNX Runtime推理有条件的话可以学一下TensorRT工业场景用得非常广泛。部署阶段要动手做的练习是把一个训练好的分割或检测模型封装成一个接口输入一张图片输出结果和耗时。然后不断优化让推理时间从几百毫秒一步步降到几十毫秒。这个过程中你会接触到图像预处理优化、模型量化、批处理、显存管理等一系列工程问题这些才是工业级项目和课程作业之间最大的差距。我的个人看法是视觉检测入门的核心不是“我背了多少个网络结构”而是“我有没有亲手把一套完整流程跑通过”。走完上面四个阶段最快大概两个月你就有能力进入一家视觉公司做初级算法工程实习生并且在真实项目里快速成长。这比我见过很多研究生毕业时才第一次接触真实产线数据的人要扎实得多。6. 常见问题排查上线之后翻车点在哪最后聊聊项目上线之后常见的坑。每家企业的产品、环境、人员不一样但下面这几个问题我几乎在换过几轮的项目里都会遇到可以帮你提前避开。6.1 模型训练时指标很好一到现场就崩这种问题通常有三个原因按照出现频率排序大概率是一是现场光照和训练数据差异太大。解决办法不是回去调模型而是先花时间采集现场真实光照下的图片扩充训练集。很多项目上线前我就要求先试运行一周把产线各种可能情况下的图片都收回来再做一轮增量训练最后再正式验收。二是背景出现训练时没见过的“新干扰”。比如产线加了新工序玻璃上多了一种切削液的痕迹。这种时候需要快速采集新样本做少量迭代而不是盲目重训整个模型。三是算法鲁棒性不够。这时候可以在现场做压力测试关掉几盏灯、换一个角度拍、移动一下产品位置看算法是否依然稳定。如果明显不稳说明你的训练数据增强还没做到位需要补充光照和角度变化的数据。6.2 漏检率和误检率总是互相打架漏检率和误检率天然是矛盾的。你调高判定阈值误检率下来了漏检率上去了调低阈值漏检率下来了误检率又上去了。很多项目卡在这里进退两难。我的经验是优先保证不漏检再优化误检。因为漏检意味着不良品流到客户端这是质量问题影响很大误检只是多拦下几个良品内部复检或人工判定就能解决。上线前我会跟客户明确这个取舍逻辑把验收指标定成“漏检率必须为0误检率低于某个可接受阈值”这样项目才有推进空间。为了在保证漏检率的同时降低误检率我常用的手段是增加一个“二次确认”环节初级模型先快速筛出疑似区域再用一个更精细的分类/分割模型或者传统规则对疑似区域做二次判定。这个方法在实际项目中效果很好能把误检率再压低一个数量级。6.3 节拍跟不上怎么优化都差一口气视觉检测项目都有节拍要求比如每秒钟检测2个产品。如果算法耗时超过节拍产线就得停下来等这是甲方不能接受的。优化思路一般是按性价比排序优化预处理和后处理代码用C重写关键循环减少图像拷贝和内存分配。减小输入图像尺寸只要在保证精度前提下把分辨率降到够用就行很多场景从1080P降到720P推理时间能降一半精度几乎不掉。换轻量级网络比如从U-Net换到轻量分割网络或者用蒸馏技术把大模型压缩成小模型。升级推理硬件从CPU换到带TensorRT的GPU或者购买工业级AI加速卡。pipeline并行化采集、推理、结果输出并行处理让每张图的等待时间被利用起来。我遇到过一次节拍卡到临界值的情况当时没有马上换硬件而是先做了一个小优化把图像的ROI区域从全图缩小到缺陷经常出现的几个条带区域推理时间直接降了40%问题就解决了。所以在项目里先分析你的瓶颈到底在哪再决定优化方向不要一上来就堆硬件。6.4 集成调试的兼容性问题视觉检测系统往往要跟PLC、机器人、MES系统对接。常见的坑是通信协议不一致、数据格式不匹配、触发信号延迟等等。这方面我的建议是在做视觉方案时一定要留出充足的IO交互接口和状态监控日志现场调试最怕的就是“黑盒”系统出了问题你无法快速定位到底是相机触发丢了还是算法判断错了还是通信超时了。我甚至见过一个项目运行一个月后莫名丢图最后排查半天发现是网线接触不良偶发丢包。这种情况下一个完整的日志系统比任何算法优化都救命。7. 团队角色与能力要求AI视觉项目的真实分工说了很多技术细节还有一件事值得想入行的朋友注意一个落地的AI视觉检测项目从来不是靠一个全能型选手单打独斗完成的而是一个多人团队协作的结果。理解这些角色分工可以帮你更准确地找到自己的定位也方便评估一个团队是否具备把项目做成的能力。7.1 三个关键角色缺一不可我观察下来的成熟团队至少包含三个角色一是光学工程师负责相机、镜头、光源的选型与打光方案设计。很多人低估这个环节的重要性实际项目中遇到的精度不够、图像有阴影、反光强烈等问题70%以上都是光学设计没做好而不是算法不强。玻璃检测这类项目打光方案直接决定缺陷能否显影打光没打好再牛的深度学习模型也白搭。二是算法工程师负责数据标注方案制定、模型选择、训练调优、后处理规则编写、部署优化。这个角色需要有全局视野不能只顾模型精度还要关注推理速度、上线稳定性、现场迭代效率。三是软件开发或系统集成工程师负责设备端界面、通信接口、数据库、PLC交互、MES对接。你要做的是“视觉系统”不是一个离线算法没有人把算法包装成一个稳定易用的软件系统就没法在产线上运行。如果你现在是个人开发者或者小创业团队至少要一人分饰三角但也要心里有数哪些环节是你的短板尽早补课或寻找外部协作。我能带起来的不少项目早期就是靠自己和一两个伙伴把光学、算法、软件全部扛下来后期才慢慢找到专精的伙伴补齐短板。7.2 甲方与乙方的认知对齐还一个非常现实的经验项目能不能成功验收往往取决于甲方与乙方对“合格标准”的认知是否一致。做AI视觉检测项目千万不能验收阶段才跟客户谈误检率要在方案设计前期就把缺陷定义、样本来源、验收指标、试跑周期、异常情况处理方式全部写清楚。尤其是数据的来源必须提前确认谁来采集产线图片谁负责标注如果乙方在实验室自己造数据那模型到了现场大概率水土不服。更好的做法是乙方团队直接到产线现场拍图、现场标注边做数据边理解客户的真实场景。这个过程中你会对工艺、材料、环境有直观认识而这些认识比任何模型调参都更能保证项目落地。8. 扩展应用AI视觉检测还能用在哪些复杂领域玻璃划痕只是AI视觉检测的一个典型场景。实际上只要你能把问题转成“图像输入—缺陷输出”的映射AI视觉检测几乎可以覆盖所有传统视觉做不好的检测任务。这里我列几个我接触过或看过同行做的方向给大家一些场景扩展的启发。8.1 复杂纹理表面的缺陷检测比如木材、皮革、瓷砖、布料表面有天然纹理缺陷和纹理混在一起人眼都需要仔细分辨。传统视觉想提取“缺陷特征”几乎无从下手但AI视觉训练的模型天然适应这种纹理背景很多纹理本身的走向、密度组合就是模型的“背景先验”它借助卷积感受野把局部纹理和周围纹理做对比优秀模型甚至能找出和周围纹理差异极小的局部异常。我之前接触过一个木材拼接板检测项目传统方案只能识别10来种明显缺陷AI方案则能在同一生产线上同时识别开裂、活节、死节、虫眼、胶水残留等20多种异常而且误检率控制在很低水平。8.2 低对比度或透明材质的缺陷检测透明材质是视觉行业的老大难比如透明塑料瓶的生产缺陷、光学镜片表面的细微麻点以及光伏玻璃的隐裂、电池片表面的栅线缺陷。因为材质透明光线穿透方式非常复杂传统算法抓不到明显的边缘信息。AI模型如果训练数据足够丰富能够学到“透明薄壁变形时局部高光和阴影的细微变化”从而识别出一些人眼都容易忽略的微小缺陷。在光伏行业EL检测配合AI已经是主流路线这也说明AI视觉检测在高价值制造业里已经站稳脚跟。8.3 动态变化场景的检测还有一些场景检测目标本身在剧烈变化比如流水线上高速运动的产品、液体内漂浮的微粒、喷码字符的随机位置。传统视觉要么需要极佳的光照和定位要么早已过曝或者模糊导致算法失效。AI视觉检测结合高速相机和深度学习目标检测可以做到对高速动态目标的实时定位和判定部分项目甚至能借助视频流时序信息做运动状态判断。虽然这种场景对硬件要求高但有真实需求的行业都在尝试部署。如果你恰好身处这些行业还在用传统算法一次次地调阈值真的建议抽时间试试AI方案用一个小数据集验证一下效果也许就能打开一个新方向。9. 写在最后我的实际体会与建议最后说几句掏心窝的话。我在视觉检测这个行当摸爬滚打了多年见证过传统视觉近乎垄断的时代也亲眼看着AI视觉从被质疑到成为主流。如果你问我“哪个该学”——我的答案非常明确两个都该学而且要带着应用场景去学。传统视觉不是过时了而是回归到它该在的位置上。它仍然是工业视觉中简单场景的性价比之王也是所有视觉工程师的基本功。AI视觉检测则代表着更广阔的边界它能解决传统视觉搞不定的复杂特征、复杂背景、复杂语义问题但它的前提是你得拥有高质量的数据和踏实的工程能力。如果你刚入门我的建议很直接先用OpenCV玩一百张图片理解像素级的操作再去训练一个自己的小模型走通从标注到部署的完整流程。不要觉得这个路径太长我见过太多人两年过去了还停留在“看论文”的阶段。视觉检测是一个极端面向工程、面向落地的领域只有真正把项目跑起来你才会理解那些参数、指标和代码背后的经验分量。如果你正在管理一个项目我的建议则是不要盲目追求“AI无所不能”也不要固守传统视觉不撒手。前期花时间把缺陷的定义、数据的分布、成像的方案摸清楚这个时间投入远比后期反复返工省钱、省心。以后有新的项目心得我会再回来继续分享。也希望上面这些内容对你有用祝你在视觉检测这条路上少踩坑、多做成事。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门