有三个js库可以是吸纳
face-api
tracking.js
tensorflow.js,注意由于是google的服务,可能你的网络无法直连,请确保你的网络能链接谷歌
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Face Detection</title> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/blazeface"></script> </head> <body> <video id="video" width="720" height="560" autoplay></video> <script> const video = document.getElementById('video'); navigator.mediaDevices.getUserMedia({ video: {} }) .then(stream => { video.srcObject = stream; }) .catch(err => console.error(err)); async function run() { const model = await blazeface.load(); video.addEventListener('play', async () => { const canvas = document.createElement('canvas'); document.body.append(canvas); canvas.width = video.width; canvas.height = video.height; const ctx = canvas.getContext('2d'); setInterval(async () => { const predictions = await model.estimateFaces(video, false); ctx.clearRect(0, 0, canvas.width, canvas.height); predictions.forEach(prediction => { ctx.beginPath(); ctx.lineWidth = "4"; ctx.strokeStyle = "blue"; ctx.rect( prediction.topLeft[0], prediction.topLeft[1], prediction.bottomRight[0] - prediction.topLeft[0], prediction.bottomRight[1] - prediction.topLeft[1] ); ctx.stroke(); }); }, 100); }); } run(); </script> </body> </html>
网友回复