Heim  >  Artikel  >  Web-Frontend  >  Lernen Sie Gesichtserkennung und Stimmungsanalyse in JavaScript

Lernen Sie Gesichtserkennung und Stimmungsanalyse in JavaScript

PHPz
PHPzOriginal
2023-11-04 13:26:061287Durchsuche

Lernen Sie Gesichtserkennung und Stimmungsanalyse in JavaScript

Erlernen Sie Gesichtserkennung und Emotionsanalyse in JavaScript

Einführung:
Mit der rasanten Entwicklung der Computertechnologie wird die Technologie der künstlichen Intelligenz immer ausgereifter. Unter anderem werden Gesichtserkennungs- und Emotionsanalysetechnologien in verschiedenen Bereichen häufig eingesetzt. In diesem Artikel wird die Verwendung von JavaScript zur Gesichtserkennung und Emotionsanalyse vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Gesichtserkennung
Gesichtserkennung ist eine Technologie, die Gesichter aus Bildern oder Videos erkennt und erkennt. In JavaScript können Sie die Drittanbieterbibliothek Face-api.js verwenden, um die Gesichtserkennungsfunktion zu implementieren. Das Folgende ist ein Beispielcode, der die Gesichtserkennung und -erkennung aus Kamera-Videostreams implementiert:

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)
});

Im obigen Code wird zuerst das Modell von Face-api.js geladen und dann wird der Videostream durch Aufrufen von getUserMedia() abgerufen. Methode und ihr Wert wird dem Videoelement zugewiesen. Verwenden Sie im Ereignis-Listener für die Videowiedergabe die Methode „detektAllFaces()“, um alle Gesichter im Videostream zu erkennen, und zeichnen Sie Gesichtserkennungsrahmen und Gesichtsschlüsselpunkte mithilfe der Methoden „drawDetections()“ und „drawFaceLandmarks()“. Zeichnen Sie abschließend Gesichtsausdrücke mit der Methode drawFaceExpressions().

2. Emotionale Analyse
Bei der emotionalen Analyse geht es darum, den emotionalen Zustand einer Person durch die Analyse und Identifizierung von Gesichtsausdrücken zu bestimmen. In JavaScript können Sie auch die Face-api.js-Bibliothek verwenden, um Sentiment-Analysefunktionen zu implementieren. Das Folgende ist ein Beispielcode, der Gesichtsausdrücke aus Bildern erkennt und emotionale Ergebnisse ausgibt:

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));
}

Im obigen Code wird zuerst das Face-api.js-Modell geladen, und dann werden die Personen auf dem Bild durch discoverAllFaces() erkannt. Das Gesicht wird erkannt, und dann wird die Schlüsselpunktpositionierung des Gesichts durch die Methode withFaceLandmarks() ermittelt, und schließlich werden die Ausdrucksergebnisse durch die Methode withFaceExpressions() ermittelt. Verwenden Sie die Methode „reduce()“, um die Emotion mit der höchsten Wahrscheinlichkeit in den Ausdrucksergebnissen zu finden und auszugeben.

Fazit:
In diesem Artikel wird die Verwendung von JavaScript zur Implementierung von Gesichtserkennungs- und Emotionsanalysefunktionen vorgestellt und spezifische Codebeispiele bereitgestellt. Durch das Erlernen und Beherrschen dieser Technologien kann die Technologie der künstlichen Intelligenz in verschiedenen Bereichen eingesetzt werden, um den Benutzern bessere Erfahrungen und Dienste zu bieten. Wir hoffen, dass die Leser durch die Einführung und Codebeispiele dieses Artikels diese Technologien besser verstehen und anwenden und die Entwicklung weiterer Anwendungen für künstliche Intelligenz fördern können.

Das obige ist der detaillierte Inhalt vonLernen Sie Gesichtserkennung und Stimmungsanalyse in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn