Hallöchen,
Also ich habe gerade folgendes Problem. Ich habe aktuell eine Anwendung,
die sich bewegende Objekte bzw. Formen (Rechtecke, Kreise usw.) mit
einer Kamera vermisst. Dabei kann ich die Objekte mit einer Genauigkeit
von 0,3 mm berechnen.
Zur Lösung habe momentan eine Glasplatte. Auf dieser Glasplatte befinden
sich meine Kreise und Rechtecke. Unter dieser Glasplatte befindet sich
meiner Rechner mit einer Kamera. Ich kann also von unten wunderbar die
Formen meiner Objekte erkennen.
Die Hauptprobleme:
- Die Anordnung ist zu hoch (50 cm), denn ich muss einen Bereich ca. 1
m² erfassen.
- Zur Auswertung des Kamerabildes brauche ich aktuell nen Arm9 mit nem
fetten DSP und ner anspruchsvollen Software :)
Hauptziel:
- Es soll so flach wie möglich werden (wenige cm)
- Kamera muss weg
Gleich vorweg: Ein Flachbettscanner ist zu langsam. (15 Frames/Samles
pro Secunde ist Minimum)
Ich habe mir nun gedacht, ich kann die Anordnung ja suuuper flach
machen, indem ich mir ein Riesenarray von Fotodioden mit kleinen XMegas
zusammenbauen. Klingt erstmal einfach, musste die Idee dann aber ganz
schneller verwerfen als ich ausgerechnet habe, wieviel Fotodioden ich
für 1 m² mit ner Auflösung von 0.3 mm brauche.
Weitere Ideen die ich hatte:
- Ultraschall: zu ungenau
- Laservermessung: viel zu teuer (brauche viele von diesesn Aufbauten)
- Kapazitive Folie: Objekte sind zu leicht um da wirklich was zu messen
Hat jemand ne spontane Iddee, wie ich sowas mit einfachen Mitteln
hinbekomme?
Einfach heißt: z.b. Fotodioden Array mit XMega etc. Hoher Elektronik und
Softwareaufwand wird nicht gescheut :)
Und ich hoffe ich bin halbwegs im richtigen Formum gelandet.
Besten Dank,
Markus
Hallo,
also ich denke, um die Kamera kommst du nicht herum. Das ist ist auch
nur ein Array von Fotodioden, einfach kleiner. Und davor eben eine
Linse, um das Bild zu fokusieren und einen Passenden erfassungswinkel
hinzubekommen.
Das Grössenproblem kannst du lösen, in dem die Glasplatte, die ja auch
im fokus sein muss, einfach weglässt. Kameras alleine sind sehr flach,
siehe Smartfones.
Du musst dann einmal Kalibrieren, um zu wissen wieviele Pixel in wechen
abstand welche Grösse bedeuten. Um den Abstand deines objektes zu
bestimmen, kannst du dann einen Abstandssensor deiner Wahl nehmen, zum
beispiel Laser- oder Ultraschallbasiert. Das ist billig und einfach,
weil der Sensor ja nur den Abstand ermitrteln muss und nicht, wie das
Ding aussieht.
Um einen leistungsfähigen Prozessor kommst du eh auch nicht herum,
ausser du nimmst einen FPGA. Das ist aber sicher nicht einfacher und,
wenn Enztwicklungszeit kostet, auch viel teurer.
Gruss,
Patrick
P.S: Evtl könnte das Microsoft Kinect interessant sein. Das Gerät ist
auf deine Aufghabe ausgelegt und lässt sich auch am PC betreiben. Meines
Wissens nach ist das Teil auch sehr gut dokumentiert.
Hallo Patrick,
erstmal danke für deine Antwort. :)
Der ganze Kram bzgl. Bildverarbeitung/Computer-Vison, Kalibrierung,
Entzerrung, Paralaxe und dergleichen ist mir klar. Gehört zu meinem
täglich Brot. Auch das Kameras klein sind ist klar. Kleine billige
Kameras mit Plastiklinse sind für diese Anwendung aber zu ungebau.
Du schreibst, ich soll die Glasplatte weglassen. Ich glaube das habe ich
noch nicht völlig verstanden. Meine Objekte bewegen sich ja darauf. Ohne
die Platte würden meine armen Förmchen ja runterfallen. :)
Hier nochmal kurz was ich über meine Objekte wissen muss an einem
Beispiel:
Ein Kreis, ein Rechteck und ein Oktagon bewegen sich mit einer
Geschwindigkeit V in innerhalb einer Fläche von 1 m² und haben
2D-Eigenschaften - im Falle des Rechteckes A x B, im Falle des Oktagons
entsprechend weitere Paramter. Ich möchte messen wie groß A und B
[C,D,...] sind unabhänig von der Position. Der Abstand Kamera Glasplatte
ist konstant. (Paralaxe mal vernachlässigt)
Das kann ich mit meiner Monokamera (also nicht Kincet) bereits
bewerkstelligen und zwar mit einer Auflösung von +-0,3 mm.
Die Herausforderung ist nun den Aufbau, der aktuell 40cm hoch ist sehr
flach zu bekommen. 1 oder 2 cm wären ideal 5 würden auch gehen. Deswegen
wollte ich weg von der kamerabasierten Lösung. Evtl auch noch zu
erwähnen, das die Objekt ein gewisse Masse besitzen. (Vergleichbar mit
Backförmchen - aber zu leicht, um es mit einer kapazitiven Lösung über
die Masse zu lösen)
Falls das in irgendeiner Art und Weise mit einer Kamera gehen sollte,
ist mir auch ein FPGA recht :)
Beste Grüße,
Markus
Also. du moechtest eine Flaeche von 1m^2 15 mal pro sekunde auf 0.3mm
genau anscannern. Das waeren dann 11 Megapixel. 15 mal die Sekunde
waeren dann 166MPixel Lese- und verarbeitungsgeschwindigkeit. Dh ein
Laserscanner wuerde dann mit 300MHz digitalisiert. Dann durch einen
Formenerkenner durch ...
sportlich ... und das mit einem XMega ... der XMega steuert dann aber
nur das Foerderband. Ich denke auch eine 32bit Maschine mit 700MHz
reicht da noch nicht.
Hallo Blechtroll,
so ungefähr habe ich mir das vorgestellt. Und ja... sportlich
Ich greife nochmal das Beispiel mit den Fotodioden - was nicht
funktionieren wird aber mal zur Darstellung dienen soll - auf:
Viele Fotodioden-Arrays zusammen schalten, welche direkt "unter" dem
Förmchen sitzen und durch diese abgedunkelt werden. Jedes Array - sagen
wir 10x10 bekommt einen eigenen Prozessor (Datenvorverarbeitung auf z.B.
Xmega) Die Vorerarbeiteten Daten werden dann seriell über einen Bus
(z.B. High Speen-CAN) an eine "Postprocessing-Einheit" (Erstmal egal,
PC, DSP/ARM) geschickt und dort verwertet...
Aber die Datenverarbeitung ist erstaml zweitens. Ich frage erstmal ins
Forum, ob jemand evtl. ne völlig andere Herangehensweise hat, auf die
ich noch nicht bekommen bin :)
Danke euch.
Nee. Du mus das ganze Bild aufs Mal verarbeiten, sonst ist nichts mit
Objekten auf der Kante. Ich wuerd eine Kamera nehmen, die die Aufloesung
hat, und genuegend weit weg sein darf.
Nur schon einem Laserscanner mit dieser Breite wird ein endloses
Projekt.
Hallo,
ok, dann habe die Aufgabenstellung völlig missverstanden. Ich dachte,
die Formen auf der Glasplatte dienen als Referenz und das zu erkennende
Objekt ist irgendwo im Raum dahinter. Das macht meine Antwort nahezu
wertlos.
Das Ganze mit einer Kamera zu lösen, sollte aber trotzdem möglich sein,
wenn man sie an der Seite der Konstruktion monitiert. Warscheinlich
reicht eine aber nicht, weil sonst ein Objekt ein anderes verdecken
könnte. Ausserdem kann ein Kreisförmiges Objekt von der Seite natürlich
nicht von eine Rechteck unterschieden werden. Mit mehreren Kameras
sollte aber auch das kein Problem sein, weil man dann 3D-Bilder hat.
Oder evtl eine kombinierte Lösung aus Laser und Kamera? Kinect arbeitet
mit einem spezialisierten Verfahren in diese Richtung.
Darf man fragen, wozu das ganze dienen soll?
Gruss,
Patrick
@max_d:
Daran hatte ich auch gedacht. Je näher ich dran komme, desto mehr
Kameras brauche ich. Bei der gwünschten Bauhöhe würde das recht
preisintensiv werden. Dazu kommt, selbst wenn ich von jeder Kamera "nur"
VGA bekomme, wird das ein riesen Overhead werden und ne sehr diffizile
Rechnerrei weil ich jedes Bild mit 9 anderen matchen muss. Und... Jede
Kamera braucht nen einenen Prozessor.. usw.
Wenn unten kein Platz ist, ist denn von oben Platz?
Mit den 5mpixel Kameras sowie wide fishey oder weitwinkel und Schär
Optik kommt man mit 2 bis 4 Kameras aus sowie ca 7cm Höhe.
Du könntest auch ein Prisma/Spiegel nehmen und dann von der Seite mit
genügend hoher Auflösung mit einer oder mehreren Kameras Bilder machen.
Ich denke nur mit XMegas wirst du da allein schon von der Rechenleistung
her nicht hinkommen.
@Patrick W & chris : Das ganze ist für ein universitäres
Forschungsprojekt. Details kommen dann in den Veröffentlichungen :)
An Kameras von allen 4 Seiten mit Spiegeln habe ich auch schon gedacht
und werde das auch weiterverfolgen. Aber nach Möglichkeit möchte ich auf
komplexe mechnische Komponenten/Optiken, evtl. sogar
Spezialanfertigungen, verzichten.
Kameras von oben sind prinzipiell denkbar, wäre aber nur die Notlösung.
Ich hatte noch daran gedacht meine Objekte aus Metall (oder andere
leitfähige Struktur z.B. Karbon) zu fertigen und mit einer aktiven
Spannungsquelle zu versehen. Eine in irgeneiner Art und Weise gestaltete
Leiterplatte unter der Glasfäche (oder auch andere glatte Oberfläche)
dient dabei als Gegenspieler mit einem induktiven/resistiven/kapaziven
Messverfahrens. Ich hab aktuell aber keine Idee wie das mit der
geforderten Auflösung funktionieren könnte. :(