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.