软件系统公司自研引擎上线:手机扫码app替代专用硬件开发实战与性能评测
上个月底,我们团队历时14个月打磨的“天枢”视觉解码引擎V1.0正式上线了。作为一家深耕企业级软件系统领域十余年的服务商,这次把脚伸进底层图像解码的泥潭里,连内部周报都写着“激进尝试”。但起因特别接地气:去年给华东某服饰仓储客户做WMS重构时,对方IT总监在饭局上抱怨,他们每年专用扫码枪加固定式扫码器的采购、维修和授权费吃掉两百多万,更坑的是条码格式微调后,老设备识别不了,得把几百把枪寄回供应商刷固件。当时我们架构师随口一句:现在手机CMOS啥水平了,写个App不就完了?
说实话,立项那天好几个老工程师直摇头。专业扫码硬件用的是全局快门CMOS加独立DSP,手机摄像头是卷帘快门,还受系统相机API层层限制,拿啥比?但客户痛点摆在那,咱们决定试一把。最初用开源ZXing和ZBar搭原型,明亮环境还行,一到仓库阴暗角落或条码沾了油污,识别率直接崩到六成以下。那阵子算法组几乎长在现场,举着手机边走边扫,机器烫得能捂手。
痛定思痛,我们干脆自研引擎。核心思路是放弃传统一帧一解,改用多帧动态融合加轻量级CNN定位。为了适配安卓碎片化机型,我们实打实采集了超三十万张不同光照、不同角度的条码样本,里头不少是打印模糊、屏幕反光的脏数据。引擎解码核心用C 写,走JNI调用,绕开Java层GC卡顿。今年3月引擎灰度阶段,我们在上述客户现场做了两轮替换试点:拣货员直接用自己的手机装App,后端对接自研引擎私有化部署,对比硬件是客户在用的某进口无线扫码枪。
实战机型选了华为Mate 60、红米Note 12和iPhone 13。场景一,标准货架距离30厘米,专用枪平均解码110ms、成功率99.8%;华为140ms、99.5%,红米190ms、98.9%。场景二,照度低于50lux的昏暗通道,条码略褶皱,专用枪红外补光有限,成功率掉到92%;手机开闪光灯配合引擎降噪,华为97.3%,红米95.1%。场景三,模拟流水线高速移动扫码,专用枪全局快门优势明显达99%,手机有拖影,但引擎做了运动补偿,华为也到了96%,红米93%。现场有个拣货大姐原话:“这比扛着枪轻松,就是费电池。”但我们实测连续扫半小时背面温升不到4℃。
回到实验室,自动化脚本跑了十万次压力测试。骁龙7系中端芯片上,引擎常驻内存约45MB,扫码时CPU峰值不超18%,量化后的深度学习模型才3.8MB,推理丢给NPU或GPU。客户原本担心手机丢数据安全,我们做了端到端加密,条码内容不出本地内存直接密文上传,支持远程一键擦除,合规部门才签字。
客户后来测算,单设备采购一年省下一百八十万。上周新增QR溯源规则,后台推引擎更新包,两千多台手机半小时内全生效;放以前专用硬件至少停工两天等原厂。当然我们不吹牛,高温粉尘极端产线专用器仍是刚需,但零售、普通仓储、资产巡检这些场景,自研引擎下的手机App已足够扛事。目前引擎已嵌入公司多条SaaS产品线,也开放了SDK。回头看这十四个月,软件吃掉硬件的边界,咱们又往前推了一步。
微信号:18581869297