人工智能计算机视觉预训练【免费下载链接】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 项目contrib/PaddleLabel系统讲解这一飞桨PaddlePaddle配套标注工具的核心能力与完整使用链路从安装启动、样例项目快速体验到图像分类、目标检测、语义/实例分割、交互式分割的标注实操与数据集格式规范再到将标注结果直接用于 PaddleSeg以及 PaddleClas、PaddleDetection、PaddleX训练预测的全流程。读完本文你将能够独立搭建标注环境、按规范组织并导出数据集并基于导出结果完成一次完整的自定义图像分割模型训练与推理。一、PaddleLabel 是什么PaddleLabel 是基于飞桨 PaddlePaddle 各套件特性提供的配套数据标注工具涵盖图像分类、目标检测、图像分割三类常见计算机视觉任务的标注能力并同时支持手动标注与交互式智能标注两种模式。其设计目标非常明确让用户方便快捷地标注自定义数据集并将导出数据直接用于飞桨生态其他套件的训练与预测流程从而打通数据标注 → 模型训练 → 模型导出的全流程。从代码组织上看PaddleLabel 的功能由三个仓库协作完成组成部分职责PaddleLabel本项目即contrib/PaddleLabel后端实现负责数据集导入/导出、项目与标签管理、标注数据持久化PaddleLabel-Frontend基于 React 和 Ant Design 构建的前端标注界面PaddleLabel-ML基于 PaddlePaddle 的自动/交互式机器学习辅助标注后端在 PaddleLabel README 中官方将它的核心特性概括为四点简单手动标注直观易操作上手成本极低高效支持交互式分割和预标注标注精度及效率提升显著灵活分类支持单分类和多分类分割支持多边形、笔刷及交互式分割等多种方式可按场景需求自由切换全流程与其他飞桨套件密切配合可完成数据标注、模型训练、模型导出等全流程操作。版本演进上README 记录了两次关键发布2022-08-18 发布 0.1 版本具备分类、检测、分割三大任务的基础标注能力2022-11-30 发布 0.5 版本全面升级三类任务的标注界面新增 PPLCNet 分类预标注、PicoDet 检测预标注优化语义/实例分割的实例区分与交互式分割的 localStorage 存储问题。从仓库中EISeg/requirements-det.txt仅含paddlelabel_ml一项可以看出PaddleLabel 的机器学习扩展正是与仓库内 EISeg 交互式分割能力同源配套的组件。二、安装与启动官方文档 安装指南 建议先创建独立的虚拟环境以避免环境冲突conda create -n paddlelabel python3.10 conda activate paddlelabel随后可通过以下三种方式之一安装其中 pip 安装最简单。2.1 pip 安装推荐pip install --upgrade paddlelabel看到类似Successfully installed paddlelabel-0.5.0的输出即安装成功。2.2 下载最新开发版PaddleLabel 团队会不定期通过 GitHub Action 构建反映最新代码的安装包未经全面测试可能修复了 PyPI 版本中的问题并带来性能提升。步骤为进入 Action 执行记录页选择最新一次执行下载名为PaddleLabel_built_package的产物解压后执行pip install [解压出的.whl文件名如 paddlelabel-0.2.0-py3-none-any.whl]2.3 源码安装克隆后端代码本项目克隆并构建前端需先安装 Node.js 与 npmgit clone https://github.com/PaddleCV-SIG/PaddleLabel-Frontend cd PaddleLabel-Frontend npm install --locationglobal yarn yarn npm run build将构建产物复制到后端静态目录cd ../PaddleLabel/ mkdir paddlelabel/static/ cp -r ../PaddleLabel-Frontend/dist/* paddlelabel/static/安装后端python setup.py install2.4 启动安装完成后终端直接执行paddlelabel # 启动 paddlelabel pdlabel # 缩写与 paddlelabel 完全相同PaddleLabel 默认运行在http://127.0.0.1:17995上并会自动在浏览器中打开网页推荐使用 Chrome。常用启动参数paddlelabel --port 8000 --lan # 指定端口并暴露到局域网--port/-p指定服务端口--lan/-l将服务暴露到局域网可实现电脑上运行 PaddleLabel、平板上进行标注的使用方式在 docker 中运行时也必须添加该参数。三、快速体验内置样例项目为了帮助用户快速上手PaddleLabel 内置了示例项目。网页打开后点击首页左上角项目样例即可进入样例选择界面其中提供分类、检测、实例分割、语义分割四类样例项目卡片点击卡片即进入对应样例项目的总览。样例项目的总览界面上方提供了一系列数据集管理功能按钮项目设置修改项目名称和描述划分数据集对数据集进行训练/验证/测试子集的划分导入额外数据向当前数据集导入更多数据导出数据集将数据集中的图片和标注信息导出去标注跳转到标注页面。创建样例项目后所有样例数据会被解压到~/.paddlelabel/sample文件夹分类、检测、语义分割、实例分割各有对应的 sample 子目录可以作为组织自己数据集的参考模板详见 数据集文件结构说明。四、数据集文件结构基础labels.txt 与 xx_list.txt在深入各任务的标注流程前有必要先理解 PaddleLabel 的通用数据组织规范这部分是 common.md 与 数据集文件结构说明 的核心内容。4.1 无标注数据集如果数据集不含任何标注只需把所有图像文件放在一个文件夹下。PaddleLabel 会遍历文件夹含所有子文件夹中的所有文件按文件扩展名判断类型并导入全部图像所有隐藏文件文件名以.开头会被忽略。⚠️ 注意PaddleLabel 可能会修改数据集文件夹下的文件例如导入更多数据时新文件会被移动到项目数据集文件夹以避免复制数据集、节省磁盘空间。目前它不会删除盘上任何内容但强烈建议导入前复制一份数据集作为备份使用过程中数据集根目录下会生成paddlelabel.warning文件请避免手动改动文件夹内文件。4.2 labels.txt标签定义文件所有不使用 COCO 格式保存标注的项目都支持labels.txtPaddleLabel 在导入时会在数据集路径下寻找该文件每行列出一个标签# labels.txt Monkey Mouse标签名称支持任意字符串但标签名可能被用作导出数据集的文件夹名因此应避免操作系统不支持的字符同时飞桨生态其他工具对标签名可能有进一步限制例如 PaddleX 不支持中文字符作为标签名。labels.txt每行可携带比标签名更多的信息目前支持 4 种格式|表示分隔符默认为空格字段长度含义1标签名2标签名 | 标签编号3标签名 | 标签编号 | 十六进制颜色/常用颜色名称/灰度值5标签名 | 标签编号 | 红色 | 绿色 | 蓝色其他语法规则//其后内容作为标签注释-在标签编号位置写-表示想指定颜色但不指定编号。示例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 开始递增导出时也会生成该文件。语义/实例分割的掩膜导出中labels.txt第一行固定为背景类且每个标签必须指定颜色如optic_disk - 128 0 0。4.3 xx_list.txt数据集划分与匹配文件xx_list.txt包括train_list.txt、val_list.txt、test_list.txt位于数据集根目录。它们指定数据集的划分以及标签/标注文件与图像文件的匹配关系每行以一条数据的相对路径开头后跟表示类别的整数/字符串或标签文件的路径# train_list.txt分类场景 image/9911.jpg 0 3 image/9932.jpg 4 image/9928.jpg Cat# train_list.txtVOC 检测场景 JPEGImages/1.jpeg Annotations/1.xml JPEGImages/2.jpeg Annotations/2.xml JPEGImages/3.jpeg Annotations/3.xml关键规则大多数项目只用xx_list.txt中的数据集划分信息如单分类项目中这三个文件里的类别信息不会被导入标签类别为整数时PaddleLabel 会在labels.txt中查找标签id 从 0 开始若想用数字作标签名可把数字写入labels.txt并在 list 文件中给出 id或加前缀如n10三个文件在导出时都会生成即使为空为确保其他飞桨工具可读取没有标注的数据不会包含在xx_list.txt中。4.4 COCO 格式的注意事项所有使用 COCO 格式保存标注的项目不支持xx_list.txt与labels.txt标注信息集中在train.json、val.json、test.json中。COCO 项目导入时会在数据集路径下寻找这三个 json 文件并解析训练/验证/测试数据要求每个图像在三个 json 中只被定义一次否则导入失败。PaddleLabel 在 COCO 的category中扩展了一个color字段非官方标准会随导入导出保留用于类别颜色标注。五、图像分类标注PaddleLabel 支持单分类与多分类两种分类标注详见 图像分类标注。5.1 单分类ImageNet 格式每条数据只有一个类别数据集路径填写待标注图片所在文件夹的绝对路径。导出格式示例如下Dataset Path ├── Cat │ ├── cat-1.jpg │ ├── cat-2.png │ └── ... ├── Dog │ ├── dog-1.jpg │ └── ... ├── monkey.jpg ├── train_list.txt ├── val_list.txt ├── test_list.txt └── label.txt # labels.txt Monkey Mouse单分类中图像所在文件夹名称即视为其类别因此上例中三张猫图、三张狗图会被自动分类而monkey.jpg没有分类若与文件夹同名的标签不存在导入时会自动创建。为避免冲突单分类项目只导入xx_list.txt的划分信息类别信息不导入。5.2 多分类一条数据可有多个类别类别仅由xx_list.txt决定不考虑文件夹名称。导出格式示例Dataset Path ├── image │ ├── 9911.jpg │ ├── 9932.jpg │ └── monkey.jpg ├── labels.txt ├── test_list.txt ├── train_list.txt └── val_list.txt # labels.txt cat dog yellow black # train_list.txt image/9911.jpg 0 3 image/9932.jpg 2 0 image/9928.jpg monkey5.3 创建项目与标注操作创建项目时需填写项目名称必填、数据集路径必填可直接复制粘贴本地文件夹绝对路径、数据集描述选填、分类项目类型必选单分类/多分类。标注界面分五个区域上方为可切换标签页下方为标注进度左侧为图像显示区与工具栏右侧为标签列表。标注步骤点击右侧添加标签填写信息创建标签选择当前图像对应的标签多分类可多选点击后自动保存点击左右按钮切换图像重复操作直至标注完毕通过下方进度展示查看标注进度。5.4 分类自动标注预标注PaddleLabel 提供基于 PaddlePaddle 的分类自动标注能力详细步骤见 图像分类自动标注。使用前提是安装 ML 扩展pip install paddlelabel与pip install paddlelabel_mlPaddlePaddle 版本要求 2.2.0并分别启动前端与 ML 后端paddlelabel # 前端 paddlelabel_ml # 机器学习后端在项目总览 → 自动推理设置中配置机器学习后端网址必填ML 后端地址默认为http://127.0.0.1:1234模型选择必选当前可选PPLCNetV2分类预训练模型使用预标注模型标签必选选是则接受模型推理标签检测到新标签会自动加入标签列表选否则需自行建立标签对应关系标签对应关系非必填当不使用模型标签时左侧选择框为模型推理标签支持模糊搜索右侧为用户自定义标签可建立一一对应。进入标注页后点击自动推理预测结果即显示到标签列表中若提示未发现高置信度结果可调低推理阈值后重试对结果不满意可清空标注后手动添加标签。六、目标检测标注PaddleLabel 的目标检测标注支持PASCAL VOC、COCO、YOLO三种数据集格式详见 目标检测标注。6.1 PASCAL VOC每张图像对应一个 xml 标注文件数据集路径 ├── Annotations │ ├── 0001.xml │ ├── 0002.xml │ └── ... ├── JPEGImages │ ├── 0001.jpg │ ├── 0002.jpg │ └── ... ├── labels.txt ├── test_list.txt ├── train_list.txt └── val_list.txtxml 结构为标准的annotation根节点内含folder、filename、sizewidth/height/depth以及每个object的name与bndboxxmin/ymin/xmax/ymax等字段。导入时 PaddleLabel 将数据集路径下所有.xml文件作为标签并通过 xml 中的folder与filename节点定位对应图像无folder节点时默认值为JPEGImagesfolder内容为空则认为图像位于/数据集路径/filenamefilename节点必须存在否则导入失败。6.2 COCO整个数据集的标注集中在一个或少数几个json 文件中。PaddleLabel 支持的核心字段如下未列出的字段不会在导入时保存或导出如date_capturedimage{ id: int, width: int, height: int, file_name: str, } annotation{ id: int, image_id: int, category_id: int, area: float, bbox: [x, y, width, height], } category{ id: int, name: str, supercategory: str, color: str // PaddleLabel 扩展字段非 COCO 官方定义 }图片与标注记录的匹配规则取image[file_name]中最后的文件名与盘上图片文件名做大小写敏感的比对。建议将所有图片放在同一文件夹下避免重名歧义若file_name是完整路径或相对路径PaddleLabel 会按/和\分割提取文件名因此请避免在文件名中使用/和\。6.3 YOLO每张图像对应一个同名 txt 文件仅扩展名不同数据集路径 ├── Annotations │ ├── 0001.txt │ ├── 0002.txt │ └── ... ├── JPEGImages │ ├── 0001.jpg │ ├── 0002.jpg │ └── ... ├── labels.txt ├── test_list.txt ├── train_list.txt └── val_list.txt# 0001.txt 0 0.4 0.5 0.7 0.8 # 标签id 框中心x/图像宽 框中心y/图像高 框宽/图像宽 框高/图像高 # 标签id从0开始YOLO 格式图像与标签完全靠文件名对应。若两张图仅扩展名不同如cat.png与cat.jpeg二者都会匹配cat.txt为避免此情况导入时 PaddleLabel 会将cat.png重命名为cat-1.png这可能导致图像找不到对应标注文件需查看运行命令行并调整文件名后重新导入。无标注的图像可不提供标注文件或提供空文件PaddleLabel 导出时不会为无标注图像生成空 YOLO 文件。6.4 检测标注操作与自动标注创建项目时填写项目名称、数据集路径数据集根文件夹、数据集描述选填与标签格式选填导入数据集的格式。标注步骤添加标签 → 选择标签 → 点击工具栏矩形在图上点击物体的左上角与右下角 → 可用编辑修改框的大小位置 → 切换图像重复操作。注意右侧标签栏有标签列表与标注列表两种检测任务中标签列表对应类别标注列表对应该类别的一个实例。检测预标注的配置与分类类似图像检测自动标注可选模型为PicoDetML 后端地址默认http://127.0.0.1:1234同样支持使用预标注模型标签与标签对应关系两个选项以及推理阈值的调节。七、语义分割与实例分割标注分割任务是 PaddleLabel 与 PaddleSeg 衔接最紧密的环节支持多边形与掩膜两种标注方式详见 语义分割标注 与 实例分割标注。多边形与掩膜模式不可同时使用须在创建项目时确定。7.1 掩膜格式语义分割掩膜项目有特殊要求待标注图片需放在JPEGImages文件夹下数据集路径填写JPEGImages的上层目录其他任务直接填图片所在目录。导出结构Dataset Path ├── Annotations │ ├── A0001.png │ ├── B0001.png │ └── ... ├── JPEGImages │ ├── A0001.jpg │ ├── B0001.png │ └── ... ├── 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实例分割掩膜项目则直接填写待标注图片所在文件夹路径标注文件为tiff 二通道格式PNG 变成 TIFF第一个通道下标 0是类别标签第二个通道下标 1是实例编号。导入语义分割掩膜数据时PaddleLabel 从labels.txt获取标签编号第一个标签视为背景并赋编号 0灰度标签按像素灰度值与标签编号匹配伪彩色标签按像素颜色与labels.txt指定颜色匹配若掩膜中存在无对应标签的标注导入将失败。图像与标签的对应关系通过去掉扩展名后同名匹配确定如image.png图像对应image.png标签若多张图对应一个标签则导入失败。导出时labels.txt第一行固定为背景类灰度标签输出单通道图灰度值类别伪彩色标签输出三通道图。7.2 多边形格式语义分割与实例分割的多边形格式完全相同使用 COCO 格式保存导出结构Dataset Path ├── image │ ├── 0001.jpg │ ├── 0002.jpg │ └── ... ├── train.json ├── val.json └── test.json其中annotation的segmentation字段为RLE or [polygon]并含area、bbox、iscrowd字段。注意导出时多边形格式只保存多边形掩膜格式只保存掩膜多边形会转换为掩膜保存因此不建议混用两种标注形式。7.3 标注操作多边形标注添加标签 → 选择标签 → 点击工具栏多边形沿物体轮廓逐点点击形成闭合多边形 → 可用编辑修改。掩膜标注添加标签 → 选择标签 → 点击工具栏笔刷鼠标悬浮可调整笔刷大小按住左键在物体内部绘制 → 可用橡皮擦删除。两类任务的关键区别在于实例处理语义分割每个类别只能创建一个实例实例分割每个类别可创建多个实例标注完成一个实例后必须点击右上角确定轮廓进行实例确认之后才能继续标注下一个实例0.5 版本正是通过确认轮廓来区分实例的。八、交互式分割标注交互式分割是 PaddleLabel 最具特色的能力它基于EISeg后端实现EISeg 本身也收录于本仓库的 EISeg 目录是飞桨高效交互式分割标注工具涵盖通用、人像、遥感、医疗、视频等方向的交互式分割模型详细文档见 交互式分割标注。8.1 安装与启动 ML 扩展# pip 安装 pip install paddlelabel-ml # 或源码安装 git clone https://github.com/PaddleCV-SIG/PaddleLabel-ML cd PaddleLabel-ML python setup.py install安装后启动机器学习后端paddlelabel_ml # 启动 ML 后端8.2 智能标注操作进入分割标注任务后点击右侧工具栏智能标注按钮将 ML 后端的 URL 复制粘贴到 ML Backend 中点击 Save在图像上点击鼠标左键添加正样本点右键添加负样本点单个目标的交互式模式以鼠标中键确认建议标注完每个目标后点击一次中键以获得更高精度的标注结果点击确认轮廓完成单个实例的生成。注意事项智能标注状态下左侧工具栏部分功能不可用需再次点击智能标注暂时关闭ML 后端默认自带一个通用交互式模型如需领域专用模型可在模型下载区下载并在智能标注的 Model Path / Weight Path 中填入对应的*.pdmodel与*.pdiparams文件路径。8.3 可用交互式模型一览模型类型适用场景模型结构模型下载高精度模型通用场景图像标注HRNet18_OCR64static_hrnet18_ocr64_cocolvis轻量化模型通用场景图像标注HRNet18s_OCR48static_hrnet18s_ocr48_cocolvis高精度模型通用图像标注场景EdgeFlowstatic_edgeflow_cocolvis高精度模型人像标注场景HRNet18_OCR64static_hrnet18_ocr64_human轻量化模型人像标注场景HRNet18s_OCR48static_hrnet18s_ocr48_human轻量化模型遥感建筑物标注场景HRNet18s_OCR48static_hrnet18_ocr48_rsbuilding_instance高精度模型X 光胸腔标注场景Resnet50_Deeplabv3static_resnet50_deeplab_chest_xray轻量化模型医疗肝脏标注场景HRNet18s_OCR48static_hrnet18s_ocr48_lits轻量化模型MRI 椎骨图像标注场景HRNet18s_OCR48static_hrnet18s_ocr48_MRSpineSeg轻量化模型质检铝板瑕疵标注场景HRNet18s_OCR48static_hrnet18s_ocr48_aluminium九、全流程实战PaddleLabel 标注 PaddleSeg 训练这是 PaddleSeg 训练教程 的完整实战路径PaddleLabel 标注数据 PaddleSeg 训练预测 快速完成一次图像分割任务。类似的流程也适用于 PaddleClas 训练教程花朵分类 ShuffleNetV2_x0_25与 PaddleX 训练教程图像分类 MobileNetV3_ssld。9.1 数据准备先用 PaddleLabel 对自制数据集进行标注再使用划分数据集功能划分训练/验证/测试子集最后导出数据集。将导出内容统一放入dog_seg_dataset文件夹目录结构为├── dog_seg_dataset │ ├── Annotations │ ├── JPEGImages │ ├── labels.txt │ ├── test_list.txt │ ├── train_list.txt │ └── val_list.txt这一结构与 数据集文件结构说明 中语义分割掩膜格式的规范完全一致train_list.txt、val_list.txt每行形如JPEGImages/xxx.jpg Annotations/xxx.png可直接被 PaddleSeg 的自定义数据集读取。9.2 安装依赖# GPU 机器CUDA9/CUDA10 pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple # CPU 机器 # pip install paddlepaddle git clone https://gitee.com/paddlepaddle/PaddleSeg.git cd PaddleSeg pip install -r requirements.txt python setup.py install把数据集放入 PaddleSeg 的 data 目录cd ./PaddleSeg/data/ mkdir dog_seg_dataset cd ../../ cp -r ./dog_seg_dataset/* ./PaddleSeg/data/dog_seg_dataset9.3 修改配置文件mynet.yml 逐项解析以 FCN 模型为例改完配置文件后放到configs目录下重命名为mynet.ymlbatch_size: 4 # 迭代一次送入网络的图片数量 iters: 10000 # 模型迭代次数 train_dataset: type: Dataset # 数据集格式自定义数据集用 Dataset dataset_root: ../data/dog_seg_dataset # 训练数据集存放的目录 train_path: ../data/dog_seg_dataset/train_list.txt num_classes: 2 # 像素类别数背景也算为一类 transforms: # 数据变换与数据增强 - type: ResizeStepScaling # 按某比例缩放图像以 scale_step_size 为步长 min_scale_factor: 0.5 max_scale_factor: 2.0 scale_step_size: 0.25 - type: RandomPaddingCrop # 随机裁剪图像与标注 crop_size: [512, 512] - type: RandomHorizontalFlip # 以一定概率水平翻转 - type: RandomDistort # 图像像素扰动 brightness_range: 0.4 contrast_range: 0.4 saturation_range: 0.4 - type: Normalize # 图像标准化 mode: train # 训练模式 val_dataset: type: Dataset dataset_root: ../data/dog_seg_dataset val_path: ../data/dog_seg_dataset/val_list.txt transforms: - type: Normalize mode: val # 验证模式 num_classes: 2 optimizer: # 优化器设置 type: sgd # 随机梯度下降 momentum: 0.9 # 动量 weight_decay: 0.0005 # 权值衰减防止过拟合 lr_scheduler: # 学习率策略 type: PolynomialDecay # 多项式衰减共支持 12 种策略 learning_rate: 0.01 power: 0.9 end_lr: 0 loss: # 损失函数设置 types: - type: CrossEntropyLoss # 交叉熵损失 coef: [1] # 多种损失时按 coef 指定配比 model: # 语义分割模型 type: FCN backbone: # 骨干网络 type: HRNet_W48 pretrained: https://bj.bcebos.com/paddleseg/dygraph/hrnet_w48_ssld.tar.gz # 预训练模型 num_classes: 2 pretrained: Null backbone_indices: [-1]从源码层面可以印证这些配置的真实含义type: Dataset对应 paddleseg/datasets/dataset.py 中的Dataset(paddle.io.Dataset)类其构造函数要求num_classes须大于 1、训练模式下必须提供存在的train_path、验证模式下必须提供存在的val_path见 dataset.pytype: FCN对应 paddleseg/models/fcn.py 中通过manager.MODELS.add_component注册的FCN(nn.Layer)类支持pretrained权重加载与backbone_indices指定输出层索引CrossEntropyLoss、PolynomialDecay等组件均由 paddleseg/cvlibs/builder.py 依据配置文件中的type字段动态构建。9.4 训练、评估与预测export CUDA_VISIBLE_DEVICES0 # 边训练边验证--do_eval每 100 个 iters 保存一次模型--save_interval python PaddleSeg/train.py \ --config PaddleSeg/configs/mynet.yml \ --do_eval \ --use_vdl \ --save_interval 100 \ --save_dir PaddleSeg/output评估默认使用训练中保存的模型权重python PaddleSeg/val.py \ --config PaddleSeg/configs/mynet.yml \ --model_path PaddleSeg/output/best_model/model.pdparams预测# image_path 指定预测图片save_dir 指定结果保存目录 python PaddleSeg/predict.py \ --config PaddleSeg/configs/mynet.yml \ --model_path PaddleSeg/output/best_model/model.pdparams \ --image_path PaddleSeg/data/dog_seg_dataset/JPEGImages/e619b17a9c1b9f085dc2712eb603171f.jpeg \ --save_dir PaddleSeg/output/result对应到本仓库PaddleSeg 的训练/评估/预测入口分别为 tools/train.py、tools/val.py、tools/predict.py模型导出可用 tools/export.py这与教程中使用的 CLI 参数--config、--model_path、--image_path、--save_dir等完全一致。至此从 PaddleLabel 标注到 PaddleSeg 训练预测的闭环即告完成。十、开发者视角PaddleLabel 后端架构对希望参与开发或二次集成的读者开发者指南 提供了后端实现的关键信息技术栈围绕connexionspec-first 路由框架先写 OpenAPI spec由 connexion 负责路由与参数完整性校验构建配合SQLAlchemyORM、marshmallow序列化、FlaskWeb 框架。数据库默认 SQLite基于 SQLAlchemy 可方便切换 PostgreSQL项目规划上解耦 SQLAlchemy/marshmallow 与 Flask因此约定避免使用 Flask 专属函数如用pplabel.api.util.abort而非flask.abort。项目结构核心代码位于pplabel包下分为api/controller 处理 API 调用、model 为 SQLAlchemy 模型、schema 为 marshmallow 序列化 schema、task/各类标注任务的导入/导出实现如 classification/detection/segmentation以及io/文件格式 IO、openapi.ymlAPI 规范等测试位于test/test_task.py。请求处理流程connexion 按 OpenAPI spec 校验参数并路由 → 检查 header 中的request_id用于防止同一操作重复执行→ 路径参数传入 handler、请求体经 connexion 读取 → marshmallow 反序列化并校验 → pre/post 触发器如拒绝在项目下创建重名标签→ 数据持久化 → 返回。命名规范后端 Python 变量/表列为 snake_case表名为单数 camelCaseAPI 端点为小写复数前端为 camelCase。响应码约定200 OK、201 创建成功、400 约束校验失败、401 未授权、404 未找到、409 唯一约束冲突。此外文档还提示了一个易混淆点内部label.id从 1 开始但为兼容其他飞桨工具labels.txt与xx_list.txt中的标签编号从 0 开始——这与前面导入时标签编号从 0 递增的规则相互印证。十一、总结PaddleLabel 将手动标注 智能预标注两种模式、分类/检测/分割三类任务、多格式ImageNet、VOC、COCO、YOLO、掩膜 PNG/TIFF数据集导入导出统一到一个工具中并且与飞桨生态紧密衔接。通过本仓库 contrib/PaddleLabel 下的系列文档安装、快速开始、分类标注、检测标注、语义分割标注、实例分割标注、交互式分割标注 及 PaddleSeg 训练教程用户可以快速完成数据标注 → 数据划分导出 → 模型训练 → 评估预测的全流程开发者也可以基于其后端架构指南扩展新的标注任务类型。对于正在使用 PaddleSeg 构建自定义分割模型的团队PaddleLabel 提供了一条开箱即用的数据生产链路。赞分享人工智能计算机视觉预训练【免费下载链接】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点击查看免费下载相关推荐PaddleLabel 标注到 PaddleSeg 训练图像分割数据准备、配置与全流程实战指南PaddleLabel 标注到 PaddleSeg 训练图像分割数据准备、配置与全流程实战指南 本文基于 PaddleSeg 仓库中 contrib/Padd人工智能计算机视觉预训练PaddleLabel 标注 PaddleDetection 训练道路标志检测数据集全流程实战PaddleLabel 标注 PaddleDetection 训练道路标志检测数据集全流程实战 导读 本文给出「数据标注 → 模型训练 → 评估预测」的一人工智能计算机视觉预训练PaddleLabel 到 PaddleClas 花朵分类全流程实战标注、数据划分、训练与预测PaddleLabel 到 PaddleClas 花朵分类全流程实战标注、数据划分、训练与预测 从 PaddleLabel 标注自制花朵数据集到使用 Pad人工智能计算机视觉预训练创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考