В этом году на Google I / O мы увидели представление Firebase MLKit, части пакета Firebase, который призван дать нашим приложениям возможность с большей легкостью поддерживать интеллектуальные функции. SDK в настоящее время поставляется с набором предопределенных возможностей, которые обычно требуются в приложениях - вы сможете реализовать их в своем приложении независимо от того, знакомы ли вы с машинным обучением или нет.

Теперь то, что предлагает нам Firebase ML Kit, уже можно реализовать самостоятельно, используя различные технологии машинного обучения. Суть Firebase ML заключается в том, что он не только предлагает эти возможности в форме оболочки, но и использует эти технологии и предлагает их возможности в рамках единого SDK.

Хотя мы можем реализовать эти вещи без Firebase ML, некоторые причины, по которым мы не можем это сделать, могут быть связаны с:

  • Отсутствие знаний о машинном обучении может помешать нам реализовать такие функции - возможно, мы сочтем это подавляющим или у нас просто нет времени, чтобы развиваться в этих областях.
  • Найти сверхточные и хорошо обученные модели машинного обучения может быть не только сложно, но в то же время сложно выбрать, какие из них использовать, а затем оптимизировать для вашей платформы.
  • Размещение вашей модели машинного обучения для доступа к облаку также может затруднить реализацию вашего машинного обучения. Упаковка его в приложение иногда может быть более простым подходом, но это само по себе имеет некоторые недостатки.

Имея это в виду, может быть трудно понять, с чего начать. Это одна из основных целей Firebase ML Kit - сделать машинное обучение для наших приложений Android и iOS более доступным для разработчиков и доступным в большем количестве приложений. В настоящее время ML Kit предлагает возможность:

  • Распознать текст
  • Узнавать ориентиры
  • Распознавание лица
  • Сканировать штрих-коды
  • Обозначение изображений

Чтобы иметь возможность использовать эти функции, все, что нам нужно сделать, это передать желаемые данные в SDK, и взамен мы получим данные обратно в зависимости от того, какую часть ML Kit мы используем. Возвращаемые данные будут зависеть от используемых возможностей машинного обучения, вам просто нужно будет извлечь данные из ответа, который вам возвращается.

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

Одна из приятных особенностей Firebase ML заключается в том, что она предлагает возможности машинного обучения как на устройстве, так и в облаке, что позволяет вам проявлять творческий подход и помнить о том, как и когда вы используете машинное обучение. Например, некоторые операции могут быть интенсивными, поэтому мы должны помнить об этом - к счастью, у нас есть выбор, использовать ли мы обучение на устройстве или в облаке для большинства возможностей firebase ML. API-интерфейсы на устройстве в Firebase MLKit предназначены для быстрой работы и могут предоставлять результаты даже при отсутствии сетевого подключения. С другой стороны, облачные API-интерфейсы используют технологию машинного обучения платформ Google Cloud для обеспечения повышенного уровня точности.

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

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

После того, как вы добавили Firebase в свой проект, чтобы начать работу с MLKit, вам нужно будет начать с добавления зависимости базового видения в свой проект.

implementation 'com.google.firebase:firebase-ml-vision:15.0.0'

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

На этом этапе у вас будут инструменты визуализации, доступные для вашего приложения. Здесь вы предоставите входные данные модели из своего приложения, возможно, это будет контент для сканирования штрих-кода или распознавания лиц и т. Д., Тогда MLKit вернет некоторое значение результата на основе этих данных, которое вы затем можете применить к своему приложению. .

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

<meta-data
    android:name="com.google.firebase.ml.vision.DEPENDENCIES"
    android:value="barcode, face, other_model_names..." />

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

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