Pelacakan objek dalam video adalah salah satu aspek penting dalam pengolahan citra dan penglihatan komputer yang memiliki berbagai aplikasi praktis, mulai dari pemantauan keamanan hingga analisis gerak. Teknik ini memungkinkan kita untuk secara otomatis melacak pergerakan objek tertentu dalam video dan mengambil tindakan berdasarkan informasi yang diperoleh. Dalam tutorial ini, kita akan belajar bagaimana menggunakan OpenCV, sebuah perpustakaan pengolahan citra open-source yang sangat populer dalam bahasa pemrograman Python, untuk melacak objek dalam video menggunakan metode pelacakan centroid. Langkah-langkah yang disediakan akan membimbing Anda melalui proses pembuatan aplikasi pelacakan objek sederhana yang dapat diterapkan dalam berbagai konteks aplikasi.

Langkah 1: Persiapan

Sebelum memulai, pastikan Anda telah menginstal Python dan OpenCV di komputer Anda. Anda dapat menginstal OpenCV dengan perintah pip di terminal atau command prompt:

pip install opencv-python

Pastikan juga Anda memiliki file video yang ingin Anda gunakan untuk melakukan pelacakan objek. Video tersebut harus dapat diakses dan ditempatkan dalam direktori yang sesuai.

Setelah Anda memastikan instalasi dan memiliki file video yang diperlukan, kita dapat melanjutkan ke langkah berikutnya untuk memulai pembacaan video dan pelacakan objek.

Langkah 2: Import Library yang Diperlukan

Pada langkah ini, kita akan mengimpor library yang diperlukan untuk melakukan pelacakan objek dalam video menggunakan OpenCV dan Python. Selain itu, kita juga akan mengimpor beberapa library lain yang akan digunakan untuk operasi tertentu.

import cv2

Dengan mengimpor modul cv2, kita dapat menggunakan berbagai fungsi dan metode OpenCV yang diperlukan untuk membaca video, melakukan pelacakan objek, serta melakukan operasi pemrosesan citra lainnya.

Selanjutnya, mari kita lanjutkan ke langkah selanjutnya untuk membaca video.

Langkah 3: Membaca Video

Setelah mengimpor library yang diperlukan, langkah berikutnya adalah membaca video yang akan digunakan untuk melakukan pelacakan objek. Pastikan video yang ingin Anda gunakan berada dalam direktori yang sesuai.

# Ganti 'nama_file_video.mp4' dengan nama file video yang ingin Anda gunakan
video = cv2.VideoCapture('nama_file_video.mp4')

Dalam kode di atas, kita menggunakan fungsi cv2.VideoCapture() untuk membuka file video dengan nama yang telah ditentukan. Gantilah 'nama_file_video.mp4' dengan nama file video yang ingin Anda gunakan.

Sekarang kita telah berhasil membuka video, langkah berikutnya adalah inisialisasi pelacak objek. Mari kita lanjutkan ke langkah selanjutnya.

Langkah 4: Inisialisasi Pelacak Objek

Setelah membaca video, langkah selanjutnya adalah melakukan inisialisasi pelacak objek. OpenCV menyediakan beberapa algoritma pelacakan objek yang berbeda yang dapat Anda pilih sesuai dengan kebutuhan Anda.

# Pilih metode pelacakan yang ingin Anda gunakan (contoh: BOOSTING, MIL, KCF, TLD, MEDIANFLOW, atau CSRT)
tracker = cv2.TrackerCSRT_create()

Dalam contoh di atas, kita menggunakan algoritma CSRT (Discriminative Correlation Filter with Channel and Spatial Reliability) untuk melakukan pelacakan objek. Namun, Anda dapat memilih algoritma lain seperti BOOSTING, MIL, KCF, TLD, atau MEDIANFLOW sesuai dengan kebutuhan Anda.

Dengan menginisialisasi pelacak objek, kita siap untuk menentukan kotak awal objek yang akan dilacak pada langkah berikutnya. Mari kita lanjutkan ke langkah selanjutnya untuk melakukan hal tersebut.

Langkah 5: Baca Frame dan Tentukan Kotak Awal

Setelah inisialisasi pelacak objek, langkah selanjutnya adalah membaca setiap frame dari video dan menentukan kotak awal objek yang akan dilacak.

# Baca frame pertama dari video
ret, frame = video.read()

# Tentukan kotak awal objek yang ingin dilacak (contoh: dengan mouse)
bbox = cv2.selectROI("Pilih Objek", frame, fromCenter=False, showCrosshair=True)

Dalam kode di atas:
– Kita menggunakan fungsi video.read() untuk membaca frame pertama dari video.
– Kemudian, kita menggunakan fungsi cv2.selectROI() untuk menampilkan frame pertama dalam sebuah jendela dan memungkinkan pengguna untuk menentukan kotak awal objek yang akan dilacak. Jendela akan muncul dan Anda dapat menarik kotak di sekitar objek dengan mouse.
– Fungsi cv2.selectROI() mengembalikan koordinat dan dimensi kotak yang dipilih sebagai tuple (x, y, w, h), di mana (x, y) adalah koordinat pojok kiri atas kotak, dan w serta h adalah lebar dan tinggi kotak tersebut.

Setelah kotak awal objek telah ditentukan, kita siap untuk memulai pelacakan objek dalam setiap frame. Lanjutkan ke langkah selanjutnya untuk melakukan hal tersebut.

Langkah 6: Mulai Pelacakan

Setelah menentukan kotak awal objek yang akan dilacak, langkah berikutnya adalah memulai proses pelacakan objek dalam setiap frame dari video.

# Inisialisasi pelacakan dengan kotak awal
tracker.init(frame, bbox)

# Loop melalui setiap frame dalam video
while True:
# Baca frame berikutnya
ret, frame = video.read()

# Hentikan loop jika tidak ada frame lagi
if not ret:
break

# Lakukan pelacakan objek dalam frame saat ini
success, bbox = tracker.update(frame)

# Jika pelacakan berhasil, gambar kotak di sekitar objek
if success:
# Dapatkan koordinat kotak
x, y, w, h = [int(i) for i in bbox]

# Gambar kotak di sekitar objek yang dilacak
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)

# Tampilkan frame yang sedang diproses
cv2.imshow("Pelacakan Objek", frame)

# Tekan 'q' untuk keluar dari loop
if cv2.waitKey(1) & 0xFF == ord('q'):
break

Dalam kode di atas:
– Kita menggunakan metode tracker.update(frame) untuk melakukan pelacakan objek dalam frame saat ini.
– Metode ini mengembalikan tuple (success, bbox), di mana success adalah boolean yang menunjukkan apakah pelacakan berhasil atau tidak, dan bbox adalah koordinat dan dimensi kotak yang mencakup objek yang dilacak.
– Jika pelacakan berhasil (success == True), kita menggambar kotak di sekitar objek yang dilacak pada frame tersebut menggunakan fungsi cv2.rectangle().
– Frame yang sedang diproses ditampilkan dalam jendela dengan judul “Pelacakan Objek”.
– Selama loop, kita juga menambahkan fungsi cv2.waitKey(1) untuk menunggu tombol keyboard ditekan. Jika tombol ‘q’ ditekan, loop akan berhenti dan program akan keluar.

Dengan langkah ini, proses pelacakan objek telah dimulai dan objek akan dilacak dalam setiap frame dari video. Lanjutkan ke langkah selanjutnya untuk menutup video dan jendela tampilan setelah selesai.\

Langkah 7: Jalankan Program

Setelah menyelesaikan semua langkah sebelumnya, saatnya untuk menjalankan program dan melihat hasilnya.

# Tutup video dan jendela tampilan
video.release()
cv2.destroyAllWindows()

Dalam kode di atas, kita menggunakan metode video.release() untuk melepaskan sumber video yang telah dibuka. Ini penting untuk memastikan bahwa sumber daya sistem yang digunakan oleh video dibebaskan setelah program selesai dijalankan.

Selain itu, kita menggunakan fungsi cv2.destroyAllWindows() untuk menutup semua jendela tampilan yang dibuka selama program berjalan. Ini termasuk jendela tampilan utama dan jendela-jendela lain yang mungkin dibuka selama proses pelacakan objek.

Dengan demikian, setelah menjalankan program, pelacakan objek dalam video akan dimulai. Program akan berjalan sampai selesai dan kemudian secara otomatis menutup video dan jendela tampilan.

Itulah langkah terakhir dalam melakukan pelacakan objek dalam video menggunakan OpenCV dan Python. Dengan demikian, Anda telah berhasil menyelesaikan tutorial ini.

Selamat mencoba!


0 Comments

Leave a Reply

Avatar placeholder