Erforschen Sie den SIFT-Algorithmus. Erfahren Sie, was SIFT ist und welche leistungsstarken Funktionen es für skaleninvariante Computer Vision bietet. Verbessern Sie Ihre Bildverarbeitung.

Erforschen Sie den SIFT-Algorithmus. Erfahren Sie, was SIFT ist und welche leistungsstarken Funktionen es für skaleninvariante Computer Vision bietet. Verbessern Sie Ihre Bildverarbeitung.
Heutzutage sind viele der von uns verwendeten intelligenten Geräte - von Telefonen und Kameras bis hin zu intelligenten Heimsystemen - mit KI-Lösungen ausgestattet, die Gesichter, Objekte und sogar ganze visuelle Szenen erkennen können. Diese Fähigkeit stammt aus der Computer Vision, einem Bereich der künstlichen Intelligenz, der es Maschinen ermöglicht, Bilder und Videos zu verstehen und zu interpretieren.
Wenn Sie z. B. ein Foto des Eiffelturms aus einem beliebigen Winkel oder einer beliebigen Entfernung aufnehmen, kann Ihr Gerät es in der Regel mithilfe von Computer Vision erkennen und in den richtigen Ordner in Ihrer Galerie einordnen. Das hört sich zwar einfach an, aber die Erkennung von Objekten ist nicht immer einfach. Bilder können je nach Größe, Winkel, Maßstab oder Beleuchtung sehr unterschiedlich aussehen, was es für Maschinen schwierig macht, sie einheitlich zu erkennen.
Um dieses Problem zu lösen, haben Forscher einen Computer-Vision-Algorithmus namens Scale Invariant Feature Transform, kurz SIFT, entwickelt. Dieser Algorithmus ermöglicht die Erkennung von Objekten unter verschiedenen Betrachtungsbedingungen. Der 1999 von David Lowe entwickelte SIFT-Algorithmus wurde entwickelt, um eindeutige Schlüsselpunkte in einem Bild zu finden und zu beschreiben, z. B. Ecken, Kanten oder Muster, die auch dann noch erkennbar sind, wenn das Bild in der Größe verändert, 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 Objekt in einem Foto zu identifizieren, und den Bildabgleich, bei dem Fotos durch die Suche nach überlappenden Bildmerkmalen abgeglichen werden.
In diesem Artikel werden wir uns mit SIFT beschäftigen und einen kurzen Überblick darüber geben, was es ist, wie es auf hohem Niveau funktioniert und warum es für die Entwicklung der Computer Vision wichtig ist. Legen wir los!
In einem Bild kann ein Objekt auf viele verschiedene Arten erscheinen. Eine Kaffeetasse kann zum Beispiel 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 nahe an der Kamera befindet, und kleiner, wenn sie weiter entfernt ist.
All diese Unterschiede machen es zu einer komplizierten Aufgabe, einem Computer beizubringen, ein Objekt zu erkennen. Diese Aufgabe, die als Objekterkennung bezeichnet wird, erfordert KI-Modelle, um Objekte genau zu identifizieren und zu lokalisieren, auch wenn sich ihre Größe, ihr Winkel oder die Lichtverhältnisse ändern.
Um dies zu ermöglichen, stützt sich die Computer Vision auf einen Prozess namens Merkmalsextraktion oder -erkennung. 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 verschiedene Winkel, Maßstäbe und Lichtverhältnisse hinweg erkennbar bleiben.
Dafür wurde insbesondere die Scale Invariant Feature Transform, kurz SIFT, entwickelt. SIFT ist ein Algorithmus zur Erkennung und Beschreibung von Merkmalen, 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 wichtigsten Eigenschaften ist die sogenannte Skaleninvarianz. Das bedeutet, dass SIFT verschiedene Teile eines Objekts erkennen kann, unabhängig davon, ob es groß ist und sich nahe an der Kamera befindet oder klein und weit entfernt. Selbst wenn das Objekt nicht vollständig sichtbar ist, kann der Algorithmus immer noch die gleichen Schlüsselpunkte erkennen.
Dabei kommt ein Konzept zum Einsatz, das als Skalenraumtheorie bezeichnet wird. Einfach 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 das Bild in Größe oder Schärfe verändert.
Ein Straßenschild, das aus einigen Metern Entfernung fotografiert wurde, sieht beispielsweise viel größer aus als das gleiche Schild, das aus der Ferne aufgenommen wurde, aber SIFT kann immer noch die gleichen charakteristischen Merkmale erkennen. Dadurch ist es möglich, die beiden Bilder korrekt zuzuordnen, auch wenn das Schild in sehr unterschiedlichen Maßstäben erscheint.
Objekte in Bildern können auch gedreht erscheinen, manchmal sogar auf dem Kopf stehend. SIFT behandelt dies durch eine Eigenschaft namens Rotationsinvarianz. Für jeden erkannten Schlüsselpunkt weist der Algorithmus eine konsistente Ausrichtung auf der Grundlage der lokalen Bildgradienten zu. Auf diese Weise kann dasselbe Objekt erkannt werden, egal wie es gedreht wird.
Man kann sich das so vorstellen, dass jeder Keypoint mit einem kleinen Pfeil markiert wird, der anzeigt, in welche Richtung er zeigt. Durch die Ausrichtung der Merkmale an diesen Orientierungen stellt SIFT sicher, dass die Keypoints auch dann korrekt übereinstimmen, wenn das Objekt gedreht wird. So kann z. B. eine Landmarke, die in einem Landschaftsfoto aufgenommen wurde, auch dann noch korrekt identifiziert werden, wenn ein weiteres Foto davon mit schräg gestellter Kamera aufgenommen wird.
Neben Größe und Drehung können sich Bilder auch auf andere Weise verändern, z. B. durch eine veränderte Beleuchtung. Die Beleuchtung eines Objekts kann von hell zu dunkel wechseln, der Kamerawinkel kann sich leicht verschieben, oder das Bild kann verschwommen oder verrauscht sein.
SIFT wurde entwickelt, um diese Art von Variationen zu bewältigen. Dazu konzentriert es sich auf markante und kontrastreiche Schlüsselpunkte, da diese Merkmale weniger von Beleuchtungsänderungen oder kleinen Verschiebungen des Blickwinkels beeinflusst werden. Daher 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 weichem Tageslicht, unter hellen künstlichen Scheinwerfern oder sogar bei leichter Bewegungsunschärfe mit einer Handkamera fotografiert wurde. Die Keypoints bleiben trotz dieser Unterschiede stabil genug für einen genauen Abgleich.
Als nächstes wollen wir uns ansehen, wie der SIFT-Algorithmus funktioniert. Dieser Prozess kann in vier Hauptschritte unterteilt werden: Erkennung von Schlüsselpunkten, Lokalisierung von Schlüsselpunkten, Zuweisung der Ausrichtung und Beschreibung von Schlüsselpunkten.
Der erste Schritt besteht darin, Schlüsselpunkte zu finden und zu erkennen. Dabei handelt es sich um markante Punkte im Bild, z. B. Ecken oder scharfe Veränderungen in der Textur, die bei der Verfolgung oder Erkennung eines Objekts helfen.
Um sicherzustellen, dass diese potenziellen Schlüsselpunkte bei jeder Größe erkannt werden können, erstellt SIFT einen so genannten Skalenraum. Dabei handelt es sich um eine Sammlung von Bildern, die durch allmähliche Unschärfe des Originalbildes mit einem Gauß-Filter, einer Glättungsmethode, und die Gruppierung der Ergebnisse in Schichten, die Oktaven genannt werden, erstellt wird. Jede Oktave enthält dasselbe Bild mit zunehmendem Unschärfegrad, während die nächste Oktave eine kleinere Version des Bildes darstellt.
Durch Subtraktion eines unscharfen Bildes von einem anderen berechnet SIFT die Gauß-Differenz (DoG), die Bereiche hervorhebt, in denen sich die Helligkeit stark ändert. Diese Bereiche werden als Keypoints ausgewählt, weil sie beim Vergrößern oder Verkleinern des Bildes konsistent bleiben.
Nicht alle in Frage kommenden Keypoints sind nützlich, da einige schwach oder instabil sein können. Um sie zu verfeinern, verwendet SIFT eine mathematische Methode, die sogenannte Taylor-Reihen-Erweiterung, die dabei hilft, die genaue Position eines Keypoints mit größerer Genauigkeit zu schätzen.
In diesem Schritt werden unzuverlässige Punkte entfernt. Keypoints mit geringem Kontrast, die mit ihrer Umgebung verschmelzen, werden verworfen, ebenso wie solche, die direkt auf Kanten liegen, da sie sich zu leicht verschieben können. Dieser Filterungsschritt lässt nur die stabilsten und markantesten Keypoints zurück.
Sobald stabile Keypoints identifiziert sind, macht SIFT sie drehungsinvariant, d. h. sie können auch dann noch zugeordnet werden, wenn das Bild seitlich oder auf den Kopf gedreht wird. Zu diesem Zweck analysiert SIFT, wie sich die Helligkeit um jeden Schlüsselpunkt herum ändert, was als Gradient bezeichnet wird. Gradienten zeigen sowohl die Richtung als auch die Stärke der Veränderung der Pixelintensität an, und zusammen erfassen sie die lokale Struktur um den Punkt.
Für jeden Keypoint betrachtet SIFT die Gradienten innerhalb einer umgebenden Region und gruppiert sie zu einem Histogramm von Ausrichtungen. Der höchste Peak in diesem Histogramm zeigt die vorherrschende Richtung der Intensitätsänderung an, die dann als Orientierung des Keypoints zugewiesen wird. Zur Erstellung dieses Histogramms werden sowohl die Gradientenrichtungen, die zeigen, wo sich die Intensität ändert, als auch die Gradientenstärken, die angeben, wie stark diese Änderung ist, verwendet
Wenn es andere Spitzenwerte gibt, die fast genauso stark sind, ordnet SIFT demselben Schlüsselpunkt mehrere Ausrichtungen zu. Dadurch wird verhindert, dass wichtige Merkmale verloren gehen, wenn Objekte in ungewöhnlichen Winkeln erscheinen. Indem SIFT jeden Keypoint an seiner Orientierung ausrichtet, stellt es sicher, dass die im nächsten Schritt erzeugten Deskriptoren konsistent bleiben.
Mit anderen Worten: Selbst wenn zwei Bilder desselben Objekts unterschiedlich gedreht werden, stimmen die orientierungsausgerichteten Keypoints immer noch korrekt überein. Dieser Schritt verleiht SIFT seine starke Fähigkeit, mit Drehungen umzugehen, und macht es weitaus robuster als frühere Methoden zur Merkmalserkennung.
Der letzte Schritt bei SIFT besteht darin, eine Beschreibung jedes Schlüsselpunkts zu erstellen, damit er in anderen Bildern erkannt werden kann.
SIFT erreicht dies, indem es einen kleinen quadratischen Bereich um jeden Schlüsselpunkt herum betrachtet, der etwa 16 mal 16 Pixel groß ist. Dieser Fleck wird zunächst an der Ausrichtung des Schlüsselpunkts ausgerichtet, damit eine Drehung ihn nicht beeinträchtigt. Das Feld wird dann in ein Raster von 4 mal 4 kleineren Quadraten unterteilt.
In jedem kleinen Quadrat misst SIFT, wie sich die Helligkeit in verschiedenen Richtungen verändert. Diese Änderungen werden in einem so genannten Histogramm gespeichert, das wie ein Diagramm zeigt, welche Richtungen am häufigsten vorkommen. Jedes Quadrat erhält sein eigenes Histogramm, und die 16 Quadrate zusammen ergeben 16 Histogramme.
Schließlich werden diese Histogramme zu einer einzigen Liste von Zahlen kombiniert, insgesamt 128. Diese Liste wird als Merkmalsvektor bezeichnet und wirkt wie ein Fingerabdruck für den Keypoint. Da er die einzigartige Textur und Struktur um den Punkt herum erfasst, ermöglicht dieser Fingerabdruck die Zuordnung desselben Keypoints zu verschiedenen Bildern, 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 -findung. Dabei geht es darum, einem Computer beizubringen, Objekte in Bildern zu erkennen und zu lokalisieren, auch wenn die Objekte nicht immer gleich aussehen. So kann SIFT beispielsweise ein Buch erkennen, unabhängig davon, ob es sich in der Nähe der Kamera befindet, weiter entfernt ist oder in einem Winkel gedreht wurde.
Der Grund dafür ist, dass SIFT Keypoints extrahiert, die sehr charakteristisch und stabil sind. Wenn diese Schlüsselpunkte mit SIFT-Deskriptoren gepaart werden, bilden sie SIFT-Merkmale, die eine zuverlässige Möglichkeit bieten, dasselbe Objekt in verschiedenen Bildern zuzuordnen. Diese Merkmale erfassen einzigartige Details des Objekts, die konsistent bleiben und einen zuverlässigen Merkmalsabgleich über Bilder hinweg ermöglichen, 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. Sie wurde in der Forschung und bei Anwendungen, die den Abgleich von Objekten in großen Bilddatensätzen erforderten, weithin eingesetzt, auch wenn sie oft erhebliche Rechenressourcen erforderte.
SIFT kann auch zur Erstellung von Panoramabildern verwendet werden, d. h. von großformatigen Fotos, die aus mehreren Bildern zusammengesetzt werden. Mit SIFT werden markante Schlüsselpunkte in den sich überlappenden Teilen verschiedener Bilder gefunden und dann miteinander verglichen. Diese Übereinstimmungen wirken wie Anker, die dem Zusammensetzungsprozess die Richtung vorgeben, in der die Fotos ausgerichtet werden sollen.
Sobald der Abgleich abgeschlossen ist, können Algorithmen zum Zusammenfügen verwendet werden, um die korrekte Ausrichtung zu berechnen, wobei häufig geometrische Transformationen verwendet werden, die ein Bild auf ein anderes abbilden. Die Bilder werden dann so zusammengefügt, dass die Nahtstellen verschwinden. Das Endergebnis ist ein nahtloses Panorama, das wie ein einziges breites Foto aussieht, obwohl es aus mehreren Aufnahmen entstanden ist.
Eine weitere interessante Anwendung von SIFT ist die 3D-Rekonstruktion, bei der mehrere aus unterschiedlichen Winkeln aufgenommene 2D-Fotos kombiniert werden, um ein dreidimensionales Modell zu erstellen. SIFT funktioniert, indem es die gleichen Punkte in diesen Bildern findet und abgleicht.
Sobald die Übereinstimmungen hergestellt sind, können die 3D-Positionen dieser Punkte mit Hilfe der Triangulation geschätzt werden, einer Methode zur Berechnung der Tiefe aus verschiedenen Blickwinkeln. Dieser Prozess ist Teil von Structure from Motion (SfM), einer Technik, die mehrere sich ü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 Tools, das die Strukturerfassung aus der Bewegung praktikabel machte. Obwohl neuere Techniken heute schneller und verbreiteter sind, wird SIFT weiterhin eingesetzt, wenn Genauigkeit wichtiger ist als Geschwindigkeit.
SIFT wurde auch in der Robotik eingesetzt, insbesondere für visuelles SLAM (Simultaneous Localization and Mapping). SLAM ermöglicht es einem Roboter, herauszufinden, wo er sich befindet, während er gleichzeitig eine Karte seiner Umgebung erstellt.
SIFT-Keypoints dienen als zuverlässige Orientierungspunkte, die ein Roboter über mehrere Bilder hinweg erkennen kann, selbst wenn sich die Beleuchtung oder der Winkel ändert. Durch die Verfolgung dieser Orientierungspunkte kann der Roboter seine Position abschätzen und seine Karte im laufenden Betrieb aktualisieren. Obwohl in der Robotik heute häufiger schnellere Merkmalsdetektoren verwendet werden, spielte SIFT in frühen SLAM-Systemen eine wichtige Rolle und ist immer noch der Schlüssel 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, aber er bringt auch einige Nachteile mit sich. Deshalb ist es wichtig, seine Vor- und Nachteile abzuwägen, bevor man entscheidet, ob er für ein Projekt geeignet ist. Im Folgenden gehen wir die wichtigsten Stärken und Grenzen der Methode durch.
Hier sind einige der Vorteile des SIFT-Algorithmus:
Hier sind einige der Nachteile des SIFT-Algorithmus:
Bei der Erkundung der Vor- und Nachteile von SIFT werden Sie feststellen, dass viele seiner Einschränkungen den Weg für fortschrittlichere Techniken geebnet haben. Insbesondere Faltungsneuronale Netze (Convolutional Neural Networks, CNNs) haben sich als leistungsstarke Alternative erwiesen.
Ein CNN ist eine Art von Deep-Learning-Modell, das sich an der Funktionsweise des menschlichen Sehsystems orientiert. Es verarbeitet ein Bild in Schichten, beginnend mit einfachen Mustern wie Kanten und Texturen, und baut schrittweise auf komplexere Formen und Objekte auf. Im Gegensatz zu den handgefertigten Merkmalsregeln von SIFT lernen CNNs Merkmalsrepräsentationen direkt aus Daten.
Dieses datengesteuerte Lernen bedeutet, dass CNNs SIFT beim Deskriptorabgleich und bei Klassifizierungsaufgaben übertreffen können. CNNs sind auch aussagekräftiger und robuster und passen sich besser an die Variabilität und Komplexität visueller Daten an.
So haben CNN-basierte Modelle beispielsweise bahnbrechende Ergebnisse im ImageNet erzielt, einem umfangreichen Benchmark-Datensatz mit Millionen beschrifteter Bilder in Tausenden von Kategorien. ImageNet wurde entwickelt, um zu testen, wie gut Algorithmen Objekte erkennen und klassifizieren können, und ist in der Lage, die Lücke zwischen älteren merkmalsbasierten Methoden und Deep Learning aufzuzeigen.
CNNs übertrafen SIFT schnell, indem sie weitaus reichhaltigere und flexiblere Darstellungen lernten, die es ihnen ermöglichten, Objekte bei wechselnden Lichtverhältnissen, aus verschiedenen Blickwinkeln und sogar bei teilweiser Verdeckung zu erkennen - Szenarien, bei denen SIFT oft Schwierigkeiten hat.
Der Algorithmus zur skaleninvarianten Merkmalstransformation nimmt einen wichtigen Platz in der Geschichte der Computer Vision ein. Er ermöglichte die zuverlässige Erkennung von Merkmalen auch in sich verändernden Umgebungen und beeinflusste viele der heute verwendeten Methoden.
Neuere Techniken sind zwar schneller und effizienter, aber SIFT hat den Grundstein für sie gelegt. SIFT zeigt, wo der heutige Fortschritt in der Computer Vision seinen Anfang nahm, und verdeutlicht, wie weit modernste KI-Systeme gekommen sind.
Werden Sie Teil unserer globalen Community und besuchen Sie unser GitHub-Repository, um mehr über Computer Vision zu erfahren. Erkunden Sie unsere Lösungsseiten und entdecken Sie Innovationen wie KI in der Landwirtschaft und Computer Vision im Einzelhandel. Informieren Sie sich über unsere Lizenzierungsoptionen und beginnen Sie mit dem Aufbau Ihres eigenen Computer-Vision-Modells.