Raspberry Pi – OpenCV İle Yüz Algılama

Önceki dersimizde Raspberry Pi içine OpenCV nasıl yüklenir bunu göstermiştik. Bu uygulamaya başlamadan önce eğer OpenCV kütüphanesini Raspberry Pi içine kurmadıysanız bunu yapmanız gerekmektedir.

İlk olarak https://github.com/opencv/opencv/tree/master/data/haarcascades sitesinden, yüz tanımlama yapacağımız için haarcascade_frontalcatface.xml dosyasını indiriyoruz. Bunu kodlarımı yazacağım Python dosyası ile aynı klasör içine atıyorum

Önceden çalıştırdıgım için yuz.py dosyası orada bulunmaktadır.

Kodları yazmak için Raspian işletim sisteminde kurulu olan Thonny Python IDE dosyasını çalıştırıyoruz.

Buraya daha önceden yazmış olduğum (buraya tıklayarak ulaşabilirsiniz. ) OpenCV ile kamerada yüz tespiti kodlarımı aynen yapıştırıyorum. Kodlarımız bu şekilde

import numpy as np
import cv2
faceCascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Height
while True:
    ret, img = cap.read()
    #img = cv2.rotate(img,cv2.ROTATE_180)  #görüntü ters çıkarsa bu komutla engelleyebilirsiniz.
    img = cv2.flip(img, 1)  # veya burada 0-1-2 komutlarını deneyerek görüntünün döndüğünü görebilirsiniz.
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = faceCascade.detectMultiScale(
        gray,
        scaleFactor=1.2,
        minNeighbors=5,
        minSize=(20, 20)
    )
    for (x,y,w,h) in faces:
        cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
        roi_gray = gray[y:y+h, x:x+w]
        roi_color = img[y:y+h, x:x+w]
    cv2.imshow('video',img)
    k = cv2.waitKey(30) & 0xff
    if k == 27: # press 'ESC' to quit
        break
cap.release()
cv2.destroyAllWindows()

Ardından çalıştır diyoruz ve

Gördüğünüz üzere telefonumda açtığım Micheal Jackson (RIP) yüzünü algıladı ve kare içerisine aldı.

Peki aynı programda yüz dışında farklı nesneler de algılamak istersek ?

Bunun tabi ki birçok farklı yöntemi var, ancak yukarıda size verdiğim linkte eğer aradığınız nesne mevcut ise

Burada birçok hazır kütüphane görmektesiniz.
Mesela gözleri de seçmek istiyoruz. Hemen haarcascade_eye.xml dosyasını indiriyoruz ve az önceki dosyamla aynı yere yapıştırıyorum.

Ve programda 3. satırdaki adreslemeyi indirdiğim dosya ismi değiştiriyorum

Ardından çalıştıra bastığımızda. Bu sefer gözleri seçip mavi kareler altına aldığını görürüz.

Bu arada iletişim hızından veya VNC server ile bağlantımdan mı kaynaklandığını bilemediğim, kameradaki hareketleri geç algılama problemi ile karşılaştığımı da söylemeliyim. Siz de bu projeleri deneyerek, tecrübelerinizi bize aktarabilirsiniz. Bir sonraki projemiz algıladığı nesnelere göre bir takip sistemi kurulması olucak. İyi çalışmalar !

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir