图像分割是计算机视觉的一项基础技术,其目标是将图像中的像素按内容分成不同的类别。它在许多领域有重要应用,比如自动驾驶、工业质检、医疗图像分析、遥感图像解译等。
导读
PaddleSeg 是飞桨高性能图像分割开发套件,在图像分割领域做了大量的开源工作,致力于帮助企业在实际场景中落地 AI 应用,也帮助初学者快速入门直到精通。
在广大开发者的使用、反馈和贡献之下,PaddleSeg 持续迭代升级,整体架构设计更加合理优雅,集成的模型日益丰富,在语义分割、交互式分割、深度抠图、人像分割、医学图像分割等重点场景也逐步形成了独具特色的功能。现在,我们非常高兴地宣布,PaddleSeg 2.8 版本正式发布啦!希望新版本的特性能给广大开发者带来实打实的便利,更好地让图像分割技术应用到实际场景中去,创造更大的价值!
接下来,就让我们来看看 PaddleSeg 2.8 版本都带来了哪些新功能与特性吧~
🔥开源飞桨版本视觉大模型 Segment Anything Model (SAM) 和演示Demo。由 META AI 发表的 SAM 具有强大的 zero-shot 能力,可以分割任意物体和图像,也可以使用提示输入分割特定目标。
🔥 发布超轻量级语义分割模型 PP-MobileSeg :在 ADE20K 数据集上对比 SOTA 模型,PP-MobileSeg 的速度提升 42.3%、精度提升 1.5%、参数量减少 34.9% 。
🔥 发布工业质检工具 QualityInspector v0.5 :提供统一可配置的算法 Pipeline,集成检测和分割模型库,支持 3 种无监督异常检测算法,支持工业级指标评测、分析、调优等功能。
🔥 发布全景分割解决方案 PanopticSeg v0.5 :提供全景分割的全流程开发功能,集成 2 个前沿高精模型,具备灵活的二次开发能力。
🔥 新增了七个前沿语义分割模型:MaskFormer、HRFormer、ViT-Adapter、CAE、SegNeXt、K-Net和LPSNet。
⭐️此外还有很多新功能和特性,比如 FastDeploy 全场景部署能力的集成、EISeg V1.1 版本、视频抠图模型 RVM、人像抠图.NET部署教程等。想要了解更多详情,可至文末加入 PaddleSeg 技术交流群,同时欢迎大家点击 star关注。
https://github.com/PaddlePaddle/PaddleSeg
PaddleSe g 2.8 版本详细解析
“分割一切”大模型 SAM
Segment Anything Model(SAM)是 META AI 最近发表的研究成果,提出了图像分割的新任务、模型和数据集。它效仿了生成式 LLM(Large Language Model, 大语言模型)的 prompt 范式,可以从不同类型的提示中产生高质量的对象掩码,提示类型包括点、框、掩码和文本。SAM 在各种图像分割任务上表现出了极强的泛化能力,并且精度上不输针对各领域数据集专门训练的传统模型。
在飞桨版本 SAM 中,我们提供了 ViT-B、ViT-L、ViT-H 三种 Backbone 的 SAM 模型,大家可以灵活选择、进行推理测试。SAM 模型可以和其它模型配合,做一些有意思的应用,比如任意一个目标检测模型+ SAM =实例分割模型。我们已经将 SAM 与 CLIP 算法进行了结合,提供了基于飞桨 CLIP 算法的 ViT-B 模型权重文件,通过 CLIP 计算文本提示与 SAM 分割结果的匹配得分,从而具有通过本文提示对特定目标进行分割的能力。在接下来的工作中,我们将逐步补全 SAM 模型的微调能力,并进行部署侧的优化,方便大家落地应用!
另外,为了方便大家测试效果,我们还提供了基于 gradio 的 WebUI 应用,以及多种 prompt 方式下的预测脚本。WebUI 应用可以部署在自己的机器上使用,同时,我们也在 AI Studio 中部署了在线版本,方便大家体验。
飞桨版 SAM 传送门
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.8/contrib/SegmentAnything
超轻量级语义分割模型 PP-MobileSeg
相较于 CNN 模型架构,Transformer 模型架构有更好的精度优势。但是 Transformer 结构对算力要求高,限制了它在移动端的广泛应用。针对这个问题,我们提出了一个针对移动端设备的语义分割模型 PP-MobileSeg。在 ADE20K 数据集上,PP-MobileSeg 和此前最佳方法相比,速度提升 42.3%、精度提升 1.5%、参数量减少 34.9%,实现了速度-精度-参数量之间的 SOTA 平衡。
PP-MobileSeg 与其它模型的对比情况以更好地平衡精度、速度和参数量为目标,我们为 PP-MobileSeg 模型提出了三个创新组件:StrideFormer 骨干网络、Aggregated Attention Module (AAM) 聚合注意力模块,和 Valid Interpolate Module (VIM) 有效插值模块。
- StrideFormer 骨干网络
我们使用 MobileNetV3 block 设计了一个四阶段的骨干网络,可以在减少了参数冗余的情况下,高效提取不同感受野的特征。在骨干网络的后两个阶段,我们还使用了 Strided Attention Module 为特征赋予全局视野。
- AAM 聚合注意力模块
为了有效融合特征,我们使用集成投票的形式过滤细节特征。实验证明语义信息的提升至关重要,因此我们在融合特征最后环节添加语义特征,以最大程度保留语义信息。
- VIM 有效插值模块
我们使用 VIM 替换原有的上采用模块,从而显著减少模型推理阶段的延迟。在类别数很多的数据集中,单张图片中存在的语义类别数占数据集类别总数的比例是很小的,例如在 ADE20K 数据集中这个比例大约只有 10%。因此通常做法会导致大量算力用于无用类别的上采样,而 VIM 通过只插值最终预测中存在的类别,显著降低了上采样的延时。
基于三个创新组件,PP-MobileSeg 的网络架构图如下所示:首先通过骨干网络提取并增强语义特征和细节特征,然后通过 AAM 特征融合模块产出最适合语义分割的特征,最后以一个简单的分割头和专注性能优化的 VIM 上采样模块得到分割结果。其中 AAM 和 VIM 的细节展示分别在下图的左上角和右下角,详细说明可以参考 PP-MobileSeg 论文。
PP-MobileSeg 模型架构图
PP-MobileSeg 论文
https://arxiv.org/abs/2304.05152
PP-MobileSeg 传送门
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.8/configs/pp_mobileseg
工业质检工具 QualityInspector
在 3C 电子、汽车、纺织化纤、金属、建筑、食品、日用消费品等生产制造行业,质量检测是保障产品质量的重要一环,是企业确保产品符合标准,满足客户需求,提高竞争力的关键步骤。在深度学习时代,使用视觉技术对零件图像进行质检检测,相比人工或传统的质检方法,能够显著提升精度和效率。因此,我们开发了工业质检工具 QualityInspector,希望帮助开发者快速完成算法的研发、验证和调优,助力从数据标注到模型部署的全流程工业质检应用实践。目前,我们发布了 QualityInspector V0.5 预览版本,主要特性如下:
- 统一可配置的解决方案
支持检测、分割单模型、检测 +RoI 分割串联结合后处理的解决方案,简单修改配置即可轻松组合视觉套件的模型。
- 工业级指标评估和调优
评估工业质检项目实际落地指标,并可直接调节后处理规则参数进行指标一键调优,方便易用。
- 丰富的视觉算法库
新增支持无监督异常检测算法,同时集成飞桨视觉套件的成熟算法库,覆盖图像分割、目标检测等任务。
- 可快速上手的工具
支持数据格式转化工具,快速完成检测,分割 /RoI 分割任务数据格式转化,同时支持数据分析工具和 EISeg 数据标注工具。
QualityInspector 缺陷检测效果
欢迎广大开发者试用并反馈宝贵意见!
QualityInspector 传送门
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.8/contrib/QualityInspector
全景分割解决方案
PanopticSeg全景分割是一项图像解析任务,该任务结合了语义分割(为图像中每个像素赋予一个标签)和实例分割(检测并分割出图像中每一个对象实例)。PaddleSeg 2.8 版本全新推出全景分割解决方案 PanopticSeg ,旨在提供全景分割模型训练、验证与部署的全流程开发解决方案。
- 高精度
提供高质量的前沿全景分割模型,开箱即用,目前已经支持的模型包括 Mask2Former、Panoptic-DeepLab ;
- 全流程
提供全流程开发能力,打通数据集准备、模型训练、模型推理、可视化分析等功能,助力用户完成一站式开发工作;
- 高性能
使用多进程异步 I/O 、多卡并行训练等加速策略,结合飞桨核心框架的显存优化功能,让开发者以更低成本、更高效地完成全景分割模型训练。
使用 PanopticSeg 在 Cityscapes 数据集中的可视化效果,依次为原图、语义分割结果、实例分割结果、全景分割结果
PanopticSeg 传送门
https://github.com/PaddlePaddle/PaddleSeg/blob/release/2.8/contrib/PanopticSeg
集成 FastDeploy 部署能力
大家训练完成分割模型后,经常需要花费大量的时间精力,为不同硬件开发部署程序。为了解决这个痛点,PaddleSeg 2.8 版本深入对接了飞桨全场景 AI 推理部署工具 FastDeploy 。大家使用 FastDeploy,可以快速在 X86 CPU、NVIDIA GPU、飞腾 CPU、ARM CPU、Intel GPU、昆仑、昇腾、瑞芯微、晶晨、算能等 10+ 款硬件上部署 PaddleSeg 模型,并且支持灵活选择 Paddle Inference、Paddle Lite、TensorRT、OpenVINO、ONNXRuntime、RKNPU2、SOPHGO 等多种推理后端!此外,FastDeploy 针对分割模型进行了深度优化,开发了高效的图像前处理、结果后处理等功能模块,支持 FlyCV 和 CVCUDA 图像加速库,提供简易的上手体验、极致的端到端推理性能。
语义分割模型地硬件支持列表如下:
Matting 模型硬件支持列表如下:
FastDeploy 部署教程传送门
https://github.com/PaddlePaddle/PaddleSeg/tree/release/2.8/deploy/fastdeploy
其它新功能与特性
深受开发者欢迎的智能交互式分割标注工具 EISeg 迎来了 V1.1 版本的升级:
- 新增对检测目标的手工标注功能;
- 新增对检测目标的预标注功能,支持修改预标注的标签对应关系;
- 支持 3 种常用的检测标注保存格式:COCO、VOC 和 YOLO。
Matting 人像抠图解决方案的升级:
- 新增视频抠图模型 RVM,支持视频预测和背景替换;
- 新增人像抠图.NET 部署教程(由外部开发者 @raoyutian 贡献)。
基于.NET 部署的 PaddleSeg C# 应用 demoPaddleSeg 2.8 版本也完成了一些代码重构与升级的工作,例如支持自定义 Optimizer 组件,可灵活配置训练超参;解耦 Config 和 Builder ,严格校验配置信息;新增支持指数滑动平均 EMA ,助力训练过程稳定收敛。此外,在广大开发者的积极反馈之下,发现并修复了若干漏洞,在此对参与 PaddleSeg 项目贡献的开发者们表示衷心的感谢!❤️