Contents — find the section you need

Jika melihat video satu bingkai demi satu bingkai, tidak mudah untuk mengetahui bagian mana dari gambar yang bergerak seberapa banyak. Aliran Optik (Optical Flow) merepresentasikan ke mana kecerahan setiap piksel bergerak pada bingkai berikutnya, sebagai vektor. Ini menjadi bahasa umum untuk setiap proses yang melibatkan gerakan: prediksi tabrakan pada mobil otonom, lokalisasi mandiri untuk drone, analisis olahraga, dan interpolasi video.

0. Ringkasan 30 Detik

  • Aliran bukanlah "kecepatan objek itu sendiri" tetapi gerakan yang tampak dalam gambar. Gerakan kamera, gerakan objek, dan kedalaman semuanya bercampur di dalamnya.
  • Persamaan konstansi kecerahan hanya memberikan satu persamaan per piksel, sehingga harus diselesaikan dengan menambahkan asumsi kehalusan jendela lokal, titik fitur, atau regularisasi.

  • Lucas–Kanade memperlakukan jendela kecil sebagai kecepatan tunggal — metode pelacakan yang jarang. Horn–Schunck menggunakan kehalusan di seluruh gambar — metode estimasi yang padat.

  • Pergeseran besar membutuhkan piramida gambar; Oklusi, refleksi, dan keburaman memerlukan pengukuran kepercayaan dan penanganan outlier. Rolling shutter juga memerlukan koreksi untuk perbedaan waktu baris.

  • Metode berbasis pembelajaran seperti RAFT sangat akurat, tetapi sebaiknya diadopsi hanya setelah memeriksa memori GPU, perilaku di luar distribusi, kinerja waktu nyata, dan lisensi.

1. Dari Konstansi Kecerahan ke Persamaan Batasan Aliran

Diagram 1 · Use the button to switch views
Estimasi Aliran Optik dari piramida gambar ke medan vektor padat

Gambar 1 — Sebuah piramida menangani perpindahan besar terlebih dahulu, kemudian menyempurnakan medan vektor padat pada skala yang lebih halus. Masker kepercayaan dan oklusi harus bergerak bersama vektor.

Jika pola kecil dan stasioner bergerak antar frame, kita dapat mengidealkannya sebagai memiliki kecerahan konstan.

I(x,y,t)=I(x+u\Delta t,y+v\Delta t,t+\Delta t)

Ekspansi Taylor orde pertama bersama dengan \Delta t\to0 memberikan

I_xu+I_yv+I_t=0

Karena ada dua komponen kecepatan yang tidak diketahui (u,v) tetapi hanya satu persamaan, ini saja tidak dapat diselesaikan. Pada tepi, gerakan sepanjang arah tepi tidak terlihat; di wilayah datar, Tidak ada gradien sama sekali. Ini adalah masalah apertur.

2. Lucas–Kanade dan Horn–Schunck

Lucas–Kanade mengasumsikan kecepatan sama di seluruh jendela lokal W, dan meminimalkan kesalahan kuadrat berikut.

E(u,v)=\sum_{(x,y)\in W}w(x,y)\{I_xu+I_yv+I_t\}^2

Ia hanya menggunakan sudut di mana matriks gradien cukup terkondisi dengan baik, dan menggabungkannya dengan piramida dan pembaruan iteratif yang sama yang digunakan dalam pelacakan titik fitur (lihat bagian sebelumnya). calcOpticalFlowPyrLK dari OpenCV adalah implementasi dari keluarga ini.

Horn–Schunck memperlakukan medan aliran di seluruh gambar sebagai yang tidak diketahui, dan secara bersamaan meminimalkan batasan kecerahan dan kehalusan kecepatan.

E(u,v)=\iint (I_xu+I_yv+I_t)^2+\alpha^2(|\nabla u|^2+|\nabla v|^2)\,dxdy

\alpha yang lebih besar menghasilkan medan aliran yang lebih halus; yang lebih kecil memungkinkan diskontinuitas lokal. Penghalusan di sepanjang batas objek mencampur kecepatan objek yang berbeda, sehingga robust Kerugian atau regularisasi yang mempertahankan tepi digunakan sebagai gantinya.

3. Aliran Jarang dan Aliran Padat

Tipe Titik yang Diperkirakan Metode Representatif Kelebihan Kekurangan
Jarang Ratusan hingga ribuan titik, misalnya sudut LK, KLT Ringan, langsung masuk ke estimasi pose Meninggalkan celah di wilayah dengan tekstur rendah
Semi-padat Piksel dengan gradien VO langsung, metode berbasis Hessian Menyeimbangkan informasi geometris dengan biaya komputasi Tidak mengisi seluruh gambar
Padat Hampir setiap piksel Horn–Schunck, TV-L1, RAFT Efektif untuk objek bergerak, fluida, interpolasi Biaya komputasi, ambiguitas pada batas oklusi

Untuk Visual Odometry, meneruskan korespondensi jarang ke dalam komputasi geometris cenderung lebih stabil. Di sisi lain, menutupi area pejalan kaki yang bergerak, atau menggunakan gerakan per piksel untuk interpolasi video, membutuhkan aliran yang padat. Menentukan kepadatan yang dibutuhkan di awal, untuk tujuan yang ada, lebih efektif daripada sekadar menambahkan lebih banyak GPU pada masalah tersebut.

4. Menangani Pergeseran Besar, Oklusi, dan Perubahan Kecerahan

Pendekatan diferensial satu piksel gagal dalam menghadapi gerakan besar. Piramida Gaussian dibangun dengan mengecilkan gambar ke skala 1/2, 1/4, 1/8; pergeseran besar diperkirakan pada tingkat kasar, kemudian di-upsample ke tingkat halus dan disempurnakan secara iteratif. Terlalu banyak level piramida membuat objek kecil menghilang; terlalu sedikit level meninggalkan rentang pencarian yang tidak mencukupi.

Ketika pencahayaan berubah, konstansi kecerahan gagal, sehingga normalisasi lokal, arah gradien, kerugian Charbonnier yang kuat, atau perbedaan warna relatif digunakan sebagai gantinya. Di batas objek yang bergerak, piksel yang terlihat pada frame sebelumnya mungkin tersembunyi pada frame berikutnya (oklusi). Bendera oklusi, konsistensi maju-mundur, dan masker visibilitas digunakan daripada memaksakan jalur melaluinya.

5. Metode Berbasis Pembelajaran: Cara Membaca RAFT

RAFT (Recurrent All-Pairs Field Transforms) dikenal karena menghitung korelasi di seluruh pasangan piksel antara dua gambar dan kemudian menyempurnakan alur dengan operator pembaruan iteratif. Karena dapat memanfaatkan kumpulan kandidat korespondensi yang jauh lebih luas daripada "jendela lokal" metode klasik, metode ini dapat unggul di area dengan tekstur berulang atau di bawah pergeseran besar.

Namun, kesalahan titik akhir rata-rata (EPE) yang rendah pada benchmark tidak sama dengan aman untuk digunakan pada robot nyata di lapangan. Jika lensa kamera, eksposur, rolling shutter, debu, atau pencahayaan malam hari berbeda dari data pelatihan, kepercayaan akan menurun. Evaluasi harus mencakup waktu inferensi, resolusi input, kesalahan kuantisasi, driver GPU, dan lisensi model.

6. Memisahkan Gerakan Kamera dari Objek Dinamis

Mengonversi alur menjadi gerakan kamera membutuhkan matriks intrinsik kamera K dan kedalaman. Z . Dalam koordinat ternormalisasi dari titik gambar \mathbf{x} , aliran akibat translasi kamera \mathbf{t} dan kecepatan sudut \boldsymbol{\omega} secara konseptual dapat ditulis sebagai

\mathbf{u}=\frac{1}{Z}A(\mathbf{x})\mathbf{t}+B(\mathbf{x})\boldsymbol{\omega}

Komponen translasi bervariasi dengan 1/Z — benda yang lebih dekat bergerak lebih banyak daripada benda yang lebih jauh — sedangkan komponen rotasi tidak bergantung pada kedalaman. Aliran yang konsisten dengan model gerak tunggal, yang ditemukan melalui RANSAC, diperlakukan sebagai latar belakang; wilayah dengan residual besar menjadi kandidat objek dinamis. Dalam adegan dengan banyak kendaraan atau pejalan kaki, deteksi objek dan masker semantik digunakan bersama dengan estimasi geometris.

7. Metrik Evaluasi dan Pengukuran yang Dapat Direproduksi

Dengan aliran ground-truth (u^*,v^*) , kesalahan titik akhir rata-rata adalah

EPE=\frac{1}{N}\sum_{i=1}^{N}\sqrt{(u_i-u_i^*)^2+(v_i-v_i^*)^2}

Laporkan tidak hanya rata-rata tetapi Persentil ke-95, kesalahan pada batas oklusi, kesalahan di wilayah tekstur rendah, dan kesalahan yang diuraikan berdasarkan kecepatan. Karena kebenaran dasar sulit diperoleh pada perangkat keras nyata, biasanya dikombinasikan dari penangkapan gerakan, lintasan lengan robot yang diketahui, gambar sintetis, konsistensi maju-mundur, dan kesalahan reproyeksi VO.

Log harus mempertahankan stempel waktu kamera, eksposur, resolusi, tingkat piramida, ukuran jendela, jumlah iterasi, GPU/CPU, suhu, dan kepercayaan aliran. Bahkan dengan nama algoritma yang sama, hasilnya tidak dapat dibandingkan jika kondisi ini berbeda.

8. Ringkasan

Optical Flow membatasi gerakan piksel yang tampak dengan persamaan, dan menyelesaikannya menggunakan jendela lokal, kehalusan seluruh gambar, piramida gambar, dan korelasi berbasis pembelajaran. Sparse LK cocok untuk lokalisasi mandiri; dense flow cocok untuk objek dinamis dan pemrosesan video. Mempertimbangkan gerakan kamera versus gerakan objek, oklusi, pencahayaan, dan rolling shutter secara terpisah, dan mengevaluasi kondisi kegagalan daripada hanya kesalahan rata-rata, membantu menghindari pilihan implementasi yang salah.

Periksa pemahaman Anda
Apakah gerakan gambar merupakan kecepatan fisik objek?

Gerakan kamera, gerakan objek, dan kedalaman semuanya memengaruhi gerakan yang diproyeksikan. Mengonversi piksel per detik ke meter per detik membutuhkan informasi geometris.