PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Positionserkennung mit neuronalen Netzen



ntmtk
06.06.2006, 17:26
Hallo !

Im Rahmen eines Studienprojektes soll die Position eines Roboters auf einem weißen Tisch erkannt werden. Der Roboter besitzt die Form eines Rechtecks und vorne und hinten farbige Markierungen(z.B. vorne mitte grünes Quadrat , hinten mitte rotes Quadrat). Der Tisch wird von einer USB-Kamera aufgenommen(Auflösung 640x480, Bild leicht verrauscht) und das Bild an einen PC übermittelt.
Zur Bilderkennung sollen aber nicht die klassischen Verfahren eingesetzt werden, sondern ein Modell vergleichbar zum dem des menschlichen Gehirns entwickelt werden. Dort werden z.B. verschieden gerasterte Versionen des Originalbildes zur Positionsbestimmung eingesetzt bzw. vom Gehirn verarbeitet(bei der ersten Version könnte z.B. ein Pixel des gespeicherten Bildes 4 Pixeln des Originalbildes entsprechen. Bei der zweiten Version z.B. 8 Pixel etc.).
Meine Idee ist nun die verschiedenen Verarbeitungseinheiten durch neuronale Netze nachzubilden, wobei die Eingabe die entsprechend aufbereiteten Versionen des Originalbildes und die Ausgabe eine Zahl ist, welche ein Pixel eindeutig identifiziert z.B. 0-307199. Allerdings weiß ich nicht, welche NN-Architektur dafür geeignet ist und ob die Geschwindigkeit heutiger Rechner bei der Bildgröße überhaupt dafür ausreicht(Netz sollte in max. 24h trainierbar sein) Wäre dankbar für Links oder Kommentare zu diesem Thema.

Grüße
Stefan

06.06.2006, 18:21
Hallo,
ich habe nur einen Kommentar für dich.
Um solch ein System mit den heutigen Rechenleistungen arbeiten zu lassen, müsstest du die Bilder klassisch sehr weit aufbereiten.
Sodas du dann am Ende kein Neuronales Netz mehr für die Positionsbestimmung benötigen wirst.
Mit einem PC wohl nicht ohne weiteres zu schaffen.

Viel Glück!

Hast Du schon nach Software für NN recherchiert oder weist Du schon was du nehmen wirst?

Friggle
06.06.2006, 21:00
Hallo ntmtk,

unter
www.membrain-nn.de
stelle ich kostenlos seit einiger Zeit einen neuronale Netze Editor und Simulator zur Verfügung. Auf der Seite gibt es auch einen "Treiber" herunterzuladen, der zyklisch eine Bild-Datei (jpeg oder bmp) einliest, das Bild in schwarz/weiß konvertiert und auf eine Eingangsneuronen-Matrix einstellbarer Größe abbildet.
MemBrain kann sich über TCP/IP mit dem "Treiber" verbinden und diese Neuronen "importieren", so daß das Bild in MemBrain als Eingangsmuster vorliegt und man ein beliebiges Neuronales Netz damit bauen kann. Man kann auch Muster aufzeichnen, diese im Offline-Modus bewerten und Trainieren und dann auch wieder Online gehen, um die Reaktion des Netzes auf neue (Live-) Bild-Daten von Kamera zu prüfen.

Bei entsprecher Menge von repräsentativen Beispielmustern und nicht zu hoher Auflösung kannst Du ein Netz wahrscheinlich ganz brauchbar auf das grobe Erkennen der Position des Roboters trainieren. Auf's Pixel genau wirst Du es aber niemals schaffen. Wahrscheinlich ist eher eine Bereichsangabe machbar, so nach dem Motto: Der Roboter wird in einem bestimmten Bereich des Kamerabildes vermutet, wobei idealerweise jeder Bereich durch ein eigenes Ausgabeneuron repräsentiert wird.

Wenn Du es ausprobierst, dann fang mit niedriger Auflösung an, da die Anzahl der Pixel natürlich quadratisch mit der Auflösung steigt und damit schnell viel mehr Rechenzeit und Speicher benötigt wird!

Grüße und viel Erfolg!
Friggle

ogni42
06.06.2006, 21:07
Schau mal hier:

http://www.techinfo.rwth-aachen.de/Forschung/VIR/Axon/axonsys.html

Bei Fragen kannst Du mir PM schicken.