Kanca
İki nesne aynı kamera görüntüsünde, ikisi de gerçekte tam olarak aynı boyutta. Biri görüntünün tam ortasında duruyor, diğeri kenarına yakın. Aynı piksel-milimetre kalibrasyonunu ikisine de uygularsan, ikisi de aynı doğru sonucu verir mi?
Bağlantı yalnız bu sahnenin durumunu taşır; hesap veya ad içermez.
Ne oldu
Önceki derste öğrendiğin formülü ("gerçek mm = piksel × k") burada tekrar
kullanıyorsun ama bu sefer "Perspektif hatasını göster" anahtarını da
açabiliyorsun. Anahtar kapalıyken sahne, geçen derste gördüğün gibi
davranıyor: her yerde aynı k geçerli. Anahtarı açtığında ise, merkezden
uzaklaştıkça k hafifçe büyüyor — merkeze yakın bir hücreye tıkladığında
sonuç neredeyse değişmiyor, kenara yakın bir hücreye tıkladığında sonuç
belirgin biçimde şişiyor.
Bunun nedeni basit: gerçek bir kamera merkezinde neredeyse hiç hata yokken, kenarlara doğru büyüyen bir sapma taşır. OpenCV'nin kalibrasyon belgelerindeki ifadeyle: "Radyal distorsiyon, görüntü merkezinden uzaklaşan noktalarda büyür." Görüntünün ortasındaki bir satranç tahtası kenarı düz görünürken, kenara yakın bir kısmı hafifçe kavisli görünür — çünkü lens, görüş alanının merkezinde ve kenarında aynı geometriyi vermez.
Bir terim ayrımı: yukarıdaki sahnenin modellediği ve OpenCV'nin
tanımladığı şey lens (radyal) distorsiyonudur — merkezden uzaklaştıkça
büyüyen, lensin optiğinden gelen bir sapma. Buna çoğu zaman "perspektif
hatası" da eşlik eder: kamera yüzeye tam dik bakmıyorsa ya da ölçtüğün
nesnenin yüksekliği varsa, tek bir k katsayısı yine yetmez. İkisinin
kaynağı farklı, sonucu benzer — bu yüzden pratikte ikisi birlikte, tam
bir kalibrasyonla ele alınır.
Gerçek dünyada
Tek noktada (genelde görüntünün ortasına yakın) yapılan bir kalibrasyon, o noktaya yakın ölçümlerde doğru sonuç verir ama görüntünün kenarlarına gidildikçe hata büyür. Steger, Ulrich ve Wiedemann'ın kalibrasyon bölümü, bu yüzden basit, tek oranlı (düzlem varsayımlı) kalibrasyonu, lens çarpıklığını da hesaba katan tam kalibrasyondan ayırıyor: ilki hızlı ve kolay ama sadece kalibre edilen bölgeye yakın yerlerde güvenilir, ikincisi görüş alanının tamamında tutarlı sonuç vermek için ek parametreler (radyal/teğetsel distorsiyon katsayıları) kullanır.
Pratikte bunun anlamı şu: bir üretim hattında kamera, görüş alanının sadece ortasındaki tek bir noktada kalibre edilip, parça o alanın kenarına yakın bir yerde ölçülürse, ölçülen konum gerçek konumdan birkaç milimetre kayabilir. Bu yüzden hassasiyetin önemli olduğu uygulamalarda kalibrasyon tek bir noktada değil, görüş alanının tamamını kaplayan bir ızgara (örneğin bir satranç tahtası deseni) üzerinden yapılır.
Dene
Önce "Perspektif hatasını göster" kapalıyken merkeze yakın bir hücreye,
sonra sağ alt köşeye yakın bir hücreye tıkla — ikisinin de aynı k
ile hesaplandığını doğrula. Sonra anahtarı aç ve aynı iki hücreye tekrar
tıkla: merkezdeki sonucun az değiştiğini, köşedekinin belirgin biçimde
büyüdüğünü karşılaştır. Sahnedeki bozulma görüntünün merkezinden uzaklaştıkça
artar; dört köşede de etkisi belirgin, merkeze yakın hücrelerde daha küçüktür.
Sonraki
Bu hattın üniversite seviyesi, burada "hafifçe büyüyen bir hata" olarak gördüğün şeyi tam bir kamera kalibrasyonuyla — iç ve dış parametreler, lens distorsiyon katsayıları — sayısal olarak ele alacak.