视觉提示分割-SAM2.1 是一个官方模型组。本模型组以 SAM2.1 - large 模型为基础,既支持根据点(+框)对 1 个目标进行分割,也支持根据框对多个目标进行分割。
SAM2(即 Segment Anything 2)是 Meta 开发的模型,它能对图像里的任意物体进行分割,不受特定类别或领域的限制。该模型的特别之处在于其训练数据的规模,用到了 1100 万张图像和 110 亿个掩码。如此大量的训练,让 SAM2 成为开展新图像分割任务训练的有力开端。
视觉提示分割-SAM2.1 模型组有 4 个模型。其中,Ensemble 模型里集成了前处理模型(Pre-Processing)、图像编码器(Encoder)和掩码解码器(Decoder),它规定了模型组的整体工作流程。在使用时,您只需部署 Ensemble 模型,不用关心中间的处理环节。
您可以在边缘智能控制台的 官方模型 列表访问本模型组包含的模型。
模型名称 | 模型ID | 说明 | 基本信息 |
---|---|---|---|
视觉提示分割-SAM2.1-Ensemble | m-official-64 | Ensemble 模型,将前处理、图像编码器、掩码解码器封装为一个工作流 | ![]() |
视觉提示分割-SAM2.1-PreProcess | m-official-65 | 前处理模型 | ![]() |
视觉提示分割-SAM2.1-Encoder | m-official-66 | 图像编码器 | ![]() |
视觉提示分割-SAM2.1-Decoder | m-official-67 | 掩码解码器 | ![]() |
名称 | 类型 | 形状 |
---|---|---|
image_np | UINT8 | [-1,-1,3] |
points | FP32 | [-1,-1] |
points_label | FP32 | [-1] |
boxes | FP32 | [-1,-1] |
输入说明:
[高, 宽, 3]
,这里的 3 表示通道数,通道顺序是 RGB。[[x1, y1][, x2, y2], ...]
。[x, y]
是提示点在水平和垂直方向的像素坐标,提示点的数量没有限制。[1, 1, .....]
。
points_label
的元素数量必须和 points
的元素数量一样。[[x1, y1, x2, y2], ...]
。[x1, y1, x2, y2]
分别是目标边界框(bbox)左上角点的水平、垂直像素坐标,以及右下角点的水平、垂直像素坐标。名称 | 类型 | 形状 |
---|---|---|
masks | FP32 | [-1,-1,-1,-1] |
scores | FP32 | [-1,4] |
输出说明:
结果是一个字典类型的数据,有 2 个键,分别是 ["masks","scores"]
,对应的数值都是 numpy.float32 类型的数组。
masks
对应的数值是一个形状为 [N, 高, 宽, 1]
的数组。这里的 N 是分割结果的数量。scores
是和 masks
对应的得分列表,数组长度和 N 相同,是 numpy.float32 类型的一维数组。视觉提示分割-SAM2.1-Ensemble 模型提供一个可部署版本。
参考部署模型服务进行模型服务的部署。在 部署模型服务 参数配置页面,修改以下配置:
说明
下表中未包含的配置项无需修改,建议使用默认值。
类型 | 配置项 | 说明 |
---|---|---|
基本信息 | 节点 | 选择一个边缘节点。 |
服务名称 | 设置一个服务名称。该名称不能与节点上其他服务的名称重复。 | |
模型信息 | 模型 | 选择 官方 | 视觉提示分割-SAM2.1-Ensemble。 |
模型版本 | 选择 v1。 | |
服务配置 | HTTP端口 | 指定节点上的一个空闲端口。 |
GRPC端口 | 指定节点上的一个空闲端口。 |
模型服务部署成功后,您可以下载以下客户端调用示例,用来验证模型服务的效果。