Kurduğum her haritalama ya da ölçüm hattı er ya da geç aynı şikâyete çarptı: dünyada düz olan bir şey görüntüde düz değil. Pist kenarı, bina duvarı, ufuk çizgisi. Bunu lens yaptı. O görüntü üzerinden bir şey ölçmeyi planlıyorsan bunu modellemek zorundasın, çünkü hata tam da en az baktığın yerde en büyük.
Buna en sert SUAS çalışmamızda çarptım: drone kareleri haritaya, harita pikselleri yer koordinatına dönüşüyor. Kare merkezine yakın bir hedefin konumu doğru çıkıyordu. Aynı hedef köşeye yakınken metrelerce sapıyordu. Dedektör yanılmıyordu. Pikseller yanlış yerdeydi.

Şekil: sentetik veri üzerinde kendi çizimim.
Kalibrasyon aslında neyi kestiriyor
Başlangıç noktası iğne deliği modeli: her ışın tek bir noktadan geçer ve düz bir sensöre düşer. Bu modelde dünyadaki düz çizgi görüntüde de düz kalır. Gerçek lensler buna uymaz.
Kalibrasyon iki grup sayıyı kestirir. İçsel parametreler: piksel cinsinden odak uzaklıkları fx ve fy, bir de optik eksenin sensöre gerçekten değdiği nokta olan cx, cy; bu nokta neredeyse hiçbir zaman tam merkez değildir. İkinci grup, lensin ışınları ideal modelden nasıl saptırdığını anlatan distorsiyon katsayıları. OpenCV’de bu tipik olarak radyal için k1, k2, k3, tanjantsal için p1, p2 demek.
Çizgiler iki şekilde bükülür
Radyal distorsiyon görüntü merkezinden uzaklaştıkça büyür. Fıçı distorsiyonu çizgileri dışa bombeler ve uçurduğumuz geniş açılı lenslerde varsayılandır, çünkü 30 metre irtifada geniş görüş alanı geometrik saflıktan daha değerli. Yastık distorsiyonu ters yöne büker, tele uçta yaygındır. İki durumda da karenin merkezi neredeyse dürüsttür, köşeler yalan söyler.
Tanjantsal distorsiyon, lensin sensöre tam paralel oturmamasından gelir. Daha küçüktür ama asimetriktir: bombelemek yerine kaydırır. Ucuz montaj kendini burada gösterir.
Satranç tahtası ritüeli, doğru yapılırsa
OpenCV akışı standart: satranç tahtası bas, farklı açılardan çek, findChessboardCorners, calibrateCamera, karşılığında bir yeniden projeksiyon hatası al. Mekanik kısmı bir eğitim yazısı. Muhakeme kısmı değil. Benim gerçekten dayattıklarım:
- Karenin köşelerini kapsa. Distorsiyon, verine oturtulan bir polinom; veri vermediğin yerde ekstrapolasyon yapar. Köşeler, distorsiyonun en kötü olduğu ve tembel çekim oturumlarında tahtanın hiç uğramadığı yerdir.
- Tahtayı eğ. Cepheden çekimler odak uzaklığını iyi kısıtlamaz.
- Sadece global RMS’e değil, kare başına yeniden projeksiyon hatasına bak. Bulanık tek bir kare uydurmayı zehirler, ortalama hâlâ makul görünür.
- Modeli değil, üniteyi kalibre et. Aynı modelin iki kamerası aynı içsel parametreleri paylaşmaz. Savunma tarafında görünür ve termal kanalı yan yana çalıştırıyoruz; her biri ayrı kalibre ediliyor, çünkü termal lensin kendi geometrisi var ve basılı tahta yerine termal kontrastı olan bir hedef gerekiyor.
Ve mekanik her şeyden sonra yeniden kalibre et: odak değişimi, lens değişimi, sert iniş.
Aşağı akışta nereden ısırır
Distorsiyon giderme, sonrasındaki her şeyin sıkıcı ilk adımı. Kareleri haritaya dikmek, homografilerin düzlemi düzleme taşıdığını varsayar; kalan distorsiyon, harmanlamanın gizlediği ve ölçümün bulduğu hizasızlığa dönüşür. Pikselden yere konumlama, içsel parametrelerden geçen bir ışın demek; yanlış bir ana nokta haritadaki her hedefi kaydırır. Termal tespit işi aynı problemi daha kötü optikle devralır.
Tekrar tekrar öğrendiğim örüntü şu: distorsiyon gürültüyle çökmez. Sana neredeyse doğru sonuçlar verir, sapması kenarlara doğru büyür. Bu da tam olarak kazayla sahaya gönderdiğin türden bir hata.