В помощь мобильному разработчику
Cognitive Services API Vision

Cognitive Services API: Vision

Александр Алексеев

Что в действительности представляют собой когнитивные службы и для чего они предназначаются? Когнитивные службы — это набор алгоритмов машинного обучения, разработанных корпорацией Microsoft для решения проблем в области искусственного интеллекта (AI). Цель когнитивных служб заключается в демократизации AI путем упаковки его в дискретные компоненты, которые легко могут использоваться разработчиками в их собственных приложениях. Разработчики, специализирующиеся на универсальной платформе Windows и веб-приложениях, могут использовать эти алгоритмы с помощью стандартных вызовов REST по интернету к интерфейсам когнитивных служб.

Cognitive Services API Vision

Когнитивные интерфейсы API сгруппированы в пять категорий:

  • Vision — анализ изображений и видео на предмет контента и другой полезной информации.
  • Speech — средства для улучшения распознавания речи и определения личности говорящего.
  • Language — понимание предложений и намерений, а не просто слов.
  • Knowledge — находит данные исследований из научных журналов.
  • Search — применение машинного самообучения к поиску в интернете.

Так в чем же состоит долгосрочная выгода от обеспечения легкого доступа к AI? Любой, кто наблюдает за технологическими тенденциями, осознает, что мы находимся на рубеже огромных прорывов в области AI; в наши дни компьютеры побеждают чемпионов мира по шахматам, а также готовятся к тому, чтобы пройти тест Тьюринга и другие профессиональные тесты. Все крупнейшие технологические компании соревнуются в «гонке вооружений», стараясь нанять лучших исследователей AI.

Наряду с высокопрофильными проблемами AI, о которых думают ученые, например, то, как пройти тест Тьюринга и как моделировать компьютерные нейронные сети, основанные на принципах работы человеческого мозга, есть еще и дискретные проблемы, с которыми сталкиваются разработчики, например, такие как разметка семейных фотографий, а также поиск еще более ленивого способа заказа любимой пиццы на смартфоне. API когнитивных служб — это мост, позволяющий разработчикам веб-приложений и UWP использовать ресурсы основных исследований в области AI для решения собственных проблем. Давайте начнем с обзора API Vision.

 

Интерфейсы API когнитивных служб

API Vision разбивается на пять групп задач:

  • Computer Vision — извлекает из изображений информацию, имеющую практическую ценность.
  • Content Moderator — автоматически модерирует текст, изображения и видео на предмет ненормативной лексики и неприемлемого содержимого.
  • Emotion — анализирует выражения лиц для определения различных настроений.
  • Face — распознает лица и сходства между ними.
  • Video — анализ, редактирование и обработка видео в приложении.

Поскольку интерфейс Computer Vision API сам по себе является огромной темой для обсуждения, эта статья будет в основном касаться только его возможностей в качестве «прихожей» для других интерфейсов. Однако, следующие описание принципов его использования даст вам хорошее представление также и о том, как работать с другими Vision API.

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

Одной из самых крутых функций из тех, что имеются у Computer Vision API, является обозначение и категоризация изображения на основании того, что он может идентифицировать в этом изображении. Это тесно связано с проблемой машинного зрения, известной как распознавание объектов. В своем текущем состоянии API распознает 2000 различных объектов и группирует их по 87 классификациям.

Cognitive Services API Vision

Использовать Computer Vision API совсем нетрудно. Кстати сказать, имеются даже готовые образцы для использования его на различных платформах разработки, среди которых NodeJS, Android SDK и Swift SDK. Давайте подробно рассмотрим процесс разработки приложения UWP на C#.

Первое, что Вам нужно сделать, это зарегистрироваться на сайте когнитивных служб и запросить ключ для предварительной версии Computer Vision, кликнув по одной из кнопок Get Started for Free («Приступить к работе»).

Cognitive Services API Vision NuGet

Затем создайте новый проект UWP в Visual Studio и добавьте пакет NuGet — ProjectOxford.Vision, открыв Tools | NuGet Package Manager | Manage Packages for Solution и выбрав его. (Project Oxford — это прежнее название API когнитивных служб).

Для того чтобы создать простой пользовательский интерфейс,  требуется всего лишь элемент управления Image для предварительного просмотра изображения, Button для отправки изображения в Computer Vision REST Services и TextBlock для хранения результатов. Рабочий процесс у этого приложения состоит в том, чтобы — выбрать изображение -> отобразить изображения -> отправить изображение в облако -> отобразить результаты анализа, произведенного Computer Vision.

При нажатии кнопки — Analyze Button обработчик в программном коде страницы откроет FileOpenPicker, чтобы пользователь мог выбрать изображение. В методе ShowPreviewAndAnalyzeImage возвращенное изображение используется в качестве источника изображения для элемента управления Image.

 

Реальная команда действует тогда, когда возвращенное изображение передается в класс VisionServiceClient, включенный в импортируемый Project Oxford NuGet. Интерфейс Computer Vision будет пытаться распознать объекты в передаваемом ему изображении и рекомендовать для него теги. Он также анализирует свойства изображения, цветовую схему, ищет человеческие лица и пытается, кроме всего прочего, создать подпись к изображению.

 

И на этом он не останавливается. С помощью нескольких строк кода можно также использовать класс VisionServiceClient для поиска текста в изображении, а затем возвращать все, что находит Computer Vision API. Эта функция оптического распознавания в настоящее время распознает около 26 различных языков.

 

При объединении функций анализа изображений и распознавания текста API-интерфейса Computer Vision возвращаются такие результаты, как показано ниже:

Cognitive Services API Vision

Преимущество этого конкретного API-интерфейса когнитивных служб заключается в том, что он позволяет сканировать папки устройства на предмет наличия семейных фотографий и автоматически запускать их обозначение. Кроме того, с расширением Face API можно маркировать фотографии именами друзей, а также членов семьи. А если добавить Emotion API, тогда можно даже начать отмечать на фотографиях настроение людей. С помощью когнитивных служб можно в автоматическом режиме осуществлять те задачи, которые обычно требует человеческого суждения, и сочетать их с неутомимостью компьютера (в данном случае с компьютером, который учится) для быстрого и бесконечного выполнения этих действий на максимальном количестве фотографий.

 

Заключение

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

 

Автор:
ИсточникБлог Windows

Александр Алексеев
Александр Алексеев

Xamarin – разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#.
За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

UISegmentedControl
Xamarin Dev Days логотип

Написать ответ