Как использовать Microsoft Cognitive API для обнаружения эмоций на лицах?

Я пытаюсь определить эмоции на лицах по загруженному изображению. Кажется, я не могу найти пример кода для обнаружения эмоций.

https://azure.microsoft.com/en-us/try/cognitive-services/my-apis/?apiSlug=face-api&country=Canada&allowContact=true

я нашел это

https://docs.microsoft.com/en-us/azure/cognitive-services/emotion/quickstarts/javascript

но конечная точка URL не работает. Затем я попробовал обычный API для лица, но даже это получил resource not found.

Кто-нибудь знает, что происходит один?

Спасибо

var FACE = new function () {

    this.listen = function() {

        var camera = document.getElementById('camera');

        camera.addEventListener('change', function(e) {
            var imageFile = e.target.files[0];     
            var reader = new FileReader();
            var fileType;

            //wire up the listener for the async 'loadend' event
            reader.addEventListener('loadend', function () {    
                //get the result of the async readAsArrayBuffer call
                var fileContentArrayBuffer = reader.result;

                sendImage(fileContentArrayBuffer, fileType);
            });

            if (imageFile) {
                //save the mime type of the file
                fileType = imageFile.type;

                //read the file asynchronously
                reader.readAsArrayBuffer(imageFile);
            }   
        });

        function sendImage(fileContentArrayBuffer, fileType) {

            $.ajax({
                // NOTE: You must use the same location in your REST call as you used to obtain your subscription keys.
                //   For example, if you obtained your subscription keys from westcentralus, replace "westus" in the 
                //   URL below with "westcentralus".
                url: "https://westcentralus.api.cognitive.microsoft.com/face/v1.0/",
                beforeSend: function(xhrObj){
                    // Request headers, also supports "application/octet-stream"
                    xhrObj.setRequestHeader("Content-Type","application/json");

                    // NOTE: Replace the "Ocp-Apim-Subscription-Key" value with a valid subscription key.
                    xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","my key");
                },
                //don't forget this!
                processData: false,
                type: "POST",
                // Request body
                data: new Blob([fileContentArrayBuffer], { type: fileType })
            }).done(function(data) {
                alert(data);
                // Get face rectangle dimensions
                var faceRectangle = data[0].faceRectangle;
                var faceRectangleList = $('#faceRectangle');

                // Append to DOM
                for (var prop in faceRectangle) {
                    faceRectangleList.append("<li> " + prop + ": " + faceRectangle[prop] + "</li>");
                }

                // Get emotion confidence scores
                var scores = data[0].scores;
                var scoresList = $('#scores');

                // Append to DOM
                for(var prop in scores) {
                    scoresList.append("<li> " + prop + ": " + scores[prop] + "</li>")
                }
            }).fail(function(err) {
                alert("Error: " + JSON.stringify(err));
            });
        }
    };
};

person omega    schedule 19.02.2018    source источник


Ответы (2)


Предполагая, что у вас есть ключ, URL-адрес запроса для Emotion API должен быть https://westus.api.cognitive.microsoft.com/emotion/v1.0/recognize?

Вы также можете взглянуть на этот веб-сайт. У него похожий код.

Извините, я не могу использовать функцию комментариев, так как я здесь новичок и у меня недостаточно репутации для этого.

person Michael Y.    schedule 19.02.2018
comment
Я не мог найти возможность зарегистрироваться на эмоциональное API. Я нашел лицо api, и он также дал мне домен westcentralus. - person omega; 19.02.2018
comment
@omega Извините за путаницу, я имею в виду recognize? после вашего URL. Кроме того, согласно веб-странице, Face API теперь общедоступно объединяет возможность распознавания эмоций. См. здесь (синее уведомление) . - person Michael Y.; 20.02.2018
comment
Я пробовал https://westcentralus.api.cognitive.microsoft.com/face/v1.0/recognize?, но у него та же ошибка. - person omega; 21.02.2018
comment
Emotion API еще не завершен. Если вы хотите использовать Face API, убедитесь, что вы следуете этому руководство. Будьте осторожны с частью param. Если вы используете Emotion API, проверьте свой URL. Это ...microsoft.com/emotion/v1.0/..., как показано здесь. - person Michael Y.; 21.02.2018

Не могли бы вы дважды проверить свой api-регион? Поскольку эта ошибка возникает, когда для данного ключа API в регионе не найден ресурс. А для доступа к эмоциям вам нужно будет передать параметры в api, которые предоставят вам атрибуты лиц в ответ, которые содержат эмоции.

person Harish    schedule 24.02.2018