1

Microsoft認知サービスの顔面APIに、ユーザーがアップロードした画像を渡そうとしています。イメージは、アップロードフォルダのサーバー上で使用できます。ノードを持つ認知サービスにバイナリデータとしてアップロードする

マイクロソフトでは、イメージが「アプリケーション/オクテットストリーム」であり、バイナリデータとして渡されることを期待しています。

現在のところ、画像をAPIに渡して受け入れられるようにする方法が見つからず、「復号化エラー、画像フォーマットがサポートされていません」と表示されることがあります。私の知る限り、画像はブロブまたはファイル形式でアップロードする必要がありますが、NodeJsの新機能です。これを達成する方法については本当にわかりません。

これまで私はこれを持っていて、いくつかのオプションを見てきましたが、誰も働かなかった、私は試した他のオプションが 'file too too large' 。

image.mv('./uploads/' + req.files.image.name , function(err) { 
if (err) 
    return res.status(500).send(err); 
}); 

var encodedImage = new Buffer(req.files.image.data, 'binary').toString('hex'); 

let addAPersonFace = cognitive.addAPersonFace(personGroupId, personId, encodedImage); 

addAPersonFace.then(function(data) { 
    res.render('pages/persons/face', { data: data, personGroupId : req.params.persongroupid, personId : req.params.personid}); 
}) 

答えて

1

使用していると思われるパッケージcognitive-servicesは、ファイルのアップロードをサポートしていないようです。あなたはGitHub pageに問題を提起することを選択するかもしれません。

代替NPMパッケージが存在しますが、これはオプションです。あなたは、次のようなものだろうproject-oxfordでは、:

var oxford = require('project-oxford'), 
    client = new oxford.Client(YOUR_FACE_API_KEY), 
    uuid = require('uuid'); 

var personGroupId = uuid.v4(); 
var personGroupName = 'my-person-group-name'; 
var personName = 'my-person-name'; 
var facePath = './images/face.jpg'; 

// Skip the person-group creation if you already have one 
console.log(JSON.stringify({personGroupId: personGroupId})); 
client.face.personGroup.create(personGroupId, personGroupName, '') 
    .then(function(createPersonGroupResponse) { 
    // Skip the person creation if you already have one 
    client.face.person.create(personGroupId, personName) 
     .then(function(createPersonResponse) { 
     console.log(JSON.stringify(createPersonResponse)) 
     personId = createPersonResponse.personId; 
     // Associate an image to the person 
     client.face.person.addFace(personGroupId, personId, {path: facePath}) 
      .then(function (addFaceResponse) { 
      console.log(JSON.stringify(addFaceResponse)); 
      }) 
     }) 
    }); 
+0

ありがとうございました!私の質問には直接答えられませんでしたが、私は最終的に、あなたが提案したパッケージがはるかに包括的かつより良くサポートされており、私のプロジェクトでそれを使用することに決めました。 実際の質問に対する回答が見つかったら、ここに投稿します。 – user1286856

1

バージョン0.2.0に更新してくださいを、これは動作するはずです。

関連する問題