face-api |预期媒体类型为 HTMLImageElement |HTMLCanvasElement

问题描述

function setFilters(){
  const video = document.getElementById('plugins')
  console.log('STARTING')

      faceapi.nets.tinyFaceDetector.loadFromUri("/html/models"),faceapi.nets.faceLandmark68Net.loadFromUri("/html/models"),faceapi.nets.faceRecognitionNet.loadFromUri("/html/models"),faceapi.nets.faceExpressionNet.loadFromUri("/html/models"),console.log('CREATING CANVAS')
      const canvas = document.getElementById('whatsup')
      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()
        console.log(detections)
        const resizedDetections = faceapi.resizeResults(detections,displaySize)
        canvas.getContext('2d').clearRect(0,canvas.width,canvas.height)
        faceapi.draw.drawDetections(canvas,resizedDetections)
      },100)
}

HTML

 <div class="video" id="cameratest"> 
                    
                            <object width="300" height="300" id="plugins" type="application/x-cfx-game-view" style="filter: url(#chromakey); width: 100%; height: 100%; z-index: 9002;
                        "></object>
                        <canvas id="whatsup" style="width: 100%; height: 100%; z-index: 5; pointer-events: none;"></canvas>
                        

                </div>

我的错误是

未捕获(承诺)错误:toNetInput - 预期媒体类型为 HTMLImageElment | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D,或成为元素 id。我不知道我在这里做错了什么,因为我是一个韭菜,但试图找到解决方案。任何帮助表示赞赏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)