60 BAB 3 METODOLOGI PENELITIAN 3.1. Penentuan Masalah Penelitian Penelitian ini dilakukan berdasarkan penelitian yang lalu pada kasus yang berbeda. Pada kasus Lien (2007) dan Sahagun (2007) yang dihadapi adalah pemantauan pejalan kaki dengan kondisi yang padat. Melihat kondisi lalu lintas yang sangat padat, peneliti melihat adanya kesamaan kasus yang dihadapi, kemudian metode pada percobaan sebelumnya diujikan untuk kasus pemantauan kendaraan. Pemantauan dengan menggunakan video digital, seperti yang dijelaskan oleh Lien (2007), secara umum terdapat dua jenis teknik yang dipergunakan untuk melakukan aktifitas pemantauan yaitu pendekatan menggunakan model dari objek dan pendekatan menggunakan fitur dari objek. Pendekatan menggunakan model akan mengalami banyak sekali kesulitan masalah pendeteksian objek akibat dari perubahan intensitas warna dan bentuk dari objek. Masalah segmentasi objek terjadi apabila objek mengalami oklusi atau penyatuan dengan objek lainnya. Segmentasi juga akan sulit dilakukan apabila bentuk dari objek berubah-ubah akibat pergerakan objek dan posisi kamera yang beragam. Masalah intensitas warna terjadi apabila pemantauan dilakukan pada lingkungan diluar ruangan, terutama karena perubahan intensitas cahaya matahari berubah sepanjang hari. Pendekatan yang lebih baik coba dilakukan dengan menggunakan model fitur pada objek. Seperti yang dijelaskan oleh Sahagun (2007) pada penelitian pemantauan pejalan kaki, pemilihan penggunaan pendekatan titik fitur karena titik fitur cukup
61 tangguh dalam mengatasi oklusi atau kepadatan objek karena tidak tergantung dari kelengkapan bentuk objek melainkan berdasarkan data intrinsik dari titik fitur seperti pergerakkan dan jarak antar titik fitur. M enurut Lien (2007) menambahkan, titik fitur yang tersebar pada area latar seharusnya sangat dekat dengan masing-masing objek dan kemudian d ip ilih karen a leb ih baik d alam merep resentasikan objek dalam p ergerakkan objek yang khas. Tantangan pemantauan dengan penggunaan titik fitur adalah keterbatasan merepresentasikan kendaraan berdasarkan pergerakkannya yang kaku. Untuk mencoba menjawab tantangan tersebut maka peneliti mencoba menggunakan tambahan algoritma dengan menggunakan analisis relasi antar cluster menjadi kelompok objek dan p eny atuan objek y ang memilik i titik fitur y ang sama den gan ob jek lainny a. 3.2. Alur Penelitian Untuk mencapai tujuan dari penelitian yaitu membuat dan menguji program, maka penelitian dilakukan dalam alur sebagai berikut. Gambar 3.1. Alur penelitian.
62 Pada awal penelitian, peneliti melakukan pelatihan penggunaan program dan pustaka program yaitu mulai dari penggunaan Visual Studio 2008, Visual Studio 2010, Qt SDK, pustaka cvblobslib, pustaka Boost, dan pustaka OpenCV dipergunakan untuk menguji beberapa contoh aplikasi dari OpenCV ataupun contoh program dari pengembang lainnya, yaitu: 1. Pelatihan operasi dasar pustaka OpenCV, seperti load image, threshold, dilate/ erode, canny edge detection, fill and flood, rotate, and scale image. 2. Pelatihan contoh aplikasi Blob Detection menggunakan berbagai pustaka hingga diperoleh hasil terbaik menggunakan pustaka cvblobslib. 3. Pelatihan contoh aplikasi Background Subtraction menggunakan model Statistical Gaussian Mixture dan model umum lainnya. 4. Pelatihan contoh aplikasi Blob Tracking dari pustaka OpenCV. 5. Pelatihan contoh aplikasi Pyramidal Optical Flow menggunakan pustaka OpenCV yang menjadi kelanjutan dari arah penelitian. 6. Pelatihan contoh aplikasi K-Means menggunakan pustaka OpenCV. 7. Pelatihan contoh aplikasi Shortest Spanning Tree menggunakan pustaka Boost. 8. Pelatihan/ uji coba teori Coherence of Motion untuk mengelompokkan titik-titik fitur. Pembelajaran literatur dilakukan bergantian dengan pembelajaran pustaka program. Literatur ditekankan pada pembahasan analisis cluster dan titik fitur seperti pembahasan oleh Lien (2007) dan Sahagun (2007), selain itu tulisan lain yang
63 membahas tentang subtraksi latar, pendeteksian Good Feature, dan pelacakan Lucas- Kanade juga dibahas untuk memahami penggunaan parameter pada pustaka program. Pembuatan program dilakukan secara terus menerus dengan melakukan pelatihan penggunaan pustaka dan pembelajaran literatur. Ketika sebuah ide dari pembelajaran literatur didapatkan, maka peneliti mencoba langsung membuat programnya. Pembuatan program juga dikerjakan dengan adanya pengujian, terutama pengujian terhadap kesalahan logika dan metode yang dipergunakan. Pengujian juga dilakukan untuk menentukan nilai parameter yang tepat yang dipergunakan pada masing-masing fungsi. 3.3. Perancangan Penelitian 3.3.1. Kebutuhan Perancangan Perancangan memerlukan sebuah unit komputer, handycam, tripot, dan berbagai perangkat lunak yang dibutuhkan. Spesifikasi detil dari alat yang digunakan dijelaskan sebagai berikut. 3.3.1.1. Spesifikasi Komputer 1. Tipe komputer : ACER ASPIRE 4736G 2. Prosesor : Intel Core TM 2 Duo T6600 3. Kartu grafis : NVIDIA GeForce G105M 512MBVRAM 4. Ukuran layar : 14.0 HD LED LCD 5. Ukuran memori : 2 GB 6. Ukuran HDD : 320 GB (81.1 GB, 40.5 GB free)
64 3.3.1.2. Spesifikasi Kamera 1. Tipe kamera : Sony DCR-SX65E 2. Pengunaan tripot : Ya 3. Format perekaman : AVI 720 x 576 piksel 3.3.1.3. Spesifikasi Perangkat Lunak 1. Sistem operasi komputer : Windows 7 Ultimate Edition 2. SDK Compiler : Qt Creator 4.7.4 3. Pustaka : OpenCV 2.1 3.3.2. Perancangan Lingkungan Perekaman Perancangan yang dilakukan tidak menggunakan kamera CCTV dan juga tidak terpasang di sudut-sudut jalur lalu lintas. Perancangan yang dilakukan kali ini adalah perancangan program secara mandiri, dimana kita menggunakan peralatan sendiri. Pemantauan jalan secara mandiri kita lakukan dengan menggunakan sebuah handycam dan tripot. Penggunaan tripot adalah untuk mendapatkan perekaman yang bebas dari getaran tangan, karena apabila kamera bergetar maka video yang dihasilkan juga akan mengalami pergeseran. Pergeseran pada video, objek/ benda diam akan dianggap sebagai objek bergerak dan akan menganggu program pada area subtraksi latar dan pendeteksian titik fitur. Pemantauan dengan menggunakan kamera direncanakan dan dilakukan diatas jembatan penyebrangan. Pengaturan tripot dan kemiringan kamera dilakukan hanya sebatas agar seluruh objek kendaraan dapat terlihat dengan jelas dari ujung ke ujung jalan pada sebuah lajur. Pengaturan sudut kemiringan kamera dan ketinggian kamera
tidak perlu diperhatikan dalam metode kali ini karena didalam metode ini, bentuk, ukuran, dan jarak dari objek tidak diperhatikan. 65 Gambar 3.2. M odel posisi kamera dari atas jembatan penyebrangan. 3.3.3. Perancangan Diagram Alir Program dirancang tidak menggunakan ketergantungan basis data yang tersimpan dalam bentuk apapun secara permanen didalam harddisk, oleh karena itu program ini dikatakan tergolong dalam kelompok program Unsupervised Learning. Sehingga baik pertama kali program dijalankan atau dilakukan pada kesempatan berikutnya, program ini akan tetap berjalan dengan baik hanya dengan ketentuan penggunaan kriteria dasar seperti spesifikasi alat, format video dan kelengkapan instalasi program. Program dirancang untuk berjalan hingga frame pada video habis terlewati ataupun ketika pengguna. Berikut adalah aliran utama program mulai dari awal hingga keluar dari program.
66 Gambar 3.3. Aliran proses utama program. 3.3.3.1. Inisialisasi Inisialisasi dilakukan pada saat konstruktor dari objek kelas dijalankan. Pemanggilan konstruktor pada program ini hanya dilakukan ketika objek kelas dibuat sehingga inisialisasi hanya dilakukan sekali saja selama program tersebut dijalankan. Inisialisasi bisa juga disebut konfigurasi variabel dan parameter yang digunakan didalam program seperti terlihat pada gambar berikut.
67 Gambar 3.4. Aliran proses inisialisasi parameter dan variabel. Pertama, inisialisasi dilakuk an untuk memberik an nilai awal p ada variabelvariabel yang digunakan diseluruh bagian program, seperti penanda waktu untuk melakukan deteksi titik fitur ulang, penanda dan penghitung jumlah frame, penghitung jumlah titik fitur, dan sebagainya. Pada awal program berjalan penanda aktifitas pendeteksian titik fitur baru harus dan wajib dilakukan. Dan analisis relasi titik fitur dilakukan dalam kurun waktu setiap tujuh frame sekali. Kedua, inisialisasi d ilakuk an untuk memberikan n ilai p arameter p enggunaan fungsi Good Features to Track seperti kualitas pendeteksian (nilai kualitas adalah 0.4), jarak minimum pendeteksian antar dua buah titik fitur (menggunakan jarak 5 piksel sesuai kebutuhan ukuran video dan jumlah titik fitur), ukuran dari jendela (ukuran yang dipergunakan adalah 2 piksel) yang dipergunakan, penanda penggunaan metode Harris (dalam hal ini tidak digunakan artinya penanda diberi nilai nol), dan ukuran dari nilai level k (0.04) yang dipergunakan.
68 Ketiga, inisialisasi dilakukan untuk memberikan nilai parameter penggunaan fungsi Find Corner Sub Pix seperti ukuran dari jendela, kriteria perulangan (jumlah perulangan yang dipergunakan adalah 20, dan nilai epsilon yang dipergunakan adalah 0.03), dan zero zone yang dipergunakan adalah -1. Keempat, inisialisasi dilakukan untuk memberikan nilai parameter penggunaan fungsi Optical Flow Tracking seperti level tracking yang dipergunakan yaitu bernilai 7, inisialisasi error tracking sama dengan nol, inisialisasi flag aktifitas pemantauan sama dengan nol. Kelima, inisialisasi parameter font yaitu inisialisasi tipe garis sama dengan CV_AA, tipe teks sama dengan CV_FONT_HERSHEY_COMPLEX_SMALL, inisialisasi pemasangan font, dan inisialisasi ukuran dan font. Font disini dipergunakan untuk menuliskan identitas cluster atau objek pada layar gambar. Keenam, inisialisasi variabel warna ditentukan secara acak dan maksimal warna yang disimpan adalah sebanyak jumlah objek yaitu 50 objek. Warna dipergunakan untuk membedakan penulisan identitas objek yang berbeda. Ketujuh, inisialisasi dilakukan untuk memasang capture video yang berasal dari file berformat AVI ataupun MPEG. Video yang dipasang dipilih sendiri oleh pengguna program, apabila format video tidak valid, maka aktifitas pemantauan tidak dapat dilakukan hingga format video sesuai ataupun pemasangan capture video berhasil. Kedelapan, inisialisasi dilakukan untuk memberikan nilai parameter penggunaan fungsi subtraksi latar MoG. Background threshold yang dipergunakan adalah 0,4. Standart threshold yang dipergunakan adalah 4. Window size yang dipergunakan adalah 20 piksel. Level gaussian yang dipergunakan adalah 5. Inisial bobot/ weight yang dipergunakan adalah 0,09. Inisial keragaman yang dipergunakan
69 adalah 28. M inimum area yang dipergunakan adalah 5. Setelah parameter dari fungsi model gaussian sudah didefinisikan, kemudian parameter tersebut dipasang pada fungsi pembuatan subtraksi latar M og. Kesembilan, inisialisasi dilakukan untuk mengalokasikan memori variabel didalam memori komputer yang dipergunakan untuk melakukan aktifitas pemantauan. Variabel yang dipergunakan antara lain seperti variabel gambar, variabel counter dan flag, dan variable penampung hasil perhitungan analisis cluster dan objek. 3.3.3.2. Pembuatan Mask Objek Pembuatan mask area pendeteksian titik fitur dilakukan secara berulang ketika frame baru dari video didapatkan. Gambar berikut menjelaskan alur proses dari pembuatan mask dimana alat utama dari pembuatan mask adalah dengan melakukan subtraksi latar untuk setiap frame baru yang didapatkan. Gambar 3.5. Aliran proses pembuatan mask area pendeteksian titik fitur. Tahap pertama yang dilakukan adalah mendapatkan citra baru dari video, selanjutnya citra tersebut diubah menjadi grayscale dengan menggunakan persamaan khusus yang telah dijelaskan sebelumnya. Citra grayscale memang tidak dipergunakan didalam pembuatan mask, tetapi akan dipergunakan didalam pendeteksian dan pelacakan titik fitur di tahap selanjutnya. Kemudian subtraksi latar di update untuk mendapatkan mask yang baru dari frame yang telah diperbaharui. Mask baru yang telah
didapatkan kemudian akan diperbaiki dengan menggunakan proses dilatasi dan erosi sehingga citra blob akan tersatukan lebih sempurna dengan sekitarnya. 70 3.3.3.3. Pendeteksian Titik Fitur Pada awal program dijalankan, pendeteksian titik fitur dilakukan sebab belum ada satupun titik fitur yang terdeteksi. Pendeteksian titik fitur dilakukan setiap N frame sesuai dengan jumlah yang telah ditentukan, dalam percobaan kali ini digunakan 7 frame sekali untuk setiap pendeteksian titik fitur. Alur proses pendeteksian titik fitur adalah sebagai berikut. Gambar 3.6. Aliran proses pendeteksian titik fitur. Peran utama dalam pendeteksian titik fitur diperankan oleh fungsi Good Features to Track dan Find Corner Sub Pix. Titik fitur dideteksi dan dihitung oleh fungsi Good Feature to Track sedangkan peletakkan posisi titik tersebut didalam area piksel adalah dengan menggunakan fungsi Find Corner Sub Pix. Titik-titik fitur baru yang telah terdeteksi, selanjutnya digabungkan dengan titik fitur lama yang telah dideteksi sebelumnya. Sebelum digabungkan, posisi titik fitur lama pada frame baru perlu diketahui, oleh karena itu pelacakan titik fitur perlu dijalankan satu
71 kali pada frame terbaru. Langkah selanjutnya adalah menggabungkan kedua kelompok titik-titik fitur lama dan baru tersebut dengan menggunakan perulangan sejumlah total titik fitur dari kedua kelompok tersebut. Pendeteksian titik fitur selalu dilakukan setelah analisis titik fitur dan segmentasi objek oleh karena itu pada tahap ini juga perlu dilakukan inisialisasi ulang terhadap variabel-variabel yang dibutuhkan dalam melakukan analisis seperti variabelvariabel keragaman, variabel titik awal gerak, dan variabel bobot koneksi untuk dipergunakan dalam analisis selanjutnya. 3.3.3.4. Pelacakan Titik Fitur Pelacakan titik fitur diperankan utama oleh fungsi Calc Optical Flow Pyramid LK. Alur proses pelacakan titik fitur digambarkan sebagai berikut. Gambar 3.7. Aliran proses pelacakan titik fitur. Pada proses pertama dijalankan fungsi Calc Optical Flow Pyramid LK dimana berfungsi untuk melacak gerak titik fitur pada frame selanjutnya. Pelacakan dilakukan
72 berdasarkan metode pelacakan Lucas-Kanade dengan mengimplementasikan citra pyramid untuk memperbesar peluang keberhasilan pelacakan pada frame baru. Pelacakan titik fitur bisa saja berhasil ataupun gagal. Terdapat dua kemungkinan gagal yaitu pertama pelacakan gagal akibat perubahan tekstur citra dan kedua pelacakan gagal akibat titik fitur bergerak keluar dari area citra. Kegagalan tipe pertama dapat ditangani dengan memposisikan titik fitur pada jarak terdekat dari posisi sebelumnya. Pelacakan titik fitur jarang menghasilkan pelacakan yang sempurna, oleh sebab inilah getaran dari titik fitur terjadi. Kegagalan tipe, kedua titik-titik fitur tersebut tidak dapat dilacak kembali dan statusnya menjadi tidak valid lagi. Oleh karena itu, perlu penyesuaian seperti menghapus koneksi yang terhubung dengan titik fitur, menghapus indeks titik fitur pada objek, dan menghapus titik awal gerak yang memiliki indeks yang sama dengan titik fitur. Penghapusan dilakukan sebab analisis gerak objek berkorelasi langsung dengan keberadaan titik fitur yang masih valid karena gerak titik fitur yang dilakukan adalah gerak nyata objek pada citra. Penggambaran titik fitur pada citra dilakukan untuk melihat keberhasilan dari segmentasi objek sehingga keanehan/ kesalahan logika pada program seperti hilangnya titik fitur yang tidak wajar dan kesalahan penyambungan koneksi antar titik fitur dapat terlihat dengan jelas. Nilai keragaman koneksi antar titik fitur didapatkan dengan menghitung jumlah jarak koneksi dan jarak koneksi kuadrat dalam N frame sehingga perhitungan dilakukan pada setiap frame perpindahan titik fitur. Terkecuali pelacakan yang dilakukan dalam tahap pendeteksian titik fitur, perubahan nilai keragaman tidak lagi dipergunakan sebab nilai keragaman telah dipergunakan dalam analisis gerak titik fitur di tahap sebelumnya.
73 Penulisan identitas dan jumlah objek yang telah terdeteksi/ tersegmentasi dipergunakan supaya pengguna aplikasi dapat mengetahui jumlah kendaraan yang ada pada citra dan jumlah seluruh kendaraan yang ada pada citra dan juga kendaraan yang telah lewat. 3.3.3.5. Analisis Relasi Titik Fitur Analisis relasi titik fitur dilakukan setiap N frame sekali, sebab dalam frameframe sebelumnya perlu dipersiapkan variabel keragaman jarak dari titik fitur. Setelah nilai variabel yang dibutuhkan telah didapatkan, maka selanjutnya proses menghitung bobot koneksi dan reduksi koneksi seperti yang dijelaskan oleh alur berikut. Gambar 3.8. Aliran p roses analisis relasi titik fitur. Pertama kali yang dilakukan dalam proses analisis relasi titik fitur adalah menghitung karakteristik dari tiap titik fitur seperti jarak dan arah pergerakkan.
74 Keduanya akan dipergunakan untuk menghitung nilai s pq, movement dan s pq, direction perbandingan jarak dan arah pergerakkan antara titik p dan q. Berdasarkan nilai pergerakkan sebuah titik fitur, titik fitur tidak valid keberadaannya apabila bergerak sangat sedikit karena identik dengan pergerakkan getaran dari titik fitur. Penyaringan ini dilakukan karena adanya titik fitur yang terdeteksi pada area latar akibat dari pembuatan mask yang tidak sempurna ataupun akibat titik fitur yang terjebak diarea latar karena gagal dalam pelacakan. Penyaringan dilakukan dengan menghapus titik fitur tersebut, dan sebagai akibatnya juga perlu dilakukan penghapusan titik fitur pada objek dan variabel yang berkaitan yaitu koneksi dan titik awal gerak. Pada tahap selanjutnya yang tersisa adalah titik fitur yang dapat dipercaya untuk merepresentasikan pergerakkan dari objek. Kemudian titik fitur dikelompokkan menjadi kelompok cluster dan objek dengan menentukkan koneksi yang baik dan dikelompokkan dengan menggunakan metode graph traversal.objek yang terbentuk kemudian direduksi kembali dengan melakukan penggabungan objek. 3.3.3.6. Penukaran Variabel Optical Flow Tracking Fungsi Optical Flow Tracking memerlukan dua buah citra grayscale dan dua buah citra pyramid dimana satu citra dipergunakan untuk mengetahui posisi titik sebelumnya dan satu citra dipergunakan untuk mengetahui posisi titik pada frame baru. Oleh karena itu ketika pelacakan selesai, variabel citra lama diganti dengan citra yang baru dan citra baru digantikan dengan perolehan frame selanjutnya pada video. Proses pertukaran ini terus dilakukan hingga seluruh frame pada video habis.
75 3.3.3.7. Tampilkan Gambar Penampilan gambar titik fitur, kelompok cluster, kelompok objek, jumlah objek, jumlah total objek, dan spesifikasi dari video semuanya ditampilkan sebagai output dari aplikasi. Setiap frame selalu ditampilkan citra baru dengan informasi yang baru juga. Penampilan berbagai informasi tersebut memang dipergunakan untuk menunjukkan hasil dari segmentasi objek dan informasi pada objek. 3.3.3.8. Membersihkan Alokasi Memori Pada bagian akhir dari program ketika frame telah habis ataupun pengguna telah memilih untuk keluar dari program, maka akan dijalankan fungsi destruktor yang didalamnya berisikan pemanggilan fungsi-fungsi untuk membersihkan memori komputer yang telah dipergunakan. 3.3.4. Perancangan Tampilan Program Pada awal pengembangan program, program dirancang berbentuk aplikasi console dan pada dasarnya tampilan yang diharapkan dapat menampilkan informasi video, identitas dari objek, jumlah objek pada layar, dan jumlah total objek yang terhitung. Kemudian selanjutnya program dikembangkan dengan berbentuk aplikasi GUI dengan menu pemilihan video, penampilan original tracking seperti pada aplikasi console, penampilan feature point tracking, penampilan cluster tracking, penampilan object tracking, dan penampilan hasil pendeteksian dalam 4 arah gerak objek.
76 Gambar 3.9. Perancangan awal tampilan program. Pada perancangan tersebut setiap objek diberikan label identitas objek. M isalkan, obj: 2, artinya objek tersebut merupakan objek beridentitas 2 yang ada pada lay ar. Current object(s) menunjukkan jumlah objek yang ada di layar pada saat itu. Total object(s) menunjukkan jumlah seluruh objek yang telah terhitung. Image (w x h) dan frame rates merupakan informasi ukuran dan kecepatan video yang dipergunakan agar pemakaiannya sesuai dengan standar minimum yang disarankan. 3.3.5. Perancangan Pengujian Program Pengujian dilakukan untuk setiap aktifitas, mulai dari hasil persiapan data hingga hasil dari setiap segmentasi objek. Pengujian hasil akhir pendeteksian dilakukan dengan menggunakan beberapa sampel video dengan ukuran lebar dan tinggi pixel dan frame rate yang sudah ditentukan, serta kondisi siang hari dan cuaca yang cerah. Video yang dipergunakan hanya memantau satu arah lajur lurus dengan tingkat kepadatan yang bervariasi.
77 Beberapa hal yang diuji dalam pembuatan program antara lain: 1. Pengujian hasil terbaik dari subtraksi latar, pendeteksian titik fitur dan pelacakan titik fitur. 2. Pengujian penghapusan titik fitur yang tidak valid dari frame satu ke frame selanjutnya. 3. Pengujian penghapusan titik fitur yang bergerak sangat sedikit yang dianggap sebagai titik background. 4. Pengujian pembentukkan kelompok cluster. 5. Pengujian pembentukkan objek dan penambahan titik dalam klasifikasi sebuah objek. 6. Pengujian reduksi jumlah objek dengan penggabungan objek. 7. Pengujian penjagaan hasil tracking dari setiap titik objek. 8. Pengujian hasil total perhitungan objek.