Обзор прогресса, достигнутого нашей командой за последний год
2019 год был невероятно важным и продуктивным для нашей команды - мы еще не закончили наши поиски по созданию Fritz AI Studio, окончательной платформы машинного обучения для мобильных разработчиков, но мы хотели быстро оглянуться на прогресс, достигнутый нами в нескольких областях:
- Студия Fritz AI
- Наши усилия с открытым исходным кодом и сообщества
Мы были вдохновлены невероятным опытом, который разработчики создают с помощью Fritz AI, растущей динамикой машинного машинного обучения и усилиями нашего исключительного сообщества разработчиков.
Спасибо всем за то, что сделали 2019 год незабываемым, и до встречи в новом году с (намного) большим количеством других.
Обзор 2019
В 2019 году мы основывались на основных элементах Fritz AI, чтобы предложить поддержку для большего числа вариантов использования, большего количества компонентов жизненного цикла машинного обучения и предоставить ряд улучшений API, которые сделали мобильное машинное обучение проще, чем когда-либо.
Новые функции и предварительно обученные модели
Оценка позы
В феврале мы добавили API оценки позы Фрица в нашу линейку предварительно обученных функций. Оценка позы позволяет разработчикам определять и отслеживать положение тела человека. Используя Vision API, разработчики приложений могут создавать тренеров на базе искусственного интеллекта для занятий спортом и фитнесом, иммерсивной дополненной реальности и многого другого.
Варианты сегментации изображений - сегментация волос, домашних животных и неба
Вообще говоря, сегментация изображения позволяет нам распознавать объекты в изображениях / видео и точно определять, какие пиксели принадлежат каждому объекту. Основываясь на Fritz Image Segmentation для людей, сцен в помещении и на открытом воздухе, мы добавили в апреле поддержку сегментирования волос, домашних животных (кошек и собак) и неба.
Инструменты управления моделями
Создание, управление и поддержка конвейеров для проектов мобильного машинного обучения может стать большой головной болью. Различные версии моделей необходимо развертывать на определенных устройствах в разное время - отслеживание этих и других переменных может занять невероятно много времени. Мы воодушевлены прогрессом, достигнутым в 2019 году в решении этого особенно сложного компонента мобильного машинного обучения.
Теги и метаданные
В феврале мы представили систему тегов и метаданных, чтобы помочь разработчикам, использующим Fritz AI, лучше отслеживать, управлять и распространять свои модели машинного обучения на устройствах. Модели можно запрашивать по тегам и динамически загружать через SDK для iOS и Android, что дает разработчикам больше контроля над распространением и использованием. Доставляйте модели пользователям на основе оборудования, местоположения, программной среды или любого другого атрибута.
Интерфейс командной строки Fritz
Обновление модели в мобильном приложении может быть трудным и утомительным, особенно если вы не являетесь разработчиком мобильных приложений. Каждый раз, когда вы хотите попробовать что-то новое, вам нужно экспортировать контрольную точку модели, преобразовать ее в мобильный формат, вручную добавить ее в проект в своей среде IDE и дождаться, пока все приложение будет перестроено.
Интерфейс командной строки Fritz делает все это и многое другое:
- Легко конвертируйте и отправляйте модели из ваших обучающих сценариев на мобильные устройства для тестирования.
- Мгновенно развертывайте новые версии моделей в своем мобильном приложении, не покидая рабочего процесса.
- Интегрируйтесь с популярными учебными фреймворками, такими как Keras, чтобы последняя версия модели всегда была доступна в вашем приложении для мгновенного тестирования.
- Храните метаданные с каждой моделью (см. Выше), чтобы вы никогда не теряли гиперпараметры или эксперименты.
Учебные тетради
В дополнение к перечисленным выше инструментам мы также создали и сделали доступными модели записных книжек для обучения (Google Colab) для нашей линейки предварительно обученных функций. Используя их, разработчики могут более легко создавать настраиваемые, оптимизированные для мобильных устройств модели с собственными данными.
Если у вас есть собственные данные и вы хотите начать обучение пользовательской модели, свяжитесь с нами здесь, и мы поможем вам начать работу и ответим на любые ваши вопросы.
Улучшения API
Мы всегда ищем способы сделать Fritz AI более удобным для разработчиков. От основных выпусков SDK до настроек наших предварительно созданных API-интерфейсов функций мы добились значительного положительного прогресса в 2019 году.
Основные улучшения SDK
В сентябре 2019 года мы выпустили SDK версии 4.0 для iOS и Android, в которую были внесены некоторые основные улучшения:
1. Повышение производительности Android: обработка изображений, включая поворот и изменение размера, теперь на 100% быстрее в версии 4 SDK. А для сегментации волос смешивание масок теперь в 3 раза быстрее, что обеспечивает более качественный эффект.
2. Улучшения Android API. В дополнение к повышению производительности мы также внесли несколько значительных улучшений в наш Android SDK, чтобы упростить разработку Android и сделать ее более интуитивно понятной:
- У разработчиков теперь есть больше возможностей настройки производительности для оптимизации своих моделей на разных устройствах: запускать модели на графическом процессоре, с NNAPI или с несколькими потоками процессора.
- Результаты рендеринга модели могут стать узким местом для производительности Android. Поэтому, чтобы помочь с этим, мы создали стандартизированные методы для доступа к результатам прогнозирования и отображения их на экране.
- Параметры предиктора можно настраивать «на лету», в результате чего код становится более чистым и выразительным.
3. Разработчики также получили больший контроль над пользовательским интерфейсом своего приложения с помощью вариантов модели:
- Быстрые модели оптимизированы для производительности во время выполнения. Это следует использовать в тех случаях, когда прогнозирование модели должно происходить быстро (например, обработка видео, предварительный просмотр в реальном времени и т. Д.). Это требует компромисса с точностью.
- Точные модели оптимизированы для отображения наилучшего прогноза модели. Это следует использовать в тех случаях, когда вам нужно самое высокое разрешение для использования с неподвижными изображениями (например, для редактирования фотографий). Этот вариант модели имеет компромисс скорости.
- Маленькие модели оптимизированы под размер модели за счет точности. Это следует использовать в тех случаях, когда вы хотите, чтобы пакет вашего приложения был как можно меньше.
4. Мы также предоставили разработчикам iOS больше возможностей выбора и гибкости, используя Fritz Object Detection, добавив поддержку моделей, созданных с помощью Turi Create и Create ML, программ обучения моделей Apple.
5. Возобновление частичной загрузки моделей. При обновлении моделей по беспроводной сети загрузка иногда прерывается. Fritz SDK теперь поддерживает возобновление частичных загрузок, что сокращает время ожидания пользователей и позволяет им сэкономить на затратах на передачу данных, связанных с процессом.
Оценка позы V2
В сентябре мы выпустили ряд серьезных улучшений для оценки позы Фрица, призванных повысить точность, стабильность и общую производительность модели.
- Обновленная архитектура модели для повышения точности. Во-первых, мы обновили архитектуру модели оценки позы, чтобы повысить ее точность на всех устройствах. Новая модель ищет ключевые точки в меньших областях каждого изображения, что приводит к более точному расположению ключевых точек и меньшей изменчивости.
- Сглаживание позы для повышения гибкости и настройки. Во-вторых, чтобы повысить стабильность прогнозов модели между кадрами, мы добавили параметры для сглаживания результатов как для iOS, так и для Android. Сглаживание позы помогает разработчикам создавать более плавные движения из предварительно записанного или снятого в реальном времени видео. Заставить аватаров танцевать в дополненной реальности или следовать упражнениям спортсмена для анализа теперь проще, чем когда-либо.
Сегментация изображений, версия 2
Помимо поддержки новых вариантов использования (см. Выше), мы также внесли ряд улучшений в Fritz Image Segmentation, которые упростили работу с этой функцией. В частности, мы изменили то, как разработчики могут выбирать отображение результатов прогнозирования с помощью ряда новых вспомогательных методов. Чтобы узнать больше об этих методах, ознакомьтесь с нашей официальной документацией.
- Наложение маски. Этот метод позволяет разработчикам просматривать результат маски, наложенный поверх исходного входного изображения. Полезно для создания зеленого экрана и «Черного зеркала» или для добавления стилей и эффектов непосредственно к сегментированному человеку или объекту.
- Вырезание маски. Этот метод, который в Photoshop обычно называют «обтравочными масками», автоматически вырезает маску из исходного изображения. Отлично подходит для разработки приложений для наклеек и приложений для вырезания и вставки.
- Смешивание цветов маски. Этот метод смешивает цвет маски с цветом исходного изображения. Идеально подходит для смены цвета волос или ногтей, а также для примерки других цветов.
- И, наконец, мы увеличили скорость предварительной и постобработки изображений на 50% на iOS, что делает работу с Fritz Image Segmentation и нашими другими API-интерфейсами Vision более увлекательной и эффективной.
Передача стиля V2
В ноябре мы выпустили крупное обновление для нашего Fritz Style Transfer, которое включало улучшенную производительность для видео, а также более гибкие и простые в использовании API.
- Межплатформенная стабильная передача стилей. Во-первых, мы улучшили производительность модели при работе с видео. Другие решения для передачи видео на устройстве технически работают с видео, но качество нестабильно, кадры часто мерцают и выглядят нестабильно. Но теперь разработчики, использующие Fritz AI, увидят гораздо более стабильный вывод видео при сборке как на Android, так и на iOS. Вот быстрое сравнение:
- Гибкое разрешение изображения (только для iOS). Одной из основных проблем при работе с переносом в стиле на устройстве является определение размеров вывода изображения или видео. Модели передачи стилей, предоставляемые Fritz AI, теперь допускают динамические размеры входных и выходных данных, что позволяет разработчикам легко определять выходные разрешения, необходимые их приложениям, без дополнительной предварительной обработки. Ознакомьтесь с официальной документацией, чтобы узнать больше.
FritzVisionVideo
Применение функций машинного обучения к предварительно записанному видео на мобильных устройствах - особенно сложная проблема. От извлечения кадра до отображения результатов обработки и т. Д., Работа с таким видео часто требует работы с трудноуправляемыми конвейерами.
Чтобы облегчить разработчикам работу с предварительно записанным видео (только для iOS - скоро появится Android), мы создали FritzVisionVideo, новый комплексный API высокого уровня.
Благодаря FritzVisionVideo разработчики теперь оптимизировали методы для более простого взаимодействия и работы с захваченным видео:
- Запускайте модели на видео с помощью встроенных фильтров или настраивайте свои собственные
- Асинхронное извлечение одного или нескольких видеокадров
- Сшить видео вместе
- Экспортируйте обработанные видео и сохраняйте их в фотопленке устройства.
- Легко отображать обработанные видео
Вот пример фрагмента кода (и демонстрационное видео), демонстрирующий применение нескольких моделей - сегментации волос и переноса стиля - к предварительно записанному видео с использованием встроенных фильтров:
Fritz AI Studio: генератор наборов данных
Генератор наборов данных Fritz AI Dataset Generator - это наш последний выпуск продукта и один из самых амбициозных.
Генератор наборов данных пытается решить проблему с холодным запуском мобильного машинного обучения для сбора данных, позволяя мобильным разработчикам и инженерам машинного обучения создавать наборы данных программно - процесс, также известный как генерация синтетических данных.
В частности, генератор генерирует данные, которые более точно соответствуют тому, что будут видеть модели, развернутые на мобильных устройствах, что приводит к повышению производительности на устройстве.
Открытый исходный код и сообщество
В 2019 году мы также немало поработали над нашими примерами с открытым исходным кодом, демонстрационными приложениями и другими ресурсами. За последний год мы убедились, насколько важно предоставить нашим пользователям простые в использовании инструменты, учебные материалы и многое другое, чтобы помочь им воплотить в жизнь свои идеи проектов мобильного машинного обучения.
Примеры использования Fritz AI
Одна из самых крутых вещей в 2019 году - это то, что ряд невероятных мобильных приложений, использующих Fritz AI, не только внедряются в производство, но и вызывают значительный резонанс во всех отраслях. Мы хотели продемонстрировать эти удивительные возможности, поэтому мы написали серию тематических исследований, в которых изучается, как разработчики используют Fritz AI для создания исключительного инновационного взаимодействия с пользователем.
От обнаружения прыщей до фото / видео редакторов на базе машинного обучения, инструментов для создания богатого контента и т. Д. - мы увидели впечатляющий диапазон мобильных приложений, использующих искусственный интеллект Fritz и машинное обучение на устройстве, чтобы порадовать своих пользователей. :
Консолидированное репо для демонстраций и примеров проектов
Одной из наших основных инициатив в 2019 году была реструктуризация нашего открытого исходного кода, демонстрационных проектов и примеров в один главный репозиторий. По мере того, как мы продолжали создавать все больше и больше функций, инструментов и т. Д., Стало трудно найти и поделиться этими ресурсами по мере появления проблем.
В этом обновленном репозитории у нас есть образцы проектов для iOS и Android (а также для работы с Unity), начиная от стандартного кода для настройки камеры в Android и заканчивая полнофункциональными демонстрационными приложениями, которые показывают, как реализовать Fritz AI. готовые модели.
Отличное мобильное машинное обучение
Время от времени у нашей команды бывают так называемые «дни FedEx». Идея проста. Выберите из своих невыполненных проектов, которые вы хотели бы выполнить, и подготовьте его к отправке к концу дня.
На днях весной я решил создать список Потрясающих, специально ориентированный на мобильное и периферийное машинное обучение. Я всегда был поклонником общего формата списков Awesome на основе GitHub (например, это или это), поэтому мне пришлось последовать их примеру. Включает в себя широкий спектр ресурсов, включая ссылки на фреймворки и инструменты, технические руководства, публикации и многое другое.
И вот конечный результат, обновляемый еженедельно:
Примечание. Это хранилище ресурсов также поддерживается прямо здесь, на Heartbeat.
Сердцебиение
Heartbeat, сообщество разработчиков и публикаций, спонсируемое Fritz AI, в 2019 году продемонстрировало колоссальный рост: почти в 6 раз увеличилось общее количество просмотров страниц, опубликовано сотни статей и руководств, а также увеличилось количество членов нашего сообщества Slack, которое принесло нам заманчиво близко к 900 членам. Вы можете узнать больше о нашем прогрессе в нашем специальном обзоре на конец года здесь:
Руководства по машинному обучению
Мобильное машинное обучение - это особенно сложная технология для начала, учитывая, что две дисциплины, из которых она извлекается, по своей сути совершенно разные с точки зрения набора навыков, баз знаний и даже способов мышления.
Чтобы упростить сложный ландшафт задач машинного обучения для мобильных разработчиков, мы также создали комплексные высокоуровневые руководства для ряда этих задач, в частности для задач, которые мы включаем в наши предварительно обученные API:
- Распознавание изображений / маркировка
- Обнаружение объекта
- Передача стиля
- Сегментация изображения
- Оценка позы
С нетерпением жду 2020 года
Поскольку это возможность для нас услышать наш собственный рог, позвольте мне в заключение сказать следующее: мы создали так много крутых вещей в 2019 году и на несколько шагов приблизились к нашему видению, чтобы стать окончательной мобильной платформой машинного обучения.
У нас большие планы на 2020 год. Мы обещаем не останавливаться на достигнутом - от добавления новых функций и улучшения наших текущих предложений до запуска новых инициатив сообщества и экспериментов с новыми видами полезного контента. Но, учитывая все вышесказанное, мы будем рады получить известие от вас - дайте нам знать, что вы хотели бы увидеть от нас в наступающем году! Такая обратная связь действительно помогает нам задуматься над тем, что мы создали на данный момент, и запланировать на будущее.
До встречи в новом году! До тех пор…
Счастливое здание,
Команда Fritz AI
Примечание редактора. Heartbeat - это онлайн-публикация и сообщество, созданное авторами и посвященное изучению зарождающегося пересечения разработки мобильных приложений и машинного обучения. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.
Являясь независимой редакцией, Heartbeat спонсируется и публикуется Fritz AI, платформой машинного обучения, которая помогает разработчикам учить устройства видеть, слышать, ощущать и думать. Мы платим участникам и не продаем рекламу.
Если вы хотите внести свой вклад, переходите к нашему призыву участников. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Fritz AI Newsletter), присоединяйтесь к нам на » «Slack и подписывайтесь на Fritz AI в Twitter , чтобы узнавать обо всех последних новостях в области мобильного машинного обучения.