Установка и настройка распознавания лиц при помощи OpenCV за полчаса

Неудача при тестировании OpenCV на Raspberry Pi Zero W (офигенные тормоза в работе) заставила искать иные пути. Поставил Ubuntu второй системой на свой старый ноут , накатил pip3 и с его помощью установил OpenCV. Устанавливается все просто:

sudo apt-get -y install python3-pip
pip3 install opencv-contrib-python

Затем устанавливаем пакет face recognition и следуем инструкциям установщика:

pip3 install face_recognition

Также  клонируем гит в заранее созданную папку

git clone https://github.com/ageitgey/face_recognition
И все.

Подробности использования пакета по ссылке https://github.com/ageitgey/face_recognition

Моей целью было распознавание лиц в видеопотоке с вебкамеры ноута. Идем в папку examples, куда положим фотографии образцы нужных лиц. В это папке есть файл кода Python, настроенный  для распознавания Обамы и Байдена

facerec_from_webcam_faster.py

Мы создаем его копию facerec_from_webcam_faster_your_copy.py и редактируем вот эти куски в соответствии с нашими фото-примерами. При необходимости добавления более двух лиц добавляем куски кода.

# Load a sample picture and learn how to recognize it.
obama_image = face_recognition.load_image_file(«obama.jpg»)
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]

# Load a second sample picture and learn how to recognize it.
biden_image = face_recognition.load_image_file(«biden.jpg»)
biden_face_encoding = face_recognition.face_encodings(biden_image)[0]

 

Сохраняем и запускаем скрипт командой

pip3 facerec_from_webcam_faster_your_copy.py

В результате имеем поток с наложением рамки и текста с распознанными лицами

ezgif-1-d682729d1324

Медиа-центр на Orange Pi PC+

Возникла идея сделать бюджетный медиацентр. Вот ТЗ:

  1. IPTV
  2. torrent
  3. dlna или samba сервер
  4. NAS 
  5. трансляция аудио в сеть

После беглого анализа предлагаемых решений решил взять Orange Pi PC+. Что сделано по порядку:

  1. накатил Armbian Legacy Ubuntu. Важно при выборе ОС для медиасервера иметь установленные двайверы видео ускорения и декодирования видео потоков. Тут это есть. На PC+ видеочип Mali400, который все это умеет;
  2. Установка Kodi 15.2 из репозитория;
  3.  Устaновка PVR Simple add-on из репозитория. Теперь можно смотреть IPTV каналы из плейлиста m3u. При тестировании работы замечены подвисания видео HD каналов из-за перегрева процессора H3. Необходимо установить радиатор;
  4. Установка пакета lirc для управления kodi ИК пультом от старого TV. Процесс установки и обучения lirc описан в инете. Несколько заметок, что надо сделать:

— в файле /etc/lirc/hardware.conf прописать настройки пульта

REMOTE_MODULES=»sunxi_cir»
REMOTE_DRIVER=»»
REMOTE_DEVICE=»/dev/lirc0″

— скопировать дефолтный файл Lircmap.xml  из папки /usr/share/kodi/system

в user папку userdata. Для Ubuntu это /home/user/.kodi/userdata

и вписать в него названия кнопок из ранее созданного config /etc/lirc/lircd.conf

5. Установка пакетa transmission. В конфиге

/etc/transmission-daemon/settings.json  прописываем папку для сохранения закачек

6. Установка пакета minidlna. В конфиге /etc/minidlna.conf прописываем настройки расшаренных папок а-ля

media_dir=A,/home/user/Music     # Use A, P, and V to restrict media ‘type’ in directory media_dir=P,/home/user/Pictures

media_dir=V,/home/user/Videos

7. Установка пакета nfs-kernel-server и настройка сервера NFS(Network File System)

 

UPD 17.06: в связи с непреодолимыми тормозами воспроизведения видео, решено перейти на сборку Android 7  от производителя. Kodi 18.2 и PVR Simple из Google Play.

Из багов: андроид меняет MAC сетевых карт при каждом старте, невозможно привязать Orange в роутере — пришлось прописать в настройках соединения  статический IP.

ИК пульт не стал настраивать — приобрел на Aliexpress вот такую клаву — доволен!

19

 

Пока руки не дошли установить и настроить SMB и dlna. Torrent работает

Update:

Применены пакеты Kodi: Elementum и Elementum Nova. Доволен

Концепция умного дома

Идея метеостанции с веб интерфейсом гармонически эволюционировала: решено расширять функционал. Краткий перечень хотелок был таков:
1. Сделать приемлемую визуализацию и управление с web интерфейса, приложения на смартфоне;
2. Реализовать автоматические функции системы, т.е. внедрить среду программирования в систему управления умным домом;
3. Реализовать голосовое управление системой.

По началу мысли были реализовать логику на локальных ESP8266 и вывод информации на общую web страничку с управлением устройствами при помощи get запросов. Но концепция кардинально изменилась после покупки Raspberry Pi. По мере знакомства с Linux и изучением темы умного дома было решено применить связку:

  • MQTT брокер Mocquitto (центральный узел передачи информации);
  • Node Red (среда программирования, центральный сервер обработки логики работы), визуализация на Dashboard;
  • Domoticz (визуализация + дополнительные возможности по программированию логики работы устройств);
  • Голосовое управление реализовано при помощи навыка Яндекс Алисы, который обращается к https webhook, поднятый на Node Red;
  • Управление также реализовано через бота Telegram;
  • Оповещение о превышении уровня CO2 и низкой влажности передаются на SmartTV LG.

Что реализовано:

  • Функции контроля микроклимата (CO2, температура, влажность в двух комнатах). Автоматизировать тут нечего, т.к. нет исполнительных устройств. Откр\закр проветривание и вкл\выкл увлажнители осуществляется вручную;
  • Управление 1 светильником

Что в планах:

  • Управление светом по сценариям, в том числе в с\у;
  • Интеграция Android  телефона. Для начала оповещение о приближении к дому;
  • Настройка Telegram и Алисы на вывод всей информации;

Возникшие проблемы:

  • Периодическое падение связи ESP с MQTT брокером. В интернете есть мнение, что на ESP лучше использовать GET запросы;
  • Периодические  зависания Node-Red

Немного скринов

Linux и Raspberry

Здесь будет напоминалка полезных команд консоли raspbian

curl -I http://localhost:8080 — получить http заголовок url

sudo mysql -u root   — Вход в Mysql под root

service apache2 status   — Статус сервера апач;

sudo chown -R ftp_user /var/www/   — права на запись в папку /var/www/  юзеру ftp_user;

sudo chgrp -R ftp_user /var/www/   — права на запись в папку /var/www/  группе ftp_user;

dpkg —get-selections | grep -v deinstall  — Список установленных пакетов;

service —status-all  — список всех служб;

sudo raspi-config — утилита конфигурации Raspberry Pi

sudo reboot — перезагрузка Raspberry Pi

sudo shutdown -h now — выключение Raspberry Pi

sudo apt-get update — обновление списка репозитариев

sudo apt-get upgrade — обновление установленных пакетов

sudo su – открыть командную строку с правами root

sudo -i – открыть командную строку с правами root

cat /proc/cpuinfo — смотрим инфо о процессоре

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq— смотрим частоту процессора

/opt/vc/bin/vcgencmd measure_temp — мониторинг температуры

startx — запуск графического интерфейса LXDE

ifconfig — утилита конфигурирования сетевых интерфейсов

iwconfig – просмотр информации беспроводных устройств

sudo iwlist wlan0 scan — сканирование Wi-Fi

top — консольная команда, которая выводит список работающих в системе процессов и информации о них

wget — скачать файл в текущую директорию

pwd — покажет ваше текущее расположении

cd — Переход в нужную папку. Например cd /home/pi