Inhaltsverzeichnis:
- Schritt 1: Bewerten Sie die Komplexität der Aufgabe
- Schritt 2: Finden Sie den richtigen Ansatz
- Schritt 3: Theta-Histogramm berechnen
- Schritt 4: Rho-Histogramm berechnen
- Schritt 5: Finden Sie den zentralen Knoten
- Schritt 6: Wählen Sie aus 2 Alternativen
- Schritt 7: Bestimmen Sie die Außenecken
- Schritt 8: Probieren Sie es in der Praxis aus
Video: 3D-Rekonstruktion aus einem einzigen Foto - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Die Aufgabe der 3D-Rekonstruktion ist in der Regel mit binokularem Sehen verbunden. Alternativ können Sie eine einzelne Kamera um das Objekt herum bewegen. Wenn die Form des Objekts bekannt ist, kann die Aufgabe mit einem einzigen Foto gelöst werden. Das heißt, Sie haben nur eine Kamera und sie bewegt sich nicht. Schauen wir uns Schritt für Schritt an, wie es geht. Wir werden Rubik's Cube verwenden, da er gut standardisiert ist und über eine Vielzahl von Funktionen verfügt. Es kann als sehr einfaches Objekt und gleichzeitig als kompliziertes Konstrukt angesehen werden. Die Bildverarbeitung muss also erhebliche Hindernisse überwinden, um die Aufgabe zu erfüllen.
Schritt 1: Bewerten Sie die Komplexität der Aufgabe
Auf den ersten Blick ist die Aufgabe einfach. Finden Sie den zentralen Knoten, an dem 3 Kanten des Würfels zusammenkommen, und zeichnen Sie diese Kanten. Aus ihren Koordinaten lassen sich der Abstand zur Kamera und Drehwinkel berechnen. Das Problem ist, dass diese Zeilen nicht existieren. Aus dem linken Bild sehen Sie, dass jede Kante durch 2 parallele Linien dargestellt wird. Darüber hinaus zeigt das Bild oben rechts, dass jeder von ihnen in 3 Segmente unterteilt ist. Wenn wir außerdem eine Variante der beliebten Hough-Transformation anwenden, die Liniensegmente erkennen kann, führt sie die Aufgabe mit einigen Fehlern aus, die eine Erkennung des zentralen Knotens unmöglich machen. Wenn sich die Enden nicht erreichen, gibt es keinen einzigen Punkt. Wenn die Erkennung über das Ende hinausschießt, sieht es wie der Knoten in der Mitte der Kante aus, wie Sie auf den 2 verbleibenden Bildern sehen.
Schritt 2: Finden Sie den richtigen Ansatz
Wenn zu viele Details deterministische Algorithmen unbrauchbar machen, ist es an der Zeit, einen probabilistischen Ansatz in Betracht zu ziehen. Wenn wir gemittelte Parameter des Bildes berechnen, werden deren Fehler erheblich verringert und die Methode wird paradoxerweise zuverlässiger. Die Standard-Hough-Transformation gibt keine Liniensegmente aus. Nur seine Steigung Theta und der Abstand Rho vom Koordinatenursprung. Sie bilden den Hough-Raum, von dem oben gezeigt wird. Hier entspricht Theta der horizontalen Achse. Helle Punkte markieren mögliche Linien im Bild. Beachten Sie, dass mehrere solcher Spots übereinander liegen. Kein Wunder, auf unserem Bild gibt es viele parallele Linien. Sie haben das gleiche Theta und unterschiedliche Rho.
Schritt 3: Theta-Histogramm berechnen
Lassen Sie uns solche Cluster erkennen. Zu diesem Zweck werden wir die Messwerte für alle Punkte im Hough-Raum mit demselben Theta zusammenfassen. Das entsprechende Histogramm sehen Sie in der Abbildung. Ein paar Hinweise zu den Messungen. Wenn Sie mit Bildern in Pixelkoordinaten arbeiten, verläuft die X-Achse wie gewohnt, aber Y zeigt nach unten, sodass der Koordinatenursprung die obere linke Ecke ist und Theta von der X-Achse im Uhrzeigersinn gemessen werden sollte. Wenn man bedenkt, dass der gesamte Theta-Schwenk im Bild 180 Grad beträgt, können Sie ungefähr überprüfen, ob 3 Hauptspitzen 3 vorherrschende Neigungen im Bild darstellen.
Schritt 4: Rho-Histogramm berechnen
Da wir nun 3 Hauptcluster von parallelen Linien kennen, lassen Sie uns Linien in jedem von ihnen trennen. Wir können den gleichen Ansatz wiederholen. Nehmen wir eine Spalte aus dem Hough-Raum, die einem Peak im Theta-Histogramm entspricht. Als nächstes berechnen wir ein weiteres Histogramm, bei dem die X-Achse den Rho-Wert darstellt und Y - die zusammengefassten Messwerte für diese Rho. Offensichtlich wird die Summe geringer sein, so dass dieses Diagramm nicht so glatt ist. Dennoch sind Peaks deutlich sichtbar und deren Anzahl (7) entspricht exakt der Anzahl paralleler Linien auf dem Quellbild. Leider sind nicht alle Charts so perfekt, aber das Prinzip ist klar.
Schritt 5: Finden Sie den zentralen Knoten
Wenn wir für jedes Theta den zentralen Peak im Rho-Histogramm nehmen, erhalten wir 3 Linien, die auf dem Bild rot sind. Ihr Schnittpunkt markiert den notwendigen Punkt.
Schritt 6: Wählen Sie aus 2 Alternativen
Sie sehen, dass jede Linie vom Mittelpunkt in beide Richtungen verläuft. Wie bestimmt man die richtige Hälfte? Nehmen wir theta3. Nehmen wir an, wir nehmen den unteren Teil dieser Zeile. Lassen Sie uns noch einen weiteren Hough-Raum berechnen, nur für den Teil des Bildes von 2 grünen Linien bis zur oberen rechten Ecke des Bildes. Erstellen Sie dann ein Theta-Histogramm dafür. Sie sehen, dass der dritte Peak vollständig verschwunden ist, also haben wir die richtige Wahl getroffen.
Schritt 7: Bestimmen Sie die Außenecken
Jetzt können wir den ersten und den letzten Peak auf Rho-Histogrammen verwenden, um blaue Linien zu zeichnen, die die roten Kanten schneiden und die restlichen Ecken markieren. Die Aufgabe ist gelöst.
Schritt 8: Probieren Sie es in der Praxis aus
Die Illustrationen für dieses Instructable wurden mit Perception 1.0 erstellt. Dies ist eine kostenlose Software, die OpenCV verwendet - eine leistungsstarke Bibliothek für Computer Vision. Es kann auch mit WinNB verknüpft werden, das in meinem anderen Instructable verwendet wurde und so die Sichtfähigkeit für die Robotik bietet. Sie können beide Programme von nbsite herunterladen. Führen Sie zur Installation einfach die heruntergeladene exe-Datei aus. Später können Sie es mit dem Standardtool von Windows entfernen. Die Site enthält auch Ressourcen zu Computer Vision und verwandten Themen. In Perception finden Sie neben vielen anderen auch die beschriebene Methode der 3D-Rekonstruktion. Der Vorteil dieses Programms besteht darin, dass es das Endergebnis zusammen mit Zwischendaten ausgibt. Sie können erforschen, wie Computer Vision funktioniert, ohne Programmierer zu sein. Was die Eingabe angeht, hat jede Methode speziell ausgewählte typische Proben. Natürlich können Sie auch Ihre eigenen verwenden. Es ist möglich, Bilder aus einer Datei oder von der Kamera des Computers einzugeben. Bei Fragen oder Anregungen können Sie sich gerne an mich wenden.
Empfohlen:
Wie man aus einem alten Computer einen persönlichen Mini-Schreibtischventilator macht – passt in Ihre Tasche – wikiHow
Wie man aus einem alten Computer einen persönlichen Mini-Schreibtischventilator macht – passt in Ihre Tasche: Ich zeige Ihnen, wie Sie aus einem alten Computer einen persönlichen Mini-Schreibtischventilator machen. Ein Bonus ist, dass es sogar in Ihre Tasche passt. Dies ist ein sehr einfaches Projekt, daher ist nicht viel Erfahrung oder Fachwissen erforderlich. Fangen wir also an
So schalten Sie jedes Gerät aus der Ferne ein, z. einen Computer (mit einem Mobiltelefon): 5 Schritte
So schalten Sie jedes Gerät aus der Ferne ein, z. ein Computer (mit einem Mobiltelefon): In diesem anweisbaren zeige ich Ihnen, wie Sie ein altes Mobiltelefon in einen Fernschalter für Ihren Computer verwandeln. Für andere Geräte siehe letzter Schritt. Dies ist fast kostenlos, wenn Sie ein altes Handy und eine SIM-Karte besitzen. Was Sie brauchen: - Altes Handy (w
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: 7 Schritte
Wir stellen vor: 'Deodorino' - das Infrarot-gesteuerte Arduino in einem leeren Deodorant-Stick. Klicken Sie auf das 1. Foto: Jetzt zum Detail
So führen Sie alte DOS-Programme auf einem Mac aus – wikiHow
So führen Sie alte DOS-Programme auf einem Mac aus: Wenn Sie DOS-Spiele und einen Macintosh haben, aber keinen Windows-PC, können Sie sie spielen! Keine teure Software erforderlich. Ich habe dies nicht auf einem Mac OS unter 10.4 getestet. Ich bin mir sicher, dass es unter OS 10.4 und höher funktioniert. Diese instructable nur Details Softw
Einen coolen Roboter aus einem RC-Auto bauen – wikiHow
Wie man einen coolen Roboter aus einem RC-Auto herstellt: Dieses coole Projekt ist für Gymnasiasten oder jeden Bastler, der einen coolen Roboter bauen möchte. Ich habe lange versucht, einen interaktiven Roboter zu bauen, aber einen zu bauen ist nicht einfach, wenn Sie es nicht tun keine Elektronik oder spezielle Programmiersprachen kennen. Nun da