Система позиционирования маркера
Данный проект представляет собой решение задачи трекинга (отслеживания) объектов в 3х-мерном пространстве. В отличие от большинства аналогичных решений, наша система способна полностью определить положение объекта в пространстве и его ориентацию по единственной камере низкого разрешения, без использования стереопары.
В качестве объекта было выбрано плоское изображение специального вида – маркер. Из соображений удобства был выбран маркер в виде 9 черных кругов на белом фоне, хотя в принципе может использоваться практически любое контрастное изображение с достаточным числом выделяющихся деталей.
Изображение поступает от обычной веб-камеры с разрешением 640*480 пикселей. Система находит элементы маркера – круги – и зная их положение и характеристики камеры, вычисляет 6 фазовых координат объекта – положение центра (x, y, z), угол поворота, и два угла наклона.
Обработка видео и вычисления производятся в реальном времени, со скоростью 30 кадров в секунду при неполной загрузке одного ядра обычного процессора.
Интересной особенностью проекта является то, что он был успешно портирован на платформу Adobe Flash, сохранив удовлетворительные скоростные характеристики.
Демонстрацией возможностей решения стало приложение для управления персонажем при игре в Quake 3, хотя при этом, из-за особенностей игры, были задействованы не все возможности такого типа управления.
Проект был начат и закончен в январе 2010 года, над ним работали Дмитрий Новицкий, Дмитрий Дзюба, Юрий Тихий и Артем Чернодуб.