Ölçekten Bağımsız Özellik Dönüşümü (SIFT) nedir?
SIFT algoritmasını keşfet. SIFT'in ne olduğunu ve ölçekten bağımsız bilgisayarlı görü için sunduğu güçlü özellikleri öğren. Görüntü işleme çalışmalarını geliştir.

Bu makalede ele alınan kavramları görsel olarak adım adım incelemek için aşağıdaki videoyu izle.
Günümüzde telefonlardan ve kameralardan akıllı ev sistemlerine kadar kullandığımız birçok akıllı cihaz; yüzleri, nesneleri ve hatta tüm görsel sahneleri tanıyabilen yapay zekâ çözümleriyle birlikte geliyor. Bu yetenek, makinelerin görüntüleri ve videoları anlamasını ve yorumlamasını sağlayan bir yapay zekâ alanı olan bilgisayarlı görü sayesinde mümkün oluyor.
Örneğin Eyfel Kulesi'nin herhangi bir açıdan veya mesafeden fotoğrafını çektiğinde cihazın, bilgisayarlı görü kullanarak onu genellikle hâlâ tanıyabilmesi ve galerindeki doğru klasöre yerleştirebilmesi beklenir. 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 aydınlatmalarına bağlı olarak çok farklı görünebilir; bu da makinelerin onları tutarlı biçimde tanımlamasını zorlaştırır.
Araştırmacılar bu sorunun çözümüne yardımcı olmak için Ölçekten Bağımsız Özellik Dönüşümü veya SIFT adı verilen bir bilgisayarlı görü algoritması geliştirdi. Bu algoritma, nesnelerin farklı görüntüleme koşullarında algılanmasını mümkün kılar. David Lowe tarafından 1999'da oluşturulan SIFT, bir görüntüdeki köşeler, kenarlar veya görüntü yeniden boyutlandırıldığında, döndürüldüğünde ya da farklı şekilde aydınlatıldığında bile tanınabilirliğini koruyan desenler gibi benzersiz kilit noktaları bulup tanımlamak üzere tasarlandı.
Ultralytics YOLO11 gibi derin öğrenme tabanlı bilgisayarlı görü modelleri popüler hâle gelmeden önce SIFT, bilgisayarlı görüde yaygın olarak kullanılan bir teknikti. Belirli bir öğeyi fotoğrafta tanımlamayı amaçlayan nesne tanıma ve örtüşen görüntü özelliklerini bularak fotoğrafları hizalama işlemi olan görüntü eşleme gibi görevlerde standart bir yaklaşımdı.
Bu makalede SIFT'i; ne olduğuna, genel hatlarıyla nasıl çalıştığına ve bilgisayarlı görünün gelişiminde neden önemli olduğuna hızlı bir genel bakışla inceleyeceğiz. Hadi başlayalım!
SIFT algoritması bilgisayarlı görü için neden önemlidir?#
Bir görüntüdeki nesne birçok farklı şekilde görünebilir. Örneğin bir kahve kupası yukarıdan, yandan, parlak güneş ışığında veya sıcak tonlu bir lambanın altında fotoğraflanabilir. Aynı kupa kameraya yakın olduğunda daha büyük, uzakta olduğunda ise daha küçük görünebilir.
Tüm bu farklılıklar, bir bilgisayara nesne tanımayı öğretmeyi karmaşık bir görev hâline getirir. Nesne algılama olarak bilinen bu bilgisayarlı görü görevi, nesnelerin boyutu, açısı veya aydınlatma koşulları değişse bile Görsel Yapay Zekâ modellerinin nesneleri doğru biçimde tanımlayıp konumlandırmasını gerektirir.
Bunu mümkün kılmak için bilgisayarlı görü, özellik çıkarma veya algılama adı verilen bir sürece dayanır. Bir model tüm görüntüyü aynı anda anlamaya çalışmak yerine keskin köşeler, benzersiz desenler veya farklı açılar, ölçekler ve aydınlatma koşulları boyunca tanınabilirliğini koruyan dokular gibi ayırt edici görüntü özelliklerini arar.
Ölçekten Bağımsız Özellik Dönüşümü veya SIFT, özellikle bunu yapmak üzere tasarlanmıştır. SIFT, nasıl yakalanmış olursa olsun görüntülerdeki nesneleri güvenilir biçimde tanımlayabilen bir özellik algılama ve tanımlama algoritmasıdır.
Ölçek değişmezliğini sağlama#
SIFT algoritmasının nesne tanıma için yararlı olmasını sağlayan birkaç önemli özelliği vardır. Temel özelliklerden biri ölçek değişmezliği olarak adlandırılır. Bu, SIFT'in bir nesnenin kameraya yakın ve büyük göründüğü ya da uzakta ve küçük göründüğü durumlarda çeşitli bölümlerini tanıyabilmesi anlamına gelir. Nesne tamamen görünür olmasa bile algoritma aynı kilit noktaları seçmeye devam edebilir.
Bunu ölçek uzayı teorisi adı verilen bir kavramı kullanarak yapar. Basitçe söylemek gerekirse görüntü, birden fazla sürüm oluşturmak için farklı düzeylerde 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ümleri tarar.
Örneğin birkaç metre uzaklıktan fotoğraflanan bir yol levhası, uzaktan çekilen aynı levhadan çok daha büyük görünür; ancak SIFT yine de aynı ayırt edici özellikleri algılayabilir. Böylece levha çok farklı ölçeklerde görünse bile iki görüntüyü doğru şekilde eşlemek mümkün olur.
Dönme değişmezliğini sağlama#
Görüntülerdeki nesneler döndürülmüş, hatta bazen baş aşağı görünebilir. SIFT bunu dönme değişmezliği adı verilen bir özellikle ele alır. Algoritma, algıladığı her kilit noktaya yerel görüntü gradyanlarına dayalı tutarlı bir yönelim atar. Böylece aynı nesne nasıl döndürülmüş olursa olsun tanınabilir.
Bunu, her kilit noktayı baktığı yönü gösteren küçük bir okla işaretlemek gibi düşünebilirsin. SIFT, özellikleri bu yönelimlere hizalayarak nesne döndürülmüş olsa bile kilit noktaların doğru şekilde eşleşmesini sağlar. Örneğin yatay bir fotoğrafta yakalanan bir yapı, başka bir fotoğrafı kamera eğik tutulerek çekilmiş olsa bile doğru şekilde tanımlanabilir.
Diğer görüntü değişikliklerine dayanıklılık#
Boyut ve dönmenin ö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ı biraz değişebilir veya görüntü bulanık ya da gürültülü olabilir.
SIFT bu tür değişiklikleri ele alacak şekilde tasarlanmıştır. Bunu, ayırt edici ve yüksek kontrastlı kilit noktalara odaklanarak yapar; çünkü bu özellikler aydınlatma değişikliklerinden veya bakış açısındaki küçük kaymalardan daha az etkilenir. Sonuç olarak SIFT, koşullar değiştiğinde sıklıkla 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 kilit noktaları. (Kaynak)
Bir galerideki tabloyu düşün. Yumuşak gün ışığında, parlak yapay spot ışıkları altında veya elde tutulan bir kameranın neden olduğu hafif hareket bulanıklığıyla fotoğraflansa bile tanınabilir. Bu farklılıklara rağmen kilit noktalar doğru eşleme için yeterince kararlı kalır.
Ölçekten Bağımsız Özellik Dönüşümü (SIFT) algoritması nasıl çalışır?#
Şimdi SIFT algoritmasının nasıl çalıştığına bakalım. Bu süreç dört ana adıma ayrılabilir: kilit nokta algılama, kilit noktayı konumlandırma, yönelim atama ve kilit noktayı tanımlama.
Adım: Ölçek uzayı ekstremumlarının algılanması#
İlk adım, görüntüdeki köşeler veya dokudaki keskin değişiklikler gibi bir nesneyi izlemeye ya da tanımaya yardımcı olan ayırt edici noktalar olan kilit noktaları bulup algılamaktır.
Bu olası kilit noktaların her boyutta tanınabilmesini sağlamak için SIFT, ölçek uzayı adı verilen yapıyı oluşturur. Bu yapı, orijinal görüntünün bir Gauss filtresiyle (yumuşatma tekniği) kademeli olarak bulanıklaştırılması ve sonuçların oktav adı verilen katmanlar hâlinde gruplanmasıyla oluşturulan görüntü koleksiyonudur. Her oktav, görüntünün giderek artan bulanıklık düzeylerindeki aynı hâlini içerirken sonraki oktav görüntünün daha küçük bir sürümüdür.
SIFT, bir bulanık görüntüyü diğerinden çıkararak, parlaklığın keskin biçimde değiştiği alanları vurgulayan Gauss Farkı'nı (DoG) hesaplar. Bu alanlar, görüntü yakınlaştırılıp uzaklaştırıldığında tutarlılıklarını korudukları için aday kilit noktalar olarak seçilir.

Şekil 2. DoG, farklı düzeylerde bulanıklaştırılmış görüntüleri çıkararak temel yapıları vurgular. (Kaynak)
Adım: Kilit noktayı konumlandırma#
Bazı aday kilit noktalar zayıf veya kararsız olabileceğinden hepsi yararlı değildir. SIFT, bunları iyileştirmek için bir kilit noktanın kesin konumunu daha yüksek doğrulukla tahmin etmeye yardımcı olan Taylor Serisi Açılımı adı verilen matematiksel bir yöntem kullanır.
Bu adım sırasında güvenilmez noktalar kaldırılır. Çevreleriyle bütünleşen düşük kontrastlı kilit noktalar ve çok kolay kayabildikleri için doğrudan kenarlar üzerinde bulunanlar elenir. Bu filtreleme adımı geride yalnızca en kararlı ve ayırt edici kilit noktaları bırakır.
Adım: Yönelim atama#
Kararlı kilit noktalar belirlendikten sonra SIFT onları dönmeye karşı değişmez hâle getirir; yani görüntü yana veya baş aşağı çevrilse bile eşleştirilebilirler. Bunun için SIFT, gradyan olarak bilinen her kilit noktanın çevresindeki parlaklık değişimlerini 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 çevresindeki yerel yapıyı yakalar.
SIFT, her kilit nokta için çevresindeki bölgedeki gradyanları değerlendirir ve bunları yönelimlerden oluşan bir histogramda gruplar. Bu histogramdaki en yüksek tepe, yoğunluk değişiminin baskın yönünü gösterir ve bu yön kilit noktanın yönelimi olarak atanır. Histogramı oluşturmak için hem yoğunluğun nerede değiştiğini gösteren gradyan yönleri hem de değişimin ne kadar güçlü olduğunu belirten gradyan büyüklükleri kullanılır.
Neredeyse aynı güçte başka tepeler varsa SIFT aynı kilit noktaya birden fazla yönelim atar. Bu, nesneler alışılmadık açılarda göründüğünde önemli özelliklerin kaybolmasını önler. SIFT, her kilit noktayı yönelimiyle hizalayarak 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ülmüş olsa bile yönelimle hizalanmış kilit noktalar doğru şekilde eşleşir. SIFT'in dönmeyi ele alma konusundaki güçlü yeteneğini sağlayan ve onu önceki özellik algılama yöntemlerinden çok daha dayanıklı hâle getiren adım budur.

Şekil 3. SIFT algoritmasının 3. adımına daha yakından bakış (Kaynak)
Adım: Kilit nokta tanımlayıcısı#
SIFT'teki son adım, her kilit noktanın diğer görüntülerde tanınabilmesi için bir tanımını oluşturmaktır.
SIFT bunu, her kilit noktanın çevresindeki yaklaşık 16'ya 16 piksel boyutunda küçük kare bir parçaya bakarak gerçekleştirir. Bu parça, dönmenin onu etkilememesi için önce kilit noktanın yönelimine hizalanır. Ardından parça, 4'e 4 boyutunda 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 olan histogram adı verilen yapıda saklanır. Her kare kendi histogramına sahip olur ve 16 karenin tümü birlikte 16 histogram oluşturur.
Son olarak bu histogramlar, toplam 128 sayıdan oluşan tek bir listede birleştirilir. Bu listeye özellik vektörü denir ve kilit nokta için parmak izi görevi görür. Noktanın çevresindeki benzersiz doku ve yapıyı yakaladığı için bu parmak izi, görüntüler yeniden boyutlandırılsa, döndürülse veya farklı şekilde aydınlatılsa bile aynı kilit noktanın farklı görüntüler arasında eşleştirilmesini mümkün kılar.

Şekil 4. SIFT'in nasıl çalıştığına genel bakış (Kaynak)
SIFT'in bilgisayarlı görüdeki temel uygulamaları#
Artık SIFT'in ne olduğunu ve nasıl çalıştığını daha iyi anladığımıza göre, bilgisayarlı görüdeki gerçek dünya uygulamalarından bazılarını inceleyelim.
Nesne tanıma ve algılama#
SIFT'in temel kullanım alanlarından biri nesne tanıma ve algılamadır. Bu, nesneler her zaman aynı görünmese bile bilgisayara görüntülerdeki nesneleri tanımayı ve konumlandırmayı öğretmeyi içerir. Örneğin SIFT, bir kitabın kameraya yakın, daha uzakta veya eğik bir açıyla döndürülmüş olup olmadığına bakmaksızın onu algılayabilir.
Bunun işe yaramasının nedeni, SIFT'in son derece ayırt edici ve kararlı kilit noktalar çıkarmasıdır. Bu kilit noktalar SIFT tanımlayıcılarıyla eşleştirildiğinde, aynı nesneyi farklı görüntüler arasında eşlemek için güvenilir bir yol sağlayan SIFT özelliklerini oluşturur. Bu özellikler nesnenin tutarlı kalan benzersiz ayrıntılarını yakalar; böylece nesnenin boyutu, konumu veya yönelimi değişse bile görüntüler arasında güvenilir özellik eşleme yapılabilir.

Şekil 5. Orijinalden farklı bir yönelimde çekilmiş yeni bir görüntüde kitap kapağını tanımak için SIFT kullanımı. Görüntü yazara aittir.
Derin öğrenme popüler hâle gelmeden önce SIFT, nesne tanıma sistemleri oluşturmak için en güvenilir yöntemlerden biriydi. Önemli miktarda hesaplama kaynağı gerektirse de büyük görüntü veri kümeleri arasında nesne eşlemeyi gerektiren araştırmalarda ve uygulamalarda yaygın olarak kullanıldı.
Görüntü birleştirme ve panorama oluşturma#
SIFT, birkaç fotoğrafın birleştirilmesiyle oluşturulan geniş görüntüler olan panoramik görüntüler üretmek için de kullanılabilir. SIFT kullanılarak farklı görüntülerin örtüşen bölümlerindeki ayırt edici kilit noktalar bulunur ve ardından birbirleriyle eşleştirilir. Bu eşleşmeler, fotoğrafların nasıl hizalanması gerektiğini belirleyen birer sabitleme noktası görevi görür.
Eşleme tamamlandığında birleştirme algoritmaları, genellikle bir görüntüyü diğerine eşleyen geometrik dönüşümleri kullanarak doğru hizalamayı hesaplayabilir. Ardından dikiş izlerinin kaybolması için görüntüler harmanlanır. Ortaya, birden fazla çekimden oluşturulmuş olmasına rağmen tek ve geniş bir fotoğraf gibi görünen kesintisiz bir panorama çıkar.
3B yeniden yapılandırma ve robotik#
SIFT'in bir diğer ilgi çekici uygulaması, farklı açılardan çekilen birden fazla 2B fotoğrafın birleştirilerek bir üç boyutlu model oluşturulduğu 3B yeniden yapılandırmadır. SIFT, bu görüntülerdeki aynı noktaları bulup eşleştirerek çalışır.
Eşleşmeler oluşturulduktan sonra bu noktaların 3B konumları, farklı bakış açılarından derinliği hesaplayan üçgenleme yöntemi kullanılarak tahmin edilebilir. Bu süreç, bir sahnenin 3B şeklini ve fotoğrafları çeken kameraların konumlarını tahmin etmek için birden fazla örtüşen görüntüyü kullanan hareketten yapı (SfM) tekniğinin bir parçasıdır.
Sonuç genellikle nesnenin veya ortamın dış hatlarını gösteren, uzaydaki noktalardan oluşan bir koleksiyon olan 3B nokta bulutudur. SIFT, hareketten yapıyı pratik hâle getiren ilk araçlardan biriydi. Daha yeni teknikler günümüzde daha hızlı ve yaygın olsa da doğruluğun hızdan daha önemli olduğu durumlarda SIFT kullanılmaya devam eder.
SIFT, özellikle görsel SLAM'de (Eşzamanlı Konumlandırma ve Haritalama) robotik alanında da kullanılmıştır. SLAM, bir robotun aynı anda çevresinin haritasını oluştururken nerede olduğunu belirlemesini sağlar.
SIFT kilit noktaları, aydınlatma veya açılar değişse bile robotun kareler arasında tanıyabileceği güvenilir işaret noktaları görevi görür. Robot, bu işaret noktalarını izleyerek konumunu tahmin edebilir ve haritasını anlık olarak güncelleyebilir. Günümüzde robotikte daha hızlı özellik algılayıcıları daha sık kullanılsa da SIFT, ilk SLAM sistemlerinde önemli bir rol oynamıştır ve dayanıklılığın hızdan daha kritik olduğu durumlarda hâlâ önemini korur.
SIFT'in avantajları ve dikkate alınması gerekenler#
SIFT algoritması bilgisayarlı görüde yaygın olarak kullanılmış ve güvenilir bir yöntem olarak tanınmış olsa da bazı ödünleri beraberinde getirir. Bu nedenle bir proje için doğru seçim olup olmadığına karar vermeden önce avantajlarını ve dezavantajlarını değerlendirmek önemlidir. Şimdi temel güçlü ve zayıf yönlerini ele alalım.
SIFT'in temel avantajları#
SIFT algoritmasını kullanmanın bazı avantajları şunlardır:
- Ölçek ve dönme değişmezliği: SIFT, nesneler farklı boyutlarda veya yönelimlerde göründüğünde görece kararlı kalan ölçekten bağımsız kilit noktalar sağlar; bu da önceki özellik algılayıcılara kıyasla önemli bir ilerlemeyi temsil eder.
- Aydınlatma ve bakış açısı değişikliklerine orta düzeyde dayanıklılık: SIFT, parlaklık, kontrast veya bakış açısındaki küçük kaymalarla başa çıkabilir; ancak daha aşırı koşullarda daha az güvenilirdir.
- Dağınık veya kısmen gizlenmiş sahnelerde çalışabilme: SIFT çok sayıda yerel kilit nokta algıladığından nesnenin bir bölümü kapatılmış veya arka plan karmaşık olsa bile çoğu zaman nesneyi tanımlayabilir.
Performansla ilgili noktalar ve alternatifler#
SIFT algoritmasını kullanmanın bazı dezavantajları şunlardır:
- Hesaplama açısından maliyetli: SIFT'in çok adımlı süreci ve ayrıntılı tanımlayıcıları, onu modern özellik algılayıcılardan daha yavaş ve kaynak tüketimi daha yüksek hâle getirir. Araştırmacılar bunu iyileştirmek için özellikleri bulup tanımlamada daha hızlı hesaplamalar kullanan SURF (Hızlandırılmış Sağlam Özellikler) algoritmasını geliştirdi. SURF bazı durumlarda SIFT kadar hassas değildir; ancak çok daha hızlı çalışır ve bu da onu zamana duyarlı görevler için daha pratik hâle getirir.
- Gerçek zamanlı kullanım için ideal değil: Hesaplama maliyeti nedeniyle SIFT, gerçek zamanlı izleme veya mobil robotik gibi hızın kritik olduğu uygulamalarda zorlanır.
- Sınırlı çok yönlülük: Birçok durumda dayanıklı olsa da SIFT, yeni algoritmaların veya makine öğrenimi yöntemlerinin daha iyi performans gösterdiği aşırı aydınlatma değişikliklerinde, büyük bakış açısı farklılıklarında veya son derece dinamik sahnelerde daha az etkilidir.
SIFT'in avantajlarını ve dezavantajlarını incelerken sınırlamalarının birçoğunun daha gelişmiş tekniklerin önünü açtığını fark edebilirsin. Özellikle evrişimli sinir ağları (CNNs), güçlü bir alternatif olarak ortaya çıktı.
CNN, insan görsel sisteminin çalışma biçiminden esinlenen bir derin öğrenme modeli türüdür. Görüntüyü katmanlar hâlinde işler; kenarlar ve dokular gibi basit desenlerden başlayarak giderek daha karmaşık şekiller ve nesneler oluşturur. SIFT'in elle tasarlanmış özellik kurallarının aksine CNN'ler özellik temsillerini doğrudan verilerden öğrenir.
Veri odaklı bu öğrenme, CNN'lerin tanımlayıcı eşleme ve sınıflandırma görevlerinde SIFT'ten daha iyi performans göstermesini sağlar. CNN'ler ayrıca daha ifade gücü yüksek ve dayanıklıdır; görsel verilerin değişkenliğine ve karmaşıklığına daha iyi uyum sağlar.
Örneğin CNN tabanlı modeller, binlerce kategoriye yayılmış milyonlarca etiketli görüntü içeren büyük bir kıyaslama veri kümesi olan ImageNet üzerinde çığır açan sonuçlar elde etti. Algoritmaların nesneleri ne kadar iyi tanıyıp sınıflandırabildiğini test etmek üzere tasarlanan ImageNet, eski özellik tabanlı yöntemlerle derin öğrenme arasındaki farkı ortaya koyabilir.
CNN'ler çok daha zengin ve esnek temsiller öğrenerek SIFT'i hızla geride bıraktı; bu sayede değişen aydınlatma koşullarında, farklı bakış açılarından ve hatta kısmen gizlenmiş nesneleri tanıyabilir hâle geldiler. SIFT ise bu senaryolarda çoğu zaman zorlanır.
Önemli çıkarımlar#
Ölçekten Bağımsız Özellik Dönüşümü algoritması, bilgisayarlı görü tarihinde önemli bir yere sahiptir. Değişken ortamlarda bile özellikleri algılamak için güvenilir bir yol sundu ve günümüzde kullanılan yöntemlerin çoğunu etkiledi.
Daha yeni teknikler daha hızlı ve verimli olsa da SIFT bunların temelini attı. SIFT, bilgisayarlı görüdeki günümüz ilerlemelerinin nereden başladığını gösterir ve en gelişmiş yapay zekâ sistemlerinin ne kadar yol katettiğini ortaya koyar.
Bilgisayarlı görü hakkında daha fazla bilgi edinmek için küresel topluluğumuza katıl ve GitHub depomuzu incele. Tarımda yapay zekâ ve perakendede bilgisayarlı görü gibi yenilikleri keşfetmek için çözüm sayfalarımızı incele. Lisans seçeneklerimize göz at ve kendi bilgisayarlı görü modelini oluşturmaya başla.









