Dalam computer vision terdapat metode untuk mengukur jarak ke suatu objek tanpa menggunakan sensor kedalaman dan kamera stereo. Dalam makalah ini, metode yang digunakan untuk menentukan posisi dan kecepatan troli crane overhead.
Karena kereta dilengkapi dengan encoder, saya akan dapat menunjukkan seberapa akurat metode ini, berdasarkan kesamaan segitiga, bekerja. Artikel tersebut menunjukkan cara mengukur jarak dengan satu kamera, dan cara menggunakannya dalam tugas praktis.
Topik ini didedikasikan untuk tesis master saya, yang saya tulis dua tahun lalu.
Peralatan
Penelitian dilakukan di laboratorium industri OOO PO Privod-Avtomatika di kota Magnitogorsk, dengan derek girder terpasang yang mensimulasikan pengoperasian crane overhead yang sebenarnya.
Selama percobaan, video pergerakan derek direkam dengan prosedur simultan untuk mengambil bacaan dari pembuat enkode. Grafik kecepatan diperoleh dalam perangkat lunak SoMove dari Schneider Electric.
Video tersebut direkam pada kamera Canon EOS 1200D dengan resolusi 1920x1080.
Untuk mendeteksi gerobak, label grafik dengan persegi panjang yang digambar dan lingkaran di dalamnya digunakan. Solusinya tidak sepenuhnya berhasil, sebelum percobaan saya seharusnya lebih memahami label. Tetapi dengan bantuan analisis kontur (batasan rasio luas dan aspek), saya masih dapat mendeteksi persegi panjang yang diinginkan. Saya juga akan menambahkan bahwa jika objek mudah dideteksi dan ukuran fisik dapat diukur secara akurat, label grafik tidak diperlukan.
Algoritma kerja
Metode penghitungan jarak didasarkan pada kemiripan segitiga yang menyatu pada bukaan lensa.
Mari kita ukur luas tanda di atas kertas menggunakan penggaris dan luas tanda di bingkai menggunakan perpustakaan terbuka. Dengan mengetahui panjang fokus, kita bisa menghitung jarak ke objek.
Bereksperimen
Sebuah kamera digital dipasang di depan troli crane overhead. Pada jarak yang cukup untuk sudut pandang untuk menutupi seluruh area derek.
Diagram instalasi. Lihat dari atas.
Dua video uji direkam, gerakan di sepanjang sumbu x - mundur, menjauh dari kamera dan sepanjang sumbu y - pertama ke kiri dan kemudian ke kanan. Nilai posisi dan waktu dituliskan ke array numpy dan kemudian
diekspor ke Matlab, di mana grafik perpindahan S (t) dibuat.
Membedakan data, kita mendapatkan grafik kecepatan V (t).
x_veloc = np.diff(x_position) / np.diff(time_mas)
Karena plot gerakan memiliki noise halus yang terkait dengan deteksi tepi yang tidak akurat dan iluminasi yang tidak merata, operasi diferensiasi meningkatkan noise ini secara signifikan.
Mari kita kelancaran kebisingan menggunakan filter urutan pertama di Matlab, dan bandingkan pembacaan encoder dengan pembacaan kamera digital.
Grafik tersebut menunjukkan seberapa akurat pengukuran jarak dapat diperoleh dengan satu kamera.
Untuk mengurangi tingkat kebisingan dan mendapatkan grafik yang lebih halus, versi kedua dari tag dengan pelindung dan pencahayaan lokal dikembangkan.
Secara teori, ini harus memungkinkan untuk mengurangi kebisingan dan dengan demikian meningkatkan akurasi pengukuran. Sayangnya, kami belum dapat menguji versi baru dari tag tersebut.
Bagi mereka yang tertarik untuk mempelajari lebih lanjut tentang pelacakan objek berdasarkan analisis kontur, ada artikel bagus Mengestimasi akurasi metode pelacakan untuk menentukan koordinat 2d dan kecepatan sistem mekanik dari data fotografi digital.
Dalam artikel tersebut, saya berbicara tentang metode paling sederhana untuk mengukur jarak ke suatu objek dan menunjukkan akurasi pengukuran apa yang bisa diperoleh. Terima kasih atas perhatiannya.