Рубрики
Без рубрики

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

В сегодняшней задаче мы анализируем изображение и даем его описание с помощью Cognitive Services и Computer Vision API. Помечено как serverless, tutorial, java, web dev.

Эта статья является частью #25DaysOfServerless . Новые вызовы будут публиковаться каждый день от Microsoft Cloud Advocates в течение всего декабря. Узнайте больше о том, как Microsoft Azure включает ваши Бессерверные функции .

У вас есть идея или решение? Поделитесь своими мыслями в Твиттере!

Вы хотите, чтобы ваше приложение могло видеть, слышать, слушать, говорить и даже рассуждать? Не беспокойтесь! Вам не нужно иметь ученую степень в области машинного обучения. В настоящее время вы можете выбирать между различными сервисами искусственного интеллекта. Одним из них являются Azure Cognitive Services , доступные в виде API, SDK и сервисов. Они помогают разработчикам создавать интеллектуальные приложения. Когнитивные сервисы сгруппированы. Каждая группа поддерживает различные обобщенные возможности прогнозирования. Компьютерное зрение – это услуга по выбору для обработки и анализа изображений.

Использование Computer Vision API позволяет анализировать и описывать изображения, обнаруживать объекты, распознавать тексты и многое другое. Вы можете либо загрузить свое изображение в сервис, либо передать URL-адрес изображения.

В этом сообщении в блоге я хочу продемонстрировать использование API Cognitive Services, решив одну из проблем #25DaysOfServerless .

Здесь, в Мюнхене, Германия, Феликс с нетерпением ждет возможности посетить традиционный Weihnachtsmarkt, праздничный рынок! Он продолжает отправлять фотографии своему другу и рассказывать обо всех забавных вещах, которые он делает: пьет горячий глинтвейн, катается на коньках, покупает подарки. Но Анна не может найти свои очки и не может ясно видеть, что на фотографиях!

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

Чтобы решить эту 15-ю задачу нам нужно:

  1. Найдите изображение случайным образом или по ключевым словам, используя image API.
  2. Обработайте и проанализируйте данное изображение, чтобы дать соответствующее описание для данного изображения.
  3. (Необязательно) Отобразите изображение с подписью и ключевыми словами.

Авторское решение 🔥

Эту задачу можно рассматривать как продолжение задачи 7. Не стесняйтесь расширять свое собственное решение или вы можете использовать авторское решение , написанное на Java.

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

Бесплатный уровень позволяет вам совершать 20 звонков в минуту или 5000 в месяц. Это намного больше, чем нам нужно для решения этой задачи.

Все, что вам нужно, это ключ 1 и ваша конечная точка API, которые вы можете найти на портале по адресу Быстрый старт .

В исходном коде все, что нам нужно сделать, это пройти аутентификацию с помощью сгенерированных ключей, а затем позволить API выполнять свою работу 🐱 🏍 . Поэтому подумайте, какие Типы визуальных объектов интересны для конкретного варианта использования, поскольку мы хотим сохранить его как можно более kiss 💋 . Для этой задачи нам нужно только описание и теги, объясняющие, что вы можете увидеть на переданном изображении. Чтобы получить анализ изображения, позвоните в службу компьютерного зрения.

    // Get environment variables and authenticate with computer vision
    String CV_KEY = System.getenv("COMPUTER_VISION_SUBSCRIPTION_KEY");
    String CV_API = System.getenv("COMPUTER_VISION_ENDPOINT");

    ComputerVisionClient compVisClient = ComputerVisionManager.authenticate(CV_KEY)
            .withEndpoint(CV_API);

    // This list defines the features to be extracted from the image.
    List extractDescriptionAndTags = new ArrayList<>();
    extractDescriptionAndTags.add(VisualFeatureTypes.DESCRIPTION);
    extractDescriptionAndTags.add(VisualFeatureTypes.TAGS);

    // Call the Computer Vision service and tell it to analyze the loaded image.
    ImageAnalysis analysis = compVisClient.computerVision().analyzeImage().withUrl(imageUrl)
            .withVisualFeatures(extractDescriptionAndTags).execute();

Полезно знать: То, что мы получим взамен, – это не только подписи и описания, но и соответствующие значения достоверности. Это может быть очень полезно для сценариев, в которых нам действительно нужно с определенной уверенностью знать, отображается ли на случайном изображении, например, рождественская елка или нет. Для этой задачи мы просто напечатаем наши результаты со значениями достоверности в консоли, чтобы удовлетворить любопытство наших разработчиков.

    // Display image captions and confidence values.
    System.out.println("\nCaptions: ");
    String captionString = "";
    for (ImageCaption caption : analysis.description().captions()) {
        captionString = caption.text();
        System.out.printf("\'%s\' with confidence %f\n", caption.text(), caption.confidence());
    }
    // Display image tags and confidence values.
    System.out.println("\nTags: ");
    StringBuilder keywords = new StringBuilder();
    for (ImageTag tag : analysis.tags()) {
        keywords.append(tag.name());
        keywords.append(" ");
        System.out.printf("\'%s\' with confidence %f\n", tag.name(), tag.confidence());
    }

Наконец, мы возвращаем изображение с соответствующей подписью и ключевыми словами, чтобы завершить задачу. ✨

return request.createResponseBuilder(HttpStatus.OK).body(String.format("Search for image with keywords:%s. You can see on this picture: %s. With the keywords %s. Got url: %s", resultText, captionString, keywords, imageUrl)).build();

в заключение

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

  1. Зарегистрируйте свой сервис, чтобы получить свои ключи API.
  2. Создайте список типов визуальных объектов, которые вы хотите извлечь.
  3. Проанализируйте изображение. Минни, я

Хотите представить свое решение этой проблемы? Создайте локальное решение, а затем отправьте проблему . Если ваше решение не связано с кодом, вы можете записать короткое видео и отправить его в качестве ссылки в описании проблемы. Обязательно сообщите нам, для какой задачи предназначено решение. Мы рады видеть, что вы создаете! У вас есть комментарии или вопросы? Добавьте их в область комментариев ниже.

Следите за сюрпризами весь декабрь, когда мы празднуем 25 дней без сервера. Следите за обновлениями здесь, на dev.to поскольку мы представляем проблемы и решения! Подпишитесь на бесплатную учетную запись в Azure , чтобы подготовиться к испытаниям!

Оригинал: “https://dev.to/azure/learn-to-automatically-analyze-your-images-using-ai-services-to-find-keywords-title-and-other-useful-metadata-3n6i”