Skip to main content
Motor de Visão Multimodal

Tokenizador de Imagens

Visualize a tokenização de imagens, divisão de blocos de 512x512 da OpenAI e grades de patches espaciais de Vision Transformer (ViT) com tela interativa e calculadoras de custos.

Drop your image here or click to browse

PNG, JPEG, WebP, or GIF up to 10MB. Or paste directly from clipboard (Ctrl+V / Cmd+V).

Total Image Tokens
0 ~$0.0000 USD
Base Tokens 85
Tile Tokens 0

Grid & Tile Breakdown

Original Size: -
Scaled Calculation Size: -
Grid Configuration: -
Total Grid Tiles: -

Tile Inspection List

Upload an image to inspect grid tiles…
Imersão em Visão Computacional

Tokenização de Imagens e Transformadores de Visão

Uma derivação matemática passo a passo de como os Vision Transformers e os modelos multimodais de fronteira decompõem matrizes bidimensionais de pixels em tokens visuais discretos por meio de recortes espaciais e grades de mosaicos de alta definição.

Tabela de Referência Rápida de Dimensões e Tensores de Visão

Arquitetura ViT e Visão da OpenAI
Tamanho do Recorte ViT
16 × 16 px
Grade Sem Sobreposição
Base Baixa Resolução
85 Tokens
Custo Fixo de Panorama
Dimensão do Mosaico
512 × 512 px
Recorte de Alto Detalhe
Custo por Mosaico
170 Tokens
Por Setor de 512px
Sequência ViT 224
196 Tokens
Arranjo de 14 × 14 Recortes
Resolução Limite
2048 × 2048
Caixa Delimitadora Máxima
01

De Pixels Contínuos para Tokens Visuais Discretos

Tensor da Imagem: X ∈ ℝH × W × C

Módulos padrão de transformador exigem sequências unidimensionais de vetores de entrada. Em 2020 a arquitetura Vision Transformer provou que os mecanismos habituais de autoatenção podiam modelar conexões espaciais bidimensionais ao particionar fotografias em blocos quadrados sem sobreposição e tratá-los de modo análogo a palavras.

1. Decomposição Espacial

A imagem é particionada em uma grade uniforme de recortes quadrados de P por P pixels.

2. Projeção Linear

Cada recorte achatado é projetado na dimensão oculta do modelo através de pesos treináveis.

3. Codificação de Posição

Vetores posicionais bidimensionais são adicionados para indicar as coordenadas dos recortes.

Contagem de Recortes Espaciais Passo 1
N = (H × W) / P^2
Dimensão da Imagem: 224 × 224 pixels
Tamanho do Recorte P: 16 × 16 pixels
Tokens Visuais Finais: 196 tokens (14 × 14)
Tratar recortes espaciais como tokens viabiliza o reaproveitamento direto de blocos de transformador.
02

Formulação Algébrica da Projeção de Recortes

Equação: z_0 = [x_class; x_p E] + E_pos

A conversão matemática de pixels em bruto para os vetores de entrada do transformador envolve o desenrolamento dos canais cromáticos, o produto matricial de projeção e a adição de deslocamentos posicionais:

1. Achatamento do Recorte Espacial:

Cada recorte RGB de P por P é desdobrado em um vetor plano x_p de dimensão (P^2 · C) = (16 × 16 × 3) = 768 valores escalares.

2. Matriz de Projeção Linear E:

Uma matriz de ponderações ajustáveis E mapeia os 768 valores para a dimensão latente d_modelo do transformador.

3. Encodificação de Posição:

Injeções posicionais E_pos são somadas aos vetores para informar ordenamento cartesiano horizontal e vertical.

Equação Tensorial da Projeção Passo 2
z_0 = [x_cls ; x_p^1 E ; ... ; x_p^N E] + E_pos
Dimensão do Recorte em Bruto: 16 × 16 × 3 = 768
Matriz de Projeção E: 768 × 768 parâmetros
Extensão da Sequência: 196 + 1 (cls) = 197
03

Mecânica de Mosaicos em Alta Definição da OpenAI

Cálculo: 85 + (Mosaicos × 170)

Sistemas comerciais modernos como GPT 4o não reduzem fotos amplas para uma miniatura comprimida. Em vez disso dividem dinamicamente fotografias extensas em mosaicos de 512 por 512 pixels:

1. Enquadramento e Escalonamento:

As imagens são limitadas a uma caixa de 2048 por 2048 pixels e posteriormente sua menor aresta é ajustada para 768 pixels preservando as proporções de aspecto.

2. Grade de Mosaicos de Alta Definição:

A imagem é repartida em ceil(Largura/512) por ceil(Altura/512) blocos. Cada bloco consome 170 tokens adicionados a uma base panorâmica de 85 tokens.

Fórmula de Alocação de Mosaicos Passo 3
Tokens Totais = (Mosaicos × 170) + 85
Imagem de 1024 × 1024: 2 × 2 = 4 blocos (765 tokens)
Imagem de 1920 × 1080: 4 × 2 = 8 blocos (1,445 tokens)
Modo Baixo Detalhe: Custo fixo de 85 tokens
04

Comparativo de Tokenizadores de Visão entre Modelos Líderes

Benchmark Visual
Arquitetura do Modelo Tamanho do Recorte Base Lógica de Mosaicos Detalhados Consumo em 1080p Fidelidade Geométrica Tipo Estrutural
GPT 4o ViT Dinâmico Grade 512 × 512 (170 por bloco + 85) 1,105 tokens Exata (Sem distorção) Transformador Omni Nativo
Claude 3.5 Sonnet 14 × 14 px Blocos dinâmicos ancorados (máximo 1,600 tokens) 1,600 tokens Alta (Corte adaptativo) Estrutura Unificada Texto Visão
Gemini 1.5 Flash Recorte Espacial Custo fixo de 258 tokens por recorte 258 tokens Barras de ajuste lateral MoE Multimodal Nativo
ViT Base Padrão 16 × 16 px Recorte único estático 224x224 (196 tokens) 196 tokens Baixa (Redução forçada) Codificador Estrito de Visão
05

Código de Implementação em Produção: Calculadora de Tokens Visuais

Ambiente: Python 3.10+
calculate_vision_tokens.py pillow e math
import math
from PIL import Image

def calculate_openai_image_tokens(width: int, height: int, detail: str = "high") -> int:
    if detail == "low":
        return 85
        
    # Passo 1: Ajustar dentro do limite 2048x2048
    if width > 2048 or height > 2048:
        scale = 2048 / max(width, height)
        width = int(width * scale)
        height = int(height * scale)
        
    # Passo 2: Ajustar menor aresta para 768px
    shortest = min(width, height)
    scale = 768 / shortest
    width = int(width * scale)
    height = int(height * scale)
    
    # Passo 3: Contabilizar blocos de 512x512
    tiles_w = math.ceil(width / 512)
    tiles_h = math.ceil(height / 512)
    total_tiles = tiles_w * tiles_h
    
    # Passo 4: Calcular total de tokens
    total_tokens = (total_tiles * 170) + 85
    print(f"Blocos: {tiles_w}x{tiles_h} = {total_tiles} | Tokens Totais: {total_tokens}")
    return total_tokens

calculate_openai_image_tokens(1920, 1080, "high")
06

Perguntas Frequentes de Engenharia Visual

Processamento de Imagem

Quando optar pelo modo de baixo detalhe em detrimento do alto detalhe?

O modo de baixo detalhe com custo estabelecido de 85 tokens é perfeito para catalogação geral de ambientes, classificação temática e detecção de formas volumosas. O modo de alto detalhe torna-se indispensável quando é necessário reconhecer textos em documentos, analisar esquemas gráficos ou examinar anomalias pequenas.

Por que a resolução de uma foto altera tanto o consumo de tokens?

Imagens com resolução expandida necessitam de múltiplos blocos de 512 por 512 pixels para resguardar a nitidez dos elementos. Uma fotografia em 4K gera até 12 blocos somando mais de 2,100 tokens, o que dilata a latência de geração e multiplica proporcionalmente o custo da requisição.

Como o transformador identifica o posicionamento espacial de cada recorte?

Os transformadores associam vetores posicionais aprendidos ou esquemas rotacionais RoPE a cada vetor projetado, suprindo as camadas de autoatenção com noções explícitas de orientação cartesiana vertical e horizontal.

Recortar uma imagem antes da chamada à API reduz gastos?

Com certeza. Eliminar margens brancas, bordas dispensáveis ou áreas de fundo neutro diminui diretamente a quantidade de blocos de 512 por 512 pixels necessários, assegurando uma economia de 170 tokens para cada bloco descartado.

Conclusão Arquitetural Chave

Os Vision Transformers transformam imagens contínuas em sequências discretas projetando recortes espaciais contíguos em espaços vetoriais densos. As soluções dinâmicas de blocos em mosaico salvaguardam pormenores gráficos e tipográficos sem impor deformações na razão de aspecto original.

matrix