Ölçekle Değişmeyen Özellik Dönüşümü (SIFT) nedir?

Abirami Vina

6 dakika okuma

9 Eylül 2025

SIFT algoritmasını keşfedin. SIFT'in ne olduğunu ve ölçekle değişmeyen bilgisayarla görme için güçlü özelliklerini öğrenin. Görüntü işlemenizi geliştirin.

Bugünlerde telefonlardan kameralara ve akıllı ev sistemlerine kadar kullandığımız pek çok akıllı cihaz yüzleri, nesneleri ve hatta tüm görsel sahneleri tanıyabilen yapay zeka çözümleriyle birlikte geliyor. Bu yetenek, makinelerin görüntüleri ve videoları anlamasını ve yorumlamasını sağlayan bir yapay zeka alanı olan bilgisayarla görmeden geliyor.

Örneğin, Eyfel Kulesi'nin herhangi bir açıdan veya mesafeden bir fotoğrafını çekerseniz, cihazınız genellikle bilgisayar görüşü kullanarak onu tanıyabilir ve galerinizdeki doğru klasörde düzenleyebilir. Bu kulağa basit gelse de nesneleri tanımak her zaman kolay değildir. Görüntüler boyutlarına, açılarına, ölçeklerine veya ışıklarına bağlı olarak çok farklı görünebilir, bu da makinelerin bunları tutarlı bir şekilde tanımlamasını zorlaştırır. 

Araştırmacılar bu sorunu çözmeye yardımcı olmak için Ölçekle Değişmeyen Özellik Dönüşümü veya SIFT adı verilen bir bilgisayarla görme algoritması geliştirdiler. Bu algoritma, farklı görüntüleme koşullarında nesnelerin tespit edilmesini mümkün kılmaktadır. David Lowe tarafından 1999 yılında yaratılan SIFT, bir görüntüdeki köşeler, kenarlar veya desenler gibi, görüntü yeniden boyutlandırıldığında, döndürüldüğünde veya farklı şekilde aydınlatıldığında bile tanınabilir kalan benzersiz anahtar noktaları bulmak ve tanımlamak için tasarlanmıştır.

Ultralytics YOLO11 gibi derin öğrenme odaklı bilgisayarla görme modelleri popüler hale gelmeden önce, SIFT bilgisayarla görmede yaygın olarak kullanılan bir teknikti. Amacın bir fotoğraftaki belirli bir öğeyi tanımlamak olduğu nesne tanıma ve örtüşen görüntü özelliklerini bularak fotoğrafların hizalandığı görüntü eşleştirme gibi görevler için standart bir yaklaşımdı.

Bu makalede, SIFT'in ne olduğunu, yüksek seviyede nasıl çalıştığını ve bilgisayarla görmenin evriminde neden önemli olduğunu hızlı bir genel bakışla keşfedeceğiz. Hadi başlayalım!

SIFT algoritması bilgisayarla görme için neden önemlidir?

Bir görüntüde, bir nesne birçok farklı şekilde görünebilir. Örneğin, bir kahve fincanı yukarıdan, yandan, parlak güneş ışığı altında veya sıcak bir lamba altında fotoğraflanabilir. Aynı kupa kameraya yakınken daha büyük, uzaktayken daha küçük de görünebilir.

Tüm bu farklılıklar, bir bilgisayara bir nesneyi tanımayı öğretmeyi karmaşık bir görev haline getirir. Nesne algılama olarak bilinen bu bilgisayarla görme görevi, Vision AI modellerinin boyutları, açıları veya aydınlatma koşulları değişse bile nesneleri doğru bir şekilde tanımlamasını ve konumlandırmasını gerektirir.

Bunu mümkün kılmak için bilgisayarla görme, özellik çıkarma veya algılama adı verilen bir sürece dayanır. Bir model, görüntünün tamamını bir kerede anlamaya çalışmak yerine keskin köşeler, benzersiz desenler veya açılar, ölçekler ve aydınlatma koşulları arasında tanınabilir kalan dokular gibi ayırt edici görüntü özelliklerini arar.

Özellikle, Ölçekle Değişmeyen Özellik Dönüşümü veya SIFT, bunu yapmak için tasarlanmıştır. SIFT, nasıl çekildiklerine bakılmaksızın görüntülerdeki nesneleri güvenilir bir şekilde tanımlayabilen bir özellik algılama ve tanımlama algoritmasıdır.

Ölçek değişmezliğinin sağlanması

SIFT algoritması, nesne tanıma için kullanışlı olmasını sağlayan birkaç önemli özelliğe sahiptir. Temel özelliklerden biri ölçek değişmezliği olarak adlandırılır. Bu, SIFT'in ister büyük ve kameraya yakın ister küçük ve uzakta olsun, bir nesnenin çeşitli kısımlarını tanıyabileceği anlamına gelir. Nesne tamamen görünür olmasa bile, algoritma yine de aynı kilit noktaları seçebilir.

Bunu ölçek-uzay teorisi adı verilen bir kavramı kullanarak yapar. Basitçe söylemek gerekirse, görüntü birden fazla versiyon oluşturmak için farklı seviyelerde bulanıklaştırılır. SIFT daha sonra, görüntünün boyutu veya keskinliği nasıl değişirse değişsin aynı kalan desenleri ve ayrıntıları bulmak için bu sürümlere bakar. 

Örneğin, birkaç metre uzaktan fotoğraflanan bir yol tabelası, uzaktan çekilen aynı tabeladan çok daha büyük görünecektir, ancak SIFT yine de aynı ayırt edici özellikleri tespit edebilir. Bu, tabela çok farklı ölçeklerde görünse bile iki görüntüyü doğru şekilde eşleştirmeyi mümkün kılar.

Dönme değişmezliğinin sağlanması

Görüntülerdeki nesneler de döndürülmüş, hatta bazen baş aşağı görünebilir. SIFT bu durumu rotasyon değişmezliği adı verilen bir özellik aracılığıyla ele alır. Algoritma, tespit ettiği her anahtar nokta için yerel görüntü gradyanlarına dayalı tutarlı bir yönlendirme atar. Bu şekilde, aynı nesne nasıl döndürülürse döndürülsün tanınabilir.

Bunu, her bir anahtar noktasını hangi yöne baktığını gösteren küçük bir okla işaretlemek gibi düşünebilirsiniz. Özellikleri bu yönlere göre hizalayan SIFT, nesne döndürüldüğünde bile anahtar noktaların doğru şekilde eşleşmesini sağlar. Örneğin, bir manzara fotoğrafında çekilen bir yer işareti, kamera bir açıyla eğilerek başka bir fotoğrafı çekilse bile doğru şekilde tanımlanabilir.

Diğer görüntü varyasyonlarına karşı esneklik

Boyut ve döndürmenin ötesinde, görüntüler aydınlatma değişiklikleri gibi başka şekillerde de değişebilir. Bir nesnenin üzerindeki ışık parlaktan loşa dönebilir, kamera açısı hafifçe değişebilir veya görüntü bulanık ya da gürültülü olabilir.

SIFT bu tür değişikliklerin üstesinden gelmek için tasarlanmıştır. Bunu, ayırt edici ve kontrastı yüksek olan kilit noktalara odaklanarak yapar, çünkü bu özellikler ışıktaki değişikliklerden veya bakış açısındaki küçük kaymalardan daha az etkilenir. Sonuç olarak SIFT, koşullar değiştiğinde genellikle başarısız olan basit kenar veya köşe algılama yöntemlerinden daha güvenilir olma eğilimindedir.

Şekil 1. (a) Yağmurlu bir görüntüden ve (b) buna karşılık gelen temiz giriş görüntüsünden çıkarılan SIFT anahtar noktaları.(Kaynak)

Galerideki bir tabloyu düşünün. Yumuşak gün ışığı altında da, parlak yapay spot ışıkları altında da, hatta elde taşınan bir kameranın hafif hareket bulanıklığıyla da fotoğraflansa yine de tanınabilir. Anahtar noktalar bu farklılıklara rağmen doğru eşleştirme için yeterince sabit kalır.

Ölçekle Değişmeyen Özellik Dönüşümü (SIFT) algoritması nasıl çalışır?

Şimdi, SIFT algoritmasının nasıl çalıştığına bir göz atalım. Bu süreç dört ana adıma ayrılabilir: anahtar nokta tespiti, anahtar nokta lokalizasyonu, oryantasyon ataması ve anahtar nokta açıklaması.

Adım 1: Ölçek uzayı ekstremum tespiti

İlk adım, bir nesneyi izlemeye veya tanımaya yardımcı olan köşeler veya dokudaki keskin değişiklikler gibi görüntüdeki ayırt edici noktalar olan kilit noktaları bulmak ve tespit etmektir.

Bu potansiyel anahtar noktaların her boyutta tanınabilmesini sağlamak için SIFT, ölçek uzayı adı verilen bir alan oluşturur. Bu, orijinal görüntünün bir yumuşatma tekniği olan Gauss filtresiyle kademeli olarak bulanıklaştırılması ve sonuçların oktav adı verilen katmanlar halinde gruplandırılmasıyla oluşturulan bir görüntü koleksiyonudur. Her oktav aynı görüntüyü artan bulanıklık seviyelerinde içerirken, bir sonraki oktav görüntünün daha küçük bir versiyonudur.

Bulanık bir görüntüyü diğerinden çıkararak SIFT, parlaklığın keskin bir şekilde değiştiği alanları vurgulayan Gaussların Farkını (DoG) hesaplar. Bu alanlar, görüntü yakınlaştırıldığında veya uzaklaştırıldığında tutarlı kaldıkları için aday anahtar noktalar olarak seçilir.

Şekil 2. DoG, farklı seviyelerde bulanıklaştırılmış görüntüleri çıkararak önemli yapıları vurgular.(Kaynak)

Adım 2: Anahtar nokta lokalizasyonu

Tüm aday anahtar noktalar kullanışlı değildir çünkü bazıları zayıf veya kararsız olabilir. SIFT, bunları iyileştirmek için Taylor Serisi Açılımı adı verilen ve bir anahtar noktanın tam konumunu daha yüksek doğrulukla tahmin etmeye yardımcı olan matematiksel bir yöntem kullanır.

Bu adım sırasında güvenilir olmayan noktalar kaldırılır. Düşük kontrastlı, çevrelerine karışan anahtar noktalar ve çok kolay kayabilecekleri için doğrudan kenarlarda bulunanlar atılır. Bu filtreleme adımı geride yalnızca en istikrarlı ve ayırt edici anahtar noktaları bırakır.

Adım 3: Oryantasyon ödevi

Kararlı anahtar noktalar belirlendikten sonra, SIFT bunları dönmeye karşı değişmez hale getirir, yani görüntü yanlara veya baş aşağı çevrilse bile eşleştirilebilirler. Bunu yapmak için SIFT, gradyan olarak bilinen her bir anahtar nokta etrafında parlaklığın nasıl değiştiğini analiz eder. Gradyanlar piksel yoğunluğundaki değişimin hem yönünü hem de gücünü gösterir ve birlikte noktanın etrafındaki yerel yapıyı yakalarlar.

Her bir anahtar nokta için SIFT, çevreleyen bir bölge içindeki gradyanları dikkate alır ve bunları bir yönelim histogramı halinde gruplandırır. Bu histogramdaki en yüksek tepe, yoğunluk değişiminin baskın yönünü gösterir ve bu yön daha sonra anahtar noktanın yönelimi olarak atanır. Hem yoğunluğun nerede değiştiğini gösteren gradyan yönleri hem de bu değişimin ne kadar güçlü olduğunu gösteren gradyan büyüklükleri bu histogramı oluşturmak için kullanılır

Neredeyse aynı güçte başka tepe noktaları varsa, SIFT aynı anahtar noktaya birden fazla yön atar. Bu, nesneler alışılmadık açılarda göründüğünde önemli özelliklerin kaybolmasını önler. SIFT, her bir anahtar noktayı yönelimi ile hizalayarak bir sonraki adımda oluşturulan tanımlayıcıların tutarlı kalmasını sağlar. 

Başka bir deyişle, aynı nesnenin iki görüntüsü farklı şekilde döndürülse bile, yöne göre hizalanmış anahtar noktalar yine de doğru şekilde eşleşecektir. Bu adım, SIFT'e rotasyonla başa çıkma konusunda güçlü bir yetenek kazandırır ve onu önceki özellik algılama yöntemlerinden çok daha sağlam hale getirir.

Şekil 3. SIFT algoritmasının 3. adımına daha yakından bir bakış(Kaynak)

Adım 4: Anahtar nokta tanımlayıcısı

SIFT'teki son adım, diğer görüntülerde tanınabilmesi için her bir anahtar noktanın bir tanımını oluşturmaktır. 

SIFT bunu, her bir anahtar noktanın etrafında yaklaşık 16 x 16 piksel boyutunda küçük bir kare yamaya bakarak gerçekleştirir. Bu yama önce anahtar noktanın yönüne göre hizalanır, böylece rotasyon onu etkilemez. Yama daha sonra 4'e 4 daha küçük karelerden oluşan bir ızgaraya bölünür.

SIFT, her küçük karede parlaklığın farklı yönlerde nasıl değiştiğini ölçer. Bu değişiklikler, hangi yönlerin en yaygın olduğunu gösteren bir grafik gibi histogram adı verilen bir şeyde saklanır. Her kare kendi histogramını alır ve 16 kare birlikte 16 histogram üretir.

Son olarak, bu histogramlar toplam 128 sayıdan oluşan tek bir sayı listesinde birleştirilir. Bu listeye özellik vektörü adı verilir ve anahtar nokta için bir parmak izi görevi görür. Noktanın etrafındaki benzersiz doku ve yapıyı yakaladığı için bu parmak izi, yeniden boyutlandırılmış, döndürülmüş veya farklı şekilde aydınlatılmış olsalar bile farklı görüntülerde aynı anahtar noktayı eşleştirmeyi mümkün kılar.

Şekil 4. SIFT'in nasıl çalıştığına genel bir bakış(Kaynak)

Bilgisayarla görmede SIFT'in temel uygulamaları

Artık SIFT'in ne olduğunu ve nasıl çalıştığını daha iyi anladığımıza göre, bilgisayarla görmedeki bazı gerçek dünya uygulamalarını inceleyelim.

Nesne tanıma ve algılama

SIFT'in ana kullanım alanlarından biri nesne tanıma ve tespitidir. Bu, bir bilgisayara nesneler her zaman aynı görünmese bile görüntülerdeki nesneleri tanımayı ve bulmayı öğretmeyi içerir. Örneğin, SIFT bir kitabı kameraya yakın, uzak ya da belli bir açıyla döndürülmüş olmasına bakmaksızın algılayabilir.

Bunun işe yaramasının nedeni, SIFT'in son derece ayırt edici ve kararlı anahtar noktaları çıkarmasıdır. Bu anahtar noktalar SIFT tanımlayıcıları ile eşleştirildiğinde, farklı görüntülerde aynı nesneyi eşleştirmek için güvenilir bir yol sağlayan SIFT özelliklerini oluştururlar. Bu özellikler, nesnenin tutarlı kalan benzersiz ayrıntılarını yakalar ve nesnenin boyutu, konumu veya yönü değiştiğinde bile görüntüler arasında güvenilir özellik eşleştirmesi sağlar.

Şekil 5. Orijinalinden farklı bir yönde çekilmiş yeni bir görüntüde bir kitap kapağını tanımak için SIFT kullanımı. Görüntü yazara aittir.

Derin öğrenme popüler hale gelmeden önce, SIFT nesne tanıma sistemleri oluşturmak için en güvenilir yöntemlerden biriydi. Genellikle önemli hesaplama kaynakları gerektirmesine rağmen, büyük görüntü veri kümelerinde nesnelerin eşleştirilmesini gerektiren araştırma ve uygulamalarda yaygın olarak kullanıldı.

Görüntü birleştirme ve panorama oluşturma

SIFT, birkaç resmin bir araya getirilmesiyle oluşturulan geniş fotoğraflar olan panoramik görüntüler oluşturmak için de kullanılabilir. SIFT kullanılarak, farklı görüntülerin üst üste binen kısımlarında ayırt edici anahtar noktalar bulunur ve ardından birbirleriyle eşleştirilir. Bu eşleşmeler çapa görevi görerek fotoğrafların nasıl hizalanması gerektiği konusunda birleştirme işlemine rehberlik eder.

Eşleştirme tamamlandıktan sonra, genellikle bir görüntüyü diğerine eşleyen geometrik dönüşümler kullanılarak doğru hizalamayı hesaplamak için dikiş algoritmaları kullanılabilir. Görüntüler daha sonra dikişler kaybolacak şekilde harmanlanır. Nihai sonuç, birden fazla çekimden oluşturulmuş olmasına rağmen tek bir geniş fotoğraf gibi görünen kesintisiz bir panoramadır.

3D rekonstrüksiyon ve robotik

SIFT'in bir başka ilginç uygulaması da, farklı açılardan çekilen birden fazla 2D fotoğrafın üç boyutlu bir model oluşturmak için birleştirildiği 3D yeniden yapılandırmadır. SIFT, bu görüntüler arasında aynı noktaları bulup eşleştirerek çalışır. 

Eşleşmeler yapıldıktan sonra, bu noktaların 3B konumları, farklı bakış açılarından derinliği hesaplayan bir yöntem olan üçgenleme kullanılarak tahmin edilebilir. Bu süreç, fotoğrafları çeken kameraların konumlarıyla birlikte bir sahnenin 3B şeklini tahmin etmek için üst üste binen birden fazla görüntüyü kullanan bir teknik olan hareketten yapı (SfM) yönteminin bir parçasıdır.

Sonuç genellikle 3B nokta bulutu, nesnenin veya ortamın ana hatlarını çizen uzaydaki noktaların bir koleksiyonudur. SIFT, hareketten yapı çıkarmayı pratik hale getiren ilk araçlardan biriydi. Günümüzde daha yeni teknikler daha hızlı ve daha yaygın olsa da, doğruluğun hızdan daha önemli olduğu durumlarda SIFT uygulanmaya devam etmektedir.

SIFT robotikte, özellikle de görsel SLAM'de (Eşzamanlı Konum Belirleme ve Haritalama) de kullanılmıştır. SLAM, bir robotun nerede olduğunu bulmasını ve aynı zamanda çevresinin bir haritasını oluşturmasını sağlar. 

SIFT anahtar noktaları, aydınlatma veya açılar değiştiğinde bile bir robotun kareler arasında tanıyabileceği güvenilir yer işaretleri olarak işlev görür. Robot bu yer işaretlerini takip ederek konumunu tahmin edebilir ve haritasını anında güncelleyebilir. Günümüzde robotikte daha hızlı özellik dedektörleri kullanılsa da SIFT, ilk SLAM sistemlerinde önemli bir rol oynamıştır ve sağlamlığın hızdan daha kritik olduğu durumlarda hala kilit öneme sahiptir.

SIFT'in avantajları ve dikkat edilmesi gereken hususlar

SIFT algoritması bilgisayarla görmede yaygın olarak kullanılmasına ve güvenilir bir yöntem olarak bilinmesine rağmen bazı dezavantajları da vardır. Bu nedenle, bir proje için uygun olup olmadığına karar vermeden önce artılarını ve eksilerini tartmak önemlidir. Şimdi, temel güçlü yönlerini ve sınırlamalarını gözden geçirelim.

SIFT'in temel avantajları

İşte SIFT algoritmasını kullanmanın bazı artıları:

  • Ölçek ve rotasyon değişmezliği: SIFT, nesneler farklı boyutlarda veya yönlerde göründüğünde nispeten sabit kalan ölçekle değişmeyen anahtar noktalar sağlar ve bu da önceki özellik algılayıcılara kıyasla önemli bir adımdır.‍
  • Aydınlatma ve bakış açısı değişikliklerine karşı orta düzeyde sağlamlık: SIFT parlaklık, kontrast veya bakış açısındaki küçük değişikliklerle başa çıkabilir, ancak daha aşırı koşullar altında daha az güvenilirdir.‍
  • Dağınık veya kısmen gizli sahnelerde çalışabilme yeteneği: SIFT birçok yerel anahtar noktayı tespit ettiğinden, bir kısmı kapalı olsa veya arka plan karmaşık olsa bile genellikle bir nesneyi tanımlayabilir.

Performans değerlendirmeleri ve alternatifler

İşte SIFT algoritmasını kullanmanın bazı dezavantajları:

  • Hesaplama açısından pahalı: SIFT'in çok adımlı süreci ve ayrıntılı tanımlayıcıları, onu modern özellik dedektörlerinden daha yavaş ve daha fazla kaynak gerektiren bir hale getirmektedir. Bunu iyileştirmek için araştırmacılar, özellikleri bulmak ve tanımlamak için daha hızlı hesaplamalar kullanan SURF (Speeded-Up Robust Features) algoritmasını geliştirdiler. SURF bazı durumlarda SIFT'ten daha az kesindir, ancak çok daha hızlı çalışır, bu da onu zamana duyarlı görevler için daha pratik hale getirir.‍
  • Gerçek zamanlı kullanım için ideal değildir: Hesaplama maliyeti nedeniyle SIFT, gerçek zamanlı izleme veya mobil robotik gibi hızın kritik olduğu uygulamalar söz konusu olduğundazorlanmaktadır‍.
  • Sınırlı çok yönlülük: Birçok durumda sağlam olsa da SIFT, daha yeni algoritmaların veya makine öğrenimi yöntemlerinin daha iyi performans gösterdiği aşırı ışık değişikliklerinde, büyük bakış açısı kaymalarında veya son derece dinamik sahnelerde daha az etkilidir.

SIFT'in artılarını ve eksilerini keşfederken, sınırlamalarının çoğunun daha gelişmiş tekniklerin önünü açtığını fark edebilirsiniz. Özellikle, konvolüsyonel sinir ağları (CNN'ler) güçlü bir alternatif olarak ortaya çıktı. 

CNN, insan görsel sisteminin nasıl çalıştığından esinlenen bir tür derin öğrenme modelidir. Bir görüntüyü, kenarlar ve dokular gibi basit desenlerden başlayarak ve kademeli olarak daha karmaşık şekillere ve nesnelere kadar oluşturarak katmanlar halinde işler. SIFT'in el yapımı özellik kurallarının aksine, CNN'ler özellik temsillerini doğrudan verilerden öğrenir. 

Bu veri odaklı öğrenme, CNN'lerin tanımlayıcı eşleştirme ve sınıflandırma görevlerinde SIFT'ten daha iyi performans gösterebileceği anlamına gelir. CNN'ler ayrıca daha etkileyici ve sağlamdır, görsel verilerin değişkenliğine ve karmaşıklığına daha iyi uyum sağlar. 

Örneğin, CNN tabanlı modeller, binlerce kategoride milyonlarca etiketli görüntü içeren devasa bir kıyaslama veri kümesi olan ImageNet'te çığır açan sonuçlar elde etmiştir. Algoritmaların nesneleri ne kadar iyi tanıyabildiğini ve sınıflandırabildiğini test etmek için tasarlanan ImageNet, eski özellik tabanlı yöntemler ile derin öğrenme arasındaki boşluğu vurgulayabilmektedir. 

CNN'ler, çok daha zengin ve esnek temsiller öğrenerek SIFT'i hızla geride bıraktı ve değişen ışık altında, farklı bakış açılarından ve hatta SIFT'in genellikle zorlandığı senaryolar olan kısmen gizlendiğinde bile nesneleri tanımalarına olanak sağladı.

Önemli çıkarımlar

Ölçeğe Göre Değişmeyen Özellik Dönüşümü algoritması bilgisayarla görme tarihinde önemli bir yere sahiptir. Değişen ortamlarda bile özellikleri tespit etmek için güvenilir bir yol sağlamış ve günümüzde kullanılan birçok yöntemi etkilemiştir. 

Daha yeni teknikler daha hızlı ve daha verimli olsa da, SIFT bunların temelini atmıştır. SIFT, günümüzde bilgisayarla görme alanındaki ilerlemenin nerede başladığını gösteriyor ve en ileri yapay zeka sistemlerinin ne kadar ilerlediğini vurguluyor.

Küresel topluluğumuza katılın ve bilgisayarla görme hakkında daha fazla bilgi edinmek için GitHub depomuzu kontrol edin. Tarımda yapay zeka ve perakendede bilgisayarla görme gibi yenilikleri keşfetmek için çözüm sayfalarımızı keşfedin. Lisanslama seçeneklerimize göz atın ve kendi bilgisayarla görme modelinizi oluşturmaya başlayın.

Yapay zekanın gelecekteki
adresini birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın
Panoya kopyalanan bağlantı