2010-02-03 12 views
10

MATLAB 'da Fundamental matrix (iki resmin) normalleştirilmiş Eight point algorithm'u kullanarak hesaplamıştım. Bundan, 3B alanda triangulate ilgili görüntü noktalarına ihtiyacım var. Anladığım kadarıyla, bunu yapmak için resmin kameralarının dönüşüne ve çevirisine ihtiyacım var. Tabii ki en kolay yol, calibrate the cameras olacaktır, daha sonra görüntüleri çekecektir, ancak bu ek adımı gerektirdiğinden, başvurum için çok daraltıcıdır. Böylece auto (self) camera calibration ile beni bırakıyor. bundle adjustment'dan bahsetmişken, An Invitation to 3D Vision'da bir başlangıç ​​çevirme ve döndürme gerektiriyor gibi görünüyor, bu da bana kalibre edilmiş bir kameranın gerekli olduğunu veya anlayışımın azaldığını düşünmemi sağlıyor.Temel matrisinden gelen 3D yazışmalar

Sorularım, döndürmeyi/çevirmeyi otomatik olarak ayıklayabilmem, böylece görüntü noktalarını 3B boşluğa yeniden yerleştirebilmem/açabileceğim. Herhangi bir MATLAB kodu veya psödo kodu harika olurdu. 3D-space seçilebilir Eğer

cevap

8

Fotoğraf matrislerini kurtarmak için temel matrisi kullanabilir ve 3B noktalarını resimlerinden ayırabilirsiniz. Bununla birlikte, elde edeceğiniz yeniden yapılanmanın önsezili değil, projektif bir yeniden yapılanma olacağını bilmelisiniz. Amacınız, çapraz oran, çizgi kesişimleri vb. Gibi orijinal sahnede yansıtıcı değişmezleri ölçmekse faydalıdır, ancak açıları ve mesafeleri ölçmek için yeterli olmayacaktır (bunun için kameraları kalibre etmeniz gerekecektir).

Hartley and Zisserman's textbook erişiminiz varsa, temel matristen gitmeniz gerekenleri bir projeksiyonel yeniden yapılandırma hesaplayabilmenizi sağlayacak bir çift kamera matrisine gitmeniz gerekenleri bulabileceğiniz bölüm 9.5.3'ü inceleyebilirsiniz. Aynı içerik Yi Ma'nın kitabının 6.4 bölümünde yer almaktadır). source code for the book's algorithms is available online'dan beri, vgg_P_from_F, vgg_X_from_xP_lin ve vgg_X_from_xP_nonlin işlevlerini kontrol etmek isteyebilirsiniz.

+0

Hartley/Zisserman kitabında Algoritma 12.1 "En uygun üçgenleme yöntemi" kullanarak bitti. Kameraları "Matlab için Kamera Kalibrasyon Araç Kutusu" ile kalibre edildi – yxk

1

keyfi Eğer ilk kamera matrisi ayarlayabilirsiniz

P = [I | 0] 

Hiçbir çeviri, hiçbir dönme olarak. Bu, kamera 1'den tanımlanan bir koordinat sistemi ile sizi bırakır. O zaman ikinci kamerayı kalibre etmek çok zor olmamalıdır.

+0

Buradan Bundle Adjustment gibi bir algoritma kullanır mısınız? – yxk

+0

Mümkünse, ilk ideal kamera verilen ikinci kameranın dönüşünü bulmak için bir çeşit kalibrasyon nesnesini kullanmayı deneyeceğim. Aksi taktirde, paket ayarlaması başlamak için iyi bir yer olabilir. –

+1

Kalibrasyonu gerçekleştirmek için, bir dama tahtası gibi bir çeşit kalibrasyon nesnesinin kullanılması gerekir.Bu hala kalibrasyon dışı bir nesne ile yapılabilir, ancak sonuçların sayısı yüksek * doğru * yazışmalar elde edilemediği sürece, sonuçlar iyi değildir. Daha fazla okumadan, paket ayarı, var olduklarında kalibrasyon sonuçlarını geliştiren bir algoritmadır. – yxk

5

Peter matlab kodu size çok yararlı olacaktır sanırım:

http://www.csse.uwa.edu.au/~pk/research/matlabfns/

Peter temel matris çözümleri bir dizi yayınladı. Orijinal algoritmaları ona iken temel matris şarkı görmek unutmayın,

http://www.amazon.com/exec/obidos/tg/detail/-/0521540518/qid=1126195435/sr=8-1/ref=pd_bbs_1/103-8055115-0657421?v=glance&s=books&n=507846

Ayrıca zisserman kitapta bahsedilen edildi: in

http://danielwedge.com/fmatrix/

bir ince kompozisyon benim dürüst düşünce!