FocalNet (modelo de tamaño pequeño)

microsoft
Clasificación de imagen

FocalNet es un modelo entrenado en ImageNet-1k con una resolución de 224x224. Fue introducido en el artículo 'Focal Modulation Networks' por Yang et al. y fue liberado por primera vez en este repositorio. Focal Modulation Networks son una alternativa a los Transformadores de Visión, donde la auto-atención (SA) es completamente reemplazada por un mecanismo de modulación focal para modelar interacciones de tokens en visión. La modulación focal comprende tres componentes: (i) contextualización jerárquica, implementada usando una pila de capas convolucionales de profundidad separada, para codificar contextos visuales de rangos cortos a largos, (ii) agregación controlada para reunir de manera selectiva contextos para cada token de consulta basado en su contenido, y (iii) modulación o transformación afín elemento por elemento para inyectar el contexto agregado en la consulta. Experimentos extensivos muestran que FocalNets supera a sus contrapartes SA de última generación (por ejemplo, Vision Transformers, Swin y Focal Transformers) con costos computacionales similares en tareas de clasificación de imágenes, detección de objetos y segmentación.

Como usar

Aquí se explica cómo usar este modelo para clasificar una imagen del conjunto de datos COCO 2017 en una de las 1,000 clases de ImageNet:

from transformers import FocalNetImageProcessor, FocalNetForImageClassification
import torch
from datasets import load_dataset

dataset = load_dataset("huggingface/cats-image")
image = dataset["test"]["image"][0]

preprocessor = FocalNetImageProcessor.from_pretrained("microsoft/focalnet-tiny")
model = FocalNetForImageClassification.from_pretrained("microsoft/focalnet-tiny")

inputs = preprocessor(image, return_tensors="pt")

with torch.no_grad():
    logits = model(**inputs).logits

# el modelo predice una de las 1000 clases de ImageNet
predicted_label = logits.argmax(-1).item()
print(model.config.id2label[predicted_label])

Para más ejemplos de código, consulte la documentación.

Funcionalidades

Contextualización jerárquica con capas convolucionales de profundidad separada
Agregación controlada para reunir contextos según el contenido del token de consulta
Modulación o transformación afín para inyectar el contexto en la consulta
Outperforms state-of-the-art comparables with similar computational costs

Casos de uso

Clasificación de imágenes
Detección de objetos
Segmentación