Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Отслеживание лица при панорамировании / наклоне с помощью raspberry pi

Приложив некоторые усилия, я обнаружил, что управление двумя серводвигателями, позволяющими панорамировать / наклонять веб-камеру при отслеживании лица в реальном времени с помощью Raspberry Pi, не так невозможно, как может показаться на первый взгляд. С некоторой тщательной настройкой и оптимизацией кода я смог позволить пи работать с двумя сервоприводами при запуске обнаружения лиц OpenCV с разрешением 320 × 240, ища правый профиль, левый профиль и фронтальное лицо, и настраивая сервоприводы быстрее, чем один раз в секунду. .

Шаг 1. Приобретите оборудование.

Что нужно:

Raspberry Pi - модель A будет работать нормально, у меня есть оригинальная модель B, которая имеет те же характеристики, что и новая модель A (без сети).
Кронштейн панорамирования / наклона
Два сервопривода
Ribbin-кабель GPIO
Веб-камера с поддержкой Pi - я использовал Logitech C210

Предполагая, что у вас уже есть Raspberry Pi и веб-камера, дополнительное оборудование обойдется вам примерно в 25 долларов

Шаг 2. Подготовьте raspberry pi.

Убедитесь, что вы используете официальную RaspbianOS (версию с жесткой плавающей запятой) и что она обновлена.
Возможно, вы захотите разогнать свой Raspberry Pi. Я сделал до 800 МГц. Чем выше вы подниметесь, тем быстрее будет распознавание лиц, но тем менее стабильным может быть ваше число «Пи».

Установите OpenCV для python:sudo apt-get install python-opencv
Получите замечательный серво-драйвер servoblaster для raspberry pi от Ричарда Херста:здесь

Вы можете загрузить все файлы в виде zip-архива и распаковать их в папку где-нибудь на пи.
Чтобы установить драйвер сервобластера, откройте терминал и компакт-диск в каталог, в который вы извлекли файлы сервобластера.
запустите команда:make install_autostart

Вы можете установить тайм-аут сервобластера и прекратить посылать сигналы сервоприводу через секунду, если он не перемещается.
для этого добавьте следующую строку в / etc / modules:servoblaster idle_timeout =1000

запустите сервобластер с помощью следующей команды:sudo modprobe servoblaster

Следующая задача - заставить камеру работать должным образом:

Прежде всего, большое спасибо Gmoto за то, что он нашел это и указал на это, это была последняя часть «пи», которая заставила все работать гладко; вам необходимо настроить некоторые параметры в модуле uvcvideo, чтобы все работало нормально.
А именно, выполните следующие команды:

rmmod uvcvideo
modprobe uvcvideo nodrop =1 timeout =5000 quirks =0x80

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

Шаг 3. Соберите свою установку

Соберите кронштейны панорамирования / наклона в соответствии с инструкциями и прикрепите сервоприводы.
Прикрепите камеру к верхней части кронштейна (я только что использовал скотч) и вставьте ее в порт USB Raspberry Pi.
Я был может питать его без USB-концентратора, но вы можете получить USB-концентратор с питанием и пройти через это.

Шаг 4. Подключение сервоприводов

Servoblaster считает, что серво-0 - это то, что подключено к GPIO 4, а серво-1 - это то, что подключено к GPIO-17.
Сервоприводы имеют три провода:один красный, который является Vin / положительным, один коричневый или черный, который заземлен / отрицателен, а другой - управляющий.
Используя ленточный кабель (и в моем случае какой-то соединительный провод застрял в отверстиях), подключите управляющий провод каждого сервопривода к правильному контакту. Код предполагает, что серво-0 будет управлять движением влево-вправо, а серво-1 будет управлять движением камеры вверх-вниз; так что соедините их таким образом.

Казалось бы, здравый смысл заключается в том, что Vin для сервоприводов будет исходить от контактов 5v от GPIO, а земля для сервоприводов будет исходить от контактов заземления GPIO, но в моем случае это не сработало, потому что я использовал сервопривод большего размера для базы. Большой сервопривод потреблял больше энергии, чем требовалось от пианино. Однако я смог без проблем привести в действие свой меньший сервопривод наклона. Кроме того, Ричард Херст, который сделал сервобластер, похоже, подразумевает, что он может управлять несколькими небольшими сервоприводами с помощью GPIO 5v. Я также узнал, что в моей версии пи есть некоторые предохранители, которые позже были удалены из-за этих контактов питания. Мой инстинкт подсказывает мне, что вы можете запитать два меньших сервопривода от этих контактов на более новом пианино. Если вы не можете, это то, что вам нужно сделать:

Вам понадобится какой-то внешний источник питания, способный выдержать тяжелую нагрузку 5-6 В:я использовал тот, который встроен в Arduino, но подойдет любой источник питания на 5 вольт; сервоприводы рассчитаны на напряжение до 6 В. Контакт 5 В на блоке питания компьютера, настенное зарядное устройство 5 В-6 В, некоторые батареи включены параллельно; все, что плывет по вашей лодке. После того, как у вас есть внешний источник, просто подключите положительную и отрицательную линии от сервоприводов к положительной и отрицательной стороне источника питания, а затем подключите заземление (отрицательное) от внешнего источника питания к контакту заземления на GPIO Raspberry Pi.

Шаг 5. Запустите программу

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

Вот несколько моих видео в действии.

Подробнее:отслеживание лица при панорамировании / наклоне с помощью raspberry pi


Производственный процесс

  1. Считать температуру с помощью DS18B20 | Raspberry Pi 2
  2. Мониторинг температуры на Raspberry Pi
  3. Измерение температуры с помощью RASPBERRY PI
  4. Мониторинг температуры с помощью Raspberry Pi
  5. Интеграция данных датчика с микропроцессором Raspberry Pi
  6. Датчик отслеживания линии с RPi
  7. Обнаружение молний с помощью Raspberry Pi
  8. Отслеживание Raspberry Pi Ball
  9. Сигнализация о воде Raspberry Pi 2 с t сапожником плюс
  10. Отслеживание лица при панорамировании / наклоне с помощью raspberry pi