Opencv face detection yüz algılama

in #coogger6 years ago (edited)

Yüz tanımlama son yılların en çok ilgi çeken konularından biri oldu. Özellikle yeni çıkan uygulamalar ve yeni çıkan son sürüm telefonlar artık bu teknolojiyi kullanıyorlar.Bende size nasıl fotograftaki yüzü tanımlayacağınızı etap etap göstereceğim.

Classifier(Ayırtediciler)

Bir görüntünün positif mi negatif mi olduguna karar veren bilgisayar programıdır.Yeni bir fotografı doğru bir şekilde test edebilmesi için yüzbinlerce fotograf üzerinde deneme yapılmıştır.

Haar Clasfıer

Paul Viola ve Michael Jones tarafından oluşturuldu . H.C makine öğrenmesi yaklaşımına sahiptir.

Örnek olarak göz bölgelerinin burun ve yanak kısımlarından daha koyu oldugu özelliğine odaklanır.
İkinci olarak ta gözlerin iki göz arasındaki bölümden daha koyu olma özelliğinden yararlanılmıştır.
Peki neler gerekli bunu yapabilmek için o zaman başlayalım.
Bu kod python3 ve üzeri sürümlerinde çalışmaktadır.
İlk olarak opencv-python bu yazıyı takip ederek indirebilirsiniz

Gerekli modullerin içe aktarılması

import OpenCV library
import numpy as np
import cv2
import matplotlib.pyplot as plt
import time

Şimdi bir kaç özelllikten bahsedelim

Resmi okumak için:

test1 =cv2.imread('/testresim.jpg')

Bir resmi görmek için

öncelikle açılacak olan pencere ismini String olarak ilk parametreye giriyoruz ,İkinci parametreye ise resmin yolunu giriyoruz.

cv2.imshow('Test resim',"..../resimyolu")
cv2.waitKey(0) 
cv2.destroyAllWindows()`

Burdaki waitkey çalıştıktan sonra pencerenin hemen kapanmasını engelliyor. Destroy ise kapatıyor.
İsterseniz daha sonra kullanabileceğiniz bir fonksiyondan bahsedelim. ConverToRGB
resimde farklı renk alanlarının oşumasını sağlar.

Bir sonraki aşamalarda ihtiyacınız olacagından dolayı haarcascade_frontalface_alt.xml dosyasını indiriniz(Google'a yazarsaınız opencv'nin data klasörünün içindedir.).
Cascade classifier'ımızı yükleyelim.

haar_face_cascade = cv2.CascadeClassifier('/haarcascade_frontalface_alt.xml')`
#Sonra resimimizi okuyalım lütfen resim yolunu tam giriniz yoksa farklı hatalar alabilirsiniz.
test1 = cv2.imread('..../narcos.jpg')
#Resmimizi griye dönüştürelim.
gray_img = cv2.cvtColor(test1, cv2.COLOR_BGR2GRAY)

Çok ölçekli algılama fonksiyonun özellikleri nelerdir?

Bu objeleri tanımak için kullanılan genel bir fonksiyondur.

  • ilk parametresi resim
  • ikinci parametresi scaleFActor Bir resimde bir yüzün başka bir yüzden büyük olması durumunda ortaya çıkan bozulmayı engeller.

minNeighbors:
Nesneleri algılamak için kullanılan bir algoritmadır.Yanındaki nesnelere bakarak bunu yapar.
Kodumuza geçelim.

faces = haar_face_cascade.detectMultiScale(gray_img, scaleFactor=1.2, minNeighbors=5)`
#Yüzü tanımladık şmdi de üzerine bir çokgen çizelim.
for (x, y, w, h) in faces:
    cv2.rectangle(test1, (x, y), (x+w, y+h), (0, 255, 0), 2)``
#Son olarak bakalım Pabloyu bulabildik mi:)
cv2.imshow("test",convertToRGB(test1))
cv2.waitKey()

Pabloyu bulunca morarmış biraz :)

Not:Bu kodun gelişmiş halini github hesabıma yakında koyacağım oradan takip edebilirsiniz.


Posted on coogger.com - The platform that rewards information sharing


Sort:  

Congratulations, your contribution has been approved.

  • Your contribution type information sharing

You can contact us on discord.
coogger-moderator

You got a 1.07% upvote from @postpromoter courtesy of @hakancelik!

Want to promote your posts too? Check out the Steem Bot Tracker website for more info. If you would like to support the development of @postpromoter and the bot tracker please vote for @yabapmatt for witness!

Coin Marketplace

STEEM 0.19
TRX 0.13
JST 0.030
BTC 60514.11
ETH 3335.86
USDT 1.00
SBD 2.48