无锡某科技公司AI巡检系统开发
摘要:AI 工业巡检系统开发实录:误报率如何从三成压到个位数,边缘端算力与标注质量是成败关键。
这个巡检项目,最开始我把它想简单了。以为接个摄像头、跑个目标检测、把报警推给值班室就完事,当时团队里都觉得这活不大,一两个月能交。结果第一版丢到现场,误报多到车间主任直接打来电话,说你们这系统是来添乱的吧。那一通电话把我打醒了,也把这个项目的难度彻底打出来了。
电话里他语气挺冲,但我后来理解他。大半夜报警声此起彼伏,值班的跑过去一看啥事没有,一晚上折腾好几趟,换谁都得骂。我们复盘发现,光照一变、灰尘一起、巡检员衣服颜色换一换,模型就跟瞎了一样乱报。实验室里看着好好的效果,一到现场全崩。这件事给我的教训很深:实验室的指标,在真实场景面前基本不作数。
后来我们老老实实回去补标数据,把现场几千张真实图片一张张标出来,这不是什么高级活,就是熬。标的过程中我才意识到,之前训练用的公开数据集跟工厂现场差别太大了,模型在那些图上学到的东西,在现场基本用不上。补标之后,误报率才从三成慢慢压到五个点以内。就这几个点的下降,背后是几个人没日没夜地标图。标到后面眼睛都花了,我们就做了个交叉复核,一个人标的另一个人抽检。
模型选型上我们其实没走太多弯路,一开始就用YOLOv8,跑通之后导成ONNX,再用TensorRT在边缘盒子上做加速,一张图十几毫秒就出结果,实时性是够的。算法这条路走下来,比我想象的顺。反而是我一直以为最不值一提的环节,最后成了最大的拦路虎。
真正卡住我们的反而不是算法,是摄像头。工厂里的RTSP流各种花屏、掉帧、断连,光是把流稳稳定定拉回来,就折腾了一个多礼拜。有的摄像头隔一会儿就断一下,有的画面直接花成马赛克,这种烂流你喂给再好的模型都没用。我现在有个经验,做视觉项目,一半时间花在数据流,一半花在数据标,算法本身反而是最省心的。这句话我见人就讲,没做过的人真体会不到。
还有个挺反常识的感受,别一上来就追求高大上的模型。客户要的是“该报的报、不该报的别报”,一个稳定的小模型,比一个偶尔抽风的大模型值钱得多。大模型精度看着漂亮,现场一抽风,值班室就又不信你了。信任这个东西,建立起来慢,摧毁起来快,一次误报就可能让前面所有的准确都白费。
我们后来在边缘端和云端做了分工,边缘先粗筛,可疑的图再传云端做二次确认,既省带宽又降误报。这套架构不是一次想出来的,是被误报逼出来的。边缘跑一个轻量模型先过滤掉绝大多数正常画面,拿不准的再上云做精细判断,两边一配合,误报下去了,流量也下来了,客户验收的时候总算点头了。
还有一点,报警不是推给值班室就完事,不同情况得分级。一般异常先在页面上提示,严重的才弹窗加短信,特别紧急的直接电话。要是所有报警都一个级别,值班的人迟早麻木,那这个系统跟没装一样。这个分级策略我们跟车间反复对,才定下来哪些算大事、哪些算小事。分级定下来之后,值班室清净多了,真出问题时反而更敏感。
这项目做完我最大的体会是,AI巡检这行,交付的不是模型,是信任。现场工人从骂骂咧咧到主动给系统提意见,这个转变才说明东西真落地了。模型能跑只是开始,让人信它,才是真本事。等哪天值班的人不看报警、光靠系统就敢下判断,那才算真正交付成功了。