十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MediaPipe 数据集构建最简路径:从原始图片到可训练目录

MediaPipe 数据集构建最简路径:从原始图片到可训练目录 MediaPipe 数据集构建最简路径从原始图片到可训练目录【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe训练模型前很多人先从超参数入手效果不好再回头查数据往往多花七成时间。MediaPipe 是一个跨平台实时多模态推理框架这篇把 MediaPipe 数据集从原始图片到可训练目录的流程完整走一遍照着做就能跑不用写复杂脚本。 先把标准立起来能训练的数据集长什么样先别急着拍照片。一份能被 mediapipe/model_maker 直接加载的数据集要过三道硬指标。分辨率单张图不低于 256×256 像素。200 像素的小图里人脸细节已经丢了原图太小就别硬放大。目录三层结构「划分 → 类别 → 图片」划分名固定用 train、validation、test。标签一致性类别名和目录名逐字相同不能多空格cat和cat在加载器眼里是两个类。结构长这样dataset/ ├── train/ # 训练集 │ ├── cat/ │ └── dog/ ├── validation/ # 验证集 │ ├── cat/ │ └── dog/ └── test/ # 测试集 ├── cat/ └── dog/后面所有采集、标注的动作都是为了填满这个骨架。 数据从哪来采集与抽取的三条路路一图像直采。仓库里有现成摄像头示例手机端看 mediapipe/examples/android 和 mediapipe/examples/ios拍照直接存成标准格式桌面端用 mediapipe/examples/desktop。你只需要把保存路径指向上面建的目录。路二视频抽帧。手头已有视频就别重拍OpenCV 十来行代码搞定按每秒 10 帧抽取import cv2 cap cv2.VideoCapture(input.mp4) # 打开视频 idx saved 0 while True: ok, frame cap.read() # 逐帧读取 if not ok: break if idx % 30 0: # 30fps 每 3 帧取 1约 10 帧/秒 cv2.imwrite(fframe_{saved:04d}.jpg, frame) saved 1 idx 1路三复用现成数据。仓库里mediapipe/calculators/image/testdata这类目录里就有现成样例图先拿它们把流程跑通再换成自己的真实数据。采集时记住四件事光照均匀、不过曝多角度覆盖真实使用场景宁多勿少留足筛选余地拍完放大看糊图直接淘汰。️ 打标按任务类型选最省力的方式任务类型决定路径别一上来就找最花哨的工具。图像分类零标注。子目录名就是标签第一节的目录结构搭好就能训这是最短路径。目标检测画框。用 LabelImg 之类的通用工具生成 Pascal VOC 的 xml一图一个文件。MediaPipe 侧靠 mediapipe/util/label_map_util.cc 解析标签文件长这样item { id: 1 name: cat # 类别名需与 VOC xml 里一致 } item { id: 2 name: dog }关键点标坐标。做人脸、手势、姿态时更省力的做法是先跑 MediaPipe 现有预训练模型出粗标注再人工修正少量偏差而不是从零手标。想自绘骨骼点参考 mediapipe/util/annotation_renderer.cc 里的官方渲染逻辑。 喂给模型之前标准化、增强与格式转换标准化只做两件事。像素值从 0–255 归一化到 0–1图像统一到目标尺寸。缩放、对齐的底层逻辑都在 mediapipe/util/image_frame_util.cc 里使用方指定目标尺寸即可不用自己写 cv 缩放。增强防过拟合。对原图做随机变换凭空多出训练样本常用四种增强方法作用参数建议随机裁剪增加视角多样性裁剪幅度 10% 以内颜色抖动模拟不同光照亮度/对比度 ±10%水平翻转增加左右多样性分类、检测可用小角度旋转增加倾斜鲁棒性15° 以内一个坑标过坐标点的数据翻转图像必须同步变换坐标否则点会指到对侧。格式转换。摄像头常给 YUV模型要 RGB。image_frame_util 里有YUVImageToImageFrame这类函数BT.601/BT.709 二选一一行调用不用碰转换公式。✅ 验收与交付加载、统计再配一张翻车速查表交付前先算类别分布三行代码import os for split in [train, validation, test]: counts {d: len(os.listdir(f{split}/{d})) for d in os.listdir(split)} # 每类图片数 print(split, counts)如果某类只有 30 张、另一类有 3000 张模型必然偏科。处理办法按顺序选补采、对该类加强增强、训练时加类别权重。再核三件事没有空目录验证集、测试集和训练集无重复图训练泄漏是「分数好看、上线拉胯」的最常见来源图片总数和标签文件数对得上。全部通过后把最终目录归档并标注日期版本附一页说明目标尺寸、归一化参数、增强策略、标签映射。出了问题能回滚对比。翻车速查表现象大概率原因解法加载报类别数不一致目录名与标签文件对不上统一命名、去空格准确率停滞、个别类学不动类别不均衡补采/增强/类别权重验证集高分、真实图失效训练测试重复、数据太干净去重、补真实场景图检测框整体偏移图缩放后标签没跟着缩放标签与图像同比例变换超过 10 万张的大数据集按批次 8 进程并行处理别一次性全量跑。收尾。整条链路就五步定标准、找数据、按任务打标、标准化增强、统计验收。接下来可以做的三件事挑一个任务拍 200 张图把上面的流程完整走一遍进 mediapipe/model_maker 用整理好的数据集训练第一个模型翻 mediapipe/modules 里的预建图看看官方模型对数据形态的要求【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表