- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Web-Cam für Bilderkennung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.09.2004
    Beiträge
    13

    Web-Cam für Bilderkennung

    Anzeige

    Praxistest und DIY Projekte
    Hi!

    Ich habe vor mich in nächster Zeit an die Bilderkennung heranzuwagen und habe jetzt folgende Probleme:

    Es geht um eine Kamera auf einen Roboter der die Daten mittels eines embedded PC auswerten und zur Steuerung verwenden soll. Es ist noch so gut wie gar nichts vorhanden, also bin ich noch für alles offen.

    Am einfachsten wär es natürlich eine Web-Cam zu kaufen. Jetzt hab ich mir mal eine ganz billige organisiert um zu testen wie das so funktioniert. Allerdings bin ich auf mehrere Probleme gestoßen zu denen ich Tips brauchen könnte.

    1) Der Roboter sollte schon etwas schneller (~10km/h) fahren und die Kamera verwischt das Bild schon bei der leichtesten Bewegung ziemlich stark. Des weiteren hat die Kamera eine sehr verzögerte Bildverarbeitung.

    2) Ich hab die Daten mittels eines eigenen DirecShow-Filters ausgelesen und festgestellt das, dieser Vorgang auf meinem Notebook (P4 3GHz) doch schon relativ viel Rechenleistung (40-50%) in Anspruch nimmt. Hängt das von der Kamera und dem Treiber ab oder ist das immer so?

    Gibt es Kameras die diese Probleme besser in den Griff bekommen?
    Sowas steht ja leider nicht auf der Packung, also hat vielleicht jemand schon Erfahrung damit?

    Dank im Voraus

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    Das ist der Haken bei Bildverarbeitung, die riesige Menge an Daten.
    Nimm doch einfach nur mal VGA-Auflösung, also 640 x 480 Pixel mit 16 Bit Farbe, da haste schonmal pro Bild 614 KB unkomprimierte Daten, die da rein laufen müssen. bei 12MBit/sekunde haste 1,5 MByte je Sekunde ohne so Kleinigkeiten wie Steuersignale an Nutzdaten für USB2, USB1 ist da nochmal deutlich langsamer. Aber gesetzt den Fall Du übertragst nur die Bilddaten sind das dann nur 2,x Frames pro Sekunde die über die Leitung drüber gehen und dann sind sie noch nicht verarbeitet, sprich skaliert für Dein Anzeigefenster etc. Klar wird Deine Kamera mehr als 2 Frames schaffen, weil meist mit JPG-Komprimierung gearbeitet wird, die je nach Qualität das Bild auf 10% der ursprünglichen Größe schrumpfen kann, aber im Rechner müssen die Bilder für die Verarbeitung dann doch dekomprimiert werden. Beispielsweise ne Kantenerkennung läuft eben pixelweise ab und dabrauchts dann halt für Dekompression die Rechenpower dann dafür.

    Die Bildschärfe ist halt auch von der Güte des Sensors abhängig und gute kosten halt auch n bissl mehr tendenziell.
    Beschleunigen kannst Du die Geschichte am Einfachsten indem Du die Ansprüche herunter setzt, sprich niedrigere Auflösung und evtl. Graustufen. Dann schrumpft die Datenmenge sichtbar zusammen.

    Eine andere Geschichte währe halt einen anderen Verarbeitungsweg zu wählen. Ich meine damit die Kameradaten eben kameranah zu verarbeiten. Eine C3088 schaufelt ihre Grafikdaten 16 Bit parallel raus (mit irgendwas um die 14-15MHz das ergibt dann 30 MB/sek oder 240 MBit/sek). Die könntest Du z.B. per FPGA oder ARM Prozessor in n RAM schaufeln und dort vorverarbeiten. Die bearbeiteten Daten könntest Du dann schon fertig an den Computer schicken, beispielsweise per USB.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.12.2005
    Ort
    Oberschwaben
    Beiträge
    84
    Wie hell war es den bei der Aufnahme? Nimm doch mal eine Digicam, und schaue, was die für Belichtungszeiten vorschlägt. Gegen die Unschärfe helfen kürzere Belichtungszeiten, kann man die bei Deiner Webcam auch manuell einstellen? Dann wird das Bild natürlich dunkler/verrauschter, aber vielleicht ist das Ergebnis ja noch akzeptabel.

    Beruflich verwende ich Firewire-Kameras (allerdings nicht zur Bildverarbeitung) und da braucht das reine Darstellen des Bildes nicht so viel Rechenleistung. Das Bild ist dabei unkomprimiert, muss also nicht am PC noch dekodiert werden.

    @Vitis:
    Ich glaube nicht, dass die typischen ARM7 mit 60MHz oder ARM9 mit 200MHz einen Pentium4 mit 3GHz nennenswert entlasten können. Entweder FPGA oder DSP, wobei letzterer wohl einfacher zu programmieren ist.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Vitis,

    mit den eigenen Augen sehen und erkennen ist so selbstverständlich einfach, dass Anfänger nicht verstehen können, warum es so schwierig sein soll, denselben Vorgang in Technik umzusetzen. - Liefert die Kamera C3088, die Du erwähnst, die Daten schon in digitalisierter Form oder auch nur als CCIR-Signal? Ich Suche nach einem erschwinglichen Bildaufnehmer, der die Daten (S/W reicht aus) als ein Byte pro Bildpunkt liefert. Kennst Du einen?

    mare_crisium

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.09.2004
    Beiträge
    13
    @ Vitis
    USB 2.0 hat im High Speed Modus ein Übertragungsrate von bis zu 480 MBit/s, also 60 MByte/s obwohl das kaum ein Host-Chip vollständig unterstützt.
    @ Markus4004
    Das mit der Belichtungszeit klingt nach einem guten Ansatz, ich werde das mal ausprobieren. Man könnte die Szene vielleicht mit Infrarot ausleuchten um bessere Ergebnisse zu erzielen.
    @ All
    Hat vielleicht jemand einen konkreten Vorschlag für eine Kamera, die auch bei Bewegung scharfe Bilder liefert. An das Bild setze ich sonst keine großen Ansprüche (min. 640 x 480 und in Farbe (24 Bit RGB)).
    Gut wäre es ja wenn man alles im Detail einstellen könnte, also unkomprimiertes Bild mit beliebig wenig Bildern pro Sekunde und eventuell auch schwarz-weiß, und das alles schon in der Hardware, sonst bringt es ja nichts. Ich glaub aber so was gibt es einfach nicht.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    @mare_crisium:
    die 3088 liefert die Daten sowohl analog als auch digital
    in verschiedenen Formaten.
    Die gibts beispielsweise dort:
    http://www.roboter-teile.de/Shop/the...eid=2&source=1
    nicht billig, aber ganz gut das Teil.

    Wenns nicht ganz so schnell sein soll und auch beispielsweise mit nem AVR verwerkelt werden soll dann geht die C-325 oder halt diverse andere Kameras wie Gameboycam ... da gabs hier im Forum schon diverse Threads darüber.

    @NoReAction:
    Asche aufs Haupt, hab mich vertan mit der Übertragungsrate.
    Was Du da bräuchtest währ ne High Speed Kamera, die halt deutlich mehr
    als 24 bzw. 30 Frames die Sekunde macht. Habe damit aber bislang nicht gearbeitet weil noch kein Bedarf, aber ich vermute da wirds dann schon teuer.
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    Vitis,

    danke für den Tip!

    mare_crisium

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.12.2005
    Beiträge
    535
    NoReAction,

    die Bewegungsunschärfe Deiner Bilder ist eine Folge von langer Belichtungszeit. Deine Kamera stellt sie offenbar automatisch ein. Du kannst sie entweder durch stärkeres Ausleuchten verkürzen oder durch eine Optik mit grösserem Linsendurchmesser.

    Das mit der Optik kannst Du ausprobieren, indem Du die vorhandene Linse abmontierst und stattdessen z.B. das Wechselobjektiv einer Spiegelreflex-Kamera davorhältst. Wenn das funktioniert, dann könntest Du erstmal mit Deiner jetzigen Kamera weitermachen.

    mare_crisium

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    16.09.2004
    Beiträge
    13
    Ich hab das mit dem Objektiv ausprobiert aber kein Bild mehr bekommen. Könnte an dem Licht liegen, das von der Seite auf den Sensor fällt.
    Ich hab aber sowieso vor eine bessere Kamera zu kaufen, da meine auch sehr stark rauscht wenn das Licht nicht optimal ist. Ich hab bei Philips die SPC1300NC mit 90 fps gefunden. Was haltet ihr von der?

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    16.12.2005
    Ort
    Oberschwaben
    Beiträge
    84
    Du willst also eine Farbkamera, überlegst Dir aber, die Szene Infrarot auszuleuchten? Wäre es da nicht sinnvoller, einfach einen ganz normalen Scheinwerfer zu verwenden?

    Die üblichen Farbkameras benutzen ein Bayer-Pattern, was dazu führt, dass sie im Vergleich zu ähnlichen s/w-Kameras deutlich weniger lichtempfindlich sind und das Bild auch nicht so scharf ist.

    Wir benutzen als Firewirecam eine s/w-Kamera von the TheImagingSource.com . Die gibts auch in Farbe, heißt dann DFK 21AF04 und kostet um die 300€, allerdings wohl ohne Objektiv. Bei diesen Kameras kann man alles wichtige einstellen und sie sind halbwegs lichtempfindlich (angegeben ist sie mit 0,5lux bei 1/30s Belichtungszeit).

    Die SPC1300NC wird mit 5lux angegeben. Die Kamera hat 1,3MP (was willst Du mit soviel?) und macht 90fps (aber sicher nicht mit voller Auflösung). Ob die Bilder schon komprimiert sind steht nicht dran.

    Bei den Hobbyastronomen ist das Vorgängermodell (SPC900NC/00) recht beliebt, die hat einen CCD-Sensor und eine Empfindlichkeit von 1lux. Allerdings hat sie nur USB1.1, so tolle Frameraten bekommt man damit also nicht.

    Prinzipiell solltest Du aber mal überlegen, welche Datenmenge Du überhaupt verarbeiten kannst. Bei 640x480/24Bit hat ein Bild 900KB. Bei 30fps sind das dann 27MB/s, d.h. Deine 3GHz-CPU hat etwa 100 Takte Zeit, um ein Pixel zu verarbeiten. Das ist nicht so sonderlich viel.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests