SARAH v3: Developer Diarie I

Quand sortira la version 3 ? Je ne sais pas ! « When it’s ready ! » 🙂 En attendant voici quelques petits trucs sur lesquels j’ai bossé pendant mes congés.

Refactoring

Dans la v2.9 j’avais réécris la partie Audio du code C#. Dans la v3.0 j’ai réécris le reste !

Le process principal ne fait que stocker les données brute du Kinect pour perdre le moins de temps. Ensuite plusieurs tâches viennent périodiquement manipuler ces données:

  • Présence
  • Gesture
  • Couleur dominante
  • QRCode
  • Détection faciale
  • Reconnaissance faciale
  • Websocket
  • Profondeur

Du coup l’architecture est beaucoup plus élégante et extensible. Il n’y a même plus de dépendance avec l’IHM.

Le custom.ini permet maintenant de définir le temps allouer à chaque tâche.

Optimisations

Pour améliorer les performances, les tâches manipulent directement des tableaux de byte. Et les images sont modifiées avec Open CV (meilleurs performances et plus de Locks).

La philosophie change légèrement, j’aimerai que TOUS les flux (gesture, profondeur, couleur, …) soient tout le temps actif MAIS s’activent intelligemment.

Typiquement si il n’y a personne devant la caméra on coupe tout … Et je veux réduire drastiquement les faux positifs sur les gestures.

Passage de 1 à N

Cette mécanique est scalable, il y aura autant de WSRKinectSensor qu’il y a de Kinect branché à la machine. C’est aussi valable pour l’audio !

Par contre le streaming WebSocket ne marche qu’avec le premier Kinect.

Goodies

Au passage quelques goodies:

  • Lissage des données de profondeur (pour le Fond Vert)
  • Calcul de la distance entre 2 jointures
  • Calcul de la couleur dominante
  • Plein de donnée de debug et perfs

What’s Next ?

Pleinnnnn de choses … en gros j’aimerai:

  • Avoir plus d’infos sur les utilisateurs (présence, visage, morphologie, etc, …)
  • Envoyer ces infos côté NodeJS de manière propre et accessible
  • Pouvoir détecter et apprendre les Blob (objets en main)
  • Exploiter les autres microphones et enceintes branchés

Bref stabiliser les autres fonctions (complémentaires à la reconnaissance vocale)

5 pensées sur “SARAH v3: Developer Diarie I

  • 19 août 2013 à 20 h 58 min
    Permalink

    merci pour ces nouvelles perspectives, en particulier le mode scalable, toute la maison pourra être à l’écoute !

    Répondre
  • 19 août 2013 à 20 h 58 min
    Permalink

    On peut dire que tu ne chômes pas ! Bon courage pour la suite.

    Répondre
  • 19 août 2013 à 23 h 13 min
    Permalink

    En effet ça promet !
    Par contre j’ai une petite suggestion, vu que la liste me semble légère 😉
    Il me semble que Log2Console (ou son prédécesseur) affichait des coordonnées lors de la reconnaissance vocale via kinect. Est-ce qu’il serait possible de récupérer ces informations afin d’effectuer des traitements différents selon la position ?
    Exemple tout simple : « Sarah allume la lampe », et selon la position, c’est la lampe du couloir ou du salon qui s’allume …

    Enfin merci pour ce travail, j’ai hâte de voir la suite arriver.

    Répondre
  • 19 août 2013 à 23 h 32 min
    Permalink

    Ah non aucune version précédente n’affichait de coordonnée mais je voulais le faire !

    En fait, je voudrais envoyer côté NodeJS les coordonnée de la tête (pas forcément lors d’une reco vocale). Car je voudrais faire un Mashup avec les Lego Mindstorm EV3 qui viennent de sortir.

    Après pointer du doigt une lampe c’est quand même « assez chaud » de faire qqch de générique.

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *