.. _`kognihome/kitchen/objectdetection`: KogniChef-Objektdetektion ========================= .. |KogniChef| replace:: :ref:`tp1/chef` .. toctree:: :maxdepth: 1 :hidden: Zusammenfassung --------------- Objekterkennungskomponente des |KogniChef|. :Kontakt: Christof Elbrechter :CITK: `kognichef-object-detection `_ :Vorbedingung: * ICL Bibliothek ist installiert * Notwendige Kamera backends wurden Installiert (libdc für firewire-Kamera, libirimager für Optris-Wärmebild-Kamera und libfreenect für Kinect 360) * Die Komponente ist so konfiguriert, dass die Kinect-Bilder und das IR-bild aus speziellen shared-memory Segmenten geladern werden. Dafür ist es notwendig, dass die entsprechenden Server-Komponenten, welche die jeweiligen Bilder aus den Kameras lesen und diese via shared-memory versenden zuvor gestartet werden (kinect-server, ir-cam-server). :Quickstart: TODO Diese Hauptaufgabe dieser Komponente ist ein Tiefenbild-basierter Objekterkenner. Dieser vewendet eine Modelfreie Segmentierung als Vorverarbeitung und einen einfachen NN-Klassifikator mit Bag-of-Features Modell für die Klassifikation. Der Objekterkenner kann zu Laufzeit nachtrainiert werden. Durch Speichern der Objektklassifikationsdatenbank können nachtrainierte Objekte persistent gemacht werden. I.d.R. werden meherere Prototypen für jedes Objekt (O(5-20)) benötigt um eine lageinvariante Klassifikationsleistung zu erziehlen. Erkannte Objekte werden nicht nur mit einem Label versehen, sondern es werden auch Meta-Informationen (z.B. Klassifikationswahrscheinlichkeit, Bounding-box, und Temperatur), die mit den Objekten assoziiert wurden, angehängt. Ein weiteres Feature, welches aus Effizienzgründen direkt in der Objekterkennungskomponente integriert wurde ist Hob-Control. Dieses Modul empfängt Hob-Controll Nachrichten der Form "Erhitze Objekt 'Stieltopf' auf 70 Grad Celsius" und erstellt daraus eine Liste aus aktuellen Control-Tragets. Diese Targets werden Nebenläufig überwacht und durch Kommunikation mit :ref:`tp1/appliances` realisiert. Darüberhinaus ist die "Grasp-Detection" in diese Komponente integriert, welche erkennt, welches Objekt gegriffen wird und (falls eines gegriffen wird) dessen ObjektID versendet. RSB-Schnittstellen ------------------ .. rsbpubsub:: IN /kognichef/service/miele/hobcontrol/control rst.kitchen.hob.control.Task Spezielles Kommandos, wie Stop oder Stop-All .. rsbpubsub:: IN /kognichef/service/miele/hobcontrol/control rst.kitchen.hob.control.Target Control-Target .. rsbpubsub:: IN /kognichef/service/miele/hob/status rst.kitchen.hob.control.Status aktueller Status des Kochfeldes .. rsbpubsub:: OUT-Intern /kognichef/service/miele/hob/control rst.kitchen.hob.control.Status Ziel Status des Kochfeldes (zur Kontrolle) .. rsbpubsub:: OUT-Intern /kognihome/service/objectdetection rst.vision.TrackedLabeledObjects Liste der Gefundenen Objekte .. rsbpubsublist:: :type: IN .. rsbpubsublist:: :type: OUT