Machine learning

Membuat Simpel Face Detection Dengan OpenCV dan Python

Membuat Simpel Face  Detection Dengan OpenCV dan Python

Perisapan

download library yang diperlukan

disini kita perlu mendownload library opencv di python

pip install opencv-contrib-python
download dataset

download dulu dataset nya di sini

Coding

Tahap 1 : Mengakses webcam

lalu untuk mengakses webcam salin code dibawah ini

import cv2 as cv

video = cv.VideoCapture(0)
while True:
    isTrue,frame = video.read()
    cv.imshow('image',frame);
    if cv.waitKey(20) & 0xFF==ord('d'):
        break
Tahap 2 : Mengubah video menjadi grayscale
frame_gs = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

code diatas berfungsi untuk membuat tiap tiap frame yang kita miliki menjadi grayscale atau hitam putih taruh kode diatas seperti contoh dibawah

import cv2 as cv

video = cv.VideoCapture(0)
while True:
    isTrue,frame = video.read()
    frame_gs = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    cv.imshow('image',frame);
    if cv.waitKey(20) & 0xFF==ord('d'):
        break
Tahap 3 : Mendeteksi wajah

untuk melakukanya kita terlebih dahulu harus mengintansiasikan objek dari dataset yang sudah kita download tadi

trained_data = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
import cv2 as cv

trained_data = cv.CascadeClassifier("haarcascade_frontalface_default.xml")
video = cv.VideoCapture(0)
while True:
    isTrue,frame = video.read()
    frame_gs = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    coordinate = trained_data.detectMultiScale(frame_gs)
    cv.imshow('image',frame);
    if cv.waitKey(20) & 0xFF==ord('d'):
        break
Tahap 4 : Gambar Persegi untuk menandai objek yang dideteksi
for (x,y,w,h) in coordinate:    
        cv.rectangle(frame,(x,y),(x+w, y+h),(0,255,0),2)        
        cv.imshow('image',frame);
Sehingga keseluruhan codenya adalah sebagai berikut
import cv2 as cv
trained_data = cv.CascadeClassifier("haarcascade_frontalface_default.xml")

video = cv.VideoCapture(0)
while True:
    isTrue,frame = video.read()
    frame_gs = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    coordinate = trained_data.detectMultiScale(frame_gs)
    for (x,y,w,h) in coordinate:    
        cv.rectangle(frame,(x,y),(x+w, y+h),(0,255,0),2)        
        cv.imshow('image',frame);
    if cv.waitKey(20) & 0xFF==ord('d'):
        break

jalankan code nya dan hasilnya adalah sebagai berikut Example image yang nulis artikel belum mandi hehe :))