Заставить камеру следовать за мной

9

Я хочу записать некоторые лекции, которые я даю в следующем семестре. У меня есть видеокамера, и я могу изменить ее направление с помощью какого-либо сервопривода. Однако я понятия не имею, как определить, где я нахожусь. Со мной будет какое-то вещательное устройство. В основном чувствительность должна быть в состоянии определить, нахожусь ли я в левой или правой части комнаты, но мне не нужно намного больше, чем это.

kasterma
источник
1
Самый простой способ - использовать компьютер и веб-камеру. Компьютер отслеживает движение вдоль того места, где голова и плечи контролируют сервопривод. Алгоритм отслеживания так же прост, как и поиск среднего значения местоположения пикселей с наибольшим изменением .... Или у вас нет компьютера?
Крис Х
@ Крис Х, если у вас есть информация о такой легкодоступной функциональной программе, я думаю, что она даст идеальный ответ.
Кортук
Ну, я не знаю ничего конкретного, но рассмотрим OpenCV. Вы можете применить обрезку, а затем функцию отслеживания движения. Кадрирование просто для того, чтобы убедиться, что вы не поднимаете другие движущиеся предметы. Всего должно быть около 100 строк кода. Вероятно, проще написать код самостоятельно, чем настраивать и изучать другую программу, тем более что вам необходимо впоследствии подключиться к двигателю.
Крис Х
Может ли кто-нибудь сказать мне, как правильно поступить, если даны два одинаково правильных ответа? я просто выбрать один случайным образом, чтобы быть в ответ?
Кастерма
@kasterma: Да, хотя если бы вы реализовали одно вместо другого, я бы выбрал это. Вы всегда можете проголосовать за них обоих.
Ник Т

Ответы:

9

Вы можете носить несколько простых ИК-светодиодов, затем вы также можете разместить несколько ИК-приемников, просто сработают простые ИК-фотодиоды с узким углом обзора.

Если вы разместите их вокруг основания камеры, а затем прочитаете микроконтроллер, какой из них имеет наибольший сигнал, вы можете направить камеру на источник ИК-излучения.

Звучит сложно, но это очень просто и не требует компьютера. Аппаратные средства просты в использовании, хотя вы, вероятно, обнаружите, что в шумной обстановке (яркий свет) вы захотите модулировать ИК-излучение, чтобы избежать широкополосного шума, который вы получаете.

Kortuk
источник
Я попробовал это на самом деле, работает, если нет больших окон.
Крис Х
@ Крис Х, большое окно - это просто вызов для меня, чтобы получить более яркий ИК-излучатель. Часто модуляция может значительно помочь с фоновой ИК-проблемой солнечного света или флуоресцентных ламп.
Кортук
Это звучит как очень хорошее решение, я не знаю, что вы имеете в виду, когда вы предлагаете мне модулировать ИК. Вы имеете в виду, что я должен пульсировать ИК-светодиод на известной частоте, а затем попытаться обнаружить только эту частоту с помощью приемника?
кастерма
@kasterma, Да, это то, что я имею в виду. Например, вы посылаете импульсный инфракрасный светодиод на частоте 40 кГц, а затем делаете на приемниках фильтр с частотой 40 кГц, чтобы игнорировать широкополосный ИК-излучение, излучаемое солнцем и светом. Возможно, вам придется отрегулировать частоту, чтобы избежать частоты, которую излучают ваши флуоресцентные лампы. Вы можете сначала попробовать его без этой модуляции, чтобы увидеть, соответствует ли он спецификациям, поскольку это легче сделать.
Кортук
Я видел это сделано с Nintendo Wii. Очень круто. +1
Тыблу
7

То, что вы ищете, может быть связано с «отслеживанием BLOB-объектов». Это широко используемая техника в робототехнике и обработке зрения.

В зависимости от ваших навыков программирования, вы можете использовать OpenCV (библиотеки с открытым исходным кодом для компьютерного зрения), доступные как на C ++, так и на Python. Другие языки могут иметь библиотеки, которые поддерживают отслеживание BLOB-объектов. Я считаю, что LabVIEW и Matlab также имеют библиотеки для поддержки этого.

Обычно это компьютер, который обрабатывает видео и находит шарик (вас) определенного цвета. Затем вы можете использовать информацию о положении капли в кадре камеры, чтобы определить, куда направить камеру. Если, например, вы управляете сервоприводом на камере с помощью Arduino (или любого другого микроконтроллера), вы можете отправлять команды через последовательный порт для обновления нужного положения камеры. Когда капля оставляет желаемую «коробочку» в центре кадра.

Если вы хотите, вы можете сделать более умное отслеживание, применив некоторую комбинацию пропорционального, интегрального и производного управления (PID, если вы ищете в Интернете), чтобы попытаться сосредоточиться в кадре, но это может быть больше чем вам нужно для вашего приложения.

Изменить: Немного поиска дал этот результат: Творческие приложения . Это более или менее решение, которое я объяснил.

mjcarroll
источник
4
Пришло время купить рубашки "уникального цвета".
Ник Т
2
После дальнейшего рассмотрения, я полагаю, что решение Кортука и user1498 о инфракрасных светодиодах и датчиках будет более надежным подходом. Это верно из-за того, что поднимает Ник Т, цветовое пространство уже довольно многолюдно, поэтому выбрать себя будет сложно.
mjcarroll
это звучит как инженер отступает от проблемы.
Кортук
@Kortuk, не обязательно отступать. Я все еще думаю, что моё решение может быть «лучшим», если речь идет о полностью автономной системе (без внешних датчиков, не более аппаратного обеспечения, чем это явно указано в постановке задачи). Что касается простоты реализации и надежности (алгоритмы видения несколько придирчивы), я думаю, что ваше решение будет намного лучше.
mjcarroll
Я знал, что вы имели в виду, я думаю, что аппаратное решение более автономно, но есть большой компромисс для обоих.
Кортук
3

Ношение одного или нескольких ИК-светодиодов может позволить камере, например, Wi-Fi, отслеживать вас

russ_hensel
источник
2

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

Мартин Томпсон
источник
1
Я согласен, что это может быть самым прямым, но не самым дешевым
Мэтт Уильямсон
2

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

Олин Латроп
источник
Плюс пиво дешевле электричества.
Оптимальный Циник
0

Я тот, кто задал этот вопрос, и мне очень нравятся как ответ OpenCV, так и ответ ИК, и я буду играть с ними обоими. На данный момент у меня есть некоторые проблемы: мой заказ на ИК-подсветку задерживается, а моя веб-камера не желает.

В этом случае мой взгляд упал на LV-Maxsonar EZ, который я купил, чтобы поиграть некоторое время назад. Я действительно никогда не доходил до этого, но теперь кажется, что это может привести к достойному решению здесь. Я единственный человек, двигающийся перед комнатой, так что никаких помех, и компьютер тоже не нужен.

Это устройство дает измерения расстояния в определенном направлении. Если это расстояние изменяется, кто-то двигался перед ним, и камера должна двигаться в направлении, указанном этим датчиком.

kasterma
источник
0

Познакомьтесь с DevSkit PrimeSense (создатели Kinect)

Производитель выпустил драйверы Kinect (и DevKit) для Windows и Unix здесь: http://www.openni.org/

goodguys_activate
источник
0

Отслеживание всплеска ИК-излучения (и его фильтрация с камеры, согласие на инсоляцию в комнате) дает вам и учащимся хорошие шансы на работу в ADR, которая поможет вам и вашему выбранному контексту оказаться в нулевой зоне. Тем не менее, я, вероятно, взял бы из комплектного приложения веб-камеры, хорошо рассмотренного на Cnet.com (или в другом важном месте, Amazon, Acer Support или иным образом) или Camtasia, и использовал его по назначению.

Thrangalucchian
источник
0

Посмотрите на движение , в частности, функцию отслеживания движения .

Джо Фрейзер
источник
Мне было бы интересно узнать больше о движении, но просто дать нам ссылку на веб-сайт не дает ответа, он предоставляет ссылку для ответа. Что такое движение, что оно делает?
Кортук