专栏名称: OpenCV学堂
一个致力于计算机视觉OpenCV原创技术传播的公众号!OpenCV计算机视觉与tensorflow深度学习相关算法原创文章分享、函数使用技巧、源码分析与讨论、,计算机视觉前沿技术介绍,技术专家经验分享,人才交流,学习交流。
目录
相关文章推荐
澎湃新闻评论  ·  夜读丨用语言给世界画像 ·  11 小时前  
澎湃新闻评论  ·  夜读丨用语言给世界画像 ·  11 小时前  
乌兰察布云  ·  11:0大胜!内蒙古代表队取得开门红→ ·  2 天前  
乌兰察布云  ·  11:0大胜!内蒙古代表队取得开门红→ ·  2 天前  
郑州晚报  ·  点球不进+错失空门 ... ·  3 天前  
郑州晚报  ·  点球不进+错失空门 ... ·  3 天前  
封面新闻  ·  中国足协上线球员自荐系统 ·  3 天前  
封面新闻  ·  中国足协上线球员自荐系统 ·  3 天前  
51好读  ›  专栏  ›  OpenCV学堂

SAM | 从分割一切到删除一切与修复一切

OpenCV学堂  · 公众号  ·  · 2024-08-05 23:09

正文

点击上方 蓝字 关注我们

微信公众号: OpenCV开发者联盟

关注获取更多计算机视觉与深度学习知识

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")


运行结果显示如下:


使用SAM模型删除一切

基于SAM的分割一切得到Mask模板,就可以使用inpaint anything方法就是想了对图像上对象任意删除的图像删除一切的应用。


源码与github地址如下:
https://github.com/geekyutao/Inpaint-Anything#remove-anything

使用SAM模型修复一切

基于SAM的分割一切得到Mask模板,就可以使用inpaint anything方法就是 修复一切, 基于 inPaint方法与 就可以实现 对mask区域的任意填充生成,从而 完成修复一切,替换一切的 图书生成。 相关论文如下:
https://arxiv.org/pdf/2304.06790

代码

https://github.com/geekyutao/Inpaint-Anything


OpenCV4系统化学习







请到「今天看啥」查看全文