Object Tracking (1)

 

Setelah sekian lama berkutat dengan source code OpenCV, akhirnya saya diminta oleh advisor saya untuk mempraktekkan konsep template matching pada gambar yang bergerak. Sebelumnya, saya sudah mempelajari template matching sederhana pada gambar tak bergerak.

Konsep template matching ini menjadi dasar dari pengenalan pola, namun jauh lebih sederhana. Template matching dilakukan dengan cara melakukan cropping bagian tertentu pada sebuah gambar. Kemudian dengan template tersebut, kita mencari posisi spasial (x,y) dari template pada gambar asli (reference image). Konsep ini bisa digunakan untuk mengetahui posisi objek yang bergerak.

Untuk melakukan hal ini, hal pertama yang harus dilakukan adalah melakukan motion analysis dengan menggunakan OpenCV. Pada OpenCV Manual, Anda bisa membaca bab 2 : Motion Analysis and Object Tracking. OpenCV memungkinkan kita untuk melakukan image processing pada tiap-tiap frame gambar bergerak yang ditangkap oleh kamera. Dengan menggunakan loop “for”, kita melakukan template matching pada tiap-tiap frame yang berhasil ditangkap kamera. Oya, ada juga artikel lain tentang object detection yang bisa Anda lihat di sini.

Berikut ini bagan alir sederhana untuk melakukan object tracking menggunakan template matching :

Untuk melakukan proses tresholding, gambar pada masing-masing frame bergerak harus diubah terlebih dahulu ke dalam bentuk grayscale. Untuk itu, bisa digunakan fungsi cvConvertImage dan cvCvtColor, sebelum akhirnya diekseskusi dengan fungsi cvThreshold. Gambar template pun harus diubah terlebih dahulu menjadi bentuk grayscale. Setelah itu, rapikan hasil tresholding dengan proses morfologi, menggunakan fungsi cvErode dan cvDilate.

Untuk template matching, Anda bisa menggunakan funsgi cvMatchTemplate. Kemudian setelah itu Anda bisa menemukan lokasi dari template tersebut di image reference Anda menggunakan fungsi cvMinMaxLoc. Untuk melakukan pemindaian (tracking) lokasi, Anda bisa menggambar persegi panjang dengan menggunakan fungsi cvRectangle. Keterangan lebih lanjut tentang fungsi-fungsi tersebut bisa Anda buka pada lembar referensi fungsi OpenCV.

Berikut ini video dari hasil tracking menggunakan template matching. Akurasi object tracking ini belum terlalu bagus. Untuk percobaan berikutnya, saya akan mencoba menggunakan metode lain untuk mendapatkan hasil dan akurasi yang lebih baik.

 

3 Comments

  1. adhiguna says:

    Hello, blog OpenCV mas Wibirama malah lebih bagus daripada punya saya.

    Saya akhir-akhir ini justru jarang mengoprek OpenCV mas, lebih sering ke Labview+Vision Development Module, karena lebih handal untuk industrial use (dan disuruhnya pake itu hehe).

    Tapi saya tetep seneng OpenCV untuk proyek-proyek riset/hobi sendiri.

    Anyway, barusan beli bukunya Learning OpenCV-Bradski dari Amazon, so saya mau main-main OpenCV lagi. Nanti saya sharing deh hasil experimen2 saya.

    Keep up the good work mas Wibirama..

    Salam,

  2. devy says:

    Saya mau tanya, gmn cara cropping gambar menggunakan openCV with Visual Studio 2005, win32console? Contoh programnya spt apa ya?

  3. fizz says:

    bang sunu, saya baru nyoba2 belajar c++ pake opencv. saya kurang mengerti istilah2 fungsi di opencv. saya juga sudah download bukunya learning opencv, tp tetep belum ngerti(lemot nih.hehehe…)mohon bantuannya…thanks bang…

Post a Comment


 

TAUTAN INTERNASIONAL