updata mainpage

This commit is contained in:
dyning 2020-04-17 23:25:47 +08:00
parent 2ee646eba2
commit 913acf42b2
3 changed files with 28 additions and 30 deletions

View File

@ -3,49 +3,43 @@
**文档教程**https://paddleclas.readthedocs.io (正在持续更新中)
## 简介
PaddleClas的目的是为工业界和学术界提供一个图像分类任务相关的百宝箱特色如下
- 模型库ResNet_vd、MobileNetV3等23种系列的分类网络结构和训练技巧以及对应的117个分类预训练模型和性能评估
- 高阶支持SSLD知识蒸馏方案准确率82.39%的ResNet50_vd和78.9%的MobileNetV3、8种数据增广方法的复现和验证
<div align="center">
<img src="docs/images/main_features.png" width="700">
</div>
- 应用拓展常见视觉任务的特色方案包括图像分类领域的迁移学习百度自研的10万类图像分类预训练模型和通用目标检测mAP 47.8%的实用检测方案)等
## 丰富的模型库
- 实用工具便于工业应用部署的实用工具包括TensorRT预测、移动端预测、模型服务化部署等
- 赛事支持助力多个视觉全球挑战赛取得领先成绩包括2018年Kaggle Open Images V4图像目标检测挑战赛冠军、2019年Kaggle地标检索挑战赛亚军等
## 模型库
基于ImageNet1k分类数据集PaddleClas提供ResNet、ResNet_vd、EfficientNet、Res2Net、HRNet、MobileNetV3等23种系列的分类网络结构的简单介绍、论文指标复现配置以及在复现过程中的训练技巧。与此同时PaddleClas也提供了对应的117个图像分类预训练模型并且基于TensorRT评估了所有模型的GPU预测时间以及在骁龙855SD855上评估了移动端模型的CPU预测时间和存储大小。支持的***预训练模型列表、下载地址以及更多信息***请见文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
基于ImageNet1k分类数据集PaddleClas提供ResNet、ResNet_vd、EfficientNet、Res2Net、HRNet、MobileNetV3等23种系列的分类网络结构的简单介绍、论文指标复现配置以及在复现过程中的训练技巧。与此同时也提供了对应的117个图像分类预训练模型并且基于TensorRT评估了服务器端模型的GPU预测时间以及在骁龙855SD855上评估了移动端模型的CPU预测时间和存储大小。支持的***预训练模型列表、下载地址以及更多信息***请见文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
<div align="center">
<img src="docs/images/models/main_fps_top1.png" width="700">
</div>
上图展示了一些适合服务器端应用的模型,使用V100FP32和TensorRT预测一张图像的时间图中ResNet50_vd_ssld和ResNet101_vd_ssld是采用PaddleClas提供的SSLD蒸馏方法训练的模型。图中相同颜色和符号的点代表同一系列不同规模的模型。不同模型的简介、FLOPS、Parameters以及详细GPU预测时间请参考文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
上图对比了一些最新的面向服务器端应用场景的模型在使用V100FP32和TensorRT预测一张图像的时间和其准确率图中准确率82.4%的ResNet50_vd_ssld和83.7%的ResNet101_vd_ssld是采用PaddleClas提供的SSLD知识蒸馏方案训练的模型。图中相同颜色和符号的点代表同一系列不同规模的模型。不同模型的简介、FLOPS、Parameters以及详细的GPU预测时间请参考文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
<div align="center">
<img
src="docs/images/models/mobile_arm_top1.png" width="700">
</div>
上图展示了一些适合移动端应用的模型在SD855上预测一张图像的时间。图中MV3_large_x1_0_ssldM是MobileNet的简称MV3_small_x1_0_ssld、MV2_ssld和MV1_ssld是采用PaddleClas提供的SSLD蒸馏方法训练的模型。MV3_large_x1_0_ssld_int8是进一步进行INT8量化的模型。不同模型的简介、FLOPS、Parameters和模型存储大小请参考文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
上图对比了一些最新的面向移动端应用场景的模型在骁龙855SD855上预测一张图像的时间和其准确率包括MobileNetV1系列、MobileNetV2系列、MobileNetV3系列和ShuffleNetV2系列。图中准确率79%的MV3_large_x1_0_ssldM是MobileNet的简称71.3%的MV3_small_x1_0_ssld、76.74%的MV2_ssld和77.89%的MV1_ssld是采用PaddleClas提供的SSLD蒸馏方法训练的模型。MV3_large_x1_0_ssld_int8是进一步进行INT8量化的模型。不同模型的简介、FLOPS、Parameters和模型存储大小请参考文档教程中的[**模型库章节**](https://paddleclas.readthedocs.io/zh_CN/latest/models/models_intro.html)。
- TODO
- [ ] EfficientLite、GhostNet、RegNet论文指标复现和性能评估
## 高阶支持
## 高阶优化支持
除了提供丰富的分类网络结构和预训练模型PaddleClas也支持了一系列有助于图像分类任务效果和效率提升的算法或工具。
### 知识蒸馏
### SSLD知识蒸馏
知识蒸馏是指使用教师模型(teacher model)去指导学生模型(student model)学习特定任务,保证小模型在参数量不变的情况下,得到比较大的效果提升,甚至获得与大模型相似的精度指标。
知识蒸馏是指使用教师模型(teacher model)去指导学生模型(student model)学习特定任务,保证小模型在参数量不变的情况下,得到比较大的效果提升,甚至获得与大模型相似的精度指标。PaddleClas提供了一种简单的半监督标签知识蒸馏方案SSLDSimple Semi-supervised Label Distillation使用该方案模型效果普遍提升3%以上,一些蒸馏模型提升效果如下图所示:
<div align="center">
<img
src="docs/images/distillation/distillation_perform.png" width="700">
</div>
PaddleClas提供了一种简单的半监督标签知识蒸馏方案SSLDSimple Semi-supervised Label Distillation使用该方案大幅提升了ResNet101_vdResNet50_vd、MobileNetV1、MobileNetV2和MobileNetV3在ImageNet数据集上分类效果如上图所示。该知识蒸馏方案的框架图如下详细的知识蒸馏方法介绍请参考文档教程中的[**知识蒸馏章节**](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/distillation/index.html)。
以在ImageNet1K蒸馏模型为例SSLD知识蒸馏方案框架图如下该方案的核心关键点包括教师模型的选择、loss计算方式、迭代轮数、无标签数据的使用、以及ImageNet1k蒸馏finetune每部分的详细介绍以及实验介绍请参考文档教程中的[**知识蒸馏章节**](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/distillation/index.html)。
<div align="center">
<img
@ -54,14 +48,14 @@ src="docs/images/distillation/ppcls_distillation.png" width="700">
### 数据增广
在图像分类任务中,图像数据的增广是一种常用的正则化方法,可以有效提升图像分类的效果,尤其对于数据量不足或者模型网络较大的场景。PaddleClas支持了最新的8种数据增广算法的复现和在统一实验环境下的效果评估变换效果示例如下
在图像分类任务中,图像数据的增广是一种常用的正则化方法,可以有效提升图像分类的效果,尤其对于数据量不足或者模型网络较大的场景。常用的数据增广可以分为3类图像变换类、图像裁剪类和图像混叠类如下图所示。图像变换类是指对全图进行一些变换例如AutoAugmentRandAugment。图像裁剪类是指对图像以一定的方式遮挡部分区域的变换例如CutOutRandErasingHideAndSeekGridMask。图像混叠类是指多张图进行混叠一张新图的变换例如MixupCutmix
<div align="center">
<img
src="docs/images/image_aug/image_aug_samples.png" width="800">
</div>
下图展示了不同数据增广方式在ResNet50上的表现。每种数据增广方法的详细介绍、对比的实验环境请参考文档教程中的[**数据增广章节**](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/image_augmentation/index.html)。
PaddleClas提供了上述8种数据增广算法的复现和在统一实验环境下的效果评估。下图展示了不同数据增广方式在ResNet50上的表现, 与标准变换相比采用数据增广识别准确率最高可以提升1%。每种数据增广方法的详细介绍、对比的实验环境请参考文档教程中的[**数据增广章节**](https://paddleclas.readthedocs.io/zh_CN/latest/advanced_tutorials/image_augmentation/index.html)。
<div align="center">
<img
@ -70,23 +64,27 @@ src="docs/images/image_aug/main_image_aug.png" width="600">
- TODO
- [ ] 更多的优化器支持和效果验证
- [ ] 支持模型可解释性工具
## 开始使用
PaddleClas的安装说明、模型训练、预测、评估以及模型微调finetune请参考文档教程中的[**初级使用章节**](https://paddleclas.readthedocs.io/zh_CN/latest/tutorials/index.html)SSLD知识蒸馏和数据增广的高阶使用正在持续更新中。
## 应用拓展
效果更优的图像分类网络结构和预训练模型往往有助于提升其他视觉任务的效果PaddleClas提供了一系列在常见视觉任务中的特色方案。
## 特色拓展应用
### 图像分类的迁移学习
### 10万类图像分类预训练模型
在实际应用中由于训练数据匮乏往往将ImageNet1K数据集训练的分类模型作为预训练模型进行图像分类的迁移学习。然而ImageNet1K数据集的类别只有1000种预训练模型的特征迁移能力有限。因此百度自研了一个有语义体系的、粒度有粗有细的10w级别的Tag体系通过人工或半监督方式至今收集到 5500w+图片训练数据该系统是国内甚至世界范围内最大规模的图片分类体系和训练集合。PaddleClas提供了在该数据集上训练的ResNet50_vd的模型。下表显示了一些实际应用场景中使用ImageNet预训练模型和上述10万类图像分类预训练模型的效果比对使用10万类图像分类预训练模型识别准确率最高可以提升30%。
在实际应用中由于训练数据的匮乏往往将ImageNet1K数据集训练的分类模型作为预训练模型进行图像分类的迁移学习。为了进一步助力实际问题的解决PaddleClas提供百度自研的基于10万种类别、4千多万的有标签数据训练的预训练模型预训练模型下载地址如下更多的相关内容请参考文档教程中的[**图像分类迁移学习章节**](https://paddleclas.readthedocs.io/zh_CN/latest/application/transfer_learning.html#id1)。
<div align="center">
<img
src="docs/images/10w_cls.png" width="450">
</div>
[**10万类预训练模型下载地址**](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_10w_pretrained.tar)
10万类图像分类预训练模型下载地址如下更多的相关内容请参考文档教程中的[**图像分类迁移学习章节**](https://paddleclas.readthedocs.io/zh_CN/latest/application/transfer_learning.html#id1)。
- [**10万类预训练模型下载地址**](https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_10w_pretrained.tar)
### 通用目标检测
近年来学术界和工业界广泛关注图像中目标检测任务。PaddleClas基于82.39%的ResNet50_vd的预训练模型结合PaddleDetection中丰富的检测算子提供了一种面向服务器端应用的目标检测方案PSS-DET (Practical Server Side Detection)在COCO目标检测数据集上当V100单卡预测速度为61FPS时mAP是41.6%预测速度为20FPS时mAP是47.8%。详情请参考[**通用目标检测章节**](https://paddleclas.readthedocs.io/zh_CN/latest/application/object_detection.html)。
近年来,学术界和工业界广泛关注图像中目标检测任务,而图像分类的网络结构以及预训练模型效果直接影响目标检测的效果。PaddleClas基于82.39%的ResNet50_vd的预训练模型结合PaddleDetection中丰富的检测算子提供了一种面向服务器端应用的目标检测方案PSS-DET (Practical Server Side Detection)。该方案融合了多种只增加少许计算量但是可以有效提升两阶段Faster RCNN目标检测效果的策略包括检测模型剪裁、使用分类效果更优的预训练模型、DCNv2、Cascade RCNN、AutoAugment、Libra sampling以及多尺度训练。其中基于82.39%的R50_vd_ssld预训练模型与79.12%的R50_vd的预训练模型相比检测效果可以提升1.5%。在COCO目标检测数据集上测试PSS-DET当V100单卡预测速度为61FPS时mAP是41.6%预测速度为20FPS时mAP是47.8%。详情请参考[**通用目标检测章节**](https://paddleclas.readthedocs.io/zh_CN/latest/application/object_detection.html)。
<div align="center">
<img
@ -94,10 +92,10 @@ src="docs/images/det/pssdet.png" width="500">
</div>
- TODO
- [ ] PaddleClas在OCR任务中的特色应用
- [ ] PaddleClas在人脸检测和识别中的特色应用
- [ ] PaddleClas在OCR任务中的应用
- [ ] PaddleClas在人脸检测和识别中的应用
## 实用工具
## 工业级应用部署工具
PaddlePaddle提供了一系列实用工具便于工业应用部署PaddleClas具体请参考文档教程中的[**实用工具章节**](https://paddleclas.readthedocs.io/zh_CN/latest/extension/index.html)。
- TensorRT预测
@ -107,7 +105,7 @@ PaddlePaddle提供了一系列实用工具便于工业应用部署PaddleClas
- 多机训练
- Paddle Hub
## 赛事支持
## 护航视觉挑战
PaddleClas的建设源于百度实际视觉业务应用的淬炼和视觉前沿能力的探索助力多个视觉重点赛事取得领先成绩并且持续推进更多的前沿视觉问题的解决和落地应用。更多内容请关注文档教程中的[**赛事支持章节**](https://paddleclas.readthedocs.io/zh_CN/latest/competition_support.html)
- 2018年Kaggle Open Images V4图像目标检测挑战赛冠军

BIN
docs/images/10w_cls.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB