YOLOv8最新版本支持SAM分割一切

描述

SAM概述

分割任何模型 (Segment Anything Model - SAM) 是一种突破性的图像分割模型,可实现具有实时性能的快速分割。它构成了 Segment Anything 项目的基础,该项目引入了用于图像分割的新任务、模型和数据集。SAM 被设计为可提示的,允许它将零样本转移到新的图像分布和任务。该模型在 SA-1B 数据集上进行训练,该数据集在许可和尊重隐私的一千一百万张图像上包含超过 11 亿个蒙版。SAM展示了令人印象深刻的零样本分割性能,常规场合超过之前监督学习的结果。

编码器

主要特点

01

提示分段任务:

SAM 专为可提示的分割任务而设计,使其能够在给定任何分割提示(例如标识对象的空间或文本信息)的情况下返回有效的分割掩码。

02

高级架构:

SAM 利用强大的图像编码器、提示编码器和轻量级掩码解码器。这种架构在分割中实现了灵活的提示、实时掩码计算和模糊感知。

03

SA-1B 数据集:

Segment Anything项目引入了SA-1B数据集,该数据集包含1000多万张图像上的11亿多个掩码。该数据集是迄今为止最大的分割数据集,为 SAM 提供了用于训练的多样化和大规模数据源。

04

零样本性能:

SAM 在一系列分割任务中表现出卓越的零样本性能,开箱即用,可针对各种应用进行快速工程设计。   SAM 可用于各种视觉场景下游任务,涉及训练数据之外的对象和图像分布。包括边缘检测、对象推荐生成、实例分割和初级文本到掩码预测。通过采用提示工程,SAM可以零样本的方式适应新任务和数据分布,使其成为图像分割任务的多功能和强大工具。

YOLOv8中使用SAM模型

当前YOLOv8支持两种SAM模型,分别是base与large版本SAM模型。以base模型为例,基于YOLOv8框架,SAM实现推理图像分割一切得代码只需要如下几行:

 

from ultralytics import SAM
import cv2 as cv

model = SAM('sam_b.pt')
model.info()  # display model information
result = model.predict("D:/bird_test/master.jpg")

 

运行结果显示如下:

编码器

编码器

基于YOLOv8对象检测模型,实现自动语义分割模型的标注:

 

from ultralytics.yolo.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolov8x.pt", sam_model='sam_b.pt')

 

两行代码即可实现自动实例分割标注,从此爱上标注数据这个活!

 



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分