HuggingFace镜像/EdgeTAM-fp16
模型介绍
文件和版本
分析

mlx-community/EdgeTAM-fp16

EdgeTAM — 面向端侧的 SAM 2,支持可提示分割 + 视频跟踪 — 已转换为 Apple MLX(-fp16),供 mlx-edgetam-swift Swift 包使用(MLXEngine promptSegment + trackObject ModelPackage)。比 SAM 2 快 22 倍,在 iPhone 15 Pro Max 上达到 16 FPS。

从零开始构建的 MLX-Swift 架构移植。图像模式(点/框 → 掩码):RepViT-M1 编码器 + FPN + SAM 提示编码器 + 双向掩码解码器——在 CPU 流上与 PyTorch 参考实现严格对齐 (image_embed 9.7e-6,mask logits 8.9e-5;端到端掩码 IoU 0.99,对比 PyTorch)。视频模式 (trackObject,点击一帧 → 逐帧 masklet):新增视频记忆栈——PerceiverResampler

  • MemoryEncoder + MemoryAttention(RoPE-2D)+ SAM2 记忆库状态机——每个算子均与参考实现严格对齐 ;完整 masklet 传播的最低 IoU 为 0.92。单个 -fp16 文件同时承载两种模式(874 个张量)。

使用

// Package.swift → .package(url: "https://github.com/xocialize/mlx-edgetam-swift", from: "0.1.0")
import EdgeTAM
// Image: click → object mask
let p = try EdgeTAMPredictor.fromPretrained(weightsPath, dtype: .float16)
p.setImage(sourceCGImage)
let (mask, score, _, _) = p.predict(point: (500, 375))
// Video: click on a frame → per-frame masklet
let vp = try EdgeTAMVideoPredictor.fromPretrained(weightsPath, dtype: .float16)
let track = vp.track(frames: cgImages, clickFrame: 0, points: [[210, 350]], labels: [1])

或作为 MLXEngine ModelPackage(MLXEdgeTAM.EdgeTAMPackage)—— promptSegment(图像)+ trackObject (视频)接口 —— 通过 Hub 解析此仓库。

权重:Apache-2.0(facebookresearch/EdgeTAM)。移植代码:MIT。