2012-06-12 5 views
0

Я собираюсь начать работу с разработкой Kinect и надеюсь, что кто-то может понять следующее.Как обнаружить движение в Kinect?

Я надеюсь, что смонтирован kinect на потолке, чуть ниже проектора. В проекторе появится пруд с рыбой (аналогично пакету Microsoft Windows 7 Touch).

Я тогда в надежде обнаружить движение людей в и из проекции и добавить ряби или переместить рыбу и т.д.

мне не нужно, чтобы отслеживать формы народов, просто знать, если они находятся в кадре и где они. На самом деле, если кто-то катит по футболу, я так же счастлив отследить это.

Я буду получать Kinect в ближайшие дни, но если кто-то знает, что это невозможно, пожалуйста, дайте мне знать. Если это возможно, то любые указатели, чтобы начать меня, были бы замечательными.

Спасибо, Patrick.

ответ

1

Перед началом работы вам необходимо решить, какое программное обеспечение использовать для доступа к Kinect. Два наиболее популярных вариантов являются:

Существует также libfreenect, но он обеспечивает только необработанные данные о глубине и, на мой взгляд, сложнее, чем два выше.

Kinect для Windows SDK и OpenNI обеспечивают отслеживание скелета, что является очень удобным способом детального определения местоположения ваших пользователей и частей их тела. Однако в случае вашего проекта отслеживание скелета, скорее всего, не будет работать должным образом, так как Kinect устанавливается на потолок и указывает вниз. Предоставляемые алгоритмы отслеживания лучше всего работают при обращении к пользователю напрямую, и если большая часть тела видна (кроме f

Для вашего проекта вам, вероятно, вообще не понадобится отслеживание скелета (его можно отключить в Kinect для Windows . SDK/OpenNI) подход я могу думать с верхней части моей головы будет:

  1. на старте приложения, калибровки программного обеспечения путем измерения расстояния от Kinect к поверхности, где вы спроектируйте свои снимки.
  2. Для каждого нового кадра глубины, который вы получаете от Kinect, вы проверяете различия между текущим кадром и калибровочной рамкой. Если есть кусок пикселей, которые ближе к датчику в текущем кадре, чем в калибровочном кадре, вы можете предположить, что это объект.

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

Используя этот подход, вы сможете обнаружить большинство объектов, сидящих или движущихся по поверхности.

+0

Привет, Крис, это отличное начало для меня. Имеет смысл, что я должен отключить отслеживание скелета, и его звуки, такие как использование рамки глубины, должны быть «легкими». Вот очень аккуратный видео, которое я нашел сделан с отслеживанием глубины http://www.youtube.com/watch?v=j9JXtTj0mzE Мы будем искать для разработки драйвера в .NET, а затем пользовательский интерфейс в Flash, - если мы не можем получить доступ к любому из этих SDK непосредственно во Flash? Я дам вам знать, как мы продвигаемся. Спасибо, Patrick. –

+0

[AIRKinect] (https://github.com/AS3NUI/airkinect-2-core/) - это пакет для разработки Kinect Development в Adobe AIR, поэтому вы сможете использовать весь спектр функций Flash. Пакет содержит общий интерфейс для Kinect для Windows SDK и OpenNI, поэтому вы можете выбрать, какой из них использовать, а также вы можете развернуть свое приложение в Windows, а также в Mac OS X. Если вы написали драйвер в .NET, вам придется запускать отдельное приложение .NET параллельно с вашим Flash-приложением и обмениваться данными через сеть, что не так эффективно, как использование собственного расширения. –

+0

Блестящий. Наш Flash-разработчик слышал об этом SDK и играл с ним раньше, поэтому мы должны быть на пути к созданию тестовой системы. –

0

Я бы поставил датчик на одну из стен, рядом с потолком, а не на потолке, направленном прямо вниз, таким образом у вас будет лучшее поле обзора, и вы все равно сможете использовать скелет/отслеживание пользователя алгоритмы.

Обратите внимание, что датчик имеет минимальное расстояние ~ 50 см, поэтому, если у вас низкий уровень потолка, у вас могут возникнуть проблемы с людьми прямо под сенсором.

Если вы используете OpenNI, вы можете использовать SceneAnalysis от Nite, который отслеживает людей, и вы можете легко получить свой центр масс.

+0

Hi Eran, Спасибо за отзыв. Потолки очень высоки, проектор будет не менее 15 футов над полом. С вашим предложением и стрельбой под углом мне интересно, будет ли мне сложнее определить, насколько далеко пользователь вернулся с сенсора, а также пользователи могут блокировать друг друга, чего мы, вероятно, избежим с накладными расходами. Однако я открыт для тестирования всего, поэтому я постараюсь как можно уверенно и сообщить вам, как мы получаем Спасибо, ребята –

+0

На расстоянии 15 футов Kinect не сможет измерить расстояние до пола. Здесь представлен [график] (http://i.msdn.microsoft.com/dynimg/IC568993.png), показывающий оптимальные диапазоны датчика глубины. –

+0

Еще раз спасибо за обновление. Таким образом, он выглядит как 4m - это максимальный диапазон. Возможно, наша установка для проектора может иметь удлиненную руку, которая приближает кинцет к диапазону 4 м (13 футов). Спасибо, что подняли голову –