За последние несколько месяцев мы увидели несколько захватывающих анонсов как от Microsoft Build, так и от Google I / O 2018. На этих мероприятиях Microsoft объявила о своей услуге Custom Vision, а Google также анонсировала Cloud AutoML service с AutoML Vision. первый продукт, который будет выпущен. На момент написания я все еще не мог получить доступ к Google Cloud AutoML, но, к счастью, Microsoft Custom Vision готов для открытого предварительного просмотра. Насколько мне известно, у Amazon действительно нет аналогичного аналога, так как ближайший - Amazon Rekognition, но он не поддерживает индивидуальное обучение. Хотя перечисленные выше услуги являются довольно новыми, сама концепция существует несколько лет назад. Например, компания Clarifai, занимающаяся распознаванием изображений, основанная в 2013 году, также предлагала аналогичную услугу.

А теперь вернемся к основному делу. Если вы хотите сравнить возможности этих поставщиков по маркировке изображений, goberoi написал очень красивую статью в своем сообщении в блоге и показал несколько примеров здесь. Итак, мы хотим провести некоторое симпатичное сравнение этих сервисов. Симпатичный здесь означает… * барабанную дробь *… сравнение распознавания персонажей аниме!

Если вам нужен пролог, было бы лучше, если бы вы прочитали мои предыдущие сообщения о Флаг № 15 - Распознавание изображений для персонажей аниме или зайдите в репозитории Github здесь и MoeFlow здесь.

Предостережение: я планирую обновить этот пост результатами Google Cloud AutoML, когда он будет готов для открытого предварительного просмотра :)

Подготовка набора данных

Изначально я хочу сделать все возможное, сравнив 100 символов, но бесплатная версия Clarifai имеет ограничение в 10 «Пользовательских концепций» (более простой термин: теги) и 5000 бесплатных операций, в то время как в Azure Custom Vision Preview есть ограничение в 50 тегов и 5000 обучающих изображений. Минимальный предел здесь - 10 «Пользовательских концепций», что означает, что я могу бесплатно попробовать не более 10 символов. Для каждого персонажа я использую от 35 до 45 изображений. Кроме того, эти изображения предварительно обрабатываются так же, как я делал это в MoeFlow, поскольку запуск классификации напрямую без локализации обнаружения объектов просто не работает.

Всего существует 10 категорий и 407 изображений. В конце эксперимента в Clarifai выставляется счет за ~ 1 тыс. Операций.

Пользовательское видение Azure

Во время инициализации проекта вам будет предложено выбрать между классификацией или обнаружением объекта в качестве типа проекта. В этом эксперименте мы выберем «Классификацию» в типе проекта и «Общие» в доменной части.

После этого мне нужно только загрузить все мои изображения с соответствующими тегами, нажать кнопку «Train», и вуаля, моя модель готова к работе!

Хотя пользовательский интерфейс прост, он не дает вам никакой другой информации на случай, если вы захотите провести с ним дальнейший анализ. Щелкнув URL-адрес тега, он предоставит вам прогнозы для всех данных обучения, которые мы предоставили заранее.

Изображения с красной рамкой означают, что они ниже указанного порога. Хотя нас интересует точность первой 1, порог вероятности на самом деле не дает нам необходимой информации, потому что бывают случаи, когда изображение находится ниже определенного порога, хотя оно все еще находится в рейтинге предсказаний топ-1. Например, на скриншоте выше «alice_cartelet» по-прежнему отображается как первое место в рейтинге прогнозов с вероятностью 34%. Поскольку Azure Custom Vision предполагает, что каждый ввод является проблемой открытого домена, имеет смысл, что некоторые изображения не могут быть классифицированы должным образом (ниже порогового значения вероятности). Однако я бы сказал, что было бы хорошо, если бы они могли предоставить пользователям больше гибкости (например: Clarifai в следующем разделе).

Clarifai

Пользовательский интерфейс Clarifai немного менее интуитивно понятен, так как я пропустил несколько функций при первой пробной версии. Например, на правой панели есть 2 интересных переключателя: Взаимоисключающие концепции и Закрытая среда. Из документации:

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

Поскольку каждый персонаж классифицируется в соответствии с определенной концепцией, включен параметр «Concepts Mutually Exclusive».

После этого мы можем начать обучение нашей модели, нажав кнопку «Train Mo…». Примерно через минуту модель будет готова к работе, и вы можете щелкнуть кнопку «Просмотр», чтобы получить более подробную информацию об эффективности тренировки.

Вы получите красивую таблицу, в которой вы можете настроить «Порог прогнозирования», чтобы получить частоту отзыва и точность для каждой концепции.

Приведенная матрица очень помогает понять, почему наша модель работает или не работает. Например, здесь показано, что asuna дважды ошибочно предсказывается как asahina_mikuru. С человеческой точки зрения это тоже понятно, поскольку у них обоих одинаковый цвет волос и глаз.

Google Cloud AutoML

TBA

Быстрое сравнение

Чтобы быстро понять, как работает каждая из этих служб, давайте сравним ее с тем же тестовым изображением. Для читателей, не знакомых с этим персонажем, правильным тегом должен быть «aragaki_ayase».

Пользовательское видение Azure

Azure Custom Vision вернул неверный результат. Правильный тег отображается на 5-м месте с вероятностью 5,7%. Тем не менее, было бы несправедливо сравнивать этот результат с другими, поскольку результат отображается в модели открытого домена (общая вероятность для всех тегов! = 100%, существует вероятность неудачной классификации).

Clarifai

Clarifai выдал правильный результат (aragaki_ayase) с вероятностью 0,59 (из 1). Кроме того, он предоставил нам некоторые общие теги, такие как иллюстрация (0,97), женщина (0,96), веселье (0,94), мода (0,94), молодой (0,93) и лицо (0,90).

MoeFlow (текущая модель)

Для этого теста я просто бросаю тестовое изображение в существующую модель (обученную по 100 категориям). Он по-прежнему дал верный прогноз: aragaki_ayase (0,55), hyoudou_michiru (0,22) и miki_sayaka (0,08).

Заключение

Azure Custom Vision в настоящее время все еще находится в режиме предварительного просмотра, так что это будет захватывающее путешествие, чтобы увидеть, сможет ли он догнать текущих рыночных конкурентов или нет. С точки зрения пользовательского интерфейса Azure Custom Vision довольно упрощен и прост в использовании, но в то же время ему не хватает гибкости для более продвинутых пользователей. Например, Clarifai позволяет пользователям указать, являются ли концепции взаимоисключающими и заключается ли проблема в закрытой среде. Таблицы и графики очень полезны для понимания узких мест текущей модели.

Производительность модели Clarifai, несомненно, хороша. Наибольшая точность для 10 категорий составляет около 95,2%, без учета текущей модели MoeFlow (88,6%) и Azure Custom Vision (77,4%). позади. Обратите внимание, что в этом эксперименте сравнивается только топ-1 точности во взаимоисключающей среде. Из другого эксперимента здесь, хотя Clarifai дал очень хороший результат маркировки, вы можете рассмотреть другие услуги, если у вас другие требования к вашему проекту.

Поскольку модель, которую я использую для создания MoeFlow, основана на Google Inception v3 (передача обучения), я ожидаю, что производительность Google Cloud AutoML будет аналогична или даже лучше, чем 88,6%. Судя по сообщению в блоге Google, Cloud AutoML выглядит очень многообещающим. Будет очень интересно посмотреть, сможет ли он конкурировать с существующими конкурентами, такими как Clarifai, или нет, так что следите за обновлениями!

Искандар Сетиади
Разработчик программного обеспечения в HDE, Inc.
Freedomofkeima’s Github

Первоначально опубликовано на сайте freedomofkeima.com (5 июня 2018 г.).