自飞桨于6月27日发布 PaddleX 3.0-beta 昇腾版以来,经过双方共同建设,现支持模型数量已经增长到了134个。最近,飞桨推出实例分割任务的新秀——Mask-RT-DETR模型,并且已经在昇腾硬件上完成验证,期待开发者们的体验与反馈。https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/hardware_support/npu/support_cn.html实例分割是计算机视觉领域的一项重要任务,它不仅需要识别图像中的物体类别,更需精确地分割出每个物体实例对应的像素区域。这项技术能够在复杂场景中提供更加丰富且详细的信息,因此广泛应用于遥感图像识别、医疗影像分析、自动驾驶以及智能安防等多个领域。百度飞桨发布的SOTA级别目标检测模型RT-DETR问世以来,凭借其卓越的推理速度和检测精度,迅速成为目标检测开发者的首选。鉴于实例分割算法与目标检测算法存在许多共通之处,飞桨在RT-DETR的基础上进行优化,研发了可以适配实例分割任务的Mask-RT-DETR模型。该模型有望成为实例分割领域内的优秀新兴力量。从下图可以看出, Mask-RT-DETR 相较于其它实例分割模型,在精度和速度的均衡上均展现出显著优势。Mask-RT-DETR 在总体结构上与 RT-DETR 基本一致,但在实现细节上进行了若干改进。首先,Mask-RT-DETR 系列模型统一采用了提取特征能力更好的 PP-HGNetV2 作为骨干网络,并引出四个特征图,以用于检测和分割任务。在 Encoder 部分,Mask-RT-DETR基于HybridEncoder 引入了 MaskFeatFPN 模块,构建了 MaskHybridEncoder 编码器,从而实现了掩码分支的多尺度特征融合。此外,Mask-RT-DETR 对掩码分支也引入了 IoU-aware Query Selection 技术,以筛选出高质量的掩码特征作为编码器的输入。最后,在 Head 部分,Mask-RT-DETR 增加了分割头 MaskDINOHead,用于生成高质量的掩码输出。通过这些改进,在实例分割任务中,Mask-RT-DETR在相同推理耗时下达到了SOTA级别的精度。Mask-RT-DETR 沿用 RT-DETR 模型中的高效混合编码器 HybridEncoder,并在此基础上增加用于掩码特征融合的 MaskFeatFPN 模块,如下图所示,其包含三部分:Attention-based Intra-scale Feature Interaction (AIFI) ,CNN-based Cross-scale Feature-fusion Module (CCFM)和 MaskFeatFPN。MaskFeatFPN 将 S2 特征层与 CCFF 输出的经过编码之后的多尺度特征层作为输入,经过自上而下的特征金字塔,实现掩码层面的多尺度融合。RT-DETR 引入了 IoU-aware Query Selection,通过在训练过程中约束检测器,使其对高 IoU 的特征生成高分类分数,对低 IoU 的特征生成低分类分数。这样一来,模型在选择 top-K 特征时,不仅考虑分类分数,还确保这些特征的预测框具有高 IoU 分数。如下图所示,IoU-aware Query Selection(蓝色点)显著提高了被选中特征的质量,使其集中分布在图示的右上角。同样地,Mask-RT-DETR 对分类分数和 IoU 分数进行了约束,利用去噪后的特征来筛选高质量的 mask。由于高 IoU 和高分类分数通常对应高质量的mask,这些经过筛选的特征在输入解码器后,与直接随机初始化的掩码特征相比,可以显著提升模型的性能。Mask-RT-DETR 在 DINOHead 的基础上增加了一个 mask 分支,使模型在预测掩码后能够与标签进行损失函数的计算。最终得到的 Mask-RT-DETR 模型整体结构如下图所示:下图展示了 Mask-RT-DETR 不同版本模型的 benchmark 指标,其中 Mask-RT-DETR-H 模型的 mask mAP 达到 48.8%,在相同推理速度指标下达到SOTA精度。以下精度指标为 COCO2017 验证集 mask mAP(0.5:0.95),精度类型为 FP32。如何低成本开发和优化单模型一直是业界关注的问题, 为了解决这一问题,PaddleX在模型的开发流程上做了升级,开发者无需深入底层原理,仅需要统一的命令,加载不同的配置,即可完成不同任务的数据校验、训练、评估、推理。在此基础上,PaddleX 暴露了关键超参数,支持开发者快速修改、调参、优化模型。# 数据校验
python main.py -c paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml -o Global.mode=dataset_check -o Global.device=cpu
# 模型训练
python main.py -c paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml -o Global.mode=train -o Global.device=npu:0,1,2,3
# 模型评估
python main.py -c paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml -o Global.mode=evaluate -o Global.device=npu:0
# 模型推理
python main.py -c paddlex/configs/instance_segmentation/Mask-RT-DETR-L.yaml -o Global.mode=predict -o Global.device=npu:0
为实现将训练好的模型快速方便地接入已有系统,PaddleX提供了极简的Python API,仅需三行代码,即可完成模型的集成。from paddlex import create_model
model = create_model(model_name="Mask-RT-DETR-L", model_dir="your_model_dir", device="npu")
result = model.predict({'input_path': "xxx.jpg"})
PaddleX不仅支持通过极简的Python API来集成模型,使开发者能够以简洁高效的方式进行模型的调用,还提供了多种高性能部署和服务化部署的解决方案。高性能部署方式通过优化推理的前后处理流程和硬件加速技术,显著提升了模型预测的速度,满足了高并发、低延迟的实时应用需求,从而为用户带来更流畅的使用体验。而服务化部署则将模型封装为独立的服务,使其可以通过HTTP等协议进行调用,简化了模型的集成和管理。通过服务化部署,企业可以轻松实现模型的多节点分布式部署,增强系统的扩展性和可靠性,同时便利了模型的版本管理和更新,确保业务的持续创新和稳定运行。https://aistudio.baidu.com/community/app/100063/webUIhttps://github.com/PaddlePaddle/PaddleXhttps://www.paddlepaddle.org.cn/documentation/docs/zh/develop/hardware_support/npu/support_cn.html