Google продвигает ИИ и машинное обучение (ML) в Google I / O с 2016 года, и мы увидели появление нескольких впечатляющих продуктов, использующих эти технологии, в частности Google Фото с функциями классификации изображений и распознавания лиц, а также Google Home с его функциями. обработка естественного языка.

Мне было очень весело играть с такими инструментами машинного обучения, как Actions for Google Assistant / Google Home, я переобучил модель классификации изображений Inception V3 для распознавания документов, удостоверяющих личность, и даже построил модель Tensorflow с нуля, используя данные аналитики для прогнозирования поведения пользователей. Но каждый раз у меня возникали проблемы с прохождением стадии проверки концепции до точки, когда реальные решения машинного обучения имели смысл и могли надежно использоваться в производственной среде.

В феврале был выпущен ARcore, который использует передовое компьютерное зрение и сенсорные алгоритмы для сопоставления трехмерных пространств с виртуальными объектами без необходимости в специализированном оборудовании (RIP Project Tango и его устройства с ИК-подсветкой). Какое-то время было весело размещать виртуальные объекты, такие как штурмовики, по комнате, но снова я почувствовал, что нам не хватает потрясающей функциональности, которая сделала бы дополненную реальность (AR) реальностью в производственных приложениях.

А потом случился Google I / O 2018. В шквале анонсов появилась следующая итерация ML и AR с новыми API и инструментами, предназначенными для снижения когнитивной нагрузки и абстрагирования от многих сложных базовых технологий. Я оптимистично настроен в том, что это позволит нам создавать функции машинного обучения и дополненной реальности более простым и знакомым нам образом, как разработчикам. Вот некоторые из моих основных моментов:

Дополненные изображения

Моя любимая функция, появившаяся в Google I / O в этом году, - это расширенные изображения, представленные как часть ARcore 1.2. Это позволяет нам легко связывать реальные объекты, такие как плакаты, документы или упаковки, с виртуальными объектами. С учетом того, что в одном приложении можно использовать до 1000 различных эталонных изображений, я изначально предполагал, что эта функция управляется моделью распознавания изображений машинного обучения; однако документы показывают, что обнаружение основано исключительно на точках с высокой контрастностью.

Когда я поигрался с демонстрационным приложением, я смог легко загрузить базу данных изображений с помощью инструмента arcoreimg. К сожалению, я узнал, что он не может обнаруживать небольшие изображения (менее 15 см x 15 см) частично из-за отсутствия автофокуса камеры в ARcore.

Демонстрация также показала, что обнаружение изображений ARcore гораздо менее гибкое, чем обнаружение изображений на основе ML; Реальные объекты на эталонных изображениях должны быть почти полностью плоскими, чтобы их можно было вообще обнаружить.

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

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

MLkit

MLkit берет существующие API-интерфейсы Mobile Vision, такие как распознавание текста, распознавание лиц и сканирование штрих-кода, и переупаковывает их с возможностью запуска на устройстве или в облаке как часть Firebase. Компромисс между маркировкой изображений на устройстве и в облаке можно увидеть ниже: более высокая точность в облаке компенсируется более медленным взаимодействием с пользователем, вызванным задержкой в ​​сети. API действительно хорош тем, что код для запуска на устройстве почти идентичен коду для облака.

Функция MLkit, которая меня больше всего волнует, - это Face Contours, которая отображает более 100 точек данных с лица пользователя и открывает множество возможностей, включая повышенную безопасность и дополнения. Это еще не доступно, и дата выпуска не упоминается.

Tensorflow Lite

Великолепие Tensorflow Lite, платформы машинного обучения Google с открытым исходным кодом, оптимизированной для мобильных устройств, можно резюмировать по четырем пунктам:

  1. Он оптимизирует ваши модели Tensorflow таким образом, что значительно уменьшает размер файла, но сохраняет большую часть точности. Звучит просто, но это очень активная область исследований в Google; Вы можете прочитать об оптимизации модели научного вождения в Сессии Tensorflow Lite.
  2. Способ упаковки и распространения моделей Tensorflow Lite был улучшен в рамках усилий по уменьшению размера APK. Новый Android App Bundle позволяет пользователям загружать только оптимизированный основной модуль из Play Store и добавлять функции на лету по мере необходимости. Та же концепция применяется к приложениям, использующим настраиваемые модели Tensorflow Lite, где модель находится в Firebase и извлекается при необходимости. Мы также можем A / B тестировать различные пользовательские модели с помощью удаленной конфигурации. Обратите внимание, что нестандартная модель не обязательно строится с нуля; на Tensorflow hub доступны десятки готовых моделей, которые можно переобучить для конкретной цели.
  3. Tensorflow Lite использует новый API Neural Networks 1.1, который дает нам аппаратное ускорение «из коробки» на устройствах с выделенными микросхемами машинного обучения, такими как Pixel 2. Это еще один отличный уровень абстракции, который позволяет нам быстро и легко использовать модели машинного обучения на мобильных устройствах. .
  4. В настоящее время мы ограничены выводом (прогнозами) на устройстве из существующих моделей, но дорожная карта Tensorflow Lite показывает, что достижения в области специализированных мобильных микросхем машинного обучения скоро позволят обучать модели на устройстве. Это открывает всевозможные возможности для развития моделей и изучения пользовательских шаблонов.

Отладка и IDE Tensorflow

Когда я начал использовать Tensorflow, мне нужно было не только изучить Python, но и перейти от работы в красивой среде IDE, такой как Android Studio, к текстовому редактору! Благодаря чему-то, что называется Eager Execution, пользователи теперь могут запускать код Tensorflow в JetBrain Python IDE (выглядит так же, как Android Studio) и устанавливать точки останова для отладки. То, что когда-то было таким чужим, теперь кажется нормальным.

Модели Latent Space ML

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

Например, на изображении ниже человек нарисовал четыре лица, которые появляются по углам; модель скрытого пространства нарисовала грани между ними - не в одном, а в двух измерениях! Есть что-то жуткое в том, как модель интерпретировала скрытое пространство между каждым исходным изображением.

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

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

Копирование и вставка в реальном мире

Вы знаете, когда вы взаимодействуете с чем-то нецифровым, например с книгой, и хотите найти слово или скопировать текст, но не можете? Со мной такое случается постоянно. Google Lens теперь позволяет делать это в режиме реального времени с помощью технологии распознавания текста на основе машинного обучения. Напоследок кое-что полезное от Lens.

Предсказание будущего

В пространствах ML и AR происходит еще несколько интересных вещей, в том числе Cloud Anchors для совместной работы в AR и возможность запускать Tensorflow Lite на устройствах IoT, таких как Raspberry Pi, но перечисленные выше пункты показались мне наиболее интересными. пригодится в ближайшем будущем.

По мере того, как становится проще создавать и развертывать модели машинного обучения, мы можем увидеть, как компании используют свои IP, данные, журналы и аналитику для создания предметно-ориентированных моделей, которые используются не только в цифровых продуктах, но и для управления и улучшения внутренних систем. Они могут даже обеспечить поток доходов через общедоступные API (модель как услуга, кто-нибудь?).

Если вам нужна дополнительная информация, я поместил ссылки на все видео, которые послужили вдохновением для этого сообщения в блоге.

* Обратите внимание, что я намеренно избегал упоминания Google Duplex и телефонного разговора с ИИ в реальном времени, поскольку он уже был подробно освещен. Циник во мне думает, что Google показал демонстрацию Duplex, чтобы проверить реакцию публики и уменьшить культурное отставание, которое происходит с этими технологическими достижениями.

Ссылки

Что нового в AR

Начните с высокоуровневых API TensorFlow

ML Kit: SDK машинного обучения для мобильных разработчиков

Достижения в области машинного обучения и TensorFlow

TensorFlow Lite для мобильных разработчиков

Руководство по вводу-выводу '18 - Машинное обучение