Vision Transformer (ViT)
Explora el potencial de los Vision Transformers (ViT). Aprende cómo la autoatención y la tokenización de parches revolucionan la visión artificial más allá de las CNN con Ultralytics.
Un Vision Transformer (ViT) es una arquitectura de aprendizaje profundo que adapta los mecanismos de autoatención diseñados originalmente para el Natural Language Processing (NLP) para resolver tareas visuales. A diferencia de una Convolutional Neural Network (CNN) tradicional, que procesa imágenes a través de una jerarquía de cuadrículas de píxeles locales, un ViT trata una imagen como una secuencia de parches discretos. Este enfoque fue popularizado por el histórico artículo de investigación "An Image is Worth 16x16 Words", que demostró que las arquitecturas de transformer puras podían lograr un rendimiento de vanguardia en computer vision (CV) sin depender de capas de convolución. Al aprovechar la atención global, los ViT pueden capturar dependencias de largo alcance en toda una imagen desde la primera capa.
Cómo funcionan los Vision Transformers#
La innovación fundamental del ViT es la forma en que estructura los datos de entrada. Para hacer que una imagen sea compatible con un Transformer estándar, el modelo desglosa la información visual en una secuencia de vectores, imitando cómo un modelo de lenguaje procesa una oración de palabras.
-
Tokenización de parches: La imagen de entrada se divide en una cuadrícula de cuadrados de tamaño fijo, típicamente de 16x16 píxeles. Cada cuadrado se aplana en un vector, convirtiéndose efectivamente en un token visual.
-
Proyección lineal: Estos parches aplanados pasan a través de una capa lineal entrenable para crear embeddings densos. Este paso mapea los valores de píxeles crudos en un espacio de alta dimensionalidad que el modelo puede procesar.
-
Codificación posicional: Dado que la arquitectura procesa secuencias en paralelo y carece de una comprensión inherente del orden o el espacio, se añaden positional encodings aprendibles a los embeddings de los parches. Esto permite que el modelo conserve información espacial sobre dónde pertenece cada parche en la imagen original.
-
Mecanismo de autoatención: La secuencia entra en el codificador de Transformer, donde la self-attention permite que cada parche interactúe con todos los demás parches simultáneamente. Esto permite que la red aprenda el contexto global, comprendiendo cómo un píxel en la esquina superior izquierda se relaciona con uno en la inferior derecha.
-
Cabezal de clasificación: Para tareas como la image classification, a menudo se antepone un "token de clase" especial a la secuencia. El estado de salida final de este token sirve como la representación agregada de la imagen, que luego se introduce en un clasificador, como un multilayer perceptron (MLP).
Vision Transformers vs. CNNs#
Aunque ambas arquitecturas tienen como objetivo comprender los datos visuales, difieren significativamente en su filosofía operativa. Las CNN poseen un fuerte "sesgo inductivo" conocido como invarianza de traducción, lo que significa que asumen inherentemente que las características locales (como los bordes y las texturas) son importantes independientemente de su posición. Esto hace que las CNN sean altamente eficientes en el uso de datos y eficaces en datasets más pequeños.
Por el contrario, los Vision Transformers tienen menos sesgo específico de las imágenes. Deben aprender las relaciones espaciales desde cero utilizando cantidades masivas de training data, como los datasets JFT-300M o ImageNet completo. Si bien esto hace que el entrenamiento sea más intensivo computacionalmente, permite que los ViT escalen notablemente bien; con suficientes datos y compute power, pueden superar a las CNN al capturar estructuras globales complejas que las convoluciones locales podrían pasar por alto.
Aplicaciones en el mundo real#
La capacidad de comprender el contexto global hace que los ViTs sean particularmente útiles para entornos complejos y de alto impacto.
- Análisis de imágenes médicas: En la healthcare AI, los ViT se utilizan para analizar exploraciones de alta resolución como resonancias magnéticas o diapositivas de histopatología. Por ejemplo, en la tumor detection, un ViT puede correlacionar anomalías texturales sutiles en el tejido con cambios estructurales más amplios en toda la diapositiva, identificando patrones malignos que el procesamiento local podría pasar por alto.
- Imágenes satelitales y teledetección: Los ViT sobresalen en el satellite image analysis donde las relaciones entre objetos abarcan grandes distancias. Por ejemplo, conectar un sitio de deforestación con un camino maderero lejano requiere comprender la "imagen general" de un paisaje, una tarea en la que la atención global de un ViT supera el campo receptivo limitado de las CNN estándar.
Utilizando Transformers con Ultralytics#
La librería ultralytics es compatible con arquitecturas basadas en Transformer, siendo la más destacada el RT-DETR (Real-Time Detection Transformer). Aunque el emblemático YOLO26 se prefiere a menudo por su equilibrio entre velocidad y precisión en dispositivos de borde, RT-DETR ofrece una alternativa potente para escenarios que priorizan el contexto global.
El siguiente ejemplo de Python demuestra cómo cargar un modelo preentrenado basado en Transformer y ejecutar inferencia:
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()Perspectivas de futuro#
La investigación evoluciona rápidamente para abordar el alto costo computacional de los ViT. Técnicas como FlashAttention están haciendo que estos modelos sean más rápidos y eficientes en el uso de memoria. Además, se están volviendo comunes las arquitecturas híbridas que combinan la eficiencia de las CNN con la atención de los Transformers. Para los equipos que buscan gestionar estos flujos de trabajo avanzados, la Ultralytics Platform ofrece un entorno unificado para anotar datos, entrenar modelos complejos a través de la nube y desplegarlos en diversos puntos finales.






