TrayVision视觉盘点系统上线后,客户反馈最多的问题不是识别不准,而是"有些托盘的条码识别不出来"。去现场一看,不是系统的问题,是条码贴歪了——有的贴在托盘侧面底部,相机看不太到;有的贴了但角度歪了45度;还有的直接贴在了托盘底部横梁上,只有趴下去才能看见。
标准做法是条码贴在托盘正面居中位置,但现场工人哪管你什么标准,哪顺手贴哪。这个问题不解决,识别率永远上不去。
TrayVision的条码定位原理
TrayVision不是直接去全图搜索条码,而是先用轮廓检测找到托盘的位置和朝向,然后在托盘的特定区域(ROI)内搜索条码。这样做的好处是搜索范围小、速度快、误识别少。
但前提是:条码要落在你设定的ROI范围内。如果条码贴到了ROI外面,那不管算法多厉害都找不到。
三个关键参数
1. ROI扩展系数:默认条码搜索区域是托盘正面中心向四周各扩展10%。如果条码贴得偏,可以加大到20%甚至30%。但扩展越大,误识别的概率也越高——可能把旁边的托盘条码也识别进来。
我们的经验:大多数现场15%就够用了。如果还有漏识别,先看条码贴的位置到底偏到哪了,再针对性调整。
- 2. 条码旋转容差:默认支持条码倾斜±30度。如果条码歪得厉害(超过30度),要把容差调到±45度。注意:容差调大后解码速度会慢一些,因为要尝试更多角度。
- 3. 最小条码像素尺寸:远处的条码在图像里只有几个像素,解码大概率失败。设定最小像素尺寸可以跳过太小的条码,避免浪费时间。默认80像素宽度,现场如果相机安装远可以降到60。
实际调参步骤
- 先用默认参数跑一遍,记录哪些托盘识别不出条码
- 去看现场,看这些托盘的条码贴在哪、歪了多少度
- 如果条码偏出了ROI,加大ROI扩展系数
- 如果条码歪了超过30度,加大旋转容差
- 如果条码太小(离相机太远),降低最小像素尺寸,或者把相机装近一点
- 调完再跑一遍,对比漏识别数量
最根本的解决方案:规范条码粘贴位置。参数调得再好,也不如条码贴对位置来得稳。我们给客户出了一套条码粘贴规范:正面居中,距顶部1/3处,条码朝外。配合这个规范,识别率从92%提升到了99%。
条码贴不好还有哪些影响
- 盘点速度变慢:ROI扩大后每帧图像的搜索范围变大,处理时间增加
- 误匹配增加:搜索范围大了可能把隔壁托盘的条码也识别进来,匹配结果错位
- 人工复核工作量增加:自动识别不了的托盘要人工去确认,抵消了自动化的价值
视觉盘点的核心不是算法多厉害,是前端输入的数据质量够不够好。条码贴对位置,比调一百次参数都管用。调参数是兜底,规范粘贴才是根本。