ABD Münbiçi bırakır mı ?

ABD, Münbiçin yarısı sizde yarısı bizde kalsın dedi

SON 20 YILDA OSCAR KAZANAN KADINLAR

Son 20 yılda En İyi Kadın Oyuncu kategorisinde Oscar kazanan oyuncuların listesi...

AFRİN HAREKATI

Zeytin Dalı Harekatında teröristlerden temizlenen bölge artıyor

Silkroad XIAN

Silkroad sevdalıları için bir server

  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
PHP ile Yüz Tanıma Sistemi

 
#1

Bu yazımızda OpenCV ve PHP Facedetect alt yapısını kullanarak PHP ile yüz tanıma sistemi geliştirmeyi anlatacağız. Geliştireceğimiz yüz tanıma sistemi bir fotoğraftaki yüzleri tespit edip kutucuk içine alacak.
Yüz Tanıma Sistemi İçin Gerekli Olanlar
  • Linux sistem
  • PHP
  • Apache
  • GD Kütüphanesi
  • OpenCV
  • PHP Facedetect eklentisi
PHP facedetect eklentisi çok basit bir eklentidir. Bütün yapmanız gereken face_detect() fonksiyonunu çağırıp kullanmaktır. Bu fonksiyon resmimizde yüz bulunan yerlerin koordinatlarını döndürür. face_count() fonksiyonu ise resimde kaç adet yüz bulunduğunu sayar ve sonuç olarak döndürür.
Kurulum İşlemleri
OpenCV kurulumu için daha önce bir yazı yazmıştık. Bu yazıdakileri uygulayarak OpenCV’yi bilgisayarınıza kurabilirsiniz. OpenCV kurulumu tamamlandıktan sonra PHP için Facedetect eklentisini kuralım. Facedetect eklentisini github linkinden zip olarak indirip kurulum yapacağımız klasöre çıkartalım. Uçbirimi açıp kurulum klasörüne eriştikten sonra aşağıdaki komutları takip edelim.
apt-get install php5-dev
facedetect.png
phpize && configure && make && make install
Bu komutlardan sonra php.ini dosyamızı açıp aşağıdaki kodu ekleyelim.
xtension=facedetect.so
Buraya kadar yapılanlarda hata yoksa kurulum işlemleri tamamlanmış demektir. Apache’yi yeniden başlattıktan sonra yüz tanıma sistemi kodlarımıza geçelim.
Yüz Tanıma Sistemi
PHP kodlarımızı çalıştırmadan önce /usr/local/share/opencv/haarcascades klasöründeki bütün XML dosyalarını programımızı çalıştıracağımız dizine kopyalamalıyız.


PHP Kod:
<?php

$total
face_count('test.jpg','haarcascade_frontalface_alt.xml');

$coordface_detect('test.jpg','haarcascade_frontalface_alt.xml');

print_r($coord);

?>


Yukarıda örnek kodları görebilirsiniz. Kullandığımız fonksiyonların işlevini yazımızın başında açıklamıştık. Dikkat etmemiz gereken nokta XML dosyalarımızdır. Eğer fonksiyonlarımıza verdiğimiz XML inputları yanlışsa fonksiyon false değer döndürür. Yüz tanıma işlemi başarıyla tamamlandığında bize bulunan yüzlerin koordinatlarını sonuç olarak döndürür. Biz de GD kütüphanesi yardımıyla bulduğumuz yüzü işaretleyebiliriz. Bunu aşağıdaki kodlarda görebilirsiniz.


PHP Kod:
<?php

function LoadJpeg($imgname)

{

 
$im = @imagecreatefromjpeg($imgname);

 if (!
$im) {

 
$im  imagecreate(15030);

 
$bgc imagecolorallocate($im255255255);

 
$tc  imagecolorallocate($im000);

 
imagefilledrectangle($im0015030$bgc);

 
imagestring($im155"Error loading $imgname"$tc);

 }

 return 
$im;

}

$totalface_count($_GET['file'],'haarcascade_frontalface_alt.xml');

$ordface_detect($_GET['file'],'haarcascade_frontalface_alt.xml');

$im LoadJpeg($_GET['file']);

$pink imagecolorallocate($im255105180);

if(
count($ord) > 0) {

foreach (
$ord as $arr) {

imagerectangle($im,$arr['x'] ,$arr['y'] , $arr['x']+$arr['w'],

$arr['y']+$arr['h'], $pink);

}

}

header('Content-Type: image/jpeg');

imagejpeg($im);

imagedestroy($im);

?>


test.jpg.detect-216x300.jpgtest-216x300.jpgYukarıdaki örneğe ek olarak göz, vücut tanıma gibi örnekler de yapılabilir. Bunun için fonksiyon inputlarında kullandığınız XML dosyasını değiştirmemiz yeterlidir. Geliştirilmiş halinin örneğini yan tarafta görebilirsiniz. Bu yazımızda PHP ile yüz tanıma sistemi geliştirmeyi anlattık. İleriki yazılarda OpenCV ve facedetect kullanamdan tamamen bir algoritmaya dayalı yüz tanıma sistemi anlatacağız. Böylece kendi algoritmanızı hazırlayarak daha farklı sistemler geliştirebilirsiniz. Sorularınızı sayfanın altında bulunan yorum bölümünden sorabilirsiniz.



Ara
Cevapla


[-]
Hızlı Cevap

İnsan Doğrulama:
Aşağıda görünen onay kutusunu işaretleyiniz. Bu işlem otomatik spam kayıtları önlemek için kullanılır.

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Konuyu Okuyanlar:
1 Ziyaretçi

   
Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2018 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-2018 Tüm hakları saklıdır.