超多,超快,超强!百度飞桨发布工业级图像分割利器PaddleSeg

  • 时间:
  • 浏览:1

近日,飞桨官方发布了工业级图像分割模型库 PaddleSeg,给开发者带来诚意满满的三重超值惊喜:①一次性开源 15 个官方支持的图像分割领域主流模型,大礼包带来大满足。②多卡训练时延比对标产品快两倍,工业级部署能力,时间节省超痛快。③揭秘包揽了 CVPR2019 LIP 挑战赛人体解析任务大满贯的三冠王 ACE2P 预测模型关键技术,带你一步体验世界领先水平效果。 

1. PaddleSeg 重磅发布 

飞桨的新产品 PaddleSeg 全新上线,重点针对图像分割领域,面向开发者提供了完备且易用的工业级分割模型库。

是的,你没人看错,真正经得起考验的【真. 工业级】的分割模型库。

据介绍,PaddleSeg 愿因 在百度无人车、AI 开放平台人像分割、小度 P 图和百度地图等多个产品线上应用或实践,在工业质检行业也愿因 取得了很好的效果。

飞桨官方提供的 PaddleSeg 全景图如下图所示: 

 

2. 图像分割是哪几种? 

图像语义分割通过给出每有1个 图像中像素点的标签,实现图像中像素级别的语义分割,它是由图像除理到图像分析的关键步骤。

就像下图中所看完的那样,还也能 对车辆、马路、人行道等实例进行分割和标记!

 

相比于传统的图像分类任务,图像分割显然更难更冗杂,

有就让,图像分割是图像理解的重要基石,在自动驾驶、无人机、工业质检等应用中都会着举足轻重的地位。 

3. PaddleSeg 三重惊喜 

3.1. 一次性开源 15 个图像分割领域主流模型,大礼包带来大满足 

PaddleSeg 对所有内置的分割模型都提供了公开数据集下的预训练模型,

全面覆盖了 DeepLabv3+、ICNet、U-Net 等图像分割领域的主流模型实现,有就让内置了 ImageNet、COCO、CityScapes 等数据集下的 15 个预训练模型,

满足不同场景下的不同精度需求和性能需求!

15 个预训练模型,请参考 https://github.com/PaddlePaddle/PaddleSeg/blob/master/docs/model_zoo.md

其中,最重要的三种 模型介绍如下:

(1) 支持 U-Net 模型:轻量级模型,参数少,计算快

U-Net 起源于医疗图像分割,整个网络是标准的 Encoder-Decoder 网络,特点是参数少,计算快,应用性强,对于一般场景的适应度很高。U-Net 的网络形态如下:

 

(2)支持 DeepLabv3+模型 :PASCAL VOC SOTA 效果,支持多种 Backbone

DeepLabv3+是 DeepLab 系列的最后一篇文章,其前作有 DeepLabv1,DeepLabv2, DeepLabv3。在最新作中,DeepLab 的作者通过 Encoder-Decoder 进行多尺度信息的融合,一并保留了曾经的空洞卷积和 ASSP 层,其骨干网络使用了 Xception 模型,提高了语义分割的健壮性和运行时延,在 PASCAL VOC 2012 dataset 取得新的 state-of-art performance,即 89.0mIOU。DeepLabv3+的网络形态如下: 

 

在 PaddleSeg 当前实现中,支持三种 分类 Backbone 网络的切换:

• MobileNetv2:
适用于移动端部署愿因 对分割预测时延有较高要求的场景,PaddleSeg 还提供从 0.5x 到 2.0x 不同 DepthMultiplier 的模型。

• Xception:
DeepLabv3+原始实现的 backbone 网络,兼顾了精度和性能,适用于服务端部署。PaddleSeg 提供了 41/65/71 三种 不同淬硬层 的预训练模型。 

(3)支持 ICNet 模型:实时语义分割,适用于高性能预测场景

ICNet(Image Cascade Network)主要用于图像实时语义分割。相较于其它压缩计算的土依据 ,ICNet 既考虑了时延,也考虑了准确性。ICNet 的主要思想是将输入图像变换为不同的分辨率,有就让用不同计算冗杂度的子网络计算不同分辨率的输入,有就让将结果合并。ICNet 由有1个 子网络组成,计算冗杂度高的网络除理低分辨率输入,计算冗杂度低的网络除理分辨率高的网络,通过你是什么 土依据 在高分辨率图像的准确性和低冗杂度网络的时延之间获得平衡。ICNet 的网络形态如下:

3.2. 多卡训练时延比对标产品快两倍,工业级部署能力,时间节省超痛快 

在时延方面,PaddleSeg 也提供了多系统进程的 I/O、优秀的显存优化策略,性能方面得以大大提升。

PaddleSeg 的单卡训练时延是对标产品的 2.3 倍,多卡训练时延是对标产品的 3.1 倍。

与对标产品相比,PaddleSeg 在训练时延、GPU 利用率、显存开销和 Max Batch Size 等方面都会着非常显著的优势。全部的对比数据如下图: 

测试环境与模型:

• GPU: Nvidia Tesla V5000 16G * 8 

• CPU: Intel(R) Xeon(R) Gold 6148

• Model: DeepLabv3+ with Xception65 backbone  

配套的,PaddleSeg 提供了优秀的工业级部署,包括:

• 高性能 C++预测库:
支持 Windows 跨平台兼容,支持 Operator 算子融合、TensorRT 加速、MKL-DNN 等计算图优化。

• Paddle Serving 服务化部署:
支持高并发预测,支持单服务多模型,还支持模型热更新和A/B Test。 

Paddle Serving 的架构图如下: 

不仅在 Paddle Serving 上还也能 应用,PaddleSeg 提供的模型还还也能 通过 Paddle Lite 完成移动端部署,还也能 很好的适配企业级的业务应用。

有点儿值得一提的是,考虑到在实际的企业场景中(如互娱场景等),往往居于标注成本高、标注数据少的疑问,训练数据相对于整个样本空间的占比是非常小的。此时就很有必要采取数据增强策略,对训练集进行扩充。

PaddleSeg 内置了 10 余种数据增强策略,还也能 有效地帮助企业进行数据集扩充,显著提升模型的鲁棒性。

使用 PaddleSeg 进行数据增强的流程如下: 

3.3. 提供包揽 CVPR2019 LIP 挑战赛人体解析任务大满贯三冠王 ACE2P 模型,带你一步体验世界领先水平效果。

CVPR2019 LIP 挑战赛中,百度公司实力爆棚,提出的 ACE2P 模型,包揽全部有1个 人体解析任务的第一名,实至名归的大满贯三冠王。

看完感觉不明觉厉,带你了解一下: 

LIP 是哪几种:

LIP(Look Into Person) 是人体解析领域重要的 benchmark,其中人体解析 (Human Parsing) 是细粒度的语义分割任务,旨在将图像中的人体分割为多个区域,每个区域对应指定的类别,如面部等身体部位或上衣等服装类别。愿因 类别的多样性与冗杂性,比单纯的人体分割更具有挑战性。 

具体的 LIP 又分为有1个 方向,分别是:

• Single-Person Human Parsing Track

• Multi-Person Human Parsing Track 

• Video Multi-Person Human Parsing Track 

ACE2P 是哪几种:

全称是 Augmented Context Embedding with Edge Perceiving。

ACE2P 为人体部件分割模型,目的在于分割出图像中的人体部件和服装等部位。该模型通过融合底层形态、全局上下文信息和边缘细节,端到端训练学习人体解析任务。本次发布的模型为 backbone 为 ResNet101 的单一模型,

网络形态图如下: 

 

CVPR2019 LIP Parsing 的三项榜单全部被百度的 ACE2P 霸榜。 

 

ACE2P 冠军预测模型在 PaddleHub 版本的快速体验命令行直接使用: 

更多内容:https://paddlepaddle.org.cn/hubdetail?name=ace2p&en_category=ImageSegmentation 

4. 实际应用效果为啥在么在样? 

说了没人多,PaddleSeg 实际效果为啥在么在样,某些人用案例说话。 

4.1. 应用场景一:工业质检

飞桨与国内稀土永磁零件质检领军合作土依据 土依据 ,基于 PaddleSeg 模型库,对精密零件的质检工作进行了 AI 赋能升级。 

 

传统的工作土依据 下,质检工人每天也能  8~12 小时在亮光下目视检查直径 45mm 以内零件的质量,工作时延非常大,对视力都会很大的损害。

目前,基于 PaddleSeg 内置 ICNet 模型实现的精密零件智能分拣系统,误收率已低于 0.1%。对于 1K*1K 分辨率的彩色图像,预测时延在 10500Ti 上达到了 25ms,单零件的分拣时延比用某些框架实现的快 20%。PaddleSeg 已帮助工厂达到:生产成本平均降低 15%,工厂效益平均提升 15%。一并,交付质量也大幅提升,投诉率平均降低 500%

4.2. 应用场景二:地块分割

分割技术在农业领域都会着广泛的应用,地块分割便是其中有1个 场景。

传统的地块分割土依据 ,是基于卫星拍摄的遥感影像,依赖于几滴 拥有遥感专业背景的技术人员使用专业软件来进行分析的。

卫星遥感影像数据居于画幅巨大、肉眼分辨率低的疑问,对技术人员的专业要求能力很高,有就让人工标注也能 几滴 的重复劳动,非常费时费力和枯燥无味。

愿因 基于图像分割技术,开发一款地块智能分割系统,快速自动地获知农耕用地边境及面积,就还也能 更加有效地进行农作物产量预估和农作物分类,辅助农业决策。 

 

目前,基于 PaddleSeg 内置模型 DeepLabv3 实现的地块智能分割系统,面积提取准确率已达到了 500% 以上,这对作物长势、作物分类、成熟图片 是什么是什么是什么是什么是什么是什么 图片 的句子的句子期预测、灾害监测、估产等工作都起到了高效的辅助作用,大大节省了人力成本。 

4.3. 应用场景三:车道线分割

车道线分割,是图像分割在自动驾驶领域的有1个 重要应用。

车道线分割的难点主要有有1个 :

• 有1个 是准确度。愿因 涉及到车辆行驶的安全性,车道线分割对准确度的要求非常非常高的。

• 曾经是实时性。在车辆高速行驶的过程中,也能 快速地、实时地提供车道线分割结果。

准确而快速的车道线分割,也能实时地为车辆提供导航和车道定位指引,提高车辆行驶的安全性,目前正在百度无人车应用实践。 

PaddleSeg 实测效果: 

4.4. 应用场景四:人像分割

不仅在工业场景下,在 C 端互娱领域,短视频人像特效、证件照智能抠图、影视后期除理等场景下,都也能 对人像进行分割。 

 

有了你是什么 技术,一寸照片换底色,浅绿色、白色、红色轻松切换。

基于 PaddleSeg 实现的人像分割模型,mIoU 指标愿因 达到了 0.93 以上,有就让愿因 在百度 AI 开放平台上线,合作土依据 企业高达 500 余家,是真正的产业利器。 

5. 技术干货:LIP 人体部件分割关键技术点揭秘 

5.1. 修改网络形态,引入扩张卷积(Dilation convolution),提升 1.7 个点

• 将 ResNet 的 7x7 的卷积层加在了 3 个 3x3 的卷积层,增加网络淬硬层 ,加固网络的底层形态。

• 使用 stride=2 的卷积层替换掉网络中所有的池化层,让下采样过程变得可学习

• 在 Renset 形态的 stage=5 中加入了 dilation,扩大网络的感受野,增加网络的有效作用区域,使得模型形态更加鲁棒

• 加入了 pyramid pooling 形态,保证了有1个 全局的 context 信息的提取。 

5.2. 引入了 Lovasz loss,提升 1.3 个点

• Lovasz loss 是有1个 多类的 IOU loss,是针对分割的评价指标 IOU 专门设计的 loss,更加适合分割任务

• Lovasz loss 配合 cross entroy loss 使用,整体的效果提升了 1.3 个点 

5.3. 定制化的学习土依据 ,提升 0.8 个点

在实践的过程中某些人发现学习土依据 对最终的效果影响也比较大,所以某些人针对任务定制化了学习的土依据 。

• 在就让开始英语 英语 英语 学习的就让某些人先使用 warmup 的学习策略,使得一就让开始英语 英语 英语 时模型的优化更加容易收敛,替换掉常用的 poly 学习策略,引入 cosine decay 的土依据 ,使得在训练快就让开始英语 英语 英语 时学习率不至于过小,而愿因 网络还也能 收敛到最佳值。

• 整个过程学习率曲线可视化如下: 

 

5.4. 加入 edge 模块,提升 1.4 个点

• 加入 edge detection 模块,加深不同 part 之间的骨架形态,减少类间误分割.

• 将 edge 模块的形态与 seg 的形态融合,使得不同任务之间的效果也能相互提升。具体如下: 

 

6. 代码实战体验

为了更好的体验分割库的效果,除理愿因 软硬件环境愿因 的各种疑问,某些人采用了 AIStudio 一站式实训开发平台作为体验环境,通过全部的人像分割的实例教程来熟悉 PaddleSeg 的使用

本教程使用 DeepLabv3+ xception 的网络形态进行人像分割。

DeepLabv3+是 DeepLab 语义分割系列网络的最新作,其前作有 DeepLabv1,DeepLabv2, DeepLabv3, 在最新作中,DeepLab 的作者通过 encoder-decoder 进行多尺度信息的融合,一并保留了曾经的空洞卷积和 ASSP 层,其骨干网络使用了 Xception 模型,提高了语义分割的健壮性和运行时延,在 PASCAL VOC 2012 dataset 取得新的 state-of-art performance,89.0mIOU。 

整个网络形态如下: 

Xception 是 DeepLabv3+原始实现的 backbone 网络,兼顾了精度和性能,适用于服务端部署。

• 传送门:https://aistudio.baidu.com/aistudio/projectdetail/110669

• 关于 AIStudio 的使用还也能 参考:https://aistudio.baidu.com/aistudio/projectdetail/39212 

项目代码内容都会经过研发人员细心优化并封装好顶层逻辑,还也能 让开发者最快土依据 体验PaddleSeg 的效果,以下代码内容供参考核心流程及思路,实际体验建议开发者全部 Fork 项目并点击全部运行即可。 

6.1. 模型训练

第一步:解压预训练模型。

 

第二步:解压训练数据。 

第三步:就让开始英语 英语 英语 训练,其中配置参数「cfg」用于 指定 yaml 配置文件路径, 模型的配置文件居于 configs 文件夹下的.yaml 文件,「use_gpu」用于是有无启用 gpu, 愿因 cpu 训练过慢,不建议使用 cpu 进行训练。 

 

6.2. 模型预测和可视化

预测可视化 参数「--vis_dir」用于指定预测结果图片存放位置。 

 

6.3. 实际效果

将分割前后的数据显示出来。

这里,还也能 任选测试集的数据也还也能 另一方上传数据来测试实际的分割结果。 

效果不错呦,赶快用起来吧!