Pi и Kinect с автофокусом и зеркальной камерой


Прошло некоторое время с тех пор, как у нас был проект Kinect вау, и этот не столько вау, сколько просто интересный. Идея достаточно проста — использовать Kinect для создания автофокуса для зеркалки, используемой в качестве видеокамеры. Только когда вы сделаете шаг назад и поразмыслите над тем, насколько безумным является такой подход, вы поймете, как далеко мы продвинулись за такой короткий промежуток времени.

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

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

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

Другой интригующий аспект этого проекта заключается в том, что он использует Raspberry Pi в качестве контроллера. Обычно Kinect работает с ПК, но есть библиотека, которая работает под Linux, и с помощью OpenCV вы можете заставить Kinect выполнять полезную работу на Pi.

Последняя проблема — как установить фокус. Решением в этом случае является шаговый двигатель с очень нестандартным деревянным креплением. Шаговый двигатель вручную поворачивает кольцо фокусировки. Лучшим, но более сложным способом может быть использование мотора автофокусировки напрямую через USB-интерфейс камеры.

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

Есть много возможностей для дальнейшего развития. Например. вы можете реализовать автодорожку лица, которая будет держать лицо в фокусе.

Зачем останавливаться на достигнутом, если у вас есть Kinect, чтобы передавать вам данные. Добавьте панорамирование и наклон, и камера сможет автоматически отслеживать объект. Добавьте элемент управления масштабированием, и появится возможность реализовать эффект перемещающегося масштабирования, при котором размер объекта в кадре остается неизменным по мере того, как камера приближается и удаляется.

Все дело в программном обеспечении.

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


Добавить комментарий