ARTICLE DETAIL

资讯详情

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

MMagic 数据集准备全指南:下载、预处理与数据集类详解

MMagic 数据集准备全指南:下载、预处理与数据集类详解 媒体生成计算机视觉深度学习人工智能大模型【免费下载链接】mmagicOpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic : Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.项目地址https://gitcode.com/gh_mirrors/mm/mmagic点击查看免费下载本指南面向在 MMagicOpenMMLab 多模态生成式 AI 工具箱中训练与测试各类生成/复原模型的开发者系统讲解从官方主页下载数据集、通过tools/dataset_converters预处理脚本完成裁剪/降采样/标注/LMDB 打包以及理解BasicImageDataset、BasicFramesDataset等核心数据集类的加载机制。读完本文你将掌握 DIV2K、REDS、Vimeo90K 等常用数据集的完整落地流程并能基于现有数据集类自定义新数据集。下载数据集MMagic 覆盖了超分辨率、视频复原、图像补全、图像翻译、无条件/条件生成等多种任务不同任务使用不同的数据集。数据准备的第一步是从数据集官方主页下载原始数据。大多数数据集下载后即可直接使用无需额外处理只需要保证文件夹结构正确即可。以 Vimeo90K-triplet 为例从 TOFlow 项目主页下载后保持其clip/sequence/img的三级结构放在data/vimeo_triplet/sequences/...下sequences/00001/0001/im1.png、im2.png、im3.png配合tri_trainlist.txt、tri_testlist.txt列表文件即可被 BasicFramesDataset 直接加载。Vimeo90K-triplet 的目录组织细节可参考 tools/dataset_converters/vimeo90k-triplet/README.md。准备数据集使用预处理脚本部分数据集在训练/测试前需要预处理。MMagic 在 tools/dataset_converters 目录下按数据集维度提供了大量预处理脚本每个子目录如div2k/、reds/、vimeo90k/、comp1k/、glean/、sidd/、places365/等均配有README.md/README_zh-CN.md教程与对应的.py脚本按教程运行即可。典型示例DIV2K 子图像裁剪对于单图像超分SISR任务MMagic 官方推荐将 DIV2K 大图裁剪为子图像以获得更快的 IO 速度。执行python tools/dataset_converters/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K该命令以./data/DIV2K为数据根目录默认依次完成三件事见 preprocess_div2k_dataset.py 的main入口逻辑裁剪子图像main_extract_subimages对DIV2K_train_HR及其DIV2K_train_LR_bicubic/X2、X3、X4三个降采样目录分别执行滑动窗口裁剪输出到带_sub后缀的新目录生成标注文件generate_anno_file根据文件名前四位0001~0800为训练集、0801~0900为验证集自动生成meta_info_DIV2K800sub_GT.txt与meta_info_DIV2K100sub_GT.txt可选打包 LMDB当传入--make-lmdb时将裁剪后的子图打包为 4 个.lmdb文件。该脚本的完整命令行参数定义于 parse_args如下表参数默认值含义--data-root必填DIV2K 数据集根目录--anno-train-pathmeta_info_DIV2K800sub_GT.txt训练集标注文件路径--anno-test-pathmeta_info_DIV2K100sub_GT.txt测试集标注文件路径--scales[2, 3, 4]需要处理的降采样倍数列表--crop-size480HR 图像的裁剪尺寸LR 侧按crop_size // scale自动缩放--step240滑动窗口步长相邻子图有重叠--thresh-size0小于该阈值的边缘残块会被丢弃--compression-level3PNG 压缩级别0~9越大文件越小但压缩越慢对应cv2.IMWRITE_PNG_COMPRESSION--n-thread8多进程裁剪的线程数--make-lmdbFalse开关是否同时生成 LMDB 文件预处理后的目录结构详见 tools/dataset_converters/div2k/README.mddata/DIV2K ├── DIV2K_train_HR_sub # 裁剪后的 HR 子图 ├── DIV2K_train_LR_bicubic │ ├── X2 / X3 / X4 │ ├── X2_sub / X3_sub / X4_sub # 裁剪后的 LR 子图 ├── meta_info_DIV2K800sub_GT.txt ├── meta_info_DIV2K100sub_GT.txt标注文件每一行记录「图像名 图像形状」例如0001_s001.png (480,480,3)preprocess_div2k_dataset.py会默认生成该格式的标注文件。视频类数据集REDS 与 Vimeo90KREDS视频超分/去模糊常用的预处理命令为python tools/dataset_converters/reds/preprocess_reds_dataset.py --root-path ./data/REDS注意脚本会合并原始 train/val 划分官方验证集 clip 名000~029被改名为 240~269避免与训练集 240 个 clip 冲突从而便于在 REDS4 划分与官方验证划分之间切换同时生成meta_info_reds4_train.txt、meta_info_official_train.txt等 4 个标注文件。若需更快 IO可追加--make-lmdb裁剪子图则使用配套的crop_sub_images.py如python tools/dataset_converters/reds/crop_sub_images.py --data-root ./data/REDS -scales 4。详见 tools/dataset_converters/reds/README.md。Vimeo90K视频超分在下载后需先将vimeo_septuplet/sequences重命名为vimeo90k/GT再运行python tools/dataset_converters/vimeo90k/preprocess_vimeo90k_dataset.py --data-root ./data/vimeo90k该脚本会生成 BIx4、BDx4 降采样序列以及meta_info_Vimeo90K_train_GT.txt、meta_info_Vimeo90K_test_GT.txt标注文件LMDB 打包需要显式指定训练列表与 GT/LQ 路径python tools/dataset_converters/vimeo90k/preprocess_vimeo90k_dataset.py --data-root ./data/vimeo90k --train_list ./data/vimeo90k/sep_trainlist.txt --gt-path ./data/vimeo90k/GT --lq-path ./data/vimeo90k/BIx4 --make-lmdb加速 IOLMDB 数据集针对大规模图像/视频数据MMagic 支持将数据打包为 LMDB 以显著提升读取速度。以 DIV2K 为例python tools/dataset_converters/div2k/preprocess_div2k_dataset.py --data-root ./data/DIV2K --make-lmdb从源码make_lmdb函数可以看到 LMDB 包的内部结构data.mdb、lock.mdb为标准 LMDB 文件另有一个meta_info.txt逐行记录「图像名、形状、压缩级别」如000_00000000.png (720,1280,3) 1图像名不含扩展名作为 LMDB key写入时按batch5000批量提交map_size按单图字节数 ×10 预留。数据集概览按任务划分的数据集动物园MMagic 支持的数据集按任务划分为多类每一类都有对应的教程文档位于各tools/dataset_converters/*/README.md与数据集类实现位于 mmagic/datasets。更深入的数据集设计细节可参考 docs/en/howto/dataset.md数据集如何设计、如何自定义。所有数据集类均继承自 MMEngine 的BaseDataset通过load_data_list加载数据信息列表在__getitem__中调用prepare_data完成「按索引取数据信息get_data_info 应用数据变换pipeline」两步。核心数据集类如下BasicImageDataset单图像任务BasicImageDatasetmmagic.datasets.BasicImageDataset面向超分、补全、无条件生成等单图任务标注文件可选提供标注文件时从标注逐行读取路径支持路径 形状格式如 DIV2K 的0001_s001.png (480,480,3)不提供时则直接扫描data_prefix[search_key]指定文件夹下的图片支持.jpg/.png/.bmp/.tif等扩展名见源码IMG_EXTENSIONS。其load_data_list会结合filename_tmpl为每个 key 同时生成gt_path与img_path。典型用法DIV2K SISRdataset BasicImageDataset( ann_file, metainfodict(dataset_typediv2k, task_namesisr), data_rootdata/DIV2K, data_prefixdict(gtDIV2K_train_HR, imgDIV2K_train_LR_bicubic/X4), filename_tmpldict(img{}_x4, gt{}), pipeline[])在真实配置中configs/_base_/datasets/sisr_x4_test_config.py等基础配置即采用metainfodict(dataset_typediv2k, task_namesisr)的方式声明数据集元信息。BasicFramesDataset视频帧序列任务BasicFramesDatasetmmagic.datasets.BasicFramesDataset面向视频超分VSR、视频帧插值VFI等以帧序列为单位的任务标注文件同样可选。除常规参数外它还支持depth序列路径深度、num_input_frames/num_output_frames输入/输出帧数、fixed_seq_len固定序列长度、load_frames_list按 key 指定要加载的具体帧文件如 VFI 中img[img1.png, img3.png], gt[img2.png]表示用第 1、3 帧预测中间帧。典型用法dataset BasicFramesDataset( ann_filetri_trainlist.txt, metainfodict(dataset_typevimeo90k, task_namevfi), data_rootdata/vimeo-triplet, data_prefixdict(imgsequences, gtsequences), pipeline[], depth2, load_frames_listdict(img[img1.png, img3.png], gt[img2.png]))BasicConditionalDataset条件 GAN 数据集BasicConditionalDatasetmmagic.datasets.BasicConditonalDataset面向条件 GAN如 SAGAN、BigGAN、EG3D支持三种标注形式逐行文本标注首列为图像路径、次列为类别索引例如folder_1/xxx.png 0配合ann_filemeta/train.txt使用字典式 JSON 标注键为图像路径、值为任意标签不限于类别索引例如 EG3D 的annotation.json纯文件夹标注不指定标注文件时按data_prefix下的子文件夹自动生成类别标签。ImageNet 与 CIFAR10 均是对BasicConditionalDataset的封装imagenet_dataset.py、cifar10_dataset.py可通过typeImageNet、typeCIFAR10直接调用。其他专用数据集类AdobeComp1kDatasetcomp1k_dataset.py图像抠图任务加载 (alpha, fg, bg) 三元组支持在线合成 merged 图或在 pipeline 中离线加载已合成的 merged 图配套的 tools/dataset_converters/comp1k 目录还提供了extend_fg.py扩展前景与evaluate_comp1k.py评估等脚本GrowScaleImgDatasetgrow_scale_image_dataset.py面向 PGGAN、StyleGANv1 等渐进式 GAN通过update_annotations在训练过程中按当前分辨率切换数据根目录并由PGGANFetchDataHook.before_train_iter在训练循环中触发SinGANDatasetsingan_dataset.pySinGAN 专用不按索引迭代图像而是通过create_real_pyramid构建多尺度图像金字塔后每次都返回同一份预处理好的data_dictPairedImageDatasetpaired_image_dataset.pyPix2Pix 等成对图像翻译任务每张图是图像对的横向拼接load_data_list扫描后将路径存入pair_path字段供LoadPairedImageFromFile使用UnpairedImageDatasetunpaired_image_dataset.pyCycleGAN 等非成对翻译任务数据按trainA/trainB/testA/testB组织重写__getitem__在训练时随机采样两个域的图像对。设计自己的数据集若现有数据集格式无法满足新任务如去噪、去雨、去雾、去反射有两种方案重组数据格式将新数据整理成 MMagic 已有数据集类能识别的格式自定义数据集类在 mmagic/datasets 下新建数据集类。推荐继承BasicImageDataset/BasicFramesDataset等基类并用DATASETS.register_module()注册DATASETS来自 mmagic/registry.py。例如一个视频帧插值数据集可继承BasicFramesDataset并实现load_annotations返回路径列表。更底层的基类是 MMEngine 的BaseDataset。训练数据量不足时可在配置中使用RepeatDataset包装器重复数据集dataset_A_train dict( typeRepeatDataset, timesN, datasetdict( # 原始 Dataset_A 配置 typeDataset_A, ... pipelinetrain_pipeline))小结MMagic 的数据准备遵循「官方主页下载 → 目录结构对齐 → 预处理脚本裁剪/降采样/标注/LMDB→ 数据集类加载」的标准链路绝大多数数据集下载后只需保证文件夹结构正确DIV2K 等大图数据集推荐使用 preprocess_div2k_dataset.py 裁剪子图并生成标注追求 IO 速度时可追加--make-lmdb视频类数据集的完整教程与脚本位于 tools/dataset_converters 各子目录。理解 BasicImageDataset、BasicFramesDataset 等核心数据类的加载逻辑后即可按需复用或自定义数据集快速接入各类生成与复原模型的训练测试流程。赞分享媒体生成计算机视觉深度学习人工智能大模型【免费下载链接】mmagicOpenMMLab Multimodal Advanced, Generative, and Intelligent Creation Toolbox. Unlock the magic : Generative-AI (AIGC), easy-to-use APIs, awsome model zoo, diffusion models, for text-to-image generation, image/video restoration/enhancement, etc.项目地址https://gitcode.com/gh_mirrors/mm/mmagic点击查看免费下载相关推荐BEVFusion数据准备完全指南nuScenes数据集预处理与配置BEVFusion数据准备完全指南nuScenes数据集预处理与配置 想要在自动驾驶领域快速上手BEVFusion多传感器融合模型数据准备是关键第一步本指自动驾驶计算机视觉多模态深度学习BEVFormer数据集准备详解nuScenes数据预处理完整流程BEVFormer数据集准备详解nuScenes数据预处理完整流程 想要快速上手BEVFormer的自动驾驶3D检测任务掌握 nuScenes数据预处理 是人工智能深度学习计算机视觉自动驾驶MuseTalk训练数据准备指南HDTF数据集预处理全流程MuseTalk训练数据准备指南HDTF数据集预处理全流程 想要训练出高质量的MuseTalk唇形同步模型数据准备是至关重要的第一步。本文将为你详细解析HD人工智能大模型计算机视觉语音媒体生成数字人预训练上一篇LX Music Desktop2024年最值得安装的3个理由免费开源音乐播放器终极指南下一篇MediaPipe Face Mesh 上手指南单摄像头实时检测 468 个 3D 面部关键点创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表