Homography
Homografi, görünümler arasındaki düzlemleri eşleyen; perspektif düzeltme, görüntü kaydı ve panorama birleştirme işlemlerini mümkün kılan projektif bir dönüşümdür.
Homografi, bir düzlemdeki noktaları diğerindeki noktalara eşlerken doğruları koruyan tersinir bir projektif dönüşümdür. Bilgisayarlı görüde, düz bir yüzeyin farklı bakış açılarından nasıl göründüğünü açıklar: açıyla fotoğraflanan dikdörtgen bir sayfa, önden görünen bir dikdörtgene dönüştürülebilir. Homografiler görüntü kaydını, perspektif düzeltmeyi ve panorama birleştirmeyi destekler. "Projektif dönüşüm" eş anlamlısıdır; dilbilimdeki "homograf" terimi ise yazılışı aynı olan sözcükleri ifade eder.
Homografi Matrisi Nasıl Çalışır#
Homografi, genellikle H olarak adlandırılan 3 x 3'lük bir matrisle gösterilir. Matris, iki boyutlu bir noktayı üç değerle ifade eden homojen koordinatlar üzerinde işlem yapar. Matris çarpımından sonra, ilk iki çıktı değerinin üçüncüye bölünmesiyle olağan görüntü koordinatları elde edilir.
H dokuz eleman içerse de sekiz bağımsız parametreye, yani serbestlik derecesine sahiptir: tüm elemanları aynı sıfır olmayan sayıyla çarpmak eşlemeyi değiştirmez. Düzlemsel görüntü eşlemelerinin geometrisi, neden uygun dört nokta eşleşmesinin bir homografiyi belirlediğini açıklar.
Afin dönüşüm, paralel doğruları koruyan kısıtlı bir homografidir. Genel bir homografi, paralel kenarların kaçış noktasına doğru yakınsaması da dahil olmak üzere perspektif etkilerini de temsil eder. Uzaklıklar ve açılar genellikle değişir. Michel Chasles bu kavramı, dualite ve homografi üzerine 1837 tarihli anı kitabında geliştirdi.
Homografi Nasıl Tahmin Edilir#
Tahmin, iki görüntüdeki aynı fiziksel özellikleri temsil eden konumlar olan eşleşen noktalarla başlar. Bunlar elle seçilen köşeler veya özellik çıkarımı yoluyla elde edilen eşleşmiş kilit noktalar olabilir. Ölçekten Bağımsız Özellik Dönüşümü gibi yöntemler, görünümler arasında özellikleri eşleştirmek için yerel görünümün sayısal özetleri olan tanımlayıcılar sağlar.
En az dört nokta çifti gerekir ve her iki kümede de hiçbir üç nokta aynı doğru üzerinde olmamalıdır. Doğrudan Doğrusal Dönüşüm (DLT) algoritması, bu noktaların koordinat ilişkilerini doğrusal bir sisteme dönüştürür. Ölçümler gürültü içerdiğinde ek eşleşmeler tahmini iyileştirir.
Hatalı eşleşmeler için sağlam bir uyum yöntemi gerekir. Rastgele Örnek Uzlaşısı (RANSAC), aday dönüşümleri küçük alt kümelere tekrar tekrar uydurur ve adayla tutarlı eşleşmeler olan iç uyumluları belirler. Yeniden izdüşüm hatası, dönüştürülmüş bir kaynak noktası ile gözlemlenen hedef noktası arasındaki mesafeyi ölçer. OpenCV'nin homografi tahmin API'si bu işlemi cv2.findHomography üzerinden sunar ve hem H'yi hem de bir iç uyumlu maske döndürür.
Python'da Homografi Uygulama#
OpenCV, matris tahmini ve görüntü çarpıtma için ayrı işlemler sunar. Bağımlılıkları pip install opencv-python numpy ile yükle. Bu örnek, örnek görüntünün dikdörtgen sınırını bir yamuk biçimine eşler:
from urllib.request import urlopen
import cv2
import numpy as np
image_url = "https://ultralytics.com/images/bus.jpg"
with urlopen(image_url) as response:
encoded = np.frombuffer(response.read(), dtype=np.uint8)
image = cv2.imdecode(encoded, cv2.IMREAD_COLOR)
height, width = image.shape[:2]
# Her iki dizide de köşeleri aynı saat yönündeki sırayla tut.
source = np.float32([[0, 0], [width - 1, 0], [width - 1, height - 1], [0, height - 1]])
target = np.float32([[120, 80], [width - 121, 80], [width - 1, height - 1], [0, height - 1]])
matrix, _ = cv2.findHomography(source, target)
warped = cv2.warpPerspective(image, matrix, (width, height))
cv2.imwrite("homography_result.jpg", warped)Kaydedilen görüntüde perspektif kısalması görülür: üst kenarı daha dardır, sahnedeki düz kenarlar ise düz kalır.
Homografinin Kullanım Alanları#
- Belge İşleme: Perspektif düzeltme, düz bir belgenin dört köşesini bir dikdörtgenle eşler. Bu ön işleme adımı, OpenCV'nin perspektif düzeltme örneklerinde gösterilen aynı düzlemsel çarpıtma geometrisini izleyerek optik karakter tanıma öncesinde metin düzenini standartlaştırır.
- Panorama Birleştirme: Örtüşen fotoğraflar birleştirilmeden önce hizalanır. Matthew Brown ve David Lowe'un Autostitch sistemi, sırasız koleksiyonlardaki örtüşen görüntüleri belirlemek de dahil olmak üzere panorama oluşturmayı otomatikleştirmek için eşleşmiş yerel özellikleri kullanır.
Ultralytics YOLO'da RandomPerspective artırımı, eğitim sırasında projektif çarpıtmalar uygular; görüntüleri ve bunlarla ilişkili sınırlayıcı kutuları, segmentasyon ana hatlarını ve kilit noktaları birlikte dönüştürür. perspective ayarı, bu veri artırma işleminin perspektif bileşenini kontrol eder.
Geometrik Sınırlar ve İlgili Kavramlar#
Tek bir homografi, tek bir düzlemin ideal iğne deliği kamera görünümlerini veya bir kameranın izdüşüm merkezi etrafında döndürülmesiyle yakalanan görünümleri tam olarak ilişkilendirir. Kamera ötelemesi ve farklı derinliklerdeki nesneler söz konusu olduğunda, paralaks derinliğe bağlı yer değiştirmelere yol açar. Arka plan düzleminin hizalanması, ön plandaki nesneleri yerinden kaymış bırakır ve birleştirilmiş görüntülerde çift kenarlar veya hayaletlenme oluşturur.
Kamera kalibrasyonu, düzlemsel hizalamadan önce düzeltilmesi gereken eğri görüntü geometrisine yol açan mercek bozulmasını ele alır. Genel üç boyutlu sahnelerde epipolar geometri, eşleşen bir noktayı bir doğru üzerinde sınırlar; homografi ise noktanın konumunu doğrudan tahmin eder. Stereo görüde, epipolar doğru üzerindeki kalan konum, derinlik tahmini için kullanılan paralaks bilgisini sağlar.










