EdgeTAM

O EdgeTAM é uma variante do SAM 2 para rodar no próprio dispositivo, construída para a velocidade de inferência em mobile mantendo o mesmo fluxo de trabalho com prompts de ponto e de caixa. O LibreYOLO suporta seu caminho de segmentação de imagens por meio de uma factory LibreSAM dedicada, separada da factory de detectores LibreYOLO().

Tarefas
instance segmentation
Tamanhos
Instalação
pip install libreyolo
Nível de suporte
Nível irmão, desde a v. Uma superfície de produto separada, com sua própria fábrica e seu próprio contrato.
Origem
EdgeTAM por Meta Reality Labs, Apache-2.0. Artigo, código-fonte
Licenças
Código MIT, pesos Apache-2.0. Uso comercial

Instalação

O EdgeTAM precisa do extra sam, que puxa transformers e timm.

bash
pip install "libreyolo[sam]"

Predição

LibreSAM(...) (ou o LibreEdgeTAM(...) específico da família) é um ponto de entrada separado de LibreYOLO(...): ele devolve um segmentador guiado por prompts em vez de um detector, porque aqui um forward pass não significa nada sem um prompt espacial. Não existe comando de CLI libreyolo predict para esta família; use a API Python. Só a segmentação de imagens é suportada; o tracking em vídeo do EdgeTAM está fora do escopo aqui.

Prompts de ponto e de caixa
from libreyolo import LibreSAM, SAMPLE_IMAGE # O EdgeTAM tem um único tamanho, "edge". Aliases: "edgetam", "edge-tam",# "edgetam-edge".model = LibreSAM("edgetam") # Um prompt de ponto: [x, y] em coordenadas de pixel, label 1 = primeiro plano.result = model.predict(SAMPLE_IMAGE, points=[640, 420], labels=[1])print(result.masks.xy)      # um polígono por máscaraprint(result.boxes.xyxy)    # caixa ajustada derivada da máscara # Um prompt de caixa em vez de um ponto.result = model.predict(SAMPLE_IMAGE, bboxes=[300, 200, 900, 700]) # Sem prompt nenhum, a imagem inteira é segmentada (um gerador# automático de máscaras simplificado, não o exaustivo de referência).result = model.predict(SAMPLE_IMAGE)
Codifique uma vez, mande vários prompts
from libreyolo import LibreEdgeTAM, SAMPLE_IMAGE model = LibreEdgeTAM() # O encoder de imagem é a parte cara. set_image() o roda uma vez;# toda chamada a predict() depois disso reusa o embedding em cache.model.set_image(SAMPLE_IMAGE)a = model.predict(points=[640, 420], labels=[1])b = model.predict(bboxes=[300, 200, 900, 700])model.reset_image()

Um prompt de ponto aceita [x, y] para um objeto, [[x, y], ...] para vários, ou arrays numpy; labels marca cada ponto com 1 (primeiro plano) ou 0 (fundo) e, por padrão, todos são primeiro plano. Um prompt de caixa recebe [x1, y1, x2, y2] ou uma lista de caixas, uma máscara por caixa. Omitir os dois prompts segmenta a imagem inteira mandando uma grade densa de prompts e ficando com as máscaras confiantes que não se sobrepõem; esse modo de "segmentar tudo" é simplificado em relação ao gerador automático de máscaras de referência e pode subsegmentar cenas cheias, então um prompt real de ponto ou de caixa é o caminho preciso. conf filtra pela qualidade de máscara predita (IoU), não por uma confiança de detecção: passe 0.0 para manter todos os candidatos. multimask=True devolve as três máscaras de ambiguidade todo-versus-parte do SAM para cada prompt, em vez de apenas a melhor. device= move o modelo e, se houver uma sessão de set_image() ativa, o embedding em cache dela. Toda máscara carrega o id de classe 0, chamado "object", já que uma máscara guiada por prompt não tem um conjunto fixo de classes. train(), val(), export() e track() todos levantam NotImplementedError nesta família: a inferência sobre imagens é o que o LibreYOLO suporta aqui. Veja predição para os tipos de fonte.

Variantes

Um único tamanho, edge, com uma resolução de entrada fixa, então escolher esta família em vez do resto do nível SAM é uma decisão de hardware e não de dimensionamento: o EdgeTAM existe especificamente para a inferência no próprio dispositivo, com recursos limitados.

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
Instance segmentation
LibreEdgeTAM.ptapache-2.0

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
EdgeTAM, Meta Reality Labs
Licença original
Apache-2.0
Código do LibreYOLO
MIT
Pesos
Apache-2.0, republicado em huggingface.co/LibreYOLO
Interpretação
Apache-2.0 is a permissive license, so this code and these weights can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy you redistribute, and it grants a patent license. LibreYOLO does not vendor EdgeTAM's model source: it calls the Apache-2.0 Transformers adapter and reproduces the pinned upstream image and prompt-coordinate transforms from facebookresearch/EdgeTAM commit 7711e012a30a2402c4eaab637bdb00a521302c91. The republished LibreYOLO/LibreEdgeTAM snapshot is converted from facebook/EdgeTAM revision 14d7ecc48c656b94e5184519f698cd5386c5a2bf, checked tensor-by-tensor against a Transformers-format reference before publication, and tagged Apache-2.0 on the LibreYOLO Hugging Face org. LibreYOLO ships image inference only; EdgeTAM's video tracking is out of scope for this family.

Citação

@article{zhou2025edgetam,
  title={EdgeTAM: On-Device Track Anything Model},
  author={Zhou, Chong and Zhu, Chenchen and Xiong, Yunyang and Suri, Saksham and Xiao, Fanyi and Wu, Lemeng and Krishnamoorthi, Raghuraman and Dai, Bo and Loy, Chen Change and Chandra, Vikas and Soran, Bilge},
  journal={arXiv preprint arXiv:2501.07256},
  year={2025}
}

Copiado do bloco de citação dos autores em github.com/facebookresearch/EdgeTAM#citing-edgetam.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.