Python ile Yüz Tanıma Sistemi Yapmak

Yüz tanıma sistemleri, güvenlikten kullanıcı deneyimine kadar birçok alanda kullanılmaktadır.

Yüz tanıma sistemleri, güvenlikten kullanıcı deneyimine kadar birçok alanda kullanılmaktadır. Bu yazıda, Python kullanarak basit bir yüz tanıma sistemi nasıl yapılır, adım adım inceleyeceğiz.

Gerekli Kütüphaneler

Bu proje için aşağıdaki Python kütüphanelerine ihtiyacımız olacak:

  • OpenCV: Görüntü işleme için
  • dlib: Yüz tanıma ve işaretleme için
  • numpy: Matematiksel işlemler için

Bu kütüphaneleri yüklemek için şu komutları kullanabilirsiniz:

pip install opencv-python dlib numpy

Adım 1: Kütüphaneleri İçe Aktarma

İlk olarak gerekli kütüphaneleri projemize dahil edelim:

import cv2
import dlib
import numpy as np

Adım 2: Yüz Dedektörü ve Yüz İşaretleyici Yükleme

dlib kütüphanesi, önceden eğitilmiş yüz dedektörleri ve işaretleyiciler sağlar. Bunları kullanarak yüz tespit edebilir ve yüzün belirli noktalarını işaretleyebiliriz.

detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

Not: shape_predictor_68_face_landmarks.dat dosyasını buradan indirebilirsiniz.

Adım 3: Görüntü Yükleme ve Gri Tonlamaya Dönüştürme

Görüntüyü yükleyip gri tonlamaya dönüştürelim. Yüz tespiti genellikle gri tonlamalı görüntülerde daha etkilidir.

image = cv2.imread("your_image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

Adım 4: Yüz Tespiti

Gri tonlamalı görüntü üzerinde yüz tespiti yapalım:

faces = detector(gray)

Adım 5: Yüz İşaretlerini Bulma ve Çizme

Tespit edilen yüzler üzerindeki işaret noktalarını bulup, görüntü üzerinde çizelim:

for face in faces:
    landmarks = predictor(gray, face)
    for n in range(0, 68):
        x = landmarks.part(n).x
        y = landmarks.part(n).y
        cv2.circle(image, (x, y), 2, (255, 0, 0), -1)

Adım 6: Sonucu Görüntüleme

Son olarak, sonuç görüntüsünü gösterelim:

cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Tam Kod

Aşağıda yukarıdaki adımların bir araya getirilmiş tam kodunu bulabilirsiniz:

import cv2
import dlib
import numpy as np

# Yüz dedektörü ve işaretleyici yükleme
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")

# Görüntü yükleme
image = cv2.imread("your_image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Yüz tespiti
faces = detector(gray)

# Yüz işaretlerini bulma ve çizme
for face in faces:
    landmarks = predictor(gray, face)
    for n in range(0, 68):
        x = landmarks.part(n).x
        y = landmarks.part(n).y
        cv2.circle(image, (x, y), 2, (255, 0, 0), -1)

# Sonucu görüntüleme
cv2.imshow("Image", image)
cv2.waitKey(0)
cv2.destroyAllWindows()