- 12V Akku mit 280 Ah bauen         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 27

Thema: Bilderkennung-Programm

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    05.09.2006
    Beiträge
    644
    Anzeige

    E-Bike
    Hi,

    und was für ein Programm/software hast du ?
    mfg Jonas

  2. #12
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo minium,

    die Software habe ich komplett selbst geschrieben. Um eine Figur zu finden, wird das aufgenommene Bild erstmal in ein binäres umgewandelt, alle Pixel, die unter einem Schwellwert liegen werden schwarz, die restlichen weiss. Dann wird nach einem schwarzen Pixel gesucht und ein Fenster um ihn so gebildet, dass dessen Rahmen kein einziges schwarzes Pixel berührt. Danach wird das Bild im Fenster zu einer 16*16-Matrix komprimiert und mit einem Bild der zu erkennenden Figur verglichen. Sollten mehr als 200 Pixel miteinander übereinstimmen, gilt die Figur als erkannt und wird in eine Liste eigetragen. Dann wird die Figur im Fenster mit weiss ausgefüllt und wieder nach einem schwarzen Punkt gesucht, Fenster gebildet, verglichen usw..., solange bis im Bild kein einziges schwarzes Pixel mehr ist. Dann wird die "größte" erkannte Figur in der Liste ermittelt und ja nach ihrer Position dreht sich der Roboter nach links oder nach rechts oder fährt von oder zu ihr. Sollte die Liste leer sein, stoppt der Bot.

    Leider kann ich euch kein Video davon zeigen, da das Subsystem und die Harware des Roboters wegen grober Fehler bei der Planung im Moment komplett umdesignt wird. Ist aber in ca 2 Wochen fertig.

    MfG Mark

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    59
    Beiträge
    1.080
    Interessanter Algo. Auf nem Atmega kommen wir da wohl locker auch auf 2-3 Frames pro Minute

    Was mich interessieren würde, ist deine Entwicklungsumgebung, die Eingesetzte Hard- und Software dafür.

    MfG MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo MeckPommER,

    als Entwicklungsumgebung benutzte ich WinARM mit dem arm-elf-gcc/g++.

    Die Hardware besteht aus dem LPC2138-Modul http://cgi.ebay.de/ARM7-Philips-LPC2...QQcmdZViewItem,
    einem Subsystem aus einem AtMega32 für die Motorsteuerung(L298 und RB35-Motoren) und Servos und einem zweiten Mega32 für eine kleine Tastatur und für die Überwachung von Strom und Spannung.

    Die Kamera wird direkt an den LPC2138 angeschlossen. Bei jedem HSync wird ein IRQ ausgelöst, in der ISR werden dann die Pixel eingelesen und gespeichert. Sobald ein Frame komplett übertragen wurde, wird der Frame-Zeiger verändert, sodass das Frame bearbeitet werden kann, wärend ein das nächste parallel dazu eingelesen wird.

    Gerade das war eines der grösten Fehler bei der Planung. Der Controller verbrauchte einfach zu viel Zeit, um ein Frame zu empfangen, weil er ja während der ganzen HSync beschäftigt war. Irgendwann kam mir die Idee, zwei externe RAMs zu benutzen. Ein Frame wird in das eine RAM eingelesen, der µC verarbeitet inzwischen den Inhalt des zweiten. Dann werden die Daten- und Adreassbusse der beiden RAMs getauscht. Da ich dann aber über 20 Logig-ICs brauchen würde, hab ich mir überlegt, ein enzelnes externes RAM zu benutzen. Ein Frame wird von der Cam reingeschrieben und in der inaktiven Zeit(VSync) wird es vom LPC2138 in sein internes RAM übertragen. So könnte man die mögliche Zeit für die Verarbeitung eines Frames bis zu 10 mal erhöhen.

    ...die Eingesetzte ... Software dafür.
    Was meinst Du mit Software? Für die Entwicklung benutze ich nur den Compiler, weitere Tools habe ich nicht.

    MfG Mark

  5. #15
    Erfahrener Benutzer Roboter Genie Avatar von oratus sum
    Registriert seit
    25.12.2006
    Ort
    Wien
    Alter
    33
    Beiträge
    1.080
    Blog-Einträge
    1
    Das ich daran nicht gedacht habe... die Bilder Binär umzuwandeln!

    Wie sieht bei dir der Schwellwert aus? Bzw könntest du das genauer erklären?

  6. #16
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    man kann z.B. alle Grauwerte des Bildes addieren und durch 2 Teilen
    aber das braucht halt lange. Ich hab bei einem Projekt einfach
    die 2 Bilddiagonalen genommen und da die Grauwerte addiert, das ergebnis durch 2 dividiert. man kann auch gewichten, also beispielsweise nur den zentralen Bildbereich mitteln und daraus nen Schwellenwert errechnen oder oder oder
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #17
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Ich hab einen festen Schwellwert von 40, den ich experimentell ermittelt habe. Damit gab es bei fast jeden Lichtverhältnissen keine Probleme.

    MfG Mark

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.12.2006
    Beiträge
    210
    Häufig arbeitet man bei der Bilderkennung ja mit Neuronalen Netzen, evtl. findest Du noch ein paar Ideen, wenn Du dich damit mal beschäftigst.

  9. #19
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo Herkulase,

    das habe ich auch vor, aber erst wenn ich das Board mit dem AP7000 besitze. Das Problem bei KNNs+Bilderkennung ist, dass man für die sehr vielen Gewichte extrem viel Speicher benötigt, den der LPC2138 nicht hat.

    MfG Mark

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    11.12.2006
    Beiträge
    210
    Das hängt aber v.A. von der Architektur des Netzes ab! SOMs z.B. benötigen EIngabemuster (in Pixeln) x Ausgabemuster Gewichte, also im bereich von einigen 100 bis 1000. Natürlich reicht das nicht für eine komplexe optische Steuerung, aber um eine Linie abzufahren sollte das doch schon reichen.
    Wieviel Speicher hat denn der AP7000? Hab es auf die SChnelle nicht rausgefunden.

    Gruß

    Gerald

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress