Интерфейс фонарика - это библиотека, позволяющая легко создавать трёхмерный пользовательский интерфейс на базе жестов. Для ввода жестов данный интерфейс использует обыкновенный карманный фонарик и стандартную веб-камеру. При этом допускается расширение активной зоны за счёт использования дополнительных камер, причём процедура калибровки камер выполняется прозрачно для пользователя и в реальном времени. Помимо библиотеки, доступен полный исходный код.
Интерфейс фонарика позволяет решить еще одну серьезную проблему: задачу калибровки камер в системах оптического Motion Capture. Классические подходы, использующие эталонные объекты или светящиеся точки требуют больших вычислительных ресурсов и могут давать ошибочный результат (в силу вычислительной неустойчивости задачи и наличия помех). Интерфейс фонарика, в отличие от традиционного Motion Capture нуждается во всего одной камере для определения трехмерного положения маркера (т.е. фонарика). Если мы имеем откалиброванную и не откалиброванную камеры, которые обозревают перемещения одного и того же фонарика, то мы получим две пространственные траектории перемещения (по одной относительно каждой из камер). Совмещая эти траектории в пространстве, мы сможем вычислить положение и ориентацию одной камеры относительно другой, а также отношение их фокусных расстояний. Иными словами, мы произведем калибровку. Поскольку каждая камера работает независимо, и в качестве калибрующих перемещений может выступать любая активность пользователя, процедуру калибровки можно выполнять в фоновом режиме. Т.е. при запуске системы активна одна камера (которой достаточно для начала работы), а затем, незаметно для пользователя, выполняется калибровка всех остальных камер. При этом процесс калибровки может выполняться даже в случае использования нескольких фонариков, т.е. на пользователя не накладывается абсолютно никаких ограничений. Т.к. калибровка выполняется динамически, то мы можем позволить себе произвести перекалибровку камеры, если первоначальная калибровка оказалась недостаточно точной, либо если камера была перемещена пользователем в другое место. Перекалибровка выполняется автоматически, поскольку система постоянно проверяет каждую камеру на предмет возможных изменений. Каждая камера функционирует независимо от остальных, следовательно, система может временно отключать те камеры, которые гарантированно не видят фонарики (включая их, когда фонарики приблизятся к их зоне видимости). Также данное свойство позволяет использовать несинхронность камер для увеличения частоты кадров, и чрезвычайно хорошо распараллеливать систему (в графе потоков данных отсутствуют циклы, а объем передаваемых данных минимален). Описанные выше свойства позволяют строить системы, состоящие из очень большого числа камер, не требующие при этом очень больших вычислительных ресурсов. Иными словами, данная система может успешно функционировать не только в масштабах персонального компьютера, но и в масштабах больших экранов. При этом интерфейс фонарика остается простым, недорогим и удобным решением, подходящим для взаимодействия с любыми 3D-объектами.
Растекание лавовых потоков
Для описания процесса течения лавовых потоков или роста лавовых куполов рассматривается задача численного моделирования растекания вязкой неоднородной несжимаемой жидкости под действием...