PaddleX模型介绍

PaddleX针对图像分类、目标检测、实例分割和语义分割4种视觉任务提供了丰富的模型算法,用户根据在实际场景中的需求选择合适的模型。

图像分类

图像分类任务指的是输入一张图片,模型预测图片的类别,如识别为风景、动物、车等。

../_images/image_classification.png

对于图像分类任务,针对不同的应用场景,PaddleX提供了百度改进的模型,见下表所示:

表中GPU预测速度是使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40)。 表中CPU预测速度 (测试CPU型号为)。 表中骁龙855预测速度是使用处理器为骁龙855的手机测试得到。 测速时模型输入大小为224 x 224,Top1准确率为ImageNet-1000数据集上评估所得。
模型 模型特点 存储体积 GPU预测速度(毫秒) CPU(x86)预测速度(毫秒) 骁龙855(ARM)预测速度 (毫秒) Top1准确率
MobileNetV3_small_ssld 轻量高速,适用于追求高速的实时移动端场景 12.5MB 7.08837 - 6.546 71.3.0%
ShuffleNetV2 轻量级模型,精度相对偏低,适用于要求更小存储体积的实时移动端场景 10.2MB 15.40 - 10.941 68.8%
MobileNetV3_large_ssld 轻量级模型,在存储方面优势不大,在速度和精度上表现适中,适合于移动端场景 22.8MB 8.06651 - 19.803 79.0%
MobileNetV2 轻量级模型,适用于使用GPU预测的移动端场景 15.0MB 5.92667 - 23.318 72.2 %
ResNet50_vd_ssld 高精度模型,预测时间较短,适用于大多数的服务器端场景 103.5MB 7.79264 - - 82.4%
ResNet101_vd_ssld 超高精度模型,预测时间相对较长,适用于有大数据量时的服务器端场景 180.5MB 13.34580 - - 83.7%
Xception65 超高精度模型,预测时间更长,在处理较大数据量时有较高的精度,适用于服务器端场景 161.6MB 13.87017 - - 80.3%

包括上述模型,PaddleX支持近20种图像分类模型,其余模型可参考PaddleX模型库

目标检测

目标检测任务指的是输入图像,模型识别出图像中物体的位置(用矩形框框出来,并给出框的位置),和物体的类别,如在手机等零件质检中,用于检测外观上的瑕疵等。

../_images/object_detection.png

对于目标检测,针对不同的应用场景,PaddleX提供了主流的YOLOv3模型和Faster-RCNN模型,见下表所示

表中GPU预测速度是使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40)。 表中CPU预测速度 (测试CPU型号为)。 表中骁龙855预测速度是使用处理器为骁龙855的手机测试得到。 测速时YOLOv3的输入大小为608 x 608,FasterRCNN的输入大小为800 x 1333,Box mmAP为COCO2017数据集上评估所得。
模型 模型特点 存储体积 GPU预测速度 CPU(x86)预测速度(毫秒) 骁龙855(ARM)预测速度 (毫秒) Box mmAP
YOLOv3-MobileNetV3_larget 适用于追求高速预测的移动端场景 100.7MB 143.322 - - 31.6
YOLOv3-MobileNetV1 精度相对偏低,适用于追求高速预测的服务器端场景 99.2MB 15.422 - - 29.3
YOLOv3-DarkNet53 在预测速度和模型精度上都有较好的表现,适用于大多数的服务器端场景 249.2MB 42.672 - - 38.9
FasterRCNN-ResNet50-FPN 经典的二阶段检测器,预测速度相对较慢,适用于重视模型精度的服务器端场景 167.MB 83.189 - - 37.2
FasterRCNN-HRNet_W18-FPN 适用于对图像分辨率较为敏感、对目标细节预测要求更高的服务器端场景 115.5MB 81.592 - - 36
FasterRCNN-ResNet101_vd-FPN 超高精度模型,预测时间更长,在处理较大数据量时有较高的精度,适用于服务器端场景 244.3MB 156.097 - - 40.5

除上述模型外,YOLOv3和Faster RCNN还支持其他backbone,详情可参考PaddleX模型库

实例分割

在目标检测中,模型识别出图像中物体的位置和物体的类别。而实例分割则是在目标检测的基础上,做了像素级的分类,将框内的属于目标物体的像素识别出来。

../_images/instance_segmentation.png

PaddleX目前提供了实例分割MaskRCNN模型,支持5种不同的backbone网络,详情可参考PaddleX模型库

表中GPU预测速度是使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40)。 表中CPU预测速度 (测试CPU型号为)。 表中骁龙855预测速度是使用处理器为骁龙855的手机测试得到。 测速时MaskRCNN的输入大小为800 x 1333,Box mmAP和Seg mmAP为COCO2017数据集上评估所得。
模型 模型特点 存储体积 GPU预测速度 CPU(x86)预测速度(毫秒) 骁龙855(ARM)预测速度 (毫秒) Box mmAP Seg mmAP
MaskRCNN-HRNet_W18-FPN 适用于对图像分辨率较为敏感、对目标细节预测要求更高的服务器端场景 143.9MB - - - 38.2 33.4
MaskRCNN-ResNet50-FPN 精度较高,适合大多数的服务器端场景 177.7M - - - 38.7 34.7
MaskRCNN-ResNet101_vd-FPN 高精度但预测时间更长,在处理较大数据量时有较高的精度,适用于服务器端场景 253.7M - - - 41.4 36.8

语义分割

语义分割用于对图像做像素级的分类,应用在人像分类、遥感图像识别等场景。

../_images/semantic_segmentation.png

对于语义分割,PaddleX也针对不同的应用场景,提供了不同的模型选择,如下表所示

表中GPU预测速度是使用PaddlePaddle Python预测接口测试得到(测试GPU型号为Nvidia Tesla P40)。 表中CPU预测速度 (测试CPU型号为)。 表中骁龙855预测速度是使用处理器为骁龙855的手机测试得到。 测速时模型的输入大小为1024 x 2048,mIOU为Cityscapes数据集上评估所得。
模型 模型特点 存储体积 GPU预测速度 CPU(x86)预测速度(毫秒) 骁龙855(ARM)预测速度 (毫秒) mIOU
DeepLabv3p-MobileNetV2_x1.0 轻量级模型,适用于移动端场景 - - - 69.8%
HRNet_W18_Small_v1 轻量高速,适用于移动端场景 - - - -
FastSCNN 轻量高速,适用于追求高速预测的移动端或服务器端场景 - - - 69.64
HRNet_W18 高精度模型,适用于对图像分辨率较为敏感、对目标细节预测要求更高的服务器端场景 - - - 79.36
DeepLabv3p-Xception65 高精度但预测时间更长,在处理较大数据量时有较高的精度,适用于服务器且背景复杂的场景 - - - 79.3%