Dalam tutorial ini, kita akan mempelajari langkah-langkah untuk mendeteksi wajah manusia dalam gambar menggunakan OpenCV dan bahasa pemrograman Python. Deteksi wajah adalah salah satu tugas penting dalam pengolahan citra dan memiliki berbagai aplikasi, termasuk pengenalan wajah, pengawasan keamanan, dan pengolahan video. Berikut adalah langkah-langkahnya:

Langkah 1: Persiapan Lingkungan

Sebelum kita mulai melakukan deteksi wajah menggunakan OpenCV dan Python, kita perlu memastikan lingkungan pengembangan sudah siap. Berikut adalah langkah-langkah untuk mempersiapkan lingkungan:

1. Instalasi Python:

Pastikan Anda memiliki Python terinstal di sistem Anda. Anda dapat mengunduh dan menginstal Python dari situs web resmi Python (https://www.python.org/downloads/). Disarankan untuk menggunakan versi Python 3 terbaru.

2. Instalasi OpenCV:

Setelah Anda memiliki Python, langkah selanjutnya adalah menginstal OpenCV. Anda dapat menginstal OpenCV menggunakan pip, manajer paket Python, dengan menjalankan perintah berikut di terminal atau command prompt:

pip install opencv-python

Pastikan Anda memiliki koneksi internet yang stabil saat menjalankan perintah ini.

3. Persiapan Gambar:

Pada tutorial ini, kita akan menggunakan gambar berikut.

Contoh deteksi wajah

Untuk mendownload gambar dari URL yang diberikan dan menyimpannya sebagai file gambar, Anda dapat menggunakan modul requests dalam Python. Berikut langkah-langkahnya:

1. Instalasi Modul requests (jika belum diinstal):

Jika Anda belum memiliki modul requests, Anda dapat menginstalnya dengan menggunakan pip di terminal atau command prompt:

pip install requests
2. Kode untuk Mendownload dan Menyimpan Gambar:

Berikut adalah contoh kode Python untuk mendownload gambar dari URL yang diberikan dan menyimpannya sebagai file gambar.webp:

import requests

# URL gambar yang akan didownload
url = "https://rumahcoding.co.id/wp-content/uploads/2024/03/ftl07gm9q7y-jpg-e1710728020653.webp"

# Mendapatkan respons dari URL
response = requests.get(url)

# Memeriksa apakah respons berhasil (kode status 200)
if response.status_code == 200:
# Menyimpan konten gambar ke file
with open('gambar.webp', 'wb') as file:
file.write(response.content)
print("Gambar berhasil didownload dan disimpan sebagai gambar.webp")
else:
print("Gagal mendownload gambar. Kode status:", response.status_code)

Dengan menggunakan kode di atas, Anda dapat mendownload gambar dari URL yang diberikan dan menyimpannya sebagai file gambar.webp di direktori kerja Anda. Pastikan untuk memperhatikan nama file dan ekstensi yang benar saat menyimpan gambar.

4. Persiapan Kode Python:

Buatlah skrip Python baru di lingkungan pengembangan favorit Anda. Anda dapat menggunakan editor teks sederhana atau IDE seperti Jupyter Notebook atau PyCharm.

import cv2

# Membaca gambar dari file
image = cv2.imread('gambar.webp')

# Menampilkan gambar
cv2.imshow('Gambar', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Pastikan untuk mengganti 'gambar.webp' dengan nama file gambar yang ingin Anda gunakan.

Dengan langkah-langkah di atas, Anda sudah siap untuk memulai deteksi wajah menggunakan OpenCV dan Python. Langkah selanjutnya adalah melakukan deteksi wajah menggunakan classifier Haar Cascades yang telah disediakan oleh OpenCV.

Langkah 2: Membaca Gambar

Setelah mempersiapkan lingkungan pengembangan, langkah berikutnya adalah membaca gambar di mana kita akan melakukan deteksi wajah. OpenCV menyediakan fungsi cv2.imread() untuk membaca gambar dari file. Berikut adalah langkah-langkahnya:

1. Membaca Gambar dari File:

Untuk membaca gambar dari file, gunakan fungsi cv2.imread() dengan menyediakan path file gambar sebagai argumen.

import cv2

# Membaca gambar dari file
image = cv2.imread('gambar.webp')

Pastikan Anda mengganti 'gambar.jpg' dengan nama file gambar yang ingin Anda gunakan. Pastikan juga bahwa gambar tersebut berada di direktori yang dapat diakses oleh skrip Python Anda.

2. Menampilkan Gambar:

Setelah membaca gambar, kita dapat menampilkannya untuk memastikan bahwa gambar telah berhasil dibaca dengan benar. Gunakan fungsi cv2.imshow() untuk menampilkan gambar di jendela.

# Menampilkan gambar
cv2.imshow('Gambar', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Dengan menggunakan langkah-langkah di atas, Anda dapat dengan mudah membaca gambar menggunakan OpenCV dengan Python. Pastikan untuk memverifikasi bahwa gambar yang ingin Anda gunakan berada di direktori yang benar dan memiliki nama file yang sesuai. Setelah berhasil membaca gambar, Anda dapat melanjutkan ke langkah selanjutnya dalam proses deteksi wajah.

Langkah 3: Menginisialisasi Classifier Wajah

Setelah berhasil membaca gambar, langkah berikutnya adalah menginisialisasi classifier wajah. OpenCV menyediakan pre-trained classifier untuk deteksi wajah yang disebut “Haar Cascades”. Kita perlu mengunduh classifier ini dan menginisialisasi objek detektor wajah menggunakan classifier tersebut. Berikut adalah langkah-langkahnya:

1. Mengunduh Classifier Haar Cascades:

Classifier Haar Cascades untuk deteksi wajah tersedia secara default dalam instalasi OpenCV. Namun, jika Anda belum mengunduhnya, Anda dapat mengunduhnya dari repositori resmi OpenCV di GitHub (https://github.com/opencv/opencv/tree/master/data/haarcascades) atau menggunakan URL berikut:

https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml

2. Inisialisasi Detektor Wajah:

Setelah mengunduh classifier Haar Cascades, Anda dapat menginisialisasi detektor wajah menggunakan fungsi cv2.CascadeClassifier() dari OpenCV.

import cv2

# Inisialisasi detektor wajah
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

Pastikan Anda menyediakan path lengkap ke classifier Haar Cascades saat menginisialisasi detektor wajah. Dalam kode di atas, kita menggunakan path default yang disediakan oleh OpenCV.

Dengan menggunakan langkah-langkah di atas, Anda telah berhasil menginisialisasi classifier wajah dan siap untuk melakukan deteksi wajah pada gambar yang telah dibaca. Langkah selanjutnya adalah menggunakan detektor wajah untuk menemukan wajah dalam gambar.

Langkah 4: Deteksi Wajah

Setelah berhasil menginisialisasi classifier wajah, langkah selanjutnya adalah menggunakan detektor wajah untuk menemukan wajah dalam gambar. Berikut adalah langkah-langkahnya:

1. Deteksi Wajah dalam Gambar:

Gunakan metode detectMultiScale() dari detektor wajah untuk menemukan wajah dalam gambar. Metode ini akan mengembalikan koordinat persegi panjang yang mengelilingi wajah yang terdeteksi.

# Deteksi wajah dalam gambar
faces = face_cascade.detectMultiScale(image, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

Metode detectMultiScale() menerima beberapa parameter, di antaranya:

  • scaleFactor: Faktor dengan mana ukuran gambar dikurangi pada setiap iterasi deteksi. Nilai yang lebih kecil akan meningkatkan sensitivitas deteksi, tetapi juga akan memperlambat proses.
  • minNeighbors: Jumlah minimum tetangga yang harus ada di sekitar kotak persegi panjang untuk mempertimbangkannya sebagai wajah. Nilai yang lebih besar akan mengurangi jumlah deteksi palsu, tetapi juga akan membuat deteksi lebih konservatif.
  • minSize: Ukuran minimum objek. Wajah yang lebih kecil dari ukuran ini akan diabaikan.

2. Menandai Wajah dalam Gambar:

Setelah wajah terdeteksi, kita akan menandai wajah tersebut dengan kotak persegi panjang menggunakan fungsi cv2.rectangle().

# Menandai wajah dalam gambar dengan kotak persegi panjang
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

Fungsi cv2.rectangle() menerima beberapa argumen, di antaranya:

  • Koordinat titik sudut kiri atas kotak persegi panjang.
  • Koordinat titik sudut kanan bawah kotak persegi panjang.
  • Warna kotak persegi panjang dalam format BGR (Blue, Green, Red).
  • Ketebalan garis kotak persegi panjang.

Dengan langkah-langkah di atas, Anda telah berhasil mendeteksi wajah dalam gambar menggunakan classifier Haar Cascades. Langkah terakhir adalah menampilkan gambar dengan wajah yang telah ditandai.

Langkah 5: Menampilkan Hasil

Setelah mendeteksi wajah dalam gambar dan menandainya dengan kotak persegi panjang, langkah terakhir adalah menampilkan gambar dengan wajah yang telah ditandai. Berikut adalah langkah-langkahnya:

1. Menampilkan Gambar Hasil Deteksi Wajah:

Gunakan fungsi cv2.imshow() untuk menampilkan gambar hasil deteksi wajah. Anda juga dapat menambahkan teks atau informasi tambahan ke gambar jika diperlukan.

# Menampilkan gambar hasil deteksi wajah
cv2.imshow('Deteksi Wajah', image)

Hasilnya adalah sebagai berikut:
Contoh deteksi wajah

2. Menunggu Tombol Keyboard Ditekan:

Setelah menampilkan gambar hasil deteksi wajah, tunggu hingga pengguna menekan tombol keyboard sebelum menutup jendela. Ini dapat dilakukan dengan menggunakan fungsi cv2.waitKey().

# Menunggu tombol keyboard ditekan
cv2.waitKey(0)

3. Menutup Semua Jendela:

Terakhir, pastikan untuk menutup semua jendela yang telah dibuka setelah selesai menampilkan gambar. Ini dapat dilakukan dengan menggunakan fungsi cv2.destroyAllWindows().

# Menutup semua jendela
cv2.destroyAllWindows()

Dengan langkah-langkah di atas, Anda telah berhasil menampilkan gambar dengan wajah yang telah ditandai menggunakan OpenCV dan Python. Pastikan untuk memverifikasi bahwa gambar yang ingin Anda gunakan berada di direktori yang benar dan nama file tersebut sesuai. Setelah berhasil menampilkan gambar, Anda telah berhasil menyelesaikan langkah-langkah untuk mendeteksi wajah dalam gambar.