Xenova/gelan-e
El modelo Xenova/gelan-e es un modelo de detección de objetos utilizando Transformers.js y pesos ONNX. Está diseñado para ser compatible con la biblioteca Transformers.js de JavaScript, haciéndolo ideal para aplicaciones web que requieren capacidades avanzadas de detección de objetos.
Como usar
Uso (Transformers.js)
Si no lo has hecho ya, puedes instalar la biblioteca de JavaScript Transformers.js desde NPM usando:
npm i @xenova/transformers
Ejemplo: Realiza la detección de objetos con Xenova/gelan-e.
import { AutoModel, AutoProcessor, RawImage } from '@xenova/transformers';
// Cargar modelo
const model = await AutoModel.from_pretrained('Xenova/gelan-e', {
// quantized: false, // (Opcional) Usar la versión no cuantizada.
})
// Cargar procesador
const processor = await AutoProcessor.from_pretrained('Xenova/gelan-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(`Found "${model.config.id2label[id]}" at [${bbox}] with score ${score.toFixed(2)}.`)
}
// Found "car" at [177.60, 337.36, 398.55, 416.89] with score 0.93.
// Found "car" at [447.15, 378.75, 639.80, 477.55] with score 0.93.
// Found "bicycle" at [1.58, 518.34, 109.99, 584.37] with score 0.90.
// Found "person" at [551.19, 261.01, 591.45, 330.76] with score 0.89.
// Found "bicycle" at [449.09, 477.33, 555.91, 537.40] with score 0.89.
// Found "bicycle" at [352.70, 528.23, 463.36, 588.13] with score 0.88.
// Found "traffic light" at [376.77, 65.71, 401.59, 111.02] with score 0.86.
// Found "traffic light" at [208.46, 55.44, 233.45, 101.43] with score 0.85.
Demo
¡Pruébalo aquí!
Nota: Tener un repositorio separado para pesos ONNX está pensado como una solución temporal hasta que WebML gane más tracción. Si deseas hacer tus modelos compatibles con la web, te recomendamos convertir a ONNX usando 🤗 Optimum y estructurando tu repositorio de esta manera (con pesos ONNX ubicados en una subcarpeta llamada "onnx").
Funcionalidades
- Detección de objetos
- Compatibilidad con Transformers.js
- Pesos ONNX
Casos de uso
- Detección de objetos en imágenes para aplicaciones web
- Reconocimiento de diferentes tipos de objetos en tiempo real
- Aplicaciones de vigilancia y seguridad
- Análisis de tráfico y vehículos