Попытка использовать данные из coco-ssd, чтобы нарисовать ограничивающую рамку - PullRequest
1 голос
/ 23 апреля 2020

Я недавно спрашивал о распознавании изображений и обнаружил, что JavaScript имел простой в использовании и удобный для новичков способ сделать это с помощью tenorflow. js. Мне удалось использовать примерный код для интересной модели, которую я нашел под названием coco-ssd. Он работает очень хорошо и возвращает данные для прогнозов (возвращает массив из четырех точек, охватывающих предмет) и все, но теперь у меня есть проблема с его использованием. Для целей, которые я хочу, я хотел бы иметь возможность рисовать ограничивающую рамку вокруг человека в кадре или, по крайней мере, знать координаты в пикселях исходного изображения (изменение размера было реальной проблемой). Я не знаю, что делать, потому что все учебники, которые я видел, используют элемент <canvas>. Когда я пытаюсь использовать это, холст никогда не отображается должным образом. Вот код (для удобства я переместил код из отдельного файла в теги скрипта):

<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"> </script>

<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/coco-ssd"> </script>
<!-- replace 'Lenin.jpg' with a local file in the same folder as this program -->
<img id="img" src="Lenin.jpg" crossorigin="anonymous"/>

<script>


  const img = document.getElementById('img');

  cocoSsd.load().then(model => {
    model.detect(img).then(predictions => {
      console.log('Predictions: ', predictions);
    });
  });
</script>

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 30 апреля 2020

Пожалуйста, ознакомьтесь с моим официальным руководством по началу работы с COCO-SSD, в котором показано, как это сделать как для отдельного изображения, так и для веб-камеры:

https://glitch.com/~tensorflow-js-object-detectionenter image description here

...