一、项目背景:光电传感器的工业计数噩梦上个月帮一家机械加工厂做了车间传送带零件计数系统的改造,他们原来用的是欧姆龙E3Z光电传感器,零件重叠、倾斜、大小不一的时候漏检率高达8.2%,误检率4.7%,每天要安排2个工人在传送带末端人工复核,每月因为漏发零件被客户罚款3000-5000元。客户明确要求新系统:准确率99.5%以上,漏检率0.3%,误检率0.2%必须和现有的西门子S7-1200 PLC对接,实时发送计数结果,接收PLC的启动/停止/清零信号绝对不能装Python环境——IT部门怕引入额外的运行时影响已经跑了5年的Java MES系统部署在现有Windows 10 IoT工控机上,不需要更换硬件我最开始试过两个方案,结果都失败了:搭Python Flask服务做推理:有120ms左右的网络延迟,而且每天都会因为内存泄漏崩溃一次,需要手动重启,工业场景根本不能接受用JNI调用C++推理:开发周期太长,调试极其困难,出了问题根本没法排查就在一筹莫展的时候,我发现了ONNX Runtime的Java版。经过一周的踩坑和调试,最终实现了: