Распознавание лиц в javascript с использованием API-интерфейса лица, получающего «Uncaught (в обещании) TypeError: Невозможно прочитать дескриптор свойства undefined» - PullRequest
0 голосов
/ 16 апреля 2020

Столкнулся с этой проблемой при реализации функции распознавания лиц на веб-камере камеры для браузера, используя node js для веб-приложения. Эта ошибка возникает только тогда, когда я добавляю более 1 имени в свои метки в функции loadLabeledImages (). Если у меня есть одно имя, оно отлично работает. Начинающий здесь, и я получаю ту же ошибку в течение нескольких дней

Если я регистрирую обнаружения и обнаружения с измененным размером, я получаю следующее: Ошибка после регистрации обнаружений и обнаружений с измененным размером

Любая помощь приветствуется, большое спасибо!

setInterval(async () => {
const detections = await faceapi.detectSingleFace(video).withFaceLandmarks().withFaceDescriptor()
const resizedDetections = faceapi.resizeResults(detections, displaySize)
canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height)
faceapi.draw.drawFaceLandmarks(canvas, resizedDetections)
this.labeledFaceDescriptors = await this.loadLabeledImages()
const faceMatcher = new faceapi.FaceMatcher(labeledFaceDescriptors, 0.6)
const results = resizedDetections.map(d => faceMatcher.findBestMatch(d.descriptor))
results.forEach((result, i) => {
  const box = resizedDetections[i].detection.box
  const drawBox = new faceapi.draw.DrawBox(box, {label: result.toString()})
  drawBox.draw(canvas) 
})

}, 100) 
})

function loadLabeledImages() {

try{
const labels = ['Jane', 'Alex']

return Promise.all(
  labels.map(async label => {
    const descriptions = []
    for (let i = 1; i <= 3; i++) {
      const img = await faceapi.fetchImage(`public/img/${label}/${i}.jpg`)
      const detections = await faceapi.detectSingleFace(img).withFaceLandmarks().withFaceDescriptor()
      descriptions.push(detections.descriptor)
    }

    return new faceapi.LabeledFaceDescriptors(label, this.descriptions)
  })
)

    }
   catch(err){
     console.log(err)
     }

       }

1 Ответ

0 голосов
/ 16 апреля 2020

Значение «дескриптор» не определено .. как только вы получаете ошибку

...