Spaces:
Running
Running
Update index.js
Browse files
index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
import {
|
| 2 |
|
| 3 |
// Since we will download the model from the Hugging Face Hub, we can skip the local model check
|
| 4 |
env.allowLocalModels = false;
|
|
@@ -13,7 +13,10 @@ const EXAMPLE_URL = 'https://huggingface.co/datasets/Xenova/transformers.js-docs
|
|
| 13 |
|
| 14 |
// Create a new object detection pipeline
|
| 15 |
status.textContent = 'Loading model...';
|
| 16 |
-
const
|
|
|
|
|
|
|
|
|
|
| 17 |
status.textContent = 'Ready';
|
| 18 |
|
| 19 |
example.addEventListener('click', (e) => {
|
|
@@ -42,18 +45,19 @@ async function detect(img) {
|
|
| 42 |
imageContainer.style.backgroundImage = `url(${img})`;
|
| 43 |
|
| 44 |
status.textContent = 'Analysing...';
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
});
|
|
|
|
| 49 |
status.textContent = '';
|
| 50 |
-
|
| 51 |
}
|
| 52 |
|
| 53 |
// Render a bounding box and label on the image
|
| 54 |
-
function renderBox(
|
| 55 |
-
|
| 56 |
-
|
| 57 |
// Generate a random color for the box
|
| 58 |
const color = '#' + Math.floor(Math.random() * 0xFFFFFF).toString(16).padStart(6, 0);
|
| 59 |
|
|
|
|
| 1 |
+
import { env, AutoProcessor, AutoModel } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.15.1';
|
| 2 |
|
| 3 |
// Since we will download the model from the Hugging Face Hub, we can skip the local model check
|
| 4 |
env.allowLocalModels = false;
|
|
|
|
| 13 |
|
| 14 |
// Create a new object detection pipeline
|
| 15 |
status.textContent = 'Loading model...';
|
| 16 |
+
const processor = await AutoProcessor.from_pretrained('Xenova/yolov9-c');
|
| 17 |
+
const model = await AutoModel.from_pretrained('Xenova/yolov9-c', {
|
| 18 |
+
quantized: false,
|
| 19 |
+
});
|
| 20 |
status.textContent = 'Ready';
|
| 21 |
|
| 22 |
example.addEventListener('click', (e) => {
|
|
|
|
| 45 |
imageContainer.style.backgroundImage = `url(${img})`;
|
| 46 |
|
| 47 |
status.textContent = 'Analysing...';
|
| 48 |
+
|
| 49 |
+
const { pixel_values } = await processor(image);
|
| 50 |
+
|
| 51 |
+
const { outputs } = await model({images: pixel_values});
|
| 52 |
+
|
| 53 |
status.textContent = '';
|
| 54 |
+
outputs.tolist().forEach(renderBox);
|
| 55 |
}
|
| 56 |
|
| 57 |
// Render a bounding box and label on the image
|
| 58 |
+
function renderBox([xmin, ymin, xmax, ymax, score, label]) {
|
| 59 |
+
console.log([xmin, ymin, xmax, ymax, score, label])
|
| 60 |
+
return;
|
| 61 |
// Generate a random color for the box
|
| 62 |
const color = '#' + Math.floor(Math.random() * 0xFFFFFF).toString(16).padStart(6, 0);
|
| 63 |
|