Maison > développement back-end > Tutoriel Python > Exploiter la détection d'objets en temps réel dans le navigateur avec TensorFlow.js et COCO-SSD

Exploiter la détection d'objets en temps réel dans le navigateur avec TensorFlow.js et COCO-SSD

王林
Libérer: 2024-07-25 12:59:13
original
1048 Les gens l'ont consulté

Harnessing Real-Time Object Detection in the Browser with TensorFlow.js and COCO-SSD

Introduction

Ces dernières années, le domaine de l'apprentissage automatique a connu des progrès remarquables, notamment en apportant des modèles puissants aux applications Web. L'une de ces avancées est la possibilité d'effectuer une détection d'objets en temps réel directement dans un navigateur Web, grâce à des technologies telles que TensorFlow.js et des modèles tels que COCO-SSD. Cet article explore comment les développeurs peuvent exploiter ces outils pour créer des applications interactives qui détectent les objets dans les flux de webcam en direct, les images téléchargées ou les vidéos, le tout sans nécessiter de traitement côté serveur.

Comprendre TensorFlow.js et COCO-SSD

TensorFlow.js est une bibliothèque JavaScript développée par Google qui permet aux développeurs d'exécuter des modèles d'apprentissage automatique directement dans le navigateur. Il fournit un moyen de déployer des modèles pré-entraînés ou d'en former de nouveaux à l'aide d'API JavaScript, le rendant accessible et facile à intégrer aux applications Web. COCO-SSD (Common Objects in Context - Single Shot MultiBox Detector) est un modèle pré-entraîné populaire pour la détection d'objets. Il est optimisé pour détecter une grande variété d'objets en temps réel, ce qui le rend adapté aux applications interactives.

Configuration de l'environnement

Pour commencer, les développeurs doivent configurer leur environnement de développement. Cela implique généralement :

  • Inclure TensorFlow.js et COCO-SSD dans le document HTML à l'aide de balises de script :
  <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest"></script>
  <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/coco-ssd@latest"></script>
Copier après la connexion
  • Création d'une structure HTML pour gérer les éléments de l'interface utilisateur tels que la saisie vidéo, le téléchargement d'images et les boutons de contrôle.

Création de l'application

1. Gestion des entrées utilisateur

L'application permet aux utilisateurs de choisir entre différents types de saisie :

  • Webcam : capture directement le flux vidéo en direct de la webcam de l'utilisateur.
  • Image : permet aux utilisateurs de télécharger un fichier image depuis leur appareil.
  • Vidéo : permet aux utilisateurs de télécharger un fichier vidéo pour la détection d'objets.
<div id="inputSelection">
    <label><input type="radio" name="inputType" value="webcam" checked> Webcam</label>
    <label><input type="radio" name="inputType" value="image"> Image</label>
    <label><input type="radio" name="inputType" value="video"> Video</label>
</div>
<input type="file" id="imageInput" accept="image/*" style="display:none;">
<input type="file" id="videoInput" accept="video/*" style="display:none;">
Copier après la connexion

2. Affichage des entrées et des résultats

L'application affiche dynamiquement l'entrée sélectionnée (vidéo ou image) et les résultats de détection à l'aide d'éléments HTML5 tels que

<div id="videoContainer">
    <video id="videoElement" autoplay playsinline></video>
    <div id="infoBox" class="infoBox">
        <p><strong>Detected Object:</strong> <span id="objectLabel"></span></p>
        <p><strong>Confidence:</strong> <span id="confidenceScore"></span></p>
    </div>
</div>
<img id="imageDisplay">
<video id="videoDisplay" controls loop></video>
<canvas id="outputCanvas"></canvas>
Copier après la connexion

3. Implémentation de la logique de détection d'objets

JavaScript (script.js) gère la logique de détection d'objets à l'aide de TensorFlow.js et COCO-SSD. Cela implique :

  • Initialiser le modèle et le charger de manière asynchrone :
  async function loadModel() {
      const model = await cocoSsd.load();
      return model;
  }
Copier après la connexion
  • Effectuer la détection sur l'entrée sélectionnée (vidéo ou image) et mettre à jour l'interface utilisateur avec les résultats :
  async function detectObjects(input) {
      const model = await loadModel();
      const predictions = await model.detect(input);
      // Update UI with predictions
  }
Copier après la connexion
  • Gérer différents types d'entrées (webcam, image, vidéo) et déclencher la détection en fonction des actions de l'utilisateur.

4. Interaction et contrôles utilisateur

L'application comprend des boutons pour contrôler la détection d'objets :

  • Démarrer la détection : lance la détection d'objet en fonction de l'entrée sélectionnée.
  • Arrêter la détection : met en pause ou arrête le processus de détection.
  • Capturer une capture d'écran : permet aux utilisateurs de capturer une capture d'écran du résultat de détection actuel.
<div id="controls">
    <button id="startButton">Start Detection</button>
    <button id="stopButton" disabled>Stop Detection</button>
    <button id="captureButton" disabled>Capture Screenshot</button>
</div>
Copier après la connexion

5. Améliorer l'expérience utilisateur

Pour offrir une expérience transparente, l'application comprend un indicateur de chargement (

Loading...
) pour avertir les utilisateurs lorsque TensorFlow.js et le modèle COCO-SSD sont en cours de chargement.

Conclusion

En conclusion, TensorFlow.js combiné à COCO-SSD ouvre des possibilités intéressantes pour la détection d'objets en temps réel directement dans les navigateurs Web. Cet article a démontré les composants et les étapes fondamentaux impliqués dans la création d'une telle application, de la configuration de l'environnement à la mise en œuvre de la logique de détection d'objets et à l'amélioration de l'interaction utilisateur. Les développeurs peuvent désormais exploiter ces technologies pour créer des applications Web interactives et réactives qui repoussent les limites de ce qui est possible avec l'apprentissage automatique sur le Web. À mesure que ces technologies continuent d’évoluer, l’avenir semble prometteur pour des expériences Web encore plus sophistiquées et accessibles basées sur l’IA.

Voici le dépôt Github

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal