Entdecken Sie den SIFT-Algorithmus. Erfahren Sie, was SIFT ist und welche leistungsstarken Funktionen er für skalierungsinvariante Computer Vision bietet. Verbessern Sie Ihre Bildverarbeitung.
Entdecken Sie den SIFT-Algorithmus. Erfahren Sie, was SIFT ist und welche leistungsstarken Funktionen er für skalierungsinvariante Computer Vision bietet. Verbessern Sie Ihre Bildverarbeitung.
Heutzutage sind viele der intelligenten Geräte, die wir verwenden, von Telefonen und Kameras bis hin zu Smart-Home-Systemen, mit KI-Lösungen ausgestattet, die Gesichter, Objekte und sogar ganze visuelle Szenen erkennen können. Diese Fähigkeit stammt von Computer Vision, einem Bereich der künstlichen Intelligenz, der es Maschinen ermöglicht, Bilder und Videos zu verstehen und zu interpretieren.
Wenn Sie beispielsweise ein Foto des Eiffelturms aus einem beliebigen Winkel oder einer beliebigen Entfernung aufnehmen, kann Ihr Gerät diesen in der Regel mithilfe von Computer Vision erkennen und im richtigen Ordner in Ihrer Galerie ablegen. Auch wenn dies einfach klingt, ist das Erkennen von Objekten nicht immer einfach. Bilder können je nach Größe, Winkel, Maßstab oder Beleuchtung sehr unterschiedlich aussehen, was es Maschinen erschwert, sie konsistent zu identifizieren.
Um dieses Problem zu lösen, entwickelten Forscher einen Computer-Vision-Algorithmus namens Scale Invariant Feature Transform oder SIFT. Dieser Algorithmus ermöglicht es, Objekte unter verschiedenen Betrachtungsbedingungen zu erkennen. SIFT wurde 1999 von David Lowe entwickelt und dient dazu, eindeutige Keypoints in einem Bild zu finden und zu beschreiben, wie z. B. Ecken, Kanten oder Muster, die auch dann erkennbar bleiben, wenn die Größe des Bildes geändert, es gedreht oder anders beleuchtet wird.
Bevor Deep-Learning-basierte Computer-Vision-Modelle wie Ultralytics YOLO11 populär wurden, war SIFT eine weit verbreitete Technik in der Computer Vision. Es war ein Standardansatz für Aufgaben wie die Objekterkennung, bei der es darum geht, ein bestimmtes Element auf einem Foto zu identifizieren, und den Bildabgleich, bei dem Fotos durch das Auffinden überlappender Bildmerkmale ausgerichtet werden.
In diesem Artikel werden wir SIFT mit einem kurzen Überblick darüber untersuchen, was es ist, wie es auf hoher Ebene funktioniert und warum es in der Entwicklung der Computer Vision wichtig ist. Los geht's!
In einem Bild kann ein Objekt auf viele verschiedene Arten erscheinen. So kann beispielsweise eine Kaffeetasse von oben, von der Seite, in hellem Sonnenlicht oder unter einer warmen Lampe fotografiert werden. Dieselbe Tasse kann auch größer aussehen, wenn sie sich in der Nähe der Kamera befindet, und kleiner, wenn sie weiter entfernt ist.
All diese Unterschiede machen es zu einer komplizierten Aufgabe, einem Computer das Erkennen eines Objekts beizubringen. Diese Aufgabe der Computer Vision, bekannt als Objekterkennung, erfordert, dass Vision-KI-Modelle Objekte genau identifizieren und lokalisieren, selbst wenn sich ihre Größe, ihr Winkel oder ihre Lichtverhältnisse ändern.
Um dies zu ermöglichen, stützt sich Computer Vision auf einen Prozess, der als Feature Extraction oder -Erkennung bezeichnet wird. Anstatt zu versuchen, das gesamte Bild auf einmal zu verstehen, sucht ein Modell nach markanten Bildmerkmalen wie scharfen Ecken, einzigartigen Mustern oder Texturen, die über Winkel, Skalen und Lichtverhältnisse hinweg erkennbar bleiben.
Insbesondere wurde hierfür der Scale Invariant Feature Transform oder SIFT entwickelt. SIFT ist ein Algorithmus zur Merkmalserkennung und -beschreibung, der Objekte in Bildern zuverlässig identifizieren kann, unabhängig davon, wie sie aufgenommen wurden.
Der SIFT-Algorithmus hat einige wichtige Eigenschaften, die ihn für die Objekterkennung nützlich machen. Eine der Haupteigenschaften wird als Skaleninvarianz bezeichnet. Dies bedeutet, dass SIFT verschiedene Teile eines Objekts erkennen kann, unabhängig davon, ob es groß aussieht und sich in der Nähe der Kamera befindet oder klein und weit entfernt ist. Selbst wenn das Objekt nicht vollständig sichtbar ist, kann der Algorithmus immer noch dieselben Schlüsselpunkte erkennen.
Sie tut dies mit einem Konzept namens Scale-Space-Theorie. Vereinfacht ausgedrückt wird das Bild auf verschiedenen Ebenen unscharf gemacht, um mehrere Versionen zu erstellen. SIFT durchsucht dann diese Versionen, um Muster und Details zu finden, die gleich bleiben, unabhängig davon, wie sich die Größe oder Schärfe des Bildes ändert.
Beispielsweise sieht ein aus wenigen Metern Entfernung fotografiertes Straßenschild viel größer aus als dasselbe Schild, das aus der Ferne aufgenommen wurde, aber SIFT kann dennoch dieselben markanten Merkmale erkennen. Dies ermöglicht es, die beiden Bilder korrekt zuzuordnen, obwohl das Schild in sehr unterschiedlichen Maßstäben erscheint.
Objekte in Bildern können auch gedreht erscheinen, manchmal sogar auf dem Kopf. SIFT handhabt dies durch eine Eigenschaft, die als Rotationsinvarianz bezeichnet wird. Für jeden erkannten Keypoint weist der Algorithmus eine konsistente Ausrichtung basierend auf den lokalen Bildgradienten zu. Auf diese Weise kann dasselbe Objekt erkannt werden, egal wie es gedreht ist.
Man kann sich das so vorstellen, dass jeder Keypoint mit einem kleinen Pfeil markiert wird, der die Richtung angibt, in die er zeigt. Durch die Ausrichtung der Features auf diese Orientierungen stellt SIFT sicher, dass Keypoints auch dann korrekt übereinstimmen, wenn das Objekt gedreht wird. So kann beispielsweise ein Wahrzeichen, das in einem Landschaftsfoto aufgenommen wurde, auch dann noch korrekt identifiziert werden, wenn ein anderes Foto davon mit einer geneigten Kamera aufgenommen wird.
Neben Größe und Rotation können sich Bilder auch auf andere Weise verändern, z. B. durch Änderungen der Beleuchtung. Die Beleuchtung eines Objekts kann von hell nach dunkel wechseln, der Kamerawinkel kann sich leicht verschieben, oder das Bild könnte unscharf oder verrauscht sein.
SIFT wurde entwickelt, um mit diesen Arten von Variationen umzugehen. Dies geschieht durch die Konzentration auf Keypoints, die markant und kontrastreich sind, da diese Merkmale weniger durch Änderungen der Beleuchtung oder kleine Verschiebungen des Blickwinkels beeinflusst werden. Infolgedessen ist SIFT in der Regel zuverlässiger als einfache Kanten- oder Eckenerkennungsmethoden, die oft versagen, wenn sich die Bedingungen ändern.

Betrachten Sie ein Gemälde in einer Galerie. Es kann immer noch erkannt werden, egal ob es bei sanftem Tageslicht, unter hellen künstlichen Scheinwerfern oder sogar mit leichter Bewegungsunschärfe durch eine Handkamera fotografiert wird. Die Keypoints bleiben trotz dieser Unterschiede stabil genug für eine genaue Übereinstimmung.
Als Nächstes wollen wir uns ansehen, wie der SIFT-Algorithmus funktioniert. Dieser Prozess lässt sich in vier Hauptschritte unterteilen: Keypoint-Erkennung, Keypoint-Lokalisierung, Zuweisung der Ausrichtung und Keypoint-Beschreibung.
Der erste Schritt besteht darin, Keypoints zu finden und zu erkennen. Dies sind markante Stellen im Bild, wie z. B. Ecken oder scharfe Texturänderungen, die helfen, ein Objekt zu verfolgen oder zu erkennen.
Um sicherzustellen, dass diese potenziellen Keypoints in jeder Größe erkannt werden können, erstellt SIFT einen sogenannten Scale Space. Dies ist eine Sammlung von Bildern, die durch allmähliches Verwischen des Originalbildes mit einem Gaußschen Filter, einer Glättungstechnik, und Gruppieren der Ergebnisse in Schichten, sogenannten Oktaven, erstellt wird. Jede Oktave enthält dasselbe Bild mit zunehmendem Unschärfegrad, während die nächste Oktave eine kleinere Version des Bildes ist.
Durch Subtraktion eines unscharfen Bildes von einem anderen berechnet SIFT die Differenz der Gaußschen Funktionen (DoG), die Bereiche hervorhebt, in denen sich die Helligkeit stark ändert. Diese Bereiche werden als Kandidaten für Keypoints ausgewählt, da sie beim Vergrößern oder Verkleinern des Bildes konsistent bleiben.

Nicht alle Kandidaten-Keypoints sind nützlich, da einige schwach oder instabil sein können. Um sie zu verfeinern, verwendet SIFT eine mathematische Methode, die Taylor-Reihenentwicklung genannt wird, die hilft, die genaue Position eines Keypoints mit größerer Genauigkeit zu schätzen.
Während dieses Schritts werden unzuverlässige Punkte entfernt. Keypoints mit geringem Kontrast, die mit ihrer Umgebung verschmelzen, werden ebenso verworfen wie solche, die direkt auf Kanten liegen, da sie sich zu leicht verschieben können. Dieser Filterschritt lässt nur die stabilsten und markantesten Keypoints zurück.
Sobald stabile Keypoints identifiziert wurden, macht SIFT sie rotationsinvariant, was bedeutet, dass sie auch dann noch zugeordnet werden können, wenn das Bild seitwärts oder auf dem Kopf steht. Dazu analysiert SIFT, wie sich die Helligkeit um jeden Keypoint herum verändert, was als Gradient bezeichnet wird. Gradienten zeigen sowohl die Richtung als auch die Stärke der Änderung der Pixelintensität und erfassen zusammen die lokale Struktur um den Punkt herum.
Für jeden Keypoint berücksichtigt SIFT die Gradienten innerhalb einer umgebenden Region und gruppiert sie in einem Histogramm von Orientierungen. Der höchste Peak in diesem Histogramm gibt die dominante Richtung der Intensitätsänderung an, die dann als Orientierung des Keypoints zugewiesen wird. Sowohl die Gradientenrichtungen, die zeigen, wo sich die Intensität ändert, als auch die Gradientenbeträge, die angeben, wie stark diese Änderung ist, werden verwendet, um dieses Histogramm zu erstellen.
Wenn es andere Peaks gibt, die fast genauso stark sind, weist SIFT demselben Keypoint mehrere Orientierungen zu. Dies verhindert, dass wichtige Merkmale verloren gehen, wenn Objekte in ungewöhnlichen Winkeln erscheinen. Durch die Ausrichtung jedes Keypoints an seiner Orientierung stellt SIFT sicher, dass die im nächsten Schritt generierten Deskriptoren konsistent bleiben.
Mit anderen Worten: Selbst wenn zwei Bilder desselben Objekts unterschiedlich gedreht sind, stimmen die orientierungsangepassten Keypoints immer noch korrekt überein. Dieser Schritt verleiht SIFT seine starke Fähigkeit, mit Drehungen umzugehen, und macht es weitaus robuster als frühere Verfahren zur Merkmalserkennung.

Der letzte Schritt in SIFT ist die Erstellung einer Beschreibung jedes Keypoints, damit er in anderen Bildern erkannt werden kann.
SIFT erreicht dies, indem es einen kleinen quadratischen Bereich um jeden Keypoint herum betrachtet, etwa 16 mal 16 Pixel groß. Dieser Bereich wird zuerst an der Ausrichtung des Keypoints ausgerichtet, sodass die Drehung ihn nicht beeinflusst. Der Bereich wird dann in ein Gitter aus 4 mal 4 kleineren Quadraten unterteilt.
In jedem kleinen Quadrat misst SIFT, wie sich die Helligkeit in verschiedene Richtungen ändert. Diese Änderungen werden in einem sogenannten Histogramm gespeichert, das wie eine Tabelle aussieht, die zeigt, welche Richtungen am häufigsten vorkommen. Jedes Quadrat erhält sein eigenes Histogramm, und zusammen erzeugen die 16 Quadrate 16 Histogramme.
Schließlich werden diese Histogramme zu einer einzigen Liste von Zahlen zusammengefasst, insgesamt 128. Diese Liste wird als Feature-Vektor bezeichnet und fungiert wie ein Fingerabdruck für den Keypoint. Da er die einzigartige Textur und Struktur um den Punkt erfasst, ermöglicht dieser Fingerabdruck das Abgleichen desselben Keypoints über verschiedene Bilder hinweg, selbst wenn diese in der Größe verändert, gedreht oder unterschiedlich beleuchtet sind.

Nachdem wir nun ein besseres Verständnis davon haben, was SIFT ist und wie es funktioniert, wollen wir einige seiner realen Anwendungen in der Computer Vision untersuchen.
Eine der Hauptanwendungen von SIFT ist die Objekterkennung und -detektion. Dabei wird einem Computer beigebracht, Objekte in Bildern zu erkennen und zu lokalisieren, auch wenn die Objekte nicht immer gleich aussehen. Zum Beispiel kann SIFT ein Buch erkennen, unabhängig davon, ob es sich in der Nähe der Kamera, weiter entfernt oder in einem Winkel gedreht befindet.
Der Grund dafür ist, dass SIFT Keypoints extrahiert, die sehr distinktiv und stabil sind. Wenn diese Keypoints mit SIFT-Deskriptoren kombiniert werden, bilden sie SIFT-Features, die eine zuverlässige Möglichkeit bieten, dasselbe Objekt in verschiedenen Bildern zuzuordnen. Diese Features erfassen eindeutige Details des Objekts, die konsistent bleiben, und ermöglichen so ein zuverlässiges Feature-Matching über Bilder hinweg, selbst wenn sich die Größe, Position oder Ausrichtung des Objekts ändert.

Bevor Deep Learning populär wurde, war SIFT eine der zuverlässigsten Methoden zum Aufbau von Objekterkennungssystemen. Es wurde häufig in Forschung und Anwendungen eingesetzt, die den Abgleich von Objekten über große Bilddatensätze hinweg erforderten, auch wenn es oft erhebliche Rechenressourcen beanspruchte.
SIFT kann auch verwendet werden, um Panoramabilder zu erstellen, d. h. breite Fotos, die durch das Zusammenfügen mehrerer Bilder entstehen. Mit SIFT werden in den überlappenden Teilen verschiedener Bilder markante Keypoints gefunden und miteinander abgeglichen. Diese Übereinstimmungen wirken wie Anker und leiten den Stitching-Prozess, wie die Fotos ausgerichtet werden sollen.
Sobald die Übereinstimmung abgeschlossen ist, können Stitching-Algorithmen verwendet werden, um die korrekte Ausrichtung zu berechnen, oft unter Verwendung geometrischer Transformationen, die ein Bild auf ein anderes abbilden. Die Bilder werden dann so überblendet, dass die Nähte verschwinden. Das Endergebnis ist ein nahtloses Panorama, das wie ein einzelnes breites Foto aussieht, obwohl es aus mehreren Aufnahmen erstellt wurde.
Eine weitere interessante Anwendung von SIFT ist die 3D-Rekonstruktion, bei der mehrere 2D-Fotos, die aus verschiedenen Winkeln aufgenommen wurden, kombiniert werden, um ein dreidimensionales Modell zu erstellen. SIFT funktioniert, indem es die gleichen Punkte in diesen Bildern findet und zuordnet.
Sobald die Übereinstimmungen gefunden wurden, können die 3D-Positionen dieser Punkte mithilfe der Triangulation geschätzt werden, einer Methode, die die Tiefe aus verschiedenen Blickwinkeln berechnet. Dieser Prozess ist Teil von Structure from Motion (SfM), einer Technik, die mehrere überlappende Bilder verwendet, um die 3D-Form einer Szene zusammen mit den Positionen der Kameras, die die Fotos aufgenommen haben, zu schätzen.
Das Ergebnis ist in der Regel eine 3D-Punktwolke, eine Sammlung von Punkten im Raum, die das Objekt oder die Umgebung umreißt. SIFT war eines der ersten Werkzeuge, das Structure-from-Motion praktikabel machte. Während neuere Techniken schneller und heute üblicher sind, wird SIFT weiterhin eingesetzt, wenn Genauigkeit wichtiger ist als Geschwindigkeit.
SIFT wurde auch in der Robotik eingesetzt, insbesondere im visuellen SLAM (Simultaneous Localization and Mapping). SLAM ermöglicht es einem Roboter, gleichzeitig herauszufinden, wo er sich befindet, und eine Karte seiner Umgebung zu erstellen.
SIFT-Keypoints fungieren als zuverlässige Orientierungspunkte, die ein Roboter über verschiedene Frames hinweg erkennen kann, selbst wenn sich die Beleuchtung oder die Winkel ändern. Durch die Verfolgung dieser Orientierungspunkte kann der Roboter seine Position schätzen und seine Karte im laufenden Betrieb aktualisieren. Obwohl heute in der Robotik häufiger schnellere Feature-Detektoren eingesetzt werden, spielte SIFT eine wichtige Rolle in frühen SLAM-Systemen und ist nach wie vor entscheidend in Fällen, in denen Robustheit wichtiger ist als Geschwindigkeit.
Der SIFT-Algorithmus ist zwar in der Computer Vision weit verbreitet und als zuverlässige Methode bekannt, bringt aber auch einige Kompromisse mit sich. Deshalb ist es wichtig, die Vor- und Nachteile abzuwägen, bevor man entscheidet, ob er für ein Projekt geeignet ist. Im Folgenden werden wir seine wichtigsten Stärken und Einschränkungen erläutern.
Hier sind einige der Vorteile der Verwendung des SIFT-Algorithmus:
Hier sind einige der Nachteile der Verwendung des SIFT-Algorithmus:
Bei der Untersuchung der Vor- und Nachteile von SIFT werden Sie möglicherweise feststellen, dass viele seiner Einschränkungen den Weg für fortschrittlichere Techniken geebnet haben. Insbesondere haben sich Convolutional Neural Networks (CNNs) als eine leistungsstarke Alternative herauskristallisiert.
Ein CNN ist eine Art Deep-Learning-Modell, das von der Funktionsweise des menschlichen visuellen Systems inspiriert ist. Es verarbeitet ein Bild in Schichten, beginnend mit einfachen Mustern wie Kanten und Texturen, und baut schrittweise komplexere Formen und Objekte auf. Im Gegensatz zu den von SIFT handgefertigten Feature-Regeln lernen CNNs Feature-Repräsentationen direkt aus den Daten.
Dieses datengesteuerte Lernen bedeutet, dass CNNs SIFT bei Deskriptorvergleichs- und Klassifizierungsaufgaben übertreffen können. CNNs sind außerdem ausdrucksstärker und robuster und passen sich besser an die Variabilität und Komplexität visueller Daten an.
CNN-basierte Modelle haben beispielsweise bahnbrechende Ergebnisse auf ImageNet erzielt, einem umfangreichen Benchmark-Datensatz, der Millionen von beschrifteten Bildern aus Tausenden von Kategorien enthält. ImageNet wurde entwickelt, um zu testen, wie gut Algorithmen Objekte erkennen und klassifizieren können, und zeigt die Kluft zwischen älteren, featurebasierten Methoden und Deep Learning auf.
CNNs übertrafen SIFT schnell, indem sie weitaus reichhaltigere und flexiblere Darstellungen lernten, die es ihnen ermöglichten, Objekte unter wechselnden Lichtverhältnissen, aus verschiedenen Blickwinkeln und sogar bei teilweiser Verdeckung zu erkennen – Szenarien, in denen SIFT oft Schwierigkeiten hat.
Der Scale Invariant Feature Transform Algorithmus nimmt einen wichtigen Platz in der Geschichte der Computer Vision ein. Er bot eine zuverlässige Möglichkeit, Merkmale auch in sich verändernden Umgebungen zu erkennen, und beeinflusste viele der heute verwendeten Methoden.
Obwohl neuere Techniken schneller und effizienter sind, hat SIFT den Grundstein für sie gelegt. SIFT zeigt, wo die heutigen Fortschritte in der Computer Vision ihren Anfang genommen haben, und verdeutlicht, wie weit es die hochmodernen KI-Systeme gebracht haben.
Treten Sie unserer globalen Community bei und besuchen Sie unser GitHub-Repository, um mehr über Computer Vision zu erfahren. Entdecken Sie auf unseren Lösungsseiten Innovationen wie KI in der Landwirtschaft und Computer Vision im Einzelhandel. Informieren Sie sich über unsere Lizenzoptionen und beginnen Sie mit dem Aufbau Ihres eigenen Computer-Vision-Modells.