Как использовать 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));
            });
        }
    };
};

2 ответа

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

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

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

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

Другие вопросы по тегам