Registriert seit: 23. Jan 2008
3.686 Beiträge
Delphi 2007 Enterprise
|
Re: Positition eines 3D Objekts aus einem Bild auslesen
24. Aug 2008, 07:08
Das haut aber auch wirklich nur dann hin, wenn du die Größe der Tasse sehr genau weisst, und diese in jeder vorkommenden Lage auch genau genug erkennen/umranden kannst. Weil die perspektivische Verzerrung wird wohl gering genug ausfallen, um dafür zu sorgen dass um 1-2 Pixel falsch erkannte Größen zu starken Variationen in der Tiefenschätzung führen werden. Wenn die Kamera relativ nah am Objekt ist, lässt sich das aber u.U. durch Nutzung eines Objektives mit sehr großem FOV zumindest ausreichend beheben.
Am sichersten fährst du eigentlich wenn du noch einen zusätzlichen "Tiefensensor" einbringen kannst. Die Nobelklasse sind da Laser, aber auch ein Ultraschall dürfte für diesen Zweck noch mehr als sehr gute Dienste leisten können. Sogar mit 2 Kameras ist das Erkennen/Umranden und herausrechnen der Tiefeninformation aufgrund der meist nicht allzu großen Auflösung der Kameras noch immer relativ ungenau, vor allem aber vergleichsweise aufwendig.
Es gab mal ein Freeware Programm "Icarus", dass von irgend einer Gruppe ich glaube an der Uni Manchaster entwickelt wurde. Das konnte anhand eines Videos ohne weiteres Zutun schon recht gut die Kamerafahrt und die Lage der erkannten Featurepoints in gängige 3D-Formate umsetzen. Hat man die Featurepoints noch von Hand an Objektkanten gesetzt und sie konnten gut getraced werden, konnte man sogar relativ gut zumindest Dinge wie Wände oder Schränke mit einbringen. Auf dieser Basis hatte das Teil auch noch eine Anti-Wackel-Funktion, die das Wackeln von Handkameras erstaunlich gut korrigieren konnte. Das dumme ist nur, dass dieses Programm schon vor Jahren aus dem Netz genommen wurde, und die (proprietäre) Technologie an ein Unternehmen verkauft wurde. An welches weiss ich leider nicht, aber ich hab es seit dem nicht mehr geschafft auch an ältere Versionen zu kommen.
Das hat recht gut demonstriert wie weit man so ca. gehen kann, der dahinter stehende Aufwand belief sich aber auf zig Mannjahre - und auch das war aus o.g. Gründen keinesfalls Millimetergenau, oder hätte das anderweitige Erfassen einer Kamerafahrt in Hollywood fürs Composing ersetzen können.
"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)
|