PaddleSeg 中的 Segment Anything(SAM):PaddlePaddle 框架下的文本/点/框提示分割与全图自动掩码生成实战
人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载Segment Anything ModelSAM是 Meta AI 提出的通用分割模型可依据点、框、掩码等提示生成高质量目标掩码并在零样本场景下表现出色。本指南以 PaddleSeg 仓库的 contrib/SegmentAnything 模块 为核心完整讲解该模块在 PaddlePaddle 框架下的复现方案、四种模型规格vit_b / vit_l / vit_h / vit_t与 CLIP 文本提示的组合用法并给出可复制的命令行实战流程网页端交互分割、点/框提示分割、全图自动掩码生成。读完本文你将掌握 SAM 在 PaddleSeg 中的三种调用方式并理解其底层架构与自动掩码生成参数的调优逻辑。Segment Anything 是什么PaddleSeg 中的 SAM 实现概览Segment Anything 是围绕图像分割提出的「新任务 新模型 新数据集」方案官方在 1100 万张授权且尊重隐私的图片上构建了超过 10 亿个掩码的迄今最大分割数据集SAM 模型本身可从不同类型的提示点、框、掩码、文本中产出高质量目标掩码在多种任务上展现出令人印象深刻的零样本性能甚至常与先前全监督结果相当或更优。PaddleSeg 的 contrib/SegmentAnything 模块README.md用 PaddlePaddle 完整实现了这套能力并做了一项关键扩展官方 SAM 的文本提示模型并未发布因此该模块将SAM与CLIP组合先用 SAM 对图像做候选目标分割再计算输出掩码与文本提示之间的相似度从而支持用文本提示text prompt分割任意目标同时实现了全图自动掩码生成Automatic Mask Generation可一键生成图像中所有目标的掩码。模块提供的模型以 PaddlePaddle 格式的预训练参数交付代码结构参考了原版 SAM 官方实现各脚本文件头均注明This implementation refers to: https://github.com/facebookresearch/segment-anything如 build_sam.py、automatic_mask_generator.py。模型规格与预训练权重从 vit_h 到 MobileSAMvit_t该模块基于sam_model_registry统一管理模型构建与权重加载注册表定义在 build_sam.pysam_model_registry { default: build_sam, # 即 vit_h vit_h: build_sam, # ViT-Huge 骨干 vit_l: build_sam_vit_l, # ViT-Large 骨干 vit_b: build_sam_vit_b, # ViT-Base 骨干 vit_t: build_sam_vit_t, # MobileSAM 的 TinyViT 骨干 }各规格的骨干网络配置build_sam.py模型类型骨干embedding 维度层数注意力头数全局注意力层vit_hImageEncoderViT12803216[7, 15, 23, 31]vit_lImageEncoderViT10242416[5, 11, 17, 23]vit_bImageEncoderViT7681212[2, 5, 8, 11]vit_tTinyViTMobileSAM64/128/160/320四阶段[2, 2, 6, 2][2, 4, 5, 10]—所有规格统一使用 1024×1024 的输入图像尺寸、16 的 patch 大小、256 维提示嵌入并通过pixel_mean[123.675, 116.28, 103.53]与pixel_std[58.395, 57.12, 57.375]做像素归一化。权重由各脚本内置的model_link字典按--model-type自动下载加载无需手动准备vit_h/vit_l/vit_bPaddlePaddle 格式的 SAM 预训练参数vit_t对应 MobileSAM 的 PaddlePaddle 格式参数clip_b_32用于文本与图像特征提取的 CLIP ViT-B/32 参数见 text_to_sam_clip.py。选型建议来自 README 的官方说明更大模型更准但更慢请依据设备算力选择vit_h需要约 16G 显存在 V100 上推理一张图约耗时 10 秒。环境准备与示例资源下载按以下步骤准备运行环境继承自 README.md依据 PaddleSeg 官方安装文档 docs/install.md 安装 PaddlePaddle 及相关依赖克隆 PaddleSeg 仓库并安装依赖git clone https://gitcode.com/gh_mirrors/pa/PaddleSeg.git cd PaddleSeg pip install -r requirements.txt pip install ftfy regex cd contrib/SegmentAnything/ftfy与regex是 CLIP 文本 tokenizer 运行所需的额外依赖。下载示例图片与 BPE 词表文件词表用于 CLIP 文本编码wget https://paddleseg.bj.bcebos.com/dygraph/demo/cityscapes_demo.png wget https://bj.bcebos.com/paddleseg/dygraph/bpe_vocab_16e6/bpe_simple_vocab_16e6.txt.gz将示例图片放入contrib/SegmentAnything/examples词表放入contrib/SegmentAnything/目录得到如下结构PaddleSeg/contrib ├── SegmentAnything │ ├── examples │ │ └── cityscapes_demo.png │ ├── segment_anything │ ├── scripts │ └── bpe_simple_vocab_16e6.txt.gz仓库自带的示例图片还包括 examples/dog.jpg 与 examples/zixingche.jpeg可作为本地测试输入。方法一一行命令启动 Web 交互SAM CLIP 文本提示分割运行 scripts/text_to_sam_clip.py 可在本地启动一个 Gradio 服务在网页上体验「整图分割」与「基于文本提示的分割」两种能力python scripts/text_to_sam_clip.py --model-type [vit_l/vit_b/vit_h/vit_t] # 默认 vit_h--model-type取值vit_b/vit_l/vit_h/vit_t分别代表 vit_base、vit_large、vit_huge 与 MobileSAMvit_t文本与图像特征提取使用CLIP ViT-B模型服务启动后打开http://0.0.0.0:8078上传测试图像、输入文本提示如a photo of car并提交即可看到「文本分割结果」与「全图掩码」两个输出面板gradio_display。该脚本同时内置了三组演示样例cityscapes 街景图中的 car、dog.jpg 中的 dog、zixingche.jpeg 中的 kid启动后可直接点选体验。方法二点提示与框提示的目标分割无需网页直接用命令行完成点/框提示分割结果保存到output/目录文件名与输入一致scripts/promt_predict.py框提示box prompt——--box_prompt按xyxy格式传四个整数python scripts/promt_predict.py --input_path xxx.png --box_prompt 1050 370 1500 700 --model-type [vit_l/vit_b/vit_h] # 默认 vit_h点提示point prompt——--point_prompt传点的x y坐标python scripts/promt_predict.py --input_path xxx.png --point_prompt 1200 450 --model-type [vit_l/vit_b/vit_h] # 默认 vit_h该脚本的关键参数源码见 get_args参数类型必填说明--input_pathstr是输入图像路径--model-typestr是[vit_h, vit_l, vit_b, vit_t]脚本内默认vit_l--point_promptint可多个否点提示坐标如1200 450--box_promptint可多个否框提示xyxy格式如1050 370 1500 700--output_pathstr否结果保存目录默认./output/执行时脚本先通过SamPredictor.set_image缓存图像 embedding再调用predictor.predict(point_coords, point_labels, box, multimask_outputTrue)输出掩码并将掩码以半透明蒙版叠加绘制在图上main。若只传点提示脚本默认将该点视为前景目标input_label 1。方法三全图自动掩码生成Automatic Mask Generation无需任何提示即可分割图中全部目标一键生成伪彩色掩码图并保存python scripts/amg_paddle.py --model-type [vit_l/vit_b/vit_h/vit_t] # 默认 vit_h脚本基于SamAutomaticMaskGenerator在整幅图像上采样点网格、逐个预测并过滤低质量与重复掩码。除--model-type脚本内默认vit_l外还提供一整套可调参数amg_paddle.py这些参数最终透传给SamAutomaticMaskGenerator参数说明--convert-to-rle以 COCO RLE 格式保存掩码为单个 json需 pycocotools否则输出 PNG--points-per-side图像每边采样点数总点数为该值的平方--points-per-batch模型一次批处理的点数越大越快但越耗显存--pred-iou-thresh模型预测掩码质量IoU低于该阈值的掩码被剔除--stability-score-thresh稳定性分数低于该阈值的掩码被剔除--stability-score-offset计算稳定性分数时对二值化阈值的偏移量--box-nms-threshNMS 去重时使用的框 IoU 阈值--crop-n-layers大于 0 时在图像局部裁剪上再次生成掩码值为裁剪层级数每层含 2^i 个裁剪块--crop-nms-thresh跨裁剪块去重的框 IoU 阈值--crop-overlap-ratio裁剪块的重叠比例--crop-n-points-downscale-factor第 n 层裁剪采样点数按该因子的 n 次方缩减--min-mask-region-area面积小于该像素值的离散掩码区域/空洞在后处理中被移除需 opencv源码原理剖析SAM 的三段式架构核心模型类Sammodeling/sam.py由三个子模块组成ImageEncoderViT / TinyViT 图像编码器modeling/image_encoder.py、modeling/tiny_vit_sam.py将图像编码为 embeddingViT 系列采用窗口注意力 全局注意力global_attn_indexes策略输出 256 通道图像特征PromptEncoder 提示编码器modeling/prompt_encoder.py编码稀疏提示点、框与稠密提示掩码MaskDecoder 掩码解码器modeling/mask_decoder.py内含 TwoWayTransformerdepth2、embedding_dim256、mlp_dim2048、num_heads8基于图像 embedding 与提示 embedding 预测low_res_logits256×256与 IoU 预测分数再由postprocess_masks上采样回原图尺寸。推理前向流程Sam.forwardpreprocess归一化像素并 pad 到 1024×1024 → 图像编码器提取 embedding → 提示编码器得到 sparse/dense 嵌入 → 掩码解码器输出掩码 → 后处理还原到原始分辨率。SamPredictor 的「先缓存、再复用」策略SamPredictor 先通过set_image一次性计算并缓存整张图像的 embeddingself.features此后对同一图像多次给出点/框提示时无需重复前向图像编码器可高效复用适合交互式分割场景。自动掩码生成器的默认调优基线SamAutomaticMaskGenerator的默认参数automatic_mask_generator.py是为 ViT-H 骨干调优的可作为调参起点points_per_side32即全图 1024 个采样点、points_per_batch64、pred_iou_thresh0.88、stability_score_thresh0.95、stability_score_offset1.0、box_nms_thresh0.7、crop_n_layers0、min_mask_region_area0。生成流程为构建多层点网格 → 逐批预测掩码 → 计算稳定性分数与预测 IoU → 按阈值过滤 → NMS 去重 →可选小区域清理最终返回含segmentation、bbox、predicted_iou、stability_score等字段的掩码列表。SAM CLIP 的文本匹配管线scripts/text_to_sam_clip.py 将两条模型链路串成一条文本分割管线image_text_matchSamAutomaticMaskGenerator.generate(image)生成全图候选掩码按每个掩码的bbox裁剪出目标segment_image并转换为 PIL 图像build_clip_model构建 CLIP ViT-B 模型Paddle 实现见 modeling/clip_paddle.pytransform对裁剪图做预处理tokenize将文本提示编码为 token分别用encode_image/encode_text得到图像与文本特征各自 L2 归一化后计算余弦相似度得分softmax后取与文本最匹配的掩码最终以红色半透明蒙版(255, 0, 0, 180)在结果图中高亮文本命中的目标get_id_photo_output。此外三个脚本均复用 PaddleSeg 的 paddleseg/utils/visualize.py 中的get_pseudo_color_map、get_color_map_list生成伪彩色分割图与 PaddleSeg 主库的常规可视化风格保持一致。参考Kirillov A, Mintun E, Ravi N, et al.Segment AnythingSAM 原论文Radford A, Kim J W, Hallacy C, et al.Learning Transferable Visual Models From Natural Language SupervisionCLIP 论文ICML 2021。赞分享人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载相关推荐Kornia 中的 Segment AnythingSAM实战VisualPrompter 点/框提示分割全指南Kornia 中的 Segment AnythingSAM实战VisualPrompter 点/框提示分割全指南 导读 本文基于 Segment Any计算机视觉人工智能深度学习图像处理Segment Anything (SAM) 实战指南在 AI-Research-SKILLs 中用点、框与掩码提示实现零样本图像分割Segment Anything SAM 实战指南在 AI Research SKILLs 中用点、框与掩码提示实现零样本图像分割 本指南以 AI ReseaAI 技能人工智能大模型深度学习Ultralytics 中的 Segment Anything Model (SAM)可提示分割与自动标注实战指南Ultralytics 中的 Segment Anything Model SAM 可提示分割与自动标注实战指南 Segment Anything Model人工智能深度学习计算机视觉预训练上一篇FontForge完全指南从零开始制作专业字体的免费开源方案下一篇PX4 飞控硬件指南ARK FPV 飞行控制器STM32H743、30.5mm 标准孔位、12V 图传供电创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Ocelot 中间件注入实战:通过 OcelotPipelineConfiguration 扩展与覆盖 API 网关管道

Ocelot 中间件注入实战:通过 OcelotPipelineConfiguration 扩展与覆盖 API 网关管道

API网关后端微服务 【免费下载链接】Ocelot .NET API Gateway 项目地址: https://gitcode.com/gh_mirrors/oc/Ocelot 点击查看 免费下载 Ocelot 作为 .NET 的 API 网关,其内部以 ASP.NET Core 中间件管道的方式处理每一个上游请求。默认管道内置了路由、…

2026/9/25 3:43:57 阅读更多 →
Plannotator Guided Review 架构全解:从 Tour 模式到一等代码评审特性的实现路径

Plannotator Guided Review 架构全解:从 Tour 模式到一等代码评审特性的实现路径

【免费下载链接】plannotator Annotate and review coding agent plans and code diffs visually, share with your team, send feedback to agents with one click. 项目地址: https://gitcode.com/gh_mirrors/pl/plannotator 点击查看 免费下载 本篇技术指南以 s…

2026/9/25 3:43:57 阅读更多 →
IronClaw 通道适配器契约重构:Reply 与 Delivery 双轴输出模型的设计与源码落地

IronClaw 通道适配器契约重构:Reply 与 Delivery 双轴输出模型的设计与源码落地

人工智能AI 应用交互助手AI Agent 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 点击查看 免费下载 导读 本文基于 IronClaw 仓库中的设计文档 202…

2026/9/25 3:43:57 阅读更多 →

最新新闻

低功耗电压检测电路:MOS管开关控制电阻分压,将待机电流降至nA级

低功耗电压检测电路:MOS管开关控制电阻分压,将待机电流降至nA级

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 4:59:53 阅读更多 →
Arduino IDE安装ESP8266卡在99%?换源与离线包方案彻底解决

Arduino IDE安装ESP8266卡在99%?换源与离线包方案彻底解决

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 4:59:53 阅读更多 →
Flowbite 搜索输入框组件完全指南:从基础搜索栏到语音搜索与高级筛选

Flowbite 搜索输入框组件完全指南:从基础搜索栏到语音搜索与高级筛选

UI组件前端 【免费下载链接】flowbite Open-source UI component library and front-end development framework based on Tailwind CSS 项目地址: https://gitcode.com/gh_mirrors/fl/flowbite 点击查看 免费下载 搜索框是每个站点的“入口级”交互组件。本篇基于…

2026/9/25 4:59:53 阅读更多 →
ESP32-C3 当管家:软件模拟 SWD 实现 RP2040 固件下载与日志采集

ESP32-C3 当管家:软件模拟 SWD 实现 RP2040 固件下载与日志采集

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 4:59:53 阅读更多 →
产线烧录良率排查全攻略:从硬件连接到固件格式的链路诊断

产线烧录良率排查全攻略:从硬件连接到固件格式的链路诊断

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 4:59:53 阅读更多 →
从 Codex CLI 到知识库:TaoToken 统一 Key 驱动的 AI 代理个人知识管理全流程

从 Codex CLI 到知识库:TaoToken 统一 Key 驱动的 AI 代理个人知识管理全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/25 4:58:52 阅读更多 →

日新闻

AI元人文:从工具使用到思维重构的深度探索

AI元人文:从工具使用到思维重构的深度探索

最近半年我一直在琢磨一件事:AI元人文到底是什么?说白了,就是“用元视角重新审视人与AI的关系”,也在“探索AI如何反向逼着我们发现自己的思考边界”。标题里的“元探索”,在我看就是一层套一层的追问——当你用AI解决…

2026/9/25 0:00:41 阅读更多 →
Python+CNN车牌识别实战:从数据预处理到模型训练与部署

Python+CNN车牌识别实战:从数据预处理到模型训练与部署

简介:基于Python与卷积神经网络的车牌识别项目,面向计算机视觉初学者及智能交通开发者,目标是帮助用户掌握从数据预处理、模型构建到实际部署的完整流程。压缩包共25个文件,包含jpg/png图像样本、py训练脚本、md说明文档、dat数据…

2026/9/25 0:00:41 阅读更多 →
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

Vim基础操作全攻略:保存退出、模式切换与高频命令实战

1. 项目概述1.1 核心需求解析今天聊聊Vim。写这个题目的原因是:几乎每个后端开发者、运维人员、数据工程师某天都会遇到一个场景——深夜加班,服务器登录界面只有黑底白字,编辑器只有vi/vim,你必须在五分钟内完成一次配置修改并保…

2026/9/25 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →