2012-08-11 16 views
12

Fotoğraf makinesi kalibrasyonu sırasında genel tavsiye, poz, derinlik vb. Değişikliklere sahip birçok görüntüyü (> 10) kullanmaktır. Bununla birlikte, genellikle kullandığım daha az resim olduğunu, yeniden çoğaltma hatasının ne kadar küçük olduğunu görüyorum. Örneğin, 27 resim ile, cv :: calibrateCamera 0.23 döndürür ve ben sadece 3 ile 0.11 olsun. Bu, kalibrasyon sırasında aşırı belirlenmiş bir sistem için en küçük kareler problemini çözdüğümüz gerçeğinden kaynaklanabilir.Daha küçük bir reprojeksiyon hatası her zaman daha iyi kalibrasyon anlamına mı geliyor?

SORULAR:

  1. biz aslında bir kalibrasyon ne kadar iyi mutlak ölçüsü olarak yeniden projeksiyon hatasını kullanıyor musunuz? Örneğin, 3 görüntü ile kalibre edip 0.11 aldım ve 27 görüntü ile kalibre edip 0.23 alsam gerçekten "ilk kalibrasyon daha iyi" diyebilir miyiz?

  2. OpenCV, hem kalibrasyon hem de hatanın hesaplanması için aynı görüntüleri kullanır. Bu bir çeşit uyumsuzluk değil mi? Eğer kalibrasyon parametrelerini hesaplamak için bir tane, diğeri de hata hesaplamak için 2 farklı set kullansaydım daha doğru olmaz mıydı? Bu durumda, aynı (test) setini farklı (eğitim) setlerinden tüm kalibrasyon sonuçlarım için hatayı hesaplamak için kullanırdım. Bu daha adil olmaz mıydı?

cevap

11

Eğer bu çok geç ise üzgünüm - sadece gördünüz.

Hata, uygunluğun yeniden gösterilmesidir. Yani bir görüntü üzerinde noktalar bulun, gerçek dünya modelini hesaplayın, modele verilen görüntüde bu noktaların nerede olacağını yeniden hesaplayın - farkı bildirin. Bir şekilde bu biraz döngüseldir, sadece birkaç görüntü için doğru olan bir modele sahip olabilirsiniz, bu da çok iyi bir hatayı rapor edip çok daha fazla genel olarak doğru bir model yapacaktır, ancak daha büyük olacaktır. Hata, sadece daha büyük bir alana sığacak şekilde germeye çalıştığınız için.

Daha fazla resim eklemenin uygunluğu iyileştirmediği ve noktaların hiçbir zaman mükemmel şekilde algılanmadığından dolayı gürültü ekleyebileceği bir nokta var. Önemli olan, eşdeğer veriler yerine daha büyük parametreler, daha fazla açılar ve konumlar sağlamaktır.

Hatanın tahmin edilmesi için aynı görüntü kümesinin kullanılması, uyumun gerçek bir anlamı olduğu için gerçekten sorun değildir. gerçek fiziksel lens parametreleri - aynı veriler üzerinde nöral bir ağı eğitmek/test etmek gibi değildir.

düzenleme: daha iyi bir kalibrasyon rutininden (aynı kavramı temel almasına rağmen) 3D-DIC (ücretsiz ama OSS değil, indirme linkini almak için siteye üye olun) özel olarak calibration manual'u göreceksiniz.

+1

Yanıt verdiğiniz için teşekkürler, çok geç değil, daha genel bir soru. İlk paragrafınızdan doğru bir şekilde anlarsam, bazen bir kamera modelinin bir dizi (belki daha az) görüntü ile daha iyi tarif edileceğini söylüyorsunuz, değil mi? Ayrıca, benim sonuçlardan biri de kalibrasyonun iyi olup olmadığını (err = [0,1]) veya kötü (err> 1) belirlemek için reprojeksiyon hatasını kullanabilmenizdir, ancak [0,1] aralığında gerçekten olamazsınız. En küçük olanı seçmek en iyisi olacaktır. Bunun doğru mu, yoksa tamamen yanlış mı anladım? – Sassa

+0

Yanılmıyorsam, sadece 3 görüntü ile 0.11 hatası aldığımda (bu çok düşük) ve bu parametreleri kullanarak görüntü bozulmamışsa, bozulmamış sonuç 0.23 hatasıyla karşılaştırıldığında çok iyi değildi 27 görüntüden. – Sassa

+0

Daha az görüntüye dayanan bir kamera modeli iyi olacak - sadece bu küçük pozisyonlar ve açılar için. Yani çok iyi bir yerel uyum ama kötü küresel uyum.Daha fazla görüntü ekledikçe (bir noktaya kadar) global bir uyum için daha yakınsınız ama yerel uyum kötü olabilir –