Страница 8 из 23

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

Добавлено: Сб ноя 04, 2017 8:48 am
tarasfrompir
ну тогда проверим так ...
1. Попробуй запустить программу так recognition.exe 80 Hall 400 40 4:3 http://192.168.100.207:4748/video (ссылка на видео)
Если все окей то покажет видеоизображение от видеокамеры и после твоего распознавания в комнате Hall будет User1.
2. Если все это работает то проверь присутствие метода motionDetected в классе SDVRCameras его содержимое такое
SPOILERSPOILER_SHOW
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDVRCameras_motionDetected.php');
/* end injection of {SDevices} */
Содержимое файла SDVRCameras_motionDetected.php
у тебя есть но на всякий случай
SPOILERSPOILER_SHOW
<?php

//стандартный код

if (isset($params['VALUE']) && !$params['VALUE'] && !isset($params['statusUpdated'])) {
$this->setProperty('status', 0);
return;
}
$motion_timeout=20; // seconds timeout
$ot=$this->object_title;
$nobodysHome=getGlobal('NobodyHomeMode.active');
if (!isset($params['statusUpdated'])) {
$this->setProperty('status', 1);
}
setTimeout($ot.'_motion_timer', 'setGlobal("'.$ot.'.status", 0);', $motion_timeout);
if ($nobodysHome && $this->getProperty('ignoreNobodysHome')) {
return;
}
$this->callMethod('logicAction');
$linked_room=$this->getProperty('linkedRoom');
if ($nobodysHome) {
callMethodSafe('NobodyHomeMode.deactivate', array('sensor'=>$ot, 'room'=>$linked_room));
}
ClearTimeOut("nobodyHome");
SetTimeOut("nobodyHome","callMethodSafe('NobodyHomeMode.activate');", 1*60*60);

// svoya vrezka
// берем есь ли активность в комнате room.SomebodyHere do zapuska metoda on activyty
$SomebodyHere=getGlobal($linked_room.'.SomebodyHere');
// konec vrezki

// zapuskaem metod onActivity v komnate
if ($linked_room) {
callMethodSafe($linked_room.'.onActivity', array('sensor'=>$ot));
}

// конец стандартного кода

//берем ссылку на поток если ссылка есть на HQ а нет то LQ
if ($this->getProperty('streamURL_HQ')) {
$rtsp_url=$this->getProperty('streamURL_HQ');
} elseif ($this->getProperty('streamURL')) {
$rtsp_url=$this->getProperty('streamURL');
}

// берем разрешиние на распознавания
$userecognition=$this->getProperty('use_recognition');
// берем уровань распознавания
$porog_recognition=$this->getProperty('recognition_level');
// берем время на распознавание room.IdleDelay
$TimetochekCam=getGlobal($linked_room.'.IdleDelay');
// берем соотношение кадра
$aspectRatio=$this->getProperty('aspect_ratio');
// создаем аргументы для распознавания
$args = '80 '. $linked_room.' '.$porog_recognition.' '.$TimetochekCam.' '.$aspectRatio.' '.$rtsp_url;
// удаляем лишние пробелы
$args = str_replace(' ', ' ', $args);


// запускаем распознавание если виндовс и никого нет в комнате и дано разрешение на распознавание
if (IsWindowsOS() and !$SomebodyHere and $userecognition) {
echo "metod activated";
$program = (SERVER_ROOT.'/apps/ocv/recognition.exe '.$args);
echo $program;
//passthru($program);
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell -> Run($program, 7, false);
///$sStdOut = $oExec->StdOut->ReadAll; # Standard output
//$sStdErr = $oExec->StdErr->ReadAll; # Error
}
3. Ну и если все окей то тогда должно работать
Ну и напоследок давай гляну через тимвивер если что

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

Добавлено: Вс ноя 05, 2017 2:24 am
Gelezako
выполнил я код из метода, вот результат motionDetected, я просто вставил его в сценарий и выполнил

Fatal error: Call to undefined method scripts::setProperty() in C:\_majordomo\htdocs\modules\devices\SDVRCameras_motionDetected.php on line 13

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

Добавлено: Вс ноя 05, 2017 11:32 am
tarasfrompir
Ну тогда попробуй вот такой -
SPOILERSPOILER_SHOW
<?php

$linked_room=$this->getProperty('linkedRoom');

//берем ссылку на поток если ссылка есть на HQ а нет то LQ
if ($this->getProperty('streamURL_HQ')) {
$rtsp_url=$this->getProperty('streamURL_HQ');
} elseif ($this->getProperty('streamURL')) {
$rtsp_url=$this->getProperty('streamURL');
}

// берем уровань распознавания
$porog_recognition=$this->getProperty('recognition_level');
// берем время на распознавание room.IdleDelay
$TimetochekCam=getGlobal($linked_room.'.IdleDelay');
// берем соотношение кадра
$aspectRatio=$this->getProperty('aspect_ratio');
// создаем аргументы для распознавания
$args = '80 '. $linked_room.' '.$porog_recognition.' '.$TimetochekCam.' '.$aspectRatio.' '.$rtsp_url;
// удаляем лишние пробелы
$args = str_replace(' ', ' ', $args);


// запускаем распознавание если виндовс и никого нет в комнате и дано разрешение на распознавание
if (IsWindowsOS()) {
echo "metod activated";
$program = (SERVER_ROOT.'/apps/ocv/recognition.exe '.$args);
echo $program;
//passthru($program);
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell -> Run($program, 7, false);
///$sStdOut = $oExec->StdOut->ReadAll; # Standard output
//$sStdErr = $oExec->StdErr->ReadAll; # Error
}
Должно показать metod activated

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

Добавлено: Вт ноя 07, 2017 2:31 pm
directman66
Кстати, можно еще настроить амазон рекогнишн https://aws.amazon.com/ru/rekognition/getting-started/

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

Добавлено: Вт ноя 07, 2017 2:38 pm
Gelezako
а разве это бесплатно?

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

Добавлено: Вт ноя 07, 2017 3:13 pm
directman66
Вполне, есть бесплатные лимиты, которых для личного пользованния очень даже достаточно.

Есть примеры реалаизаци и на php http://docs.aws.amazon.com/aws-sdk-php/v3/guide/

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

Добавлено: Вт ноя 07, 2017 3:25 pm
Gelezako
круто, давайте попробуем вместе реализовать модуль для мажордомо? Хотя мой скил н пхп не очень высокий, но какую-нибудь несложную работу по интеграции всё равно смогу проделать.

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

Добавлено: Вт ноя 07, 2017 3:38 pm
directman66
До модулей нам еще далеко. В этом видео можно понять как работать с хранилищем https://www.youtube.com/watch?v=93npbhqmsME

тут есть пример сравнения двух лиц https://www.youtube.com/watch?v=-2C6-cSB674

Управление колекцией лиц http://docs.aws.amazon.com/rekognition/ ... ction.html

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

Добавлено: Вт ноя 07, 2017 4:10 pm
Gelezako
начал устанавливать их пакет aws.phar и оказалось что для нормальной работы нужно использовать версию php не ниже PHP 5.5, а у меня вместе с мажордомо поставляется PHP 5.4.30
где пол года назад я пробовал обновить версию php, но тогда мажордомо переставал работать. У кого какая версия пхп сейчас работает в мажордомо?

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

Добавлено: Вт ноя 07, 2017 4:23 pm
directman66
у меня вообще 7.0.22

кстати, тоже самое есть и у гугл https://cloud.google.com/vision/docs/face-tutorial

а самое крутое, что я пока видел https://www.youtube.com/watch?v=T6czH6DLhC4