
上周有个做非标自动化的老朋友打电话过来说接了个活儿客户要在装配线上加一套外观检测问我机器视觉这套东西从零开始搭要多久。我没直接回答他而是先问了三个问题缺陷最小多大、节拍要求多少、现场允许装多大的机构。他愣了几秒说客户没提。这就是绝大多数人第一次接触机器视觉时的真实状态——知道这东西能让机器看懂东西但不知道它到底由什么撑起来也不知道哪些环节会悄悄决定项目生死。这篇文字想做的事情很朴素把机器视觉这个概念从听起来很高大上拉回到车间地面上讲清楚它是什么、由哪几块拼起来、哪些参数在背后偷偷决定成败、学习的时候该按什么顺序啃、面试和现场又会被问到什么。适合刚入行的工程师、从电气或机械转过来的朋友也适合那些被供应商的方案书绕晕了的项目经理。看完你至少能做到一件事拿到一个检测需求知道该先问什么、先算哪一笔账。1. 机器视觉到底是什么拆开一条产线看本质1.1 从一条真实产线说起我在一家做连接器的小厂待过一段时间那条线每天要过几十万个端子人工目检的工位坐着六个姑娘每人面前一盏台灯、一把镊子。她们的工作是把端子上微米级的毛刺、压伤、镀层发黑挑出来。问题不在她们不认真而在于人眼在连续盯了三个小时之后判断标准会悄无声息地漂移——上午判合格的件下午可能就判成不合格。这不是态度问题是生理问题。后来那六个工位被两套视觉系统替换掉一台相机配一个远心镜头加背光算法跑到工控机上节拍压到 120 毫秒一件。这不是什么高精尖项目但它把机器视觉的四个本质特征全展示出来了非接触、高重复性、可量化、能长时间稳定输出。把这四个词展开讲非接触意味着测量过程不碰工件不产生应力、不划伤表面这对薄片、软材质、镀层件特别关键高重复性意味着同一个工件测一百次结果几乎一模一样这是人眼永远做不到的可量化意味着每个判断背后都有数值出了争议可以回溯能长期稳定输出意味着它不请假、不走神、不涨工资当然前提是你把方案做对了。反过来说机器视觉也有它明确的天花板。它对没见过的缺陷反应迟钝对光照环境的扰动敏感对装夹的一致性要求苛刻。一个在实验室里跑得漂漂亮亮的算法搬到车间第二天就可能因为隔壁焊机跳闸引起的电压波动而集体误判。理解这些边界比记住一堆算法名字重要得多。1.2 一套视觉系统的六块拼图很多人以为机器视觉就是相机加软件这是最要命的误解。按我的经验一套完整系统至少包含六块缺哪一块都会在现场翻车光源与打光结构这是最容易被轻视、也最影响成败的一块。同一台相机、同一套算法换个打光方案检出率能从 60% 跳到 99%也能从 99% 掉到 50%。镜头决定视野、工作距离、分辨能力和畸变水平。远心镜头贵但在尺寸测量场合几乎不可替代。相机与图像传感器面阵还是线阵、CCD 还是 CMOS、分辨率多少、帧率多少、接口是 GigE 还是 USB3 还是 Camera Link。图像采集与传输链路包括采集卡、网卡、线缆、供电。这一块出问题最隐蔽表现往往是偶尔丢一帧很难复现。算法与软件平台传统算子库如 Halcon、VisionPro、OpenCV负责定位、测量、匹配深度学习负责分类、分割、异常检测。两者不是替代关系是接力关系。执行与通信把判断结果变成动作——PLC 剔除、机械手抓取、MES 记录。这块做不好系统再准也只是一台会思考的哑巴。我见过太多项目前面五块都做得不错最后卡在通信上检测结果出来了但剔除气缸的响应时间比检测周期还长结果一整批不良品流到下游。所以做方案的时候别只盯着相机参数把执行链路的时序也一起画出来。1.3 机器视觉和计算机视觉别混为一谈这两个词在中文语境里经常被混用但它们的关注点差别很大。计算机视觉更偏学术和通用场景追求的是在开放世界里理解图像容忍一定概率的失败允许用海量数据训练一个大模型。机器视觉更偏工业和工程追求的是在受控环境里对每一个件给出确定性判断它不能容忍模糊,因为后面连着的是良率、成本和客户投诉。打个比方计算机视觉像是一个见多识广的导游能给你讲出画面里大概有什么机器视觉像是一个拿着游标卡尺的质检员它必须告诉你这个孔是 5.02 毫米还是 5.03 毫米。这个区别直接决定了技术选型。工业场景里如果你能用几何算子解决的问题就别上深度学习——不是深度学习不好而是它的不确定性和可解释性在工业验收环节会很麻烦。客户问为什么这个件被判不合格你得给得出一个能写进报告的理由而不是模型输出的置信度是 0.87。2. 决定成败的隐形变量像素精度到底被什么牵动2.1 先把这笔账算清楚机器视觉动了什么会导致像素精度变化——这是搜索热度很高的问题说明很多人卡在这里。要回答它得先知道像素精度是怎么来的。最基础的一层叫单像素精度算法很简单单像素精度 相机视野宽度FOV毫米÷ 相机横向像素数举个例子。你要检测一段 100 毫米宽的工件用一台 500 万像素的相机分辨率是 2448 × 2048。那么横向单像素精度就是 100 ÷ 2448 ≈ 0.041 毫米/像素也就是 41 微米。但 41 微米不等于能测出 41 微米的缺陷。按行业里比较通用的经验一个缺陷要被稳定检出它在图像上至少要占到3 到 5 个像素对比度低的时候甚至要 8 个像素以上。所以这台系统大概能稳定检出 0.12 到 0.2 毫米量级的缺陷。如果客户要求检出 0.05 毫米的划痕这套配置直接不成立得换更高分辨率的相机或者缩小视野。视野和分辨率的乘积关系决定了精度和视野天生是一对矛盾。想看得细就得看得窄想看得宽就得接受粗。这个矛盾没有任何算法能从根本上绕开——亚像素技术能提升到 1/10 甚至 1/50 像素但它依赖灰度的连续性遇到边缘模糊、噪声大、纹理杂乱的图像亚像素的稳定性会大幅下降。我通常会在方案阶段算三个数所需最小可检出特征尺寸、当前配置的理论检出极限、安全系数。安全系数我一般留 2 倍以上因为现场的光照、镜头畸变、机构抖动都会吃掉一部分理论精度。2.2 哪些因素会偷偷改变像素精度标题里问的动了什么会导致像素精度变化答案其实是一串连锁反应。下面这张表是我自己整理的现场排查时对着一项项看基本不会漏。变动因素对像素精度的影响路径现场表现应对方向工作距离变化视野随之改变单像素代表的实际尺寸变化换批次后测量值整体偏移固定机械结构定期复检标定镜头焦距更换视野和放大倍率直接改变同一配置换镜头后数值全变更换镜头必须重新标定相机分辨率变化分母改变比例尺改变升级相机后需重建标定文件标定文件版本化管理镜头畸变未校正视野边缘像素代表的尺寸不均匀画面中心准、边缘不准做畸变标定必要时用远心镜头标定板精度与姿态比例尺本身不准系统整体系统性偏差用高精度标定板多姿态采集机构重复定位精度工件实际位置与假设位置不符同一件多次测量结果跳动提高定位夹具刚度加定位算法温度漂移镜头、相机、机构热胀冷缩开机两小时和开机十分钟结果不同预热后再标定恒温环境光源衰减与频闪不同步图像对比度下降边缘变糊使用数月后检出率缓慢下滑光源定期更换频闪与曝光同步这张表里最容易被忽略的是温度漂移和光源衰减。它们都是缓慢发生的不会让你一下子发现只会让良率在一个月里从 99.5% 悄悄掉到 97%然后你被客户叫去开会。我的做法是在系统里加一个定时自检每班次开机后用标准件跑一遍把测量值和基准值对比超出阈值就报警。这个机制救过我不止一次。2.3 精度、重复性、稳定性三个词别混着用这三个词经常在方案书里被随意替换但它们的含义完全不同验收时的测试方法也不同。**精度Accuracy**指的是测量值和真值的接近程度。它反映的是系统性偏差可以通过标定修正。**重复性Repeatability**指的是同一个工件反复测量结果的离散程度。它反映的是随机误差标定修正不了只能靠提高机械稳定性和图像质量来改善。**稳定性Stability**指的是系统在长时间运行、环境变化下的表现一致性。它包含了前两者随时间的变化。现场最常见的情况是重复性很好精度很差。也就是说系统每次测出来都是 5.10 毫米但真值是 5.00 毫米。这种问题好解决重新标定就行。最怕的是反过来平均值是对的但每次跳动 ±0.05 毫米。这种问题难缠因为它的根源可能在机构、在光源、在振动也可能在算法阈值设得太临界。验收的时候我坚持做两件事一是用标准件做 30 次以上的重复测量算出标准差二是连续跑 8 小时每小时复测一次标准件画一条漂移曲线。这两组数据一出来系统行不行一目了然也省得后面扯皮。3. 打光机器视觉里最便宜也最贵的环节3.1 为什么说光打好了算法省一半这句话在行业里流传很广但真正理解它的人不多。我举个自己的例子。早些年做一个金属冲压件的表面检测工件上有拉丝纹理缺陷是细微的凹坑。最初用的是普通环形光图像上纹理和凹坑混在一起算法只能靠形态学硬筛误判率高得离谱调了一个星期参数也压不下去。后来换成低角度条形光光从侧面斜射过来凹坑因为改变了反射方向变成暗斑而平整的拉丝面大部分光反射不进镜头整张图干净得像换了个工件。算法从两百行降到二十行检出率还上去了。打光的本质是用光的几何关系去放大好区域和坏区域之间的差异。你想检验凸起就让光斜射让凸起产生阴影你想检验透明件的内部杂质就用背光把杂质投影成黑点你想检验高反光表面的划痕就用同轴光垂直入射让平面反射回镜头而划痕散射掉。算法是在图像上做数学运算而打光是在物理世界里提前做了一次特征增强。前者要多花算力和调试时间后者只需要换一只光源和调一下角度。哪个划算算都不用算。3.2 常用打光方案与适用场景下面这张表是我这些年攒下来的对照方案选型时先在这里找对应再谈细节。打光方案基本原理擅长场景明显不适用环形光高角度光从四周垂直照射平面字符、一般表面缺陷高反光面会产生亮斑环形光低角度光以小角度掠射划痕、凹坑、纹理破损深度大的孔内部条形光单向线性照射角度可调边缘轮廓、局部区域强化大面积均匀照明背光漫射光从工件背面穿过轮廓尺寸、孔位、透明件杂质表面缺陷检测平行背光准直光从背面照射高精度轮廓测量成本较高机构占位大同轴光光与镜头同轴经分光镜入射高反光平面上的划痕、字符曲面、深腔圆顶光/漫射罩内壁多次漫反射形成无影照明曲面、反光金属、复杂形状需要方向性特征的场合点光/聚光小面积高亮度集中照射局部特征、远距离补光大面积均匀性要求偏振光利用偏振片抑制镜面反射消除表面反光看内部需要特定反射特征的场合红外/紫外超出可见光波段成像穿透表层、特殊材料响应需要可见光成像的场合这张表不是死规矩。实际项目里我经常要把三四种方案做小样测试用同一批样品分别在每种方案下拍图然后对比哪种图让缺陷最容易跳出来。这个动作叫打光验证做一天时间能省掉后面两周的算法调试。3.3 实操里最容易翻车的打光细节方案选对了细节没做好一样白搭。下面几条都是我自己踩过的。角度比亮度重要。新手总想着把光调亮一点其实光源亮度和相机曝光是互相补偿的调亮没用。真正改变图像对比度的是入射角度和观察角度之间的关系。低角度掠射时哪怕光很暗凹坑依然清晰。距离改变会改变光斑。光源离工件越近光斑越小越集中离得远光斑大但亮度衰减快。机构的公差会让这个距离在批次间波动所以打光结构要做成刚性固定别用那种靠螺纹微调的软结构用久了会滑。环境光必须遮住。车间的窗户、过道的照明、隔壁设备的指示灯都会往镜头里灌光。我一般的做法是给相机和工件区域加一个遮光罩成本几十块效果比调参数强十倍。频闪要和曝光严格同步。用频闪光源能延长寿命、提高瞬时亮度但如果触发时序对不上图像会出现明暗不均。示波器是排查这个问题的好工具别嫌麻烦。光源会老化要有更换计划。LED 标称寿命几万小时但亮度衰减到 70% 的时候图像对比度就明显变化了。我一般会在系统里记录光源使用时长到点提醒更换同时保留一份基准图像用来对比当前图像的灰度分布。给打光留出调整余量。做机构设计时我坚持光源支架要能在三个方向各留 ±5 毫米的调节量还要能绕两个轴旋转。现场光照条件跟实验室永远不一样没有余量就只能现场改图纸。4. 从 2D 到 3D什么时候必须上三维4.1 2D 的物理天花板在哪2D 视觉拿到的是投影它丢掉了深度信息。这意味着几类任务它天生做不了或者做不好一是高度和深度测量。一个盲孔的深度、一个台阶的高度、一块 PCB 上焊锡的爬升高度2D 只能通过阴影侧猜猜不准。二是曲面和自由形状。圆柱面、球面、复杂曲面上2D 图像会有透视变形和光照不均算法很难稳定。三是体积和三维形变。比如检测一个密封圈的压缩量、一个泡沫件的鼓包2D 完全无能为力。四是遮挡。工件自己挡住自己的部位2D 就是拍不到。除此之外还有一类情况缺陷的对比度在 2D 图像里实在太低但在高度维度上差异明显。比如同色同材质的两个表面一个有 20 微米的凹陷2D 灰度上几乎没差别但用高度图一眼就能看出来。判断要不要上 3D我通常问一句客户的验收标准里有没有高度深度体积平面度这类词有就直接考虑 3D别硬用 2D 凑。4.2 3D 视觉的三条主流路线3D 入门通常会遇到三条路线它们的原理、精度、成本差异都很大。路线工作原理典型精度速度成本适用场景激光三角测量激光线/点投射到表面相机从另一角度看位移微米级到几十微米中高中轮廓扫描、焊缝跟踪、高度检测结构光投射编码条纹通过条纹变形解算深度几十微米到零点几毫米中中高中近距离三维重建、抓取引导飞行时间ToF测量光往返时间求距离毫米级高低到中大场景、体积测量、避障双目立体视觉两个相机视差解算深度毫米级依赖纹理高低大尺寸物体、有纹理表面光度立体多个方向打光用明暗变化求法向量亚微米级表面细节高低表面缺陷增强、纹理检测需要说明的是光度立体严格来说不算测深度它测的是表面法向量但对表面缺陷的敏感度非常惊人成本又低我个人很推荐作为 2D 的有力补充。激光三角测量是工业里最常见的一种线激光扫描配合运动平台可以扫出完整的点云轮廓。它的好处是精度高、抗环境光能力强缺点是扫描需要相对运动节拍受限制而且对高反光、透明材质容易丢点。结构光的优势是一次成像得到整幅深度图不需要运动适合抓取引导这类场景。缺点是对环境光和表面反射特性敏感标定也比较麻烦。ToF 精度最粗但胜在速度快、距离远、成本低适合 AGV 避障、大件体积测量这类不需要高精度的场合。4.3 选 3D 之前先算清节拍和成本3D 系统比 2D 贵而且贵得不只是硬件。标定工作量、点云算法的开发量、调试周期通常都是 2D 的两到三倍。所以每一次决定上 3D我都会先算两笔账。第一笔是节拍账。线激光扫描的时间等于扫描长度除以扫描速度再乘以行数。假设你要扫一个 100 毫米长的工件需要 2000 个轮廓扫描速度是 100 毫米/秒那么单次扫描就是 1 秒。如果产线节拍是 0.5 秒这个方案就不成立得换结构光或者多相机并行。第二笔是精度账。激光三角测量的精度和基线长度、工作距离、镜头焦距都相关。基线越长、工作距离越短精度越高但遮挡问题越严重。这是一组需要在设计阶段就摆平的矛盾。点云拿到之后处理链路通常是滤波去噪、下采样、配准、分割、拟合、测量。这里面配准ICP 之类的算法是最耗时的一环如果工件每次摆放姿态差异大配准时间会拖垮节拍。所以 3D 项目里定位夹具的设计往往比算法更关键。5. 学习路线与工具栈少走弯路的顺序5.1 三层结构别跳着学机器视觉学习路线是长期热搜说明大家普遍迷茫。我把学习内容分成三层顺序很重要。第一层成像与图像基础。这一层是最枯燥也最不能跳的。你得理解光的反射、镜头的成像公式、焦距与视野的关系、景深、畸变、传感器的量子效率和噪声来源。图像处理部分至少要掌握灰度变换、直方图、滤波、边缘检测、形态学、阈值分割、连通域分析。这些听起来像老古董但它们是你后面所有判断的基础。很多人跳过这层直接学深度学习结果遇到问题时完全不知道该往哪个方向调。第二层工具与算法。传统算子和深度学习两条线都要摸。传统这条线选一个主流平台深入用比如 Halcon 的算子体系和它的匹配算法深度学习这条线从分类和分割入手学会标注、训练、评估的完整流程理解什么是过拟合、数据增强、混淆矩阵。两条线的关系是传统算子负责定位和测量深度学习负责难以用规则描述的判断。第三层工程与落地。这层是学校和培训班都不教、但工作里天天用的东西。包括相机与 PLC 的通信、触发与曝光的时序、标定的实操、光源的选型和安装、机械结构的配合、MES 系统的对接、以及最关键的——怎么写一份客户能看懂、能验收的方案书。5.2 教材和实操怎么配比关于教材机器视觉算法与应用第 2 版这本书是很多人推荐的入门读物它的好处是把成像、算法、应用串起来了讲得比较系统。类似的还有数字图像处理方向的经典教材。但我要提醒一句看书的时间不要超过总学习时间的三分之一。原因很简单机器视觉是一门工程学科很多东西只有在调不出结果的时候才会真正理解。比如对比度不足这四个字书上写一句话你自己实际拍一张灰蒙蒙的图试着调亮度、调对比度、换打光、改曝光折腾半天最后发现是光源角度问题这个过程比看十页书都有用。我的建议是每学一个知识点就找一个小任务做一遍。学完滤波就找一张有噪声的图去噪学完标定就拿打印的棋盘格做一次标定看看重投影误差是多少学完匹配就找几个零件图做模板匹配观察旋转和缩放下的表现。这种学了就用的节奏效率比纯啃书高一倍不止。5.3 一份可执行的 90 天计划下面这份计划是我带新人时用的按每周 10 到 15 小时投入计算可以根据自己的时间缩放。阶段周次核心任务产出物基础期第 1-3 周成像原理、镜头参数、图像处理基础算子一份镜头选型计算表工具期第 4-6 周熟悉一个传统视觉平台完成定位与测量任务三个可运行的检测小项目打光期第 7-8 周用手机或工业相机做多方案打光对比一份打光方案对照报告标定期第 9-10 周完成相机标定与手眼标定标定误差分析文档深度期第 11 周分类任务的全流程训练与评估一个缺陷分类模型和混淆矩阵三维期第 12 周用线激光或结构光做一次点云采集与测量一份点云测量报告综合期第 13 周从需求到方案完整走一遍设计流程一份完整的视觉方案书这份计划里我认为价值最高的是第 13 周。前面十二周练的是零件最后一周练的是把零件拼成机器的能力。很多人技术不差但一到方案阶段就抓瞎就是因为从来没有独立走完过完整流程。6. 从需求到落地一个解决方案的拆解思路6.1 需求澄清清单一项都不能少机器视觉解决方案实例这类内容网上很多但可以直接抄的太少因为每个项目的约束条件都不一样。不过澄清需求的清单是通用的我每次接到新项目都会照这个问一遍检测对象材质、尺寸、颜色、表面状态、是否反光、是否透明。缺陷类型划痕、凹坑、脏污、缺料、错位、尺寸超差每一类的形态和尺寸范围。精度要求最小可检出的缺陷尺寸测量项的允差。节拍要求单件检测时间上限是否需要在线检测。工位条件安装空间、工作距离、有无振动、环境光情况、温度范围。输出需求是否需要定位坐标、是否要剔除、是否要存图、是否要上传 MES。验收方式用标准样品还是客户现场抽样误判率和漏检率的指标怎么定。这里我要特别强调最后两项。很多项目最后扯皮不是因为技术不行而是因为验收标准没提前说清楚。客户说漏检率低于 0.1%你要追问用多少样品测样品里有多少不良是谁提供的样品如果客户提供的样品里根本没有某种缺陷类型那这个指标就没有意义。我一般会在合同里附一份《检测规格书》把缺陷类型、尺寸范围、判定标准、验收方法全写进去双方签字。这份东西能省掉后期 80% 的争议。6.2 一个真实案例的完整推演拿一个我做过的小项目来说。需求是检测某冲压件上的毛刺工件是 30 毫米 × 20 毫米的金属片毛刺出现在边缘长度 0.1 到 0.5 毫米。节拍要求 0.3 秒一件安装空间只有 200 毫米的工作距离。先算第一步视野。工件 30 毫米宽留一些余量FOV 定为 40 毫米。用 500 万像素相机横向 2448 像素单像素精度 40 ÷ 2448 ≈ 0.016 毫米也就是 16 微米。毛刺最小 0.1 毫米在图像上占约 6 个像素满足 3 到 5 像素的检出要求还留了余量。这一步说明分辨率够用。第二步镜头。工作距离 200 毫米视野 40 毫米需要放大倍率约 0.05 到 0.1 之间的镜头。这个倍率下普通工业定焦镜头可以用畸变在可接受范围内配合畸变标定即可。不一定要上远心镜头因为毛刺检测是有无判断不是高精度尺寸测量。第三步打光。毛刺是凸起结构适合低角度侧向照明。我选了一条低角度条形光从工件边缘方向掠射毛刺在图像上会形成明显阴影而平整表面处于暗场。为了覆盖整个边缘用了两条条形光从两侧对射。第四步算法。先做工件定位用形状匹配找到工件位置和角度再在边缘区域做灰度投影统计每列像素的暗点数量超过阈值就判毛刺。整个流程用传统算子就够了不需要深度学习。第五步执行与通信。检测结果通过 I/O 触发剔除气缸同时把图像和判定结果上传到本地数据库按日期存图。剔除气缸的响应时间是 15 毫秒加上系统的检测时间 80 毫秒总耗时约 100 毫秒满足 0.3 秒的节拍要求。这套方案从设计到上线用了三周其中打光调试占了一周半。这个比例很正常我甚至觉得更极端的情况也不少。6.3 现场调试的三个阶段现场调试我会分三段走。第一阶段是静态验证。用客户的样品在静态条件下跑确认算法在最优图像下能达到指标。这个阶段要刻意去找极限找最小的缺陷、最模糊的、最接近边界的看系统怎么判。第二阶段是动态验证。让产线跑起来用真实节拍连续跑几千件。这个阶段会暴露出一堆静态发现不了的问题振动导致图像模糊、触发偶尔丢帧、环境光随车间门开合变化、机构重复定位误差导致的定位失败。这些问题没有捷径只能一条条记下来一条条改。第三阶段是稳定性验证。空跑一到两天不停机看误判率是否有漂移。这个阶段我会每小时记录一次标准件的测量值画成曲线。曲线平稳就交付有漂移就继续查。7. 面试与实战的常见问题速查7.1 高频面试题和答题骨架机器视觉面试这门功课题目的套路其实不深但答得好不好差别很大。下面是我见过的一些高频问题和我的答题思路。问解释一下模板匹配的原理什么时候会失败答的时候先讲清楚基于灰度的匹配和基于形状的匹配的区别前者用归一化互相关后者用边缘梯度向量。然后讲失败场景光照突变导致灰度匹配失效、遮挡超过一定比例、尺度变化超出搜索范围、图像旋转角接近 45 度时行列表会出现混叠、纹理重复时产生误匹配。最后补一句你实际怎么处理——我一般用形状匹配做粗定位再用局部灰度做精定位。问如何选择相机和镜头答题骨架是从需求反推先算所需视野和最小可检出特征尺寸得出像素精度需求再结合帧率需求确定分辨率然后根据工作距离和视野选焦距和靶面尺寸最后校核景深和畸变。把公式写出来比空谈选型原则有说服力。问什么是亚像素为什么它能提高精度什么时候不能用从灰度分布的连续性讲起边缘处灰度是渐变的可以通过拟合求出亚真值。然后讲限制噪声大、边缘模糊、材质纹理杂乱、曝光过度导致灰度饱和时亚像素会失效甚至比整像素更差。问深度学习在工业视觉里的优势和风险分别是什么优势是能处理规则难以描述的缺陷类型比如复杂的纹理异常、非固定形态的缺陷。风险是数据依赖强、可解释性差、泛化能力受训练集限制、需要持续维护。回答的时候最好举一个你实际用过的例子。问手眼标定的原理说一下。分 eye-in-hand 和 eye-to-hand 两种分别讲标定的目标方程和求解方法说明为什么要采多组姿态以及标定误差如何评估。7.2 常见故障速查现场问题往往比面试题刁钻。我整理了一份速查表遇到问题时按行对照能省不少时间。现象可能原因排查手段图像整体偏暗光源老化、曝光时间不足、镜头光圈过小检查光源亮度、调曝光、开大光圈图像明暗不均光源离工件太近、环境光入射、镜头暗角加遮光罩、调整光源距离、检查镜头定位偶尔失败振动、机构重复定位差、模板更新不及时加刚性、检查夹具、重新制作模板测量值整体偏移标定失效、工作距离变化、温度漂移重新标定、检查机构、预热后复测测量值频繁跳动光源不稳定、振动、阈值临界稳定光源、减振、调整判定阈值偶尔丢帧网线质量差、传输带宽不够、触发信号干扰换工业网线、降帧率、检查布线屏蔽使用一段时间后检出率下降光源衰减、镜头积灰、算法阈值未更新清洁镜头、更换光源、复核阈值深度学习模型效果变差现场物料变化、数据漂移采集新数据增量训练7.3 我个人踩过的几个坑第一个坑为了省成本用了非工业网线。项目上线第二周开始出现偶发丢帧概率大概千分之一。这种问题最难查因为复现要靠运气。后来换了带屏蔽的工业网线把线缆走向也远离了变频器问题消失。教训是传输链路的钱不能省。第二个坑标定做了一次就再也没复检。系统跑了大半年客户反馈测量值整体偏了 0.03 毫米。查下来是机构因为螺栓松动导致工作距离变了。后来我在系统里加了每周自动提醒用标准件复测一次把结果记进日志。这个习惯后来帮我提前发现过两次类似问题。第三个坑把算法调得太临界。早期做一个字符识别我把判别阈值卡得非常紧实验室里识别率 100%结果到了现场光照一变识别率直接掉到 85%。后来我把阈值放宽同时增加了拒识机制——不确定的件直接判为需要人工复核而不是强行给一个可能错误的答案。工业现场里我知道我不确定比我猜一个有价值得多。第四个坑低估了客户样品和量产件的差异。实验室里的样品是客户精挑细选的量产件因为模具磨损、来料批次差异表面状态差很多。后来我坚持在方案阶段就去客户产线上随机抽取至少 200 件真实产品做测试包括换班次、换料批。这一步多花两天能避免后期无数的返工。第五个坑通信协议没提前对齐。项目做到最后发现视觉系统给 PLC 的数据格式和对方预期不一致一个是浮点数一个是整型放大十倍为了统一又花了一周。现在的做法是开工前就把通信表定死包括地址、类型、单位、字节序双方签字确认。机器视觉这个东西技术深度是有的但它更像是一门工程手感的学问。你能把公式背得滚瓜烂熟但真正让你在项目里不翻车的是那些被光照、振动、公差、协议折磨过的经历。我自己到现在每接一个新项目还是会先去现场站两个小时什么都不做就看产线怎么跑、物料怎么流、光线怎么变。这两个小时花的钱比后面加班两天便宜得多。如果你刚开始学我的建议是别急着买贵的设备。一台入门工业相机加一个可调焦镜头再配两条能调角度的条形光成本不高但它能让你把成像、打光、标定、算法这条链完整跑通一遍。跑通一遍之后你会发现自己看那些方案书的时候眼睛能落在关键的地方了。至于后面要不要往 3D 走什么时候引入深度学习这些都得等你在 2D 上把基本功练扎实再谈。顺序错了学得越多越乱。