3. 图像采集与数据管理

在 MERLIC 深度学习检测应用中,图像采集与数据管理是决定后续模型训练质量与推理稳定性的基础环节。MERLIC 本身是一个面向机器视觉的图形化流程开发环境,它通过“图像源”这一抽象层来统一管理来自不同硬件与文件系统的图像输入。理解图像源的配置逻辑、相机连接方式、导入导出机制以及数据集目录与命名规范,是构建可复现检测流程的前提。

一、MERLIC 图像源配置与相机连接

MERLIC 的图像源分为两大类:实时采集源与离线文件源。实时采集源通过 GenICam、GigE Vision、USB3 Vision 等标准接口连接工业相机;离线文件源则从本地磁盘或网络路径读取单张图像或图像序列。在 MERLIC Creator 中,图像源通过“Image Source”算子或采集配置界面进行设置,核心参数包括:

  • 接口类型:GigE Vision、USB3 Vision、GenICam GenTL 或 DirectShow。
  • 相机标识:设备序列号或用户自定义名称,避免多相机时混淆。
  • 触发模式:自由运行(FreeRun)或外部触发(Hardware Trigger),后者需指定触发源与去抖时间。
  • 曝光与增益:曝光时间(如 5000 μs)、增益(如 0 dB),需与光照条件匹配。
  • 像素格式:Mono8、BayerRG8、RGB8 等,需与后续算子兼容。

连接相机时,建议先在 MERLIC 的“设备管理器”中扫描并确认相机可见,再将其绑定到图像源。若使用多台相机,应为每台相机分配唯一名称,并在流程中通过名称引用,而非依赖枚举顺序。对于 GigE 相机,需注意网卡巨帧(Jumbo Frame)设置与带宽分配,避免丢帧。

教学示例:假设使用一台 Basler acA1920-40gm 相机,分辨率 1920×1200,像素格式 Mono8,曝光 8000 μs,增益 2 dB,触发模式为自由运行。在 MERLIC 中配置后,可通过“采集单帧”按钮验证图像是否正常显示,并检查直方图是否覆盖合理灰度范围。

二、图像导入与导出

MERLIC 支持从文件导入图像,也支持将处理结果或原始图像导出。导入时,常用格式包括 PNG、BMP、JPEG、TIFF 以及 MERLIC 自身的 .mvt 格式。对于深度学习训练,建议使用无损格式(PNG 或 BMP),避免 JPEG 压缩引入伪影。导出时,可指定文件名模板、保存路径与格式,并选择是否覆盖已有文件。

在批量处理场景中,MERLIC 的“图像序列”功能可以按文件名排序或时间戳顺序读取整个文件夹。导出结果时,通常将检测结果(如类别标签、置信度、边界框坐标)写入 CSV 或 JSON 文件,同时保存标注图像以便复核。注意:导出路径应避免中文与空格,防止部分算子解析异常。

三、数据集目录结构与命名规范

深度学习训练需要结构化的数据集。MERLIC 本身不强制特定目录结构,但为了与 MERLIC 的深度学习工具(如 MERLIC Deep Learning Tool)以及常见框架兼容,推荐采用以下目录组织方式:

dataset_root/
├── train/
│   ├── class_A/
│   │   ├── img_0001.png
│   │   ├── img_0002.png
│   │   └── ...
│   ├── class_B/
│   │   └── ...
├── val/
│   ├── class_A/
│   └── class_B/
├── test/
│   ├── class_A/
│   └── class_B/
└── labels.csv

其中,train、val、test 分别对应训练集、验证集与测试集,比例建议为 70% / 15% / 15%。每个类别一个子文件夹,文件夹名即类别标签。图像文件名应遵循统一规范,例如 产品编号_日期_序号.png,如 gear_20240512_0001.png。避免使用特殊字符、空格与中文,推荐仅使用小写字母、数字与下划线。

对于检测任务(目标检测或分割),还需提供标注文件。MERLIC 支持通过 CSV 或 JSON 描述边界框与类别。标注文件应与图像文件名一一对应,且路径使用相对路径,便于迁移。若图像数量较大,建议按日期或批次分文件夹,但需保证类别标签在文件名或目录结构中可追溯。

注意:训练集、验证集与测试集必须来自不同批次或不同时间段,避免数据泄漏。若同一产品在不同光照下拍摄,应确保三个集合都覆盖相似的光照变化,否则验证指标会虚高。

四、图像源配置与数据管理的协同

在实际项目中,图像采集与数据管理并非孤立步骤。采集阶段确定的曝光、增益、像素格式会直接影响图像质量,进而影响标注一致性与模型泛化能力。因此,建议在采集前先制定命名规范与目录结构,采集时直接按规范保存,减少后期整理成本。MERLIC 的流程可以配置为:采集图像 → 预处理(如裁剪、缩放)→ 保存到指定目录 → 记录元数据。这样,从图像源到数据集形成一条可追溯的数据链路。

MERLIC 图像采集与数据集管理链路 工业相机 GigE / USB3 Vision Mono8 / RGB8 MERLIC 图像源 曝光 8000 μs 增益 2 dB / 自由运行 预处理 裁剪 / 缩放 灰度归一化 保存到数据集 PNG / BMP 命名规范 数据集目录结构 dataset_root/ ├── train/ │ ├── class_A/ │ │ ├── img_0001.png │ │ └── img_0002.png │ └── class_B/ ├── val/ ├── test/ └── labels.csv 命名规范与标注 gear_20240512_0001.png 产品编号_日期_序号.png labels.csv: filename,class,x,y,w,h 避免:中文、空格、特殊字符 采集参数与命名规范需在采集前确定,保证数据可追溯与可复现

上图展示了从相机采集到数据集保存的完整链路,以及推荐的目录结构与命名规范。实际执行时,可先在小批量图像上验证命名与目录是否被 MERLIC 正确识别,再扩展到全量数据。若使用 MERLIC 的深度学习工具,还需确认其支持的图像格式与标注格式,避免因格式不兼容导致训练中断。

最后,建议在项目根目录下维护一个 README.md 或 dataset_info.txt,记录采集设备、曝光参数、光照条件、类别定义与划分比例。这样,当模型效果不理想时,可以快速回溯是数据问题还是模型问题。图像采集与数据管理看似基础,却直接决定了深度学习检测的上限。