Оглавление:
- Запасы
- Шаг 1: Шаг 1: обезглавить
- Шаг 2: Шаг 2: Добавьте Smart
- Шаг 3: Шаг 3: Наполните ее
- Шаг 4: Шаг 4: Настройте Pi
- Шаг 5: Шаг 5: Перемещение головы
- Шаг 6: Шаг 6: заставляем гудеть
- Шаг 7: Шаг 7: потоковое видео с Pi
- Шаг 8: Шаг 8: Обнаружение тела
- Шаг 9: Шаг 9: Отправка уведомлений о зомби
- Шаг 10: Что за крик
Видео: Умная сова, обнаруживающая зомби (глубокое обучение): 10 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Всем привет, добро пожаловать в T3chFlicks! В этом уроке на Хэллоуин мы покажем вам, как мы добавили жуткий поворот в бытовую классику: камеру наблюдения.
Как?! Мы создали сову ночного видения, которая использует обработку изображений для отслеживания людей. Ох, и он гудит, совсем как настоящий!
Мы были в восторге от этого проекта и ждали его с тех пор, как выпустили новый Raspberry Pi 4. У него 4 ГБ оперативной памяти, что открывает двери для множества действительно интересных возможностей, включая обработку изображений с помощью моделей глубокого обучения в реальном времени.
Если вы хотите следить за приближающимися зомби на Хэллоуин или просто проверять свой сад в остальное время года, это то, что вам нужно. Безопасность не обязательно должна быть скучной, чтобы быть эффективной!
Запасы
Для этой сборки вам понадобятся:
- Raspberry Pi 4 (4 ГБ ОЗУ) Amazon
- Камера ночного видения Amazon
- Микро Сервопривод Amazon
- Поддельная Амазонка Сова
- Клей амазонка
- Раскрась Амазонку
- Винты Amazon
- USB-динамик Amazon
- Большой (5v +) портативный блок питания Amazon
- 3D-принтер Amazon
Шаг 1: Шаг 1: обезглавить
а. Снимите с совы голову (иногда просто необходимо проявить жестокость), сильно потянув ее за голову в том месте, где она прикреплена к пружине.
б. Голова совы соединяется с телом цилиндром, который находится на большой пружине. Снимите этот цилиндр, вывернув винт.
c. Цилиндр, который вы только что сняли, состоит из двух частей: пластикового стакана и подшипника, который находится внутри него. Снимите подшипник с цилиндра с помощью отвертки (или аналогичного инструмента).
d. Используя винт, соединяющий цилиндр с пружиной, прикрепите сервопривод к цилиндру.
е. Снимите пружину, открутив три винта, которыми она крепится к корпусу.
f. Сделайте отверстие в верхней части туловища совы, достаточно большое, чтобы в него поместились несколько проводов и кабель камеры. Для этого мы использовали безупречное сочетание дрели и отвертки.
Шаг 2: Шаг 2: Добавьте Smart
а. Напечатайте на 3D-принтере корпус камеры и раскрасьте его под сову - мы использовали дешевые акриловые краски. Рисование - не важный шаг, но он значительно улучшает общий вид!
б. Перевернув голову совы, ввинтите верхнюю часть корпуса камеры во внутреннюю часть ее головы, где выступает клюв.
c. Поместите камеру в чехол и подсоедините кабель камеры.
d. Приклейте сервопривод к верхней панели пружины.
е. Подключите длинные провода к контактам сервопривода (5V, Gnd, сигнал)
f. Пропустите кабель камеры и провода сервопривода через пружину и через отверстие, которое вы сделали в верхней части корпуса, так, чтобы они оказались внутри полого тела совы.
Шаг 3: Шаг 3: Наполните ее
а. Снимите заглушку с нижней части совы и увеличьте размер этого отверстия, разрезав пластик. Продолжайте увеличивать размер, пока Raspberry Pi и динамик не войдут в тело совы.
б. Как только отверстие станет достаточно большим, чтобы все компоненты поместились внутри, вытащите кабель камеры, который вы пропустили через верхнюю часть совы, из основания и подключите его к Raspberry Pi.
c. Точно так же протяните провода сервопривода и подключите их к Raspberry Pi:
- + 5В на сервоприводе => + 5В на Pi
- Gnd сервопривод => gnd Pi
- Сервопривод сигнала => контакт 12 Pi
d. Подключите USB-динамик к Pi.
е. Вставьте SD-карту в Pi.
f. Power Pi с использованием портативного блока питания.
грамм. Вставьте Pi, блок питания и динамик в сову через отверстие в основании.
Шаг 4: Шаг 4: Настройте Pi
ВСЕ КОДЫ МОЖНО НАЙТИ НА
а. Загрузите Raspian и загрузите его на свою SD-карту с помощью Balena Etcher.
б. Для удаленного доступа к вашему пи
- Добавьте файл с именем ssh на загрузочную SD-карту
-
Добавьте файл с именем wpa_supplicant.conf и введите свои учетные данные Wi-Fi в
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1
сеть = {ssid = "MySSID" psk = "MyPassword"}
c. Вставьте SD-карту в пи и попробуйте доступ по ssh.
Шаг 5: Шаг 5: Перемещение головы
Руководство по коду для перемещения головы (управление сервоприводом с помощью raspberry pi)
Чтобы управлять сервоприводом, работающим на Pi, мы собираемся создать скрипт, который управляет выводами GPIO, к которым подключен сервопривод.
а. Подключите сервопривод к Pi:
- + 5В на сервоприводе => + 5В на Pi
- Gnd сервопривод => земля на Pi
- Сервопривод сигнала => контакт 12 на Pi
б. Вы должны сначала настроить контакты gpio для использования ШИМ на сигнальном контакте сервопривода.
c. Затем достаточно просто выбрать рабочий цикл (объясняется здесь) сигнального вывода, чтобы переместить сервопривод от 90 градусов с рабочим циклом от 7,5 до 0 градусов, когда рабочий цикл равен 2,5, и до 180 градусов с рабочим циклом 12,5
импортировать RPi. GPIO как GPIO
время импорта GPIO.setmode (GPIO. BOARD) GPIO.setwarnings (False) GPIO.setup (12, GPIO. OUT) p = GPIO. PWM (12, 50) p.start (7.5) try: while True: p. ChangeDutyCycle (7.5) # 90 градусов time.sleep (1) p. ChangeDutyCycle (2.5) # 0 градусов time.sleep (1) p. ChangeDutyCycle (12.5) # 180 градусов time.sleep (1) за исключением KeyboardInterrupt: p.stop () GPIO.cleanup ()
Шаг 6: Шаг 6: заставляем гудеть
Руководство по коду для совиного улюлюка (воспроизведение звука с помощью raspberry pi)
а. Подключите USB-динамик.
б. Скачиваем звук - мы выбрали жуткое улюлюканье.
c. Включите звук, выполнив эту команду: omxplayer -o alsa: hw: 1, 0 owl_sound.mp3
[d. Если это не сработает, проверьте, какой вывод использует ваш Pi и на какой громкости, с помощью команды alsamixer - вы увидите экран микшера, на котором вы можете изменить громкость и выбрать мультимедийное устройство. Чтобы увеличить громкость звука, выполните команду вида omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500 Чтобы воспроизвести этот звук с помощью Python, ознакомьтесь с нашим тестовым скриптом.]
подпроцесс импорта
command = "omxplayer -o alsa: hw: 1, 0 owl_sound.mp3 --vol 500" player = subprocess. Popen (command.split (''), stdin = subprocess. PIPE, stdout = subprocess. PIPE, stderr = subprocess. ТРУБКА)
Шаг 7: Шаг 7: потоковое видео с Pi
Руководство по коду создания потока камеры raspberry pi
а. Запустите python app.py и просмотрите в своей локальной сети https://raspberrypi.local: 5000.
б. Этот код был взят и немного адаптирован у Мигеля Гринберга https://blog.miguelgrinberg.com/post/flask-video-… он прекрасно объясняет, как это делается, и его уроки великолепны - deffo проверьте его! Основная концепция заключается в том, что мы используем потоки и генераторы для повышения скорости потоковой передачи.
Шаг 8: Шаг 8: Обнаружение тела
Код для обнаружения тела (ImageNetSSD в видеопотоке с raspberry pi)
а. Поскольку мы используем Raspberry Pi 4, мы подумали, что лучше всего опробовать на нем некоторые модели глубокого обучения вместо базового метода HaarCascade, которым мы пока ограничивались.
б. Мы посмотрели на некоторых предварительно обученных моделей, таких как YOLOv3, который выглядит супер круто. Крошечные веса YOLOv3, которые идеально подошли бы для Pi, но мы не могли заставить его работать:(c. Вместо этого мы выбрали модель MobileSSD, которую мы можем запустить с помощью модуля openCVs DNN (глубокая нейронная сеть), как мы узнали из этого кода: https://heartbeat.fritz.ai/real-time-object-detection-on-raspberry -pi-using-opencv-dnn-98827255fa60 и от героя руководств по обработке изображений Адриана Роузброка: https://www.pyimagesearch.com/2017/09/11/object-detection-with-deep-learning-and- opencv /
d. Однако, поскольку мы пытаемся транслировать этот контент и запускать модели для каждого кадра, это приводит к задержке и фрагментированному видео. Мы снова узнали от Адриана Роузброка https://www.pyimagesearch.com/2017/10/16/raspberry-pi-deep-learning-object-detection-with-opencv/ и использовали модуль многопроцессорной обработки Python, чтобы поместить наши изображения в очереди. где их можно обрабатывать, не блокируя так сильно поток камеры.
е. Попробуйте запустить код самостоятельно:)
Шаг 9: Шаг 9: Отправка уведомлений о зомби
Код для отправки уведомления (python на телефон)
а. Мы решили использовать службу уведомлений
б. Вы можете получить бесплатную учетную запись, загрузить приложение и очень быстро настроить создание мобильных уведомлений. Мы создали уведомления, используя скрипт Python, подобный этому.
запросы на импорт
payload = {"app_key": "APP_KEY", "app_secret": "APP_SECRET", "target_type": "app", "content": "Сова обнаружила зомби." } r = requests.post ("https://api.pasted.co/1/push", данные = полезная нагрузка)
Это очень просто, и вы можете настроить свое имя для уведомления!
Шаг 10: Что за крик
Надеемся, вам понравился наш проект Smart Security Owl! Это было очень весело, и я чувствую себя намного безопаснее, зная, что мой дом охраняет наша верная сова.
Если вы думаете, что это будет сказочное дополнение к Хэллоуину для вашего умного дома, проголосуйте за нас в конкурсе Instructables Halloween и, как обычно, не забудьте поставить лайки, комментировать и подписаться!
Подпишитесь на нашу рассылку!
Рекомендуемые:
УМНАЯ СВЕТОДИОДНАЯ МАТРИЦА С УПРАВЛЕНИЕМ ИЗ ИНТЕРНЕТА (ADAFRUIT + ESP8266 + WS2812): 8 шагов (с изображениями)
УМНАЯ СВЕТОДИОДНАЯ МАТРИЦА С УПРАВЛЕНИЕМ С ИНТЕРНЕТОМ DIY (ADAFRUIT + ESP8266 + WS2812): Вот мой второй шаг вперед к проекту, который я очень рад вам показать. Речь идет о светодиодной матрице DIY Smart, которая позволит вам отображать на ней данные, такие как статистика YouTube, статистика вашего умного дома, как температура, влажность, может быть простыми часами или просто отображать
Умная лампа Pixel: 7 шагов (с изображениями)
Pixel Smart Lamp: это проект, который я сделал для умной лампы, управляемой по Bluetooth, с помощью приложения для Android, разработанного в Android Studio. Основная цель Pixel - отображать красивый свет. Например, это режим освещения камина, давайте посмотрим, как однопиксельный камин может
Arduino Halloween Edition - всплывающий экран зомби (шаги с изображениями): 6 шагов
Arduino Halloween Edition - всплывающий экран зомби (шаги с изображениями): хотите напугать своих друзей и издать крик на Хэллоуин? Или просто хотите пошутить? Этот всплывающий экран «Зомби» может это сделать! В этом руководстве я научу вас, как легко создавать выпрыгивающих зомби с помощью Arduino. HC-SR0
Сова крадется: 5 шагов (с картинками)
Owl Prowl: Owl Prowl - это соревновательная игра для четырех игроков с альтернативными контроллерами. Четыре игрока должны играть за сову в игровом пространстве. Их цель - поймать как можно больше мышей до истечения времени. Каждый игрок использует плюшевую сову, чтобы контролировать
Эволюция киборга-зомби: 9 шагов (с изображениями)
Cyborg Zombie Evolution: это хорошо известно от эпохи пара до эпохи стимпанка … круто ли это, жутко, мило или все три одновременно, для оживления существа требуется электричество. В случае с этим зомби-киборгом в виде одиночной гальванической ячейки, известной как a & q