Intel RealSense с точки зрения разработчика
У любой современной технологии, в том числе и у Intel RealSense, есть две стороны. Первую, наружную, видит потребитель. В большинстве случаев она яркая, красочная, привлекающая своей новизной. Обратную, изнаночную сторону разработки перспективных идей видят только люди, непосредственно их применяющие. Это территория напряженного труда, проб и ошибок, но и видят разработчики гораздо больше, и мнение их намного авторитетнее.
Долго-долго вынашивал я идею поговорить о том, что представляет из себя технология RealSense изнутри, почему она именно такая, а не иная, об ее недостатках и достоинствах с компетентным специалистом. И вот — ура! — один из крупнейших российских специалистов по RealSense Константин cappasity Попов согласился ответить на мои вопросы.
Идея перцептивного управления витает в воздухе уже давно, первые попытки реализации относятся еще к 2000-м годам. Почему именно сейчас появилась возможность воплотить ее в жизнь?
Свое первое знакомство с подобным управлением я начал еще с игр для PlayStation 2. Основной проблемой была точность взаимодействия — например, управление интерфейсом было крайне неудобным из-за длинного отклика. Самую удачную реализацию я увидел благодаря первому Kinect, созданному на базе технологии от компании PrimeSense. Решение было действительно удобным, и, наконец-то, можно было удобно управлять играми). Далее на рынок вышла Leap Motion, и вот теперь мы видим RealSense и то, как технология перешла от игр к более серьезному применению.
Насколько я вижу ситуацию, всегда было две проблемы: а) техническая б) маркетинговая. С технической точки зрения нужно было иметь дешевую камеру, которая обладала бы достаточной точностью для моментального отклика на действия пользователя. То есть нужно было иметь большой FPS, как можно меньше шумов (чтобы снизить нагрузку на пост-обработку данных) и карту глубины с разрешением больше чем VGA. PrimeSense смогли сделать идеальный продукт, и у них до сих пор есть последователи типа Structure.IO, которые продают сенсоры на базе чипов PrimeSense. Но, увы, компания Apple купила PrimeSense и закрыла доступ к этим камерам и дальнейшую поддержку разработчиков. Вторая проблема — минимальная дистанция. RealSense может определять положение рук (предоставлять данные по глубине) на расстоянии в два раза более бликом, чем PrimeSense, — и это просто замечательно. Третья проблема — удобство и функционал SDK. Вот здесь Intel обошли как OpenNI2, так и Microsoft. Кроме базового функционала есть множество плюшек, которые полезны разработчику. Intel подкупает разработчика тем, что помимо нового управления дает еще и функционал по распознаванию речи, распознаванию эмоций, определению головы и лица, сегментации фона и так далее. А это стимулирует!
Теперь перейдем к маркетинговой составляющей. Что мы (мы — команда Cappasity) всегда не любили, так это тратить деньги на новые технологии, прикручивать их и потом не видеть прироста пользователей. Мы готовы прикрутить что-нибудь ненужное, если нам за это заплатят. Но, как я знаю, большинству разработчиков никто не платит за интеграции, а рассказывают лишь про великие возможности в далеком будущем. В свое время мы прошли и через Razer Hydra, и через контроллер Falcon, и пр. И вот тут Intel делает очень правильный шаг — они всем говорят, что RealSense — это устройство, а не отдельная камера. То есть мы подразумеваем, что эта камера будет встроена в новые ультрабуки, и, следовательно, становится понятно, кто будет пользователем нашего продукта — это обычные люди, которые покупают ультрабуки в том же магазине электроники Best Buy. А вот разрабатывая, например, под Kinect 2, мы не видим своих клиентов — их приходится создавать самостоятельно, фактически стимулируя продажи устройств Microsoft.
То есть Intel стали первыми, кто начал успешно выстраивать экосистему вокруг технологии RealSense, и поэтому мы бросили все и ушли с головой в поддержку Intel с ее устройствами. Мы видим реальные деньги, а это лучший стимул.
В каком направлении движется RealSense? Какова главная цель этой технологии?
Основная цель — дать возможность нового типа коммуникации и взаимодействия с окружающим миром. В SDK уже есть базовый функционал по работе с определением рук, головы, поиска лица, распознавания эмоций, базовые функции для сегментации данных, базовые функции для сканирования. Сейчас активно продвигается новая камера — R200, которая уже скоро будет в планшетах и мобильных устройствах. Она обладает большей дальностью, с помощью этой камеры можно делать 3D фото, намного удобнее создавать 3D модели окружающего мира. Я считаю, что нам следует ждать дополнительного функционала, которого пока не хватает в RealSense SDK. Было бы здорово, если бы Intel включили в него возможность определения скелета человека и сегментацию для людей, то есть базовый функционал из Kinect 2 SDK. Уверен, что можно ожидать серьезного шага в сторону дополненной реальности, поскольку технология Metaio недавно была куплена компанией Apple (и с конца текущего года закроют доступ к этой технологии), и теперь фактически остается только Vuforia SDK (Qualcomm). А для PC поляна совсем пустая. Открыт вопрос и по поводу виртуальной реальности, где как раз работа с руками RealSense может стать способом взаимодействия пользователя с окружающим пространством. Сложно представить, сколько ресурсов выделено у Intel на развитие SDK, но мы наблюдаем за разработкой очень сильного SDK, и это здорово!
Какие проблемы не решены в текущей реализации RealSense, какие проблемы не могут быть решены принципиально?
Текущие проблемы связаны с принципом работы IR камер. IR камеры боятся солнца, черного цвета, блестящих и прозрачных поверхностей. Проблемы эти характерны для всех камер подобного типа, и Intel здесь не могут стать волшебниками, если, конечно, не создадут принципиально новую технологию, где бы недостающие данные получались бы путем стерео сопоставления данных с двух цветных камер ;)
Если сравнивать F200 и R200, то последняя уже не так боится темных волос. Подробнее рассуждать по поводу R200 я бы пока не стал, так как железо все же сырое, и мы работаем с альфа версией прошивки. Опять же, я сравниваю с точки зрения применения камеры для 3D сканирования — возможно, для нужд систем управления все хорошо и замечательно.
Мне не нравится качество текущей RGB камеры, и как она настраивается на освещение, но я слышал, что планируется улучшить камеру, и, возможно, некоторые OEM будут использовать свою камеру для RGB канала.
Есть ли конкуренты у RealSense, в каком состоянии они находятся сейчас?
Для близких дистанций есть только Leap Motion. Остальное все на любительском уровне. Но Leap Motion — это, опять же, отдельная камера.
С точки зрения интеграции в устройства, есть Google-проект Project Tango, который все это время был скорее мертв, чем жив из-за проблем с производительностью и обладает значительно более слабым по техническим характеристикам железом. Однако месяц назад прошел анонс по поводу их сотрудничества с компанией Qualcomm, и это вселяет оптимизм. Тем более, что Qualcomm плотно работает с компанией M4D, которая обещает выпустить свои планшеты с 3D камерами. Но я бы сказал, что мы имеем дело с прототипами, которые пока еще далеки от выхода на рынок.
Если говорить об отдельных камерах, то я видел клон PrimeSense — Orbbec. Пока мы еще не получили семплы их камер, и мне сложно судить относительно их SDK — обычно все компании красиво заявляют свои продукты, но качество работы функционала нужно оценивать хотя бы на семплах. Orbbec — китайский дешевый сенсор, и я думаю, он найдет своего пользователя. Да, он совместим с OpenNI2, и если будет поддержка Linux, какое-нибудь комьюнити вокруг него соберется.
Неплохой SDK у Structure.io, но мне непонятно, что будет у них дальше, ведь складские запасы чипов PrimeSense, какими бы значительными ни были, рано или поздно закончатся.
Чуть не забыл про Kinect 2, который мог бы победить в номинации «самая большая внешняя камера». Устройство хорошее, но если RealSense сделает поддержку Human Tracking для R200, то поддержка Kinect 2 потеряет какой-либо смысл. R200 уже сейчас дешевле Kinect 2, и не требует огромного блока питания. К тому же, Kinect 2 для Windows перестали продаваться, и можно купить только Kinect 2 для Xbox One и переходник. Это наталкивает на мысль, что тема массового использования устройства не пошла.
Так что с конкурентами пока не густо. Для Intel теперь важно не проиграть главную битву за мобильные устройства.
Реально ли создание общего стандарта (например, на основе RealSense) и консорциума компаний для популяризации и развития перцептивных технологий?
С точки зрения программирования, все реально, и никто, например, не мешал (кроме Apple) поддержать OpenNI2, который был хорошо сделан и задумывался как стандарт для работы с 3D сенсорами. Но крупным компаниям всегда сложно договориться, и пока что я слабо верю, что нас ждет некий стандарт OpenSense;) А было бы здорово! Например, сейчас в нашем SDK уже целых три ветки кода, что усложняет поддержку кода.
Насколько RealSense интересен для потребителя? Готов ли пользователь сейчас отказаться от традиционных интерфейсов в пользу перцептивных?
Это зависит от производителей софта. Пока они не предложат новые удобные реализации интерфейсов, пользователи будут пользоваться традиционными способами взаимодействия. Но мы видим, что Microsoft продвигает тему голограмм, и, разве что, только самый ленивый сейчас не занимается виртуальной реальностью — я уверен, что в ближайший год будет происходить адаптация пользователей под новые интерфейсы.
С точки зрения потребителя, который покупает ультрабук, совсем неплохо получить за те же деньги еще и 3D камеру. Пока для многих потребителей это останется игрушкой, но, например, наши потенциальные клиенты получат действительно настоящий инструмент для работы с 3D объектами. И я вижу, что и другие компании нашли интересное и полезное применение 3D камер. Производители игр, стараниями Intel, начинают обращать внимание на возможность делать те же аватары и добавлять новые элементы управления, в том числе и голосовое. Экосистема не выстраивается за один год, и Intel предстоит большая и сложная работа.
Насколько удобен RealSense SDK сейчас, что разработчики ждут от него в будущем?
Я видел на форумах несколько запросов о поддержке Linux, так как ребята, работающие с роботами, любят ROS. Многие ждут и части функционала из опенсорсного PCL SDK, кто-то хочет OpenCL оптимизацию и больше бесплатных алгоритмов компьютерного зрения ;) Но последнее — уже из разряда «плюшек».
На мой взгляд, не повредили бы небольшие фреймворки для популяризации SDK. Я, опять же, на все смотрю через призму своей работы — 3D сканирования, работы с мешем и так далее. Когда мы выступали на GDC 2015, многие посетители нашего стенда спрашивали о готовом SDK для аватаров. Многие разработчики ленивы или не обладают должными знаниями, чтобы решать такие вещи самостоятельно. Они ждут поддержку в Unity, чтобы была интеграция по одному клику).
Также все ждут мобильных платформ. Много вопросов про Windows 10 tablets. Вот когда это все будет на рынке, тогда и появятся новые задачи и пожелания. Сейчас же все уже очень хорошо и не сыро. RealSense R3 SDK сделал существенный шаг по сравнению с R2.
Есть ли перспективы у RealSense, каким будет его распространение в ближайшее время?
Я жду интеграции R200 в мобильные устройства. Если что-то пойдет не так, то в любом случае останется рынок PC с ультрабуками и планшетами на Windows 10. Так что я ожидаю, что рынок будет расти, но темп роста пока является темой для обсуждения. Ждем CES 2016;)