Xenova/yolov9-e

Xenova
Detección de objetos

Modelo de detección de objetos basado en YOLOv9 con pesos ONNX para ser compatible con Transformers.js. Este modelo ofrece una solución temporal hasta que WebML gane más tracción y permite la detección de objetos en imágenes utilizando la biblioteca Transformers.js.

Como usar

import { AutoModel, AutoProcessor, RawImage } from '@xenova/transformers';

// Cargar modelo
const model = await AutoModel.from_pretrained('Xenova/yolov9-e', {
    // quantized: false,    // (Opcional) Usar versión no cuantizada.
});

// Cargar procesador
const processor = await AutoProcessor.from_pretrained('Xenova/yolov9-e');
// processor.feature_extractor.do_resize = false;                   // (Opcional) Desactivar redimensionamiento
// processor.feature_extractor.size = { width: 128, height: 128 };  // (Opcional) Actualizar valor de redimensionamiento

// Leer imagen y ejecutar procesador
const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/city-streets.jpg';
const image = await RawImage.read(url);
const { pixel_values } = await processor(image);

// Ejecutar detección de objetos
const { outputs } = await model({ images: pixel_values });
const predictions = outputs.tolist();

for (const [xmin, ymin, xmax, ymax, score, id] of predictions) {
    const bbox = [xmin, ymin, xmax, ymax].map(x => x.toFixed(2)).join(', ');
    console.log(`Se encontró "${model.config.id2label[id]}" en [${bbox}] con una puntuación de ${score.toFixed(2)}.`);
}
// Se encontró "auto" en [179.43, 337.57, 399.15, 418.16] con una puntuación de 0.94.
// Se encontró "auto" en [447.38, 378.70, 640.22, 477.43] con una puntuación de 0.93.
// Se encontró "bicicleta" en [352.49, 528.11, 463.47, 588.33] con una puntuación de 0.90.
// Se encontró "bicicleta" en [0.82, 519.37, 110.09, 584.06] con una puntuación de 0.89.
// Se encontró "bicicleta" en [448.96, 476.38, 556.01, 538.31] con una puntuación de 0.89.
// Se encontró "persona" en [550.09, 261.24, 592.19, 331.37] con una puntuación de 0.88.
// Se encontró "persona" en [472.53, 430.68, 534.50, 532.82] con una puntuación de 0.87.
// Se encontró "persona" en [393.59, 481.02, 442.97, 587.68] con una puntuación de 0.85.
...

Funcionalidades

Detección de objetos
Transformers.js
Pesos ONNX
Compatible con JavaScript

Casos de uso

Detección de objetos en imágenes
Implementación de modelos ONNX en aplicaciones web
Pruebas de detección de objetos utilizando Transformers.js