Azure Kinect kalibrasyon işlevlerini kullanma
Kalibrasyon işlevleri, Azure Kinect cihazındaki her algılayıcının koordinat sistemleri arasında noktaların dönüştürülmesini sağlar. Tüm görüntülerin dönüştürülmesi gereken uygulamalar, dönüştürme işlevlerinde sağlanan hızlandırılmış işlemlerden yararlanabilir.
Kalibrasyon verilerini alma
Koordinat sistemi dönüşümleri gerçekleştirmek için cihaz kalibrasyonunun alınması gerekir. Kalibrasyon verileri k4a_calibration_t veri türünde depolanır. K4a_device_get_calibration() işlevi aracılığıyla cihazdan alınır. Kalibrasyon verileri yalnızca her cihaza değil, kameraların çalışma moduna da özgüdür. Bu nedenle k4a_device_get_calibration() giriş olarak ve color_resolution
parametrelerini gerektirirdepth_mode
.
OpenCV Uyumluluğu
Kalibrasyon parametreleri OpenCV ile uyumludur. Tek tek kamera kalibrasyon parametreleri hakkında daha fazla bilgi için OpenCV belgelerine de bakın. Ayrıca bkz. SDK'nın k4a_calibration_t türü ile ilgili OpenCV veri yapıları arasında dönüştürmeyi gösteren OpenCV uyumluluk örneği.
Eşgüdümlü Dönüştürme İşlevleri
Aşağıdaki şekilde Azure Kinect'in farklı koordinat sistemleri ve bunlar arasında dönüştürme işlevleri gösterilmektedir. Şekli basit tutmak için jiroskop ve ivmeölçerin 3B koordinat sistemlerini atlıyoruz.
Mercek bozulmasıyla ilgili açıklama: 2B koordinatlar her zaman SDK'daki bozuk görüntüye başvurur. SDK'nın undistortion örneği görüntü bozulmasını gösterir. Genel olarak, 3B noktalar lens bozulmasından hiçbir zaman etkilenmez.
3B koordinat sistemleri arasında dönüştürme
k4a_calibration_3d_to_3d() işlevi, kameranın dış kalibrasyonunu kullanarak kaynak koordinat sisteminin 3B noktasını hedef koordinat sisteminin 3B noktasına dönüştürür. Kaynak ve hedef, renk kamerası, derinlik kamerası, jiroskop veya ivmeölçer olmak üzere dört 3B koordinat sisteminden herhangi birine ayarlanabilir. Kaynak ve hedef aynıysa, değiştirilmemiş giriş 3B noktası çıkış olarak döndürülür.
2B ve 3B koordinat sistemleri arasında dönüştürme
k4a_calibration_3d_to_2d() işlevi, kaynak koordinat sisteminin 3B noktasını hedef kameranın 2B piksel koordinatlarına dönüştürür. Bu işlev genellikle proje işlevi olarak adlandırılır. Kaynak dört 3B koordinat sisteminden herhangi birine ayarlansa da, hedef derinlik veya renkli kamera olmalıdır. Kaynak ve hedef farklıysa, giriş 3B noktası k4a_calibration_3d_to_3d() kullanılarak hedef kameranın 3B koordinat sistemine dönüştürülür. 3B nokta hedef kamera koordinat sisteminde temsil edildikten sonra, karşılık gelen 2B piksel koordinatları hedef kameranın iç kalibrasyonu kullanılarak hesaplanır. Bir 3B nokta hedef kameranın görünür alanından düşerse geçerli değer 0 olarak ayarlanır.
k4a_calibration_2d_to_3d() işlevi, kaynak kameranın 2B piksel koordinatını hedef kamera koordinat sisteminin 3B noktasına dönüştürür. Kaynak, renk veya derinlik kamerası olmalıdır. Hedef, dört 3B koordinat sisteminden herhangi birine ayarlanabilir. 2B piksel koordinatlarına ek olarak, kaynak kameranın görüntüsündeki pikselin derinlik değeri (milimetre olarak) işlevin girişi olarak gereklidir; renkli kamera geometrisindeki derinlik değerini türetmenin bir yolu k4a_transformation_depth_image_to_color_camera() işlevini kullanmaktır. İşlev, kaynak kameranın odak noktasından çıkan 3B ışını, kaynak kameranın iç kalibrasyonunu kullanarak belirtilen piksel koordinatı üzerinden hesaplar. Derinlik değeri daha sonra bu ışında 3B noktasının tam konumunu bulmak için kullanılır. Bu işlem genellikle unproject işlevi olarak adlandırılır. Kaynak ve hedef kameralar farklıysa, işlev 3B noktayı k4a_calibration_3d_to_3d() aracılığıyla hedefin koordinat sistemine dönüştürür. 2B piksel koordinatı kaynak kameranın görünür alanından çıkarsa geçerli değer 0 olarak ayarlanır.
2B koordinat sistemleri arasında dönüştürme
k4a_calibration_2d_to_2d() işlevi, kaynak kameranın 2B piksel koordinatını hedef kameranın 2B piksel koordinatlarına dönüştürür. Kaynak ve hedef, renk veya derinlik kamerası olarak ayarlanmalıdır. İşlev, giriş olarak kaynak kamera görüntüsünde pikselin derinlik değerini (milimetre olarak) gerektirir. Renkli kamera geometrisindeki derinlik değerini türetmenin bir yolu k4a_transformation_depth_image_to_color_camera() işlevini kullanmaktır. Kaynak kamera sisteminin 3B noktasına dönüştürmek için k4a_calibration_2d_to_3d() çağırır. Ardından hedef kamera görüntüsünün 2B piksel koordinatlarına dönüştürmek için k4a_calibration_3d_to_2d() öğesini çağırır. k4a_calibration_2d_to_3d() veya k4a_calibration_3d_to_2d() geçersiz bir sonuç döndürürse geçerli değer 0 olarak ayarlanır.
İlgili örnekler
Sonraki adımlar
Artık kamera kalibrasyonlarını biliyorsunuz, ayrıca nasıl yapılacağını da öğrenebilirsiniz
Ayrıca gözden geçirebilirsiniz