Rumah > hujung hadapan web > tutorial css > Membina Kad Profil AR dengan Pengesanan Wajah Masa Nyata

Membina Kad Profil AR dengan Pengesanan Wajah Masa Nyata

Mary-Kate Olsen
Lepaskan: 2024-11-15 14:48:02
asal
265 orang telah melayarinya

Building a AR Profile Card with Real-Time Face Detection

Einführung

Stellen Sie sich eine interaktive 3D-Profilkarte vor, die Ihre Gesichtsbewegungen verfolgt und in Echtzeit reagiert – das ist die Essenz der 3D-AR-Profilkarte. Erstellt von P-R. Lopez, einem leitenden Entwickler mit Fachkenntnissen in JavaScript, React und Firebase, kombiniert diese Karte modernste Gesichtserkennungstechnologie mit einem schlanken, hochwertigen Design mit dynamischen Leuchteffekten, satten Farbverläufen und einem anspruchsvollen Layout. Es ist perfekt, um Benutzer auf persönlicher Ebene anzusprechen.

In diesem Tutorial erstellen wir diese interaktive Profilkarte mit HTML, CSS und JavaScript mit FaceMesh von TensorFlow für die Gesichtserkennung in Echtzeit. Diese Komponente ist ideal für professionelle Portfolios oder Anwendungen, die ein unvergessliches, interaktives Erlebnis erfordern. Wer sich für interaktivere Projekte interessiert, sollte sich Gladiators Battle nicht entgehen lassen – ein spannendes Gladiatoren-Kartenspiel, inspiriert vom antiken Rom, das fesselnde Strategie und visuell atemberaubendes Design vereint.

Lassen Sie uns mit der Erstellung dieser Profilkarte beginnen!

Schritt 1: Einrichten der HTML-Struktur
Unsere Profilkarte enthält einen Webcam-Feed zur Gesichtserkennung, Benutzerinformationen und Social-Media-Symbole.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>3D AR Profile Card with Face Detection</title>
  <link rel="stylesheet" href="styles.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
</head>
<body>
  <!-- Video for webcam stream -->
  <video>



<p>Key HTML Elements<br>
Webcam Video: Captures real-time video for face detection.<br>
Profile Card: Contains profile information, including name, location, experience, skills, and links to Gladiators Battle and social media.<br>
Social Icons: Link to GitHub, LinkedIn, and Twitter (or X), providing a fully interactive and connected profile.<br>
Step 2: Styling the Profile Card with CSS<br>
The CSS brings the 3D and AR effects to life, with gradients, glowing shadows, and animations for an eye-catching experience.</p>

<p>Body and Background<br>
The body uses a radial gradient to create a soft, dark background that complements the card’s glowing effects.<br>
</p>

<pre class="brush:php;toolbar:false">body {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  margin: 0;
  background: radial-gradient(circle at center, #2d2d2d, #1b1b1b);
  overflow: hidden;
  font-family: 'Arial', sans-serif;
}

/* Webcam */
#webcam {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  z-index: -1;
}
Salin selepas log masuk

Profilkartendesign
Die Profilkarte selbst nutzt Farbverlaufshintergründe, 3D-Transformationen und Schatteneffekte, um hervorzustechen.

.profile-card {
  position: relative;
  width: 370px;
  padding: 35px;
  border-radius: 25px;
  background: linear-gradient(145deg, #3d3d3d, #2a2a2a);
  box-shadow: 
    0 15px 25px rgba(0, 0, 0, 0.6),
    0 0 25px rgba(255, 215, 0, 0.3),
    inset 0 0 15px rgba(255, 255, 255, 0.1);
  transform-style: preserve-3d;
  transform: perspective(1000px);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  z-index: 1;
}

.profile-card:hover {
  box-shadow: 
    0 25px 50px rgba(0, 0, 0, 0.7),
    0 0 50px rgba(255, 215, 0, 0.7),
    inset 0 0 15px rgba(255, 255, 255, 0.2);
  transform: scale(1.03);
}
Salin selepas log masuk

Avatar- und Text-Styling
Der Avatar und der Text sind so gestaltet, dass sie zur erstklassigen Ästhetik der Karte passen, mit leuchtenden und kräftigen Effekten.

.profile-avatar {
  width: 130px;
  height: 130px;
  background: url('avatar.jpg') center/cover;
  border-radius: 50%;
  margin: 0 auto;
  box-shadow: 0px 0px 20px rgba(255, 255, 255, 0.4), 0px 0px 30px rgba(255, 215, 0, 0.5);
  transform: translateZ(70px);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}

.profile-name {
  font-size: 30px;
  text-align: center;
  color: #ffffff;
  margin-top: 20px;
  transform: translateZ(50px);
  background: linear-gradient(45deg, #ffd700, #ffa500, #ff4500);
  -webkit-background-clip: text;
  color: transparent;
  font-weight: bold;
  text-shadow: 0px 3px 5px rgba(0, 0, 0, 0.4);
}
Salin selepas log masuk

Schritt 3: Gesichtserkennung mit TensorFlow FaceMesh
Der JavaScript-Code verwendet das FaceMesh-Modell von TensorFlow, um Gesichter zu erkennen und das Profilbild dynamisch festzulegen. Dieser innovative Ansatz verleiht der Karte ein AR-Feeling.

Webcam- und Gesichtserkennungs-Setup
Die Funktion „setupCameraAndModel“ initialisiert den Webcam-Feed und lädt das FaceMesh-Modell, um mit der Gesichtsverfolgung zu beginnen.

const video = document.getElementById('webcam');
const profileAvatar = document.querySelector('.profile-avatar');

async function setupCameraAndModel() {
  const model = await facemesh.load();
  const stream = await navigator.mediaDevices.getUserMedia({
    video: { width: 640, height: 480 }
  });
  video.srcObject = stream;
  video.addEventListener('loadeddata', () => {
    detectFaceAndCapture(model, stream);
  });
}
Salin selepas log masuk

Gesichtserkennung und Avatar-Update
Die Funktion „DetectFaceAndCapture“ erfasst ein Foto, wenn ein Gesicht erkannt wird, und legt es als Hintergrund für den Profil-Avatar fest.

async function detectFaceAndCapture(model, stream) {
  const predictions = await model.estimateFaces(video);

  if (predictions.length > 0) {
    const canvas = document.createElement('canvas');
    canvas.width = video.videoWidth;
    canvas.height = video.videoHeight;
    const context = canvas.getContext('2d');
    context.drawImage(video, 0, 0, canvas.width, canvas.height);

    const imageDataUrl = canvas.toDataURL('image/png');
    profileAvatar.style.backgroundImage = `url(${imageDataUrl})`;

    stream.getTracks().forEach(track => track.stop());
    video.style.display = 'none';
  } else {
    requestAnimationFrame(() => detectFaceAndCapture(model, stream));
  }
}

// Initialize camera and model
setupCameraAndModel();
Salin selepas log masuk

Diese Methode verleiht der Profilkarte eine einzigartige Note, indem das Profilbild mithilfe der AR-Technologie dynamisch in Echtzeit festgelegt wird.

Fazit
Die Erstellung einer interaktiven 3D-AR-Profilkarte mit Echtzeit-Gesichtserkennung verleiht jeder privaten oder beruflichen Website ein modernes, erstklassiges Erscheinungsbild. Dieses Tutorial kombiniert CSS für 3D-Effekte und JavaScript für die dynamische Gesichtserkennung mit TensorFlow und demonstriert so einen leistungsstarken Ansatz zur Verbesserung der Benutzerinteraktion. Wenn Sie an innovativeren, immersiveren Projekten interessiert sind, sollten Sie sich Gladiators Battle nicht entgehen lassen – ein spannendes Gladiatoren-Kartenspiel, das historische Themen mit strategischem Gameplay verbindet. Entdecken Sie mehr auf GladiatorsBattle.com.

? Entdecken Sie mehr:

Terokai Pertempuran Gladiators: Melangkah ke dunia pahlawan purba dan pertempuran epik di https://gladiatorsbattle.com.
GitHub: Lihat contoh dan projek kod di https://github.com/HanGPIErr.
LinkedIn: Ikuti kemas kini di https://www.linkedin.com/in/pierre-romain-lopez/.
Twitter: Kekal berhubung di X di https://x.com/GladiatorsBT.
Artikel ini ialah pintu masuk anda untuk membina elemen web yang menakjubkan dan interaktif secara visual. Sertai kami sambil kami terus meneroka cara untuk menggabungkan teknologi canggih dengan reka bentuk intuitif dan berkualiti tinggi.

Atas ialah kandungan terperinci Membina Kad Profil AR dengan Pengesanan Wajah Masa Nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan