图像分割智能体怎么指定主体?用 SAM 点提示导出掩码

用 SAM 接收主体内部的点提示,导出原图尺寸掩码,并区分模型质量估计与人工 IoU。

“把图片里这一件物体分出来”需要明确主体。SAM 可以接收点提示,输出像素掩码;智能体若只收到一句“抠出它”而没有坐标或明确对象,就容易选错主体。本文先建立图片加点坐标的分割工具输入,再把候选掩码还原为原图尺寸。

准备输入:点要落在目标内部

适合希望给工作流增加交互分割工具的开发者。准备 photo.jpg,查看其像素尺寸,记下主体内部一点的 x、y。左上角为原点,向右是 x、向下是 y;检查坐标没有超出图片。该点表示希望包含的前景,本例标签 1 是正提示。

图像分割智能体怎么指定主体?用 SAM 点提示导出掩码

python -m pip install torch "transformers==4.57.1" pillow numpy

示例使用 facebook/sam-vit-base 和 CPU。首次加载需下载权重,内存与耗时要按设备验证。本文未运行 SAM 模型推理,下面不是某张客户图片的分割实测。

生成并保存原图尺寸的掩码

把代码保存为 segment_point.py;将 point 替换为你记录的主体内部坐标,然后运行 python segment_point.py。默认中心点只方便演示,并不保证落在目标上。

from PIL import Image
import numpy as np
import torch
from transformers import SamModel, SamProcessor

name = "facebook/sam-vit-base"
processor = SamProcessor.from_pretrained(name)
model = SamModel.from_pretrained(name).eval()
image = Image.open("photo.jpg").convert("RGB")
w, h = image.size
# Replace this center point with a point inside your intended object.
point = [w // 2, h // 2]
inputs = processor(image, input_points=[[point]], input_labels=[[1]],
                   return_tensors="pt")
with torch.inference_mode():
    outputs = model(**inputs)
masks = processor.image_processor.post_process_masks(
    outputs.pred_masks.cpu(), inputs["original_sizes"].cpu(),
    inputs["reshaped_input_sizes"].cpu())
scores = outputs.iou_scores[0, 0].cpu()
best = int(scores.argmax())
mask = masks[0][0, best].numpy().astype(np.uint8) * 255
assert mask.shape == (h, w)
Image.fromarray(mask).save("mask.png")
print("point", point, "mask", mask.shape, "predicted_iou", float(scores[best]))

不要把模型估计分数当成真值

打开 mask.png,应为黑底白色主体的掩码,尺寸与 photo.jpg 相同。把白色区域半透明叠在原图上,检查点处是否被包含、邻近物体是否粘连、细长边缘是否丢失。尺寸断言通过只是坐标还原通过,不能替代轮廓检查。

predicted_iou 是模型对掩码质量的估计,不是与人工真值计算出的 IoU。若选错主体,先移动点到明确的前景内部;若相邻对象粘连,再按文档增加负提示点,不以提高分数替代人工确认。

作为智能体工具时的输入与输出

输入至少保留图片编号、原图宽高和点坐标;输出保留掩码文件路径、候选序号及质量估计。对越界点直接报输入错误,模糊或遮挡图片交回用户确认。本例只提供分割算子,实际工具注册、权限和会话状态由接入平台负责。

SAM 的点提示掩码不自动给出物体类别。需要逐像素类别名称的是语义分割任务,不应把这张掩码当成所有类别的标注。

资料与适用范围

本文依据 2026 年 10 月 1 日读取的项目资料编写。安装后请记录实际依赖版本;版本升级时先用小样本核对接口和输出。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/30641.html

赞 (0)
AI小管家的头像AI小管家
Qwen 和 DeepSeek 一起怎么用?给复杂任务做双模型分工
上一篇 1天前
阿里云上的 Qwen 和 DeepSeek 怎么选?先核对平台模型与调用限制
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部