Введение в разработку TensorFlow Lite на Android


TensorFlow Lite

Разработка под Android не ограничивается симпатичными маленькими приложениями, которые делят счет в ресторанах (кажется, это всеобщая «гениальная идея приложения», или это только у меня?). Android – мощная платформа, поддерживаемая одной из крупнейших и наиболее влиятельных компаний в мире. Компания, которая находится в авангарде машинного обучения и считает себя «ИИ прежде всего».

Изучение TensorFlow Lite для Android позволяет разработчикам внедрять передовое машинное обучение в свои творения. Это значительно расширяет возможности приложения и вводит бесчисленное количество новых потенциальных вариантов использования. Он также учит бесценным навыкам, спрос на которые в ближайшие годы будет только расти.

См. Также: Насколько безопасна ваша работа? Рабочие места, которые ИИ уничтожит в ближайшие 10-20 лет

Это идеальное введение в машинное обучение, так что приступим!

Что такое TensorFlow?

Начнем с основ: что такое TensorFlow Lite? Чтобы ответить на этот вопрос, мы должны сначала взглянуть на TensorFlow сам. TensorFlow – это «сквозная» (что означает «все-в-одном») платформа с открытым исходным кодом для машинного обучения от команды Google Brain. TensorFlow – это программная библиотека с открытым исходным кодом, которая позволяет решать задачи машинного обучения.

Задача машинного обучения – это любая проблема, которая требует распознавания образов, основанного на алгоритмах и больших объемах данных. Это ИИ, а не в Хале из 2001: Космическая одиссея смысл.

См. Также: Искусственный интеллект против машинного обучения: в чем разница?

Сценарии использования

Примером приложения машинного обучения является компьютерное зрение. Это позволяет компьютерам распознавать объекты на фотографии или в прямом эфире с камеры. Для этого программу нужно сначала «обучить», показывая тысячи изображений этого объекта. Программа никогда не понимает объект, но учится искать определенные шаблоны данных (изменения в контрасте, определенные углы или кривые), которые могут соответствовать объекту. Со временем программа становится все более точной при обнаружении этого объекта.

машинное обучение

Как разработчик Android, компьютерное зрение открывает множество возможностей: хотите ли вы использовать распознавание лиц в качестве средства безопасности, создать программу AR, которая может выделять элементы в среде, или создать следующее приложение «Reface». Это до того, как мы рассмотрим бесчисленное множество других применений моделей машинного обучения: распознавание голоса, распознавание текста, искусственный интеллект противника и многое другое.

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

См. Также: Что такое Google Cloud?

TensorFlow может работать на широком спектре процессоров и графических процессоров, но особенно хорошо работает с собственными модулями обработки тензорных модулей (TPU) Google. Разработчики также могут использовать возможности облачной платформы Google, передав операции машинного обучения на серверы Google.

Что такое TensorFlow Lite?

TensorFlow Lite предоставляет встроенный (это означает, что он работает на самом мобильном устройстве) Tensor Flow на мобильные устройства. Анонсированный в 2017 году программный стек TFLite разработан специально для мобильной разработки. TensorFlow Lite «Micro», с другой стороны, представляет собой версию специально для микроконтроллеров, которая недавно была объединена с uTensor от ARM.

Некоторые разработчики теперь могут спросить, в чем разница между Комплект ML и TensorFlow Lite есть. Хотя определенно есть некоторое совпадение, TensorFlow Lite более низкоуровневый и открытый. Что еще более важно: TensorFlow Lite запускается с самого устройства, тогда как ML Kit требует регистрации Firebase и активного подключения к Интернету. Несмотря на запутанную номенклатуру Google, обратите внимание, что ML Kit по-прежнему использует TensorFlow «под капотом». Firebase также является еще одним типом проекта Google Cloud Platform.

См. Также: Создание приложения для распознавания лиц с помощью машинного обучения и Firebase ML Kit

TensorFlow Lite доступен на Android и iOS через C ++ API и оболочку Java для разработчиков Android. На устройствах, которые его поддерживают, библиотека также может использовать API нейронных сетей Android для аппаратного ускорения.

Что вы должны использовать для своих проектов? Это во многом зависит от вашей цели. Если вы не против полагаться на внешний облачный сервис, ML Kit может немного облегчить вашу жизнь. Если вы хотите, чтобы код выполнялся изначально или если вам требуется немного больше настройки и гибкости, выберите TensorFlow Lite.

Как использовать TensorFlow Lite

Решая проблему с помощью машинного обучения, разработчики полагаются на «модели». Модели машинного обучения – это файлы, содержащие статистические модели. Эти файлы обучены распознавать определенные шаблоны. По сути, обучение означает наполнение модели образцами данных, чтобы она могла улучшить свою успешность за счет уточнения используемых шаблонов.

См. Также: ML Kit Image Labeling: определение содержания изображения с помощью машинного обучения

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

Обучение моделей FFLite

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

В TensorFlow Lite эти файлы называются «файлами моделей TensorFlow Lite» и имеют расширение «.tflite» или «.lite». Файлы меток включают метки, которым обучен файл (например, «счастливый» или «грустный» для моделей распознавания лиц).

Обучение модели машинного обучения

Вы также можете столкнуться с некоторыми другими типами файлов, которые используются в процессе обучения. Файлы GraphDef (.pb или .pbtxt) описывают ваш график и могут быть прочитаны другими процессами. Версия TXT также предназначена для чтения человеком. Вы также можете создать их с помощью TensorFlow.

Файл контрольных точек показывает процесс обучения, перечисляя сериализованные переменные, позволяя увидеть, как значения меняются с течением времени. Затем Frozen Graph Def преобразует эти значения в константы и считывает их из установленных контрольных точек через график. Затем модель TFlite строится из замороженного графа с помощью TOCO (Tensor Flow Optimizing Converter Tool). Это дает нам хороший «предварительно обученный» файл, который мы затем можем реализовать в наших приложениях.

Эти библиотеки могут обрабатывать всевозможные общие задачи, такие как ответы на вопросы, распознавание лиц и многое другое.

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

Хорошей новостью является то, что библиотека задач TensorFlow содержит множество мощных и простых библиотек, которые полагаются на предварительно обученные модели. Они могут выполнять все виды общих задач, например отвечать на вопросы, распознавать лица и т. Д. Это означает, что тем, кто только начинает, не нужно беспокоиться о файлах контрольных точек или обучении!

Использование файлов TFLite

Есть много способов получить предварительно обученные файлы моделей TensorFlow Lite для своего приложения. Я рекомендую начать с официальный сайт TensorFlow.

следить эта ссылка, например, и вы сможете загрузить стартовую модель, способную выполнять базовую классификацию изображений. На странице также есть некоторые сведения о том, как использовать его через Библиотека задач TensorFlow Lite. В качестве альтернативы вы можете использовать библиотека поддержки TensorFlow Lite если вы хотите добавить свой собственный конвейер вывода (т.е. искать что-то новое).

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

android {// Другие настройки // Укажите, что файл tflite не должен сжиматься для приложения apk aaptOptions {noCompress “tflite”}}

Настройка вашего проекта Android Studio

Чтобы использовать TensorFlow Lite в своем приложении, вам необходимо добавить в файл build.gradle следующую зависимость:

скомпилировать ‘org.tensorflow: tensorflow-lite: +’

Далее вам нужно импортировать ваш интерпретатор. Это код, который фактически загрузит модель и позволит вам запустить ее.

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

Результаты будут представлены в виде вероятностей выхода. Модели никогда не могут с уверенностью сказать, что такое объект. Таким образом, изображение кошки может быть 0,75 собаки и 0,25 кошки. Ваш код должен

Как вариант, импортируйте библиотеку поддержки TensorFlow и конвертируйте изображение в тензорный формат.

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

Популярные модели архитектуры включают в себя MobileNet и Inception. Ваша задача – выбрать оптимальное решение для работы. Например, MobileNet разработан таким образом, чтобы отдавать предпочтение облегченным и быстрым моделям перед глубокими и сложными. Сложные модели имеют более высокую точность, но за счет размера и скорости.

Узнать больше

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

Введение в TensorFlow Lite для Android

Для более глубокого понимания мы настоятельно рекомендуем Машинное обучение с TensorFlow. Этот курс включает 19 уроков, которые покажут вам, как внедрять распространенные коммерческие решения. Android Authority читатели получают скидку 91% прямо сейчас, снижая цену до 10 долларов с 124 долларов.