Внешний вид интерактивного пола

Интерактивный пол «Дельфины»

3 сентября 2016 года во Владивостоке на острове Русский открылся научно-образовательный комплекс Приморский океанариум. Эксклюзивно для океанариума был разработан интерактивный пол «Мелководные рыбки», который стал частью образовательного комплекса. В рамках работы над проектом для океанариума был разработан ещё один интерактивный пол - «Дельфины». Проект был предложен на рассмотрение заказчику как альтернатива «Мелководным рыбкам». Функционал полностью идентичен, отличается только наполнение: вместо мелководных рыбок пользователь взаимодействует с дельфинами на фоне затонувшего корабля. Данный проект является ярким примером того, насколько гибким является ядро системы интерактивного пола. Без особого труда с точки зрения программирования, можно заменить графику и получить совершенно новую инсталляцию.

Взаимодействие с пользователем строится на работе инфракрасных камер. Для трэкинга движущихся объектов в сцене был написан отдельный модуль на языке C++. Он использует инфракрасную картинку с камер, несколько хитрых алгоритмов отслеживания движущихся объектов и специальный алгоритм разметки (венгерский алгоритм). Для синхронизации нескольких камер между собой и вычисления положения камер относительно отображаемой поверхности был написан специальный модуль калибровки. Он использует широко известные методы калибровки на основе распознавания шаблона в виде шахматной доски.

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

Модуль трэкинга и калибровки был интегрирован в Unity в качестве плагина, посредством преобразования неуправляемого кода на C++ в управляемый на C# (.Net marshalling). Данный модуль представляет ядро системы интерактивного пола, которое также используется в других аналогичных системах (интерактивные полы «Мелководные рыбки» и «Стрекозы»).

  • C++
  • OpenCV
  • C#
  • Unity
  • Kinect
  • Interactive Floor
  • Object Tracking
  • Depth Camera Calibration