当前位置: 首页 > news >正文

【人工智能前沿弄潮】—— 玩转SAM(Segment Anything)

玩转SAM(Segment Anything)

官网链接:

Segment Anything | Meta AI (segment-anything.com)

github链接:

facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model. (github.com)

论文链接:

[2304.02643] Segment Anything (arxiv.org)

数据集链接:

Segment Anything | Meta AI (segment-anything.com)

在线试玩链接:

Segment Anything | Meta AI (segment-anything.com)

SAM的出现是否示意着传统CV行业的落寞?随着Chatgpt、扩散模型等产品出现,prompt engineering提示工程AIGC等成为了如今超级火热的话题。分割一切,Facebook利用超大数据集训练出来的SAM模型给CV界带来了巨大冲击,使得prompt engineering提示工程在CV领域同样得到发展应用,这也给我们众多计算机视觉研究者带来启发,基于大数据实现各类型场景视觉任务的可prompt模型,甚至统一视觉范式的终极大模型离我们越来越近。同样,也为我们带来担忧,人工智能好像在利用大数据进行固定范式的监督学习中越走越远,越发脱离人工智能的真正未来——自发式无监督式学习。不过在此我们就不谈了这些了,好好感受一下美味的SAM吧!

请添加图片描述
请添加图片描述

1、在线试玩

如果只想试玩两下,大家可以点击上述的在线试玩链接,开始冲浪吧!

官网demo链接给出了三种提示方法:点、框以及完全分割。

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

2、API调用

如果大家不想局限于在线试玩,想调用SAM的api接口实现自己的各种想法和需求,进行二次开发等,按我们就开始吧!

2.1 安装配置SAM环境

# 安装相关依赖
pip install opencv-python pycocotools matplotlib onnxruntime onnx安装SAM
方法一:
pip install git+https://github.com/facebookresearch/segment-anything.git方法二:
git clone git@github.com:facebookresearch/segment-anything.git
cd segment-anything; pip install -e .

2.2 操作说明

首先下载一个模型检查点。然后可以使用只需几行代码从给定的提示获取掩码:

from segment_anything import SamPredictor, sam_model_registry
sam = sam_model_registry["<model_type>"](checkpoint="<path/to/checkpoint>")
predictor = SamPredictor(sam)
predictor.set_image(<your_image>)
masks, _, _ = predictor.predict(<input_prompts>)

或者为整个图像生成掩码:

from segment_anything import SamAutomaticMaskGenerator, sam_model_registry
sam = sam_model_registry["<model_type>"](checkpoint="<path/to/checkpoint>")
mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(<your_image>)

此外,还可以利用命令行生成图像的掩码:

python scripts/amg.py --checkpoint <path/to/checkpoint> --model-type <model_type> --input <image_or_folder> --output <path/to/output>

注意:后续文章我们会更加详细地对SAM接口操作进行说明讲解!

http://www.lryc.cn/news/117678.html

相关文章:

  • 每日一题——合并两个有序的数组
  • MPP架构和Hadoop架构的区别
  • Java02-迭代器,数据结构,List,Set ,Map,Collections工具类
  • 福布斯发布2023云计算100强榜单,全球流程挖掘领导者Celonis排名17
  • 计算机网络 MAC地址
  • Jay17 2023.8.10日报
  • Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能
  • rust基础
  • 剑指offer39.数组中出现次数超过一半的数字
  • spring技术栈面试题
  • Android Glide MemorySizeCalculator计算值,Kotlin
  • KEIL自带的Jlink怎么升级更换版本
  • 图的遍历之 深度优先搜索和广度优先搜索
  • Java学习笔记27——file类
  • 细胞——求细胞数量 C++详解
  • 【计算机视觉】关于图像处理的一些基本操作
  • Android Animation Made Easy
  • 56从零开始学Java之与字符串相关的正则表达式
  • STM32 定时器自动重装载寄存器ARR带来的影响,ARPE0和1区别
  • vue 把<style scoped lang=“less“> 单独写成less文件再导入使用
  • C++ 字符串
  • springboot 报错处理(长期更新 2023.8.10)
  • Maven出现报错 ; Unable to import maven project: See logs for details错误的多种解决方法
  • 33_windows环境debug Nginx 源码-安装WSL
  • Java中的ZooKeeper是什么?
  • 【数学】CF1796 C
  • SCI论文中字体和图片字体大小的要求
  • react-dnd的使用
  • ELF program/section segment解析
  • 【golang】库源码文件