AWS SageMaker - в запросе указан недопустимый формат изображения

Я тестирую сервис Amazon SageMaker с помощью NodeJS + AWS SDK и после создания новой модели и конечной точки на основе этот пример (в записной книжке все работает хорошо, включая запрос к конечной точке), я пытаюсь создать запросы из моего приложения Express, но я получаю следующую ошибку:

Error during recognition: { InvalidImageFormatException: Request has Invalid image format
  at Request.extractError (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/protocol/json.js:48:27)
  at Request.callListeners (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/sequential_executor.js:109:20)
  at Request.emit (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/sequential_executor.js:81:10)
  at Request.emit (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:683:14)
  at Request.transition (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:22:10)
  at AcceptorStateMachine.runTo (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/state_machine.js:14:12)
  at /Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/state_machine.js:26:10
  at Request.<anonymous> (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:38:9)
  at Request.<anonymous> (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:685:12)
  at Request.callListeners (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/sequential_executor.js:119:18)
  at Request.emit (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/sequential_executor.js:81:10)
  at Request.emit (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:683:14)
  at Request.transition (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:22:10)
  at AcceptorStateMachine.runTo (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/state_machine.js:14:12)
  at /Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/state_machine.js:26:10
  at Request.<anonymous> (/Users/pdonaire/Documents/workspaceNode/trsps-controller/node_modules/aws-sdk/lib/request.js:38:9)

message: 'Request has Invalid image format',
code: 'InvalidImageFormatException',
time: 2018-09-10T04:42:07.530Z,
requestId: 'de3a04ff-b4b3-11e8-9bd8-8b88f803570c',
statusCode: 400,
retryable: false,
retryDelay: 55.860720412209794 }

Мой код выглядит следующим образом:

export function sendRequestToSageMaker(base64image) {
  const params = {
    Body: new Buffer(base64image, 'base64') , /* Strings will be Base-64 encoded on your behalf */ /* required */
    EndpointName: 'DEMO-imageclassification-ep--XXXX', /* required */
    Accept: 'application/json',
    ContentType: 'application/x-image'
  };
  sagemakerruntime.invokeEndpoint(params, function(err, data) {
    if (err) 
      console.error(err, err.stack); // an error occurred
    else     
      console.log(data);           // successful response
   });
   return null;
}

base64image - это req.body.photo из запроса, который я выполняю с Postman с JSON и только одним свойством photo со строкой base64, которое я сделал с помощью base64-image.de.

Любая помощь будет полезна! Большое спасибо! :-)


person Pablo D    schedule 10.09.2018    source источник
comment
Возможно, вы могли бы попробовать отправить изображение как multipart form-data вместо bas64   -  person Nicholas Porter    schedule 12.10.2018


Ответы (1)


алгоритм классификации изображений SageMaker поддерживает только изображения в качестве полезной нагрузки и не поддерживает полезную нагрузку в кодировке base64, поэтому вы видите InvalidImageFormatException.

person Vineet Khare    schedule 11.11.2018