Python’da Yüz Tanıma: Face Recognition

Face Recognition (Yüz tanıma), bir kişinin yüzünü kullanarak kimliğini belirleme veya doğrulama yöntemidir. Yüz tanıma sistemleri fotoğraflarda, videoda veya gerçek zamanlı olarak kişileri tanımlamak için kullanılabilir. Yüz tanıma yapabilen çeşitli algoritmalar vardır ancak doğrulukları değişebilir.

Kurulum

face_recognition kütüphanesine başlamak için önce onu kurmamız gerekecek. Kurulum için komut satırında aşağıdaki kodu çalıştırın.

pip3 install face_recognition

Eğer kurulumda hata alırsanız WİNDOWSA DLİB KÜTÜPHANESİNİ KURMA yazımı inceleyin.

Basit Bir Örnek

İçinde birkaç kişinin bulunduğu bir görsel alalım. Bu görseldeki tüm yüzleri otomatik olarak bulmak isteseydik, bunu 4 satır kod ile kolayca yapabiliriz. Bu kod çalıştırıldığında önce görüntüyü alacak ve ardından görseldeki tüm yüzlerin konumlarını hesaplayacaktır. face_recognition.face_locations(image)

Ardından, bulunan yüzlerin sayısını basitçe yazdıracağız.

import face_recognition

image = face_recognition.load_image_file("gorsel.png")
face_locations = face_recognition.face_locations(image)
print("Bu görselde {} tane yüz var.".format(len(face_locations)))

Bu kodu yukarıdaki görsele karşı çalıştırırsak şu sonucu alırız;

 $ python3.6 ornek.py
Bu görselde 2 tane yüz var.

Bu bir yüz algılama(face_recognition) örneğidir. Örneğin bunu bir güvenlik kamerası gibi bir şeyle senkronize edebilir ve birinin evinize girip girmediğini görmek için bu tanıma algoritmasını kullanarak gerçek zamanlı analiz yapabiliriz.

Yüzleri Tanımlama

Daha komplike bir örnek ile bulunan yüzlerin her birinin tam koordinatlarını belirlemek ve bu koordinatları ayrı görüntülere çevirmek olabilir.

Yukarıdaki örneği bir adım daha ileri götürelim.

from PIL import Image
import face_recognition

## jpg dosyasını dizine yükleyin
image = face_recognition.load_image_file("gorsel.jpg")

face_locations = face_recognition.face_locations(image)

print("Bu görselde {} tane yüz var.".format(len(face_locations)))

for face_location in face_locations:

    ## Görseldeki her yüzün konumunu yazdırın
    top, right, bottom, left = face_location
    print("Yüzün konumu: Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))

    ## Mevcut yüze şu şekilde erişebilirsiniz
    face_image = image[top:bottom, left:right]
    pil_image = Image.fromarray(face_image)
    pil_image.show()

Bu kodu çalıştırdığımızda aşağıdaki sonucu verir .

Bu görselde 2 tane yüz var.
Yüzün konumu: Top: 44, Left: 66, Bottom: 95, Right: 118
Yüzün konumu: Top: 38, Left: 187, Bottom: 113, Right: 262

Diğerine göre oldukça havalı oldu : )

Bir Resmin İçinde Bir Kişinin Olup Olmadığını Kontrol Etme

Yukarıdaki örneklerde görselde yüzleri buluyorduk şimdi ise bir görselin içinde kimin olduğunu bulalım. Örneğin elinizde toplu bir fotoğraf var bu fotoğrafın içinde sizin olup olmadığınızı bulalım.

Bunun çalışması için, bulmaya çalıştığınız kişilerin en az bir referans resmine ihtiyacımız var.

import face_recognition

## Referans fotoğrafınızı yükleyin.
known_image = face_recognition.load_image_file("onur.jpg")
## Grup fotoğrafınızı yükleyin.
unknown_image = face_recognition.load_image_file("grup.jpg")

## Onur kodlaması oluşturun
onur_encoding = face_recognition.face_encodings(known_image)[0]
## grup fotoğrafınıza göre bir kodlama oluşturun
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

## Kodlamaları karşılaştırın ve Onur'un fotoğrafta olup olmadığını belirlemeye çalışın
results = face_recognition.compare_faces([onur_encoding], unknown_encoding)
## Sonucu yazdırın
print(results)

Son olarak; Bu  yüz tanıma yazılımına basit bir girişti ve umarım hem yararlı hem de ilginç bulmuşsunuzdur.

Yorum Yap