Visi Komputer Tingkat Lanjut- Pengantar Pelacakan Visual Langsung!

Node Sumber: 1865647

Artikel ini diterbitkan sebagai bagian dari Blogathon Ilmu Data

Tugas melacak objek dalam gambar adalah salah satu area ML terpanas dan paling banyak diminta. Namun, kami sudah memiliki berbagai macam teknik dan alat yang berbeda. Artikel ini akan membantu Anda memulai perjalanan Anda ke dunia computer vision!

Pertama, kami akan memperkenalkan beberapa jenis teknik pelacakan visual. Selanjutnya, kami akan menjelaskan cara mengklasifikasikannya. Kami juga akan berbicara tentang aspek dasar pelacakan visual langsung, dengan fokus pada metode berbasis wilayah dan berbasis gradien. Terakhir, kami akan menunjukkan cara mengimplementasikan metode ini dengan Python. Ayo mulai!

Pelacakan Visual โ€“ Pendahuluan

Pelacakan visual, juga dikenal sebagai pelacakan objek atau trek video, adalah tugas memperkirakan lintasan objek target dalam sebuah adegan menggunakan informasi visual. Informasi visual dapat berasal dari berbagai sumber gambar. Kita dapat menggunakan kamera optik, pencitra termal, ultrasound, sinar-X, atau resonansi magnetik.

Daftar perangkat pencitraan yang paling umum:

perangkat gambar |Pelacakan Visual

SOURCE

Selain itu, pelacakan visual adalah topik yang sangat populer karena memiliki aplikasi dalam berbagai macam tugas. Misalnya diterapkan di bidang interaksi manusia-komputer, robotika, augmented reality, kedokteran, dan militer.

Gambar berikut menunjukkan contoh aplikasi pelacakan visual:

Aplikasi Pelacakan Visual

SOURCE

Sekarang mari kita lihat bagaimana kita dapat mengkategorikan solusi yang tersedia saat ini.

Klasifikasi metode pelacakan visual

Menurut komponen di bawah ini, kami dapat mengklasifikasikan metode pelacakan Visual yang terkenal:

metode pelacakan visual

SOURCE

Mari kita masuk lebih dalam ke setiap komponen.

Presentasi objektif

Pertama, kita perlu fokus pada objek apa yang kita lacak. Komponen ini disebut sebagai target representasi pelacakan visual (target representasi). Ada beberapa representasi khas dari target. Sorotan adalah:

presentasi objektif |Pelacakan Visual

SOURCE

Namun, di antara tampilan target ini, kotak pembatas adalah metode yang paling umum. Alasannya adalah bahwa kotak pembatas dengan mudah mendefinisikan banyak objek.

Model penampilan

Jadi, kami telah melihat beberapa cara untuk mewakili tujuan kami. Sekarang mari kita lihat bagaimana memodelkan tampilan target. Ide dari model eksternal adalah untuk menggambarkan objek target berdasarkan informasi visual yang tersedia.

Histogram gambar

Sebagai contoh, pada gambar di bawah ini, kita dapat melihat seorang pemain sepak bola berbaju biru berlari melintasi lapangan. Pemain diwakili oleh kotak pembatas.

Histogram gambar | Pelacakan Visual

SOURCE

Kotak pembatas ini akan menentukan histogram. Kami biasanya menggunakan histogram pada gambar skala abu-abu, tetapi kami juga dapat menggunakan histogram warna. Pada gambar di atas, kita dapat merepresentasikan histogram warna dari kotak pembatas persegi panjang. Kita dapat menggunakan histogram ini untuk membedakan pemain target dari latar belakang hijau.

Sekarang mari kita ilustrasikan ini dengan sebuah contoh. Misalnya, kami memiliki histogram di mana 70% berwarna biru dan 30% berwarna hijau. Ini berarti bahwa ketika pemain bergerak, kami ingin untuk bermanuver kotak pembatas sekitar daerah dan temukan tempat itu dengan yang terbaik persentase biru. Dengan cara ini, setelah kami menemukan bingkai, kami akan selalu memiliki kecocokan yang sempurna dengan histogram aslinya. Dengan cara ini kita dapat melacak pemain.

Intensitas gambar

Selain itu, kita dapat menggunakan gambar referensi itu sendiri (referensi) sebagai model penampilan. Dalam hal ini, objek target diukur sebagai satu set intensitas piksel. Misalnya, jika target bergerak, tujuan kami adalah menemukan kecocokan yang tepat dengan gambar referensi. Proses ini disebut pencocokan template. Ini mendefinisikan area gambar yang cocok dengan pola yang ditentukan sebelumnya. Namun, masalah dengan pelacakan visual adalah bahwa gambar dapat berubah bentuk, terbalik, diproyeksikan, dll. Ini berarti pencocokan pola tidak akan bekerja dengan baik jika gambar terdistorsi.

intensitas gambar | Pelacakan Visual

SOURCE

Kami juga dapat mewakili target dengan bank filter, yang menghitung gambar yang dihasilkan menggunakan yang pertama intensitas piksel. Kita bisa menggunakan bidang distribusi sebagai model penampilan.

Atribut gambar

Jenis model penampilan lain yang sangat populer adalah tag gambar. Ini didasarkan pada gambar referensi target, di mana satu set fitur yang dapat dibedakan dapat dihitung untuk mewakili target. Beberapa algoritma deteksi objek sering digunakan untuk mengekstrak fitur.atribut gambar | Pelacakan Visual

SOURCE

Dekomposisi subruang

Dalam beberapa kasus, subruang gambar referensi digunakan untuk mensimulasikan tampilan suatu objek. Model yang lebih canggih ini telah terbukti sangat berguna dalam situasi di mana tampilan objek yang dilacak berubah seiring waktu. Dalam konteks ini, Analisis Komponen Utama dan pendekatan berbasis kamus sering digunakan. Di sini Anda dapat mengurai gambar referensi dari objek target. Sebagai contoh, katakanlah kita memiliki kumpulan data gambar 100 orang. Kami akan mendapatkan gambar tengah dan menambahkan satu komponen. Komponen ini memperbaiki arah di mana orang tersebut melihat โ€“ ke kiri atau ke kanan. Kemudian, kita dapat menggunakan komponen ini untuk menemukan orang yang melihat ke kanan ( Eigenface โ€“ salah satu pendekatan untuk mengenali orang dalam gambar).

Selanjutnya, kita akan fokus pada jenis model tampilan yang sering digunakan dalam metode pelacakan berbasis wilayah.

Metode pelacakan berdasarkan wilayah

Pelacakan berbasis wilayah berasal dari gagasan untuk melacak suatu wilayah atau bagian dari suatu gambar. Seperti yang kami katakan sebelumnya, kami akan mewakili objek target menggunakan kotak pembatas. Untuk melacak objek yang dibatasi oleh kotak pembatas, kita perlu mendefinisikan model tampilan yang sesuai. Pada contoh di bawah, model tampilan adalah template intensitas gambar. Di sini kami memiliki gambar referensi target di sebelah kiri dan kami mencari yang paling cocok dengan gambar aslinya.

pelacakan berbasis wilayah

SOURCE

Sekarang kita telah menerima model penampilan untuk objek target kita, kita perlu mensimulasikan gerakannya dalam adegan. Ini berarti bahwa masalah pelacakan diselesaikan dengan menemukan parameter model gerak. Kesamaan antara gambar referensi dan gambar target asli dimaksimalkan oleh parameter model gerak. Misalnya, target hanya bergerak secara horizontal dan vertikal di tempat kejadian. Dalam hal ini, model translasi sederhana dengan dua parameter tx dan ty akan cukup untuk mensimulasikan posisi gambar referensi.

Secara alami, jika objek target bergerak dengan cara yang lebih kompleks, maka kita perlu menyiapkan dan menggunakan model transformasi yang lebih kompleks dengan derajat kebebasan tambahan, seperti yang ditunjukkan di bawah ini:

matriks jarak | Pelacakan Visual

Misalnya, jika kita melacak sampul buku, maka kita harus menggunakan model proyeksi yang memiliki 8 derajat kebebasan. Di sisi lain, jika targetnya tidak kaku, maka kita perlu menggunakan model deformable. Jadi kita bisa menggunakan B-spline atau Thin-Plate Splines untuk menggambarkan deformasi objek dengan benar.

Model parametrik dapat dideformasi:

Untuk menginisialisasi pencarian posisinya saat ini, kita sering menggunakan posisi objek target pada frame sebelumnya. Jadi, mengingat vektor parameter p t-1, model bergerak kita di bingkai sebelumnya t-1, tugas kita adalah menemukan vektor pt baru yang paling cocok dengan referensi dan gambar saat ini.

Fungsi kesamaan

Ini membawa kita ke pertanyaan yang sangat menarik: Apa yang paling cocok untuk referensi dan gambar saat ini? Untuk menemukan kecocokan terbaik, Anda perlu menemukan bagian dari gambar saat ini yang paling mirip dengan gambar referensi. Ini berarti bahwa kita harus memilih fungsi kesamaan f antara referensi dan gambar asli. Ini digunakan dalam pencocokan pola. Pada contoh berikut, kita dapat melihat bahwa kesamaan antara dua gambar pertama harus lebih besar daripada kesamaan antara dua gambar kedua.

fungsi kesamaan | Pelacakan Visual

Beberapa fungsi kesamaan digunakan untuk menghitung kesamaan antara template dan gambar asli. Berikut adalah beberapa di antaranya:

Fungsi kesamaan:

  • Jumlah Selisih Mutlak ( SAD )

  • Jumlah Selisih Kuadrat ( SSD )

  • Korelasi Silang Ternormalisasi ( NCC )

  • Informasi Bersama ( MI )

  • Indeks Kesamaan Struktural ( SSIM )

Jadi, kami menemukan bahwa untuk pelacakan, Anda perlu memilih model tampilan objek target, model gerak, dan fungsi kesamaan untuk menentukan seberapa mirip gambar referensi dengan gambar asli dalam video. Mempertimbangkan parameter p t-1 untuk frame t-1 sebelumnya, kita perlu mengembangkan strategi untuk menemukan parameter model baru pt pada waktu t saat ini. Pendekatan paling sederhana adalah dengan mendefinisikan area pencarian lokal di sekitar parameter p t-1 sebelumnya. Pada contoh di bawah, kita akan berpindah dari -20px ke + 20px pada sumbu x dan dari -20piksel hingga +20 piksel pada sumbu y dari posisi target pada frame sebelumnya (dengan asumsi kita hanya memiliki broadcast).

gambar referensi

SOURCE

Dengan bantuan pengetahuan sebelumnya tentang gerakan objek, kita dapat mempersingkat pencarian lengkap di lingkungan yang luas dari posisi objek sebelumnya. Misalnya, kita bisa menggunakan sistem filtrasi Kalman klasik atau filter yang lebih canggih seperti filter partikel.

Metode berbasis gradien

Lain sangat modis strategi pencarian adalah penurunan gradien. Kami pertama-tama memilih fungsi kesamaan yang dapat dibedakan sehubungan dengan parameter pelacakan dan memiliki lanskap yang halus dan cembung di sekitar yang paling sesuai. Kemudian kita dapat menggunakan metode gradien dan menemukan parameter optimal dari model transformasi (pergerakan).

Dalam contoh berikut, kita memiliki kasus di mana kita perlu menghitung SSD (Sum of Squared Differences).

metode berbasis gradien

SOURCE

Misalkan persegi panjang hijau adalah gambar referensi dan kami ingin memeriksa kesamaannya dengan gambar asli (persegi panjang biru). Kami akan menghitung SSD dengan menggeser persegi panjang biru sehingga cocok dengan persegi panjang hijau dan mengurangi kedua gambar tersebut. Kemudian kita kuadratkan perbedaannya dan jumlahkan. Jika kita mendapatkan angka yang kecil, itu berarti kita memiliki pola yang sama. Proses ini ditampilkan dalam gambar berikut.

matriks |

Penting untuk dicatat bahwa SSD akan menjadi fungsi dari vektor p , di mana p = [xy] adalah vektor kita. Di sini x dan y adalah parameter terjemahan yang kita cari. Hasil penghitungan skor SSD untuk persegi panjang biru, untuk offset plus atau minus lima piksel di sekitar titik penyelarasan optimal, memberi kita kurva ini. Dengan demikian, kita dapat dengan jelas melihat sifat SSD yang cembung dan mulus dalam contoh ini.

ssd|

SOURCE

Pada contoh di atas di sebelah kanan, kita melihat fungsi dua dimensi dari pandangan mata burung. Minimum ada di tengah, dan kemudian nilai tinggi terletak di sekitarnya. Sekarang, jika kita ingin menggambar fungsi ini dalam bentuk satu dimensi, akan terlihat seperti ini:

fungsi

Katakanlah kita melihat sepanjang arah-x. Pertama, kita akan secara acak memilih posisi awal untuk x. Misalkan x = 4 . Kemudian kami menghitung gradien fungsi SSD. Selanjutnya, kita belajar bahwa kita perlu pindah ke fungsi minimum. Gradien akan memberi tahu kita arah mana yang harus bergerak dalam gambar asli.

Jadi apa keuntungan utama dari gradient descent? Mari kita ambil contoh model transformasi dengan berbagai derajat kebebasan, seperti model proyektif, yang kita gunakan untuk melacak papan dalam contoh berikut.

pelacakan

SOURCE

Pertama, mari kita jelaskan apa yang dimaksud dengan derajat kebebasan berganda. Katakanlah kita memiliki gambar persegi panjang asli dan gambar template. Perhatikan bahwa pada contoh di bawah, persegi panjang pada gambar asli di sebelah kiri adalah versi proyeksi gambar template di sebelah kanan.

gambar asli dan template

Namun, sekarang tidak mungkin untuk menghitung SSD. Salah satu cara untuk mengatasi masalah ini adalah dengan mendeteksi titik-titik kunci di kedua gambar, dan kemudian menggunakan beberapa algoritma pencocokan fitur yang akan menemukan kecocokannya. Namun, kita juga bisa mencari menggunakan nilai intensitas gambar template. Untuk melakukan ini, kita akan menerapkan kelengkungan transformasional. Seperti yang kami jelaskan sebelumnya di artikel ini, kami akan mengalikan gambar dengan matriks transisi berikut:

Ini berarti bahwa di sini kita memiliki 8 derajat kebebasan karena dalam matriks kita hanya memiliki 8 parameter dan satu angka, yang ditetapkan pada 1. Jadi persegi panjang asli kita sekarang akan memiliki perubahan perspektif. Artinya, untuk menghitung SSD, selain mencari parameter translasi x dan y, kita juga perlu mencari parameter lain untuk merepresentasikan rotasi, penskalaan, kemiringan, dan proyeksi.

Jadi, keuntungan utama dari gradient descent adalah ketika memutar, menskala, dan mendeformasi objek yang diinginkan, kita tidak harus melalui 1000 dan 1000 kombinasi untuk menemukan parameter transformasi terbaik. Dengan penurunan gradien, kita bisa mendapatkan parameter ini dengan presisi sangat tinggi hanya dalam beberapa iterasi. Dengan demikian, ini adalah penghematan yang signifikan dalam upaya komputasi.

Kesimpulan

Dalam artikel ini, kami mempelajari bahwa teknik pelacakan gambar memiliki empat komponen utama: model penampilan, model transformasi, ukuran kesamaan, dan strategi pencarian. Kami menghadirkan beberapa model penampilan dan juga membicarakan model transformasi, baik rigid maupun non-rigid. Selain itu, kami melihat cara menghitung SSD dan juga membahas cara menerapkan penurunan gradien, salah satu strategi pencarian paling umum. Di artikel mendatang, kami akan terus menggunakan metode ini.

Media yang ditampilkan dalam artikel ini tidak dimiliki oleh Analytics Vidhya dan digunakan atas kebijaksanaan Penulis.

Sumber: https://www.analyticsvidhya.com/blog/2021/08/advanced-computer-vision-introduction-to-direct-visual-tracking/

Stempel Waktu:

Lebih dari Analisis Vidhya