Для вызова Face API из Microsoft Computer Vision с телом запроса используется «application / json» - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь вызвать Face API с веб-сайта Microsoft, и я нашел пример кода на их сайте. В своем коде они используют "Detect API" в качестве примера, но я хочу протестировать "Create Face List" API. Я понял, что мне нужно изменить «Тип контента» с «application / octet-stream» на «application / json» и заполнить «поле Json». К сожалению, я новичок в вызове API.

Надеюсь, вы, ребята, можете помочь с этим.

Здесь - ссылка на пример кода.

И здесь - это ссылка API «Создание списка лиц».

using (ByteArrayContent content = new ByteArrayContent(byteData))
{
    // This example uses content type "application/octet-stream".
    // The other content types you can use are "application/json"
    // and "multipart/form-data".
    content.Headers.ContentType =
        new MediaTypeHeaderValue("application/octet-stream");

    // Execute the REST API call.
    response = await client.PostAsync(uri, content);

    // Get the JSON response.
    string contentString = await response.Content.ReadAsStringAsync();

    // Display the JSON response.
    Console.WriteLine("\nResponse:\n");
    Console.WriteLine(JsonPrettyPrint(contentString));
    Console.WriteLine("\nPress Enter to exit...");
}

1 Ответ

0 голосов
/ 25 января 2019

Читая документацию , я вижу, что для ws "Создать FaceList" необходимо вызвать метод Http Put с типом содержимого application/json.

Вот описание этой услуги:

FaceList - Создать Создайте пустой список лиц с указанным пользователем faceListId, именем и необязательными userData. В одной подписке разрешено до 64 списков лиц. Список лиц - это список лиц, до 1000 лиц, который используется Face - Find Similar. После создания пользователь должен использовать FaceList - Add Face, чтобы импортировать лица. Лица хранятся на сервере, пока не будет вызван FaceList - Delete. Функция «Найти похожие» используется для таких сценариев, как поиск похожих на знаменитостей лиц, подобная фильтрация лиц или для идентификации лица легким способом. Но если в действительности используется идентификация лица, используйте PersonGroup / LargePersonGroup и Face - Identify. Пожалуйста, рассмотрите LargeFaceList, когда номер лица большой. Он может поддерживать до 1 000 000 лиц.

Метод HTTP PUT

var client = new HttpClient();
var queryString = HttpUtility.ParseQueryString(string.Empty);

// Request headers
client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "{subscription key}");

var uri = "https://westcentralus.api.cognitive.microsoft.com/face/v1.0/facelists/{faceListId}?" + queryString;

HttpResponseMessage response;

// Request body
byte[] byteData = Encoding.UTF8.GetBytes("{\"name\": \"sample_list\",\"userData\": \"User-provided data attached to the face list.\"}");

using (var content = new ByteArrayContent(byteData))
{
    content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
    response = await client.PutAsync(uri, content);
    // Get the JSON response.
    string contentString = await response.Content.ReadAsStringAsync();

    // Display the JSON response.
    Console.WriteLine("\nResponse:\n");
    Console.WriteLine(JsonPrettyPrint(contentString));
    Console.WriteLine("\nPress Enter to exit...");
}

В настоящее время базовые URL местоположения таковы:

  • Запад США - westus.api.cognitive.microsoft.com
  • Запад США 2 - westus2.api.cognitive.microsoft.com
  • Восток США - eastus.api.cognitive.microsoft.com
  • Восток США 2 - eastus2.api.cognitive.microsoft.com
  • Западная часть центральной части США - westcentralus.api.cognitive.microsoft.com
  • Юг центральной части США - southcentralus.api.cognitive.microsoft.com
  • Западная Европа - westeurope.api.cognitive.microsoft.com
  • Северная Европа - northeurope.api.cognitive.microsoft.com
  • Юго-Восточная Азия - southeastasia.api.cognitive.microsoft.com
  • Восточная Азия - eastasia.api.cognitive.microsoft.com
  • Австралия Восток - australiaeast.api.cognitive.microsoft.com
  • Южная Бразилия - brazilsouth.api.cognitive.microsoft.com
  • Центральная Канада - canadacentral.api.cognitive.microsoft.com
  • Центральная Индия - centralindia.api.cognitive.microsoft.com
  • Великобритания Юг - uksouth.api.cognitive.microsoft.com
  • Япония Восток - japaneast.api.cognitive.microsoft.com
  • Центральная часть США - centralus.api.cognitive.microsoft.com
  • Центральная Франция - francecentral.api.cognitive.microsoft.com
  • Центральная Корея - koreacentral.api.cognitive.microsoft.com
  • Япония Запад - japanwest.api.cognitive.microsoft.com
  • Северная и Центральная часть США - northcentralus.api.cognitive.microsoft.com

Параметры запроса

faceListId: допустимый символ - буква в нижнем регистре или цифра или '-' или '_', максимальная длина 64.

Заголовки запроса

Content-Type (необязательно): тип носителя тела, отправляемого в API.

Ocp-Apim-Subscription-Key: ключ подписки, обеспечивающий доступ к этому API. Найдено в ваших учетных записях Cognitive Services.

Тело запроса

поля JSON в запросе body:

{
    "name": "sample_list",//Name of the created face list, maximum length is 128.
    "userData": "User-provided data attached to the face list." //Optional user defined data for the face list. Length should not exceed 16KB.
}

Я надеюсь, что это может помочь вам

...