Передача base64 в Google Vision дает ошибку 400 - PullRequest
0 голосов
/ 06 января 2019

Я собираю кадры с веб-камеры, преобразую каждое растровое изображение в строку base64, а затем передаю ее в Google vision API. Когда я делаю это, я ловлю ошибку, но она записывается только как правда. Я новичок, чтобы реагировать, и я изо всех сил пытаюсь понять, чего мне не хватает.

  grabFrame() {
    let mediaStreamTrack = this.state.mediaStream.getVideoTracks()[0];
    let imageCapture = new window.ImageCapture(mediaStreamTrack);

    return imageCapture.grabFrame();
  }

  uploadFrame() {
    this.grabFrame()
    .then(function(bitmapImage) {
      var canvas = document.createElement("canvas")
      canvas.width = bitmapImage.width;
      canvas.height = bitmapImage.height;

      let context = canvas.getContext("2d")
      context.drawImage(bitmapImage, 0, 0);

      let base64Image = canvas.toDataURL("image/png")

      const request = new vision.Request({
        image: new vision.Image({
          base64: base64Image,
        }),
        features: [ new vision.Feature('FACE_DETECTION') ]
      })

      vision.annotate(request)
      .then((response) => {
        console.log(`Response: ${response}`)
      })
      .catch((error) => {
        console.log(`Error: ${error}`)      >>>>      "Error: true"
      });
    }).catch((error) => {
      console.log('grabFrame() error: ', error)
    });
  }

В консоли все, что я вижу, это POST https://vision.googleapis.com/v1/images:annotate?key=xxxxxxxxxxxxxxxxxxx 400

Ведение журнала base64Image дает data:image/png;base64,iVBORw0KGgoAA...

Я что-то упустил?

...