Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   3D Auswertung (https://www.delphipraxis.net/71986-3d-auswertung.html)

atreju2oo0 23. Jun 2006 09:47


3D Auswertung
 
Hallo...

Ich habe folgende Aufgabenstellung auf Arbeit:
Ich soll mit einem Laserscanner ein 3D-Bild einer Gussform einlesen, dieses mit von mir selbst erstellten Mustern vergleichen und dann das zu dem Muster passende Reinigungsprogramm starten.

Das auftretende Problem ist, dass die selbe Form 2 mal hintereinander eingescannt nicht dieselben Punkte liefert sondern nur "in etwa" die selben.
Von den eingescannten Punkten ausgehend interpoliere ich die Werte in ein 2000*1000 Feld und nutze dieses als Heightmap für DirectX. Das klappt soweit auch bis auf ein paar Grafik-Fehler ;o)

Jetzt habe ich allerdings schon zwei mathematische Fehler drinne:
1) Laser leifert nicht immer die selben Werte
2) Ich interploliere die fehlerhaften MEsswerte => Fehler vergrößert sich

Ich habe jetzt versucht aus diesen Daten Muster zu erstellen indem ich das 2000*1000 Feld in ein
200*100 Feld geschrieben hab und aus den 10*10 Werten dabei den Mittelwert bestimmt habe um den Fehler möglichst klein zu halten.

Leider habe ich jetzt feststellen müssen, das dieses Verfahren zwar für eine grobe Unterscheidung
ausreichend ist, nicht jedoch wenn sich die Gussformen nur minimal unterscheiden.

Deshalb suche ich nach anderen Vorschlägen wie man die Mustererkennung bewerkstelligen könnte!

Ums nochmal zusammenzufassen:


Ausgangssituation:

-3-D Punkte vom Scanner mit bis zu ca. 5 % abweichungen
-Diese werden in ein 2000*1000 Feld interpoliert
-Daraus muss ich Muster erstellen



Mein nächster Ansatz wäre es so eine Kurvendisskusion über die Fläche zu machen.
Dann würde ich lokale Hoch und Tiefpunkte vergleichen und versuchen so ein Muster zu erstellen.

Gibt es bessere Vorschläge?
Oder Seiten wo ich mich einlesen könnte?

atreju2oo0 26. Jun 2006 08:29

Re: 3D Auswertung
 
Push...

;)

SirThornberry 26. Jun 2006 08:58

Re: 3D Auswertung
 
Wenn es zu ungenau ist könntest du doch heraussuchen welche Form am ähnlichsten ist, welche am 2 ähnlichsten etc.. Wenn du mehrere Formen findest die passen könnten würde ich dann einen Auswahldialog hoch bringen.

Allerdings verstehe ich nicht das beim Scannen jedesmal andere Werte raus kommen. Das zu scannende Bild ändert sich doch nicht.

glkgereon 26. Jun 2006 09:00

Re: 3D Auswertung
 
Also prinzipiell würde ich sagen:

wenn die ungenauigkeit des lasers über dem unterschied zwischen den formen liegt hast du keine chance...

denn wie willst du erkennen das die form da 2 cm dicker ist wenn der laser bis zu 5cm abweichung hat?


du könntest versuchen regelmäßigkeiten herauszufinden...falls es welche gibt.





du könntest folgendes versuchen:
beim interpolieren (falls du es nicht sowieso machst) punkte, die deutlich von ALLEN umliegenden punkten abweichen auf den wert der umliegenden zu setzen.

d.h. wenn du folgende punkte hast:

7 8 9
8 2 7
7 9 8

dann setzt du einfach die 2 auf 8, denn ein solcher sprung in einem so kleinen maßstab (1! punkt) kann eigentlich nicht sein.
damit könntest du event. einige fehler filtern....aber alles wohl nicht.

mschaefer 26. Jun 2006 09:12

Re: 3D Auswertung
 
Moin,moin,

Mein weg wäre:

1.)prinzipiell brauchst Du zur Fehlerkorrektur drei Messungen, damit ein größerer Fehler überhaupt erkannt werden kann.

2. Du bildest dann von jedem Punkt den Mittelwert aus jeweils zwei Messungen:
(avg(Messung1+Messung2; avg(Messung1+Messung3); avg(Messung2+Messung3)

3 Entscheiden Punkt Verwerfe oder Nehmen
Sind alle drei Punkte in einem Sicherheitsinertvall dann nimm Mittelwert aus allen drei Mittelwerten. Ende
Sind zwei Punkte in einem Sicherheitsintervall, dann nimm Mittelwert aus diesen beiden Mittelwerten und verwerfe Dritten. Ende
Sind alle drei Mittelwerte weit auseinander, dann Verwerfe Punkt und gehe zu 4.

4. Interpoliere Punkt aus den vier Nachbarpunkten bei 2d oder 6 Nachbarpunkten bei 3D ohne Diagonalen.



Würde erstmal eins bis drei angehen, denn vier dauert etwas länger...

Grüße // Martin

atreju2oo0 28. Jun 2006 18:02

Re: 3D Auswertung
 
Zitat:

Zitat von SirThornberry
Wenn es zu ungenau ist könntest du doch heraussuchen welche Form am ähnlichsten ist, welche am 2 ähnlichsten etc.. Wenn du mehrere Formen findest die passen könnten würde ich dann einen Auswahldialog hoch bringen.

Allerdings verstehe ich nicht das beim Scannen jedesmal andere Werte raus kommen. Das zu scannende Bild ändert sich doch nicht.

Die erste Auswahl treffe ich nach Länge Breite Höhe und Volumen! Wenn die Abweichung da zu groß wird fliegt das Muster raus.

Warum andere Werte rauskommen kann ich nicht wirklich erklären. Ich denke es hängt mit dem Zeitgeber zusammen der die Zeit des Laserstrahls misst...


Zitat:

Zitat von glkgereon
du könntest folgendes versuchen:
beim interpolieren (falls du es nicht sowieso machst) punkte, die deutlich von ALLEN umliegenden punkten abweichen auf den wert der umliegenden zu setzen.

Interpolation hab ich schon mit drinne... Aber trotzdem danke!

Zitat:

Zitat von mschaefer

1.)prinzipiell brauchst Du zur Fehlerkorrektur drei Messungen, damit ein größerer Fehler überhaupt erkannt werden kann.

Den Durchschnitt nehme ich leider schon... :o(
Ich danke Euch für eure Hilfe aber momentan sieht die Kurvendisskusion der Fläche eigentlich ziemlich vielversprechend aus!
Sollte sich da noch was ergeben das für alle interessant wäre könnte ich am Ende auch nochmal den QT posten!

mschaefer 30. Jun 2006 11:39

Re: 3D Auswertung
 
Zitat:

Den Durchschnitt nehme ich leider schon... :o(
und so kommt der Fehler in den Mittelwert ohne erkannt zu werden...

Grüße // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz