.. _`kognihome/mirror/mirroricl`: KogniMirror-Computervision ========================== :Kontakt: Andre Ückermann :CITK: `kognimirror-icl `_ :Vorbedingung: Der Bildserver benötigt die `Image Component Library (ICL) `_, welche auch durch das :ref:`guides/citk` installiert werden kann mit Hilfe des Rezeptes`icl-kognihome https://opensource.cit-ec.de/projects/citk/repository/revisions/master/entry/projects/icl-kognihome.project`_. Aus der ICL kommt für :ref:`tp2/mirror` außerdem das Programm ``icl-pipe`` zum Einsatz welches das Bild Kamerabild der DC-Kamera in ein :term:`shared memory`-Segment schreibt:: $ icl-pipe -i dc800 0@format=1280x960-RGB8~15Hz -o sm dcam :Quickstart: Diese Komponente besteht aus mehreren Einzelprogrammen: * mirror-3d -- verarbeitet die Tiefenbildinformation, verknüpft diese mit Bildaten und liefert Daten für die Gestensteuerung. * mirror-2d -- Vearbeitet das auf dem Spiegel auzugebene Bild und verwaltet Bildfilter und Aufnamefunktionen. Beide Programme befinden sich in ``${prefix}/bin/KogniMirrorICL`` und sind somit möglicherweise nicht direkt über ``$PATH`` abrufbar. ``kognimirror-3d`` benötigt als Argumente: * Konfigurationen für die beiden Kinect-Tiefenkameras (``-cd1`` und ``-cd2``) * Konfigurationen für die beiden Kinect-RGB-Kameras (``-cc1`` und ``-cc1``) * Device-Handles der Kinect-Tiefenkameras (``-id1`` und ``-id2``) * Device-Handles der Kinect-RGB-Kameras (``-ic1`` und ``-ic2``) * Konfigurationsparameter für das Programm (``-c``) * Ausgabe für ``mirror-2d`` (``-o``) * sowie weitere Parameter, welche Einfluss auf Auflösung und Rotation haben, aber im Normalfall nicht geändert werden müssen. Ein Aufruf könnte dann folgendermaßen aussehen:: $ ${prefix}/bin/KogniMirrorICL/mirror-3d \ -cd1 ${prefix}/etc/KogniMirrorICL/k1d.xml \ -cd2 ${prefix}/etc/KogniMirrorICL/k2d.xml \ -cc1 ${prefix}/etc/KogniMirrorICL/k1c.xml -cc2 ${prefix}/etc/KogniMirrorICL/k2c.xml \ -id1 kinect2d 0 -id2 kinectd 0 \ -ic1 kinect2c 0 -ic2 sm dcam \ -c ${prefix}/etc/KogniMirrorICL/config.xml \ -o sm mirror -mr 720x1280 -scolor -rr Wichtig hierbei ist, dass ``-ic2`` auf das :term:`shared memory`-Segment der DC-Camera zeigt. Das zweite Programm ``mirror-2d`` benötigt als Argumente eine Bildquelle (``-ic``), eine Auflösung (``-resolution``) und den Pfad zu den Konfigurationsdateien (``-cp``):: $ {prefix}/bin/KogniMirrorICL/mirror-2d -ic sm mirror -resolution 720x1280 -cp ${prefix}/etc/KogniMirrorICL RSB-Schnittstellen ------------------ .. rsbpubsub:: IN /io/display/mirror/model/correctionEnabled bool An/Aus Kontrastverstärkung .. rsbpubsub:: IN /io/display/mirror/model/zoomEnabled bool An/Aus Gesichtszoom .. rsbpubsub:: IN /io/display/mirror/model/shiftEnabled string An/Aus Farbrotation .. rsbpubsub:: IN /io/display/mirror/model/recordingEnabled bool An/Aus Videoaufzeichnung .. rsbpubsub:: IN /io/display/mirror/model/icl/mode string Modus der ICL-Komponenten .. rsbpubsub:: IN /service/pointing/updaterate int maximaler Intervall von Zeigegesten in ms .. rsbpubsub:: IN /io/display/mirror/model/recordingEnabled bool aktiviert Videoaufzeichnung .. rsbpubsublist:: :type: IN .. rsbpubsub:: OUT-Intern /io/display/mirror/model/icl/heartrate int Puls der erkannten Person .. rsbpubsub:: OUT-Intern /io/display/mirror/model/video string URL zu einer Videodatei auf dem Server .. rsbpubsub:: OUT-Intern /io/display/mirror/pointing rst.math.Vec2DFloat Punkt zur Gesteninteraktion .. rsbpubsub:: OUT-Intern /io/display/mirror/model/correctionEnabled bool An/Aus Kontrastverstärkung .. rsbpubsub:: OUT-Intern /io/display/mirror/model/zoomEnabled bool An/Aus Gesichtszoom .. rsbpubsub:: OUT-Intern /io/display/mirror/model/shiftEnabled string An/Aus Farbrotation .. rsbpubsub:: OUT-Intern /io/display/mirror/model/recordingEnabled bool signalisiert Status der Videoaufzeichnung .. rsbpubsub:: OUT-Intern /io/display/mirror/model/icl/mode string Modus der ICL-Komponenten .. rsbpubsublist:: :type: OUT