Мы используем cookie-файлы. Оставаясь на сайте роботов, человек соглашается на использование cookie-файлов.
Подробнее — в «Условиях использования cookie-файлов».

Робохакатон: как мы проверяли фичи iOS 11

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

Что нас заинтересовало

В iOS 11 появилось два больших интересных фреймворка: ARKit и Core ML. Первый из них позволяет создавать 3D-объекты и размещать их в дополненной реальности, чтобы увидеть через айфон или айпад. Второй — Core ML — позволяет использовать на устройствах Apple модели машинного обучения, которые распознают речь, объекты на изображениях и в объективе камеры, следить за людьми и многое другое — возможности применения ограничены только фантазией разработчиков и наличием обученных моделей. Кроме того, нам хотелось посмотреть как работает распиаренная Apple технология Drag and Drop, которая позволяет перемещать контент между приложениями на айпадах, просто перетаскивая его из одного сервиса в другой.

Правила боя

За неделю до старта хакатона разработчики разделились на четыре команды и начали продумывать идеи продуктов.
Одним из главных критериев оценки была возможность использования решения в проектах Redmadrobot. Также мы обозначили целевые технологии: ARKit, Core ML и Drag and Drop.
В итоге каждая команда должна была представить работающее решение с полезным функционалом и возможностью выстроить вокруг него реальный пользовательский сценарий. Весомым критерием при оценке проектов также были дизайн и удобство в использовании.

Тактика

Виртуальное меню

Первая команда разработала приложение для создания меню ресторана или кафе в дополненной реальности — AR Menu.

В основе проекта ARKit и фреймворк Vision от Apple. Посетитель наводит камеру смартфона на стол в кафе, и перед ним появляются блюда из меню с кратким описанием и ценой. Здесь же можно все заказать.

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

AR Компаньон «Кодвардса»

Чтобы сделать обучение еще более интересным, iOS-разработчики предложили добавить к продукту виртуального ассистента, который транслирует в дополненной реальности все, что происходит у детей в браузере. Такой компаньон мог бы повысить вовлеченность в процесс. Так, можно взять телефон и на ближайшем столе посмотреть, как запрограммированный робот выполняет команды и обходит препятствия.

Помимо AR части сделали программирование маршрута на айфоне, препятствия, доску и самого робота.

Узнать сотрудников

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

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

«Поскольку времени было мало, мы решили применить более простой алгоритм распознавания изображений, а не лиц. А поскольку, с точки зрения машины, все люди довольно похожи, этот метод не сработал, — говорит Андрей Рожков. — Нам хотелось научиться обучать машину. В интернете есть много предобученных моделей, но мало инструкций по обучению собственных моделей. Учить отличать бананы от помидоров неинтересно — они довольно разные, а вот распознавать лица — задача сложная. И с ней мы успешно не справились».

Распознавание и стилизация

Команда-победитель научила айфон распознавать текст без участия сервера — с помощью камеры и собственного ПО.

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

«Мы просто хотели попробовать Core ML, посидели, что-то сделали, а потом решили соединить то, что получилось, — рассказывают Никита Тимонин и Саша Игнатьев. — Распознавать тексты с картинки — жизненная задача, которая периодически всплывала в работе, и мы решили подстелить соломки перед тем, как реализовать это в проекте».

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

Но ребятам этого показалось недостаточно — они нашли обученную модель, которая стилизует изображения, копируя стиль известных художников, и встроили ее в приложение «Азбука Вкуса». Теперь пользователи могут нажать на кнопку, и все изображения, которые приложение получает с сервера — фото товаров и рекламные баннеры — будут стилизованы под полотна Пикассо.

«Секрет успеха в том, что у нас не было плана, и мы делали штуки, которые нам нравятся. Потом ребята объединили свои работы в одно решение, а моя никак туда не вписалась, поэтому свою модель я вставил в уже существующее приложение «Азбука Вкуса», — говорит Саша Емельяненков. — У нас была одна серьезная работа и одна забавная. Видимо, благодаря этому балансу мы и выиграли».