Готовый к запуску Kinect для Windows предлагает решение одной из основных проблем Kinect — близорукости — путем введения режима Near Mode. Но достаточно ли этого, чтобы быть действительно полезным?
Одна из проблем при использовании Kinect для Xbox заключается в том, что он не работает, когда вы подходите слишком близко, и не работает, когда вы уходите слишком далеко. Он хорошо работает для обнаружения игроков в довольно большой комнате, для чего он и был предназначен.
На самом деле это стало проблемой только тогда, когда мы начали использовать Kinect с ПК для реализации всевозможных умных систем. Например, Kinect на платформе мобильного робота был бы намного полезнее, если бы он мог обнаруживать и отображать близкие объекты.
Kinect для ПК, скорее всего, будет использоваться как для работы с близкого расстояния, так и для обнаружения удаленных игроков. Чтобы сделать это более возможным, он может работать как в ближнем, так и в дальнем режиме. Ближний режим работает до 50 см или ближе, и это действительно делает его полезным для роботизированных систем и приложений 3D-сканера. Вы можете купить линзы, которые изменяют восприятие глубины Kinect, но это не то, как был реализован режим ближней съемки. Вместо этого изменения касаются прошивки и точности настройки датчика на производственной линии.
Оригинальный Kinect был способен работать на глубине до 50 см, но только «при правильном освещении». Чтобы помешать вам использовать его в областях, где его результаты были переменными, бета-версия SDK вернула нулевое расстояние в этих регионах — эффективно сигнализируя «Я сдаюсь» от Kinect.
Теперь новая прошивка оптимизирована для работы как в ближнем, так и в дальнем режиме, и теперь она возвращает результаты даже в тех областях, где она не всегда работает правильно. Следовательно, в ближнем режиме вы можете получить разумные показания до 40 см в хороших условиях. Конечно, есть компромисс. В ближнем режиме Kinect не может видеть дальше 2–3 метров по сравнению с 4 метрами в дальнем режиме.
Насколько хорошо Kinect работает в каждом из своих режимов, немного сложно, поэтому задействованные инженеры Microsoft упростили задачу с помощью диаграммы:
Kinect вернет значение глубины в нормальной зоне и значение, указывающее, в какой зоне он находится в противном случае.
Кроме того, возможности слежения в ближнем режиме ограничены. Он вернет индексную маску игрока, но вернет только положение центрального тазобедренного сустава, а не всего скелета. Есть надежда, что полное расположение каркаса может поддерживаться в более поздних версиях.
Итак, что же все это значит?
Главное понимать, что в ближнем режиме у вас есть датчик глубины, но не тот, который может дать вам положение конечностей игроков. Что еще более важно, вы не сможете отслеживать движения рук, если не будете много работать. И, поскольку жесты рук — очевидное потенциальное использование более близкого Kinect, это разочаровывает. Точно так же, если вы используете Kinect для определения расстояния на мобильном роботе, у вас возникнут проблемы с реализацией алгоритмов, которые работают с пикселями, которые сообщают, что они находятся на расстоянии менее 50 см значимым образом.
Если вам действительно нужен режим ближней съемки с полной функциональностью, вы, вероятно, лучше воспользуетесь объективом для изменения расстояния для устройства.