1. 环境准备

首先,确保你已经安装了所需的库:

pip install opencv-python ultralytics

2. 加载模型

加载 SAM 模型的代码如下:

from ultralytics import FastSAM
from ultralytics import SAM

model = FastSAM("FastSAM-s.pt") #使用fastsam
#model = SAM("FastSAM-s.pt")  #使用sam

3. 图像分割

通过模型对输入图像进行分割,并保存结果:

results = model("/media/lindsay/data/ultralytics-main/sam.jpg", save=True)
for r in results:
    print(f"Detected {len(r.masks)} masks")

4. 提取掩码数据

接下来,我们提取掩码数据,并将其转换为 NumPy 数组,便于后续处理:

masks = results[0].masks.data.cpu().numpy()

5. 保存和显示掩码

我们可以迭代每个掩码,保存为图像文件,并选择性地在窗口中显示:

import cv2

for index in range(len(masks)):
    mask_image = (masks[index] * 255).astype('uint8')
    cv2.imwrite(f"mask_image_{index}.png", mask_image)

6. 完整代码

将以上步骤整合在一起,完整代码如下:

import cv2
from ultralytics import FastSAM

# Load model
model = FastSAM("FastSAM-s.pt")

# Segment with point prompt
results = model("/media/lindsay/data/ultralytics-main/sam.jpg", save=True)
for r in results:
    print(f"Detected {len(r.masks)} masks")

# Extract and save masks
masks = results[0].masks.data.cpu().numpy()
for index in range(len(masks)):
    mask_image = (masks[index] * 255).astype('uint8')
    cv2.imwrite(f"mask_image_{index}.png", mask_image)
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐