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

sam3本地部署

官网地址:https://github.com/facebookresearch/sam3/tree/main

下载:

安装python版本为3.11,我使用 torch 版本是 2.5.0,torch 安装可以参考往期教程,之后安装基础库就行,缺什么安装什么

下载对应的 .whl 文件

https://hf-mirror.com/madbuda/triton-windows-builds

切换下载文件的路径,直接安装


运行效果

app完整代码如下:

# -*- coding: utf-8 -*-""" @Auth :落花不写码 @File :app.py @Motto :学习新思想,争做新青年 """importosimportsysimporttorchimportnumpyasnpimportgradioasgrfromPILimportImageimportwarningsfromsam3.model_builderimportbuild_sam3_image_modelfromsam3.model.sam3_image_processorimportSam3Processor# ================= 路径 =================REPO_PATH=r"D:\1-Python\2-DeepLearningProject\modelscope\sam3\sam3-main"CHECKPOINT_PATH=r"E:\2-浏览器下载的文件\sam3.pt"ifREPO_PATHnotinsys.path:sys.path.append(REPO_PATH)warnings.filterwarnings("ignore")os.environ['MODELSCOPE_DISABLE_AST']='1'device="cuda"iftorch.cuda.is_available()else"cpu"print(f"正在加载模型...")model=build_sam3_image_model(checkpoint_path=CHECKPOINT_PATH).to(device)processor=Sam3Processor(model)defsegment_with_sam3(image:Image.Image,text:str,threshold:float,mask_threshold:float):ifimageisNone:returnNone,"请先上传图片。"ifnottext.strip():return(image,[]),"请输入文本描述。"try:withtorch.inference_mode(),torch.autocast(device_type=device,dtype=torch.bfloat16):inference_state=processor.set_image(image)output=processor.set_text_prompt(state=inference_state,prompt=text.strip())masks=output.get("masks")scores=output.get("scores")ifmasksisNoneorlen(scores)==0:return(image,[]),f"未识别到 '{text}'"annotations=[]fori,(mask,score)inenumerate(zip(masks,scores)):ifscore<threshold:continuemask_np=mask.squeeze().cpu().numpy().astype(np.float32)label=f"{text}#{i+1}({score:.2f})"annotations.append((mask_np,label))return(image,annotations),f"找到{len(annotations)}个目标"exceptExceptionase:importtraceback traceback.print_exc()return(image,[]),f"报错:{str(e)}"withgr.Blocks(theme=gr.themes.Soft(),title="SAM3 模型")asdemo:gr.Markdown(""" # SAM3 文本引导万物分割 (源码部署) **Web 界面可视化二次开发 | CSDN:落花不写码** """)withgr.Row():withgr.Column():img_in=gr.Image(label="输入图片",type="pil")prompt=gr.Textbox(label="输入物体名称 (英文)",placeholder="例如: person, dog, car...")withgr.Row():t_slider=gr.Slider(0,1,value=0.5,label="检测阈值")m_slider=gr.Slider(0,1,value=0.5,label="掩码精细度")btn=gr.Button("开始分割",variant="primary")withgr.Column():img_out=gr.AnnotatedImage(label="分割结果")info=gr.Markdown(value="等待任务...")btn.click(fn=segment_with_sam3,inputs=[img_in,prompt,t_slider,m_slider],outputs=[img_out,info])if__name__=="__main__":demo.launch()

目录结构:

http://www.jsqmd.com/news/609203/

相关文章:

  • Prometheus+Grafana:一站式搞定监控告警全链路【转】
  • ARDUINO编码器反馈电机初步代码
  • 设计模式之原型模式
  • 【车载C#中控系统开发黄金法则】:20年一线专家亲授5大避坑指南与实时响应优化秘技
  • UnattendedWinstall版本演进:从V1.0到V3.0的完整发展历程
  • 创维SK-E622v0-江西电信-2+8G-安卓11-原机备份改MAC
  • 爬虫数据分析新利器:RexUniNLU实战,从杂乱文本中提取黄金信息
  • 就在今天,DeepSeek迎来一波重要更新!DeepSeek V4要来了?
  • 别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!鼐
  • 从实战出发:详解64位PWN中payload构造的堆栈对齐陷阱与调试技巧
  • 1995-1996 年阿拉斯加北坡 ARCSS/LAII 通量站点的北极植被样地
  • SOLIDWORKS右键菜单功能消失?3分钟快速恢复‘打包‘‘重命名‘功能(附注册表修复指南)
  • 系统思考与艺术浸润
  • AI开发-python-langchain框架(--并行流程 )改
  • 手把手教你:在无外网服务器上用Docker离线搭建Jitsi-Meet视频会议系统
  • 构建仓库与包管理
  • 利用SESSION进行文件包含
  • Docker(1) 底层原理一站式学习!!!(零基础保姆式 通俗易懂)
  • SetFit模型性能基准测试:与主流小样本方法的全面对比
  • 鸿蒙_引用自定义构建函数@BuilderParam在自定义组件中的使用
  • 为什么92%的.NET团队在.NET 9发布30天内未启用低代码?揭秘微软未公开的Runtime沙箱限制与IL修剪兼容性断层
  • 从Time-MoE到KAN与Mamba:拆解ICLR 2025时间序列论文里的那些‘网红’架构与核心思想
  • 2026 行业内碳纤维胶源头厂家推荐榜,结构加固型/桥梁修缮型/水下锚固型/特种粘接型厂家选择指南 - 海棠依旧大
  • subprocess.check_output和stdout有什么不同 还有run和popen
  • ArozOS部署最佳实践:5个关键步骤确保系统稳定运行
  • 光伏逆变器测试避坑:派能协议下电流值5倍偏差的修复实录
  • 10-汽车销售系统的设计与实现
  • Gemma-3 Pixel Studio步骤详解:顶部像素面板交互设计与GPU算力适配方案
  • Mem Reduct:5MB级内存清理工具让Windows系统效率提升300%的技术实践
  • Visual Studio 2022 版本对决:Community、Professional 与 Enterprise 全方位深度解析