Maison  >  Article  >  interface Web  >  Apprenez la reconnaissance faciale et l'analyse des sentiments en JavaScript

Apprenez la reconnaissance faciale et l'analyse des sentiments en JavaScript

PHPz
PHPzoriginal
2023-11-04 13:26:061290parcourir

Apprenez la reconnaissance faciale et lanalyse des sentiments en JavaScript

Apprenez la reconnaissance faciale et l'analyse des émotions en JavaScript

Introduction :
Avec le développement rapide de la technologie informatique, la technologie de l'intelligence artificielle devient de plus en plus mature. Parmi elles, les technologies de reconnaissance faciale et d’analyse des émotions sont largement utilisées dans divers domaines. Cet article explique comment utiliser JavaScript pour la reconnaissance faciale et l'analyse des émotions, et fournit des exemples de code spécifiques.

1. Reconnaissance faciale
La reconnaissance faciale est une technologie qui détecte et reconnaît les visages à partir d'images ou de vidéos. En JavaScript, vous pouvez utiliser la bibliothèque tierce Face-api.js pour implémenter la fonction de reconnaissance faciale. Voici un exemple de code qui implémente la détection et la reconnaissance des visages à partir des flux vidéo de la caméra :

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

Promise.all([
  faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
  faceapi.nets.faceLandmark68Net.loadFromUri('/models'),
  faceapi.nets.faceRecognitionNet.loadFromUri('/models'),
  faceapi.nets.faceExpressionNet.loadFromUri('/models')
]).then(startVideo);

function startVideo() {
  navigator.getUserMedia(
    { video: {} },
    stream => video.srcObject = stream,
    err => console.error(err)
  )
}

video.addEventListener('play', () => {
  const canvas = faceapi.createCanvasFromMedia(video);
  document.body.append(canvas);
  const displaySize = { width: video.width, height: video.height };
  faceapi.matchDimensions(canvas, displaySize);
  setInterval(async () => {
    const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions())
      .withFaceLandmarks()
      .withFaceExpressions();
    const resizedDetections = faceapi.resizeResults(detections, displaySize);
    canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
    faceapi.draw.drawDetections(canvas, resizedDetections);
    faceapi.draw.drawFaceLandmarks(canvas, resizedDetections);
    faceapi.draw.drawFaceExpressions(canvas, resizedDetections);
  }, 100)
});

Dans le code ci-dessus, le modèle de Face-api.js est d'abord chargé, puis le flux vidéo est obtenu en appelant getUserMedia() méthode et sa valeur est attribuée à l’élément vidéo. Dans l'écouteur d'événements de lecture vidéo, utilisez la méthode detectAllFaces() pour détecter tous les visages dans le flux vidéo, et dessinez des images de détection de visage et des points clés du visage via les méthodes drawDetections() et drawFaceLandmarks(). Enfin, dessinez des expressions faciales via la méthode drawFaceExpressions().

2. Analyse émotionnelle
L'analyse émotionnelle consiste à déterminer l'état émotionnel d'une personne en analysant et en identifiant les expressions faciales. En JavaScript, vous pouvez également utiliser la bibliothèque Face-api.js pour implémenter des fonctions d'analyse des sentiments. Ce qui suit est un exemple de code qui reconnaît les expressions faciales des images et génère des résultats émotionnels :

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

Promise.all([
  faceapi.nets.tinyFaceDetector.loadFromUri('/models'),
  faceapi.nets.faceLandmark68Net.loadFromUri('/models'),
  faceapi.nets.faceRecognitionNet.loadFromUri('/models'),
  faceapi.nets.faceExpressionNet.loadFromUri('/models')
]).then(startAnalysis);

function startAnalysis() {
  faceapi.detectAllFaces(img)
    .withFaceLandmarks()
    .withFaceExpressions()
    .then(result => {
      if (result.length > 0) {
        const expressions = result[0].expressions;
        const emotion = Object.keys(expressions).reduce((a, b) => expressions[a] > expressions[b] ? a : b);
        console.log(`Detected emotion: ${emotion}`);
      } else {
        console.log("No faces detected");
      }
    })
    .catch(err => console.error(err));
}

Dans le code ci-dessus, le modèle Face-api.js est d'abord chargé, puis les personnes sur l'image sont détectées via la méthode detectorAllFaces(). Le visage est détecté, puis le positionnement du point clé du visage est obtenu via la méthode withFaceLandmarks(), et enfin les résultats de l'expression sont obtenus via la méthode withFaceExpressions(). Utilisez la méthode réduire() pour trouver l’émotion avec la probabilité la plus élevée dans les résultats de l’expression et la générer.

Conclusion :
Cet article explique comment utiliser JavaScript pour implémenter des fonctions de reconnaissance faciale et d'analyse des émotions, et fournit des exemples de code spécifiques. En apprenant et en maîtrisant ces technologies, la technologie de l’intelligence artificielle peut être appliquée dans divers domaines pour offrir de meilleures expériences et services aux utilisateurs. Nous espérons que grâce à l'introduction et aux exemples de code de cet article, les lecteurs pourront mieux comprendre et appliquer ces technologies et promouvoir le développement d'un plus grand nombre d'applications d'intelligence artificielle.

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!

Déclaration:
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