[Модификация] Камера, нейросеть und оrdnung

Модераторы: Bagir, Ivan, Vit, immortal, PAV, newz20

Ответить
C_3AXAPOB
Сообщения: 456
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 104 раза
Поблагодарили: 88 раз

[Модификация] Камера, нейросеть und оrdnung

Сообщение C_3AXAPOB » Ср окт 10, 2018 1:06 am

На написание этой заметки меня подтолкнул опыт Matt Farley (вроде так его зовут) http://jarvisfarley.com/code/roomcheck/ который использовал tensorflow чтобы определять убрано в детской или нет и соответсвенно на основании этого его система разрешает или запрещает ребенку включать ТВ.
Я заинтересовался и решил испытать его опыт на себе.

**1. TEIL EINS. PLANUNG **

Изображение

"Майор дома" у меня крутится на Orange pi PC +, OS Armbian Debian stretch. Если у вас другая система смотрите в гугл как установить Tensorflow.

Делаем следующее:

Код: Выделить всё

1. sudo apt update & sudo apt install python3-pip python3-dev 
2. wget https://github.com/rezaxdi/tensorflow-on-orangepi-zero/releases/download/v1.6.0/tensorflow-1.6.0-cp35-cp35m-linux_armv7l.whl
3. pip3 install --user tensorflow-1.6.0-cp35-cp35m-linux_armv7l.whl
4. pip3 install "tensorflow-hub" --user
5. mkdir ~/tensorflow
6. cd ~/tensorflow
7. curl -LO https://github.com/tensorflow/tensorflow/raw/master/tensorflow/examples/label_image/label_image.py
8. curl -LO https://github.com/tensorflow/hub/raw/r0.1/examples/image_retraining/retrain.py

Всё кроме установки пип'а прошло гладко. С ошибками пип'а справился гуглежом.

Проверям установку Tensorflow

Код: Выделить всё

python3 -c 'import tensorflow as tf; print(tf.__version__)'  # for Python 3
Коробок должен ответить
Это версия Tensorflow, старовата но для Orange pi PC+ единственный вариант.

**2.TEIL ZWEI. VORBEREITUNG**

Для обучения нейросети нам понадобится два набора изображений с ip камеры. Первый - комната прибрана. Второй - в комнате беспорядок.
Собственно это могут быть наборы "есть машина во дворе-нет машины во дворе", "есть кто на даване - нет никого" и т.п.

Накопить их довольно просто, надо заставить камеру делать снапшоты с определнной периодичностью а потом спутся какое-то время рассортировать.
При этом рекомендуется использовать фото с разным типом освещения. Matt рекомендует как минимум 100 фото каждого типа. Но чет это дохрена. Сам скрипт retrain.py говорит, что 20 изображений.

Как и в примере фото прибраной комнаты room/clean, фото бардака room/messy.

Теперь учим нейросеть
Изображение

Код: Выделить всё

python3 retrain.py \
    --image_dir /root/tensorflow/room \
    --output_graph=rooms.pb \
    --output_labels=rooms.txt \
    --tfhub_module https://tfhub.dev/google/imagenet/inception_v3/feature_vector/1

Как пишет Matt Farley обучение занимает от 15-60 минут в зависимости от процессора.
Так как апельсин слабоват для таких задач, можно учить на ББ.
Положительный момент в том, что обучить можно один раз, если положение камеры у вас не будет изменяться.
Результатом обучения будет два файла rooms.pb и rooms.txt


**4.TEIL VIER. BLITZKREIG**

Распознаем снапшот с камеры.

Код: Выделить всё

python3 label_image.py \
    --graph=rooms.pb \
    --labels=rooms.txt \
    --input_layer=Placeholder \
    --output_layer=final_result \
    --image=/path/to/new_image.jpg

Результатом будет ответ вроде:

Код: Выделить всё

messy 0.894276
clean 0.105724

В данном случае нейросеть пришла к выводу, что в комнате срач.
Утаскиваем значения в МДМ.

**5. TEIL FÜNF. KAPITULIREN**

Собственно у меня пока один вопрос, как утащить МДМ результат работы скрипта.
Последний раз редактировалось C_3AXAPOB Вс окт 14, 2018 6:29 am, всего редактировалось 1 раз.
За это сообщение автора C_3AXAPOB поблагодарили (всего 7):
VooDooN (Ср окт 10, 2018 10:58 am) • Molostov (Чт окт 11, 2018 12:22 am) • nightwind (Чт окт 11, 2018 6:37 pm) • ILGAS (Вт окт 16, 2018 11:20 pm) • Zaezd2008 (Вс ноя 11, 2018 9:36 pm) • Ron (Пн ноя 12, 2018 6:59 pm) • slgeo (Чт ноя 29, 2018 9:11 am)
Рейтинг: 9.59%
directman66
Сообщения: 1850
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 284 раза
Поблагодарили: 346 раз
Контактная информация:

Re: IP камера, нейросеть und оrdnung

Сообщение directman66 » Ср окт 10, 2018 6:52 am

Это круто! Самое простое - можно get запросом присводить значение какой-либо переменной. Смотрите примеры в базе знаний https://kb.smartliving.ru/http-ssilki-d ... majordomo/
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 Whatsap
smart_g
Сообщения: 238
Зарегистрирован: Вт окт 17, 2017 11:29 am
Откуда: Украина, Киев
Благодарил (а): 13 раз
Поблагодарили: 28 раз

Re: IP камера, нейросеть und оrdnung

Сообщение smart_g » Ср окт 10, 2018 11:43 am

C_3AXAPOB писал(а):
Ср окт 10, 2018 1:06 am


Собственно у меня пока один вопрос, как утащить МДМ результат работы скрипта.
Да как вариант сделать вывод последнего скрипта не стандартный вывод, а вплоть до посылки по MQTT. Это же линукс.
Ubuntu Server 16.04 LTS, OpenWRT 1-wire, SonOFF, MYSensors, MiHome, Yeelight, MiFlower
C_3AXAPOB
Сообщения: 456
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 104 раза
Поблагодарили: 88 раз

Re: IP камера, нейросеть und оrdnung

Сообщение C_3AXAPOB » Вс окт 14, 2018 6:22 am

Наконец-то набрал нужное количество снапшотов для обучения.
Докладываю.
Обучал на ноуте с Core i7, время обучения ~10 минут. Общее количество использованных снапшотов 43. Разрешение каждого 1280x720. Что похоже излишне. Можно попробовать на меньшем разрешении. Размер обученной модели ~83 мегабайта.

Обученную сеть закачал на свой сервер orange pi pc+.

Время распознавания снапшота с разрешением 1280x720 25-30 секунд. Распознает хорошо.

Изображение
Аватара пользователя
ZhenyaRUS39
Сообщения: 35
Зарегистрирован: Ср ноя 16, 2016 12:41 pm
Благодарил (а): 23 раза
Поблагодарили: 3 раза

Re: IP камера, нейросеть und оrdnung

Сообщение ZhenyaRUS39 » Вт окт 16, 2018 2:03 pm

А не могли бы вы видео записать что и как вы делаете, как обучаете и как скармливаете результат в MD.
Очень интересная тема и практически безграничная, но входной порог высок получается, а Ваше видео бы помогло :)
C_3AXAPOB
Сообщения: 456
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 104 раза
Поблагодарили: 88 раз

Re: IP камера, нейросеть und оrdnung

Сообщение C_3AXAPOB » Сб окт 20, 2018 10:39 pm

Я бы записал но мне жутко лень :D

В моем случае нейросеть определят встал я с кровати или нет. Если нет будильник повторяется.

Распознавание я вызываю из МДМ сриптом и из него же получаю результат.

Код: Выделить всё

$snapshot="/var/www/cms/images/".gg('Camera02.snapshot');
exec("sudo python3 /root/tensorflow/label_image.py --graph=/root/tensorflow/cam.pb --labels=/root/tensorflow/cam.txt --input_layer=Placeholder --output_layer=final_result --image=".$snapshot, $output);
$res=explode(' ', $output[0]);
sg('AlarmClock01.sleep', $res[0]);	
За это сообщение автора C_3AXAPOB поблагодарили (всего 2):
VooDooN (Вс окт 21, 2018 3:16 pm) • Molostov (Пн окт 22, 2018 8:40 pm)
Рейтинг: 2.74%
Zaezd2008
Сообщения: 160
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 5 раз

Re: [Модификация] Камера, нейросеть und оrdnung

Сообщение Zaezd2008 » Вс ноя 11, 2018 9:40 pm

Отличное рабочее решение. На i3 время распознавания 3 секунды, работает четко.
Дети не в восторге.... :P
За это сообщение автора Zaezd2008 поблагодарил:
C_3AXAPOB (Пн ноя 12, 2018 3:15 pm)
Рейтинг: 1.37%
C_3AXAPOB
Сообщения: 456
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 104 раза
Поблагодарили: 88 раз

Re: [Модификация] Камера, нейросеть und оrdnung

Сообщение C_3AXAPOB » Пн ноя 12, 2018 3:30 pm

Здорово, что у вас все тоже работает. Посмотрите еще вот этот мой пост https://connect.smartliving.ru/profile/908/blog170.html
Может тоже пригодится. :)
За это сообщение автора C_3AXAPOB поблагодарил:
Ron (Пн ноя 12, 2018 6:59 pm)
Рейтинг: 1.37%
Zaezd2008
Сообщения: 160
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 5 раз

Re: [Модификация] Камера, нейросеть und оrdnung

Сообщение Zaezd2008 » Ср ноя 28, 2018 9:21 am

Класс!А как вы ставили YOLO? Инструкцию взял https://pjreddie.com/darknet/install/, но получаю:

Код: Выделить всё

    from darkflow.net.build import TFNet
ImportError: No module named darkflow.net.build
C_3AXAPOB
Сообщения: 456
Зарегистрирован: Ср июн 08, 2016 4:17 pm
Благодарил (а): 104 раза
Поблагодарили: 88 раз

Re: [Модификация] Камера, нейросеть und оrdnung

Сообщение C_3AXAPOB » Ср ноя 28, 2018 9:46 am

Да конечно. Честно говоря не припомню что бы были проблемы с установкой YOLO и darknet :roll:
Ответить