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

Segment Anything使用

Segment Anything使用记录

科研要用,总是忘了怎么用,记录一下


文章目录

  • Segment Anything使用记录
  • 一、Segment Anything介绍
  • 二、SAM安装
  • 三、利用代码进行介绍

一、Segment Anything介绍

一个分割大模型,可以分割anything

二、SAM安装

参考官网,很简单

三、利用代码进行介绍

按照官网的安装方法,针对该conda环境下的python可以任意使用SAM,通过引入

fromsegment_anythingimportSamPredictor,sam_model_registry

即可。
SAM的作用是通过一张图片分割成为多个mask,所以我们需要构建绘制mask的函数

defshow_mask(mask,ax,color_input):color=color_input h,w=mask.shape[-2:]mask_image=mask.reshape(h,w,1)*color.reshape(1,1,-1)ax.imshow(mask_image)**

而SAM可以指定prompt,这里介绍使用点的prompt

defappend_point(record_point_list,record_label_list,input_point):input_label=np.arange(1,len(input_point)+1)record_point_list.append(input_point)record_label_list.append(input_label)

那么分割函数就可以写为:

defprediction_with_point(points,labels,results):foriinrange(len(points)):masks,scores,logits=predictor.predict(point_coords=points[i],point_labels=labels[i],multimask_output=False,)results.append(masks)

主函数需要先初始化

sam_checkpoints="xxx.pth"model_type="vit_h"device="cuda"sam=sam_model_registry[model_type](checkpoint=sam_checkpoints)sam.to(device=device)predictor=SamPredictor(sam)

接着就可以进行图片读取并分割,展示

img=cv2.imread('xxx.png')img=img[:,:,::-1]predictor.set_image(img)points=[]labels=[]# 自主指定二位点,这里的示例为点(a,b)和(c,d),具体自己给定# prompt可以指定多个,多次分割后统一上色append_point(points,labels,np.array([[a,b],[c,d]]))append_point(points,labels,np.array([[e,f]]))masks=[]prediction_with_point(points,labels,masks)# 指定mask的颜色color=np.array([144/255,30/255,255/255,0.6])# 画图plt.figure(figsize=(10,10))plt.imshow(img)foriinrange(len(masks)):masks=masks[i]show_mask(masks,plt.gca(),color)plt.axis('off')plt.show()
http://www.jsqmd.com/news/1321935/

相关文章:

  • 2026泰州姜堰管道疏通哪家好旭日管道疏通免费上门靠谱 - 余生黄金回收
  • UnityEngineAnalyzer:基于Roslyn的Unity C#静态代码分析工具实践
  • Unlock-Music完整指南:3步解密加密音乐,让所有歌曲自由播放
  • LAV Filters:Windows媒体解码的终极免费解决方案
  • 对话量子场论(DQFT)深入研究报告:从协变作用量到场动力学、共识相变与可计算量化规则
  • 终极指南:REFramework如何彻底改变RE Engine游戏模组开发体验
  • c++--面向对象特性
  • 手腕上的小手电:智能手表怎么把“绿光”变成心率
  • Unity串口通信实战:多线程安全读写与设备状态监控架构解析
  • 公证赠与怎么办理?办理公证赠与需要准备哪些资料?
  • 炉石传说脚本终极指南:3步实现智能挂机与卡组自动化测试
  • FusionCompute管理员密码丢失?后台数据库安全重置全攻略
  • 解锁Photoshop的WebP格式能力:WebPShop插件完全指南
  • 基于对话本体论的碳硅文明算符形式化模型构建方法与路径
  • Ecctrl时间控制功能:实现子弹时间与慢动作效果的完整教程
  • 上海本土SEO/GEO优化公司哪家好?靠谱服务商推荐附避坑指南 - 知汇资讯
  • 企业信用评级机构哪家好?2026年线上申请流程详解 - 跑政通
  • C++之try,throw,catch探究
  • 为什么你的AI产品图过不了平台审核?版权/光影/比例3大雷区,今天必须解决!
  • Palworld存档转换神器:3分钟掌握.sav与JSON互转技巧
  • NoSleep防休眠工具:Windows电脑永不锁屏的终极解决方案
  • 下一代无头浏览器革命:Lightpanda如何重新定义Web自动化性能极限
  • 基于Home Assistant与ESP8266打造本地化智能家庭影院控制方案
  • 为什么选择fb-mac-messenger:5个提升Mac聊天体验的专业理由
  • Windows系统OpenJDK安装配置全攻略:从发行版选择到多版本管理
  • 2026年最新上海静安靠谱装修公司推荐榜:甄选本土优质好店,装企实战避坑指南 - 优客装修汇
  • Pandas 基础操作(案持续更新)
  • 流量分析实战:从基础认知到高级技战法
  • 通达信、东方财富神奇九转指标计算公式,代码实现
  • 3分钟快速上手:Forza Mods AIO免费极限竞速地平线修改器终极指南