人工智能大模型模型推理服务本地部署计算机视觉Ascend【免费下载链接】sam3项目地址https://ai.gitcode.com/leiwenhu/sam3点击查看免费下载本文带你完整解析sam3项目的模型架构ViT 视觉骨干、DETR 编码器解码器与 CLIP 文本编码器如何协同工作让一句 a red car 这样的文本提示就能完成开放词汇的全实例图像分割返回每个实例的 mask、边界框和置信度分数。全文以源码导读为主不堆砌代码适合想理解 SAM3 内部机制的新手和普通用户。一、SAM3 是做什么的从点一下到说一句SAM3Segment Anything 3是 Meta 推出的统一图像/视频提示式分割基础模型模型权重约 3.45GBsam3.pt约 21 亿参数。与只能点提示的前代不同SAM3 的核心卖点是文本提示分割输入一张图片和一条文本提示如background、a flag pole输出每个匹配实例的分割 mask、边界框box和置信度分数score一条命令即可体验python3 inference.py --image test.jpg --prompts background a flag pole入口脚本为 inference.py支持 CLI 单次推理与 FastAPI HTTP 服务两种模式。二、总体架构四大模块各司其职SAM3 的模型代码内嵌在 sam3/ 包中核心组件在 sam3/model_builder.py 中被拼装成完整模型可以理解为一条流水线模块职责主要源码ViT 视觉骨干把图像切成 14×14 patch提取多尺度视觉特征sam3/model/vitdet.pyDETR 编码器/解码器200 个查询与图文特征交互定位并打分每个实例sam3/model/encoder.py、sam3/model/decoder.pyCLIP 文本编码器把英文文本提示编码为语义向量sam3/model/text_encoder_ve.py分割头把定位结果画成像素级 masksam3/model/maskformer_segmentation.py图像与文本两条支流最终在 DETR 编码器处汇合这就是视觉-语言协同的由来组合入口见 sam3/model/vl_combiner.py。三、ViT 视觉骨干1008 分辨率下的 32 层 Transformer视觉骨干由 sam3/model/vitdet.py 中的ViT类实现在 sam3/model_builder.py 的_create_vit_backbone中给出关键配置输入分辨率 1008patch 大小 14图像被切成 72×72 个 patch32 层 Transformer嵌入维度 102416 个注意力头参数量大、表达力强全局注意力块 (7, 15, 23, 31) 窗口注意力 (window_size24)交替使用全局与局部注意力兼顾全局语义与计算成本RoPE 旋转位置编码use_ropeTrue为注意力注入相对位置信息频率表freqs_cis以 buffer 形式注册随model.to(device)自动迁移这也是昇腾 NPU 适配顺畅的原因之一骨干输出的多尺度特征经 sam3/model/necks.py 中的 neck 模块整理为 DETR 可用的特征图并附加 sam3/model/position_encoding.py 的正弦位置编码256 维。新手提示可以把 ViT 理解为看图的人它负责把像素世界压缩成一串带位置信息的特征向量。四、DETR 编码器/解码器200 个查询的实例定位核心DETR 部分是 SAM3 的大脑采用编码器-解码器结构编码器图文特征融合sam3/model/encoder.py 中的TransformerEncoderFusion共6 层、d_model256见 sam3/model_builder.py。它的任务是把 ViT 输出的图像特征与 CLIP 输出的文本语义充分混合——编码器内会做文本池化pool_text_with_mask让每个像素位置都知道用户在找什么。解码器200 个实例查询sam3/model/decoder.py 中的TransformerDecoder配置为num_queries200每个查询代表一个候选实例最多同时定位 200 个目标6 层解码box_refineTrue边界框逐级 refine每层输出都作为辅助监督return_intermediateTruepresence_token预测画面中是否存在该提示对应的目标没有目标时直接给低分boxRPBlog RoPE 注意力SimpleRoPEAttention框回归采用对数相对坐标表示配合旋转位置编码提升小目标精度解码层sam3/model/decoder.py 的TransformerDecoderLayer每层包含自注意力、图像交叉注意力与文本交叉注意力use_text_cross_attentionTrue使每个查询在逐层 refine 的过程中持续对齐文本语义。五、CLIP 文本编码器BPE 分词 24 层 Transformer文本侧由两部分组成BPE 分词器sam3/model/tokenizer_ve.py 的SimpleTokenizer加载 CLIP 词表 sam3/assets/bpe_simple_vocab_16e6.txt.gzvocab_size49408把文本切成子词 ID文本 Transformersam3/model/text_encoder_ve.py 的VETextEncoder配置为width1024、16 头、24 层见 sam3/model_builder.py输出逐 token 特征序列output_tokensTrue供 DETR 编码器做细粒度交叉注意力而非只取一个池化向量两点使用注意CLIP 文本编码器为英文 BPE中文提示如 背景会被分到未知 token效果较差建议使用英文提示词提示词与图像的匹配打分由 sam3/model/model_misc.py 中的DotProductScoring完成把查询特征投影到文本空间后做点积直观体现图文相似度几何提示点、框则由 sam3/model/geometry_encoders.py 的SequenceGeometryEncoder编码与文本提示走同一套融合通道。六、分割头从框到像素级 mask定位之后sam3/model/maskformer_segmentation.py 完成最后的涂色PixelDecoder第 186 行3 阶段上采样把低分辨率特征恢复到可分割的分辨率UniversalSegmentationHead第 236 行结合解码器输出的实例查询cross_attend_prompt交叉注意力逐像素预测 mask 的 logit再经存在性头presence head过滤图像侧完整前向逻辑集中在 sam3/model/sam3_image.py 的Sam3Image_encode_prompt编码文本/几何提示→_run_encoder图文融合→_run_decoder200 查询 refine→_run_segmentation_heads出 mask最后 NMS 去除重复检测sam3/perflib/nms.py。七、一次推理的完整数据流把前面所有模块串起来一条文本提示的旅程是图像经 ViT 骨干 → 256 维多尺度特征 正弦位置编码文本经 BPE 分词 → CLIP 24 层 Transformer → 文本特征序列两者进入 6 层 DETR 编码器完成图文融合200 个实例查询在 6 层解码器中 refine 出 box 与分数分割头把存活查询画成像素级 maskNMS 后按confidence_threshold过滤输出模型总入口build_sam3_image_model与视频版本build_sam3_video_model均在 sam3/model_builder.py 中视频侧额外引入 sam3/model/memory.py 的记忆编码器做跨帧传播。八、推理部署CLI 与 FastAPI 双模式实测本项目将 SAM3 适配到昇腾 NPUAscend910_9362适配要点见 README.md把若干预计算缓存的devicecuda改为cpu再随张量迁移、perflib/fused.py的 CUDA 融合算子替换为标准F.linear等推理链路全 NPU 执行。启动服务python3 inference.py --server --port 8003 # 接口GET /health、POST /segment上传 file prompts返回 mask RLE / box / score以下是本项目 NPU 推理服务的实测记录设备初始化、接口验证与单次命令调用的执行过程。实测中单次推理约 2.26 秒图像特征提取约 1.9s每个文本提示约 0.25s。总结一句话记住 SAM3 的分工ViT 骨干负责看清图像1008 分辨率、32 层、RoPE 位置编码CLIP 文本编码器负责听懂提示BPE 分词 24 层 Transformer记得用英文DETR 编码器/解码器负责对齐图文200 个查询逐级 refine 出框与分数分割头负责画出来像素级 mask NMS 输出理解了这四段流水线再对照 sam3/model/ 目录下的对应源码SAM3 的架构就不再是一团黑箱而是可以逐层拆解、逐文件阅读的工程蓝图。赞分享人工智能大模型模型推理服务本地部署计算机视觉Ascend【免费下载链接】sam3项目地址https://ai.gitcode.com/leiwenhu/sam3点击查看免费下载相关推荐AnandaSky 模型架构详解ViT 编码器 Qwen3 解码器如何协作完成古籍 OCRAnandaSky 模型架构详解ViT 编码器 Qwen3 解码器如何协作完成古籍 OCR AnandaSky 是一款面向历史汉文文献行级转写古籍 OCBreeze TTS 2模型架构揭秘Qwen3 1B骨干Mimi音频编解码器如何协同工作Breeze TTS 2模型架构揭秘Qwen3 1B骨干Mimi音频编解码器如何协同工作 Breeze TTS 2 是一款开源权重的语音合成TTS大模型如何快速移除图片水印和多余物体IOPaint 实战指南如何快速移除图片水印和多余物体IOPaint 实战指南 IOPaint 是一个免费开源的 AI 图像修复工具能帮你从照片里抹掉水印、多余的文字、路人或物体人工智能AI 应用计算机视觉图像处理媒体生成后端上一篇15分钟搞定黑苹果OpCore-Simplify如何彻底改变OpenCore配置体验下一篇深度解析ESP32-S3 SPI多设备共存从硬件架构到性能优化的完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考