Transformation von Web-Erlebnissen mit MediaPipe und JavaScript: Ein umfassender Einblick

In der dynamischen Landschaft der Webentwicklung entsteht Innovation oft aus der harmonischen Integration modernster Technologien. Eine solche Synergie besteht zwischen JavaScript und dem MediaPipe-Framework von Google, das eine Möglichkeit bietet, Weberlebnisse durch Computervision und maschinelles Lernen in Echtzeit zu revolutionieren. In dieser eingehenden Untersuchung werden wir uns in den Bereichen JavaScript und MediaPipe zurechtfinden und ihr kombiniertes Potenzial anhand praktischer Codebeispiele, Anwendungsfälle und schrittweiser Anleitungen enthüllen.
Bevor wir uns mit praktischen Implementierungen befassen, sollten wir uns mit dem vielseitigen Toolkit vertraut machen, das MediaPipe bietet. MediaPipe, entwickelt von Google, stattet Entwickler mit vorgefertigten Modellen für maschinelles Lernen für Aufgaben wie Gesichtserkennung, Posenschätzung und mehr aus. Durch die nahtlose Integration dieser Modelle in JavaScript öffnen wir Türen zu einer Vielzahl kreativer Anwendungen.
Um sich auf diese immersive Reise zu begeben, ist ein solides Verständnis der JavaScript-Grundlagen und der Webentwicklung unerlässlich. Stellen Sie sicher, dass Sie einen Code-Editor, Node.js, und ein Gerät mit einer Webcam zum Experimentieren haben.
Stellen Sie sich eine Webanwendung vor, die die Gesichter der Benutzer mit interaktiven und unterhaltsamen Augmented-Reality-Filtern (AR) verschönert. Dieses reale Szenario wird uns als Leinwand für Erkundungen dienen.
mkdir ar-filters-appcd ar-filters-appnpm init -y
npm installiere @mediapipe /face_mesh @mediapipe /camera_utils @mediapipe /drawing_utils
ar-filters-app/√── index.html√── index.html√── js/│ √── main.js│ ── filters.js√── styles/│ 58-── main.css√── assets/│ √── assets/│ √── filters/│ │ √── glasses.png│ bow.gif~── bilder/ %── sample.jpg
In main.js, initialisieren Sie das Face-Mesh-Modul und die Kamera von MediaPipe:
importiere {Camera} von "@mediapipe /camera_utils „; importiere {FaceMesh} aus" @mediapipe /face_mesh „; importiere {drawConnectors, drawLandmarks} aus" @mediapipe /drawing_utils „; const video = document.querySelector („video“); const canvas = document.querySelector („canvas“); const context = canvas.getContext („2d“); const FaceMesh = neues FaceMesh ({locateFile: (Datei) => `.. /node_modules/ @mediapipe /face_mesh/ $ {file} `,}); const camera = new Camera (video, {onFrame: async () => {await faceMesh.send ({image: video}); drawFaceMeshResults ();}, facingMode: „user“, Breite: 640, Höhe: 480,}); camera.start (); Funktion drawFaceMesh/ Results () {//Implementieren Sie hier das Face-Mesh-Ergebnis-Rendering}
In filters.js, wenden Sie AR-Filter auf die erkannten Gesichtsmarkierungen an:
const filterCanvas = document.createElement („canvas“); const filterContext = filterCanvas.getContext („2d“); const glassesImage = document.getElementById („glasses“); const crownImage = document.getElementById („crown“); FaceMesh.onResults ((results) => {//Gesichtsmarkierungen aus Ergebnissen extrahieren const landmarks = results.multifacelELandmarks;//Lösche die Filterfläche filterContext.clearRect (0, 0, filterCanvas.width, filterCanvas.Height);//Filter auf Landmarken anwenden landmarks.forEach ((landmark) => {const noseBridge = landmark [5]; const leftEye = landmark [159]; const rightEye = landmark [386];//Brillenfilter anwenden const glassesX = LeftEye.X; const glassesY = NoseBridge.Y - 10; filterContext.drawImage (glassesImage, glassesX, glassesY, 100, 40);//Kronenfilter anwenden const crownX = rightEye.X - 50; const crownY = rightEye.Y - 100; filtercontext.drawImage (crownImage, crownX, crownY, 100, 100);});//Zeichne gefilterte Bilder auf die Hauptleinwand context.drawImage (filterCanvas, 0, 0, canvas.width, canvas.height);});
In main.css, stylen Sie die Video- und Canvas-Elemente:
body {margin: 0; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #f0f0f0;} video, canvas {border: 2px solid #333; max-width: 100%;}
In index.html, bring alles zusammen:
<html lang="en"><head><title><DOCTYPE html>AR-Filter-App <body><video autoplay playsinline><canvas><script type="module" src="js/main.js"><script type="module" src="js/filters.js"></script></script></canvas></video></body></title></head></html><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="styles/main.css">
Diese umfassende Untersuchung hat die starke Verschmelzung von JavaScript und MediaPipe enthüllt, wie unsere Augmented-Reality-Filteranwendung zeigt. Indem Sie in die bereitgestellten Schritte, Codebeispiele und praktischen Anwendungsfälle eintauchen, haben Sie sich auf eine Reise begeben, die über AR-Filter hinausgeht — sie erstreckt sich auch auf die Neugestaltung von Weberlebnissen. Denken Sie bei der weiteren Nutzung der Leistungsfähigkeit von MediaPipe und JavaScript daran, dass Innovation keine Grenzen kennt. Viel Spaß beim Programmieren!
Empfohlene Lektüre für Sie
Neue Blogbeiträge, die Sie interessieren könnten
Jakub Bílý
Leiter/in Geschäftsentwicklung