Forum: Mikrocontroller und Digitale Elektronik Objekterkennung mit XMega (o.ä.)


von Markus (Gast)


Lesenswert?

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

von Patrick W. (pawi777)


Lesenswert?

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.

von Markus H. (mar_hi)


Lesenswert?

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

: Bearbeitet durch User
von Blechtroll (Gast)


Lesenswert?

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.

von Markus H. (mar_hi)


Lesenswert?

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.

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Und mehrere (billige) Kameras die jeweils einen Teil der Fläche 
beobachten?

von Blechtroll (Gast)


Lesenswert?

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.

von Patrick W. (pawi777)


Lesenswert?

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

von Markus H. (mar_hi)


Lesenswert?

@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.

von Markus H. (mar_hi)


Lesenswert?

@Blechtroll:Die "Module" müssen natürlich zeitsynchronisiert sein. 
(Trigger) DIe Übertrageung des "Samples" erfolgt dann seriell

von chris (Gast)


Lesenswert?

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.

von derElf (Gast)


Lesenswert?

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.

von Markus H. (mar_hi)


Lesenswert?

@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. :(

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.