这几年我跑过不少装配车间,最深的感触是:大多数工厂不是没有SOP,而是SOP和实际作业之间隔着一层“眼不见为净”。墙上挂着标准作业流程图,工位上贴着装配要点,但真到了节拍紧张的时候,工人怎么做、有没有跳过步骤、扭矩打得对不对,基本靠班长巡检和老师傅的火眼金睛。这种模式注定是抽样式的,漏检率不低,追溯基本靠纸。后来我在几个项目里尝试把SOP、AI和视频分析三者组合起来,给装配工位装上实时“眼睛”和“大脑”,效果比预想中扎实。这篇文章把整套思路、技术选型和落地过程中的坑都梳理一下,给正在做装配过程质量管控的朋友做个参考。
1. 装配质量管控的痛点与“火眼金睛”的总体思路
1.1 挂墙上的SOP与藏在手底的偏差
工厂里的SOP,典型状态是什么?工艺部门辛辛苦苦把装配步骤写成文档,配上图示和注意事项,打印塑封,然后挂在工位旁边。但作业员实际操作的时候,很少会真的一步步对着SOP来。尤其节拍一快,人的记忆就会“简化”步骤,比如原本要求先装垫片再装螺栓,实际可能先把螺栓带上去,垫片后面补;原本要求扭矩分两段紧固,实际可能一把打到位就算完。这些偏差单靠事后检验,几乎发现不了。
最终测试能拦截功能性问题,比如通电不亮、装配松动,但拦截不了过程违规。少打一颗螺丝,如果产品还能通过终检,那这个问题就永久沉入数据海底了。更麻烦的是,一旦市场上出现批量投诉,想追溯某个产品是哪条线、哪个班次、哪个工位、哪几个关键动作出了问题,传统模式下几乎不可能。记录靠纸,判定靠人,追溯靠运气,这就是大多数装配车间的真实底子。
SOP本身没有错,错在执行是开环的。做没做、怎么做、做得对不对,没有一个客观的实时记录。所以后来我开始琢磨:能不能用机器视觉把这些“手底下的偏差”变成可记录、可判定、可预警的过程数据?这就是AI和视频分析进入装配流程的真正切入点。
1.2 AI与视频分析补上的是“过程数据”这块拼图
把AI和视频分析引入装配工位,本质上做的是“过程数据”的采集和判定。视频摄像头是眼睛,24小时不眨眼睛,不疲劳,不会因为盯了两个小时就眼花;AI是大脑,负责把画面里的目标、动作、状态识别成结构化的事件;SOP则是尺子,给这些事件设定“应该怎样”的基准。
举个例子。一台发动机装配线上,工艺要求某工位必须在安装正时链条前,先确认张紧器处于释放状态。传统方式靠作业员目检,容易出现漏检。上了视频分析之后,算法可以识别张紧器的位置状态,如果作业员在没有确认的情况下直接开始装链条,系统立刻报警并把这一段视频截取下来。你看,这就是把SOP里的一句“须确认”翻译成了机器能够持续执行的判定逻辑。
当这套体系建立起来,它就不止是一个监控工具了。产线主管能实时看到每个工位的合规率,质量工程师能得到完整的装配过程录像和事件日志,工艺工程师能根据这些数据发现哪些步骤经常出错、哪个工位培训不到位。SOP从墙上的纸,变成了真正约束行为和指导改善的数字化标准。
1.3 这套方案到底适合谁、能用在哪
从适用场景来说,不是所有装配线都适合上这套东西。我的经验是,凡是手工操作占比高、工序重复性强、关键质量特性依赖操作手法的工位,价值就很大。比如汽车零部件装配、电子产品的精密组装、家电产线的电机装配、医疗器械的部件安装,这些场景动作相对固定,又经常出现漏装、错装、扭矩不到位的问题,视频分析正好对症。
涉及人身安全的操作(比如冲压区域的手部防护检查、安全光栅区域的违规伸手)也是很好的应用点,算法识别到作业员在危险状态下操作,可以联动设备急停。
但如果是全自动设备为主的产线,节拍极短、动作在机腔内部、视线遮挡严重,那视频分析的价值就要打个问号。这种场景更适合从设备PLC信号入手,而不是硬上视觉。所以,方案好不好,先看工位是不是“人干活、活得看”的形态。适合的人来看这篇东西,主要是工艺工程师、质量工程师、产线车间主任,还有准备切入工业AI视觉的集成商朋友。
2. 整体架构设计与技术选型
2.1 系统分层设计:从摄像头到看板
一套完整的装配作业AI视频分析系统,我的习惯是按四层来设计。第一层是感知层,负责图像采集,硬件主要是工业相机或高分辨率网络摄像头,配合补光设备。第二层是分析层,负责视频流的实时推理,常见载体是边缘计算盒子或GPU服务器,上面跑着目标检测、关键点检测、OCR等模型。第三层是规则层,这是很多项目容易忽略的一层,它负责把SOP里的动作序列和工艺条件翻译成结构化规则,供推理结果去匹配判定。第四层是应用层,负责把判定结果变成产线能用的东西,包括实时看板、声光报警、工位PAD提示、MES工单联动以及报表导出。
这四层之间的数据流大概是这样的:摄像头通过RTSP协议把视频流推到分析服务,分析服务按固定时间间隔(比如每秒3帧)抽帧推理,识别到的事件带上时间戳和置信度写入消息队列,规则引擎消费这些事件,与SOP规则做比对。比对命中的情况就放行,比对失败就触发报警,同时截取前后各5秒的视频片段存入归档目录。
有一件事我反复跟团队强调:架构一定要把“算法”和“规则”解耦。因为工厂里的工艺变更很频繁,今天改了一步,下周又调回来了。如果判断逻辑写死在模型里,改一次就要重新训练,成本太高。把模型层做成“纯识别”,只管看到什么;把规则层做成“可配置”,用表格就能改工艺要求,这才是装配场景能长期用下去的关键。
2.2 算法选型:为什么不必一上来就上大模型
不少朋友一听AI视频分析,第一反应就是上大模型、深度学习框架,觉得越高级越好。我的建议恰恰相反,先看最小可用单元是什么。以我目前做过的大多数装配工位项目,涉及到的主要算法无非就四类。
目标检测是最常用的,主要是定位零件、工具、料盒、治具这些静态物体,判断它们是否出现在该出现的位置。比如某工步要求使用型号A的螺栓,算法就检测作业员手里拿的到底是什么,型号B出现了就报警。这类需求用YOLO系列就能解决,部署成熟,推理速度快,工业案例也多。
关键点检测主要用来判断人的动作。装配场景里最常见的是手部关键点和上半身关键点。通过关键点坐标可以计算手与物体之间的位置关系,判断“拿取”“放入”“按压”“旋转”这些操作是否在规定的空间区域内发生。这部分算法要针对现场做微调,但不需要自研模型,开源方案配合迁移学习已经够用。
第三类是时序行为判定,用来解决“动作顺序对不对”的问题。很多团队一提到顺序判断就想到Transformer、SlowFast这类重型时序模型。但我实测下来,在工位级场景里,使用“事件序列加规则引擎”更稳。模型只要识别出“手伸向料盒”“手返回装配件”“工具离开”这几个关键事件,规则引擎检查事件顺序和间隔时间是否符合SOP就行。这种方式更可控,也更容易向工艺人员解释,排查问题的时候不必去猜模型在哪个层学偏了。
第四类是OCR读数,主要针对数字仪表、扭矩显示屏、标签信息做校验。比如某工位要求扭矩扳手设定在25牛米,算法读取屏幕数值确认当前设定值无误,作业员才能开始拧紧。
整体选型原则是:能用规则解决的就不上模型,能用小模型解决的就不上大模型。大模型在工业现场意味着更高的算力成本、更长的推理延迟和更难以控制的误报,而装配合规判定恰恰需要又快又稳又解释得清楚。
2.3 部署方式与摄像头选型的几个细节
部署方式上,我倾向于边缘计算加集中管理的混合架构。每个工位放一台边缘计算盒子,负责本工位的视频推理,即使主干网络中断,本工位报警不中断。分析结果和报警记录再异步上报到中心服务器。如果所有视频流都拉到一台中心GPU服务器处理,网络抖动和延迟很容易造成关键动作漏判。
摄像头选型有几个容易被忽略的参数。一是帧率,很多人觉得帧率越高越好,但高帧率意味着巨大的算力消耗。装配动作再快,两三秒内总有可辨识的形态变化,我把推理帧率控制在每秒3到5帧,实测够用,漏检率并不会明显变高。二是镜头焦距和安装角度,我推荐斜上方45度俯拍,视野能把料盒、工装和人手活动范围全部覆盖,又能减少互相遮挡。广角镜头畸变大,不建议用在精度要求高的拾取区域判定上。三是补光,工位环境光会随着班次和天气大幅变化,加一盏恒亮白光LED灯,把照度控制在稳定区间,算法的识别准确率会提升一大截。
另外一个很多人不重视的细节是防频闪。工厂车间大量使用荧光灯或LED驱动电源,会产生100赫兹左右的频闪,在视频里表现为明暗条纹,对检测模型的干扰非常明显。选摄像头的时候尽量选带全局快门或抗频闪模式的型号,比后期算法去折腾容易得多。
3. 核心实现:从SOP到机器可识别的作业标准
3.1 把“人看的SOP”转成“机器读的标准”
这部分是整个项目中最容易翻车、也是最体现功夫的地方。SOP文档是写给人看的,用词高度依赖上下文。比如“将垫片套入螺栓并预紧三圈”这句话,人看了能会意,机器完全不知道“垫片”“螺栓”“预紧三圈”在像素空间里长什么样。所以必须经历一次翻译过程,把每条SOP转成结构化的事件描述。
我的做法是建一张映射表,把SOP条目分解成四个要素:动作对象、动作类型、空间条件、时间条件。动作对象对应目标检测的类别,比如垫片A、螺栓M8、扭矩扳手;动作类型对应关键点或者目标关系的变化,比如拾取、装配、旋转;空间条件指动作发生区域,在图像坐标系里画多边形区域;时间条件指该动作必须发生的相对时间窗口。
为了方便理解,我举个例子。原始SOP写:“安装左前门内拉手之前,需先安装两颗M6螺栓并拧紧至9牛米。”翻译成机器规则是这样:
- 动作对象:M6螺栓(检测类别)
- 动作类型:螺栓出现在门板特定孔位区域(目标检测IoU判断)
- 空间条件:孔位区域坐标为[(x1,y1)...(x5,y5)]
- 时间条件:在“开始安装内拉手”事件之前的整个工步内
- 判定逻辑:算法一旦识别到“内拉手进入装配区域”事件,立即检查前面的时段里是否同时出现过两颗M6螺栓的稳定检测结果;如果确认,则记录合规,否则触发报警。
这里的关键是,规则里不要求算法精确数出“两颗”这种语义,而是在画面上分别定义两个目标区域,只要两个区域都同时出现目标且持续超过设定阈值,就算合规。人看着是两句话,机器拿到的是可计算的坐标和事件。
3.2 数据采集、标注与模型训练的关键动作
翻译好规则之后,接下来就得让模型能稳定识别这些对象和事件。这里的数据采集和标注质量,直接决定系统能不能用。我见过太多项目死在数据上,算法团队拿了三五个视频就去调参,现场一上线就翻车。
先说数据怎么采。同一工位,至少要采集50到100条完整的作业视频,覆盖不同作业员、不同班次、不同天气时段、不同体型和着装。为什么要求这么高?因为模型必须在真实噪声里学会找不变特征。白班强光下和夜班暗光下,同一个螺栓的纹理差异很大;瘦高个子和壮实师傅的手部关键点分布也不一样。数据里如果只有一种场景,模型上线后必然水土不服。
标注工作要定标准。我的做法是团队里至少三个人同时对同一批视频标注,然后比对一致性,不一致的地方要讨论直到统一口径。标注对象包括:所有目标物外框、人体手部关键点、工作台/料盒区域,以及关键事件的开始结束帧。特别注意,工作区域的标注要覆盖不同作业员的身高差异,不要以某一个人的操作习惯为准。
模型训练阶段,目标检测模型相对成熟,重点在于数据增强。除了常规的翻转、旋转、亮度变化,我还会加入模糊模拟、遮挡模拟和随机噪声,目的是让模型在摄像头被油污遮挡或镜头轻微失焦时依然可用。验证集必须用真实现场视频,不能用实验室摆拍的干净视频来评估,否则指标好看,现场一测就现原形。
如果现场有反复出现的误报,不要急着换模型,先把这些误报样本加进训练集做一轮增量训练,往往效果立竿见影。这个习惯我一直保留着,它比盲目堆模型参数要经济得多。
3.3 报警策略与防呆联动
模型识别出事件之后,规则引擎会输出判定结论,但这个结论到产线报警之间还有一层策略要做。我刚开始做的时候,用一个事件就触发报警,结果现场响个不停,作业员烦得要死,不到一周就把报警喇叭拆了。后来改成“连续判定一致才报警”,比如手部关键点连续5帧都处于违规区域,或者同一违规类型在1秒内重复出现3次,才触发报警。这一改,误报率立刻降了一大截。
报警之后做什么,决定了这套系统的价值上限。最简单的做法是本地声光报警加工位屏幕显示,提示作业员“第3步未执行,请返回检查”。再进一步,通过PLC把报警状态串进设备互锁逻辑:报警未复位,下一个工步就不能启动,治具锁死。这就实现了防呆,不让不合格的操作流到下一工位。
更完整的闭环是把报警事件和相关视频片段写入MES或质量管理系统,生成一条不合格品记录,指定责任人处理并填写原因。这么一来,过程数据就真正沉淀下来了。每个月汇总这些数据,能看出哪个班次合规率低、哪个工位反复出哪类问题,工艺改善就有了数据支撑,而不是拍脑袋开会。
4. 实操落地:一次完整项目复盘
4.1 选点与前期调研怎么做
真正落地一个项目,我建议千万别上来就想做“全厂覆盖”,那是给自己挖坑。正确的做法是先选两三个工位做标杆。
选工位有几个原则:一是手工装配占比高,机器介入少的工位;二是历史上质量投诉多、返工率高的工位;三是涉及关键扭矩、安全件装配的工位。我做过的一个汽车零部件项目,当时选了一个平衡轴装配工位,原因是售后客诉里有三成都是这个工位漏装垫片导致的。这种工位改造意愿强,价值论证也容易,领导一句话就能打通资源。
选定之后做现场蹲点,我通常会在工位旁边看一整天,记录作业员的动作节拍、物料摆放方式、光线变化、摄像头可以安装的位置。这一步不可省。纸上谈兵画的检测区域,永远不如现场看到的真实遮挡情况。比如有的工位上方有吊具轨道,恰好挡住斜上方视角,装摄像头就得偏移角度,随之而来的是判定区域要重新画。
还要做投入产出测算。以单工位为例,一台工业相机加镜头大概两三千元,一只边缘计算盒子按算力配置从几千到一万多不等,再加上开发调试人力和服务器,单工位整套系统成本在几万元到十几万元之间。而漏装问题每月带来的返工和客诉损失,如果超过这套系统的成本,项目就值得推。这个账算清楚,汇报的时候才有底气。
4.2 试运行阶段会遇到什么
试运行就是“真金白银踩坑”的阶段,这里讲一个我印象很深的例子。某个电子装配项目,系统上线后连续三天误报率高达40%,报警声此起彼伏。当时算法团队第一个反应是置信度阈值不够,调了几轮也没用。后来我去现场一看,发现问题出在工作服上——作业员穿的蓝色工服和背景的蓝色料盒颜色几乎一样,目标检测模型把人和料盒分错,导致手部关键点定位乱飘。
解决办法并不复杂,把背景里的蓝色料盒换成深灰色,给作业员手部增加了对比度更高的防静电手套,重新采集一轮数据做增量训练。误报率直接从40%降到不到3%。这件事给我的教训是:算法问题有时候不是算法的问题,现场的物理环境只要稍作调整,比调参管用得多。
试运行阶段要盯四个指标:漏报率、误报率、系统可用率和报警响应时间。漏报率决定这套系统值不值得信任,误报率决定现场人员愿不愿意用,可用率决定运维成本,响应时间决定防呆联动是否跟得上节拍。我把这些指标做成了每日看板,每次周会都拿数据说话。
推广节奏上,我的经验是标杆工位稳定运行至少两到四周,确认指标达标、现场接受度高了,再复制到类似工位。而且复制时不能一键Ctrl+C,每个工位都有自己独特的物料状态、光线和操作手法,模型参数、检测区域都要单独调。图省事的项目,后面都会在误报率上连本带利还回去。
5. 常见问题速查表与避坑经验
5.1 问题排查速查表
我把现场最容易遇到的问题整理成一张速查表,同行可以直接对照排查:
| 现象 | 可能原因 | 排查顺序 | 解决措施 |
|---|---|---|---|
| 频繁误报 | 背景与目标颜色接近、目标模型泛化差 | 1. 看报警截图 2. 检查检测置信度 3. 对比现场光线 | 调整目标区域、更换背景对比度、补充困难样本重训 |
| 漏检关键动作 | 帧率不够、动作过快或模型没学到该形态 | 1. 提高推理帧率 2. 回看录像查漏检帧 | 对快速动作补采数据,增加该动作的专项标注 |
| 换班后效果下降 | 不同班次光照、作业员着装差异大 | 1. 对比不同班次的视频亮度 2. 检查训练集覆盖情况 | 增加多班次数据、加恒亮补光灯、按班次做模型微调 |
| 视频卡顿、报警延迟 | 网络带宽不足、边缘设备负载过高 | 1. 查看显卡占用 2. 检查RTSP拉流数量 | 降低抽帧频率、换更高级别的边缘盒子、优化网络链路 |
| 多品种切换后准确率降低 | 不同品种目标形态差异大 | 1. 确认当前品种对应的规则模板是否激活 | 按品种配置独立的检测区域和规则集,切换时自动加载 |
| 标注不一致导致模型不收敛 | 标注人员口径不统一 | 1. 抽查标注文件 2. 比对多人标注IoU | 建立标注规范SOP,做一致性校验,分歧样本开会统一 |
| 夜间光照变暗导致漏检 | 依赖环境光、无补光 | 1. 查看夜间现场照度 | 增加红外或白光恒亮补光,模型训练加入暗光增强样本 |
5.2 几条花真金白银换来的避坑心得
最后分享一些不太会写在项目报告里的心得体会。
第一,光照一致性是这套系统的命门。模型调得再好,光线一变全白搭。所以现场补光不是锦上添花,而是必要投资。我后来养成了一个习惯:摄像头装完之后,分别在早班、中班、夜班各拍一组测试视频,确认所有时段的画面亮度都在可接受范围内,才算工程验收。
第二,标准冲突要先于代码解决。我做第二个项目的时候发现,SOP流程和老师傅实际干法存在明显冲突。比如SOP要求先装左侧三个螺栓再装右侧,但老师傅为了顺手会先装中间定位螺栓。如果直接按SOP硬卡,误报会不断,现场抵触也非常大。正确做法是先组织工艺、质量、班组长一起把标准统一掉,让SOP符合实际最优作业方式,再让算法去执行这个标准。
第三,标注质量永远比模型结构重要。模型结构可以选成熟方案,但标注数据的质量决定了性能上限。一个工位50条视频,如果标注不一致,训练出来的模型就像一把尺子本身刻度是歪的,后面怎么调都准不了。多花两周时间把标注做好,能省后面两个月的调参之苦。
第四,要让员工理解这套系统是帮手,不是“电子监工”。推行过程中最怕的是作业员觉得公司在用摄像头盯着他扣钱,然后故意遮挡镜头、加快动作,甚至搞虚动作。我在项目启动会上一定会讲清楚:这套系统记录的是过程数据,目的是保护员工、留出证据、改善工艺,而不是考核个人。现场一旦出现恶性抵触,项目基本上走不远。
第五,调试时间要留足。很多人以为训练模型是周期最长的环节,实际算法调试和现场问题整改才是大头。单工位从进场到稳定运行,我一般按三到四周排期,其中纯训练可能就一周,剩下全是现场调光线、调区域、调阈值、跑验证。项目排期的时候把这个余量留出来,不然很容易变成上线即烂尾。
这个方向后续的扩展空间其实比想象中大很多。点位扩展只是第一步,数据积累多了之后,可以给工艺部门做装配动作分析报告,找出哪些步骤是高耗时瓶颈;给培训部门做新人操作对比,指出哪里动作不规范;甚至可以结合历史报警数据做预测性质量分析,提前判断批量问题的苗头。
我个人在实际操作中最深的一个体会是:技术选型真不是最难的部分,最难的是把老师傅多年靠眼睛和经验形成的东西,翻译成一套清晰、客观、可执行并且现场愿意用的规则。只要这一步做扎实了,AI和视频分析就真能成为装配线上那双不眠不休的“火眼金睛”。