机器之心发布

机器之心编辑部

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

1. PaddleSeg 重磅发布

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

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

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

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

2. 图像分割是什么?

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

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

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

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

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 由三个子网络组成,计算复杂度高的网络处理低分辨率输入,计算复杂度低的网络处理分辨率高的网络,通过这种方式在高分辨率图像的准确性和低复杂度网络的效率之间获得平衡。ICNet 的网络结构如下:

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

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

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

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

测试环境与模型:

  • GPU: Nvidia Tesla V100 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 模型,包揽全部三个人体解析任务的第一名,实至名归的大满贯三冠王。

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

LIP 是什么:

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

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

  • 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 分辨率的彩色图像,预测速度在 1080Ti 上达到了 25ms,单零件的分拣速度比用其他框架实现的快 20%。PaddleSeg 已帮助工厂达到:生产成本平均降低 15%,工厂效益平均提升 15%。同时,交付质量也大幅提升,投诉率平均降低 30%

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

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

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

卫星遥感影像数据存在画幅巨大、肉眼分辨率低的问题,对技术人员的专业要求能力很高,并且人工标注需要大量的重复劳动,非常费时费力和枯燥无味。

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

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

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

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

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

  • 一个是准确度。由于涉及到车辆行驶的安全性,车道线分割对准确度的要求非常非常高的。
  • 另一个是实时性。在车辆高速行驶的过程中,必须快速地、实时地提供车道线分割结果。

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

PaddleSeg 实测效果:

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

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

有了这个技术,一寸照片换底色,蓝色、白色、红色轻松切换。

基于 PaddleSeg 实现的人像分割模型,mIoU 指标已经达到了 0.93 以上,并且已经在百度 AI 开放平台上线,合作企业高达 60 余家,是真正的产业利器。

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

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

  • 将 ResNet 的 7x7 的卷积层换成了 3 个 3x3 的卷积层,增加网络深度,加固网络的底层特征。
  • 使用 stride=2 的卷积层替换掉网络中所有的池化层,让下采样过程变得可学习
  • 在 Renset 结构的 stage=5 中加入了 dilation,扩大网络的感受野,增加网络的有效作用区域,使得模型特征更加鲁棒
  • 加入了 pyramid pooling 结构,保证了一个全局的 context 信息的提取。

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

  • Lovasz loss 是一个多类的 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. 模型训练

第一步:解压预训练模型

%cd ~/PaddleSeg/!mkdir pretrain!unzip -q -o ~/data/data11874/xception65_pretrained.zip -d pretrain

第二步:解压训练数据,

%cd ~/PaddleSeg/!mkdir data !unzip -q -o ~/data/data11874/humanseg_train.zip -d data

第三步:开始训练,其中配置参数「cfg」用于 指定 yaml 配置文件路径, 模型的配置文件位于 configs 文件夹下的.yaml 文件,「use_gpu」用于是否启用 gpu, 由于 cpu 训练过慢,不建议使用 cpu 进行训练

%cd ~/PaddleSeg/!cp ~/work/humanseg.yml configs/!python ./pdseg/train.py --cfg ./configs/humanseg.yml --use_gpu

6.2. 模型预测和可视化

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

%cd ~/PaddleSeg/!python ./pdseg/vis.py --cfg ./configs/humanseg.yml --vis_dir ./visual --use_gpu

6.3. 实际效果

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

这里,可以任选测试集的数据也可以自己上传数据来测试实际的分割结果。

image_path = "./data/humanseg/test_images/f4963c23694e919b153546c95e3479675a5a13bd.jpg"mask_path = "./visual/visual_results/f4963c23694e919b153546c95e3479675a5a13bd.png"display([image_path, mask_path], 0)

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

更多详情

  • 欢迎加入官方 qq 群:796771754
  • 官网地址:https://www.paddlepaddle.org.cn
  • 项目地址:https://github.com/PaddlePaddle/PaddleSeg

tensorrt 分割_超多,超快,超强!百度飞桨发布工业级图像分割利器PaddleSeg相关推荐

  1. 飞桨模型保存_重磅发布开源框架、生物计算平台螺旋桨,百度飞桨交了年终成绩单...

    机器之心报道 作者:蛋酱.张倩 在 12 月 20 日举行的「WAVE SUMMIT+ 2020 深度学习开发者峰会」上,飞桨平台交出了一份非常亮眼的年终成绩单. 2020 年,是不平凡的一年:这一年 ...

  2. 飞桨模型保存_史上最全解读|飞桨模型库重大升级,主流算法模型全覆盖

    11 月 5 日,在 Wave Summit+2019 深度学习开发者峰会上,飞桨全新发布和重要升级了最新的 21 项进展,在深度学习开发者社区引起了巨大的反响. 很多未到场的开发者觉得遗憾,希望可以 ...

  3. 2021全国人工智能师资培训正式“开课”,百度飞桨助力高校教师提升AI“超能力”...

    点击左上方蓝字关注我们 随着人工智能在各行各业的加速渗透和落地,AI人才缺口问题亟待解决.与此同时,高校教学仍面临着与工业实践脱节.资源差异大等困难,AI师资培训成为人才培养不可忽视的重要一环. 为积 ...

  4. 开学第一周,超30所高校系主任选择与百度飞桨联办校赛

    经历了一场特殊而漫长的假期,各地校园又恢复了往日的热闹,重新焕发出勃勃生机,师生们在一声声久别重逢的暖心问候中,迎来了2023年春季学期. 以赛促学蔚然成风 开学季是校内竞赛策划及启动的最佳时机之一, ...

  5. python基础入门大作业怎么做_【百度飞桨】零基础Python课程大作业

    转眼间百度飞桨的零基础python课程马上就要结束了,所谓年前学python,年后来上号,通过本次课程可以对python有一个基础的认知和掌握,以下是大作业的个人代码,仅供参考. [作业一] #创建S ...

  6. python画饼图_百度飞桨PaddlePaddle之[Python小白逆袭大神]7天训练营

    第三次参加百度的7天训练营了 这次参加的主题是[Python小白逆袭大神],不过你别看是小白逆势...除非你一开始参加就逆袭完,不然你真的是python小白,这个课程还是有难难度的. 说一下个训练营的 ...

  7. ​快来Pick你最喜欢的项目,飞桨黑客松Coding Party项目投票通道已开启!

    PaddlePaddle Hackathon 2021飞桨黑客马拉松,由百度飞桨联合深度学习技术及应用国家工程实验室主办,MLflow.Kubeflow.TVM 等开源项目,及启智OpenI.上海白玉 ...

  8. 基于PaddleSeg的眼底血管分割——使用飞桨助力医学影像分析

    基于PaddleSeg的眼底血管分割--使用飞桨助力医学影像分析 一.项目背景 研究表明,各类眼科疾病以及心脑血管疾病会对视网膜血管造成形变.出血等不同程度的影响.随着生活水平的提高,这类疾病的发病率 ...

  9. 底层框架_百度PaddleCV硬核升级 与飞桨底层框架领先能力全面结合实现软硬一体...

    2020年,"新基建"正给中国科技发展带来新的重大机遇,人工智能基础设施面临全面升级.深度学习框架正是推动产业智能化进阶的重要基础设施.近日,国内唯一开源开放.功能完备的深度学习开 ...

  10. 贝叶斯优化神经网络参数_贝叶斯超参数优化:神经网络,TensorFlow,相预测示例

    贝叶斯优化神经网络参数 The purpose of this work is to optimize the neural network model hyper-parameters to est ...

最新文章

  1. jenkins ssl证书报错问题解决
  2. 判断是否过期的算法_铁观音多久过期,怎么判断铁观音是否过期?
  3. Java compiler level does not match the version of the installed Java project facet.
  4. python自动翻译导学案_批量翻译踩过的坑--python
  5. 某程序员吐槽:分手一个月,发现前女友和一个已婚男人在一起,愤而向他们公司举报,该男已被开除!网友:举报别人不道德!...
  6. python列表排序后返回索引排序
  7. adodb.stream文件操作类
  8. SAP CRM WebClient UI RTL ticket
  9. jquery替换onclick的方法
  10. 【gateway系列】手把手教你gateway整合nacos注册中心
  11. PHP使用array_slice对数组进行分页
  12. MD5详解(校验文件完整性)
  13. 谈谈编程器软件开发与设计
  14. 微信H5开发问题集锦
  15. [算法]代码运行时间增长数量级对比 线性级别N vs 线性对数级别 NlgN
  16. 百度站长平台做https认证总是通不过,验证失败如何解决
  17. 自带RGB灯效,配备显卡专属风道,风行者DF700 Flux上手
  18. Android studio 放大字体
  19. 微型计算机nuc 6i5syk,Intel 英特尔 NUC Kit NUC6i5SYH 紧凑型准系统 开箱(附让人崩溃的系统问题)...
  20. swift版 关于微信支付的那点事

热门文章

  1. Windows Server 2008群集仲裁机制
  2. java t输出_java --输入输出
  3. 排序问题-fastjson-JSONObject
  4. 字节码指令之算术指令
  5. 面试题之cookie和session区别
  6. Boost.log链接问题
  7. 此博客记录我的日常学习过程
  8. 思达报表工具Style Report基础教程—通过镜像,子表和联合将逗号分隔的字段内容处理成多行数据...
  9. 打造极致Material Design动画风格Button
  10. 2012蓝桥杯【初赛试题】 取球游戏