【发布时间】:2021-01-30 10:28:55
【问题描述】:
import React, { useRef, useState, useEffect } from 'react';
import * as faceapi from 'face-api.js';
function App() {
const videoRef = useRef(null);
const canvasRef = useRef(null);
useEffect(() => {
const loadModels = async () => {
try {
const MODEL_URL = '/models'
Promise.all([
faceapi.nets.tinyFaceDetector.loadFromUri(MODEL_URL),
faceapi.nets.faceLandmark68Net.loadFromUri(MODEL_URL),
faceapi.nets.faceRecognitionNet.loadFromUri(MODEL_URL),
faceapi.nets.faceExpressionNet.loadFromUri(MODEL_URL),
]).then(startVideo())
} catch (error) {
console.error(error)
}
}
loadModels();
}, [])
const startVideo = async () => {
try {
let stream = null;
stream = await navigator.mediaDevices.getUserMedia({ audio: true, video: true });
videoRef.current.srcObject = stream;
} catch (error) {
console.error(error)
}
}
const handleVideoOnPlay = () => {
setInterval(async () => {
const detections = await faceapi.
detectAllFaces(videoRef.current, new faceapi.TinyFaceDetectorOptions())
.withFaceLandmarks()
.withFaceExpressions()
}, 100)
}
return (
<div className="App">
<video ref={videoRef} autoPlay muted onPlay={handleVideoOnPlay} height={640} width={640} />
<canvas ref={canvasRef} />
</div>
);
}
export default App;
大家好,这是我的代码,我按照教程https://www.youtube.com/watch?v=EejpxMtDg8M
有谁知道问题出在哪里?我按照以下步骤进行了所有操作,但我不知道出了什么问题,非常感谢您的帮助!
【问题讨论】:
标签: javascript reactjs tensorflow.js face-api