Распознавание лиц

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Распознавание лиц

Сообщение tarasfrompir » Вт окт 31, 2017 11:06 pm

Пока результат для Виндовса
Gelezko - обрати внимание єто по твоей части - а вот ссылка на сами скрипты https://github.com/tarasfrompir/face_detected
Проги собраны из питоновских скриптов
Да! И запускаются они только в папке _majordomo/apps/ocv/ - путь жестко прописан в программе.. для исключения некоторых ошибок получаемых при запуске программ из php скриптов (методов и тд)
Вот результаты испытаний - программы
видео https://youtu.be/-oDVmcDyV9A извените за качество оно мое первое такое длинное да и с планшета писалось
параметры запуска программ -
fase_data
СпойлерПоказать
1 параметр имя пользователя
2. параметр номер устройства (вебкамера - как обычно 0 если нет других видеустройств)
Пока толдько эксперементальным путем.
training и update - без параметров

recognition
СпойлерПоказать
1- параметр порт сервера
2. Название комнаты в которой находится камера
3. уровень распознавания если 300 то точнее если 500 то может ошибится (цифры варьируются от 999 до 1)
4. время распознавания
5. соотношение кадра (16:9 или 3:4) или какие еще есть (моя камера одна не дает стандартный размер кадра обсуждал это в ветке Semple Devices )
6. это или номер камеры или адрес rtsp потока который надо брать в кавычки
Проги щас приложатся...
Видать не мой сегодня день...
Приложил - https://drive.google.com/file/d/0B1hHrq ... sp=sharing

ППС прости за видео исправляю - первый раз такое вижу

Отредактировано
Новое видео вот оно https://youtu.be/8FCmCXgQUQ8
Последний раз редактировалось tarasfrompir Ср ноя 01, 2017 1:12 am, всего редактировалось 4 раза.
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Распознавание лиц

Сообщение Gelezako » Вт окт 31, 2017 11:38 pm

видео как-то странно залилось, сильно ускорено ((
буду очень признателен если попробуете перезалить.
В топике простые устройства я по ошибке указал ссылку на другой ваш проект на гитхабе, на самом деле я имел ввиду вот этот проект
https://github.com/tarasfrompir/moveDVRindicate
в нём вы используете recognition.exe файл, которого нет в этом проекте.
Последний раз редактировалось Gelezako Ср ноя 01, 2017 1:37 am, всего редактировалось 1 раз.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Распознавание лиц

Сообщение tarasfrompir » Ср ноя 01, 2017 12:35 am

Да этот модуль меня вполне устраивает и работает он прекрасно...
Но есть маленькое но уже написан smtp catcher которые делает первую половину его задач... А Это уже стандартный модуль и вполне работающий...
ну а вторую можно решить простым скриптом или методом...
Чего я и сделал добавив отдельно себе простое устройство dvr камера...
Но оно Не прижилось чего то..
Не судьба с Сергеем спорить может доделается IP camera... Щас ведем помаленьку переписку...
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Распознавание лиц

Сообщение Gelezako » Ср ноя 01, 2017 2:02 am

супер, спасибо, не могли бы вы выложить код метода в Мажордомо? На видео плохо видно.
Ещё я не понимаю как результаты работы recognition.exe попадают в мажордомо? И как вы инициируете вызов метода в Мажордомо?

---
назрели ещё вопросы:
- на каком максимальном расстоянии от камеры ваша нейронка успешно распознаёт лицо?
- какого разрешения фото делает ваша камера?
- если фото будет сделано в профиль (т.е. за 40 секунды вы так и не повернётесь к ней лицом), нейронка распознает его?
- какую роль во всём этом играет плагин https://github.com/tarasfrompir/moveDVRindicate
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Распознавание лиц

Сообщение tarasfrompir » Ср ноя 01, 2017 10:23 am

1. Программа передает данные по HTTP запросу Гет изменяя значение User1,2,3,4,5 и тд. (Может распознавать несколько лиц сразу...)
2. Для программы нет разницы в растоянии (смотрите 3 п.)
3. на сегодня это 80*80 пикселей минимальное изображение лица. И тут самое ИНТЕРЕСНОЕ - чем больше использовать размер изображения тем меньше нагрузки на процессор (так доводил нагрузку среднюю до 15 %).
4. Профиль нейронка не распознает вообще - поскольку используется заготовка не знаю как по русски "обрисів" лица. Глаза нос рот...
5. Плагин же получал письмо из DVR регистратора (он у меня физический) об старте движения и запускал распознавание лица с выводом в соответствующую "Комната.User"...
Вот где то так...
Метод какой нужен ?

Принцип работы на сегодня при работе с камерами ДВР регистратора (удаленного) такой :mrgreen:
1. СМТП кетчер - получает письмо из ДВР регистратора и запускает скрипт который....
2. Запускает метод онактивити в соответствующей комнате.
3. Запускает метод motionDetected в соответствующем простом устройстве для вас это АЙПИ камера для меня это ДВР камера.
4. В методе происходит запуск распознавания лица .
5. Метод выводит в соответствующую комнату имя распознаного человека.
6. Ну и я настроил реакцию на изменение Комната. User при котором он сообщает что я появился в камере...

ПС
Забыл о настройка регистратора -
Каждую камеру я называю так же как и название места (комнаты ) в которой находится эта камера , в мажорике специально сделал для этого новые местоположения...
ДЛЯ УДОБСТВА и универсализации...

ну и настроил отправку письма на мажорика при определении движения ...
Но тут есть подвох - камера срабатывает очень часто на мошкару на улице, дождь и порывы ветра (колышутся цветы, ветки деревьев) - вот это БЕДА какая то.
И чуствительность регулировал и чего только не делал - или очень сильно надо пробежать перед камерой или есть ложные срабатывания....
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Распознавание лиц

Сообщение Gelezako » Ср ноя 01, 2017 1:35 pm

спасибо за развернутый ответ, по-поводу чувствительности камеры и ложных срабатываний, думаю что этого не избежать, но и эта проблема решается. Даже если ваш датчик движения на камере зафиксировал движение, то ваша нейронка поищет поищет, лица не найдёт и всё. Т.е. всё что вы потеряете - это процессорное время на работу нейронки по поиску лица. Но это вроде не так страшно.

У моей IP камеры тоже есть датчик движения, но используя стандартный софт я могу лишь настроить то срабатывание что предлагается там, а там я могу начать воспроизводить аудио файл и всё. Емейл отправлять я не могу. Так вот, может существует какой-то общий софт для управления камерами, где я могу настраивать разные события? Или всё ограничего лишь стандартным китайским софтом для этого производителя?
tarasfrompir1 писал(а):Метод какой нужен ?
имелось ввиду php код метода, который вы показываете в видео, вроде как это внутренности motionDetected
tarasfrompir1 писал(а): 5. Метод выводит в соответствующую комнату имя распознаного человека.
т.е. у вас есть несколько помещений, в каждом (или нескольких) из них есть динамик и камера и если камера кого-то увидела, а потом нейронка распознала лицо, то звук выводится только в это помещение? Если я правильно понял, то как вы научили Мажорик воспроизводить только в нужный динамик, а не во все?
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Распознавание лиц

Сообщение tarasfrompir » Ср ноя 01, 2017 3:46 pm

По поводу нагрузки то это да проблем нет - но если 5-10 камер одновременно запустятся на осмотр то йойойо вава будет компу... (Но на факте это не так и страшно).
Метод motionDetected - метод еще не готов но уже почти - сами понимаете демонстрация и боевые условия все оно очень разно.
Но что бы не сказали что зажал вот он - кстати он есть на гите...
СпойлерПоказать
// запускаем распознавание
//берем если ссілька есть на HQ а те то LQ
if ($this->getProperty('streamURL_HQ')) {
$rtsp_url=$this->getProperty('streamURL_HQ');
} elseif ($this->getProperty('streamURL')) {
$rtsp_url=$this->getProperty('streamURL');
}
// get name of room
$room=$this->getProperty('linkedRoom');
// get level recognition
$porog_recognition=$this->getProperty('recognition_level');
// get time to chek from room.IdleDelay
$TimetochekCam=getGlobal($room.'.IdleDelay');
// get frame aspect ratio
$aspectRatio=$this->getProperty('aspect_ratio');
// get time to chek from room.SomebodyHere
$SomebodyHere=getGlobal($room.'.SomebodyHere');
// get the argment for recognition
$args = '80 '.$room.' '.$porog_recognition.' '.$TimetochekCam.' '.$aspectRatio.' '.$rtsp_url.'';
$args = str_replace(' ', ' ', $args);
echo $room;
echo $SomebodyHere;
if (IsWindowsOS() and !$SomebodyHere) {
callMethod($room.".onActivity");
echo "metod activated";
system(SERVER_ROOT.'\apps\ocv\recognition.exe '.$args);
}
echo $args;
В помещениях камер я не планирую ставить - лично сам уже становлюсь ПАРАНОИКОМ в этом плане , но есть у меня две камеры одно во дворе а одна почти стоит перед входом в дом
Вот она то и будет говорить мне кто пришел ко мне домой...

По поводу вывода звука - метод при изменении свойства Юзер выводил его просто на планшет и все...
Так что это обманчивая штука....
А вот по поводу звука довожу до ума все на блутуз модулях - где мои эксперименты почти дошли до кондиции .. (проверено одновременно передают звук на 3 точки без потери качества и без разрывов) есть предположение что и больше...
Но Не могу изменить пин код в прошивке - но я его добью... И ПоэТому ЗАСТРЯЛ...
А на этом модуле и стерео звук и микрофон - а прога уже написана очень давно и кстати где то лежит на сих просторах форума...
Так сказать мобильный вариант звука у меня можно сделать ...
И еще я доделал модуль "устройства онлайн" который проверяет связь для этих блутуз устройств... все это по форуму выложено -
Так что как говорит наш батюшка ищите и обрящете...
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Распознавание лиц

Сообщение Gelezako » Ср ноя 01, 2017 4:08 pm

спасибо за код, но я не понимаю зачем вы используете echo, если этот код будет к примеру в методе motionDetected, то конструкции echo некуда выводить данные. Лично я для дебага иногда вывожу всё через say(). Вы сказали что метод незавершён и я пока с этим связываю.

Вы сказали что камеры по сути у вас на улице, но я тогда не понимаю зачем в вашей логике используется

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

$room=$this->getProperty('linkedRoom'); 
Для того что бы определить что лицо найдено либо во дворе либо перед домом? Хм, но это почти одно и тоже, зачем такая детализация?

По-поводу модуля "устройства онлайн", может зальёте на гитхаб? Я все разработки стараюсь туда заливать, это помогает и мне и другим с кем я делюсь кодом. Особенно когда пишу обучающие видео по Мажорику.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

Re: Распознавание лиц

Сообщение tarasfrompir » Ср ноя 01, 2017 4:57 pm

По поводу "на улице" - а определенное место (где стоит машина , весит свет, стоит погодная станция, или же полив ) перед дверьми это не виртуальная комната со своими устройствами?
Ну или например беседка, где я не только отдыхаю но и слушаю музыку, включаю свет и тд.???

По поводу есно - не спорю осталось от проверки - но ведь я же предупреждал что это тестовый код который я написал сегодня до 12 часов дня и который в боевых условиях еще не испытан... а ведь отработать что и куда показывает ведь нужно же...

По поводу мест калитка на входе и место во дворе перед входом в дом .
Перед калиткой приходят люди и стучат в нее - а вАсилиса моя говорит что кто то пришел - и если распознала то кто пришел...

А вот во дворе распознавание мне не нужно поскольку я и так знаю кого впустил. Но чтобы сработал метод активности во дворе от камеры мне нужно - и я уже знаю что кто то там ходит...
Ну или для безопасности это применить - если ночью кто то ходит во дворе - значит уже нехорошо!
А по поводу распознавания лица во дворе - я большой необходимости не вижу, ведь где то я уже писал - что становлюсь параноиком (ну не нужно выкладывать на всеобщее обозрение данные со своих камер - ведь я пользуюсь Виндовсом - а это еще та бяка в этом плане (почитайте если интересно в инете)) да и проще и приятней пойти посмотреть кто там ходит а не заплывать жирком в кресле перед своим домом.... :lol: :lol: :lol:

Так модуль пинг онлайн у меня в форке сделан - но надобности на него не было никакой.
Сергей и nick7zmail меня быстро успокоили и сказали что это не хост а блутуз (хотя как по мне какая разница как определять устройство по айпи адресу или по мак адресу).
Так что если интересно я найду ту тему , а вот и она - viewtopic.php?f=5&t=4183 там изменений не много, да и сделана она только для виндовс
- для линукса как то руки не доходят...

Проси Сергея чтобы он внес эти изменения - а то я устал все это делать ведь полтора года уже я всем этим мучаюсь...
Спасибо нам ПОМОЖЕТ..!
Аватара пользователя
Gelezako
Сообщения: 963
Зарегистрирован: Чт июн 02, 2016 9:33 pm
Благодарил (а): 205 раз
Поблагодарили: 106 раз
Контактная информация:

Re: Распознавание лиц

Сообщение Gelezako » Ср ноя 01, 2017 5:25 pm

понял, ок, если закончите всё же свой модуль и допишите мотод по распознаванию, то будет интересно посмотреть. Может совместно склепаем модуль.

Ещё я хотел спросить, все exe файлы вы сами писали? Построение нейронки тоже сами делали или взяли готовый вариант?

На счёт внесения изменений в код, писать на форуме не всегда эффективно. Лучше прямо на гитхабе открывать Pull requests с готовым кодом и описанием что он делает. Модерация проходит очень быстро. Я так делал несколько раз. К примеру вот ссылка на сам проект мажордомо
https://github.com/sergejey/majordomo
Это профиль Сергея, в нём же можно найти ссылки на все модули что он писал - https://github.com/sergejey?tab=repositories
Сергей и nick7zmail меня быстро успокоили и сказали что это не хост а блутуз (хотя как по мне какая разница как определять устройство по айпи адресу или по мак адресу).
хм, хочу высказаться в ваше поддержку, у меня иногда по какой-топричине шлюз телефону и компам присваивает другой ИП и это всё ломает. Поэтому проверка по маку отличная идея. Попробую применить ваш код и потестить.
фанат Мажордомо
тематический блог http://blog.gelezako.com
плейлист про Мажордомо на ютубе https://www.youtube.com/playlist?list=P ... EdBGtX084E
Ответить