2016-11-21 12 views
1

Я хочу запустить некоторые нейронные сети и алгоритмы машинного обучения, такие как отслеживание лица с помощью ввода от robotic camera (PTZ) для управления движением камеры и доступа к громкоговорителю.Есть ли API для IP-камеры Foscam R2?

Я планирую купить Foscam's R2, но у меня нет опыта работы с IP-камерами. Я пытался связаться с Foscam, но они дали очень ограниченную информацию и передали мне заявку на SDK. Кто-нибудь знает, если я смогу взять под контроль камеру без приложения для смартфонов, но через какой-то интерфейс программирования?

В немецкой амазонке информация о продукте написана, она совместима с NVR с ONVIF и FTP-сервером (жесткие диски, подключенные к маршрутизатору, NAS). Насколько я понял, ONVIF указывает стандарт, и я нашел некоторые учебники по C# ONVIF на Youtube, но я все еще не уверен, что это означает, что определенно есть API для R2, ​​который позволяет мне делать все, что мне нужно.

У кого-нибудь есть опыт, чтобы помочь мне? Кроме того, могу ли я подключить камеру непосредственно к малине pi и не использовать ее по сети и напрямую обращаться к функциям?

+0

привет, это сработало? – Delta

ответ

4

ищет SDK/API сам я нашел эту ссылку: http://foscam-uk.com/download/SDK/

Она включает в PDF документ с HTTP GET команды почти все функции FOSCAM.

+0

Да, я тоже это нашел, и я подал заявку на SDK Foscam и получил разрешение, но до сих пор мне не удалось что-то с этим сделать. – TheMindWithin

0

Посмотрите на этот API документ: http://www.camarasip.es/descarga/IP_Camera_CGI_(SDK).pdf

попробовать его в браузере вашего выбора, например, с:

http://XXX.XXX.XXX.XXX:XX/cgi-bin/CGIProxy.fcgi?usr=YOURUSER&pwd=YOURPASS&cmd=snapPicture2 

Это вернет снимок JPG камеры в вашем браузере. Также могут использоваться элементы управления PTZ, например.

http://XXX.XXX.XXX.XXX:XX/cgi-bin/CGIProxy.fcgi?usr=YOURUSER&pwd=YOURPASS&cmd=ptzMoveUp 

В случае успеха вы должны увидеть движение камеры и вы должны получить ответ, как это:

<CGI_Result> 
    <result>0</result> 
</CGI_Result> 

Рядом с этим прямым HTTP сопряжением R2, по-видимому, также имеет встроенную поддержку ONVIF. Существует модуль node.js (https://github.com/futomi/node-onvif) для того, что я смог использовать для подключения, чтобы получить некоторую информацию о камере, и я смог использовать ее для некоторого управления PTZ, подумал, что не оставил все, если это еще не все.

Мое самое большое препятствие до сих пор заключается в том, что я не могу найти ничего, кроме видеопотока RTSP, который можно интегрировать в веб-страницу. Предыдущие камеры Foscam, такие как 8910W, имели эту возможность.

Вот код ONVIF, который работает для меня до сих пор:

onvif.startDiscovery(function(info) { 
 
     // Show the device name and the URL of the end point 
 
     console.log('\n********* Retrieved Discovery Info ***********'); 
 
     console.log(JSON.stringify(info, null, ' ')); 
 

 
     // Create an OnvifDevice object 
 
     var device = new onvif.OnvifDevice({ 
 
     xaddr: info.xaddrs[0], 
 
     user: 'YOURUSER', 
 
     pass: 'YOURPASS' 
 
     }); 
 

 
     // Initialize the OnvifDevice object 
 
     device.init(function(error) { 
 
      if (error) { 
 
      console.log('[ERROR] ' + error.message); 
 
      } else { 
 
      // Get the detailed device information 
 
      var device_info = device.getInformation(); 
 
      // Show the result 
 
      console.log('\n********* Retrieved Discovery Info ***********'); 
 
      console.log(JSON.stringify(device_info, null, ' ')); 
 
      var url = device.getUdpStreamUrl(); 
 
      console.log('UDP Stream URL: ' + url); 
 

 
      var profile_list = device.getProfileList(); 
 
      for (var i = 0; i < profile_list.length; i++) { 
 
       console.log('\n********* Retrieved Profile ***********'); 
 
       console.log(profile_list[i]); 
 
       console.log('\nPTZ:'); 
 
       console.log(profile_list[i].ptz); 
 
      } 
 

 
      // The OnvifServicePtz object 
 
      var ptz = device.services.ptz; 
 

 
      if (ptz) { 
 
       console.log('Current Token: ' + device.getCurrentProfile()['token']); 
 

 
       var params = { 
 
       'ProfileToken': device.getCurrentProfile()['token'], 
 
       'Position': { 
 
        x: .5, 
 
        y: 0, 
 
        z: 0 
 
       }, 
 
       'Timeout': 1 
 
       }; 
 

 
       ptz.absoluteMove(params, function(error, result) { 
 
       { 
 
        if (error) { 
 
        console.log('[ERROR] ' + error.message); 
 
        } else { 
 
        console.log(JSON.stringify(result.data, null, ' ')); 
 
        } 
 
       }); 
 
       } else { 
 
       console.log('[ERROR] Your ONVIF network camera does not support the PTZ service.'); 
 
       } 
 
      } 
 
      }); 
 

 
     });

0

Я нашел несколько более поздние API doc.

Вы также можете получить информацию от python foscam library.

Что касается прямого подключения - если вы не используете порт Ethernet на вашем raspi, вы можете получить кроссоверный кабель и подключить его напрямую и настроить небольшую статическую сеть на этом кабеле; который исправит любые проблемы с пропускной способностью, которые могут возникнуть между двумя блоками.