FreeTrack — это универсальное приложение оптического отслеживания движения для Microsoft Windows , выпущенное под лицензией GNU General Public License , которое можно использовать с обычными недорогими камерами. Основное внимание уделяется отслеживанию головы с использованием в виртуальной реальности , симуляции , видеоиграх , 3D-моделировании , компьютерном проектировании и общих вычислениях без помощи рук для улучшения доступности компьютера . Отслеживание можно сделать достаточно чувствительным, чтобы требовались лишь небольшие движения головы, чтобы глаза пользователя никогда не отрывались от экрана.
Камера расположена так, чтобы наблюдать за жесткой точечной моделью пользователя, точки которой необходимо изолировать от фонового света посредством физической и программной фильтрации. Движение отслеживается с шестью степенями свободы (6DOF): рыскание, наклон, крен, влево/вправо, вверх/вниз и вперед/назад. Поддерживаются Windows-совместимые видеоустройства, такие как веб-камеры , а также специальная камера Nintendo Wii Remote , камера iPhone TrueDeep с Eyeware Beam и камеры NaturalPoint ( TrackIR , SmartNav и OptiTrack).
FreeTrack может выводить данные отслеживания головы в программы напрямую, используя собственный открытый интерфейс, а также интерфейсы TrackIR , SimConnect и FSUIPC. Программы, поддерживающие эти интерфейсы, считаются FreeTrack-совместимыми . FreeTrack также может эмулировать мышь , клавиатуру и джойстик (через PPJoy), если программа не поддерживает прямой интерфейс.
FreeTrack написан на Delphi 7 и использует DirectShow и DirectX . Отслеживание головы достигается с помощью реализации четырехточечного итеративного алгоритма оценки позы ДеМентона (POSIT) [1] и трехточечного геометрического алгоритма Альтера . [2]
FreeTrack использует камеру для сбора информации в режиме реального времени о точечной модели, которую носит пользователь. А именно координаты изображения точек модели, которые либо получаются непосредственно с камеры, либо извлекаются из видеопотока. Эти координаты используются для генерации оценки реальной позы головы, которую пользователь может преобразовать несколькими способами для создания виртуальной позы. Одно из наиболее фундаментальных преобразований включает в себя усиление вращения, так что требуются лишь небольшие движения головой. Наконец, виртуальная поза отправляется на выбранные пользователем выходы. Все это происходит в фоновом режиме, а статус отслеживания отображается на панели задач .
Доступен предварительный просмотр в 3D, который показывает виртуальное положение и ориентацию головы для данной реальной позы головы и может просматриваться с разных точек зрения, включая вид от первого лица. Это значительно облегчает тестирование и облегчает экспериментирование с различными настройками.
Каждая степень свободы (ось) имеет кривую реакции, которую можно изменить, чтобы изменить способ движения виртуальной головы при заданном реальном движении головы. Обычно это используется для создания центральной мертвой зоны, чтобы голова пользователя могла там быть более расслабленной.
Кнопки клавиатуры, мыши и джойстика можно использовать для переключения настроек отслеживания, включая расположение виртуального центра (например, для регулировки положения сиденья в автомобиле), а также индивидуального переключения осей и выходов.
Для камер NaturalPoint FreeTrack может предоставлять расширенные функции и уровень настройки, недоступный в официальном программном обеспечении.
В большинстве случаев разрешения 320×240 достаточно, оно способно обеспечить гораздо более высокое субпиксельное разрешение , достаточное для точного управления курсором на мониторе с высоким разрешением. Разрешение 640×480 и выше имеет убывающую отдачу и соответствует экспоненте [ почему? ] увеличение загрузки ЦП, если сжатие недостаточно до достижения компьютера. Более высокие разрешения становятся более важными на больших расстояниях от камеры. В Wii используется сенсор с низким разрешением 128×96, который, по мнению некоторых, приводит к тряске при отслеживании и может потребовать сглаживания для повышения стабильности за счет снижения отзывчивости. [15]
При том же разрешении монохромные датчики могут разрешать более мелкие детали гораздо лучше, чем цветные, из-за отсутствия массива цветных фильтров .
FreeTrack использует интерполяцию с видеоустройствами с низкой частотой кадров для улучшения плавности панорамирования. Однако скорость реагирования принципиально ограничена частотой кадров; Веб-камера с частотой 30 кадров/с имеет максимальную задержку отклика 33,3 миллисекунды по сравнению с 8,33 миллисекунды для камеры со скоростью 120 кадров/с. Для сравнения: время реакции человека на визуальный стимул (рефлекс пальца) обычно составляет около 200 мс; 30 мс можно рассматривать как соревновательный пинг в онлайн-играх, основанных на рефлексах, а частота обновления ЖК-монитора обычно составляет 17 мс.
Более высокая отзывчивость дает большее ощущение контроля, но поскольку виртуальное движение головы усиливается, это также может привести к ее нереально быстрому движению. По этой причине некоторые программы ограничивают скорость движения головы, теряя часть отзывчивости камер с более высокой частотой кадров.
Более широкий угол обзора позволяет расширить область отслеживания при нахождении в непосредственной близости от камеры. На больших расстояниях широкий угол нежелателен, большая часть кадра не используется, и эффективное разрешение падает быстрее. Также можно увидеть больше периферийного света, который может мешать отслеживанию. Угол обзора можно уменьшить за счет использования цифрового зума за счет разрешения.
Пульт Nintendo Wii Remote эффективно не использует процессор, камеры NaturalPoint используют небольшой объем, а обычные видеоустройства могут использовать значительный объем, в зависимости от марки и конкретных используемых настроек камеры. PlayStation Eye, работающий с тем же разрешением и частотой кадров, что и TrackIR 4, будет очень требователен к одноядерному процессору. Однако современные многоядерные процессоры делают эту проблему менее серьезной. Разрешение и частоту кадров всегда можно уменьшить для экономии ресурсов ЦП.
FreeTrack требует, чтобы точки отслеживания были изолированы от всего остального света; лучше всего это делать с помощью инфракрасных светодиодов и фильтра, блокирующего видимый свет, перед камерой. Фотопленку или магнитный носитель информации на дискетах можно использовать в качестве недорогих фильтров видимого света. Дальнейшую фильтрацию можно выполнить программно, отрегулировав экспозицию и порог.
Все видеоустройства, такие как веб-камеры, имеют встроенный фильтр, блокирующий инфракрасное излучение, который можно снять, чтобы повысить чувствительность к инфракрасному свету, что обеспечивает лучшую изоляцию точек и возможность световозвращающего отслеживания. Обычно это простая и обратимая процедура для большинства веб-камер.
Пульты Wii Remote и камеры NaturalPoint предназначены для отслеживания точек в инфракрасном диапазоне, поэтому они уже оснащены фильтрами, блокирующими видимый свет.
Модели можно изготовить своими руками с минимальными затратами, используя легкодоступные электронные компоненты. Комплекты компонентов и полностью собранные модели также можно приобрести у некоторых членов сообщества FreeTrack.
Модель с активной точкой использует видимые или инфракрасные светодиоды (5 мм или больше) для обозначения точек слежения, питаемые от батареи, трансформатора (штекерного блока) или USB . Электрическая схема очень проста и может быть изготовлена человеком с небольшим опытом работы с электроникой или вообще без него.
Обычные светодиоды, подобные тем, которые используются в пультах дистанционного управления , имеют узкий, сфокусированный луч, который не подходит для оптического отслеживания движения. Их можно легко превратить в широкоугольные светодиоды, подпилив кончики линз вниз. В качестве альтернативы можно приобрести широкоугольные светодиоды в специализированных магазинах электроники, например, инфракрасные светодиоды Siemens/Osram SFH485P с полууголом 40 градусов.
Световозвращающий материал можно использовать для обозначения точек отслеживания путем освещения источником инфракрасного света. Эта конфигурация не требует подключения к пользователю проводов или батарей, но более восприимчива к помехам фонового света. В большинстве случаев внутренний блокирующий инфракрасный фильтр веб-камеры необходимо удалить, чтобы повысить чувствительность настолько, чтобы можно было видеть инфракрасный свет, отраженный точками слежения.
FreeTrack имеет простой интерфейс, который может свободно использоваться сторонними программами, такими как Eyeware Beam, для доступа к данным отслеживания 6DOF, как реальным необработанным измерениям, так и виртуальным. Он не зависит от аппаратного обеспечения, поэтому не зависит от конкретной марки или версии оборудования и может использоваться без ограничений. ARMA 2 от Bohemia Interactive — первая игра, поддерживающая интерфейс FreeTrack [16] , а GP Bikes — первая игра, имеющая эксклюзивную поддержку. [17]
FreeTrack совместим с незашифрованной версией интерфейса TrackIR для отслеживания головы NaturalPoint, который широко поддерживается в играх-симуляторах. NaturalPoint предоставляет разработчикам игр зашифрованную версию интерфейса для более популярных игр с конца 2008 года. Для них требуется программное обеспечение TrackIR версии 4.1.036 или выше, и они несовместимы с FreeTrack. [18] Разработчики первой затронутой игры, DCS: Black Shark , [19] пытались выпустить собственный интерфейс отслеживания головы, но вскоре отменили его по запросу NaturalPoint. [20] Совместимость с FreeTrack по-прежнему возможна при использовании TrackIRFixer для устранения требования шифрования в играх. [21]
TIRViews.dll — это файл библиотеки динамической компоновки , распространяемый вместе с программным обеспечением TrackIR, который обеспечивает индивидуальную поддержку небольшого количества преимущественно старых игр , используя специальные интерфейсы или хаки памяти для облегчения управления просмотром. [22] Несмотря на нарушение лицензионного соглашения программного обеспечения TrackIR , [23] его можно использовать с FreeTrack.
SDK интерфейса TrackIR компании NaturalPoint доступен только по подписанному лицензионному соглашению [24] и на него распространяется NDA , поэтому, хотя FreeTrack является бесплатным программным обеспечением , компонент интерфейса TrackIR должен иметь закрытый исходный код . [25]