You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

6.1 KiB

comments description keywords
true Saiba mais sobre o MobileSAM, sua implementação, comparação com o SAM original e como baixá-lo e testá-lo no framework Ultralytics. Melhore suas aplicações móveis hoje. MobileSAM, Ultralytics, SAM, aplicações móveis, Arxiv, GPU, API, codificador de imagens, decodificador de máscaras, download do modelo, método de teste

Logotipo do MobileSAM

Segmentação Móvel de Qualquer Coisa (MobileSAM)

O artigo do MobileSAM agora está disponível no arXiv.

Uma demonstração do MobileSAM executando em uma CPU pode ser acessada neste link de demonstração. O desempenho em um Mac i5 CPU leva aproximadamente 3 segundos. Na demonstração do Hugging Face, a interface e CPUs de menor desempenho contribuem para uma resposta mais lenta, mas ela continua funcionando efetivamente.

O MobileSAM é implementado em vários projetos, incluindo Grounding-SAM, AnyLabeling e Segment Anything in 3D.

O MobileSAM é treinado em uma única GPU com um conjunto de dados de 100 mil imagens (1% das imagens originais) em menos de um dia. O código para esse treinamento será disponibilizado no futuro.

Modelos Disponíveis, Tarefas Suportadas e Modos de Operação

Esta tabela apresenta os modelos disponíveis com seus pesos pré-treinados específicos, as tarefas que eles suportam e sua compatibilidade com diferentes modos de operação, como Inference, Validation, Training e Export, indicados pelos emojis para os modos suportados e para os modos não suportados.

Tipo de Modelo Pesos Pré-treinados Tarefas Suportadas Inference Validation Training Export
MobileSAM mobile_sam.pt Segmentação de Instâncias

Adaptação de SAM para MobileSAM

Como o MobileSAM mantém o mesmo pipeline do SAM original, incorporamos o pré-processamento original, pós-processamento e todas as outras interfaces. Consequentemente, aqueles que estão atualmente usando o SAM original podem fazer a transição para o MobileSAM com um esforço mínimo.

O MobileSAM tem um desempenho comparável ao SAM original e mantém o mesmo pipeline, exceto por uma mudança no codificador de imagens. Especificamente, substituímos o codificador de imagens ViT-H original (632M) por um ViT menor (5M). Em uma única GPU, o MobileSAM opera em cerca de 12 ms por imagem: 8 ms no codificador de imagens e 4 ms no decodificador de máscaras.

A tabela a seguir fornece uma comparação dos codificadores de imagens baseados em ViT:

Codificador de Imagens SAM Original MobileSAM
Parâmetros 611M 5M
Velocidade 452ms 8ms

Tanto o SAM original quanto o MobileSAM utilizam o mesmo decodificador de máscaras baseado em prompt:

Decodificador de Máscaras SAM Original MobileSAM
Parâmetros 3,876M 3,876M
Velocidade 4ms 4ms

Aqui está a comparação de todo o pipeline:

Pipeline Completo (Enc+Dec) SAM Original MobileSAM
Parâmetros 615M 9,66M
Velocidade 456ms 12ms

O desempenho do MobileSAM e do SAM original é demonstrado usando tanto um ponto quanto uma caixa como prompts.

Imagem com Ponto como Prompt

Imagem com Caixa como Prompt

Com seu desempenho superior, o MobileSAM é aproximadamente 5 vezes menor e 7 vezes mais rápido que o FastSAM atual. Mais detalhes estão disponíveis na página do projeto MobileSAM.

Testando o MobileSAM no Ultralytics

Assim como o SAM original, oferecemos um método de teste simples no Ultralytics, incluindo modos para prompts de Ponto e Caixa.

Download do Modelo

Você pode baixar o modelo aqui.

Prompt de Ponto

!!! Example "Exemplo"

=== "Python"
    ```python
    from ultralytics import SAM

    # Carregar o modelo
    model = SAM('mobile_sam.pt')

    # Prever um segmento com base em um prompt de ponto
    model.predict('ultralytics/assets/zidane.jpg', points=[900, 370], labels=[1])
    ```

Prompt de Caixa

!!! Example "Exemplo"

=== "Python"
    ```python
    from ultralytics import SAM

    # Carregar o modelo
    model = SAM('mobile_sam.pt')

    # Prever um segmento com base em um prompt de caixa
    model.predict('ultralytics/assets/zidane.jpg', bboxes=[439, 437, 524, 709])
    ```

Implementamos MobileSAM e SAM usando a mesma API. Para obter mais informações sobre o uso, consulte a página do SAM.

Citações e Agradecimentos

Se você achar o MobileSAM útil em sua pesquisa ou trabalho de desenvolvimento, considere citar nosso artigo:

!!! Citar ""

=== "BibTeX"

    ```bibtex
    @article{mobile_sam,
      title={Faster Segment Anything: Towards Lightweight SAM for Mobile Applications},
      author={Zhang, Chaoning and Han, Dongshen and Qiao, Yu and Kim, Jung Uk and Bae, Sung Ho and Lee, Seungkyu and Hong, Choong Seon},
      journal={arXiv preprint arXiv:2306.14289},
      year={2023}
    }