
EdgeSAM(Prompt-In-the-Loop Distillation for On-Device Deployment of SAM)是一种高性能的交互式图像分割模型,基于 Meta AI 发布的 Segment Anything Model(SAM)优化而来,专门设计用于边缘设备上的实时部署。它通过蒸馏过程将原始基于 ViT 的图像编码器精炼为轻量的 CNN 架构,并在提示编码器和掩码解码器之间加入“prompt-in-the-loop”(提示嵌入)策略,使模型能够精准捕捉用户输入与掩码生成的复杂交互关系。此外,为缓解点提示带来的数据偏差,还在编码器中集成了轻量模块。
性能方面,EdgeSAM 相比原始 SAM 提速约 40 倍,在边缘设备上的速度高于 MobileSAM 约 14 倍,并在 COCO 和 LVIS 数据集上的 mIoU 分别提升了约 2.3 和 3.2 个百分点。它是首个能够在 iPhone 14 上实现超过 30 FPS 实时分割的 SAM 变体。
EdgeSAM 支持 ONNX、CoreML 等多种部署方式,并已集成至多个支持工具和平台中,如 X-AnyLabeling、ISAT 与 Grounded-Segment-Anything,同时开发者还发布了 iOS 演示应用,可用于实践展示。
源模型
- 输入尺寸: [[1,3,1024,1024]], [[1,256,64,64],[1,1,2],[1,1]]
- 参数量: 5.24M, 3.75M
- 模型大小: 21.08M, 15.19M
- 输出尺寸:[[1,256,64,64]], [[1,4,256,256],[1,4]]
源模型仓库:EdgeSAM
Model Farm 提供预编译好的模型资源以及推理代码,支持以下两种方式获取:
通过 Model Farm 页面获取:在右侧性能参考板块中点击模型 & 代码获取模型资源及代码包。
通过命令获取(推荐):持有阿加犀开发板的用户,可以通过开发板内置的 MMS 工具获取模型资源及代码包。
# 模型查询
mms list [model name]
# 模型资源获取
mms get -m [model name] -p [precision] -c [soc] -b [backend] -d [file path]
MMS 具体使用请参考:MMS 使用 & 提前获取预览版块模型
当用户对源模型进行过微调,需要重新进行模型转换。
用户可以自行参考以下两种方式完成模型转换:
使用 AIMO 完成模型转换:在右侧性能参考板块中点击模型转换参考查看模型转换步骤
使用高通 QNN 完成模型转换:请参考 Qualcomm QNN 文档
Model Farm 所提供的模型性能基准测试以及示例代码皆基于阿加犀AidLite SDK 实现。
对于模型文件格式为 .bin 的模型,可以使用以下两种推理引擎完成模型在高通芯片上推理:
使用 APLUX AidLite 推理:详情请参考 APLUX AidLite 开发者文档
使用 Qualcomm QNN 推理:请参考 Qualcomm QNN 文档
推理示例代码
推理示例代码是基于 AidLite SDK 实现
点击模型 & 代码下载模型文件和推理代码包,文件结构如下
/model_farm_{model_name}_aidlite
|__ models # folder where model files are stored
|__ python # aidlite python model inference example
|__ cpp # aidlite cpp model inference example
|__ README.md