Как указано на веб-сайте Amazon Web Services, Amazon Rekognition — это сервис, который позволяет добавлять анализ изображений в ваши приложения. С помощью Rekognition вы можете обнаруживать объекты, сцены и лица на изображениях. Среди наиболее важных функций, предлагаемых Amazon Rekognition:

  • Обнаружение объектов и сцен
  • Модерация изображений
  • Анализ лица
  • Распознавание лиц
  • Признание знаменитостей

В этом техническом примере мы собираемся использовать Java SDK, чтобы показать, как разработать простое и полезное приложение, которое распознает лица знаменитостей, чтобы продемонстрировать возможности сервиса.

Мы выбрали различные фотографии известных знаменитостей, таких как Криштиану Роналду, Селин Дион и Стинг, получив благоприятные результаты, как показано на инфографике.

Что касается технической стороны, мы сосредоточимся на наиболее важных шагах и опустим менее конкретные части (вы можете получить весь код на Github).

1) Создайте клиент Amazon Rekognition с помощью AmazonRekognitionClientBuilder, включая регион, который будет использоваться, и запрос RecognizeCelebritiesRequest, содержащий представление изображения в байтах.

AmazonRekognition amazonRekognition = AmazonRekognitionClientBuilder .standard().withRegion(Regions.US_WEST_2).build(); RecognizeCelebritiesRequest request = new RecognizeCelebritiesRequest() .withImage(new Image().withBytes(imageBytes));

2) Создайте объект RecognizeCelebritiesResult, который будет содержать полученные результаты:

RecognizeCelebritiesResult result = amazonRekognition.recognizeCelebrities(request);

3) Показать распознанную информацию о знаменитостях

List celebs=result.getCelebrityFaces(); System.out.println(celebs.size() + ” celebrity(s) were recognized.\n”); List metadata = new ArrayList(); for (Celebrity celebrity: celebs) { System.out.println(“Celebrity recognized: ” + celebrity.getName()); metadata.add(“Celebrity recognized: ” + celebrity.getName()); System.out.println(“Celebrity ID: ” + celebrity.getId()); metadata.add(“Celebrity ID: ” + celebrity.getId()); System.out.println(“Further information (if available):”); metadata.add(“Further information (if available):”); for (String url: celebrity.getUrls()){ System.out.println(url); metadata.add(url); }

В настоящее время Amazon Rekognition поддерживает только форматы JPG и PNG, что является недостатком по сравнению с Google Cloud Vision, который поддерживает широкий спектр форматов, таких как GIF, BMP и RAW, среди прочих. Тем не менее, следует отметить, что во время проведенных тестов не было проблем с производительностью из-за типа формата, но если можно было наблюдать большую эффективность инструмента, когда лица были хорошо видны или под фронтальным углом и когда контраст с фоном печально известен.

Еще одна особенность, которую следует отметить, заключается в том, что API был разработан для включения как можно большего числа знаменитостей на основе отзывов клиентов AWS, поэтому новые имена постоянно добавляются в список после некоторого анализа. Принимая это во внимание, мы провели дополнительное тестирование, используя изображения знаменитостей из таких стран, как Панама и Колумбия, чтобы разнообразить данные, основанные на более широком культурном спектре. Результаты, которые мы получили, были следующими:

В первых двух тестах были отмечены удовлетворительные результаты, инструмент смог распознать легенду панамского бокса Роберто Дюрана и известного колумбийского футболиста мюнхенской «Баварии» Джеймса Родригеса. Мы провели третий тест, используя изображение с более низким разрешением, чтобы проверить пределы возможностей инструмента, и не получили благоприятных результатов при попытке распознать великого мастера боевых искусств всех времен Брюса Ли.

Принимая во внимание эти результаты, можно утверждать, что качество и разрешение изображения являются аспектом, который следует учитывать при использовании инструмента. Если желательно получить благоприятные результаты, важно обеспечить использование изображений значительного качества, принимая во внимание, что служба, похоже, все еще разрабатывает улучшения по мере подачи моделей глубокого обучения.

Хотя Amazon Rekognition появился на рынке относительно недавно, мы были впечатлены его возможностями, конкурентоспособными ценами и функциями. У Rekognition есть большой потенциал стать стандартом для анализа изображений, основанного на алгоритмах глубокого обучения, наряду с конкурирующими сервисами, такими как Clarifai и Google Vision API.

Ближайшее будущее выглядит очень перспективным для разработки программного обеспечения, ориентированного на искусственный интеллект, рынок, который определенно откроет новые горизонты для создания впечатляющих инструментов, которые могут оказать благотворное влияние на наше общество.

Первоначально опубликовано на www.admios.com.