瀏覽代碼

add new docs

jiangjiajun 5 年之前
父節點
當前提交
78755fe901

+ 34 - 0
docs/data/annotation/classification.md

@@ -0,0 +1,34 @@
+# 图像分类
+
+图像分类标注是一项最基础,最简单的标注任务,用户只需将属于同一类的图片放在同一个文件夹下即可,例如下所示目录结构,
+```
+MyDataset/ # 图像分类数据集根目录
+|--dog/ # 当前文件夹所有图片属于dog类别
+|  |--d1.jpg
+|  |--d2.jpg
+|  |--...
+|  |--...
+|
+|--...
+|
+|--snake/ # 当前文件夹所有图片属于snake类别
+|  |--s1.jpg
+|  |--s2.jpg
+|  |--...
+|  |--...
+```
+
+## 数据划分
+
+在模型进行训练时,我们需要划分训练集,验证集和测试集,因此需要对如上数据进行划分,直接使用paddlex命令即可将数据集随机划分成70%训练集,20%验证集和10%测试集
+```
+paddlex --split_dataset ImageNet --dataset_dir MyDataset --val_value 0.2 --test_value 0.1
+```
+
+划分好的数据集会额外生成`labels.txt`, `train_list.txt`, `val_list.txt`, `test_list.txt`四个文件,之后可直接进行训练。
+
+> 注:如您使用PaddleX可视化客户端进行模型训练,数据集划分功能集成在客户端内,无需自行使用命令划分
+
+
+- [图像分类任务训练示例代码](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/image_classification/mobilenetv2.py)
+

+ 13 - 0
docs/data/annotation/index.rst

@@ -0,0 +1,13 @@
+数据标注、转换、划分
+=======================================
+
+
+.. toctree::
+   :maxdepth: 1
+   :caption: 目录:
+
+   classification.md
+   object_detection.md
+   instance_segmentation.md
+   semantic_segmentation.md
+   labelme.md

+ 42 - 0
docs/data/annotation/instance_segmentation.md

@@ -0,0 +1,42 @@
+# 实例分割
+
+实例分割数据的标注推荐使用LabelMe标注工具,如您先前并无安装,那么LabelMe的安装可参考[LabelMe安装和启动](labelme.md)
+
+**注意:LabelMe对于中文支持不够友好,因此请不要在如下的路径以及文件名中出现中文字符!**
+
+## 准备工作     
+
+1. 将收集的图像存放于`JPEGImages`文件夹下,例如存储在`D:\MyDataset\JPEGImages`
+2. 创建与图像文件夹相对应的文件夹`Annotations`,用于存储标注的json文件,如`D:MyDataset\Annotations`
+3. 打开LabelMe,点击”Open Dir“按钮,选择需要标注的图像所在的文件夹打开,则”File List“对话框中会显示所有图像所对应的绝对路径,接着便可以开始遍历每张图像,进行标注工作      
+
+## 目标边缘标注    
+
+1. 打开多边形标注工具(右键菜单->Create Polygon)以打点的方式圈出目标的轮廓,并在弹出的对话框中写明对应label(当label已存在时点击即可,此处请注意label勿使用中文),具体如下提所示,当框标注错误时,可点击左侧的“Edit Polygons”再点击标注框,通过拖拉进行修改,也可再点击“Delete Polygon”进行删除。
+![](./pics/detection2.png)
+
+2. 点击右侧”Save“,将标注结果保存到中创建的文件夹Annotations目录中
+
+## 格式转换
+
+LabelMe标注后的数据还需要进行转换为MSCOCO格式,才可以用于实例分割任务的训练,创建保存目录`D:\dataset_seg`,在python环境中安装paddlex后,使用如下命令即可
+```
+paddlex --data_conversion --source labelme --to MSCOCO \
+        --pics D:\MyDataset\JPEGImages \
+        --annotations D:\MyDataset\Annotations \
+        --save_dir D:\dataset_coco
+```
+
+## 数据集划分
+
+转换完数据后,为了进行训练,还需要将数据划分为训练集、验证集和测试集,同样在安装paddlex后,使用如下命令即可将数据划分为70%训练集,20%验证集和10%的测试集
+```
+paddlex --split_dataset --format COCO --dataset_dir D:\MyDataset --val_value 0.2 --test_value 0.1
+```
+执行上面命令行,会在`D:\MyDataset`下生成`train.json`, `val.json`, `test.json`,分别存储训练样本信息,验证样本信息,测试样本信息
+
+> 注:如您使用PaddleX可视化客户端进行模型训练,数据集划分功能集成在客户端内,无需自行使用命令划分
+
+
+- [实例分割任务训练示例代码](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/instance_segmentation/mask_rcnn_r50_fpn.py)
+

+ 26 - 0
docs/data/annotation/labelme.md

@@ -0,0 +1,26 @@
+# LabelMe的安装和启动
+
+LabelMe可用于标注目标检测、实例分割、语义分割数据集,是一款开源的标注工具。
+
+## 1. 安装Anaconda
+
+推荐使用Anaconda安装python依赖,有经验的开发者可以跳过此步骤。安装Anaconda的方式可以参考[文档](../../appendix/anaconda_install.md)。
+
+在安装Anaconda,并创建环境之后,再进行接下来的步骤
+
+## 2. 安装LabelMe
+
+进入Python环境后,执行如下命令即可
+```
+conda activate my_paddlex
+conda install pyqt
+pip install labelme
+```
+
+## 3. 启动LabelMe
+
+进入安装了LabelMe的Python环境,执行如下命令即可启动LabelMe
+```
+conda activate my_paddlex
+labelme
+```

+ 47 - 0
docs/data/annotation/object_detection.md

@@ -0,0 +1,47 @@
+# 目标检测
+
+目标检测数据的标注推荐使用LabelMe标注工具,如您先前并无安装,那么LabelMe的安装可参考[LabelMe安装和启动](labelme.md)
+
+**注意:LabelMe对于中文支持不够友好,因此请不要在如下的路径以及文件名中出现中文字符!**
+
+## 准备工作     
+
+1. 将收集的图像存放于`JPEGImages`文件夹下,例如存储在`D:\MyDataset\JPEGImages`
+2. 创建与图像文件夹相对应的文件夹`Annotations`,用于存储标注的json文件,如`D:MyDataset\Annotations`
+3. 打开LabelMe,点击”Open Dir“按钮,选择需要标注的图像所在的文件夹打开,则”File List“对话框中会显示所有图像所对应的绝对路径,接着便可以开始遍历每张图像,进行标注工作      
+
+## 目标框标注    
+
+1. 打开矩形框标注工具(右键菜单->Create Rectangle),具体如下图所示     
+![](./pics/detection1.png)
+
+2. 使用拖拉的方式对目标物体进行标识,并在弹出的对话框中写明对应label(当label已存在时点击即可, 此处请注意label勿使用中文),具体如下图所示,当框标注错误时,可点击左侧的“Edit Polygons”再点击标注框,通过拖拉进行修改,也可再点击“Delete Polygon”进行删除。    
+![](./pics/detection3.png)
+
+3. 点击右侧”Save“,将标注结果保存到中创建的文件夹Annotations目录中
+
+## 格式转换
+
+LabelMe标注后的数据还需要进行转换为PascalVOC或MSCOCO格式,才可以用于目标检测任务的训练,创建`D:\dataset_voc`目录,在python环境中安装paddlex后,使用如下命令即可
+```
+paddlex --data_conversion --source labelme --to PascalVOC \
+        --pics D:\MyDataset\JPEGImages \
+        --annotations D:\MyDataset\Annotations \
+        --save_dir D:\dataset_voc
+```
+
+> 注:此文档中以LabelMe为示例,展示了格式转换,如您使用的是数据标注精灵工具,则可在标注完后,选择直接保存为PascalVOC格式
+
+## 数据集划分
+
+转换完数据后,为了进行训练,还需要将数据划分为训练集、验证集和测试集,同样在安装paddlex后,使用如下命令即可将数据划分为70%训练集,20%验证集和10%的测试集
+```
+paddlex --split_dataset --format VOC --dataset_dir D:\MyDataset --val_value 0.2 --test_value 0.1
+```
+执行上面命令行,会在`D:\MyDataset`下生成`labels.txt`, `train_list.txt`, `val_list.txt`和`test_list.txt`,分别存储类别信息,训练样本列表,验证样本列表,测试样本列表
+
+> 注:如您使用PaddleX可视化客户端进行模型训练,数据集划分功能集成在客户端内,无需自行使用命令划分
+
+
+- [目标检测任务训练示例代码](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/object_detection/yolov3_mobilenetv1.py)
+

二進制
docs/data/annotation/pics/detection1.png


二進制
docs/data/annotation/pics/detection2.png


二進制
docs/data/annotation/pics/detection3.png


二進制
docs/data/annotation/pics/detection4.png


二進制
docs/data/annotation/pics/detection5.png


+ 42 - 0
docs/data/annotation/semantic_segmentation.md

@@ -0,0 +1,42 @@
+# 语义分割
+
+语义数据的标注推荐使用LabelMe标注工具,如您先前并无安装,那么LabelMe的安装可参考[LabelMe安装和启动](labelme.md),语义分割的标注与实例分割类似,流程如下
+
+**注意:LabelMe对于中文支持不够友好,因此请不要在如下的路径以及文件名中出现中文字符!**
+
+## 准备工作     
+
+1. 将收集的图像存放于`JPEGImages`文件夹下,例如存储在`D:\MyDataset\JPEGImages`
+2. 创建与图像文件夹相对应的文件夹`Annotations`,用于存储标注的json文件,如`D:MyDataset\Annotations`
+3. 打开LabelMe,点击”Open Dir“按钮,选择需要标注的图像所在的文件夹打开,则”File List“对话框中会显示所有图像所对应的绝对路径,接着便可以开始遍历每张图像,进行标注工作      
+
+## 目标边缘标注    
+
+1. 打开多边形标注工具(右键菜单->Create Polygon)以打点的方式圈出目标的轮廓,并在弹出的对话框中写明对应label(当label已存在时点击即可,此处请注意label勿使用中文),具体如下提所示,当框标注错误时,可点击左侧的“Edit Polygons”再点击标注框,通过拖拉进行修改,也可再点击“Delete Polygon”进行删除。
+![](./pics/detection2.png)
+
+2. 点击右侧”Save“,将标注结果保存到中创建的文件夹Annotations目录中
+
+## 格式转换
+
+LabelMe标注后的数据还需要进行转换为SEG格式,才可以用于实例分割任务的训练,创建保存目录`D:\dataset_seg`,在python环境中安装paddlex后,使用如下命令即可
+```
+paddlex --data_conversion --source labelme --to SEG \
+        --pics D:\MyDataset\JPEGImages \
+        --annotations D:\MyDataset\Annotations \
+        --save_dir D:\dataset_seg
+```
+
+## 数据集划分
+
+转换完数据后,为了进行训练,还需要将数据划分为训练集、验证集和测试集,同样在安装paddlex后,使用如下命令即可将数据划分为70%训练集,20%验证集和10%的测试集
+```
+paddlex --split_dataset --format SEG --dataset_dir D:\MyDataset --val_value 0.2 --test_value 0.1
+```
+执行上面命令行,会在`D:\MyDataset`下生成`train_list.txt`, `val_list.txt`, `test_list.txt`,分别存储训练样本信息,验证样本信息,测试样本信息
+
+> 注:如您使用PaddleX可视化客户端进行模型训练,数据集划分功能集成在客户端内,无需自行使用命令划分
+
+
+- [语义分割任务训练示例代码](https://github.com/PaddlePaddle/PaddleX/blob/develop/tutorials/train/semantic_segmentation/deeplabv3p_xception65.py)
+

+ 41 - 0
docs/gui/introduce.md

@@ -0,0 +1,41 @@
+# 介绍
+
+PaddleX可视化客户端基于PaddleX开发的可视化深度学习模型训练套件,目前支持训练视觉领域的图像分类、目标检测、实例分割和语义分割四大任务,同时支持模型裁剪、模型量化两种方式压缩模型。开发者以点选、键入的方式快速体验深度学习模型开发的全流程。可以作为您提升深度学习模型开发效率的工具。
+
+PaddleX GUI 当前提供Windows,Mac,Ubuntu三种版本一键绿色安装的方式。请至飞桨官网:https://www.paddlepaddle.org.cn/paddle/paddleX 下载您需要的版本。
+
+## 功能
+PaddleX可视化客户端是PaddleX API的衍生品,它在集成API功能的基础上,额外提供了可视化分析、评估等附加功能,致力于为开发者带来极致顺畅的开发体验。其拥有以下独特的功能:
+
+### 全流程打通
+
+PaddleX GUI覆盖深度学习模型开发必经的 **数据处理** 、 **超参配置** 、 **模型训练及优化** 、 **模型发布** 全流程,无需开发一行代码,即可得到高性深度学习推理模型。
+
+### 数据集智能分析
+
+详细的数据结构说明,并提供 **数据标签自动校验** 。支持 **可视化数据预览** 、 **数据分布图表展示** 、 **一键数据集切分** 等实用功能
+
+### 自动超参推荐
+
+集成飞桨团队长时间产业实践经验,根据用户选择的模型类别、骨架网络等,提供多种针对性优化的 **预训练模型** ,并 **提供推荐超参配置** ,可 **一键开启多种优化策略**
+
+### 可视化模型评估
+
+集成 **可视化分析工具:VisualDL** , 以线性图表的形式展示acc、lr等关键参数在训练过程中的变化趋势。提供 **混淆矩阵** 等实用方法,帮助快速定位问题,加速调参。模型评估报告一键导出,方便项目复盘分析。
+
+### 模型裁剪及量化
+
+一键启动模型裁剪、量化,在不同阶段为开发者提供模型优化的策略,满足不同环境对模型性能的需求。
+
+### 预训练模型管理
+
+可对历史训练模型进行保存及管理,未进行裁剪的模型可以保存为预训练模型,在后续任务中使用。
+
+### 可视化模型测试
+
+客户端直接展示模型预测效果,无需上线即可进行效果评估
+
+### 模型多端部署
+
+点选式选择模型发布平台、格式,一键导出预测模型,并匹配完善的模型预测部署说明文档,贴心助力产业端到端项目落地
+