ПРОБЛЕМЫ ВНЕДРЕНИЯ EMGU CV В УНИВЕРСАЛЬНОЕ ПРИЛОЖЕНИЕ ДОПОЛНЕННОЙ ВИРТУАЛЬНОСТИ

Аннотация: Использование библиотек компьютерного зрения существенно ускоряет процесс разработки приложений, использующих алгоритмы обработки растровых изображений.

Ключевые слова: дополненная виртуальность, EmguCV, универсальная платформа Windows

Технология дополненной виртуальности является новым и перспективным направлением развития систем компьютерного зрения и моделирования виртуальной реальности. На рынке мобильных приложений все чаще стали появляться игры, совмещающие реальный и виртуальный миры. Photorun - игровое приложение в жанре 2D платформер для Windows Phone, которое позволяет пользователям самим создавать игровые уровни на основе фотографий, используя технологию дополненной виртуальности. Алгоритмы дополненной виртуальности являются ресурсоемкими для мобильных устройств, поэтому создание игровых уровней происходит на удаленном WCF сервисе, а вся система имеет клиент-серверную архитектуру, в которой в роли сервера выступает WCF сервис, а клиентом является игра на базе фреймворка XNA. Алгоритм создания виртуального мира состоит из двух частей: выделение границ на фотографии и описание игрового уровня по ним. Первая часть состоит из отдельных шагов алгоритма Кэнни, которые имеют оригинальную реализацию на языке C#, а для улучшения быстродействия используют механизм параллелизма уровня данных, предоставляемый библиотекой Task Parallel Library. Вторая часть описывает игровой уровень в виде строки особого формата на основе бинарного изображения исходной фотографии.

Самостоятельная реализация и оптимизация алгоритмов компьютерного зрения могут занять много времени. Библиотеки компьютерного зрения содержат готовые методы обработки растровых изображений. Одной из них является EmguCV – .NET обёртка над популярной библиотекой OpenCV. Она содержит методы, необходимые для реализации первой части описанного алгоритма построения игровых уровней. Реализация этих методов имеет лучшее быстродействие, чем авторская версия, что является критичным для игрока, отправившего фотографию по сети Интернет на удаленный сервис и ожидающего игровой уровень. Поэтому использование EmguCV является более предпочтительным.

Развитие проекта Photorun, прекращение поддержки Windows Phone и появление универсальной платформы Windows (UWP) сыграли решающую роль в принятии решения о переносе игры на UWP. Использование этой платформы и Monogame – кроссплатформенной реализации XNA, позволяет осуществить миграцию проекта с минимальными изменениями кодовой базы, запустить игру сразу на нескольких форм-факторах и стандартизировать графический интерфейса пользователя путем создания его новой версии на базе языка XAML и шаблона Model-View-ViewModel, отказавшись от существующей оригинальной реализации с использованием игровых компонентов XNA.

Медленное или нестабильное интернет соединение может стать серьезной проблемой для пользователей, т.к. теряется сокращение времени создания игровых миров, достигнутое за счет быстродействия удаленных вычислений. Современные мобильные устройства имеют высокую производительность, а перенос проекта на UWP подразумевает работу игры на таких устройствах как планшеты и персональные компьютеры, имеющих еще большее быстродействие. Решением проблемы с интернет соединением является минимизация передаваемого по сети объема данных, которая может быть получена путем частичного или полного переноса алгоритмов дополненной виртуальности на клиент. Стоит учитывать, что это можно делать только по согласию пользователя при наличии возможности диагностировать на устройстве проблемы с сетью, а также сравнительно небольшом росте времени, затраченном на вычисления. К сожалению, перенос клиента на UWP и особенности лицензионной политики EmguCV не позволяют использовать эту библиотеку для решения описанной проблемы. Это связано с тем, что разработчику надо иметь дорогостоящую коммерческую лицензию на использование этого инструмента в UWP проектах. В силу ряда причин проект Photorun является проприетарным, оставаясь для конечного пользователя бесплатным. Для сохранения этого статуса и решения проблемы переноса алгоритмов на устройство игрока можно использовать доработанную авторскую реализацию алгоритма выделения границ на фотографии, т.к. универсальная платформа Windows не предоставляет пространств имен и классов фреймворка .NET для работы с изображениями, которые используются в серверной реализации алгоритма.