Xenova/yolov9-c

Xenova
Detección de objetos

Xenova / yolov9-c es un modelo de detección de objetos optimizado para ser compatible con Transformers.js utilizando pesos ONNX. Este modelo permite realizar detección de objetos en imágenes, identificando y clasificando múltiples tipos de objetos en una imagen de entrada.

Como usar

Uso (Transformers.js)

Si aún no lo has hecho, puedes instalar la biblioteca JavaScript Transformers.js desde NPM usando:

npm i @xenova/transformers

Ejemplo: Realizar detección de objetos con Xenova/yolov9-c.

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

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

// Cargar procesador
const processor = await AutoProcessor.from_pretrained('Xenova/yolov9-c');
// 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(`Found "${model.config.id2label[id]}" at [${bbox}] with score ${score.toFixed(2)}.`)
}
// Encontró "car" en [176.86, 335.53, 399.82, 418.13] con puntuación 0.94.
// Encontró "car" en [447.50, 378.46, 639.81, 477.57] con puntuación 0.93.
// Encontró "bicycle" en [351.90, 527.82, 463.50, 587.76] con puntuación 0.90.
// Encontró "person" en [472.44, 430.52, 533.74, 533.30] con puntuación 0.89.
// Encontró "bicycle" en [448.97, 477.34, 555.42, 537.63] con puntuación 0.88.
// Encontró "bicycle" en [0.59, 518.69, 109.53, 584.31] con puntuación 0.88.
// Encontró "traffic light" en [208.55, 55.80, 233.99, 101.63] con puntuación 0.86.
// Encontró "person" en [550.75, 260.98, 591.90, 331.24] con puntuación 0.86.
...

Funcionalidades

Detección de objetos
Compatibilidad con Transformers.js
Pesos ONNX
Permite realizar inferencias en JavaScript

Casos de uso

Detección de automóviles en imágenes de calles
Identificación de bicicletas y personas en áreas urbanas
Detección de semáforos y otros objetos en imágenes