Contents — find the section you need
Jika deteksi fitur adalah proses memutuskan "di mana dalam gambar akan digunakan sebagai penanda," pelacakan fitur adalah proses menemukan "ke mana penanda itu bergerak pada frame berikutnya." Pelacakan yang stabil memungkinkan Anda memperkirakan gerakan kamera, kecepatan objek, atau lokalisasi diri robot. Sebaliknya, kesalahan pada satu korespondensi saja dapat menyebabkan estimasi pose dan peta selanjutnya runtuh sekaligus. Artikel ini memperlakukan perbedaan antara detektor dan deskriptor sebagai hal yang sudah pasti, dan menangani optimasi lokal gerakan piksel dan pencocokan deskriptor sebagai satu masalah desain.
0. Ringkasan 30 Detik
- Ada dua pendekatan untuk pelacakan: "mencari patch di sekitar frame sebelumnya pada frame berikutnya," dan "mendeteksi dan menghitung deskriptor di setiap frame dan mencocokkannya."
-
Metode Lucas–Kanade mengasumsikan konstansi kecerahan, gerakan lokal, dan kecepatan bersama di antara piksel tetangga, dan menyelesaikan sistem persamaan normal 2×2. Menggunakan piramida memperluasnya untuk menangani perpindahan besar.
-
Pencocokan deskriptor dapat melakukan pencarian ulang bahkan di antara celah bingkai yang besar, tetapi dengan biaya komputasi yang lebih tinggi dan lebih banyak ketidakcocokan. Verifikasi secara geometris dengan uji rasio, tetangga terdekat bersama, dan RANSAC.
-
Kualitas pelacakan harus dinilai tidak hanya berdasarkan jumlah korespondensi, tetapi juga berdasarkan distribusi spasial di seluruh gambar, kesalahan reproyeksi, konsistensi maju-mundur, dan tingkat pemulihan setelah oklusi.
-
Kasus-kasus sulitnya adalah blur gerak, tekstur rendah, pantulan, objek dinamis, rolling shutter, dan perubahan skala yang tiba-tiba. Skor kepercayaan dan mekanisme pendeteksian ulang sangat penting.
1. Mengapa Titik-titik pada Gambar Tampak Bergerak
Gambar 1 — Sebuah korespondensi adalah hipotesis sampai geraknya sesuai dengan titik-titik tetangga dan model kamera. Cakupan spasial sama pentingnya dengan jumlah kecocokan mentah.
Sebuah titik 3D X diproyeksikan ke \mathbf{x}=(x,y) pada gambar di bawah gerakan kamera. Dengan interval frame \Delta t, tujuan pelacakan adalah untuk menemukan perpindahan \mathbf{d}_k di
Ketika kamera melakukan translasi, kecepatan yang tampak bervariasi dengan kedalaman; ketika berputar, seluruh gambar mengalir ke arah yang sama. Pengurangan gambar berurutan secara sederhana rentan terhadap perubahan pencahayaan dan noise eksposur, sehingga struktur patch lokal digunakan sebagai gantinya.
2. Lucas–Kanade: Menyelesaikan Jendela Kecil Sekaligus
Asumsi konstansi kecerahan adalah
Linearisasi untuk perpindahan kecil (u,v) memberikan persamaan kendala aliran optik
Pada satu piksel, ini adalah satu persamaan untuk dua variabel yang tidak diketahui (masalah apertur). Jadi piksel dalam jendela W dikumpulkan, dan kuadrat terkecil
diselesaikan. Istilah dalam tanda kurung adalah matriks struktur lokal titik fitur — semakin besar gradien dalam dua arah, di sudut, semakin stabil inversinya. Pada dinding datar atau tepi tunggal, gerakan tidak dapat ditentukan secara unik.
Untuk menangani perpindahan besar, perpindahan dipropagasi dari tingkat kasar piramida yang diperkecil ke tingkat halus. Pada setiap tingkat, beberapa iterasi dijalankan sebelum dihitung ulang pada tingkat berikutnya posisi. Dalam implementasinya, Anda menyesuaikan kedalaman piramida, ukuran jendela, kriteria penghentian, nilai eigen minimum, dan kesalahan pelacakan maju-mundur.
3. Memilih Antara Ini dan Pencocokan Deskriptor
Deskriptor seperti ORB atau SIFT mengubah patch di sekitarnya menjadi vektor atau string bit, dan mengambil kandidat jarak terdekat sebagai korespondensi. Untuk gerakan kecil antar frame berurutan, Lucas–Kanade cepat, tetapi pencocokan ulang deskriptor menjadi berharga ketika memulihkan dari oklusi, melewatkan frame, atau ketika kamera bergerak secara substansial.
| Metode | Input | Kelebihan | Kekurangan | Penggunaan umum |
|---|---|---|---|---|
| Pelacakan LK | Titik frame sebelumnya dan gambar frame berikutnya | Cepat, akurasi subpiksel | Lemah hingga perpindahan besar, oklusi, tekstur rendah | VO, pelacakan waktu nyata |
| Pencocokan ORB | Deskriptor dari 2 gambar | Ringan, menangani rotasi | Ketidaksesuaian dari refleksi/buram | Inisialisasi/pencarian ulang SLAM |
| Pencocokan SIFT | Deskriptor dari 2 gambar | Tahan terhadap skala/rotasi | Komputasi, memori | SfM, pengambilan gambar |
| Berbasis pembelajaran | Titik, deskriptor, pencocok | Berpotensi tahan terhadap perubahan tampilan yang besar | Di luar data pelatihan, beban GPU | Lingkungan yang sulit, penelitian |
Mengambil hanya kandidat deskriptor dengan jarak terdekat memungkinkan terjadinya ketidaksesuaian dari pola yang serupa. Membutuhkan d_1/d_2\lt\tau (uji rasio) antara jarak terdekat d_1 dan jarak terdekat kedua d_2, dan selanjutnya memeriksa tetangga terdekat bersama dari A→B dan B→A, akan membantu. Terakhir, verifikasi dengan RANSAC menggunakan kesalahan reproyeksi matriks fundamental, homografi, atau PnP yang diperkirakan dari korespondensi.
4. Mengkuantifikasi Pelacakan Kepercayaan Diri
Dalam implementasi, menilai "pelacakan berhasil" hanya sebagai "sebuah titik dikembalikan" tidaklah cukup. Pencatatan hal-hal berikut memungkinkan Anda untuk mengisolasi penyebab kegagalan:
- Nilai eigen minimum dan residual LK
- Perbedaan antara pelacakan maju dan mundur (kesalahan maju-mundur)
- Distribusi rasio deskriptor dan jarak
- Rasio inlier RANSAC dan kesalahan reproyeksi
- Distribusi spasial titik-titik pada gambar (apakah hanya terkumpul di tengah?)
- Pergeseran antar-bingkai rata-rata, metrik blur, eksposur/gain
Bahkan dengan rasio inlier RANSAC yang tinggi, jika semua titik terkumpul di salah satu sudut gambar, estimasi pose akan menurun. Membatasi jumlah titik maksimum per sel grid dan menyebarkan titik fitur di seluruh bidang pandang meningkatkan kemampuan pengamatan rotasi dan translasi. Terkadang, menjaga sejumlah kecil korespondensi yang tersebar di berbagai arah dan jarak lebih baik daripada sekadar meningkatkan jumlah titik.
5. Objek Bergerak dan Rolling Shutter
Visual Odometry mengasumsikan Lingkungan statis untuk memperkirakan pergerakan kamera. Ketika banyak pejalan kaki, mobil, atau kipas berputar muncul dalam bingkai, korespondensi mereka menjadi outlier yang tidak konsisten dengan model pergerakan kamera. Ketika terlalu banyak objek dinamis untuk dihilangkan hanya dengan RANSAC, gabungkan masking semantik, pengelompokan aliran optik, pemodelan latar belakang, dan konsistensi kedalaman.
Rana bergulir kamera CMOS mengekspos gambar baris demi baris, dari atas ke bawah, pada waktu yang sedikit berbeda. Di bawah rotasi atau getaran cepat, pose kamera berubah baris demi baris bahkan dalam satu bingkai, mematahkan asumsi model proyeksi tunggal. Mitigasi meliputi koreksi waktu baris menggunakan kecepatan sudut IMU, rana global, eksposur singkat, dan kalibrasi waktu pembacaan.
6. Alur Implementasi Minimal
-
Kalibrasi kamera bersama dengan intrinsik, distorsi, dan stempel waktu.
-
Deteksi FAST/ORB atau Shi–Tomasi pada bingkai awal, dan samakan secara spasial melalui grid.
-
Pada setiap bingkai baru, lacak dengan LK piramidal, periksa Kesalahan maju-mundur dan batas gambar.
- Buang titik-titik dengan kepercayaan rendah, dan deteksi titik-titik baru di sel grid yang kurang terisi.
- Jalankan pencocokan deskriptor pada interval yang diperlukan, hapus outlier dengan RANSAC.
- Teruskan korespondensi yang tersisa ke langkah fusi Essential Matrix, PnP, atau IMU.
- Jika titik-titik hilang terus menerus, inisialisasi ulang, dan catat status pelacakan dan penyebabnya.
Memutuskan kapan melanjutkan pelacakan
Ketika oklusi atau perubahan eksposur sementara mengurangi jumlah titik, mengekstrapolasi setiap posisi lama dapat mengubah korespondensi yang salah menjadi pelacakan yang tampak stabil. Periksa nomor frame, stempel waktu, batas gambar, dan kesalahan maju-mundur terlebih dahulu, lalu hapus kandidat di luar batas operasi. Bahkan jumlah yang cukup pun tidak aman ketika semua titik yang tersisa menempati satu wilayah gambar kecil; hentikan estimasi pose, deteksi ulang berdasarkan sel grid, dan pisahkan latar belakang statis dari objek bergerak sebelum menyesuaikan kembali model geometris. Merekam ini sebagai mesin keadaan dengan status "pelacakan" dan "inisialisasi ulang" membuat data yang hilang dapat dibedakan dari kecocokan yang salah.
Dalam implementasi, lampirkan nomor frame dan stempel waktu pengamatan ke setiap korespondensi sehingga penundaan pemrosesan tidak dapat mencampur titik lama ke dalam frame yang lebih baru. Ketika kamera bergerak tiba-tiba, periksa apakah perpindahan masih sesuai dengan level piramida dan jendela terkasar. Jika tidak, beralih ke pencarian ulang deskriptor lebih aman daripada melebarkan jendela hingga konvergen pada pola lain. Kandidat yang dicari ulang masih harus melewati pemeriksaan residual epipolar atau homografi dan konsistensi maju-mundur. Jika objek bergerak dilacak secara sengaja, simpan titik gerak kamera dan titik pelacakan objek dalam set terpisah; jangan menggunakan kembali keputusan outlier dari satu set untuk set lainnya. Putar ulang log dengan perubahan pencahayaan, oklusi, dan penundaan komunikasi untuk menguji pemulihan pada batas-batas ini.
7. Kesimpulan
Pelacakan fitur adalah teknologi yang memperlakukan detektor, optimasi lokal, pencocokan deskriptor, dan verifikasi geometris sebagai satu masalah desain kepercayaan. LK dengan lancar menghubungkan frame berurutan, deskriptor pulih dari perubahan besar, dan RANSAC menyaring ketidakcocokan secara geometris. Daripada bergantung pada salah satu dari ini, menjaga Log yang mencakup distribusi titik, sinkronisasi waktu, objek dinamis, dan rolling shutter secara substansial meningkatkan reproduksibilitas Visual SLAM dan VIO.
Apakah titik yang berhasil dilacak selalu merupakan kecocokan yang benar?
Pelacakan dapat melompat ke pola yang serupa. Periksa konsistensi maju-mundur, residual, dan geometri daripada hanya menghitung trek saja.
Referensi
- OpenCV — Optical Flow / Lucas-Kanade
- OpenCV — Pencocokan fitur
- Bouguet, Implementasi piramidal dari pelacak fitur Lucas Kanade affine
- Makalah ORB-SLAM3
- Kertas VINS-Mono
Lacak titik ini di antara dua bingkai dalam Lab aliran optik.
Komentar
Silakan masuk terlebih dahulu.
Belum ada data.