Изделия своими руками

Призрак в вашем телевизоре

Призрак в вашем телевизореПризрак в вашем телевизореЕсли вы еще не выбросили свой старый телевизор, то советую вам ознакомится с этой статьей. Из нее можно узнать, как из него можно сделать крутой гаджет – телевизор с призраком.
Наверное, большинство смотрело американские фильмы ужасов (ну или хотя бы фрагменты из них).
Призрак в вашем телевизореКак правило такие сюжеты можно разбить на четыре этапа.
1) Персонаж идет за чем-то находящимся в шкафу с зеркальной дверцей, и мы видим отражение персонажа перед зеркалом.
2) Открывает шкаф или отвлекаются на что-то.
3) Снова смотрит в зеркало и видят что-то позади себя.
4) Оборачивается и ничего не видит.
Примерно, как на видео ниже.

Именно такого эффекта и решил добиться мастер, а вместо зеркала он будет использовать старый телевизор.
Мастер использовал Raspberry Pi, камеру и OpenCV для отображения привидения на старом черно-белом телевизоре. Когда Raspberry Pi обнаруживает лицо, он включает телевизор, отображающий прямую трансляцию с камеры. Когда пользователь смотрит в сторону от телевизора, на заднем плане отображается призрак. Как только пользователь снова смотрит на телевизор, то видит призрак. Естественно желание повернутся и посмотреть, в этот момент призрак исчезает и через несколько секунд телевизор выключается, перезапуская цикл.
Инструменты и материалы:
-3D-принтер (опция);
-Дрель;
-Паяльник;
-Raspberry Pi 3;-Модуль камеры;
-Телевизор ЭЛТ;
-Преобразователь AV в RF (если телевизор не имеет композитного входа);-YK04 Модуль дистанционного управления;-KY-019 Релейный модуль 5 В;-Резистор 330 Ом – 2 шт;-Композитный видеокабель для Raspberry Pi;
Шаг первый: 3D-печать
Детали, напечатанные на 3D-принтере вполне можно сделать и из других материалов, дерева, пластика или даже картона. Для этой самоделки есть две детали, напечатанные на 3D-принтере, одна из которых – это крепление Raspberry Pi, которое будет приклеено к телевизору термоклеем. Другая часть – это крепление для камеры.
Файлы можно скачать ниже.
cammount.f3dRaspimount.f3d
Призрак в вашем телевизореПризрак в вашем телевизореШаг второй: настройка Raspberry Pi
Сначала нужно настроить Raspberry Pi. Официальное руководство по установке операционной системы на Pi находится здесь.
Отсюда можно установить ОС Raspberry Pi (32-разрядная версия ) с рекомендуемым программным обеспечением.
После установки операционной системы и запуска raspberry pi нужно открыть терминал и ввести:

sudo raspi-config

Команда включит камеру и запустит SSH.
Включение SSH поможет подключиться к Raspberry Pi удаленно, чтобы не использовать каждый раз клавиатуру, мышь и монитор.
Призрак в вашем телевизореШаг третий: электроника
На этом шаге мастер проверяет работу Raspberry Pi и других комплектующих, монтируя их на монтажной плате.
Призрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореRaspberry Pi имеет распиновку как на фото ниже.
Призрак в вашем телевизореПодключает камеру. Порт камеры находится между выходом HDMI и аудиоразъемом.
Подключает приемник, RGB и реле с помощью перемычек как показано в таблице:
YK04 Raspberry Pi 3
GND GND
POWER 3,3 В
D0 12
D1 16

LED Raspberry Pi 3
GND GND
КРАСНЫЙ 22
ЗЕЛЕНЫЙ 24
СИНИЙ 26

Relay Raspberry Pi 3
GND GND
POWER 5В
Data 32
Шаг четвертый: код
Сначала нужно установить библиотеку OpenCV. Она нужна для обнаружения лица и удаления фона. Модуль OpenCV Python можно загрузить из репозитория Raspbian, для этого нужно открыть терминал и ввести:

sudo apt update  sudo apt install python3-opencv

Эта команда установит все пакеты, необходимые для запуска OpenCV.
Затем нужно перезагрузить Pi с помощью команды:

sudo reboot

Переходим в папку “Документы”:

cd Documents

Затем установите код Haunted TV из репозитория Github:

git clone https://github.com/gocivici/haunted-tv.git

Эта команда установит самую последнюю версию кода.
Затем переходим в папку проекта;

cd haunted-tv

Чтобы иметь возможность запускать программу вводим:

python3 hauntedTV.py

Теперь для тестирования и отладки кода можно использовать клавиатуру вместо пульта. Используем «h», чтобы сделать снимок с привидениями, и «a», чтобы начать распознавание лиц.
Теперь нужно настроить автозапуск скрипта при загрузке Raspberry Pi.
Вводим команду:

mkdir /home/pi/.config/autostart  nano /home/pi/.config/autostart/hauntedTV.desktop

В созданный файл вставляем нижеприведеную часть кода:

[Desktop Entry]  Type=Application  Name=HauntedTV  Exec=/usr/bin/python3 /home/pi/Documents/haunted-tv/hauntedTV.py

Дальше сохраняем, выходим с помощью ctrl + x и перезагружаем:

sudo reboot

Для редактирования кода в каталоге проекта, вводим:

sudo nano hauntedTV.py

В коде есть настройки для трех таймеров:

timeTV = 5   timeGhost = 25   timeNoGhost = 10

Эти значения не в секундах. Это значение, устанавливаемое функцией faceFreqCounter. Этот счетчик запускается при обнаружении лица и продолжает отсчет, если лицо все еще присутствует на изображении. Если лицо покидает экран более чем на 4 секунды, счетчик устанавливается на 0. (Таким образом, ложные срабатывания фильтруются)
timeTV: когда faceFreqCounter достигает этого значения, телевизор включается.
timeGhost: когда faceFreqCounter достигает этого значения, призрак будет отображаться после того, как лицо отвернется. Можно установить больший интервал.
timeNoGhost: это значение определяет, когда отключить видимость призрака после того, как пользователь увидит призрак и повернется посмотреть.
Также нужно настроить чувствительность фона в коде:

backgroundSensitivity = 20

Это значение определяет чувствительность “удаления” фона. Нужно увеличить это значение, если изображение с привидениями не видно на заднем плане.
Призрак в вашем телевизореШаг пятый: обнаружение лица / глаз и удаление фона
В этом шаге мастер подробно расскажет, как использовать OpenCV для обнаружения лиц и удаления фона.
Существует множество методов обнаружения лица, метод, который он использовал называется обнаружением объектов с помощью каскадов Хаара. Haar Cascade – это алгоритм обнаружения объектов.
Этот метод можно использовать для обнаружения любого объекта, а не только лиц. Для того, чтобы обнаружить лицо, сначала нужны каскадные файлы. Можно использовать любую поисковую систему, чтобы найти различные каскады вещей, которые вы хотите обнаружить.
В этом проекте мастер использует Face Cascade и Eye Cascade. Их можно найти здесь и здесь.
После загрузки каскадов в виде файлов .xml импортируем их код:
import numpy as np
import cv2
#importing the cascades
detected = cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’)
#detected = cv2.CascadeClassifier(‘haarcascade_eye.xml’)
Затем включаем камеру и инициализируем цикл while, чтобы код проверил, обнаружено ли лицо:

cam = cv2.VideoCapture(0)  while True:      ret, img = cam.read()      gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)      faces = detected.detectMultiScale(gray, 1.3, 5)<br>

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

for (x,y,w,h) in detected:      cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)      #put code here to run when a face is detected

Наконец отображаем финальное изображение в окне:

cv2.imshow ('img', img)

ниже полный код для распознавания лиц:

import numpy as np  import cv2    #importing the cascades  detected = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')  #detected = cv2.CascadeClassifier('haarcascade_eye.xml')  cam = cv2.VideoCapture(0)  while True:      ret, img = cam.read()      gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)      faces = detected.detectMultiScale(gray, 1.3, 5)      for (x,y,w,h) in detected:          cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)          #put code here to run when a face is detected      cv2.imshow('img',img)  cam.release()  cv2.destroyAllWindows()

Сохраняем этот файл как FaceDetection.py и запускаем его. Пользователь должны увидеть синий прямоугольник вокруг лица.
Призрак в вашем телевизореПризрак в вашем телевизореШаг шестой: тест
Для пробного теста мастер сделал регулируемую подставку для камеры и поместил ее на телевизор с Raspberry Pi. На этом этапе основная цель – протестировать установку и телевизор, чтобы убедиться, что они работают правильно.
Подключаем Raspberry Pi к телевизору с помощью композитного кабеля (если телевизор не имеет композитного входа, используем преобразователь AV-RF)
Подключаем Raspberry Pi к источнику питания и ожидаем пока он загрузится.
Проверяем нет ли проблем с видеопотоком.
Призрак в вашем телевизореПризрак в вашем телевизореШаг седьмой: сборка
Перед сборкой припаиваем резисторы к светодиоду и антенну к приемнику.
Призрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореДальше нужно снять заднюю крышку с телевизора и при необходимости очистить от пыли внутреннюю часть.
Призрак в вашем телевизореПризрак в вашем телевизореУстанавливает внутрь Raspberry Pi и остальные детали.
Призрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореКамеру устанавливает вместо аудиоразъема.
Призрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореПризрак в вашем телевизореШаг восьмой: привидение
Теперь, когда Raspberry Pi установлен на телевизоре, нужно проверить работу устройства и сделать снимок привидения.
Включаем устройство. Raspberry Pi должен загрузиться и запустить сценарий Python. Через несколько секунд телевизор должен включиться, и можно увидеть себя на экране телевизора.
Затем надеть костюм привидения, встать перед телевизором и с помощью пульта дистанционного управления сделайте снимок, нажав кнопку B на пульте дистанционного управления. Теперь скрипт готов к запуску. При нажатии на кнопку D на пульте, телевизор должен выключиться и начать определение лиц.
Призрак в вашем телевизореСборка закончена, но если что-то пошло не так, то смотрим последний шаг.
Шаг девятый: устранение неисправностей
+ Картинка с привидениями не видна.
-свет очень важен для удаления фона. Убедитесь, что телевизор находится в хорошо освещенном месте. Также переместите источник света за телевизор.
+ Не понятно, работает распознавание лиц или нет.
-Перейдите к шагу 5 и запустите только код обнаружения лица. Вы должны увидеть прямоугольник вокруг своего лица.
+ ЭЛТ-телевизор не отображает изображение.
– Зайдите в файл config.txt на своем raspberry pi и убедитесь, что регион ТВ такой же, как у вашего телевизора.
Все готово, но в дальнейшем мастер собирается модернизировать устройство.
Установить динамик Bluetooth, чтобы издавать звуки, когда призрак появляется.
Установить инфракрасную камеру и светодиоды для возможности работы устройства в темноте. Это создаст более пугающую атмосферу.
Сделать специальную подставку для телевизора с жуткими декорациями.
Установить более мощный компьютер, такой как Nvidia Jetson.

Самоделкин

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Your Header Sidebar area is currently empty. Hurry up and add some widgets.