4. MERLIC读码工具详解

在 MERLIC 的读码方案中,Read Code 工具是整条追溯链路的起点。它负责在图像中找到码、识别码、输出字符串与质量信息,后续的字符校验、数据库比对、结果归档都依赖它给出的数据。因此,理解 Read Code 的参数含义,比记住界面按钮位置更重要。本节围绕五个关键维度展开:码类型选择、ROI 设置、极性处理、参数配置以及多码读取策略。

一、码类型选择:先确定“找什么”

Read Code 工具支持一维码与二维码两大类。一维码常见的有 Code 128、Code 39、EAN-13、UPC-A、ITF-25 等;二维码常见的有 Data Matrix(ECC200)、QR Code、PDF417 等。选择码类型时,应遵循“能确定就精确指定,不能确定才用自动”的原则。

如果产线上只使用 Data Matrix,就应把码类型固定为 Data Matrix ECC200,而不是勾选“全部类型”。原因在于:每增加一种候选码制,工具内部就需要多跑一套定位与解码逻辑,既增加耗时,也提高误识别概率。例如在金属件表面,Code 128 的条纹纹理有时会被误判为 PDF417 的局部结构,导致输出乱码。精确指定码类型可以显著降低这类风险。

当同一工位需要兼容多种码制时,可以启用多码类型候选,但建议把最常用的码制排在前面,并配合最小/最大码长约束,缩小搜索空间。

二、ROI 设置:把算力用在刀刃上

ROI(Region of Interest,感兴趣区域)决定了工具在图像的哪个范围内搜索码。ROI 设置的核心目标是:完整包含码,同时尽量排除干扰背景。

在 MERLIC 中,ROI 通常以矩形或旋转矩形给出。对于固定工位、码位置稳定的场景,直接用一个略大于码外接框的矩形即可。对于码会随工件旋转的场景,应使用可旋转矩形,并让长边方向与码的排列方向一致。ROI 过大会引入背景纹理、反光、字符印刷等干扰;ROI 过小则可能切掉码的定位图案(如 QR 码的三个回字形定位符),导致无法解码。

一个实用的经验是:ROI 边界距离码边缘保留约 5~10 像素余量。若相机分辨率较高、码在图像中占比较大,余量可适当放大;若码本身很小,余量应压缩,避免 ROI 内混入过多无关区域。

三、极性处理:黑底白码与白底黑码

极性描述的是码与背景的明暗关系。正极性指深色码、浅色背景(常见的白底黑码);负极性指浅色码、深色背景(如激光雕刻在深色塑料上的白色 Data Matrix)。

Read Code 工具通常提供“自动”“仅正极性”“仅负极性”三种模式。自动模式会尝试两种极性,鲁棒性更好,但耗时略增。如果工艺稳定,建议明确指定极性,既提速又减少误判。例如,黑色 PCB 上的白色丝印二维码应设为负极性;白纸上的黑色条码应设为正极性。

需要注意的是,极性判断依赖图像的明暗对比。如果照明不均导致局部反光,同一张码可能在不同区域呈现不同极性特征,此时应先改善照明,而不是单纯依赖自动极性。

四、参数配置:影响解码成功率的关键项

除码类型与 ROI 外,Read Code 还有若干影响解码的参数。常见的有:

  • 最小/最大码长:限制候选字符串长度,过滤明显不合理的解码结果。
  • 超时时间:单次解码允许的最长耗时,超时则返回失败,避免拖慢整条流水线。
  • 对比度阈值:决定码与背景的分离程度,低对比度图像可适当降低阈值。
  • 解码尝试次数:对同一 ROI 内多个候选位置进行多次尝试,提高多码或倾斜码的命中率。

这些参数没有万能值,应结合具体图像调整。建议先用默认值跑通,再针对失败样本逐项微调,并记录每次调整后的成功率变化。

五、多码读取策略:一图多码怎么处理

当一幅图像中存在多个码时,Read Code 需要决定读取哪一个或全部。常见策略有三种:

  1. 单码模式:只返回置信度最高的一个码,适合每件产品只有一个追溯码的场景。
  2. 多码模式:返回 ROI 内所有成功解码的码,适合托盘、料箱上多个工件同时成像的场景。
  3. 按位置筛选:结合 ROI 分区或坐标排序,只取指定区域内的码,适合需要区分主码与辅码的场合。

多码模式下,输出结果通常以列表形式给出,每个码附带位置、角度、质量分等信息。后续处理时,应明确按什么规则选取目标码,例如“取面积最大的码”或“取位于图像左侧的码”,避免因顺序不确定导致追溯数据错位。

Read Code 工具参数配置与多码读取策略 输入图像 + ROI DM QR ROI 覆盖两个码 参数配置 码类型:Data Matrix ECC200 极性:负极性(白码黑底) 最小码长:8 最大码长:24 超时:200 ms 对比度阈值:35 多码读取结果 码1:DM-2024-0018 位置(105,160) 质量分 92 码2:QR-2024-0019 位置(190,160) 质量分 78 筛选规则:取左侧码 输出:DM-2024-0018 多码读取策略对比 单码模式 • 只返回置信度最高的码 • 适合每件产品一个追溯码 • 速度快,逻辑简单 • 风险:多码时可能选错 • 建议:配合ROI限定范围 多码模式 • 返回ROI内所有成功解码的码 • 适合托盘、料箱多工件 • 输出为列表,含位置与质量分 • 需明确后续选取规则 • 建议:按坐标排序后取目标码 按位置筛选 • 结合ROI分区或坐标排序 • 只取指定区域内的码 • 适合主码与辅码区分 • 需定义明确的筛选条件 • 建议:主码固定区域,辅码另设ROI

六、参数配置的实操建议

在实际项目中,建议按以下顺序配置 Read Code:

  1. 先固定码类型,只保留产线上真实使用的码制。
  2. 再画 ROI,确保码完整落入,且背景干扰尽量少。
  3. 然后设定极性,工艺稳定时不要用自动。
  4. 接着调整码长范围与超时,过滤异常结果。
  5. 最后根据失败样本微调对比度阈值和解码尝试次数。
提示:每次只调整一个参数,并记录调整前后的解码成功率。多参数同时改动,很难判断是哪个参数起了作用。
注意:多码模式下,输出列表的顺序不一定与图像中的空间顺序一致。后续处理必须显式指定选取规则,例如按 X 坐标升序取第一个,或按质量分降序取最高分,否则追溯数据可能对应到错误的工件。

Read Code 工具的参数配置并不复杂,但每一个参数都直接影响解码成功率与结果稳定性。码类型决定搜索空间,ROI 决定算力分配,极性决定对比方向,参数决定容错边界,多码策略决定结果如何被消费。把这五者配合好,才能为后续的质量追溯提供可靠、可复现的码数据。