SketchAR. Запуск. iOS

Andrey Drobitko
5 min readApr 20, 2017

--

Рады сообщить, SketchAR теперь доступен в AppStore. Это начало новой эры и вот почему…

Напомню, SketchAR — это приложение с помощью которого пользователь видит виртуальный рисунок на поверхности. В одной руке пользователь держит телефон и видит на экране виртуальный рисунок, а другой рукой обводит виртуальные линии эскиза уже на бумаге.

Полгода назад я рассказывал о том как он придуман и какую волну публикаций подняла новость о выходе подобного продукта.
“Game changer app”- так отзывались мировые СМИ и обычные пользователи в социальных сетях. “Правила игры” действительно меняются. Отныне навык рисования становится доступнее всем обладателям смартфонов.
Эти три месяца после вдохновляющей волны публикаций в десятках стран мы активно дорабатывали ядро технологии чтобы виртуальный рисунок удерживался так, чтобы обрисовать виртуальный рисунок получалось без помех.

Ниже описаны ряд проблем с которыми столкнулись:

Метки

После первоначального исследования стало очевидно, что на рынке нет решений для корректного обнаружения рукописных меток. Доступные на рынке технологии заточены под заранее предустановленные метки. Массовый пользователь не будет ничего печатать, ему надо “здесь и сейчас”.
Также проблема усугублялась тем, чтобы предусмотреть частичное и полное перекрытие меток рукой в процессе рисования.

Тесты выявили простой для воспроизведения и эффективный для детектирования вид меток…

Оптимальной оказался Круг.

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

В первой версии SketchAR, в качестве меток, необходимо нарисовать карандашом пять кружков.

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

Исключение-Lenovo Phab 2 Pro с Project Tango, вышел в ноябре 2016-го года. Кратко скажу, что благодаря Project Tango смартфон научился сканировать пространство и сохранять в памяти 3D модель этого пространства. Нам это казалось подходящим решением, НО это только один тип смартфонов. Не сомневаемся, что эта технология станет массовой. Вопрос времени…

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

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

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

Правильные примеры.

Набросок выполненный по фото с помощью SketchAR

Первая Библиотека примеров состояла из крутых эскизов. При тестировании выяснилось, что разница получалась огромная между оригиналом и тем что рисовал пользователь. Это демотивировало дальнейшее желание к развитию. Позже сформировали библиотеку из нейтральных эскизов, которые несложно воспроизвести. Даже если у пользователя получится криво обвести, то работа не выглядит хуже, а смотрится “по другому”.

Публикация в AppStore.

Мы не новички, ведь за плечами 5 лет разработок технологии для издателей и “Приложение Года 2015” в AppStore. Но нельзя быть уверенным в том что публикация пройдет гладко. Разработчики знают какой это стресс, и боль отправлять очередную сборку в AppStore.

На этот раз оказалось хуже чем было. Апп завернули с формулировкой: “На видео-превью изображены iPhone и человек”, а это по правилам Apple не разрешается. Устройство из кадра убрали, хотя подразумевается, что пользователь держит телефон и смотрит в него, чтобы обрисовывать рисунок. Но запрет на показ человека завел эту ситуацию в абсурдно-маразматичный тупик.

Первая версия видео о SketchAR для AppStore.

Первый вопрос который всплыл в головах: “Как показать процесс без рук?”. Ребята из эпла видимо не разобрались в принципе работы приложения, подогнали требования под стандартные правила.

Вторая версия видео (скринкаста с телефона) для AppStore о работе SketchAR

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

Задача: как показать видео про приложение c дополненной реальностью, где создается рисунок с помощью рук, но руки показывать нельзя, а видео-скринкаст записать с только телефона? Правильные ответы присылайте на impossible@apple.com.

Пришлось подать апелляцию и описывать принцип взаимодействия человека с окружающей средой с помощью телефона.

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

Одобрили!

SketchAR and Project Tango

Тест привязки виртуального рисунка на стену с помощью приложения SketchAR.

Проект Tango от Google казалось подходящим решением. Быстро заказали пару смартфонов Lenovo Phab 2 Pro в момент анонса продаж в США и провели первые тесты. Результаты оказались хорошие, но дальше начались проблемы.

SDK Tango Project оказался простым, но в формате нашего приложения применим не полностью.

Ряд противоречий которые пришлось решить:

  • Рука в кадре сбивала датчики и рисунок просто уезжал из кадра. Необходимо было отдельно адаптировать алгоритм для определения рук и не учитывать их при удержании виртуального рисунка.
  • Tango программно запрещает использовать главную камеру и блокирует её во время работы. Мы обошли ограничение переменно включая датчики Танго и основную камеру. Сделали это из-за того, что Танго плохо отрабатывает и удерживает виртуальный объекты на близких расстояниях.
  • Горизонтальное положение смартфона-обязательное условие в Танго. И тут насильно обошли и заставили стандартные SDK Tango работать при вертикальном положении смартфона необходимому для нас.

Но вместе с противоречиями и проблемами открылись возможности применить SketchAR на больших поверхностях, к примеру рисование на стене.

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

Всем конфет!

— Андрей Д., SketchAR

--

--