Archiv der Kategorie: Uncategorized

RAT: Neuer Algorithmus Gesichtserkennung

Da das bisherige Verfahren zum Erkennen von Gesichtern doch etwas fehleranfällig war und zu viel Zeit in Anspruch genommen hat, habe ich mir inzwischen einen komplett anderen Ansatz überlegt. Die neue Methode geht davon aus, dass jeder Mensch individuelle, biometrische Merkmale hat, die es erlauben, eine eindeutige Identifikation vorzunehmen. Um diese Identifikation realisieren zu können, durchlaface-recognition1ufe ich folgende Schritte:

RAT: Neuer Algorithmus Gesichtserkennung weiterlesen

RAT: Gesichtserkennung und Stereoskopie

15_2_4Hier abgebildet der 4 Achsen-Robot-ARm von Sainsmart, den ich inzwischen um eine vierte Achse erweitert habe (siehe Fotos unten), der die „Augen“ meines Versuchsaufbaus trägt. Die Bewegung des Arms ist zurzeit deaktiviert, wird später das Tracken eines Objekts ermöglichen.
Zuletzt hatte ich gezeigt, dass es mit OpenCV relativ simpel ist, eine Gesichtserkennung zu realisieren. Jetzt geht es eine kleinen Schritt weiter. Nun soll die Software erkennen, welche konkrete Person gerade vor der Linse ist. Dazu habe ich einen Algorithmus entworfen, der aus dem aktuellen Frame die relevanten Bildteile herausschneidet, normaliusiert und mit einer Datenbank von bekannten Mustern vergleicht. Logischerweise sollte dieser Abgleich performant sein. Momentan habe ich knapp 800 Thumbnails in der Datenbank, die je Identifizierung einmal komplett durchlaufen werden. Deshalb habe ich die Muster und das Live-Bild auf 100×100 Pixel heruntergerechnet. Der Abgleich selbst läuft zurzeit (auf dem PC) in 0.17 Sekunden durch. Noch akzeptabel! Mal schauen, wie später der Raspberry damit klar kommt. Der Vergleich ist reine Mathematik. Das Ergebnis wird anhand des besten Wertes und eines zu erreichenden Schwellwertes entschieden.

face_thumbsDanach gibt es noch ein Zuverlässigkeits-Gate, dass die Fehlerlesungen nach Möglichkeit herausfiltert und so die Erkennung glättet. Die Treffergenauigkeit lässt noch zu wünschen übrig, wird aber mit der Zahl der divergierenden Musterdateien besser. (siehe Video)
Zusätzlich gibt es einen Reorg-Lauf, der dafür sorgt, dass mathematisch redundante Muster entfernt werden.

Stereoskopie

Mein Versuchsaufbau besitzt 2 parallel angeordnete Kameras. Die Idee dahinter ist, dass die Kameras als zusätzliche Möglichkeit zur Orientierung benutzt werden.
Ein Aspekt dabei ist die Stereoskopie. Vereinfacht: Beide Bilder werden miteinander verglichen, die sich durch die unterschiedlichen Perspektiven ergebenden Unterschiede ergeben eine so genannte Depthmask, letztlich ein Bild, dass etwas darüber aussagt, wie weit ein Gegenstand entfernt ist. In diesem Beispiel bedeutet das, je heller eine Fläche, umso näher ist sie an den Kameras.

IMG_0856
4 Axis Arm mit installierten Stereo-Kameras
IMG_0854
Die zusätzliche 5. Achse zum Neigen der Kamera-Ebene

 IMG_0855

Gucken: Ein bisschen Theorie


Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Warning: count(): Parameter must be an array or an object that implements Countable in /homepages/28/d22766828/htdocs/raspiblog/wp-content/plugins/nextgen-gallery/products/photocrati_nextgen/modules/fs/package.module.fs.php on line 258

Nachdem die OpenCV nun funktioniert, gehts es daran, aus den Kamera-Bildern „echte“ Informationen für den RAT zu extrahieren. Das bedeutet in der Praxis, dass das einzelne Bild in Segmente zerlegt werden muss, die für sich dann auswertbar sind. Meine derzeitiger Plan sieht vor, das Bild zunächst in nebeneinander liegende Rechtecke zu zerteilen, die durch bestimmte optische Merkmale voneinander getrennt sind. Zum Beispiel ein Türrahmen oder eine Ecke.

Dazu wird das Originalbild zuerst in ein binäres Grau-Bild umgerechnet. Das spart bei den folgenden Operationen Rechenzeit.

shot1
Der Original-Frame

 

shot2

Anschließend wird das Bild per Schwellwert-Berechnung in ein abstraktes Bild umgewandelt, indem Ränder identifiziert werden.

shot3

Der nächste Schritt ist das Finden von vertikalen Linien. Das alles funktioniert Dank OpenCV übrigens mit einigen wenigen Befehlen. Allerdings musste ich für die richtigen Parameter ein Weile fummeln.
Die gefundenen Linien werden jetzt, zur Anschauung, wieder in das Originalbild projiziert.

Auf dem PC geht das Ganze sogar in Echtzeit. Bleibt zu hoffen, dass der Raspberry genügend Rechenleistung hat, um diese Operationen wenigstens mit, sagen wir mal 1 Frame pro Sekunde auszuführen.

shot5

 

 

Gucken, Fortsetzung

Es ist definitiv ein Meilenstein in der Geschichte dieses Projekts: Mein kleiner blinkender Freund (der RAT) hat Augen bekommen und beginnt, seine Umwelt wahrzunehmen. Die Analogie zu einem Säugling, der fröhlich vor sich hin sabbernd, zunächst nur ganz verschwommen die Konturen von Mutti oder Pappi wahrnimmt und darauf mit einem Lächeln reagiert, ist durchaus nahe liegend. Aber lassen wir die Kirche im Dorf. Es bleibt eine Maschine, da kann ich noch so herzliche Vatergefühle entwickeln.

opencv_logoDas OpenCV Framework ist mir eine große Hilfe. Im Netz wimmelt es von Anleitungen und Beispielen mehr oder weniger guter Qualität. In Erwartung dessen, was OpenCV zu leisten in der Lage ist, bin ich schon ganz aufgeregt. Aber – gut Ding will Weile haben.

Meine Hoffnungen konzentrieren sich darauf, dem RAT beizubringen, sich mittels vorhandener (gespeicherter) und abstrahierter Bilder bzw. Muster zu orientieren. Zudem sollen einfache Objekte erkannt werden und daraus ggf. Aktionen abgeleitet werden. Die ersten Versuche geben Mut zu mehr.

Der hohe global Handel

Der globale Handel machts möglich. Elektronik-Teile aus Honkong sind binnen weniger Tage zum Schnäppchenpreis, versandkostenfrei in alle Welt verschickt. Man kann in der e-Bucht in aller Ruhe stöbern, Preise vergleichen und sich die Bewertungen der anderen Kunden zu Gemüte führen. Einmal mehr werde ich Zeuge und Mittäter einer geschichtlichen Umwälzung, die den endgültigen Niedergang des alten Europa zur Folge haben wird.

Die Begleittexte sind allerdings etwas für  Feinschmecker:

Das US-100 Ultraschall-Modul realisieren können 2 ~ 450cm von berührungslosen reicht Funktion hat 2,4 ~ 5,5 V Weitbereichsspannungseingang ist statische Leistungsaufnahme weniger als 2 mA. Ihre eigenen Temperatursensor revidiert den gefächert und hat viele Kommunikations-Modi wie GPIO, serielle Ports usw., wie Watchdog-innen, sehr stabil und zuverlässig.

…oder auch: Der hohe global Handel weiterlesen