Face Detection, Haar Cascades

Kategori: Python / OpenCV , 11 Ekim 2019 , JanFranco


Başlık yüz tanıma, yüz tespiti fakat birazdan göreceğimiz uygulamaları sadece yüz için değil, elimizde başarılı bir cascade dosyası var ise diğer objeler için de uygulayabiliriz. İlk olarak videoyu ve cascade dosyalarını alalım:


video = cv2.VideoCapture("agent.mp4")
face_cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifier("haarcascade_eye.xml")
Video üzerinde çalışıyoruz, while döngüsü açalım:


while True:
    _,frame = video.read()

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    faces = face_cascade.detectMultiScale(gray)

    for x,y,w,h in faces:
        cv2.rectangle(frame, (x,y), (x+w, y+h), (10,100,80), 4)
        roi_gray = gray[y:y+h, x:x+h]
        roi_color = frame[y:y+h, x:x+h]
        eyes = eye_cascade.detectMultiScale(roi_gray)
        for ex, ey, ew, eh in eyes:
            cv2.rectangle(roi_color, (ex, ey), (ex+ew, ey+eh), (75,200,50), 2)

    cv2.imshow("frame", frame)
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()
video.release()
detectMultiScales() methodu tespit ettiği yüzün etrafında bir dikdörtgen çizecek bu dikdörtgenin 4 koordinatı return edecek (gerçekten çizme durumu söz konusu değil). Bu koordinat bilgilerini alarak biz dikdörtgen çizeceğiz. Aynı işlemleri göz tespit için de yaptık. Gözler zaten yüzün içinde olacağından bunu for döngüsü için de yaptık.

Cascade dosyalarında bir öğrenim söz konusudur. Data Mining dersimdeki dönem projemin ufak bir kısmında bu cascade dosyalarını kullanmıştım. Computer Vision bölümünde projemi de bu algoritmayı da cascade dosyalarını detaylıca anlatacağım. Ayrıca cascade dosyalarını aynı isimle internette bulabilirsiniz.


Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın