Bilgisayarla Görme

Yerel Özellik Tanımlayıcıları: SIFT, SURF ve ORB

Dr. Öğr. Üyesi Oğuz Emre Kural

2026

Öğrenim Kazanımları

Bu ders sonunda öğrenciler:

  • ilgi noktası, anahtar nokta, detector ve descriptor kavramlarını ayırt edebilecektir.
  • yerel özellik çıkarımının neden köşe tespitinden sonraki doğal adım olduğunu açıklayabilecektir.
  • SIFT yönteminin ölçek-uzayı, DoG, keypoint localization, orientation assignment ve descriptor üretimi adımlarını açıklayabilecektir.
  • SIFT, SURF ve ORB yöntemlerini açıklayabilecek ve hız, dayanıklılık, pratik kullanım açısından karşılaştırabilecektir.

Önceki Derste Neler Öğrendik?

Önceki derste şu soruya odaklanmıştık:

Görüntüde ilginç noktalar nerede?

Bu derste ise bir adım daha ileri gidiyoruz:

Bulduğumuz bu noktaları başka görüntülerde nasıl tekrar tanıyacağız?

Yani artık yalnızca köşe bulmak değil, bu noktaları ayırt edici biçimde tanımlamak istiyoruz.

Corner and Interest Point Detection

Amaç

Görüntüdeki tekrarlanabilir ve ayırt edici noktaları tespit ederek, bu noktalar üzerinden:

  • görüntüler arası eşleşme sağlamak
  • nesne tanıma, takip ve görüntü birleştirme yapmak
  • aynı sahnenin farklı görünümleri arasında ilişki kurmak

Neden Köşe ve İlgi Noktası?

  • Köşeler ve ilgi noktaları, bir nesnenin konumunu ve yapısını temsil eden karakteristik bölgelerdir.
  • Düz bölgelere göre daha ayırt edicidirler.
  • Kenarlara göre daha kararlı eşleşme üretirler.
  • Aynı sahnenin farklı görüntülerinde tekrar bulunabilirler.

İlgi Noktası Özellikleri

Özellik Açıklama
Tekrarlanabilirlik Farklı görüntülerde aynı noktaları tekrar bulabilme
Ayrımsal Güç Başka bölgelerle karışmaması
Konum Doğruluğu Noktanın yerini güvenilir belirleyebilme
Dönüşüm Kararlılığı Döndürme, ölçek, ışık değişimi altında çalışabilme

İlgi Noktası vs Anahtar Nokta

  • Interest Point
    Görüntüde ayırt edici olabilecek yerel yapı

  • Keypoint
    Uygulamada seçilmiş, çoğu zaman ölçek/yön bilgisi de atanmış ve descriptor ile temsil edilmeye hazır hale gelmiş nokta

Bu ayrım kaynaklar arasında her zaman aynı sertlikte yapılmasa da, ders içinde bu ayrımı kullanmak öğretici olur.

Neden Descriptor Gerekiyor?

Köşe veya ilgi noktası tek başına yalnızca bir konum bilgisidir.

Ama gerçek problem şudur:

  • Bu nokta başka görüntüde hangisi?
  • Aynı nesnenin farklı ölçekteki görüntüsünde yine bu noktayı bulabilir miyim?
  • Döndürülmüş veya aydınlatması değişmiş görüntülerde aynı yapıyı tanıyabilir miyim?

Bu nedenle noktanın çevresini sayısal olarak tanımlayan bir yapıya ihtiyaç duyarız.

Detector ve Descriptor

İki temel kavram vardır:

  • Detector
    • ilginç nokta nerede?
    • örnek: Harris, Shi-Tomasi, FAST
  • Descriptor
    • bu noktanın çevresi nasıl temsil edilmeli?
    • örnek: SIFT descriptor, BRIEF, ORB descriptor

Bazı yöntemler yalnızca detector değildir; hem detector hem descriptor içerir.

Descriptor İş Akışı

  1. Köşe / ilgi noktası tespiti
  2. Güvenilir noktaların seçimi
  3. Her nokta için descriptor çıkarımı
  4. Descriptor’lar arasında benzerlik ölçümü
  5. Eşleşmeler üzerinden daha büyük görevleri çözme. Örneğin:
    • panorama
    • nesne eşleme
    • görsel odometri
    • homografi

Ele Alacağımız Yöntemler

Yöntem Temel fikir
SIFT Ölçek ve dönme dayanımlı güçlü klasik yöntem
SURF SIFT benzeri ama daha hız odaklı yaklaşım
ORB FAST + BRIEF tabanlı pratik ve hızlı yöntem

Bu yöntemlerin ortak amacı şudur:

Bir özellik noktasını, ölçek, yön ve görüntü değişimlerine rağmen tekrar tanınabilir hale getirmek.

Genel Akış Şeması

Neden SIFT, SURF ve ORB Önemli?

Bu yöntemler uzun yıllar boyunca çok etkili olmuştur:

  • görüntü eşleme
  • nesne tanıma
  • panorama oluşturma
  • görüntü hizalama
  • 3B yeniden yapılandırma
  • robotik ve SLAM

Bugün derin öğrenme çok güçlü olsa da bu yöntemler hâlâ:

  • veri gerektirmez
  • düşük maliyetli sistemlerde güçlüdür

SIFT

Scale-Invariant Feature Transform

SIFT, görüntüdeki yerel özellik noktalarını bulmak ve bu noktaları ayırt edici biçimde tanımlamak için geliştirilmiş klasik bir yöntemdir.

Temel amaç, aynı yapıyı:

  • farklı ölçeklerde,
  • farklı yönelimlerde,
  • ve kısmen değişen görüntü koşullarında

yeniden tanıyabilmektir.

Neden SIFT?

  • Farklı boyutlarda çekilmiş görüntülerde aynı yapıyı bulabilir.
  • Döndürülmüş nesnelerde eşleme yapabilir.
  • Aydınlatma değişimlerine karşı belirli ölçüde kararlıdır.
  • Yalnızca köşe değil, karakteristik yerel yapıları da temsil edebilir.

SIFT’in Ana Aşamaları

SIFT genellikle 4 ana adım ile anlatılır:

  1. Scale-Space Extrema Detection
  2. Keypoint Localization
  3. Orientation Assignment
  4. Descriptor Oluşturma

Bu aşamaların her biri yöntemin dayanıklılığına doğrudan katkı yapar.

Ölçek Problemi Nedir?

  • Bir nesne kameraya yakınsa büyük, uzaktaysa küçük görünür.
  • Aynı yerel yapı iki görüntüde farklı büyüklükte olabilir. Eğer tek bir sabit pencere boyutu kullanırsak, aynı yapıyı farklı ölçeklerde kararlı biçimde bulmak zorlaşır.

Örnek: Ölçek Problemi Görsel

Ölçek-Uzayı Fikri

SIFT bu problemi çözmek için görüntüyü tek bir çözünürlükte incelemez.

Bunun yerine:

  • görüntüyü farklı bulanıklık seviyelerinde değerlendirir
  • yani ölçek boyunca değişen bir temsil kurar

Temel fikir şudur:

Aynı yapıyı farklı ölçeklerde test edelim ve en belirgin olduğu seviyeyi bulalım.

Gaussian Blur ile Ölçek Uzayı

Ölçek uzayında görüntü genellikle farklı \(\sigma\) değerlerinde Gaussian bulanıklaştırma ile temsil edilir:

\[ L(x, y, \sigma) = G(x, y, \sigma) * I(x, y) \]

Burada:

  • \(I(x,y)\): orijinal görüntü
  • \(G(x,y,\sigma)\): Gaussian çekirdeği
  • \(L(x,y,\sigma)\): ilgili ölçekte bulanıklaştırılmış görüntü

Sigma (\(\sigma\)) Nedir?

  • Gaussian bulanıklaştırmanın standart sapmasıdır.
  • Küçük \(\sigma\) → daha az bulanıklık, daha ince detaylar
  • Büyük \(\sigma\) → daha fazla bulanıklık, daha kaba yapı

SIFT bağlamında \(\sigma\) yalnızca blur parametresi değil, aynı zamanda ölçek parametresi gibi davranır.

LoG Nedir?

Laplacian of Gaussian (LoG):

  • önce Gaussian ile bulanıklaştırır
  • sonra ikinci türev / Laplacian uygular

Bu yapı: - blob benzeri yerel yapıları tespit etmede etkilidir - farklı \(\sigma\) değerlerinde farklı boyuttaki yapıları bulabilir

Ancak doğrudan uygulanması maliyetlidir.

Gaussian Piramidi

SIFT’te farklı bulanıklık seviyeleri ve çözünürlükler piramit mantığıyla organize edilir:

  • aynı çözünürlükte artan blur seviyeleri
  • sonra daha düşük çözünürlüklü görüntü
  • tekrar artan blur seviyeleri

Bu yapıya Gaussian pyramid denir.

Difference of Gaussians (DoG)

SIFT, LoG’yi doğrudan kullanmak yerine pratik bir yaklaşım kullanır:

\[ D(x, y, \sigma) = L(x, y, k\sigma) - L(x, y, \sigma) \]

Yani iki farklı blur seviyesindeki görüntü birbirinden çıkarılır.

Bu yapıya Difference of Gaussians (DoG) denir.

DoG Neden Kullanılır?

DoG şu nedenle önemlidir:

  • köşe, blob ve yerel yapılar belirgin hale gelir
  • ölçek boyunca dikkat çekici noktalar ortaya çıkar
  • LoG’e göre hesaplaması çok daha pratiktir

İpucu

Teorik Not: DoG, Laplacian of Gaussian için bir yaklaşıklaştırma sağlar. Bu nedenle SIFT, LoG’nin sağladığı ölçek seçiciliğini daha verimli biçimde elde etmeye çalışır.

DoG Görsel Sezgi

Aday Nokta Nasıl Bulunur?

  • DoG görüntüleri elde edildikten sonra, her piksel aynı görüntü düzlemindeki komşularıyla, bir alt ölçek düzeyiyle ve bir üst ölçek düzeyiyle karşılaştırılır.

  • Bir nokta tüm komşularından büyükse yerel maksimum, tüm komşularından küçükse yerel minimum olarak işaretlenir.

SIFT’te Yerel Ekstremum Arama

Bir aday nokta 3B komşulukta değerlendirilir:

  • x yönü
  • y yönü
  • ölçek yönü

Yani aranan şey yalnızca 2B uzayda dikkat çekici bir nokta değil, aynı zamanda ölçek boyunca da kararlı bir noktadır.

Görsel Sezgi: Ölçek Boyunca Ekstremum

Keypoint Localization

Potansiyel anahtar noktalar bulunduktan sonra hepsi korunmaz.

Bu aşamada amaç:

  • konumu daha hassas belirlemek
  • zayıf adayları elemek
  • kararsız noktaları temizlemek

Dolayısıyla bu adım, “aday üretimi”nden “güvenilir seçim”e geçiştir.

Düşük Kontrastlı Noktalar Neden Elenir?

Bazı adaylar:

  • gürültüden kaynaklanabilir
  • çok zayıf kontrasta sahip olabilir
  • kararsız olabilir

Bu yüzden SIFT düşük kontrastlı adayları eler.

Amaç:

  • daha güvenilir
  • tekrar bulunabilir
  • eşleme için daha yararlı noktalar bırakmaktır

Kenar Benzeri Noktalar Neden Sorunludur?

Bir nokta güçlü görünse bile bazen yalnızca bir kenar yapısının üzerinde olabilir.

Bu durumda:

  • bir yönde çok güçlü değişim vardır
  • diğer yönde zayıf değişim vardır

Bu tür noktalar eşleme için kararsız olabilir. Bu nedenle SIFT, Hessian benzeri analizle kenar-benzeri noktaları da eler.

Keypoint Localization Özeti

Bu adım sonunda elimizde:

  • düşük kontrastlı olmayan
  • yalnızca kenar üzerinde kalmayan
  • daha kararlı
  • daha güvenilir

anahtar noktalar kalır.

Orientation Assignment

Bir anahtar nokta bulunduğunda işlem bitmez.

Bir sonraki soru şudur:

Bu noktanın baskın yönü nedir?

Bu amaçla anahtar nokta çevresindeki gradyanlar incelenir.

Gradyan Büyüklüğü ve Yönü

Bir piksel için yaklaşık olarak:

\[ m(x, y) = \sqrt{(L(x+1,y)-L(x-1,y))^2 + (L(x,y+1)-L(x,y-1))^2} \]

\[ \theta(x, y) = \tan^{-1} \left( \frac{L(x,y+1)-L(x,y-1)}{L(x+1,y)-L(x-1,y)} \right) \]

Burada:

  • \(m(x,y)\): gradyan büyüklüğü
  • \(\theta(x,y)\): gradyan yönü

Yön Histogramı

Anahtar nokta çevresindeki gradyan yönleri histogramda toplanır.

  • en yüksek tepe baskın yön olarak atanır
  • bazı durumlarda güçlü ikinci tepe de kabul edilebilir

Bu sayede descriptor, anahtar noktanın kendi yönüne göre hizalanır.

Bu da dönmeye karşı dayanım kazandırır.

Orientation Assignment Görseli

SIFT Descriptor Nasıl Oluşur?

Descriptor üretirken anahtar nokta çevresinden bir pencere alınır.

Klasik yaklaşım:

  • 16x16 bölge alınır
  • bu bölge 4x4 alt hücreye ayrılır
  • her alt hücrede 8 yön kovası içeren histogram üretilir

Dolayısıyla toplam descriptor boyutu:

\[ 4 \times 4 \times 8 = 128 \]

olur.

Descriptor Oluşumu

128 Boyutlu Descriptor Ne Anlama Gelir?

Bu 128 sayı:

  • yerel kenar düzenini
  • yönsel yapıyı
  • doku örüntüsünü

kompakt ve ayırt edici biçimde temsil eder.

Yani descriptor, anahtar noktanın “parmak izi” gibi davranır.

SIFT Descriptor Sezgisi

SIFT Aşamaları: Kısa Özet

  1. Scale-Space Extrema Detection
    Farklı ölçeklerde aday noktaları bulur.

  2. Keypoint Localization
    Zayıf ve kararsız adayları eler.

  3. Orientation Assignment
    Anahtar noktaya baskın yön atar.

  4. Descriptor Oluşturma
    128 boyutlu ayırt edici vektör üretir.

SIFT’in Güçlü Yanları

  • ölçek değişimine dayanıklıdır
  • dönmeye dayanıklıdır
  • descriptor’ı güçlü ayırt edicilik sağlar
  • klasik eşleme görevlerinde çok etkilidir

Bu yüzden uzun yıllar boyunca en etkili klasik yöntemlerden biri olmuştur.

SIFT’in Sınırlılıkları

  • descriptor boyutu büyüktür
  • hesaplama maliyeti görece yüksektir
  • gerçek zamanlı uygulamalarda ağır kalabilir
  • çok büyük veri kümelerinde maliyet artabilir

Bu nedenle daha hızlı alternatifler geliştirilmiştir.

OpenCV’de SIFT

OpenCV’de temel kullanım:

sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(gray, None)

Burada:

  • keypoints: konum, ölçek ve yön bilgisi içeren anahtar noktalar
  • descriptors: her nokta için 128 boyutlu descriptor

Uygulama: SIFT ile Anahtar Noktalar

Kod Üzerine Düşünelim

Bu örnekte dikkat edilmesi gerekenler:

  • yalnızca konum değil, ölçek ve yön bilgisi de gösterilebilir
  • DRAW_RICH_KEYPOINTS her noktanın büyüklük ve yön bilgisini görünür kılar
  • descriptor’lar eşleme için ayrıca döndürülür

Eşleme Mantığına Geçiş

Anahtar nokta ve descriptor ürettikten sonra sıradaki soru şudur:

Hangi descriptor, diğer görüntüdeki hangi descriptor’a daha çok benziyor?

Bunu çözmek için descriptor’lar arasında mesafe ölçeriz.

Uygulama: İki Görüntü Arasında SIFT Eşleme

Eşleşmede Mesafe Neden Önemlidir?

  • SIFT descriptor’ları kayan noktalı vektörlerdir. Bu yüzden benzerlik için çoğu zaman L2 normu / Euclidean distance kullanılır.

  • Mesafe küçükse descriptor’lar birbirine daha benzer kabul edilir.

Lowe Ratio Test Nedir?

  • En yakın eşleşme her zaman güvenilir değildir.
  • Bu yüzden çoğu zaman en yakın komşu ile ikinci en yakın komşu bulunur. Eğer en yakın eşleşme, ikinciye göre belirgin biçimde daha iyiyse kabul edilir.
  • Bu fikir Lowe ratio test olarak bilinir.

Uygulama: Ratio Test ile Daha Sağlam Eşleme

Eşleme Sonrası Geometrik Doğrulama: RANSAC

Ratio test descriptor seviyesinde temizlik yapar. Ancak sahnede geometrik olarak imkânsız eşleşmeler de kalabilir.

Bu nedenle uygulamada sıkça şu adım eklenir:

  • RANSAC (Random Sample Consensus)
    • görüntüler arası dönüşümü / homografiyi tahmin eder
    • modele uymayan outlier eşleşmeleri eler

Bu konuyu görüntü hizalama ve homografi dersinde ayrıntılı işleyeceğiz.

SIFT İçin Küçük Deney Soruları

  • blur seviyesi değişse descriptor ne kadar etkilenir?
  • neden NORM_L2 kullanıyoruz?
  • neden her anahtar nokta iyi eşleşme üretmez?

SURF

Speeded-Up Robust Features

SURF, SIFT ile benzer probleme çözüm üretir; ancak daha hızlı olmak amacıyla farklı mühendislik fikirleri kullanır.

Temel düşünce:

SIFT benzeri dayanıklılığı korurken hesaplamayı hafifletmek.

SURF’ün Temel Amacı

SURF şunu hedefler:

  • SIFT’e benzer biçimde kararlı özellikler bulmak
  • ama detector ve descriptor tarafında daha hızlı çalışmak

Bu nedenle hem anahtar nokta tespiti hem de descriptor üretiminde hız odaklı tasarlanmıştır.

SURF’ün Ana Fikirleri

SURF genellikle şu bileşenlerle anlatılır:

  • Hessian matrisi tabanlı ilgi noktası tespiti
  • integral image kullanımı
  • kutu filtrelerle hızlı yaklaşık hesap
  • descriptor üretiminde Haar-wavelet benzeri yanıtlar

Hessian Matrisi Sezgisi

Bir noktadaki ikinci türev yapısını temsil eden Hessian matrisi kabaca şöyledir:

\[ H(x, y, \sigma) = \begin{bmatrix} L_{xx}(x, y, \sigma) & L_{xy}(x, y, \sigma) \\ L_{xy}(x, y, \sigma) & L_{yy}(x, y, \sigma) \end{bmatrix} \]

Burada ikinci türevler yerel yapının blob / köşe benzeri karakterini ortaya koymada kullanılır.

SURF Neden Hessian Kullanır?

Hessian determinantı:

  • yerel yapıdaki güçlü değişimleri işaretleyebilir
  • blob benzeri ilgi noktalarını yakalamada etkilidir

Bu nedenle SURF, SIFT’in DoG yaklaşımı yerine Hessian tabanlı bir detector tercih eder.

Integral Image Fikri

SURF’ün hız sırrının önemli parçalarından biri integral image kullanımıdır.

Integral image sayesinde bir dikdörtgen bölgenin toplam parlaklığı:

  • filtre boyutundan bağımsız biçimde
  • sabit zamanda

hesaplanabilir.

Bu da büyük filtrelerin maliyetini ciddi biçimde düşürür.

Örnek: Integral Image

Kutusal Filtre Yaklaşımı

SURF, Gaussian ikinci türevlerini doğrudan pahalı şekilde uygulamak yerine, bunları kutu filtrelerle yaklaşıklar.

Avantaj:

  • çok daha hızlı hesaplama

Dezavantaj:

  • bu tam hesap değil, yaklaşımdır

Yani SURF:

  • teorik saflığı biraz gevşetir
  • pratik hız kazanır

SURF Descriptor Mantığı

SURF descriptor üretirken Haar-wavelet benzeri yanıtları kullanır.

Amaç:

  • yatay/dikey yoğunluk değişimlerini özetlemek
  • descriptor’ı daha kompakt ve hızlı tutmak

Bu yönüyle SURF, SIFT’e göre daha hız odaklı bir tasarım sunar.

SURF Descriptor

SURF’ün Güçlü Yanları

  • SIFT’e göre hız odaklıdır
  • ölçek ve dönme dayanımı sunar
  • descriptor üretimi pratikte güçlü olabilir
  • klasik CV literatüründe önemli bir adımdır

SURF’ün Sınırlılıkları

  • patent/lisans geçmişi nedeniyle erişimi her zaman sorunsuz olmamıştır
  • her OpenCV kurulumunda hazır gelmeyebilir
  • günümüzde ORB gibi daha açık ve pratik yöntemler daha sık tercih edilir

Bu nedenle SURF, kavramsal olarak çok önemli olsa da uygulamada her zaman ilk tercih olmayabilir.

OpenCV’de SURF Notu

Bazı OpenCV kurulumlarında SURF şu modülde bulunur:

surf = cv2.xfeatures2d.SURF_create()

Ancak: - bu her zaman etkin olmayabilir - opencv-contrib-python gerekebilir - bazı ortamlarda lisans/paketleme nedeniyle hazır gelmeyebilir

Bu nedenle SURF’ü derste teorik olarak güçlü anlatmak, uygulamada ise not düşmek daha uygundur.

SURF İçin Temel Kullanım Örneği

gray = cv2.imread("image.jpg", cv2.IMREAD_GRAYSCALE)

surf = cv2.xfeatures2d.SURF_create(hessianThreshold=400)
keypoints, descriptors = surf.detectAndCompute(gray, None)

Burada:

  • hessianThreshold: kabul edilecek aday gücünü etkiler
  • eşik yükseldikçe daha az ama daha güçlü nokta bulunur

SURF Nasıl Düşünülmeli?

SURF’ü öğretirken en doğru çerçeve şu olur:

  • SIFT ile aynı problemi çözer
  • ama çözüm yolunu hız odaklı yeniden kurar

Bu yüzden SURF, “SIFT’in yerine geçmiş yöntem” gibi değil, aynı probleme verilmiş farklı bir mühendislik cevabı gibi düşünülmelidir.

ORB

Oriented FAST and Rotated BRIEF

ORB, detector tarafında FAST’i, descriptor tarafında BRIEF’i kullanarak hızlı ve pratik bir çözüm sunar.

Temel hedef:

  • hızlı olmak
  • açık ve erişilebilir olmak
  • gerçek zamanlı sistemlerde işe yaramak

ORB Neden Geliştirildi?

ORB’nin geliştirilme motivasyonu şudur:

  • SIFT/SURF kadar ağır olmasın
  • lisans açısından rahat kullanılabilsin
  • descriptor üretimi hızlı olsun
  • gömülü ve gerçek zamanlı sistemlerde çalışabilsin

Bu nedenle ORB, klasik yöntemler içinde çok popüler hale gelmiştir.

ORB’nin Detector Ayağı: FAST

ORB, ilgi noktası bulurken FAST tabanlı yaklaşım kullanır.

Hatırlayalım:

  • merkez piksel seçilir
  • etrafındaki 16 piksellik çember incelenir
  • yeterince fazla sayıda ardışık komşu piksel belirgin biçimde daha parlak veya daha karanlıksa nokta aday kabul edilir

Bu detector son derece hızlıdır.

FAST Tek Başına Neden Yeterli Değil?

FAST çok hızlıdır; ancak:

  • yön bilgisi güçlü değildir
  • descriptor üretmez
  • ham haliyle eşleme için eksiktir

ORB burada devreye girerek FAST’i daha kullanılabilir hale getirir.

ORB’de Yön Bilgisi

ORB, anahtar nokta çevresinin momentlerini kullanarak baskın yön tahmini yapar.

Yani noktaya bir yön atanır. Bu sayede descriptor testleri bu yöne göre döndürülebilir.

Bu, dönmeye karşı daha kararlı bir yapı sağlar.

BRIEF Nedir?

BRIEF, çok hızlı bir descriptor yaklaşımıdır.

Temel fikir:

  • anahtar nokta çevresinde piksel çiftleri seç
  • hangi piksel daha parlak?
  • bu karşılaştırmaları bit dizisi olarak yaz

Örneğin:

  • A > B ise 1
  • değilse 0

Böylece binary descriptor oluşur.

BRIEF Neden Hızlıdır?

Çünkü:

  • histogram tabanlı ağır hesap yapmaz
  • yoğun gradyan birikimleri kurmaz
  • basit parlaklık karşılaştırmaları yapar

Bu nedenle descriptor üretimi çok hızlıdır.

ORB, BRIEF’i Nasıl Geliştirir?

BRIEF ham haliyle dönmeye karşı zayıftır.

ORB bunu iyileştirmek için:

  • yön tahmini yapar
  • descriptor test desenini bu yöne göre döndürür

Bu yüzden ORB descriptor’ı çoğu zaman Rotated BRIEF olarak açıklanır.

ORB’nin Güçlü Yanları

  • çok hızlıdır
  • binary descriptor kullanır
  • gerçek zamanlı uygulamalara uygundur
  • açık ve pratik bir çözümdür
  • OpenCV’de erişimi kolaydır

ORB’nin Sınırlılıkları

  • çok zor eşleme koşullarında SIFT kadar ayırt edici olmayabilir
  • aşırı görünüş değişimlerinde performansı düşebilir
  • descriptor kompakt olduğu için bazı durumlarda yanlış eşleşme artabilir

Yani ORB çoğu zaman hız–başarım dengesi için seçilir.

OpenCV’de ORB

orb = cv2.ORB_create()
keypoints, descriptors = orb.detectAndCompute(gray, None)

Burada descriptor’lar binary olduğu için eşlemede çoğu zaman:

  • NORM_HAMMING

kullanılır.

Uygulama: ORB ile Anahtar Nokta Çıkarımı

Uygulama: ORB ile Eşleme

Neden ORB’de Hamming Mesafesi Kullanılır?

ORB descriptor’ı binary yapıdadır.

Yani descriptor: - 0 ve 1’lerden oluşan bit dizisidir

Bu yüzden benzerlik için çoğu zaman:

  • Hamming distance

kullanılır.

Hamming distance: - iki bit dizisinde kaç pozisyonun farklı olduğunu ölçer

SIFT ve ORB Arasında Eşleme Farkı

  • SIFT
    • descriptor: floating-point vektör
    • mesafe: genellikle L2
  • ORB
    • descriptor: binary vektör
    • mesafe: genellikle Hamming

Bu fark doğrudan kod düzeyinde önemlidir.

Karşılaştırma: Aynı Görüntüde SIFT ve ORB

Bu Karşılaştırmada Ne Gözlemleyebiliriz?

Aşağıdaki noktalara bakın:

  • hangi yöntem daha fazla anahtar nokta üretiyor?
  • hangi yöntem ölçek/yön bilgisini daha görünür taşıyor?
  • hangi yöntem daha seçici?
  • hız ve kararlılık arasında nasıl bir denge görünüyor?

SIFT, SURF ve ORB’nin Karşılaştırılması

Özellik SIFT SURF ORB
Temel amaç güçlü ve dayanıklı descriptor SIFT benzeri ama daha hızlı hızlı ve pratik detector+descriptor
Detector yapısı DoG tabanlı Hessian tabanlı FAST tabanlı
Descriptor türü floating-point floating-point binary
Ölçek dayanımı güçlü güçlü orta
Dönme dayanımı güçlü güçlü iyi
Hız görece düşük SIFT’ten hızlı yüksek
Eşleme metriği L2 L2 Hamming

Hangi Yöntem Ne Zaman?

  • SIFT
    • doğruluk ve ayırt edicilik ön plandaysa
    • hız ikinci plandaysa
  • SURF
    • teorik olarak hızlandırılmış SIFT benzeri çözüm isteniyorsa
    • ancak erişim/kütüphane durumu kontrol edilmelidir
  • ORB
    • hız önemliyse
    • gerçek zamanlı sistem hedefleniyorsa
    • açık, pratik ve hafif çözüm isteniyorsa

Klasik mi Derin Özellikler mi?

Derin öğrenme tabanlı yöntemler birçok problemi güçlü biçimde çözse de klasik yöntemler hâlâ önemlidir:

  • Eğitim verisi gerektirmez
  • Düşük donanımda verimlidir
  • Yorumlanabilirdir
  • Matematiksel olarak daha şeffaftır
  • Küçük ve orta ölçekli görevlerde hâlâ çok işe yarar

Günümüzde hibrit yaklaşımlar da görülebilir.

SIFT, SURF ve ORB Birlikte Nasıl Düşünülmeli?

Bu yöntemleri yalnızca rakipler olarak görmek yerine tasarım tercihleri olarak düşünmek daha doğrudur.

  • SIFT → güçlü klasik çözüm
  • SURF → hızlandırılmış klasik çözüm
  • ORB → pratik ve modern mühendislik çözümü

Yöntem seçimi çoğu zaman şu etkenlere bağlıdır:

  • problem tipi
  • hız beklentisi
  • donanım kısıtı
  • lisans / erişim durumu
  • descriptor kalitesi ihtiyacı

Küçük Uygulama Senaryoları

Aşağıdaki görevlerde hangi yöntem daha uygun olabilir?

  • mobil robotta gerçek zamanlı eşleme
  • yüksek doğruluklu nesne eşleme
  • lisans sorunsuz, hafif sistem tasarımı
  • büyük çözünürlüklü görüntüde ayrıntılı descriptor ihtiyacı

Sınıf İçi Tartışma Soruları

  • SIFT neden hâlâ öğretimde çok önemlidir?
  • ORB neden birçok pratik sistemde tercih edilir?
  • binary descriptor ile floating-point descriptor arasında nasıl bir fark vardır?
  • detector ve descriptor ayrımı sistem tasarımını nasıl etkiler?

Kod Üzerinden Tekrar

Bu dersin kod tarafında üç önemli ayrımı gördük:

  1. detectAndCompute
  2. eşleme metriği farkı
    • SIFT → NORM_L2
    • ORB → NORM_HAMMING
  3. eşleşme kalitesi
    • crossCheck
    • ratio test
    • mesafe sıralaması

Bu üç nokta pratikte çok kritiktir.

Sonraki Adım Ne Olabilir?

Bu dersten sonra doğal devam konuları şunlar olabilir:

  • homography ve nesne yerelleştirme
  • panorama stitching
  • RANSAC ile yanlış eşleşmeleri eleme
  • bag of visual words
  • SLAM ve görsel odometri
  • klasik descriptor’lardan derin özelliklere geçiş

Bölüm Özeti

Bu derste:

  • ilgi noktası ve descriptor ilişkisini kurduk
  • SIFT’in ölçek-uzayı ve descriptor mantığını gördük
  • SURF’ün hız odaklı yaklaşımını inceledik
  • ORB’nin FAST + BRIEF tabanlı yapısını öğrendik
  • OpenCV ile anahtar nokta çıkarımı ve eşleme örnekleri yaptık

En kritik fikir şudur:

Özellik noktası bulmak yalnızca ilk adımdır; asıl güç, bu noktaları kararlı ve ayırt edici biçimde tanımlayabilmektir.

Kapanış

SIFT, SURF ve ORB; klasik bilgisayarlı görüde yerel özellik çıkarımının üç önemli yaklaşımıdır.

Bu yöntemler bize şunu öğretir:

  • görüntüde neresi önemlidir?
  • bu önem nasıl sayısal temsil edilir?
  • bu temsil başka görüntülerde nasıl tekrar bulunur?

Bu üç soru, bilgisayarlı görmenin çok büyük bir bölümünün temelini oluşturur.