以下のデポジトリーを用いて、感情認識の情報を用いたサービスを制作しています。
https://github.com/WebDevSimplified/Face-Detection-JavaScript
https://www.youtube.com/watch?v=CVClHLwv-4I&t=496s
0.1秒毎に情報を取得し、感情が数値としてcanvas上に表示されていますが、
これをhtml上のdiv#expression_data内にも表示させたいと考えています。
以下の処理の中に、上記divに対して随時innerHTMLさせる処理を試してみましたが、動かず、他に方法があれば教えていただけますと幸いです。
js
1video.addEventListener('play', () => { 2 const canvas = faceapi.createCanvasFromMedia(video) 3 document.body.append(canvas) 4 const displaySize = { width: video.width, height: video.height } 5 faceapi.matchDimensions(canvas, displaySize) 6 setInterval(async () => { 7 const detections = await faceapi.detectAllFaces(video, new faceapi.TinyFaceDetectorOptions()).withFaceLandmarks().withFaceExpressions() 8 console.log(detections) 9 const resizedDetections = faceapi.resizeResults(detections, displaySize) 10 canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height) 11 faceapi.draw.drawDetections(canvas, resizedDetections) 12 faceapi.draw.drawFaceLandmarks(canvas, resizedDetections) 13 faceapi.draw.drawFaceExpressions(canvas, resizedDetections) 14 }, 100) 15}) 16
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 7 <title>Document</title> 8 <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 9 <script defer src="js/face-api.min.js"></script> 10 <script defer src="js/script.js"></script> 11 <link rel="stylesheet" href="css/face.css"> 12 <style> 13 body { 14 margin: 0; 15 padding: 0; 16 width: 100vw; 17 height: 100vh; 18 display: flex; 19 justify-content: center; 20 align-items: center; 21 } 22 23 canvas { 24 position: absolute; 25 } 26 </style> 27</head> 28<body> 29 30 <video id="video" width="720" height="560" autoplay muted></video> 31 32 <div class="expression_data" id="expression_data"> 33 </div> 34 35</body> 36</html>
あなたの回答
tips
プレビュー