Прошло некоторое время с тех пор, как у нас был проект Kinect вау, и этот не столько вау, сколько просто интересный. Идея достаточно проста — использовать Kinect для создания автофокуса для зеркалки, используемой в качестве видеокамеры. Только когда вы сделаете шаг назад и поразмыслите над тем, насколько безумным является такой подход, вы поймете, как далеко мы продвинулись за такой короткий промежуток времени.
Когда вы думаете об автофокусе, традиционный подход заключается в использовании дальномера, который просто переносит два изображения, снятых с разных позиций, для совмещения или меняет фокус до тех пор, пока они не будут совмещены, или изменяет фокус, чтобы максимизировать контраст. Речь идет о простой системе обратной связи с простым программным обеспечением, если таковое имеется.
Часто это нормально для неподвижного изображения, но видео сложнее, и хотя зеркальная фотокамера делает действительно хорошую видеокамеру, автофокус обычно не может работать достаточно быстро, чтобы следить за движущимся объектом.
Используйте Kinect, который может отслеживать движение объекта и передавать сигнал расстояния, который затем можно использовать для настройки фокуса. Здесь легко упустить из виду, что речь не идет о простой системе обратной связи, такой как ультразвуковой датчик расстояния. Kinect — это инструмент для измерения расстояния полета со встроенным процессором и программным обеспечением AI, который отслеживает людей и другие объекты. Во многих смыслах это технологический перебор, но только подумайте, насколько он может быть более сложным, чем простой датчик расстояния.
Другой интригующий аспект этого проекта заключается в том, что он использует Raspberry Pi в качестве контроллера. Обычно Kinect работает с ПК, но есть библиотека, которая работает под Linux, и с помощью OpenCV вы можете заставить Kinect выполнять полезную работу на Pi.
Последняя проблема — как установить фокус. Решением в этом случае является шаговый двигатель с очень нестандартным деревянным креплением. Шаговый двигатель вручную поворачивает кольцо фокусировки. Лучшим, но более сложным способом может быть использование мотора автофокусировки напрямую через USB-интерфейс камеры.
Вы можете увидеть автофокус в действии в этом коротком видео, но вы должны заметить, что происходит, чтобы понять это. Камера сначала фокусируется на объекте справа, а по мере его перемещения фокус следует за ним.
Есть много возможностей для дальнейшего развития. Например. вы можете реализовать автодорожку лица, которая будет держать лицо в фокусе.
Зачем останавливаться на достигнутом, если у вас есть Kinect, чтобы передавать вам данные. Добавьте панорамирование и наклон, и камера сможет автоматически отслеживать объект. Добавьте элемент управления масштабированием, и появится возможность реализовать эффект перемещающегося масштабирования, при котором размер объекта в кадре остается неизменным по мере того, как камера приближается и удаляется.
Все дело в программном обеспечении.
Единственный немного отрицательный аспект всего проекта заключается в том, что, хотя Microsoft, кажется, счастлива публиковать информацию об использовании Kinect с Pi, у нее до сих пор нет официального драйвера Linux для Kinect. В новую эру Microsoft и открытого исходного кода этой функции, похоже, не хватает.