2. MERLIC开发环境与计量项目结构

MERLIC 的工程组织方式与很多通用视觉软件不同:它把“图像从哪来、怎么处理、结果怎么给出去”拆成可复用的模块,再用“工具流”把它们串起来,最后用“配方”把同一套流程适配到不同产品型号或不同测量任务上。理解 Creator 界面、工具流与配方这三者的关系,是后续做精密尺寸测量的前提。

一、MERLIC Creator 界面:四个工作区各管什么

打开 MERLIC Creator 后,界面大致分为四个区域,它们对应工程组织的四个层次:

  • 左侧工具库(Tool Library):按类别列出所有可用工具,例如图像源(Image Source)、标定(Calibration)、定位(Localization)、测量(Measuring)、检查(Checking)、结果输出(Result Output)等。工具是流程的最小功能单元。
  • 中间工具流编辑区(Tool Flow Editor):把工具拖入后形成有向连接,决定图像与数据的流动方向。这里定义的是“处理逻辑”,与具体产品无关。
  • 右侧参数与结果面板:选中某个工具后,在此设置其参数(如卡尺数量、边缘阈值、测量单位),并实时查看该工具的输出结果与中间图像。
  • 顶部/底部运行与配方栏:负责启动单次执行、连续执行,切换配方,查看执行时间与状态。

需要强调的是:工具流编辑区里画的是“通用流程”,而参数面板里填的往往是“某个配方的具体值”。这两者的分离,正是 MERLIC 能快速换型的根本原因。

二、工具流:从图像源到结果输出的信号链

一个典型的精密尺寸测量工具流,其数据流方向是固定的:图像源 → 标定 → 定位 → 测量 → 结果输出。每一级都消费上一级的输出,并产生新的输出。下面这张图展示了这一信号链以及各级之间的数据依赖关系:

MERLIC 工具流信号链与数据依赖 图像源 相机 / 图像文件 标定 像素→毫米映射 定位 模板匹配 / 基准 测量 卡尺 / 圆 / 距离 结果输出 数值 / 判定 / 通信 标定结果提供物理单位换算 定位结果确定测量坐标系 配方层:为同一工具流提供不同参数集(曝光、模板、卡尺位置、公差) 工具流 = 逻辑结构(不变) | 配方 = 参数取值(随产品切换)

图中实线表示图像与测量数据的正向流动,虚线表示参数依赖:标定结果并不直接传递图像,而是为测量工具提供“像素到毫米”的换算系数;定位结果也不传递图像,而是为测量工具确定一个稳定的坐标系。理解这一点,就能明白为什么标定和定位必须放在测量之前。

三、配方:让同一工具流适配不同产品

配方(Recipe)是 MERLIC 中“参数集”的概念。一个工具流可以绑定多个配方,每个配方保存一组参数值。例如,测量一个金属支架上的两个孔距:

  • 配方 A(型号 100):曝光 8 ms,模板图像为“支架正面”,卡尺 1 位于孔 1 边缘,卡尺 2 位于孔 2 边缘,孔距公差 12.00 ± 0.05 mm。
  • 配方 B(型号 200):曝光 12 ms,模板图像为“支架反面”,卡尺位置整体平移,孔距公差 18.00 ± 0.08 mm。

切换配方时,工具流结构不变,只替换参数。这意味着现场操作员不需要重新连线,只需在下拉框中选择型号即可。对于精密尺寸测量,配方中通常需要固化以下参数:曝光时间、增益、标定文件、模板图像、卡尺的搜索方向与边缘阈值、测量结果的公差上下限。

建议把“标定文件”也纳入配方管理。如果不同型号使用不同镜头或不同工作距离,标定文件必须随配方切换,否则像素当量错误会直接导致所有尺寸系统性偏差。

四、图像采集与标定模块的工程组织

在工程实践中,图像采集与标定不应散落在工具流各处,而应作为独立的“前置模块”集中管理。推荐的组织方式如下:

  1. 采集模块:统一使用一个图像源工具,通过配方参数切换相机或图像目录。若使用多相机,则每个相机对应一个图像源工具,并在工具流中明确标注相机编号。
  2. 标定模块:标定工具独立于测量工具流之外,先离线完成标定并保存标定文件,再在测量工具流中引用该文件。标定文件应包含:像素当量(mm/pixel)、畸变系数、标定板类型与标定日期。
  3. 版本管理:每次更换镜头、调整工作距离或重新对焦后,必须重新标定并更新标定文件版本号。配方中记录所引用的标定文件版本,避免“新镜头配旧标定”的隐性错误。

一个可参考的工程目录结构如下(示例):

Project_MERLIC_Measure/
├── toolflows/
│   └── hole_distance.tvflow      # 工具流文件
├── recipes/
│   ├── model_100.recipe          # 配方:曝光、模板、卡尺、公差
│   └── model_200.recipe
├── calibration/
│   ├── calib_2024_06_01.cal      # 标定文件(含像素当量)
│   └── calib_2024_06_01.log      # 标定记录:镜头、距离、板型
└── images/
    ├── template_model_100.png
    └── template_model_200.png

这样组织后,换型操作就变成:选择配方 → 确认标定文件版本 → 运行。若测量结果出现整体偏移,首先检查标定文件是否与当前镜头匹配;若个别尺寸超差,则检查该尺寸对应的卡尺参数与公差设置。把“采集—标定—测量—输出”的依赖关系在工程目录和工具流中同时固化下来,才能保证精密尺寸测量在批量换型时仍然稳定可靠。