Image Registration
Uydu görüntülerinde değişim tespiti, tıbbi görüntüleme ve bilgisayarlı görü için görüntü kaydının özellik veya yoğunluk eşleştirme, geometrik dönüşümler ve doğrulama kullanarak görüntüleri nasıl hizaladığını öğren.
Görüntü kaydı, bir sahnedeki aynı konumun karşılık gelen koordinatlara düşmesi için iki veya daha fazla görüntüyü hizalama işlemidir. Haziran ayında çekilmiş bir uydu görüntüsünü ocak ayında çekilmiş bir görüntünün üzerine yerleştirdiğini düşün: kamera açısı veya konumu değiştiyse, yol aslında hareket etmediği hâlde yer değiştirmiş gibi görünebilir. Kayıt, bir bilgisayarlı görü sistemi görüntüleri karşılaştırmadan veya görüntülerdeki bilgileri birleştirmeden önce bu geometrik uyumsuzluğu düzeltir.
Görüntü Kaydı Nasıl Çalışır#
Bir kayıt iş akışında, hedef koordinat sistemini tanımlayan bir görüntü sabit görüntü, bu görüntüye hizalanması gereken diğer görüntü ise hareketli görüntü olarak belirlenir. Sistem, uzamsal bir dönüşüm tahmin eder ve ardından hareketli görüntüyü yeniden örnekler; yani yeni konumlarındaki piksel değerlerini hesaplar. Sonuç, üst üste bindirilmiş şekilde incelenebilir: sabit yapılar hizalanmalı, gerçek değişiklikler ise görünür kalmalıdır. ImageJ kayıt genel bakışı, karşılık gelen noktalar, dönüşümler ve hizalanmış görüntüler arasındaki ilişkiyi gösterir.
Dönüşümü tahmin etmenin iki yaygın yolu vardır. Özellik tabanlı kayıt, her iki görüntüde de köşeler gibi tanınabilir konumları belirler ve aynı yeri temsil eden noktaları eşleştirir. Ardından bu eşleşmelere uygun bir dönüşüm hesaplar ve mümkün olduğunda eşleşmeyen noktaları eler; OpenCV’nin özellik eşleştirme ve homografi kılavuzu bunun nasıl çalıştığını gösterir. Yoğunluk tabanlı kayıt ise görüntülerin piksel değerleri arasındaki benzerlik ölçüsünü iyileştirmek için dönüşümü ayarlar. Optimizasyon algoritması adı verilen bu ölçü ve arama yöntemi, yoğunluk tabanlı kayıt iş akışının temel unsurlarıdır.
Dönüşüm Seçimi#
Uygun dönüşüm, görüntülerin neden farklı olduğuna bağlıdır. Öteleme, basit bir yatay veya dikey kaymayı giderir. Rijit dönüşüm, mesafeleri korurken dönmeye de izin verir. Afin kayıt ayrıca ölçekleme ve eğriliği de giderir, ancak görüntünün tamamına tek bir dönüşüm uygular. Projektif dönüşüm ya da homografi, eşleştirilen sahne yaklaşık olarak düzlemsel olduğunda perspektif farklılıklarını hesaba katabilir. MathWorks’ün açıkladığı geometrik dönüşüm türleri, aralarındaki farkları görsel olarak anlamana yardımcı olur.
Bazı sahnelerde deforme olabilir kayıt gerekir; bu yöntem, örneğin taramalar arasında anatominin şekli değiştiğinde, farklı bölgelerin farklı miktarlarda hareket etmesine izin verir. Bu esneklik yerel hizalamayı iyileştirebilir, ancak gerçek bir farkı akla yatkın görünmeyen bir deformasyon gizleyebilir. Bu nedenle SimpleITK’nin kayıt çerçevesi gibi tıbbi görüntü araçları dönüşümü, benzerlik ölçüsünü, optimizasyon algoritmasını ve enterpolasyon yöntemini açıkça belirtir.
Kayıt ve İlgili Görüntü İşleme Görevleri#
Kayıt, yalnızca görsel benzerlikle değil, ortak bir koordinat sistemiyle ilgilidir. Görüntü eşleştirme, karşılık gelen görsel içeriği bulur ve kayıt için gereken nokta çiftlerini sağlayabilir; kayıt ise uzamsal hizalamayı tahmin edip uygulayarak bir adım öteye gider. Anahtar noktalar bu eşleşmeleri sağlayabilir, ancak hareket eden insan veya araçların üzerindeki noktalar, sabit bir arka planı hizalamak için genellikle uygun dayanak noktaları değildir.
Benzer şekilde, optik akış kareler arasındaki görünür hareketi tahmin eder. Hareket tahminleri kareleri kaydetmeye yardımcı olabilir; scikit-image’ın optik akışla kayıt örneğinde gösterildiği gibi, ancak akış tek başına doğru hizalamayı garanti etmez. Nesne takibi farklı bir amaca hizmet eder: bir nesnenin kimliğini zaman içinde korumak. Bir takip algoritması, kamera hareketini nesne hareketiyle karıştırmamak için arka plan hareketi tahminlerinden yararlanabilir.
Yapay Zekâ Uygulamalarında Önemi#
Uydu görüntülerinde değişim tespitinde, bir analist yeni temizlenmiş alanları belirlemek için aylar arayla çekilmiş tarım arazisi görüntülerini karşılaştırabilir. Kayıt, bir değişim tespiti modeli görüntüleri karşılaştırmadan önce tarlaları, yolları ve sınırları aynı piksel konumlarına getirir. Aksi takdirde, yer değiştirmiş bir tarla sınırı arazi örtüsü değişikliği gibi görünebilir. Hizalama sonrasında mevsim, aydınlatma veya sensör türündeki farklılıklar yine dikkatle ele alınmalıdır. Bu, uydu görüntüsü analizinde sık karşılaşılan bir sorundur.
Tıbbi görüntü analizinde, bir klinisyen, bir lezyonun değişip değişmediğini değerlendirmek için farklı ziyaretlerde çekilmiş taramaları karşılaştırabilir. Taramaların hizalanması, aynı anatomik bölgenin karşılaştırılmasını veya bölgenin bir segmentasyon modeline aktarılmasını kolaylaştırır. Anatomi deforme olabileceğinden ve görüntüleme yöntemleri farklı parlaklık örüntüleri oluşturabileceğinden, iyi bir kayıt her bölgeyi birbirine benzetmeye zorlamak yerine klinik açıdan anlamlı farklılıkları korumalıdır.
Uygulamada Kayıt ve Doğrulama#
Uyumsuzluğu makul biçimde açıklayabilecek en basit dönüşümle başla. Görüntülerin yeterli miktarda ortak görünür içeriğe sahip olduğunu doğrula, çözünürlük farklılıklarını hesaba kat ve hizalamayı yalnızca eşleşmenin en güçlü olduğu yerde değil, birkaç farklı konumda incele. Daha sonraki tahminlerin veya açıklamaların özgün görüntüye geri eşlenmesi gerekiyorsa tahmin edilen dönüşümü kaydet. OpenCV’nin geometrik dönüşüm kılavuzu, görüntü bükmenin dönüştürülmüş pikselleri nasıl konumlandırdığını açıklar.
Aşağıdaki bağımsız örnek, ötelemeyi tahmin etmek için scikit-image faz korelasyonu iş akışını kullanır. Bağımlılıklarını pip install scikit-image scipy ile yükle.
import numpy as np
from scipy.ndimage import shift
from skimage import data
from skimage.io import imsave
from skimage.registration import phase_cross_correlation
# Aynı görüntünün bir referansını ve kaydırılmış bir kopyasını oluştur.
fixed = data.camera()
moving = np.roll(fixed, shift=(12, -8), axis=(0, 1))
# Hareketli görüntüyü sabit görüntüyle hizalamak için gereken kaymayı tahmin et.
estimated_shift, _, _ = phase_cross_correlation(fixed, moving)
aligned = shift(moving, estimated_shift, order=0, mode="grid-wrap")
imsave("registered.png", aligned)
print(estimated_shift)Yazdırılan değerler düzeltmeyi açıklar; hizalanmış görüntüyü ise registered.png gösterir. Bu, yalnızca ötelemeyi ele alan bir örnektir; dönme, deformasyon veya farklı sensörlerden gelen görüntüleri kapsamaz. Hareketli kameralı bir video işleme hattında Ultralytics YOLO takibi bununla ilişkili bir uygulama sunar: kamera hareketi telafisi, takip edilen nesne konumlarının tutarlı kalmasına yardımcı olmak için kareler arasındaki dönüşümü tahmin eder. Bu takip işlemi, genel amaçlı kayıtlı bir görüntü üretmek yerine kareler arasında eşleştirmeyi destekler.









