RANSAC Tahmini Homografilerini Filtreleme


10

Aralarında çeviri olmayan kameralarla çekilen görüntü çiftleri arasındaki homografi tahmini için RANSAC algoritması kullanıyorum (saf döndürme ve ölçek / yakınlaştırma değişikliği). Vakaların yarısında iyi çalışır. Doğru çıktı şuna benzer:

resim açıklamasını buraya girin

Kırmızı çizgiler filtrelenmiş yazışmalardır ve dörtgenler, homografinin perspektifi nasıl bozduğunu gösterir.

Ancak bazen, bunlar gibi birçok kötü durum meydana gelir:

resim açıklamasını buraya girin

resim açıklamasını buraya girin

resim açıklamasını buraya girin

RANSAC döngüsünde zaten basit bir testim var. Basit bir dörtgen (birim kare) yapar ve örnek dönüşümü ile dönüştürür. Sonra dönüşümün dışbükeyliğini koruyup kormadığı anlaşılıyor.

Ancak yine de, içbükey dörtgenler demetleri çıkıyor.

"Güzel" davranıyor ve yanlış çözümleri filtreliyorsa, homografiyi nasıl test edeceğiniz hakkında bir fikriniz var mı?

Üç dönüştürülmüş noktanın hiçbirinin doğrusal olmadığını test ettikleri bazı kodlar buldum. Ancak deltoidleri ve diğer "geçersiz" dörtgenleri filtrelemeyeceği için bu yeterli görünmüyor ...

Yanıtlar:



4

Homografinin iyi olup olmadığını kontrol etmede bir sorun var.

Doğru homografileri kontrol etmek için algoritma birisini ilgilendirebilir, bu yüzden buraya yazacağım:

ABDC

A:(w/2,h/2,1.0)B:(w/2,h/2,1.0)C:(w/2,h/2,1.0)D:(w/2,h/2,1.0)

w,h

ABDCC=HC

uv

d1:A+(DA)s=A+usd2:B+(CB)t=B+vt

d1=d2

t=1d[(ByAy)ux(BxAx)uy]

s=1d[(AxBx)vy(AyBy)vx]

s,t(0,1)

s,t(λ,1.0λ)λ=0.01

Yukarıdaki algoritmada düzeltilen eski sorun:

Sorunu burada buldum - belirli bir homografiye sahip olmak, test daha küçük bir dörtgen için geçebilir, ancak daha büyük bir dörtlü için geçemez. Bu yüzden bazı "hasta" homografiler geçti.

Yeşil kare bir kaynak görüntüyü, turuncu ise dönüştürülmüş bir görüntüyü temsil eder. Gördüğünüz gibi, sol taraf dışbükeydir, ancak kaynak daha büyük olduğundan deforme olmaya başlar:

resim açıklamasını buraya girin

Son olarak, daha büyük kaynak verimi dönüştürülmeyen dörtgen:

resim açıklamasını buraya girin

(x,y,w)xyw

Algoritmayı buna göre düzelttim.


1

x_i \sim Hx_i^'\sum_{j=1\dots n}\|x_j - Hx_j^'\|H^'x^' = H^'x\sum_{j=1\dots n}\|x_j - Hx_j^'\| + \|x_j^' - H^'x\|

Hartley ve Zisserman - Bilgisayarla Görmede Çoklu Görüntü Geometrisi bölüm 4.2 ve özellikle 4.2.3 ve denklem (4.8).


Görüntülenen dörtgenler sadece oraya konur. Uyum çok iyi olduğu için yazışmalardan eminim. Hartley & Zisserman tarafından önerilen normalize edilmiş DLT algoritmasını kullandım ve daha sonra bahsettiğiniz gibi yinelemeli iyileştirme ve yönlendirmeli eşleme kullandım.
Libor

Ama homograf oturması olamaz o belki de bulunmayan hangi (ağaçlarda olanları apartmanda (aynı düzlemde muhtemelen) ve olanları: iki nokta gruplarını orada ilk resimde olduğu gibi iyi kendi gruplarının içinde aynı düzlem). Temel matrisi kullanmak istemediğinizden emin misiniz?
buq2

Çizgiler karşılık gelen noktaları birleştiriyor ve hepsini kontrol ettim - görüntüler hizalandığında hepsi buluşuyor. Eşleşen görüntü çiftlerini hariç tuttuğumda, güzel bir panorama ortaya çıkıyor.
Libor

Görüntüler dönen bir kamera kullanılarak yapılır, bu yüzden uçaklar değişir gibi görünebilir, ancak kameralar optik merkez etrafında döndüğünden, bir homografinin tahmin edildiğinden eminim. Hatta odak uzaklığı ve dönüş matrisini hesaplayabilirim. Ama sorun başka bir yerde, benim yazılımda bir garip bulmak zorunda ...
Libor

Ahh, kameralar arasında çeviri olmadığı bilgisini eklemediniz. O zaman haklısın ve homografi görüntüler arasındaki dönüşümü anlatıyor.
buq2
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.