- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 37

Thema: Bilderkennung via Kamera

  1. #21
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Die Gameboy-Cam ist eigentlich ein Super-Einstieg. Hier im Forum gibt es einen langen Thread dazu.

    Die Kann im Übrigen auch schon selbst die Kanten detektieren. Dadurch wird im Controller wieder Rechenleistung frei.

  2. #22
    Benutzer Stammmitglied
    Registriert seit
    16.12.2005
    Ort
    Oberschwaben
    Beiträge
    84
    Du solltest Dir erstmal klar werden, welche Auflösung Du brauchst und welche Framerate. Daraus kannst Du dann abschätzen, wieviel Rechenleistung Du brauchst. Ich könnte mir durchaus vorstellen, dass da ein AVR ausreicht, andererseits gibts ARM7-Boards mit 64KB RAM (sowas wie auf dem POB-Eye) für etwa 70 Euro.

    Vitis schreibt, bei den AVRs gibts das Problem mit der Datenerfassung, aber da hätte ich eher die Adressierung extern gemacht und so unabhängig vom AVR ins RAM geschrieben.

  3. #23
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Zitat Zitat von ogni42
    Die Gameboy-Cam ist [...] kann im Übrigen auch schon selbst die Kanten detektieren. Dadurch wird im Controller wieder Rechenleistung frei.
    Jein. Der Kantenerkennungs-Algorithmus der GB-Cam liefert leider keine absolut scharfen Kanten, d.h. ein reines schwarz-weiss Bild, sondern verstärkt lediglich. Es muss also nach wie vor eine Entscheidung durchgeführt werden, um die Farbtiefe auf 1 Bit zu bringen. Und zudem hat der Controller während dem Auslesen genügend Zeit, eine Kantenerkennung durchzuführen, da man immer wieder auf den A/D-Wandler warten muss.

    Zitat Zitat von Markus4004
    Du solltest Dir erstmal klar werden, welche Auflösung Du brauchst und welche Framerate. Daraus kannst Du dann abschätzen, wieviel Rechenleistung Du brauchst. Ich könnte mir durchaus vorstellen, dass da ein AVR ausreicht, andererseits gibts ARM7-Boards mit 64KB RAM (sowas wie auf dem POB-Eye) für etwa 70 Euro.
    Mit einem AVR kommt man auf jeden Fall schnell ans Limit, sowohl vom Speicher als auch von der Rechenleistung her. Nur schon, um das Bild mit 8 Bit Farbtiefe zu speichern (128 * 128 * 1 Byte = 16 KByte), braucht man ein externes RAM. Selbst ein 1 Bit Bild (128 * 128 * 1 Bit = 2 KByte) füllt das interne RAM randvoll. Wenn dann jedes Pixel einzeln, wahlfrei und oft x-fach aus dem externen RAM geholt werden muss, dann frisst das enorm Zeit.

    Die Rechenleistung des AVR setzt natürlich relativ enge Grenzen. Echtzeit-Bearbeitung z.B. für einen halbwegs schnellen Roboter, kann man mehr oder weniger vergessen. Bei einem 128 * 128 Bild dauert die Verarbeitung des Bildes bei einem 16 MHz Quarz pro Befehl, den man durchschnittlich auf ein Pixel anwendet, 1 ms. Und es dürfte klar sein, dass sich schnell hunderte bis tausende Befehle pro Pixel ansammeln. (z.B: http://de.wikipedia.org/wiki/Hough-Transformation)

    Für einfache, nicht zeitkritische Anwendungen sollte ein AVR fürs erste reichen. Für alles andere ist er meiner Meinung nach überfordert. Die GB-Cam sollte für erste Versuche aber gut ausreichen, es bräuchte wohl schon einen mächtigen Controller, der die Bilder der GB-Cam voll ausreizen kann. Wobei die GB-Cam an Beleuchtung, Grösse und Entfernung der Objekte doch gewisse Ansprüche stellt...

  4. #24
    Benutzer Stammmitglied
    Registriert seit
    16.12.2005
    Ort
    Oberschwaben
    Beiträge
    84
    Zitat Zitat von mirage
    Mit einem AVR kommt man auf jeden Fall schnell ans Limit, sowohl vom Speicher als auch von der Rechenleistung her. Nur schon, um das Bild mit 8 Bit Farbtiefe zu speichern (128 * 128 * 1 Byte = 16 KByte), braucht man ein externes RAM. Selbst ein 1 Bit Bild (128 * 128 * 1 Bit = 2 KByte) füllt das interne RAM randvoll. Wenn dann jedes Pixel einzeln, wahlfrei und oft x-fach aus dem externen RAM geholt werden muss, dann frisst das enorm Zeit.
    Es gibt auch AVRs mit 8KB internem RAM. Aber das meinte ich nicht, ich bin eigentlich schon von externem RAM ausgegegangen.

    Worum es mir ging:
    Wie groß die Auflösung sein sollte hängt davon ab, wie weit er sehen will und wie groß das kleinste erkennbare Objekt sein soll. Da kann es durchaus sein, dass ihm 80x60 Pixel reichen. Und 80x60 Pixel sind weniger als ein drittel von 128x128.

    Die Rechenleistung des AVR setzt natürlich relativ enge Grenzen. Echtzeit-Bearbeitung z.B. für einen halbwegs schnellen Roboter, kann man mehr oder weniger vergessen. Bei einem 128 * 128 Bild dauert die Verarbeitung des Bildes bei einem 16 MHz Quarz pro Befehl, den man durchschnittlich auf ein Pixel anwendet, 1 ms. Und es dürfte klar sein, dass sich schnell hunderte bis tausende Befehle pro Pixel ansammeln. (z.B: http://de.wikipedia.org/wiki/Hough-Transformation)
    Ich bin jetzt davon ausgegangen, dass er für den Anfang farbige Klötzchen erkennen will oder sowas in der Art. Und dafür sollte ein AVR schon reichen.

    Markus

  5. #25
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Zitat Zitat von Markus4004
    Worum es mir ging:
    Wie groß die Auflösung sein sollte hängt davon ab, wie weit er sehen will und wie groß das kleinste erkennbare Objekt sein soll. Da kann es durchaus sein, dass ihm 80x60 Pixel reichen. Und 80x60 Pixel sind weniger als ein drittel von 128x128.
    Und da gibt es in der Tat wieder unterschiede in _Grössenordnungen_. Einen Ball zu erkennen, der unmittelbar vor der Kamera liegt zu erkennen, oder aber einen Ball irgendwo im Zimmer zu finden - zwischen diesen Aufgaben liegen Welten an die Anforderungen der Kamera. Die benötigte Auflösung dürfte etwa mit dem Quadrat der Entfernung steigen...

    Zitat Zitat von Markus4004
    Ich bin jetzt davon ausgegangen, dass er für den Anfang farbige Klötzchen erkennen will oder sowas in der Art. Und dafür sollte ein AVR schon reichen.
    Markus
    Wobei er dann irgendwelche Farbseh-Möglichkeiten braucht. Im einfachsten Fall einfach einen Farbfilter vor die Kamera. Farbkameras werden dann aber schnell teurer und vorallem aufwändiger zum auslesen - da ist die Gameboy-Cam halt schon optimal. Für 10 EUR gekauft, Schaltung mit 1 uC, 2 Logik-ICs, 1 SRAM, AVR mit 11 MHz niemals an der Grenze.

  6. #26
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Die GBCam hat mehrere Kantenerkennungsmodi (s. Datenblatt, Edge-Extraction und Edge-Enhancement). Letzterer verstärkt die Kanten, ersterer liefert ein Binärbild.

    Auf den ADWandler muss man nur dann warten, wenn man nicht genügend Speicher hat, sprich: nur auf dem aktuellen Bild arbeiten kann. Ansonsten lässt sich das per ISR erledigen und parallel dazu auf einem anderen Puffer arbeiten.

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.03.2004
    Ort
    37287 Wehretal
    Alter
    38
    Beiträge
    169
    Also würdet ihr mir von einem Einstieg über USB-Webcam doch abraten?

    Worum es mir ging:
    Wie groß die Auflösung sein sollte hängt davon ab, wie weit er sehen will und wie groß das kleinste erkennbare Objekt sein soll. Da kann es durchaus sein, dass ihm 80x60 Pixel reichen. Und 80x60 Pixel sind weniger als ein drittel von 128x128.
    Ich sag mal so... es ís doch immer besser mehr daten "zur auswahl" zu haben, oder nicht?

    mit eben einem höher aufgelöstem bild kann ich doch bessere ergebnisse erzielen.(Bitte korrigiert mich, wenn ich falsch liege...)

    und wenn das (zum größten teil) nur einen finanziellen unterschied macht, mit welcher auflösung ich arbeite, dann soll mir das irgendwo egal sein...
    ich mein.. dafür ist das mein hobby.

    mfg jürgen

  8. #28
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Sicher ist das besser. Es kostet nur mehr Speicher und Rechenoperationen. Es kommt eben immer auf das Gesamtsystem an. Es ist nicht nur ein finanzieller Unterschied, da z.B. die ATMega Familie per XMEM Interface nur max 64kByte RAM adressieren kann. Wenn Du Bilder hast, die größer sind, fängst Du dann ganz schän zu tricksen an.

    Wenn Du Dich erst mal nur mit Bildverarbeitung beschäftigen willst - und nicht sofort einen Roboter per BV steuern - bist Du mit einer preiswerten USB Kamera und einem PC besser dran.

  9. #29
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.03.2004
    Ort
    37287 Wehretal
    Alter
    38
    Beiträge
    169
    OK, dann werd ich mir als erstes ne USB-Cam holen. damit werde ich mich erstmal nur mit Bildverarbeitung beschäftigen. wenn ich das dann hinbekommen hab, werd ich mich eben mit ner anderen kamera beschäftigen, die dann auf meinen roboter kommt.

    mfg Jürgen

  10. #30
    Benutzer Stammmitglied
    Registriert seit
    06.11.2005
    Beiträge
    95
    Zitat Zitat von ogni42
    Es kommt eben immer auf das Gesamtsystem an.
    Genau so ist es. Je nachdem was du tun willst und worauf das System schlussendlich laufen soll, wirst du komplett andere Ansätze verfolgen müssen. Teleskop, Brille, Infrarotkamera oder Foto-Apparat, sie alle dienen uns irgendwie zum Sehen - auf ganz unterschiedliche Art und Weise, was sich in völlig unterschiedlicher Technologie ausdrückt.

    Ganz ähnlich ist die Frage, ob du z.B. mit der Kamera...
    ...Echtzeit-Kollisionsabfrage,
    ...Objektsuche in einem Raum,
    ...Unterscheidung von eingesammelten Objekten,
    ...Texterkennung
    etc. realisieren willst. Überlege dir am besten schon am Anfang, was du _ungefähr_ tun willst und dimensioniere deine Experimentierplattform entsprechend.

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress