2016-11-21 3 views
1

Je veux exécuter des réseaux de neurones et des algorithmes d'apprentissage machine comme le suivi du visage avec l'entrée d'un robotic camera (PTZ) pour contrôler le mouvement de la caméra et accéder au haut-parleur.Existe-t-il une API pour la caméra IP de Foscam R2?

Je prévois acheter le R2 de Foscam mais je n'ai aucune expérience avec les caméras IP. J'ai essayé de contacter Foscam mais ils ont donné des informations très limitées et m'ont recommandé de postuler pour un SDK. Est-ce que quelqu'un sait, si je serai en mesure de prendre le contrôle de l'appareil photo sans l'application smartphone, mais sur une sorte d'interface de programmation?

Sur l'information produit amazon allemand est écrit il est compatible NVR avec ONVIF et FTP-Server (disques durs connectés à un routeur, NAS). Pour autant que je comprenne ONVIF spécifie un standard et j'ai trouvé quelques tutoriels C# ONVIF sur Youtube mais je ne suis toujours pas sûr si cela signifie qu'il y a définitivement une API pour le R2 qui me permet de faire tout ce dont j'ai besoin.

Y a-t-il suffisamment d'expérience pour m'aider? Aussi, puis-je connecter l'appareil photo directement à un pi de framboise et éviter de l'utiliser sur le réseau et accéder directement à la fonctionnalité?

+0

salut, ça marche? – Delta

Répondre

4

la recherche d'un SDK/API moi-même je trouve ce lien: http://foscam-uk.com/download/SDK/

Il comprend un document PDF avec des commandes HTTP GET à presque toutes les fonctions d'un Foscam.

+0

Oui, je l'ai trouvé aussi et j'ai postulé pour le SDK Foscam et obtenu une permission, mais jusqu'à présent, je n'ai pas réussi à faire quelque chose avec. – TheMindWithin

0

Jetez un oeil à cette API doc: http://www.camarasip.es/descarga/IP_Camera_CGI_(SDK).pdf

Essayes dans le navigateur de votre choix, par exemple avec:

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

Cela renverra un instantané de la caméra JPG dans votre navigateur. Les commandes PTZ peuvent également être utilisées, par ex.

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

En cas de succès, vous devriez voir le mouvement de la caméra et vous devriez obtenir une réponse comme ceci:

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

A côté de cette HTTP directement interfacer le R2 apparemment a également un support intégré ONVIF. Il y a un module node.js (https://github.com/futomi/node-onvif) pour cela que j'ai pu utiliser pour me connecter afin d'obtenir quelques infos sur la caméra et j'ai pu l'utiliser pour un contrôle PTZ, je ne pense pas à tout quitter si c'est le cas.

Mon plus gros obstacle à ce jour est que je ne trouve rien d'autre qu'un flux vidéo RTSP qui peut être intégré dans une page Web. Les caméras Foscam précédentes, comme la 8910W, avaient cette capacité.

est ici le code ONVIF qui fonctionne pour moi jusqu'à présent:

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

J'ai trouvé un API doc un peu plus récente.

Vous pouvez également glaner quelques informations auprès du python foscam library. Comme pour une connexion directe - si vous n'utilisez pas le port Ethernet sur votre raspi, vous pouvez obtenir un câble croisé et le brancher directement et mettre en place un peu de réseau statique sur ce câble; cela va résoudre les problèmes de bande passante que vous pourriez avoir entre les deux boîtes.