xxxxxxxxxx
38
let faceMesh;
let video;
let faces = []; // This array will hold 2D face mesh positions
let options = { maxFaces: 1, refineLandmarks: false, flipHorizontal: false };
function setup() {
createCanvas(640, 480);
video = createCapture(VIDEO);
video.size(640, 480);
video.hide();
fill(0, 255, 0);
noStroke();
// Initialize faceMesh after video is ready
faceMesh = ml5.faceMesh(video, modelLoaded);
}
function modelLoaded() {
console.log("FaceMesh Model Loaded!");
faceMesh.on("predict", gotFaces); // Start detection loop
}
function draw() {
image(video, 0, 0, width, height);
for (let i = 0; i < faces.length; i++) {
let face = faces[i];
for (let j = 0; j < face.keypoints.length; j++) {
let keypoint = face.keypoints[j];
circle(keypoint.x, keypoint.y, 3);
}
}
}
function gotFaces(results) {
faces = results; // Store detected faces
}