В последнее время довольно много внимания я уделял изучению Flash-приложений с аспектом использования 3D-объектов, и в частности так называемой
дополненной реальности. Любопытство и удивление от увиденного, как это часто бывает, довольно быстро переросло в желание создать нечто подобное. Создавать клонированные приложения с уже реализованными идеями было скучно, да и вообще «не комильфо», потому было решено придумать что-то новое.
Основным минусом существующих Flash-приложений «дополненной реальности» является обязательное наличие специфичного маркера. Конечно, можно его распечатать или нарисовать, но для практического применения это весьма неудобно. А что если «маркером» сделать не квадратик на листочке, а самого себя? В мире довольно давно существует
вполне отлаженная технология распознавания человеческих лиц на изображении и я решил что можно использовать в качестве маркера лицо наблюдателя.
После некоторых поисков, я нашёл в сети ActionScript 3.0 библиотеку
Marilena, основанную на вышеуказанной технологии OpenCV (кстати, в виде AS3 она появилась она сравнительно недавно). Конечно, у неё есть свои минусы, в частности она потребляет довольно много ресурсов для поиска, а также в исходном виде не учитывает углов поворота объекта поиска. Тем не менее, с задачей поиска лица на изображении она справляется, и справляется на отлично.
Так, имея в руках все инструменты оставалось лишь придумать идею и она пришла сама собой. А ещё через несколько дней родился этот проект:
Проснись, Нео!
Сразу скажу, что для того чтобы почувствовать себя в роли Нео, вам потребуется веб-камера и относительно мощный компьютер. К сожалению, не было возможности потестировать на разных машинах, возможно, вы сообщите о существенных проблемах в комментариях :) Тем не менее, думаю, это как раз тот случай, когда лучше попробовать самому.
Фактически, это не совсем «дополненная реальность» в том виде, в котором она представлялась нам ранее, но ещё один способ взаимодействия человеческого интерфейса с компьютерным. Да и практического применения, о котором я говорил в начале, у этой игрушки не много — всё же ресурсоёмкость поиска даёт о себе знать. Тем не менее, как мне кажется, использование подобных технологий в будущем может (и непременно должно), повлиять на построение пользовательских интерфейсов.
Enjoy!
P. S. Архив с исходным кодом и краткое описание представлены в общий доступ на
этой странице.
UPD: Сегодня обнаружил оптимизированный, гораздо более быстродействующий вариант библиотеки обнаружения лиц, а это открывает новые перспективы.