Contents — find the section you need
"Aynı düzlemde" bulunan karşılık gelen noktalar (masa üstü, poster, yol yüzeyi gibi) iki görüntüde yakalandığında, genel bir 3B sahneye göre çok daha basit bir ilişkiyle bağlantılıdır. Kameranın nerede olduğu fark etmeksizin, bu düzlemdeki noktalar yalnızca tek bir 3\times3 matrisi kullanılarak birbirine dönüştürülebilir. Bu matris homografidir (projektif bir dönüşüm). Epipolar Geometri Temelleri sahne derinliğini varsayan karşılık kısıtlamalarıyla ilgilenirken, homografi, derinliğe hiç bağlı olmayan karşılıkları ele alması bakımından zıt bir durumdur ve ancak ikisini de uygun şekilde kullanarak iki görünüm geometrisinin tam resmini elde edebilirsiniz.
0. 30 Saniyelik Özet
-
Bir homografi H, aynı düzlemdeki noktalar veya saf dönüşe maruz kalan bir kamera için bir görüntü eşleşmesini \tilde{\mathbf{x}}'\sim H\tilde{\mathbf{x}} temsil eden bir 3\times3 matrisidir. Ölçek belirsizliğine kadar 8 serbestlik derecesine sahiptir.
-
DLT (Doğrudan Doğrusal Dönüşüm) yöntemi, nokta eşleşmesi başına iki doğrusal denklem oluşturur ve 4 veya daha fazla eşleşmeden SVD yoluyla H için doğrusal olarak çözer. Hartley normalizasyonu, sayısal stabilizasyon için etkilidir.
-
Gerçek eşleşmeler uyumsuzluklar içerdiğinden, aykırı değerler nihai tahminden önce RANSAC ile kaldırılır. Minimum örneklem boyutu 4 noktadır, bu da sağlam tahmin yinelemelerinin sayısını Temel/Temel Matris tahminine göre daha düşük tutar.
-
Kalibre edilmiş bir kamera verildiğinde, H=K(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K^{-1} şeklinde dönüş R, öteleme yönü ve düzlem normali \mathbf{n} şeklinde ayrışır; ancak genel olarak, birden fazla fiziksel olarak makul aday çözüm kalır ve bunları daraltmak için ek bilgilere ihtiyaç duyarsınız.
-
Düzlemsel sahneler veya saf dönüş için, homografi, Temel veya Temel Matris'ten daha uygun bir modeldir. Bu yozlaşmayı tespit edememek, derinliği geri kazanmanın temelde mümkün olmadığı bir durumda zorla 3B yeniden yapılandırma girişiminde bulunmak anlamına gelir.
1. Homografi Nedir: Düzlemsel Projektif Dönüşüm
İki görüntü üzerindeki homojen koordinatlar \tilde{\mathbf{x}}=(x,y,1)^\mathsf{T} , \tilde{\mathbf{x}}'=(x',y',1)^\mathsf{T} şu ilişkiyi sağlıyorsa:
bazı 3\times3 matris H aracılığıyla, buna H homografi diyoruz. \sim, ölçeklendirmeye kadar eşit anlamına gelir — H'i sıfır olmayan herhangi bir sabitle çarpmak aynı dönüşümü temsil eder — bu nedenle H'nın serbestlik dereceleri 9-1=8'dir.
Homografinin geçerli olduğu genel olarak iki fiziksel koşul vardır. Birincisi, tüm karşılık gelen 3B noktaları tek bir düzlemde bulunur. İkincisi, genel 3B yapıya sahip bir sahne için bile, kamera hiç öteleme yapmaz ve sadece saf bir şekilde dönerse (pan/tilt), ilişki derinlikten bağımsız olarak bir homografi ile tanımlanabilir. Bunun nedeni, kamera sadece döndüğünde hiçbir paralaks oluşmamasıdır.
2. DLT Yöntemiyle Tahmin
Tek bir eşleşmeden (x,y)\to(x',y'), H'nin her bir elemanı h_1,\dots,h_9 üzerinde doğrusal bir kısıtlama türetebiliriz (\mathbf{h}=\operatorname{vec}(H) yazarak). Çapraz çarpım \tilde{\mathbf{x}}'\times H\tilde{\mathbf{x}}=\mathbf{0}'ün sıfır olması koşulunu genişletmek, her eşleşme için aşağıdaki iki bağımsız denklemi verir.
4 eşleşme ile 8 denklem elde edersiniz; bu denklemler (genel konumda) 8 serbestlik dereceli H'yı benzersiz bir şekilde belirler. 5 veya daha fazla eşleşmenin mevcut olduğu gerçekçi durumda, tüm eşleşmeleri bir araya getiren A matrisi için A\mathbf{h}=\mathbf{0}'nin en küçük kareler çözümünü bulursunuz; yani, SVD yoluyla A'nun en küçük tekil değerine karşılık gelen sağ tekil vektörü bulursunuz. Bu, DLT (Doğrudan Doğrusal Dönüşüm) yöntemidir.
Epipolar geometrideki 8 noktalı algoritmada olduğu gibi, ham piksel koordinatlarını doğrudan kullanmak sayısal olarak kötü koşullu olma eğilimindedir. Standart uygulama, Hartley'nin normalleştirilmiş DLT'sidir: Her bir görüntünün nokta kümesine sıfır merkez ve ortalama mesafe \sqrt{2} olacak şekilde bir benzerlik dönüşümü T,T' uygulayın, bu normalleştirilmiş çerçevede çözün, ardından koordinatları H=T'^{-1}H_{\text{norm}}T ile geri dönüştürün.
3. RANSAC ile Sağlam Tahmin
Gerçek eşleşmeler uyumsuzluklar içerdiğinden, DLT'yi doğrudan her eşleşmeye uygulamak, aykırı değerlerin çözümü ciddi şekilde bozmasına neden olur. RANSAC aşağıdakileri tekrarlar:
-
Rastgele 4 eşleşme seçin ve DLT aracılığıyla H için bir hipotez oluşturun.
-
Her eşleşme için, H tarafından tahmin edilen konum ile gerçek karşılık gelen nokta arasındaki yeniden projeksiyon hatasını hesaplayın.
-
Eşik içinde en fazla eşleşmeye (içsel noktalara) sahip hipotezi benimseyin.
-
Tüm nihai iç noktaları kullanarak DLT'yi bir kez daha çözün ve gerekirse doğrusal olmayan optimizasyon (yeniden projeksiyon hatasının doğrudan minimizasyonu) ile bitirin.
Gerekli yineleme sayısı, iç nokta oranı w, minimum örneklem boyutu s=4 ve hedef başarı olasılığı p verildiğinde şu şekilde tahmin edilebilir:
Aynı iç nokta oranı için, homografinin s=4 yöntemi, s=5 – 8 gerektiren Temel/Temel Matris tahmininden daha az yineleme gerektirir. Bu, SIFT veya ORB eşleştirmesinden hemen sonra, tam 3B tahmine geçmeden önce homografi ile kaba bir geometrik doğrulama yapmanın yaygın bir uygulama olmasının nedenlerinden biridir.
4. H'nin Ayrıştırılması: Dönme, Öteleme ve Düzlem Normalinin Çıkarılması
Kamera kalibre edilmişse ve içsel parametreler K_1,K_2 biliniyorsa, düzlemin birim normali \mathbf{n} (kamera 1'in koordinat sisteminde), düzleme olan mesafe d ve göreceli pozisyon R,\mathbf{t} kullanılarak normalize edilmiş homografi \tilde H = K_2^{-1}HK_1 şu şekilde yazılabilir:
Kamera öteleme olmadan saf dönme hareketi yapıyorsa, \mathbf{t}=\mathbf{0}, bu nedenle \tilde H=R — dönme matrisinin kendisi.
R,\mathbf{t}/d,\mathbf{n}'nin \tilde H'den geri kazanılması işlemine homografi ayrıştırması denir. \tilde H^\mathsf{T}\tilde H'nin özdeğer ayrıştırmasını kullanarak kapalı formda bir çözüm elde eden klasik Faugeras-Lustman yöntemi ve analitik Malis-Vargas yöntemi de dahil olmak üzere çeşitli algoritmalar bilinmektedir. Bununla birlikte, tamamen matematiksel olarak, 4'e kadar fiziksel olarak mümkün çözüm kalabilir (işaret çevirmeleri veya yansımalara karşılık gelenler dahil). Pratikte, bunlar şu şekilde daraltılır:
-
Pozitif derinlik (kiralite): Üçgenleştirilmiş noktalar her iki kameranın da önünde bulunmalıdır.
-
Düzlem normalinin mantıklılığı: Uygulamadan zaten bilinen kaba bir normal yönüyle (örneğin zemin veya duvar) tutarlılık.
-
Birden fazla karede tutarlılık: Tek bir karede belirsiz olsa bile, zaman içinde izleme, doğal olmayan çözümleri süreklilikten yoksun olarak ortaya çıkarır.
OpenCV'nin decomposeHomographyMat fonksiyonu bu ayrıştırmayı gerçekleştirir ve birden fazla adayı değerlendirmeye yardımcı olan filtre fonksiyonları (örneğin, bilinen bir düzlem normaline yakın çözümü seçen filterHomographyDecompByVisibleRefpoints) sağlar.
5. Epipolar Geometri ile İlişki: H Doğru Cevap Olduğunda
Epipolar Geometri Temel Bilgileri bölümünde gördüğümüz gibi, genel bir 3B sahnedeki iki görünüm arasındaki ilişki Temel/Esas Matris ile tanımlanır. Homografi bunun özel bir durumudur ve aralarındaki seçim aşağıdaki gibidir.
| Durum | Uygun Model | Sebep |
|---|---|---|
| Genel 3B yapı, öteleme ile | F (kalibre edilmemiş) / E (kalibre edilmiş) | Paralaks derinliğe bağlıdır ve tek bir düzleme sıkıştırılamaz |
Tüm sahne veya ilgi alanı tek bir düzlemdir | H | Bir düzlem üzerindeki noktalar tam olarak bir homografi ile tanımlanır |
Kamera saf dönüşe uğrar (sadece pan/tilt) | H | Öteleme olmadığı için paralaks yoktur, bu nedenle F/E bozulur |
Uzak bir sahneyi izlerken veya paralaks çok küçüktür | H (pratik yaklaşım) | Derinlik farklılıklarından kaynaklanan paralaks piksel gürültüsüne gömülür |
Sorun şu ki, "H için birçok iç nokta" ve "sahne gerçekten düzlemseldir veya kamera gerçekten saf olarak dönmektedir" bazen sadece gözlemlerden ayırt edilmesi zor olabilir. Genel bir 3B sahnede bile, görüş alanına hakim bir duvar veya masa, bir homografiye güçlü bir şekilde uyabilir. ORB-SLAM'in başlatma süreci, H ve F'ü RANSAC aracılığıyla paralel olarak tahmin ederek, her birinin uyum derecesini puanlayarak ve sahne yapısına ve kamera hareketine uygun modeli otomatik olarak seçerek bu belirsizliği ele alır. Uygulama düzeyindeki kilit nokta, yalnızca içsel sayımları karşılaştırmak yerine, her modelin serbestlik derecelerindeki farkı hesaba katan bir puan kullanmaktır (GRIC ile ilgili bir fikir).
6. Uygulamalar: Görüntü Birleştirme, AR Düzlem Takibi ve Zemin Düzlemi Tahmini
Görüntü birleştirme (panorama kompozisyonu) — kamerayı yerinde döndürerek çekilen birden fazla görüntüyü tek bir görüntüde birleştirme — homografinin temsili bir uygulamasıdır. Bitişik görüntüler arasındaki homografi tahmin edilir ve her biri ortak bir referans çerçevesine dönüştürülür ve harmanlanır. Kameranın neredeyse tamamen döndüğü varsayımı bozulduğunda (yürürken veya sahnede yakındaki bir nesne varken çekim yapıldığında), paralaks hayalet görüntüler ve çift görüntüler üretir. AR'da düzlem çapa takibi, ilk karede bir masa veya poster gibi bir düzlemi algılar ve homografiyi her sonraki kareye kadar takip ederek, kare kare o düzleme göre göreceli pozisyonu istikrarlı bir şekilde belirleyebilir. Ayrıştırılmış R,\mathbf{t}/d kullanılarak, görsel tutarsızlık olmadan düzlemin koordinat çerçevesine sabitlenmiş sanal bir nesne üst üste bindirilebilir.
Zemin düzlemi tahmini, bir yol veya zemin yüzeyinin "neredeyse düzlemsel" olduğu yönündeki güçlü ön bilgiden yararlanır. Araç kameralarında veya robotlarda zemin düzlemi tespiti, ardışık kareler arasındaki homografiyi izleyen ve ondan sapan bölgeleri (engeller, zemin dışı nesneler) algılayan yöntemler kullanır. Bu, nesnenin kendisini tanımak yerine geometrik tutarlılığın bozulmasını algılayan bir yaklaşımdır.
7. OpenCV'de Uygulama Örneği
import cv2 as cv
import numpy as np
orb = cv.ORB_create(nfeatures=3000)
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
matches = cv.BFMatcher(cv.NORM_HAMMING).knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.75 * n.distance]
p1 = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
p2 = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
# threshold is the allowed reprojection error, in pixels. USAC_MAGSAC is also selectable in place of RANSAC.
H, mask = cv.findHomography(p1, p2, method=cv.RANSAC, ransacReprojThreshold=3.0)
inliers = mask.ravel().astype(bool)
# if K is known, decompose into candidate solutions
num_solutions, Rs, ts, ns = cv.decomposeHomographyMat(H, K)
findHomography tarafından döndürülen H'nın ölçek açısından belirsiz olduğuna dikkat edin. Epipolar Geometri Temel Matrisinde olduğu gibi, ayrıştırmadan elde edilen öteleme vektörü de yalnızca bir yön belirler; mutlak ölçeği başka bir yolla (bilinen bir düzlem mesafesi, stereo taban çizgisi, atalet sensörü vb.) sağlanmalıdır.
8. Zor Koşullar
-
Bozulmuş düzlemsellik: Düzlemsel görünen bir sahne bile gerçek kalınlığa sahip nesneler içerebilir - kitaplar, tabela kenarları, bitkiler - ve üzerlerindeki noktalar sistematik aykırı değerler haline gelir. RANSAC'ın eşiğini dikkatsizce gevşetmek, düzlemsel olmayan noktaların içeri çekilmesine ve H'nin kendisinin bozulmasına neden olur.
-
Saf döndürme varsayımının bozulması: Elde yapılan birleştirme işleminde hafif bir öteleme bile varsa, daha yakın nesneler daha fazla kayarak hayalet görüntü oluşturur. Tripod kullanmak veya lensin optik merkezine yakın döndürmek tercih edilir.
-
Dejenere konfigürasyonlar: Eşleşme noktaları görüntüde tek bir çizgi boyunca veya dar bir bölgede yoğunlaşırsa, DLT matrisi kötü koşullu hale gelir ve hata, eşleşme noktalarından uzak alanlarda, yani H'un ekstrapolasyon bölgelerinde keskin bir şekilde artar.
-
Tekrarlayan desenler veya düşük dokulu düzlemler: Karo döşeme veya kafes pencere gibi tekrarlayan bir desende, yerel tanımlayıcılar tek başına doğru bir eşleşmeyi bir periyot kaydırılmış bir uyumsuzluktan ayırt edemez.
-
Ayrıştırmada belirsizlik: K doğru değilse veya gürültü büyükse, ayrıştırmadan elde edilen birden fazla aday arasından fiziksel olarak doğru çözümü benzersiz bir şekilde seçmek imkansız olabilir. Bunu her zaman ek ön bilgilerle (normal yön, pozitif derinlik) birleştirin.
9. Özet
Homografi, iki sınırlı ancak pratikte sık karşılaşılan durumu - bir düzlemde eşleşme veya saf dönüşe maruz kalan bir kamera - tek bir 3\times3 matrisiyle tam olarak temsil eden bir çerçevedir. DLT yöntemi en küçük kareler başlangıç noktasıdır, RANSAC aykırı değerler için karşı önlemdir ve ayrıştırma, fiziksel dönüşü, ötelemeyi ve normali çıkaran son aşamadır. Her şeyden önce, homografinin doğru model olup olmadığını ve Temel/Esas Matrise ne zaman geçmeniz gerektiğini değerlendirmek önemlidir - bu sınırı yanlış belirlerseniz, bir düzlemden başka bir şey olmayan bir sahnede var olmayan bir derinliği kurtarmaya çalışırsınız.
Tek bir homografi, farklı derinliklerdeki nesneleri hizalayabilir mi?
Genel öteleme, düzlem dışı nesneler için paralaks bırakır.
Tek bir homografi kullanmadan önce düzlemsel sahne veya saf dönüş varsayımlarını kontrol edin.Referanslar
- Hartley & Zisserman, Bilgisayar Görüşünde Çoklu Görünüm Geometrisi (yazarların resmi sayfası)
- Fischler & Bolles, Rastgele Örneklem Konsensüsü (ACM İletişimleri, 1981)
- Malis & Vargas, Görüş Tabanlı Kontrol için Homografi Ayrıştırmasının Daha Derin Anlaşılması (INRIA Araştırma Raporu RR-6303, 2007)
- Mur-Artal, Montiel & Tardós, ORB-SLAM: Çok Yönlü ve Doğru Tek Gözlü SLAM Sistemi (IEEE TRO, 2015) )
- OpenCV — Homografinin temel kavramları kodla açıklanmıştır
- OpenCV — findHomography / decomposeHomographyMat referansı
- OpenCV — Görüntü Birleştirme modülü
Yorumlar
Lütfen önce giriş yapın.
Henüz veri yok.