人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载语义分割标注是构建分割训练数据集的起点本文基于 PaddleSeg 仓库内置的 PaddleLabel 语义分割标注文档系统讲解 PaddleLabel 支持的多边形标注与掩膜标注两种任务模式从数据集目录结构与labels.txt/xx_list.txt文件规范、项目创建与数据导入到界面标注实操、数据划分与导出最后延伸到如何将标注结果直接对接 PaddleSeg 完成训练、评估与预测。读完本文你可以独立搭建一套标注 → 导出 → 训练的完整语义分割工作流。语义分割标注任务概览PaddleLabel 的图像分割标注功能支持语义分割与实例分割两类任务本仓库对应文档见 semantic_segmentation.md其中语义分割支持两种标注形态多边形Polygon标注沿目标物体轮廓打点形成闭合多边形来包围目标掩膜Mask标注使用笔刷在目标内部涂抹直接以像素级掩膜刻画目标区域。两种形态在标注界面上的操作方式不同且不可混用需要在创建项目时就确定采用哪一种。它们的差异同样体现在导出数据上多边形格式导出为 COCO JSON掩膜格式导出为JPEGImages/Annotations目录加标签文件列表的目录结构。数据结构与数据集组织掩膜格式掩膜格式的语义分割数据集按图像文件夹 标注文件夹组织待标注图片必须放在JPEGImages文件夹下创建项目填写数据地址时数据集路径填写JPEGImages的上层目录即Dataset Path这一点与其他任务不同创建时需特别注意。标注完成后导出示例格式如下Dataset Path ├── Annotations │ ├── A0001.png │ ├── B0001.png │ ├── H0002.png │ └── ... ├── JPEGImages │ ├── A0001.jpg │ ├── B0001.png │ ├── H0002.bmp │ └── ... ├── labels.txt ├── test_list.txt ├── train_list.txt └── val_list.txt # labels.txt background - optic_disk - 128 0 0 // for pesudo color mask, color for each label must be specified关键约定所有位于/Dataset Path/JPEGImages/下的图像都会被导入无论是否有对应标签所有位于/Dataset Path/Annotations/下的图片都会被作为标签导入PaddleLabel 通过文件夹位置区分图像与标签图像与标签通过去掉扩展名后的同名进行匹配同一图像只能对应一个标签文件例如image.png与image.webp同时匹配image.png标签会导入失败labels.txt中第一个标签固定被视为背景类并分配编号 0标签图像通常为 PNG灰度掩膜中像素灰度值对应标签编号伪彩色掩膜中像素颜色与labels.txt中指定的颜色匹配。若掩膜中存在未在labels.txt中声明的标签导入将失败导出时labels.txt第一行固定是背景类灰度标签导出为单通道图像灰度值即类别伪彩色标签导出为三通道图像像素颜色即类别。labels.txt 标签文件规范labels.txt是掩膜类数据集的核心标签声明文件详细规范见 dataset_file_structure.md每行一个标签|表示分隔符默认为空格支持以下行格式字段数量含义1标签名2标签名 | 标签编号3标签名 | 标签编号 | 十六进制颜色或常用颜色名称或灰度值5标签名 | 标签编号 | 红色 | 绿色 | 蓝色其他语法//之后的内容作为标签注释导入时忽略-占位符需要指定标签颜色但不想指定标签编号时在编号位置写-PaddleLabel 会自动按导入顺序编号。示例dog monkey 4 mouse - #0000ff // mouses id will be 5 cat 10 yellow zibra 11 blue // some common colors are supported snake 12 255 0 0 // rgb color导入过程中 PaddleLabel 会先按labels.txt创建标签编号从0开始递增导出时也会自动生成该文件。多边形格式COCO多边形格式的项目只需在创建时填入待标注图片所在目录。标注完成后导出示例格式如下Dataset Path ├── image │ ├── 0001.jpg │ ├── 0002.jpg │ ├── 0003.jpg │ └── ... ├── train.json ├── val.json └── test.jsonCOCO JSON 的标准结构如下{ info: info, images: [image], annotations: [annotation], licenses: [license], categories: [category], } image{ id: int, width: int, height: int, file_name: str, license: int, flickr_url: str, coco_url: str, date_captured: datetime, } annotation{ id: int, image_id: int, category_id: int, segmentation: RLE or [polygon], area: float, bbox: [x,y,width,height], iscrowd: 0 or 1, } category{ id: int, name: str, supercategory: str, color: str // this feature is specific to PP Label. Its not in the coco spec. }注意事项使用 COCO 格式的项目不支持xx_list.txt与labels.txt数据集划分信息直接写在train.json、val.json、test.json三个文件中category中的color字段是 PaddleLabel 特有的扩展不在标准 COCO 规范中导出时会保存、导入时会使用导入时每个图像在三个 json 中只能被定义一次且建议将所有图像放在同一文件夹下以避免file_name重名导致匹配冲突导出时即使数据全部分到同一子集三个 json 文件也都会生成。创建语义分割标注项目浏览器打开 PaddleLabel 后通过创建项目下的语义分割卡片创建新的图像分割标注项目若已创建可通过我的项目找到对应项目并点击标注继续标注。项目创建选项卡需填写选项必填说明项目名称是该分类标注项目的名称数据地址是掩膜格式填JPEGImages的上层目录Dataset Path多边形格式填待标注图片所在目录数据集描述否数据集描述文字标注类型是选择多边形标注任务或掩膜标注任务数据导入创建项目时填写的数据地址即数据集文件夹路径。为了让 PaddleLabel 正确识别和处理数据集请按照上文 数据结构与数据集组织 组织数据xx_list.txt的详细组织方式参考 数据集文件结构说明。关于xx_list.txt还需了解以下几点train_list.txt、val_list.txt、test_list.txt需放在数据集根目录与labels.txt同层每行以一条数据的相对数据集根目录的路径开头后接类别整数/字符串或标签文件路径掩膜格式下典型的行内容为JPEGImages/1.jpeg Annotations/1.png形式大多数项目只使用xx_list.txt中的数据集划分信息行内类别信息不一定被考虑导出时三个文件都会生成即使为空但没有标注注释的数据不会写入xx_list.txt以确保 Paddle 生态其他工具可以正常读取。此外 PaddleLabel 内置了参考数据集语义分割样例位于~/.paddlelabel/sample/semantic_seg可以对照该结构组织自己的数据。创建样例项目时数据会解压到~/.paddlelabel/sample文件夹。数据标注实操创建并进入项目后即进入标注界面。PaddleLabel 界面分为五个区域上方为可切换的标签页下方为标注进度展示左侧为图像显示区域与工具栏右侧为标签列表用于添加标签和标注。多边形标注流程点击右侧添加标签填写信息并创建标签选中一个标签点击左侧工具栏的多边形在图像上沿目标物体轮廓依次点击形成包围物体的闭合多边形需要修改时点击左侧工具栏的编辑调整多边形顶点点击左右按钮切换图像重复上述操作直至全部数据标注完毕通过下方进度展示查看标注进度。掩膜标注流程点击右侧添加标签填写信息并创建标签选中一个标签点击左侧工具栏的笔刷鼠标悬浮可调整笔刷大小在图像上按住鼠标左键涂抹目标物体内部需要删除掩膜时点击左侧工具栏的橡皮擦进行修改点击左右按钮切换图像重复上述操作直至全部数据标注完毕通过下方进度展示查看标注进度。关键概念与注意事项PaddleLabel 右侧标签栏区分**标签Label与标注Annotation**两类对象在图像分割中标签对应类别标注对应该类别的一个实例语义分割中每一个类别只能创建一个实例这与实例分割同一类别可有多个实例不同多边形模式和掩膜模式不可同时使用创建项目时就必须确定格式导出时多边形格式只保存多边形、掩膜格式只保存掩膜多边形会转换为掩膜保存因此不建议混用两种标注形式。完成标注数据划分与导出完成数据标注后PaddleLabel 提供便捷的数据划分功能用于与 Paddle 其他工具套件如 PaddleSeg、PaddleDetection快速衔接。点击右侧工具栏的项目总览按钮进入项目总览界面可查看数据与标注状态并通过上方快捷按钮执行操作划分数据集点击划分数据集按钮弹出划分比例设置分别填入训练集、验证集、测试集占比点击确定完成划分导出数据集点击导出数据集输入导出目标文件夹路径并确认即可将标注完成的数据导出到指定路径。交互式分割标注ML 扩展PaddleLabel 内置基于 PaddlePaddle 的机器学习标注能力可加载交互式分割模型实现点击正/负样本点 → 自动生成分割轮廓的智能标注后端基于 EISeg 实现。使用方法与模型下载说明详见 交互式分割标注核心流程为安装 ML 扩展pip install paddlelabel-ml并启动paddlelabel_ml后端在分割任务中点击智能标注将 ML 后端 URL 填入 ML Backend 并保存图像上左键添加正样本点、右键添加负样本点点击确认轮廓生成单个目标。与 PaddleSeg 的衔接从标注数据到模型训练语义分割标注的核心目的是产出可供 PaddleSeg 直接训练的数据集这也是 PdLabel_PdSeg.md 描述的标准工作流PaddleLabel 标注数据 PaddleSeg 训练预测 快速完成一次图像分割任务。数据集结构与 PaddleSeg 的对接验证PaddleLabel 导出的掩膜数据集结构与 PaddleSeg 内置数据集约定完全一致。以仓库内置的视盘分割数据集为例其读取逻辑位于 optic_disc_seg.py该数据集类根据mode读取根目录下的train_list.txt、val_list.txt或test_list.txt见 optic_disc_seg.py#L79-L84并规定文件列表每行必须为image_name label_name两列格式optic_disc_seg.py#L86-L98。这正是 PaddleLabel 掩膜格式导出后的xx_list.txt行结构——JPEGImages/xxx.jpg Annotations/xxx.png。同时PaddleLabel 的通用自定义数据集入口Dataset类位于 dataset.py训练配置中通过type: Dataset配合dataset_root、train_path、val_path、num_classes字段即可直接加载 PaddleLabel 导出的数据。训练配置示例以仓库 quick_start/pp_liteseg_optic_disc_512x512_1k.yml 为参考自定义数据集的配置骨架如下batch_size: 4 iters: 1000 train_dataset: type: Dataset # 自定义数据集使用通用 Dataset 类型 dataset_root: data/optic_disc_seg # 数据集根目录JPEGImages 的上层 train_path: data/optic_disc_seg/train_list.txt num_classes: 2 # 类别数背景也计为一类与 labels.txt 中背景1 个前景一致 transforms: - type: Resize target_size: [512, 512] - type: RandomHorizontalFlip - type: Normalize mode: train val_dataset: type: Dataset dataset_root: data/optic_disc_seg val_path: data/optic_disc_seg/val_list.txt transforms: - type: Normalize mode: val num_classes: 2 optimizer: type: SGD momentum: 0.9 weight_decay: 4.0e-5 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9 loss: types: - type: CrossEntropyLoss coef: [1] model: type: PP_LiteSeg_Tiny num_classes: 2其中num_classes必须与labels.txt声明的类别数一致背景默认算作一类编号 0这一点与 PaddleLabel 导出时labels.txt第一行固定为背景类的约定完全对应。训练、评估与预测将 PaddleLabel 导出的dog_seg_dataset含Annotations、JPEGImages、labels.txt及三个*_list.txt放入data/目录后依次执行# 训练--do_eval 边训练边验证--save_interval 控制保存间隔 python tools/train.py \ --config configs/mynet.yml \ --do_eval \ --use_vdl \ --save_interval 100 \ --save_dir output # 评估默认使用训练中保存的 model_final.pdparams也可指定 best_model python tools/val.py \ --config configs/mynet.yml \ --model_path output/best_model/model.pdparams # 预测 python tools/predict.py \ --config configs/mynet.yml \ --model_path output/best_model/model.pdparams \ --image_path data/dog_seg_dataset/JPEGImages/xxx.jpg \ --save_dir output/result常见问题小结创建掩膜项目时数据地址填错掩膜格式必须填JPEGImages的上层目录Dataset Path而不是JPEGImages本身或图片目录图像与标签对应关系出错确保同组图像与标签去掉扩展名后同名且没有多张图像对应同一标签名掩膜颜色/灰度无法匹配确保labels.txt中的颜色声明与掩膜像素一致伪彩色掩膜必须为每个标签指定颜色如optic_disk - 128 0 0掩膜中不能出现未声明标签两种标注形态混用多边形与掩膜在创建项目后不可切换导出时也只保留所选形态请按需提前确定导入前备份数据PaddleLabel 在导入更多数据时可能移动文件到项目数据集文件夹避免复制以节省磁盘并在数据集根目录生成paddlelabel.warning文件建议导入前复制原始数据集作为备份。至此从创建语义分割标注项目、组织数据集、执行多边形/掩膜标注到划分导出并衔接 PaddleSeg 完成训练的全流程已经打通你可以基于这套流程快速构建自己的语义分割数据集与模型。赞分享人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载相关推荐高效自动化原神私服部署解决方案KCN-GenshinServer企业级技术架构解析高效自动化原神私服部署解决方案KCN GenshinServer企业级技术架构解析 KCN GenshinServer作为基于Grasscutter框架开发的人工智能计算机视觉预训练PaddleLabel 标注到 PaddleSeg 训练图像分割数据准备、配置与全流程实战指南PaddleLabel 标注到 PaddleSeg 训练图像分割数据准备、配置与全流程实战指南 本文基于 PaddleSeg 仓库中 contrib/Padd人工智能计算机视觉预训练scrcpy 安卓投屏控制完整教程三步投屏、操作、录制手机scrcpy 安卓投屏控制完整教程三步投屏、操作、录制手机 scrcpy 是一款免费的安卓投屏控制工具它把手机的屏幕视频和声音镜像到电脑窗口里同时让电脑的人工智能计算机视觉预训练上一篇终极指南ArchiSteamFarm如何与Steam API交互实现高效游戏卡片 Farming下一篇AndroidVideoCache终极安全漏洞解析2025年CVE漏洞修复完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考