FEATURED · 精选文章

MediaPipe 数据集构建完整指南:三步把原始图片变成 Model Maker 可训练数据

发布时间 / 2026/9/1 10:46:36
来源 / 创域科博编辑部
栏目 / 资讯中心
MediaPipe 数据集构建完整指南:三步把原始图片变成 Model Maker 可训练数据 MediaPipe 数据集构建完整指南三步把原始图片变成 Model Maker 可训练数据【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe做视觉模型最耗时的事往往不是训练而是数据图片怎么存、标签怎么写、格式怎么对齐这些杂事经常吃掉大半时间。本文围绕MediaPipe 数据集构建这条主线带你走一遍真实可用的流程按目录规范组织图像、写对标签文件、再把数据交给 MediaPipe Model Maker由它自动完成标准化与增强最后用几条检查项确认数据真的能跑。目标读者是刚接触 MediaPipe 的初学者以及熟悉其他框架但不熟悉这套工作流的开发者。依赖清单可直接参考仓库里的 mediapipe/model_maker/requirements.txt。一、先看清链路一份可训练数据长什么样MediaPipe 的模型训练入口在 Model Maker 里它接受的不是一堆散落的图片而是目录 约定图像按类别或格式组织在固定结构里标签以它认识的方式存在剩下的大小归一化、随机裁剪、颜色抖动等预处理全部由内置前处理器在训练时自动完成。核心预处理逻辑可以查 mediapipe/model_maker/python/vision/core/里面定义了 224 像素输入、均值/标准差归一化等默认参数你不需要手写这些。整条链路只有四个环节环节你做的事谁做剩下的事组织按目录规范放图片—标注生成标签文件或直接用目录名当标签—加载一行代码从目录读入数据集Model Maker 自动解析标签预处理什么都不用写内置前处理器缩放、归一化、增强分类任务和检测任务的目录约定略有不同下面按实际操作顺序逐个讲。二、第一步图片按目录规范摆放分类任务最简单的标注方式就是目录即标签每个类别一个子目录图片直接丢进去类别名取目录名。dataset/ ├── rock/ # 拳头 │ ├── 001.jpg │ └── 002.jpg ├── four/ # 四指 └── none/ # 空手仓库自带的手势识别测试数据就是这种结构可以直接对照比如 mediapipe/model_maker/python/vision/gesture_recognizer/testdata/raw_data/ 下按rock、four、none三个类别分好了原始图摆图时记三条同一类别的图片放同一目录目录名即标签加载时目录会按字母序编号命名尽量短且语义清晰单类样本数量明显偏少时优先补采而不是先上训练类别失衡在预处理阶段救不回来分辨率不必强求一致224 以上的常规尺寸都可以统一缩放交给后一步。目标检测任务则不能按类别分目录而是采用两种业界标准格式之一仓库测试数据里两种都有现成样例PASCAL VOCimages/放图Annotations/放逐图一个的 XML 框标注示例见 mediapipe/model_maker/python/vision/object_detector/testdata/pascal_voc_data/COCOimages/放图根目录一个labels.json统管所有框和类别其中 id 0 固定保留给背景类。框标注建议用 LabelImg 这类开源工具生成 XML比手写标注快得多。三、第二步写 Model Maker 认得出的标签文件分类任务其实免掉这一步——目录名就是标签from_folder会自动收集子目录名生成标签表。检测任务的标签则必须按上面两种格式严格写对。COCO 的labels.json骨架长这样节选{ categories: [{id: 1, name: cup}], images: [{id: 1, file_name: cup_001.jpg}], annotations: [{ id: 1, image_id: 1, category_id: 1, bbox: [x, y, width, height] }] }注意bbox是左上角坐标 宽高不是对角点这是最常见的标注错误来源。标签 id 与类别名的映射会被缓存进元数据文件训练全程以这份映射为准所以一旦定稿就不要改类别顺序否则缓存的 id 映射会错位。纯文本标签文件每行一个类别名也有真实用途C 侧的标签工具 mediapipe/util/label_map_util.cc 就是逐行读取这种格式构建 id 到标签的映射并支持可选的显示名文件。如果你的工具链同时涉及 C 图保持一行一类、顺序固定就能两边通用。四、第三步加载数据集把预处理交给 Model Maker目录和标签就绪后加载代码非常薄。分类数据集从目录读入并按比例切分from mediapipe.model_maker import image_classifier data image_classifier.Dataset.from_folder(dataset, shuffleTrue) train_data, val_data data.split(0.8) # 80% 训练 / 20% 验证检测数据集换成对应入口即可同样是目录进、数据集对象出from mediapipe.model_maker import object_detector data object_detector.Dataset.from_coco_folder(coco_data) # PASCAL VOC 格式则用 from_pascal_voc_folder加载之后预处理在训练启动时自动发生不需要你写一行前处理代码。内置前处理器的行为可以概括为训练时随机裁剪带宽高比和面积约束→ 缩放到 224×224 → 减去通道均值、除以标准差验证时直接缩放到 224×224 后做同样的归一化不做随机变换检测任务额外做框坐标归一化与 TFRecord 缓存转换首次加载会生成缓存重复加载会直接复用。也就是说数据增强策略这件事在 Model Maker 里是内置且默认开启的你真正要做的只有把原始数据放对位置。五、结果自检训练前花一分钟确认四件事数据链路看起来都通了不代表能顺利跑起来。按下这个清单过一遍能提前抓住绝大多数低级错误检查项快速验证方式图片数量与类别数符合预期加载时控制台会打印图像总数和标签列表直接对照目录类别均衡统计各子目录文件数单类低于其他类 1/5 就先补数据标注文件与图片一一对应检测任务中每个 XML/JSON 引用的file_name都能在images/里找到图像可读随机抽几张用任意图片查看器打开确认无损坏、无过暗过曝另外两个容易踩的坑标签目录里混入了非图片文件如.DS_Store会干扰统计整理时顺手清掉换过类别或改过标注后记得清掉 Model Maker 生成的 TFRecord 缓存目录再重新加载否则会用到旧映射。下一步跑通 mediapipe/model_maker/python/vision/ 下对应任务的 demo 脚本对照官方示例确认环境没问题用仓库内置的 testdata 数据集走一遍加载 → split → 短程训练再换自己的数据数据就绪后进入训练调参参考项目文档 docs/getting_started 中对应平台的安装说明补齐依赖。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻