This is my code of face detection with a JavaScript API. I want to add a condition when I detect more than two faces, then do something. I want to create an extension on Chrome Browser, but I don't how can I add this condition in my code
const video = document.getElementById("video");
let predictedAges = [];
Promise.all([
faceapi.nets.tinyFaceDetector.loadFromUri("/models"),
faceapi.nets.faceLandmark68Net.loadFromUri("/models"),
faceapi.nets.faceRecognitionNet.loadFromUri("/models"),
faceapi.nets.faceExpressionNet.loadFromUri("/models"),
faceapi.nets.ageGenderNet.loadFromUri("/models")
]).then(startVideo);
function startVideo() {
navigator.getUserMedia(
{ video: {} },
stream => (video.srcObject = stream),
err => console.error(err)
);
}
video.addEventListener("playing", () => {
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()
.withAgeAndGender();
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);
const age = resizedDetections[0].age;
const interpolatedAge = interpolateAgePredictions(age);
const bottomRight = {
x: resizedDetections[0].detection.box.bottomRight.x - 50,
y: resizedDetections[0].detection.box.bottomRight.y
};
new faceapi.draw.DrawTextField(
[`${faceapi.utils.round(interpolatedAge, 0)} years`],
bottomRight
).draw(canvas);
}, 100);
});
function interpolateAgePredictions(age) {
predictedAges = [age].concat(predictedAges).slice(0, 30);
const avgPredictedAge =
predictedAges.reduce((total, a) => total + a) / predictedAges.length;
return avgPredictedAge;
}