Forum: Mikrocontroller und Digitale Elektronik Umrechnen Digitalfoto


von Benno S. (bennos)


Lesenswert?

Hallo zusammen!
Ich bin hier bebenso neu wie ahnungslos.
Ich brauche Hilfe bei der Entwicklung eines Gerätes zum automatischen 
Messen.
Dazu müsste der zu messende Gegenstand fotografiert und das 
perspektivische Bild umgerechnet werden in Länge x Breite x Höhe.
Ich denke da an einen virtuellen Rahmen um den Gegenstand, den man 
letztendlich umrechnen könnte.
Jetzt bin ich mal neugierig auf die Antworten...
Danke und Gruß
Benno

von Daniel G. (daniel83)


Lesenswert?

Mit oder Ohne echtem Maßstab?

Oder hast du eine "Box" wo die sachen immer an der gleichen stelle 
stehen?

Ohne realen Maßstab daneben und definierten Abstand wird das sehr 
kompliziert, evtl. kann man da noch was Zoom, Schafstellen usw. rechnen

Hast du noch ein paar details?

von Mark B. (markbrandis)


Lesenswert?

Mit einem Foto von einem Blickwinkel allein dürfte das schwierig bis 
sogar unmöglich sein. Der Monitor, vor dem ich gerade sitze, verrät mir 
seine Tiefe auch nicht, wenn ich direkt von vorne geradeaus drauf 
schaue.

Eventuell hilft es, wenn man einen Gegenstand mit fotografiert, dessen 
genaue Länge und Position (Abstand zur Kamera) man kennt.

Vorschlag: Den Gegenstand von zwei Seiten aus fotografieren, z.B. einmal 
von vorne und einmal von der Seite. Der Winkel zwischen den beiden 
Aufnahmen sollte exakt 90° betragen. Oder besser gesagt, eine Kante des 
Gegenstands sollte exakt im rechten Winkel zur Aufnahmerichtung der 
Kamera stehen. Wenn man dann noch ein Lineal oder etwa Ähnliches im Bild 
hat, kann man anhand der Pixelzahl der Kanten des Gegenstands die Längen 
ausrechnen.

von Purzel H. (hacky)


Lesenswert?

Aus mehreren Fotos von verschiedenen Positionen laesst sich mit ein paar 
Referenzpunkten die Szenerie 3D maessig fitten. dh man erhaelt ein 
ueberdefiniertes Gleichungssystem mit mehr Gleichungen wie Unbekannten 
und macht dann einen Fit. Die Mathematik dazu ist eher aufwendig. Physik 
- 3.Semester

von Benno S. (bennos)


Lesenswert?

Das Ziel der Geschichte soll eine Art Handscanner sein, mit dem man 
beliebige Packstücke an beliebigen Orten messen kann. Die Entwicklung 
darf durchaus was kosten, ich denke da tatsächlich an eine Vermarktung.
Wenn man nun eine Kamera mit drei Linsen hätte, die drei entstehenden 
Bilder "übereinanderlegt" und dann berechnet?

Den immer gleichen Abstand zum Gegenstand könnte man mechanisch, sprich 
mit einem Rohr o.ä. sicherstellen. Ich habe auch schon darüber 
nachgedacht, ob man über die Kanten eine Laserlinie legen könnte, um die 
Konturen deutlicher zu machen.

Den link zu dieser Seite habe ich von jemandem, der sagt, dass bei 
diesem Problem hauptsächlich mathhematischer Hintergrund erforderlich 
ist.

von Benno S. (bennos)


Lesenswert?

Ich bin von der Resonanz aber mächtig beeindruckt.
Wer immer sich berufen fühlt, da weiterzumachen, wo meine Überlegungen 
aufhören, melde sich bitte bei mir.
Dann sollte sich mal treffen, und ein wenig (oder ein wenig mehr) weiter 
nachdenken.
Grüße
Benno

von Karl H. (kbuchegg)


Lesenswert?

Was du dir da vorgenommen hast, ist .... verdammt schwer.

Ein paar 'beliebig' wirst du wohl fallen lassen müssen.

Eine Kamera mit 3 Linsen wirst du wohl vergessen können. Die 
perspektivischen Unterschiede bei den paar Zentimetern Basislänge sind 
im Bild praktisch nicht mehr vorhanden. Vor allen Dingen dann nicht, 
wenn du keine eindeutigen Referenzpositionen im Bild hast, sondern die 
auch noch im Bild selbst durch Bildbearbeitung herauskitzeln musst. Da 
wird ein Eckpunkt des Pakets schon mal um ein paar Pixel daneben sein 
(sofern du die Ecke überhaupt findest)

von max (Gast)


Lesenswert?

die wichtigste frage wurde noch gar nicht gestellt: wie genau soll das 
ganze sein? wie groß sind die zu messenden objekte? aus welchen 
entfernungen soll das gehen? muss es vollautomatisch sein, oder kann es 
benutzerinteraktion geben?

wo kommst du denn ungefähr her?

von Daniel G. (daniel83)


Lesenswert?

Wenn du ein Bild machst, und zusätzlich zwei paralelle 
Entfernungsmessungen, durch z.B. Laser.
d.h. du nimmst zwei Laser Entfernungsmesser und montierst die in dein 
Gerät bsp. 10cm aus ein ander. dadurch erhälst du 2 Punkte auf deinem 
Packstück.
Nun kannst du per Trigonometrie die Länge des Packstücks zwischen den 
beiden Punkten errechnen und den Winkel deines Packstücks.
Damit hast du in die richtung schon eine referenz länge und den Winkel 
dazu.
Wenn du das jetzt noch 90 Grad versetzt machst müsstest du (fast?) alle 
Richtungen berechnen können.
Das könnte ein praktikabeler Ansatz sein, wenn du das auch denkst, dann 
denk nochmal genauer drüber nach, ob es wirklich geht, ist mir halt 
gerade eingefallen.

von oszi40 (Gast)


Lesenswert?

Hallo Benno, mache erst mal ein paar einfache Fotos von einen 
Referenzwürfel 10x10x10cm und schau Dir an, wie verzeichnet die Linien 
durch Dein Objektiv dann aussehen. Da werden wohl einige Objektivfehler 
erst mal mühsam rausgerechnet werden müssen, bevor man überhaupt 
"messen" kann.

von Mark B. (markbrandis)


Lesenswert?

oszi40 schrieb:
> Da werden wohl einige Objektivfehler
> erst mal mühsam rausgerechnet werden müssen, bevor man überhaupt
> "messen" kann.

Das ist meiner Meinung nach kein großes Problem. Man kann die optische 
Verzerrung einer Linse etc. immer dadurch korrigieren, dass man eine 
bekannte Referenz mit aufnimmt (z.B. eine Art Fadenkreuz). Da man diese 
"optische Referenz" selbst definiert hat, gilt:

Optische Referenz * Linsenverzerrung = Aufgenommenes Bild der Referenz

Wobei "*" die lineare Faltung ist. Das Ganze mit einer 
Fouriertransformation in den Frequenzbereich schicken und so die exakte 
Linsenverzerrung bestimmen. So oder so ähnlich hat es mal ein Prof in 
der Vorlesung über Signalverarbeitung und Mustererkennung erklärt :-)

von Benno S. (bennos)


Lesenswert?

Die Messungen sollten schon auf 1 cm genau sein.
Für Entfernungsmessungen mit Laser brauchen wir meines Wissens nach 
einen rechtwinkligen Aufprallwinkel, wegen der Reflektion. Falls man das 
auch anders machen kann, müsste man den Gedanken des digitalen Fotos ja 
vielleicht gar nicht weiter verfolgen.
Darüberhinaus habe ich auch darüber nachgedacht, dass wir ja den Abstand 
zum Karton oder Kiste durch ein Rohr ermitteln können, und die Höhe, aus 
der das Bild gemacht wird, durch eine Laserabstandsmessung zum Boden 
ermitteln können. Dadurch gibt es einen Winkel, der die Höhe des Pakets 
bereits festlegt.

von Daniel G. (daniel83)


Lesenswert?

Zur Laserabstandsmessung brauchst du keinen 90Grad Winkel.
Prof. Geräte können das auch schrag, z.B. von Hilti, mit dem hab ich 
selbst schon die Höhe einer hohen Wand bestimmt, mit einer Schrägen 
messung und Rechnen, ging wunderbar

von Karl H. (kbuchegg)


Lesenswert?

Benno Schäfer schrieb:

> Für Entfernungsmessungen mit Laser brauchen wir meines Wissens nach
> einen rechtwinkligen Aufprallwinkel, wegen der Reflektion.

Nur dann, wenn du einen Spiegel ausmisst:-)

Versuch: Stell dich seitlich zur Wand und leuchte mit einem Laserstrahl 
auf die Wand. Siehst du den Laserfleck oder siehst du ihn nicht?
Du siehst ihn! Daraus folgt: Es gibt einen genügend großen Anteil an 
Photonen die zu dir zurückreflektiert werden, so dass du von dem von dir 
ausgesendeten Strahl eine Reflexion bekommst. Wenn dein Auge eine 
Reflexion wahrnimmt, dann auch die Photozelle, die die Auswertung macht.

von Benno S. (bennos)


Angehängte Dateien:

Lesenswert?

Hier sind so die Standartpakete, für die ich den Scanner haben möchte. 
Natürlich soll er dann auch Kisten u.ä. messen können.

von Benno S. (bennos)


Lesenswert?

Wenn das so ist, müssten wir ja nur Laser haben, die das mal eben so 
abtasten könnten und wir könnten auf daa Digitalfoto komplett 
verzichten???
Also müsste die Fragestellung nicht "Umrechnen Digitalfoto" heißen 
sondern eher "mobile 3D-Messung mit Laser"...

von Daniel G. (daniel83)


Lesenswert?

Ich dachte die Laser eher zur referenz bestimmung mit 2 Punkten die du 
auf nimmst auf deinem Bild und den Entfernungen dazu kannst du abstand, 
also skalierung und die länge der referenzstrecke auf dem Objekt 
bestimmen, damit sollte man die Größe berechnen können, einen 3D Scanner 
aufzubauen, der aus der Hand ein festehendes Onjekt ausmisst halte ich 
für nicht ganz trivial und mit sicherheit für deutlich teurer

von hp-freund (Gast)


Lesenswert?


von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hallo Benno,

ich habe vor einiger Zeit im Rahmen einer freiwilligen Schularbeit einen 
Entfernungsmesser auf Laser-Trigonometrie entwickelt. Diese Art der 
Messung sollte auch für dein Problem hilfreichs sein.

Mittels Linienlaser und Kamera kann so zweidimensional Entfernung 
gemessen werden. Mittels Software sollten dann auch die Kanten des 
Paketes erkennbar sein und somit auch die Länge des Paketes.

Viele Grüße
Lasse

von Karl H. (kbuchegg)


Lesenswert?

Daniel G. schrieb:

> also skalierung und die länge der referenzstrecke auf dem Objekt
> bestimmen,

soweit so gut

> damit sollte man die Größe berechnen können,

Äh nein.
Kein Mensch sagt dir, wie deine Referenzstrecke in Bezug zu den 
Aussenkanten des Pakets liegt. Alles was du hast: Du hast (mit 3 Laser 
anstelle von 2), die Lage der Ebene festgestellt, in der die Fläche 
liegt auf die die 3 Laser getroffen sind. Und dann sollte man besser 
sicherstellen, dass alle 3 Laser tatsächlich auf derselben Fläche 
auftreffen.

Wie ich die typischen Fragestellungen hier im Forum so kenne, so möchte 
der TO ein System bauen, bei dem man mit einem Bild wie dem obigen vor 
einer Kamera rumwedelt (ok, die Kamera nimmt das auf) und auf dem 
Drucker soll rausrasseln:
   1 Paket   800*600*400
   2 Pakete  750*600*350
   1 Paket   400*200*280
   ....

von Karl H. (kbuchegg)


Lesenswert?

Ich würde als allererstes mal damit anfangen, mittels Kantenfilter die 
Kanten der SChachteln zu finden.
Hast du die Kanten kommt die nächste große Hürde, welche der Linien 
gehören zusammen und bilden zusammen ein Paket

Und dann, wenn man weiß, was im Bild überhaupt sichtbar ist, kann man 
anfangen Messtrecken entlang der Kanten zu errichten.

wies heute aussieht kann ich nicht sagen, aber noch vor einigen Jahren 
konnte noch kein Programm aus einer Menge von Kanten zuverlässig die 
Objekte rekonstruieren, die diese Kanten erzeugt haben.

von Christian A. (cau) Flattr this


Lesenswert?

Benno Schäfer schrieb:
> Wenn das so ist, müssten wir ja nur Laser haben, die das mal eben so
> abtasten könnten und wir könnten auf daa Digitalfoto komplett
> verzichten???
> Also müsste die Fragestellung nicht "Umrechnen Digitalfoto" heißen
> sondern eher "mobile 3D-Messung mit Laser"...

zu dem Thema fällt mir Keyence ein:
http://www.keyence.de/products/sensors/laser/laser.php

Ich hab aber keine Ahnung, ob die Sensoren für deine Anwendung taugen... 
Die Vertriebsleute von Keyence sind aber sehr kooperativ... die helfen 
dir wo sie können.

Christian

von Benno S. (bennos)


Lesenswert?

Köönte man nicht die zu messenden Pakete so ranzoomen, dass nur noch das 
zu messende Paket erfasst wird??
Mir will es aber scheinen, dass sich hier im Forum Lösung abzeichnet.
Da können wir in Düsseldorf ja mal ein Treffen machen, bei dem alles 
erörtert werden kann. Die Getränke übernehme ich....

von Daniel G. (daniel83)


Angehängte Dateien:

Lesenswert?

Aus einem Solchen Foto die größe der Pakete zu bestimmen, halte ich für 
so gut wie unmöglich und wenn für absolut unrentabel, aber ein Foto 
gegen neutralen Hintergrund von einem Objekt wohl eher schon.

Nehmen wir mal an, wir konnten die Kanten durch den Neutralen 
hintergrund den dieses Bild hätte erkennen.

Nehmen wir zur weiteren vereinfachung an, das alle Pakete 90 Grad ecken 
haben.

Es leiße sich mit den Messpunkten im Bild rot, ein referenz Achsenkreuz 
errechnen, so ließen sich die Kanten rechnerisch bestimmen. nicht ganz 
einfach aber Möglich.

von Karl H. (kbuchegg)


Lesenswert?

Benno Schäfer schrieb:
> Köönte man nicht die zu messenden Pakete so ranzoomen, dass nur noch das
> zu messende Paket erfasst wird??

Dazu muss deine Automatik erst mal wissen, wo im Bild ein Paket ist.

von hp-freund (Gast)


Lesenswert?

Noch eine Idee:

Wie wäre es nicht mehrere Kameras zu verwenden, sondern Blitzlichter aus 
verschiedenen Richtungen und jeweils ein Bild aufnehmen. U.U. hat man 
dann schon saubere Kontraste und kann mit einem "Messmuster" auf Wand 
und Fußboden einfache Vergleichsmessungen anstellen...

von hp-freund (Gast)


Lesenswert?

Nachtrag:
Die Aufkleber und der Barcode haben doch auch eine feste Größe oder?

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

was spricht denn gegen meinen Vorschlag, oder wurde er schlicht 
überlesen? ;)

Gruß
Lasse

von Daniel G. (daniel83)


Lesenswert?

Hallo Lasse,

Damit nimmst du doch nur die Entfernung auf, um eine Kante oder fläche 
zu detektieren müsstest du doch da Paket bewegen oder?
Es geht doch darum ein Paket zu bestimmen aus einer Momentaufnahme 
heraus wenn ich es richtig Mitbekommen habe.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

nein, das Paket bewegen muss ich nicht.

Da ich mit einem Linienlaser arbeite (Laserstrahl wird durch eine Optik 
aufgefächert, so dass eine Linie ensteht, kann ich Entfernungen auf 
einer Ebene messen.

Somit nehme ich pro Bildspalte einen Entfernungswert auf. Damit sollte 
es ansich möglich sein, die Paketbreite zu bestimmen. Wenn man auf eine 
Ecke des Paketes zielt, könnte man sogar Breite und Länge des Paketes 
gleichzeitig bestimmen.

Im angehängten Bild sieht man das aufgenommene Foto einmal ohne Laser 
(links), dann mit Laser (mitte) und dann den isolierten Laserstrahl 
(rechts). Wie man deutlich erkennt, kann man die Breite des in der Mitte 
aufgestellten Hindernisses deutlich erkennen und über relativ simple 
Mathematik berechnen.

Gruß
Lasse

von Lasse S. (cowz) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ok,
da hat er das Bild nicht genommen.

Daher hier nocheinmal.

Gruß
Lasse

von Karl H. (kbuchegg)


Lesenswert?

Lasse S. schrieb:

> Somit nehme ich pro Bildspalte einen Entfernungswert auf. Damit sollte
> es ansich möglich sein, die Paketbreite zu bestimmen.

Aber nur dann, wenn das Paket so liegt, dass deine Laserlinie parallel 
zu einer Kante liegt. Wenn ich die Linie ausrichten muss, ist es 
deutlich einfacher mit einem Massband hinzugehen und dieses anzulegen.

von Daniel G. (daniel83)


Lesenswert?

Ok,

Dann sind unsere beiden ideen gar nicht so weit von ein ander entfernt, 
hatte "Linien" Laser unterschlagen.
Es geht zumindest in die selbe Richtung, wenn auch ein wenig anders

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Ja, das mit der Parallelität stimmt.

Das sollte aber mit dem Auge machbar sein, geringe Abweichungen werden 
vermutlich keine allzugroßen Auswirkungen haben.

Da müsste man mal rechnen, wie stark sich das auswirkt, und wie genau 
man das per Hand parallel bekommt.

von Karl H. (kbuchegg)


Lesenswert?

Der springende Punkt ist:
Wenn ich erst recht wieder Hand anlegen muss, kann ich auch ein Massband 
nehmen :-)

von Benno S. (bennos)


Lesenswert?

Also, ich bin ja fast erschlagen von den ganzen Anregungen!!
Es geht hier NICHT darum, aus einem Foto die Maße zu ermitteln, sondern 
ich möchte Maße eines physisch vorhandenen Packstücks (Karton, Kiste 
etc).

Die Sache mit dem Foto kam nur daher, weil ich dachte, dass der Weg nur 
über ein digitales Foto führen würde.
Dank der ganzen Antworten bin ich aber schon fast der Meinung, dass es 
auch anders gehen sollte.

D.h., die Fragestellung lautet "Mobile Automatische Größenermittlung" 
mit Laser oder sonst wie.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Nein, du musst nicht Hand anlegen. Du musst im Maximalfall nur eine 
Laserlinie parallel zur Paketkante halten. Die Kamera / Aufnahmegerät 
auf das Paket ausrichten musst du in jedem Fall. (Wobei es nicht sehr 
exakt parallel sein muss, vermutlich)

Alternativ könnte man über Software die Kanten des Paketes erkennen und 
über den Laser nur die Entfernung messen. Über die beiden Informationen 
sollte das auch möglich sein.

von oszi40 (Gast)


Lesenswert?

Es wäre auch interessant, wie z.B. DHL oder Quelle die Pakete vermessen.
Da sollten doch schon Erfahrungen vorliegen? Evtl. könnten wir die 
Zweiterfindung des Fahrrads damit sparen ?

von Karl H. (kbuchegg)


Lesenswert?

oszi40 schrieb:
> Es wäre auch interessant, wie z.B. DHL oder Quelle die Pakete vermessen.

Wenn ich so was machen müsste:

Förderband auf dem die Pakete an einer Station vorbeifahren.
Vor der Station schiebt ein Schieber (oder die Schwerkraft) die Pakete 
an einen Anschlag (so ähnlich wie die Gepäckstücke auf den 
Flughafenförderbändern).
Das Paket fährt über eine Lichtschranke und aus der Dunkel-Zeit 
errechnet sich die Länge.
Dann durch einen senkrechten Lichtvorhang aus ein paar zig 
Lichtschranken für die Breite und dasselbe mit einem Lichtvorhang quer 
für die Höhe.
Alles was dadurch nicht erkannt werden kann wird aussortiert und fährt 
an der Bandstrasse bei einem Menschen vorbei.

Aber Dreh und Angelpunkt ist bei sowas praktisch immer: Zuerst in eine 
definierte Lage bringen.

von Benno S. (bennos)


Lesenswert?

Die Paketdienste machen das über Rollenstraßen, da wird dann automatisch 
die Höhe und die Breite genommen, die Zeit des Vorbeifahrens an einer 
Lichtschranke ergibt die Länge.
Ich will aber nicht die vielen Pakete erst auf eine Rollenbahn legen, 
sondern im Zweifel sogar auf einem Lkw messen können.

von yalu (Gast)


Lesenswert?

Was darf das Ganze an Material kosten? Vielleicht wäre eine dieser
3-D-Kameras ein Lösungsansatz:

  http://www.pmdtec.com/
  http://www.mesa-imaging.ch/

Man würde die Kamera per Visier, Laserpointer oder Kontrollbildschirm
frontal auf eine der Ecken des zu vermessenden Pakets so ausrichten,
dass alle drei angrenzenden Flächen sichtbar sind. Im 3-D-Bild werden
mit einem geeigneten Algorithmus alle Kanten detektiert, für die einer
der beiden Endpunkte in der Nähe des anvisierten Punkts liegt. Ist das
Paket nicht zu stark von anderen Objekten verdeckt, erhält man genau
drei dieser Kanten. Deren Längen sind dann die Paketmaße.

Da diese Kameras ziemliche Schätzeisen sind, weiß ich nicht, ob man
damit die gewünschte Genauigkeit von 1cm erreicht. Mit einer geeigneten
Kamerakalibration, Mittelung mehrerer Messungen usw. könnte das aber
schon hinkommen.

Demnächst kann man so eine 3-D-Kamera (von einem anderen Hersteller) ja
angeblich integriert in einer Xbox kaufen, dann dürfte sie auch nicht
mehr so teuer sein.

Apropos Xbox: Was ist eigentlich in den Paketen auf dem Foto drin? Doch
nicht etwa Windows 7?    =8-o

von STK500-Besitzer (Gast)


Lesenswert?

Nur ein Gedanke:
Die Nintendo WII hat in ihrer Fernbedienung (WIIMote) ja eine Kamera mit 
der sie die IR-Sendedioden beim Fernseher erkennt und aufgrund des 
festen Abstandes der Sende-Dioden die Position der Fernbedienung im Raum 
erkennt.
Eine Kamera mit fester Optik, die auf ein Muster (z.B. drei 
Laserpointer-Punkte) "guckt", müsste doch schon gewisse (nutzbare) 
Informationen liefern.
Man braucht halt immer einen "Maßstab"...

von Benno S. (bennos)


Lesenswert?

Na, das hört sich aber gut an. Könntest Du denn so einen Algorithmus 
schreiben  rechnen  machen? Und so eine Kamerakalibration? und 
überhaupt?
Ich mach jetzt hier Feierabend für heute, morgen gaht's dann weiter.
Und in den Paketen ist das drin, was drauf steht. Aller möglicher Kram 
von Microsoft. Aber hier ist Fort Knox, soviel steht fest!! ;-))
Bitte melde Dich nochmal
Gruß
Benno

von Benno S. (bennos)


Lesenswert?

Kriegen wir denn die DREI Dimensionen erfasst, oder nur zwei?

Ich habe so viele Beiträge bekommen, dass ich da einfach mit dem 
Antworten gar nicht nachkomme.
Und zu allem Überfluss muss ich auch noch noch meine normale Arbeit 
machen.
Also für alle, die schreiben und ich nicht darauf Antworte, schon mal 
sorry. Und viele Antworten kommen ja auch von den anderen Teilnehmern.

Ich bin mächtig beeindruckt und möchte hier einfach mal allen vielen, 
vielen Dank sagen!   ;-))))

von STK500-Besitzer (Gast)


Lesenswert?

Hast du schon mal nach "Bildverarbeitung" geguckt?
Das ist eine Wissenschaft, die sich mit solchen Problemstellungen 
befasst...

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.