Yüz algılama programı (Video üzerinde)
Bir videoaki yüzleri tespit edip işaretleyen bir program oluşturmaya çalışalım.
Program için aşağıda bilgileri ve sanal ortamda kurulum komutları verilen kütüphaneleri kullanacağız:
- Opencv-python kütüphanesi
Görüş algılama için kullanılan bir kütüphanedir.
1
2
3
4
5
pip install opencv-contrib-python
Bu kurulum ana modülü ve katkı sağlayan ekstra modülleri içerir.
- NumPy kütüphanesi
NumPy, Python ile dizi hesaplamada kullanılan temel kütüphanedir.
1
2
3
4
5
pip install numpy
Örnek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import cv2, sys
# Haar cascade classifier yükleme
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
video_capture = cv2.VideoCapture('video.mp4') # Video dosyasını okuma
while True:
ret,frame = video_capture.read() # Video frame okuma
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # Frame renklerini gri tonlara ayarlama
faces = face_cascade.detectMultiScale(gray, 1.1, 5, minSize=(100,100)) # Frame'deki yüzlerin yerlerini tespit etme
for (x,y,w,h) in faces: # Yüzleri işaretleme
cv2.rectangle(frame, (x,y), (x+w,y+h), (250, 150, 250) ,2)
cv2.imshow('Video', frame) # Frame'i ekranda gösterme
k = cv2.waitKey(1) & 0xFF
if k == 27: # Esc tuşu ile çıkış
break
video_capture.release()
cv2.destroyAllWindows()
Programı çalıştırdığımızda, Haar cascade classifier’lar yüklenir. Videodan bir frame okunur ve renkleri gri tonlara çevrilir. Frame’de yer alan yüzler tespit edilir ve çerçeveye alınarak işaretlenir. Esc tuşuna basıldığında program sona erer.