过去两年,我用C#+YOLO技术栈做了5个完整的工业视觉项目,从PCB板缺陷检测、手机中框尺寸测量,到瓶盖外观检测、药品包装喷码识别,再到物流分拣的条码读取。踩过的坑不计其数:从一开始所有代码挤在一个Form里,改个相机参数就要动半个项目;到后来推理速度上不去,生产环境跑几个小时就内存泄漏崩溃;再到客户要求换相机、换推理后端,整个系统几乎要重写。
经历了无数次推倒重来和重构,我终于沉淀出了一套可复用的工业级C#+YOLO架构。这套架构已经在5个不同行业的项目中验证过,能够快速搭建稳定、可扩展、易维护的视觉检测系统,开发效率提升至少3倍,后期维护成本降低80%。今天我把这套架构完整分享出来,希望能帮到正在做工业视觉的同行们。
一、传统C#+YOLO项目的四大致命痛点
我见过太多工业视觉项目,都是从"能跑就行"开始的。开发者图省事,直接在Form里写相机采集、图像预处理、YOLO推理、结果显示和设备控制的所有代码。一开始确实很快,但随着项目推进,需求越来越多,代码就变成了一团乱麻。
1.1 代码高度耦合,牵一发而动全身
最典型的就是"上帝类"Form,一个文件写了上万行代码。相机采集的代码里混着推理逻辑,推理结果处理里又直接操作PLC写数据。客户说要加一个报警弹窗,你要改三个地方;换个YOLO模型,整个项目一半的代码都要动。改完一个bug冒出三个新bug,最后谁也不敢碰这段代码。