<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Memory Encoder Archives - Visão Computacional</title>
	<atom:link href="https://visaocomputacional.com.br/tag/memory-encoder/feed/" rel="self" type="application/rss+xml" />
	<link>https://visaocomputacional.com.br/tag/memory-encoder/</link>
	<description>Tecnologias, teorias e testes.</description>
	<lastBuildDate>Wed, 20 May 2026 17:37:42 +0000</lastBuildDate>
	<language>pt-BR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://visaocomputacional.com.br/wp-content/uploads/2021/12/cropped-logo-150x150-1-32x32.png</url>
	<title>Memory Encoder Archives - Visão Computacional</title>
	<link>https://visaocomputacional.com.br/tag/memory-encoder/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SAM 1 e 2 (Arquitetura)</title>
		<link>https://visaocomputacional.com.br/sam-1-e-2-arquitetura/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sam-1-e-2-arquitetura</link>
					<comments>https://visaocomputacional.com.br/sam-1-e-2-arquitetura/#respond</comments>
		
		<dc:creator><![CDATA[Piemontez]]></dc:creator>
		<pubDate>Wed, 20 May 2026 15:30:31 +0000</pubDate>
				<category><![CDATA[Visão computacional]]></category>
		<category><![CDATA[Codificador de imagem]]></category>
		<category><![CDATA[Codificador de prompt]]></category>
		<category><![CDATA[Hiera]]></category>
		<category><![CDATA[Image encoder]]></category>
		<category><![CDATA[MAE]]></category>
		<category><![CDATA[Mask decoder]]></category>
		<category><![CDATA[Masked Autoencoder]]></category>
		<category><![CDATA[Memory Attention]]></category>
		<category><![CDATA[Memory Bank]]></category>
		<category><![CDATA[Memory Encoder]]></category>
		<category><![CDATA[Prompt encoder]]></category>
		<category><![CDATA[SAM]]></category>
		<category><![CDATA[Vision Transformer]]></category>
		<category><![CDATA[Vit]]></category>
		<guid isPermaLink="false">https://visaocomputacional.com.br/?p=11571</guid>

					<description><![CDATA[<p>Este artigo, explana o funcionamento das versões 1 e 2 do SAM, conforme descrito em seus artigos científicos, com foco no detalhamento de suas redes neurais. </p>
<p>The post <a href="https://visaocomputacional.com.br/sam-1-e-2-arquitetura/">SAM 1 e 2 (Arquitetura)</a> appeared first on <a href="https://visaocomputacional.com.br">Visão Computacional</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Este artigo, explana o funcionamento das versões 1 e 2 do SAM, conforme descrito em seus artigos científicos, com foco no detalhamento de suas redes neurais. Detalhando quais são as camadas ocultas destas duas redes neurais e uma breve descrição de como é o funcionamento destas camadas.</p>



<p>Antes de detalhar esta rede neural, capaz de detectar segmentar objetos em uma imagem por meio de prompts (posição do objeto na imagem, uma região na imagem ou uma mascara), nos próximos 3 parágrafos é apresentado um resumo de seu funcionamento, para melhor entendimento.</p>



<h2 class="wp-block-heading">O que é e como funciona o SAM 1 e 2?</h2>



<p>De forma simples, o SAM é um modelo de inteligência artificial que permite selecionar e separar objetos em imagens e, no caso do SAM 2, também em vídeos. O usuário indica a região de interesse por meio de pontos, áreas ou máscaras, e o modelo gera automaticamente a segmentação correspondente. A Figura 1 apresenta uma visão geral desse funcionamento.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="800" height="697" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/01_Dribbling_Carousel-02.gif" alt="" class="wp-image-11585"/><figcaption class="wp-element-caption">Figura 1 &#8211; Exemplo de uso de SAM 2 <a href="#refs">[META]</a>.</figcaption></figure>



<p>O SAM 1 (Segment Anything Model) é um modelo de segmentação de imagens criado pela Meta AI cujo objetivo é separar (segmentar) qualquer objeto em uma imagem, mesmo sem ter sido treinado especificamente para aquele tipo de objeto.</p>



<p>O SAM&nbsp;2 (Segment Anything Model v2) é a evolução do SAM&nbsp;1, lançado para ir além de imagens estáticas e resolver segmentação interativa e automática em vídeos, mantendo a ideia de “segmentar qualquer coisa”, mas agora ao longo do tempo.<br>A principal mudança é que o SAM&nbsp;2 entende continuidade temporal, ou seja, ele consegue seguir o mesmo objeto frame a frame em um vídeo e também possui maior precisão.</p>



<h3 class="wp-block-heading">SAM&nbsp;1 × SAM&nbsp;2</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Aspecto</th><th>SAM&nbsp;1</th><th>SAM&nbsp;2</th></tr><tr><td>Tipo de dado</td><td>Imagem</td><td><strong>Vídeo + imagem</strong></td></tr><tr><td>Consistência temporal</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr><tr><td>Rastreamento de objetos</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></td></tr></tbody></table></figure>



<p>Os SAM&nbsp;1 e 2 foram desenvolvidos com uma arquitetura que incluí 3 componentes:principais:</p>



<ul class="wp-block-list">
<li>Image Encoder (Codificador de imagem);</li>



<li>Prompt Encoder (Codificador de prompts);</li>



<li>Mask Decoder (Decodificador de máscaras)</li>
</ul>



<p>O Vídeo 1 abaixo ilustra como o SAM 1 funciona. A partir de uma imagem de entrada e de um <em>prompt</em>, o modelo codifica a imagem em uma representação numérica rica — isto é, um tensor com informações semânticas — que permite compreender sua estrutura visual. Em seguida, essa representação é combinada com o <em>prompt</em> de entrada, que também é transformado internamente, para gerar uma máscara final (composta por valores binários) correspondente à região segmentada.</p>



<figure class="wp-block-video aligncenter"><video height="800" style="aspect-ratio: 800 / 800;" width="800" controls src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/section-3.1c.mp4"></video><figcaption class="wp-element-caption">Video 1 &#8211; Ilustração de funcionamento do SAM <a href="#refs">[SA]</a>.</figcaption></figure>



<p>Uma outra forma de visualizarmos o funcionamento dos SAM 1 e 2, é a partir da Figura 1 abaixo, extraídas de seus próprios artigo. As 3 camadas, Image Encoder. Prompt Encoder e Mask Decoder, são representadas respectivamente nas cores verde, roxo e laranja.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="850" height="477" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-4.png" alt="" class="wp-image-11578" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-4.png 850w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-4-300x168.png 300w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-4-768x431.png 768w" sizes="(max-width: 850px) 100vw, 850px" /><figcaption class="wp-element-caption">Figura 1. SAM vs. SAM 2 architecture <a href="#refs">[KA][RN][GJDECJR]</a>.</figcaption></figure>



<p>Observe na Figura 1.b, que a principal diferença entre o SAM 1 e o 2 é a inclusão de uma nova etapa, o banco de memória. Esta etapa, foi adicionado no final, após a segmentação da imagem, onde é criado um banco de memória que alimenta a próxima segmentação(frame) de imagem, caso seja realizado uma segmentação em vídeos. Outra diferença importante é que o decodificador de imagem (em verde), do SAM 2 é realizando por transformação hierárquica, melhor de talhado nas próximas seções.</p>



<h2 class="wp-block-heading">Codificador de imagem (Image encoder)</h2>



<p>O codificador de imagem é responsável por transformar a imagem original em uma representação numérica chamada de embedding. No SAM 1, essa etapa é realizada por um Vision Transformer (ViT), que divide a imagem em pequenos blocos e aprende relações entre eles por meio de mecanismos de atenção. Esse modelo é previamente treinado utilizando a abordagem de Masked Autoencoder (MAE), na qual partes da imagem são ocultadas e o modelo aprende a reconstruí-las, permitindo capturar representações visuais mais ricas e generalizáveis.</p>



<p>Diferente do SAM 1, o SAM 2 usa um transformer hierárquico (Hiera), onde processa a imagem em múltiplos níveis de resolução. Na resolução baixa, aprende contexto global (forma geral); na resolução média, partes do objeto; e na alta, bordas e detalhes. Está técnica é chamado de pirâmide de features. O que o SAM 1 fazia em uma única resolução, agora o SAM 2, extrai estas informações em resoluções diferentes.</p>



<h3 class="wp-block-heading">Vision Transformer (Vit)</h3>



<p>O Vision Transformer foi apresentado pela primeira vez em 2020 em um artigo intitulado &#8220;16&#215;16 palavras&#8221;. A arquitetura Transformer tornou-se amplamente utilizada em tarefas de PNL (Processamento de Linguagem Natural). Para aproveitar os recursos dos Transformers para imagens, o ViT foi introduzido <a href="#refs">[TA]</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="513" height="343" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-6.png" alt="" class="wp-image-11598" style="width:513px;height:auto" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-6.png 513w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-6-300x201.png 300w" sizes="(max-width: 513px) 100vw, 513px" /><figcaption class="wp-element-caption">Figura 2 &#8211; Vision Transformer (ViT). Imagem do autor <a href="#refs">[ALADXTMGSJNN]</a>.</figcaption></figure>
</div>


<p>Para processar uma imagem, inicialmente ela é segmentada em pequenos patches de tamanho fixo. Depois disso, esses patches passam por uma incorporação linear. Por exemplo, considerando uma imagem com dimensões 1024 × 1024 × 3, ao dividi-la em patches de 16 × 16 (totalizando 256 patches), cada um terá dimensão equivalente a 64 × 64 × 3. Em seguida, cada patch é transformado linearmente para o tamanho do modelo. Assim, um patch de dimensão 64 × 64 × 3 (12.288 valores) é projetado em um espaço de tamanho 4096. Dessa forma, cada patch passa a ser representado por um embedding de dimensão 4096 <a href="#refs">[TA]</a>.</p>



<p>Resumo da camada linear: todos os pixels de cada patch são achatados em um vetor, e os 12.288 valores resultantes são multiplicados por uma matriz de pesos de dimensão (12.288 × 4.096), gerando 4.096 valores de embedding. Por exemplo, realiza-se a multiplicação entre a entrada (256, 12.288) e a matriz de pesos (12.288, 4.096), em que 256 corresponde ao número de patches, 12.288 ao número de valores por patch após achatamento, e 4.096 ao tamanho final do embedding de cada patch <a href="#refs">[TA]</a>.</p>



<p>Ao dividir uma imagem em 256 partes, cada uma delas é transformada em um vetor de incorporação (embedding). De maneira semelhante ao que ocorre em modelos de linguagem, nos quais palavras são representadas como vetores, cada região da imagem passa a ter sua própria representação vetorial. Assim, obtemos 256 vetores de incorporação, correspondentes a cada parte da imagem, que capturam as características essenciais de cada região <a href="#refs">[TA]</a>.</p>



<p>Em seguida, vetores de incorporação posicionais são somados aos vetores de incorporação da imagem por meio de uma adição elemento a elemento. Além disso, vetores de incorporação de classe são inseridos no início da sequência de vetores de incorporação, conforme ilustrado na Figura 2, onde esses vetores também são adicionados no início para tarefas de classificação. Esses vetores de incorporação de classe são parâmetros treináveis <a href="#refs">[TA]</a>.</p>



<p>O objetivo do Vision Transformer (ViT) é realizar a classificação de imagens. Ao final do codificador, esses vetores de incorporação de classe desempenham um papel fundamental na decisão de classificação, de forma análoga à camada linear utilizada em modelos de linguagem (LLMs) <a href="#refs">[TA]</a>.</p>



<h3 class="wp-block-heading">Masked Autoencoder (MAE)</h3>



<p>Masked Autoencoders (MAE) são uma abordagem eficiente de aprendizado auto-supervisionado para visão computacional. A ideia principal é simples: o modelo recebe uma imagem com várias partes ocultadas e aprende a reconstruir os pixels ausentes. </p>



<p>Esse método se baseia em dois pontos principais: </p>



<ul class="wp-block-list">
<li>primeiro, uma arquitetura assimétrica, em que o codificador processa apenas as partes visíveis da imagem, enquanto um decodificador leve reconstrói a imagem completa; </li>



<li>segundo, o uso de uma alta taxa de mascaramento (por exemplo, 75%), o que torna a tarefa de reconstrução mais desafiadora e significativa. </li>
</ul>



<p>Com essa abordagem, é possível treinar modelos grandes de forma mais eficiente, obtendo melhor desempenho e boa capacidade de generalização para diferentes tarefas <a href="#refs">[LZ]</a>.</p>



<p>Em SAM 1, o MAE é pré-treinado utilizando um grande subconjunto aleatório de patches da imagem, no qual parte desses patches é mascarada. O codificador é então aplicado apenas ao subconjunto reduzido de patches visíveis. Após isso, os tokens correspondentes aos patches mascarados são adicionados à saída do codificador. Esse conjunto completo, composto pelos patches codificados e pelos tokens mascarados, é processado por um decodificador compacto, responsável por reconstruir a imagem original no nível de pixels. Após a etapa de pré-treinamento, o decodificador é descartado, e o codificador passa a ser utilizado com o conjunto completo de patches, agora sem máscaras, em tarefas de reconhecimento <a href="#refs">[TA]</a>.</p>



<p>O codificador do MAE foi empregado como codificador de imagens no modelo Segment Anything (SAM), conforme ilustrado na Figura 1.a. Nesse caso, os embeddings de imagem são gerados apenas uma única vez, permitindo que múltiplos prompts sejam fornecidos como entrada posteriormente <a href="#refs">[TA]</a>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="720" height="397" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-7.png" alt="" class="wp-image-11601" style="width:720px;height:auto" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-7.png 720w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-7-300x165.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption">Imagem 3 &#8211; Autoencoder mascarado (MAE) <a href="#refs">[LZ]</a>.</figcaption></figure>
</div>


<h3 class="wp-block-heading">Hiera</h3>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>&#8220;Transformadores de visão como o ViT usam a mesma resolução espacial e o mesmo número de características em toda a rede. Mas isso é ineficiente: as camadas iniciais não precisam de tantas características, e as camadas posteriores não precisam de tanta resolução espacial. Modelos hierárquicos anteriores, como o ResNet, resolviam esse problema usando menos características no início e menos resolução espacial no final&#8221; [<a href="https://github.com/facebookresearch/hiera">Hiera</a>, 2026].</p>
</blockquote>



<p>O SAM 2 utiliza um codificador de imagem baseado no Hiera, uma arquitetura hierárquica derivada do Vision Transformer (ViT), previamente treinada com a abordagem de Masked Autoencoder (MAE). Esse codificador é capaz de extrair características em múltiplas escalas, capturando tanto o contexto global quanto detalhes finos da imagem <a href="#refs">[RA]</a>. Cada alteração de escala modifica o tamanho das representações internas (ou embeddings) no Hiera, conforme bloco Hiera Encoder, liustrado na Imagem 4 abaixo.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="228" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8-1024x228.png" alt="" class="wp-image-11609" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8-1024x228.png 1024w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8-300x67.png 300w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8-768x171.png 768w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8-1536x342.png 1536w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-8.png 1993w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Imagem 4 &#8211; Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles <a href="#refs">[FR]</a>.</figcaption></figure>



<p>Cada escala pode ser representada da seguinte forma:</p>



<ul class="wp-block-list">
<li>Estágio 1 → alta resolução (detalhes);</li>



<li>Estágio 2 → média resolução;</li>



<li>Estágio 3 → baixa resolução (mais contexto);</li>



<li>Estágio 4 → muito baixa resolução (global).</li>
</ul>



<p>Cada escala tem como saída esperada:</p>



<ul class="wp-block-list">
<li>F1 → detalhes (alta resolução);</li>



<li>F2 → partes do objeto;</li>



<li>F3 → estrutura;</li>



<li>F4 → contexto global.</li>
</ul>



<p>A partir dessas diferentes escalas, a Feature Pyramid Network (FPN) atua integrando as características extraídas em cada estágio, combinando informações mais abstratas, provenientes das camadas de baixa resolução, com os detalhes preservados nas camadas de alta resolução.</p>



<p>As características dos níveis mais profundos, oriundas dos estágios 3 e 4, são utilizadas para gerar embeddings ricos e semânticos da imagem, fundamentais para a segmentação. Ao mesmo tempo, características de alta resolução, provenientes dos estágios 1 e 2, são incorporadas às etapas de reconstrução no decodificador de máscara, permitindo produzir segmentações mais precisas e com maior nível de detalhe <a href="#refs">[RA]</a>.</p>



<h2 class="wp-block-heading">Codificador de prompt</h2>



<p>A codificação de prompts constitui uma etapa essencial no pipeline do SAM, responsável por transformar as interações do usuário em representações numéricas (embeddings) que o modelo consegue interpretar. Esses prompts atuam como mecanismos de orientação, direcionando a atenção do modelo para regiões ou objetos específicos dentro da imagem.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="479" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9-1024x479.png" alt="" class="wp-image-11623" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9-1024x479.png 1024w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9-300x140.png 300w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9-768x359.png 768w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9-1536x718.png 1536w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-9.png 1711w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">Imagem 5 &#8211; Prompt Decoder <a href="#refs">[SW]</a>.</figcaption></figure>



<p>O codificador de prompt recebe diferentes tipos de entradas fornecidas pelo usuário, como:</p>



<ul class="wp-block-list">
<li>cliques em pontos específicos da imagem</li>



<li>caixas delimitadoras</li>



<li>máscaras iniciais aproximadas</li>
</ul>



<p>Essas entradas são processadas e convertidas em vetores que representam tanto a posição espacial quanto o tipo de interação. De forma geral, os prompts são divididos em duas categorias principais:</p>



<ul class="wp-block-list">
<li>Prompts esparsos (sparse): incluem pontos e caixas, que representam informações discretas e localizadas. Cada ponto ou vértice da caixa é codificado como um vetor (token), totalizando um pequeno conjunto de embeddings que indicam explicitamente onde o modelo deve focar.</li>



<li>Prompts densos (dense): incluem máscaras, que possuem correspondência espacial com toda a imagem. Nesse caso, a máscara é processada por camadas convolucionais, resultando em um mapa de features que preserva a estrutura espacial da entrada.</li>
</ul>



<p>No caso dos prompts esparsos, como cliques, a codificação ocorre em etapas. Primeiramente, as coordenadas do ponto são normalizadas e transformadas por um mecanismo de codificação posicional (<em>positional encoding</em>), que captura a localização no espaço da imagem. Em seguida, esse vetor é combinado com um embedding aprendido que indica se o ponto pertence ao primeiro plano (<em>foreground</em>) ou ao fundo (<em>background</em>). Já as caixas delimitadoras são representadas por pares de pontos (canto superior esquerdo e canto inferior direito), cada um com seu próprio embedding específico.</p>



<p>O resultado desse processo é um conjunto de vetores (tokens) que representam a intenção do usuário. Esses tokens não carregam diretamente o conteúdo visual da imagem, mas sim informações sobre “onde” e “o que” deve ser segmentado.</p>



<p>Esses embeddings de prompt são então fornecidos ao decodificador de máscaras juntamente com os embeddings da imagem. No Mask Decoder, ocorre a interação entre essas duas informações por meio de mecanismos de atenção, nos quais os tokens do prompt (esparsos) direcionam o modelo a extrair, dos embeddings densos da imagem, as regiões correspondentes ao objeto desejado.</p>



<p>Na prática, o codificador de prompt responde à pergunta:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>“Qual região da imagem o usuário quer segmentar?”</strong></p>
</blockquote>



<p>Dessa forma, ele atua como a interface entre a interação humana e o processamento automático do modelo, permitindo que o SAM realize segmentações precisas de forma interativa, rápida e generalizável.</p>



<h3 class="wp-block-heading">Decodificador de máscara (Mask decoder)</h3>



<p>O decodificador de máscara é a etapa da arquitetura responsável por combinar as características da imagem, os embeddings de prompt e, quando disponível, informações adicionais para gerar a segmentação final.O decodificador utiliza um número reduzido de camadas de atenção, nas quais os embeddings da imagem e os tokens de prompt são mutuamente atualizados por meio de mecanismos de atenção cruzada.</p>



<p>O decodificador de máscara é a parte da arquitetura onde características da imagem, máscaras e características de prompt são usadas para gerar máscaras. Existem duas camadas, como pode ser observado na Imagem 6, Decodificador de Máscara. Um decodificador de duas camadas atualiza tanto o embedding da imagem quanto os tokens de prompt por meio de atenção cruzada. Tokens de prompt: Pontos Médios, Caixas, Textos e Máscaras — o Prompt e o Embedding Denso.</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="720" height="252" src="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-10.png" alt="" class="wp-image-11626" style="width:720px;height:auto" srcset="https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-10.png 720w, https://visaocomputacional.com.br/wp-content/uploads/2026/05/image-10-300x105.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /><figcaption class="wp-element-caption">Imagem 6 &#8211; Saída do decodificador de imagem  <a href="#refs">[KA]</a>.</figcaption></figure>



<p>O codificador de imagem primeiro converte a imagem em uma representação numérica rica em informações visuais. Em seguida, o codificador de prompts transforma entradas como pontos, caixas delimitadoras ou máscaras iniciais em embeddings que indicam ao modelo qual região deve ser segmentada. O decodificador de máscara combina essas duas fontes de informação para prever a região exata do objeto na imagem <a href="#refs">[KA]</a>.</p>



<p>Uma característica importante desse decodificador é que ele foi projetado para ser leve e rápido. Isso permite que, depois que a imagem já foi processada pelo codificador, o usuário possa testar diferentes prompts quase em tempo real, sem precisar recalcular toda a imagem novamente. Essa separação entre um codificador de imagem mais pesado e um decodificador mais eficiente é uma das razões pelas quais o SAM funciona bem em cenários interativos <a href="#refs">[SA]</a>.</p>



<p>O decodificador também lida com ambiguidades. Por exemplo, se o usuário clicar em um ponto sobre uma camisa, o modelo pode interpretar o alvo como a camisa, a pessoa inteira ou até uma parte específica do corpo. Para resolver isso, o SAM pode gerar múltiplas máscaras válidas e associar a elas pontuações de confiança, permitindo escolher a segmentação mais adequada <a href="#refs">[SA]</a>.</p>



<p>Em resumo, o decodificador de máscara funciona como a etapa final de decisão do SAM: ele recebe a compreensão visual da imagem, interpreta a intenção expressa pelo prompt e produz a máscara segmentada correspondente. É esse módulo que transforma a interação simples do usuário — como um clique ou uma caixa — em uma seleção precisa de pixels pertencentes ao objeto desejado. Uma descrição detalhada de como funciona a etapa de decodificação é encontrada no post <a href="https://pub.towardsai.net/sam-2-segment-anything-model-2-is-amazing-but-we-need-to-understand-sam-1-cb9042b9decc">SAM 2 (Segment Anything Model 2) is Amazing, But We Need to understand SAM 1.</a></p>



<h3 class="wp-block-heading">Tratamento de ambiguidade</h3>



<p>Para lidar com ambiguidades de segmentação, tanto o SAM 1 quanto o SAM 2 podem gerar múltiplas máscaras candidatas para um mesmo <em>prompt</em>. Cada uma dessas máscaras recebe uma pontuação de qualidade baseada em<strong> </strong>um IoU previsto<strong> </strong>(<em>predicted IoU</em>), que representa uma estimativa da qualidade da segmentação aprendida durante o treinamento.</p>



<p>Esse mecanismo permite selecionar a máscara mais adequada e aumenta a robustez do modelo em cenários complexos, como imagens com múltiplos objetos, sobreposição ou fronteiras pouco definidas.</p>



<p>No caso do SAM 2, essa abordagem é estendida para vídeos, contribuindo também para manter a consistência das segmentações ao longo dos quadros, mesmo em situações de oclusão ou visibilidade parcial dos objetos <a href="#refs">[RA]</a>.</p>



<h2 class="wp-block-heading">Memória e Atenção (Memory and Attention) </h2>



<p>O SAM 2 introduz um mecanismo de memória que armazena representações de frames anteriores em um banco de memória, permitindo que o modelo utilize essas informações ao processar o frame atual. Por meio de mecanismos de atenção, o modelo combina o conteúdo atual com o histórico armazenado, garantindo maior consistência temporal e melhor desempenho em cenários com movimento, oclusão e variações visuais. Esse mecanismo é composto por três elementos principais: um codificador de memória, um banco de memória e um módulo de atenção de memória.</p>



<h3 class="wp-block-heading">Codificador de memória (Memory Encoder)</h3>



<p>O codificador de memória transforma as características da imagem e a máscara gerada em uma representação compacta que descreve o objeto e pode ser armazenada para uso futuro.</p>



<h3 class="wp-block-heading">Banco de memória (Memory Bank)</h3>



<p>O banco de memória armazena essas representações de frames anteriores, mantendo um histórico recente do objeto ao longo do vídeo.</p>



<h3 class="wp-block-heading">Módulo de atenção de memória (Memory Attention)</h3>



<p>O módulo de atenção de memória utiliza essas informações armazenadas para influenciar a segmentação do frame atual, garantindo consistência ao longo do tempo.</p>



<p>Uma descrição detalhada sobre a memória do SAM 2 é encontrada em <a href="https://deepwiki.com/kijai/ComfyUI-segment-anything-2/4.3-memory-and-attention-mechanism">Memory and Attention Mechanism</a>.</p>



<h2 class="wp-block-heading">Trainamento</h2>



<p>O código do Segment Anything Model é parcialmente open source. No SAM 1, a Meta disponibilizou principalmente o código para inferência e uso do modelo, mas não o pipeline completo de treinamento. Já no SAM 2, houve maior abertura, incluindo suporte a treinamento e fine-tuning, embora o processo completo utilizado em larga escala não tenha sido totalmente divulgado.</p>



<h3 class="wp-block-heading">Código fonte</h3>



<p><a href="https://github.com/facebookresearch/segment-anything">https://github.com/facebookresearch/segment-anything</a></p>



<p><a href="https://github.com/facebookresearch/sam2">https://github.com/facebookresearch/sam2</a></p>



<p id="refs"><strong>Referências:</strong></p>



<p>[KA] KIRILLOV, Alexander et al. Segment Anything. arXiv preprint arXiv:2304.02643, 2023. <a href="https://arxiv.org/abs/2304.02643">Artigo acesso em: 6 maio 2026</a></p>



<p>[RN] RAVI, Nikhila et al. SAM 2: Segment Anything in Images and Videos. arXiv preprint arXiv:2408.00714, 2024. <a href="https://arxiv.org/abs/2408.00714">Artigo acesso em: 6 maio 2026</a> </p>



<p>[DATAC] DATACAMP. SAM 2 da Meta: o Segment Anything Model para imagens e vídeos. <a href="https://www.datacamp.com/pt/blog/sam2-meta-segment-anything-model">Acesso em: 6 maio 2026.</a></p>



<p>[GJDECJR] Gutiérrez Gallardo, Juan Diego &amp; Delgado, Emilio &amp; Breuer, Carlos &amp; Conejero Manzano, José María &amp; Rodriguez-Echeverria, Roberto. (2025). Prompt Once, Segment Everything: Leveraging SAM 2 Potential for Infinite Medical Image Segmentation with a Single Prompt. Algorithms. 18. 227. 10.3390/a18040227.</p>



<p>[SA] Segment Anything Research by Meta AI. <a href="https://segment-anything.metademolab.com/">Acessado em:  07 maio 2026</a></p>



<p>[META] META. Our new AI model can segment video. 2024. <a href="https://about.fb.com/news/2024/07/our-new-ai-model-can-segment-video/.">Acesso em: 6 maio 2026.</a></p>



<p>[ALADXTMGSJNN] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby. An Image is Worth 16&#215;16 Words: Transformers for Image Recognition at Scale. <a href="https://arxiv.org/abs/2010.11929">Acessado em: 13 maio de 2026</a></p>



<p>[LZ] Liu, Ziming A Toy Model of Masked-Autoencoder. <a href="https://kindxiaoming.github.io/blog/2026/mae/">Acesso em: 13 maio 2026.</a></p>



<p>[TA] TOWARDS AI. SAM 2: Segment Anything Model 2 is amazing, but we need to understand SAM 1.<a href="https://pub.towardsai.net/sam-2-segment-anything-model-2-is-amazing-but-we-need-to-understand-sam-1-cb9042b9decc">Acesso em: 13 maio 2026.</a></p>



<p>[RA] ROBERGE, Adam. Unpacking the advanced features of SAM2. Medium, [s.d.]. <a href="https://medium.com/@adam.roberge/unpacking-the-advanced-features-of-sam2-d7d6e154ac7a">Acesso em: 19 maio 2026.</a></p>



<p>[FR] FACEBOOK RESEARCH. Hiera. <a href="https://github.com/facebookresearch/hiera">Acesso em: 19 maio 2026.</a></p>



<p>[SW] SAM-WEBUI. Prompt Encoding. <a href="https://deepwiki.com/derekray311511/SAM-webui/7.3-prompt-encoding">Acesso em: 19 maio 2026.</a></p>
<p>The post <a href="https://visaocomputacional.com.br/sam-1-e-2-arquitetura/">SAM 1 e 2 (Arquitetura)</a> appeared first on <a href="https://visaocomputacional.com.br">Visão Computacional</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://visaocomputacional.com.br/sam-1-e-2-arquitetura/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://visaocomputacional.com.br/wp-content/uploads/2026/05/section-3.1c.mp4" length="785203" type="video/mp4" />

			</item>
	</channel>
</rss>
