AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 3D Punktwolken und GroundDetection

3D Punktwolken und GroundDetection

Ein Thema von Cyberstorm · begonnen am 14. Dez 2010 · letzter Beitrag vom 15. Dez 2010
Antwort Antwort
Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#1

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 11:15
moin

Das Wichtigste scheint mir hier die Definition des "Boden" zu sein - ist damit die Ebene gemeint, die durch die 3 Punkte mit den kleinsten "Hochwerten" gebildet wird? Oder gibt es eine andere Anforderung? Ist die Boden-Ebene definiert, reduziert sich der Rest wohl auf die Fragestellung "Punkt in Ebene?"
Ich habe mal zwei Bilder zur verdeutlichung hinzugefügt. Es handelt sich einen "realen" "Boden" von einem 3D-Scan. Ich meine mit "Boden" also viele 3D-Koordinaten, welche zusammen eine "einigermaßen" planare Fläche ergeben. Diese möchte ich entfernen.

Dieser Boden ist in meinem lokalen Koordinatensystem aber "verdreht" -- also irgendwo im Raum. Sonst könnte ich ja alle Punkte mit einer Höhe weniger X wegschmeißen...
Ich hoffe nun ist klar, was ich meine?!

Danke und viele Grüße
Angehängte Grafiken
Dateityp: png snap_01.png (64,1 KB, 61x aufgerufen)
Dateityp: png snap_02.png (24,9 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.679 Beiträge
 
Delphi 12 Athens
 
#2

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 11:52
Ich denke mal, du hast nur eine Chance, wenn du mindestens drei Punkte festlegen kannst, von denen du weißt, daß sie in der Ebene liegen. Ansonsten musst du über alle 3er-Kombinationen iterieren und die Ebenen-Koeffizienten berechnen und dann statistisch die wahrscheinlichste Ebenengleichung bestimmen. Die Anzahl der 3er-Kombinationen bei n Punkten ist n*(n-1)*(n-2)/6, was schnell eine ziemlich hohe Zahl ergeben kann (z.B. bei n=1000 gibt das schon 166.167.000 Kombinationen). Das ist in vertretbarer Zeit nicht zu machen. Da kommst du nur mit einem anderen Verfahren zum Ziel. Ohne weitere Kenntnisse über die Datenmenge kann man da aber nur schwer eine Aussage treffen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#3

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 11:55
Ok, jetzt ist die Sache schon konkreter. Aber nun fehlt mir ebenfalls eine zündende Idee. Selbst wenn die "Boden-Ebene" nicht willkürlich im lokalen Koordinatensystem vorliegen würde, fällt mir spontan keine Bedingung ein, die "nur" von den Bodenkoordinaten erfüllt werden. Interessant ist zwar, dass das Scanbild den Boden überwiegend in sehr dunklem Grün darstellt, aber eben auch nur überwiegend. Teilweise nimmt die Bodendarstellung auch die Farbe der gescannten Dame an - sorry, da muss ich passen. Ist wohl eher eine Problemstellung für einen Mathematiker...
Ralph
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 12:09
Liegt der Boden immer im wesentlichen in der XZ-Ebene und ist dort in alle Richtungen am "größten"? Wenn ja, könntest du ggf. eine Hand voll Punkte mit maximalem XZ-Abstand zum XZ-Zentrum der Wolke ermitteln um eine Schätzung der Y-Varianz zu ermitteln, und daraus 2 XZ-Ebenen ableiten zwischen denen du alle Punkte killst. Unabdingbare Voraussetzung ist hier eben, dass der Scan weitestgehend "gerade" ist.
Man wird vermutlich aber nie ganz verhindern können, dass entweder einzelne Bodenpunkte bleiben, oder ein paar der vom Objekt löscht, die direkten Kontakt haben.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#5

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 12:23
Mal eine spontane Überlegung:
Beim Betrachten der wohlgeformten Extremität des ersten Bildes fällt auf, dass so etwas wie ein "Schattenwurf" erzeugt wird; teilweise fehlen in einem Bereich des Bodens die dargestellten Bildpunkte. Warum? Viellicht sollte die Aufgabenstellung nicht durch die auswertende Software gelöst, sondern bereits zu einem früheren Zeitpunkt vermieden werden.
Was führte in dem Beispielbild dazu, dass "hinter dem Bein" keine Bildpunkte gescannt wurden? Kann man dies u.U. nutzen um die Übertragung der Bodenebene von vornherein zu vermeiden?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 13:02
Mal eine spontane Überlegung:
Beim Betrachten der wohlgeformten Extremität des ersten Bildes fällt auf, dass so etwas wie ein "Schattenwurf" erzeugt wird; teilweise fehlen in einem Bereich des Bodens die dargestellten Bildpunkte. Warum? Viellicht sollte die Aufgabenstellung nicht durch die auswertende Software gelöst, sondern bereits zu einem früheren Zeitpunkt vermieden werden.
Was führte in dem Beispielbild dazu, dass "hinter dem Bein" keine Bildpunkte gescannt wurden? Kann man dies u.U. nutzen um die Übertragung der Bodenebene von vornherein zu vermeiden?
Das liegt daran, dass der Laserscanner auch nur normales Licht benutzt um zu scannen. was hinter dem Bein ist, sieht er nicht und dort können auch keine Datenpunkte gesammelt werden.

Zum Problem. Die Holzhammermethode, die mir jetzt spontan einfällt ist die Hough-Transformation - Eine Ebene hat 3 Parameter. ist sicherlich einiges an Rechenaufwand, aber es sollte gehen.

Geändert von jfheins (14. Dez 2010 um 13:27 Uhr)
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#7

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 13:11
Zitat:
nur normales list benutzt
Was ist darunter zu verstehen?
Meintest du "Licht"?

Anyway - Der Grundgedanke, das einscannen des Bodens zu verhindern, könnte möglicherweise zu einer effizienten Lösung führen. Die Frage, ob dieses mit vertretbarem Aufwand realisiert werden kann, würde ich (auch als Programmierer) schon stellen.

PS: Dann ist der Sichtschatten des Scanners aber seltsam...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#8

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 13:31
Zitat:
nur normales list benutzt
Was ist darunter zu verstehen?
Meintest du "Licht"?
Anyway - Der Grundgedanke, das einscannen des Bodens zu verhindern, könnte möglicherweise zu einer effizienten Lösung führen. Die Frage, ob dieses mit vertretbarem Aufwand realisiert werden kann, würde ich (auch als Programmierer) schon stellen.
PS: Dann ist der Sichtschatten des Scanners aber seltsam...
Ja, tut mir Leid - ist korrigiert.

Vielleicht etwas anschaulicher: http://www.youtube.com/watch?v=7QrnwoO1-8A
Der Kinect-Controller ist ja auch eine Art Laserscanner. In jede Richtung kann das Teil die Strecke bis zur nächsten Oberfläche ermitteln - aber dahinter sind dann eben diese Abschattungen.

Steht überhaupt eine Veränderung der Messungen zur Debatte oder ist die Punktewolke gegeben und du musst das Beste daraus machen?
  Mit Zitat antworten Zitat
GPR-Man

Registriert seit: 28. Okt 2008
Ort: Zürich
14 Beiträge
 
RAD-Studio 2009 Pro
 
#9

AW: 3D Punktwolken und GroundDetection

  Alt 15. Dez 2010, 11:00
Scanner liefern die Daten meist in der Reihenfolge in der die Punkte augenommen wurden, dann sollte sich auch etwas über diese Information machen lassen. Falls dies nicht der Fall ist, bleibt nur etwas brute-force. Hough scheint mir dazu aber viel zu aufwendig und langsam. Ich würde vorschlagen die Punktewolke in kleinere 3D Würfel aufzuteilen. Durch die Punkte in jedem Würfel legt man eine Ebene mit least-squares und berechnet zudem die Varianz. Über einen Vergleich der Varianz (müsste kleiner als ein bestimmter Schwellwert sein) und der Ebenennormalen (wohl am besten Median) sollte sich die Ebene definieren lassen, sprich aus den Daten der der betroffenen Würfel neu berechnen und dann, wie bereits gesagt, innerhalb eines Grenzwertes oberhalt und unterhalb beseitigen. Die Intensität schwankt normalerweise zu stark, als dass man diese einbeziehen könnte.
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#10

AW: 3D Punktwolken und GroundDetection

  Alt 14. Dez 2010, 12:16
wie wäre es um drei Punkte vom Boden zu ermitteln einen "scan" horizontal von unten zur Bildmitte, dann den ersten den du findest. Das gleiche dann nochmal mit einer Vertikalen von rechts und links zur Mitte.
Angehängte Grafiken
Dateityp: png snap_01.png (55,8 KB, 31x aufgerufen)

Geändert von ibp (14. Dez 2010 um 12:23 Uhr) Grund: Bild ergänzt
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz