Yüz Tarama Programı :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Yüz Tarama Programı

07.04.2015 tarihinde Android Programlama kategorisine eklenmiş, 1.239 views Kişi Okumuş ve 0 Yorum Yapılmış.

İNSAN YÜZÜNÜN TANINMASI

Yüz tanıma, bilgisayar bilimi ve imge işleme alanlarında özelikle insan-bilgisayar iletişimi ve biyometri amaçlı birçok araştırmaya konu olmuş bir problemdir. Bu çalışmada öncelikle konunun genel araştırılması yapılmıştır. Bu kapsamda birçok yüz tanıma teknikleri ve algoritmaları araştırılmış, bunlardan en önemlileri hakkında bilgi verilmiştir. Yüz tanıma sistemine iki boyutlu yaklaşılmış ve bu konuda çözüm üretilmeye çalışılmıştır. Öncelikle yüz algılama kısmı tasarlanmıştır. Yüz kesiti bulmak için yüz temsili ve ten rengini temel alan bir yöntem uygulanmıştır. Bu yöntem uygulanırken C# dili üzerinde EmguCV çapraz platformu ile hazır kütüphaneler kullanılmıştır. Kullandığımız bir diğer kütüphane de OpenCV görüntü işleme kütüphanesidir. İkinci olarak ise yüz tanıma kısmı tasarlanmıştır. Yüz tanıma kısmında bünyesinde yapay sinir ağları barındıran EmguCV kütüphanesi kullanılmıştır.  android_yüz_tanıma_haber1  MultiBiometric-CokluBiyometrik-480x328

 

Yüz bulma ve yüz tanıma günümüzde birçok araştırmacının bu konu üzerinde çalıştığı, ticari ve hukuksal alanlarda birçok uygulaması olan bir çalışmadır. Var olan yüz tanıma metotları kontrollü ortamda daha başarılı sonuçlar vermekte fakat yönlenme ve aydınlanma değişimlerinin olduğu ortamlarda başarı düşmektedir.

Kişinin kendisine ait fiziksel ve davranışsal özellikleri kullanılarak kişilerin elektronik ortamda tanınması ve kimliklendirilmesi için kullanılan metotlar bütününe biyometri denir. Biyometrik sistemler, bireylerden alınan örnekler ve uygulanacak algoritmalar ile birlikte bir depolanma aygıtında saklanması sonrasında, verilerin eşleştirme prensibi ile çalışmaktadır. Biyometrik tanıma sistemleri grubuna giren yüz tanıma sistemi, son zamanlarda talep oranına bağlı olarak çok popüler bir tanıma sistemi haline gelmiştir. Yüzün dijital/analog kameralar ve diğer görüntüleme cihazları kullanılarak sayısal bir ifadeye dönüştürülmesine yüz biyometresi denir.

Bu işlemlerin sonucunda elde edilen görüntü, yüz unsurları arasındaki uzaklıkların ölçülmesi (tanımlama algoritması) ve bu uzaklıkların tanıma algoritmasında gerekli yerlere oturtulması ile matematiksel bir ifade haline gelir. Bu ifade kullanılan yüze ait olan ve başka birinin yüzünden elde edilecek başka bir ifadeden tamamen farklı bir formül olarak adlandırılır. Bunun sonucunda daha önceden tanıtılmış yüzlerin, kişilerin bilgisayar yardımı ile hatırlanabilmesi ve ihtiyaç duyulduğunda tanımlana bilmesi oldukça kolaydır.

 

EmguCV yüz kesitinin bulunabilmesine yönelik kendi kütüphaneleri ile birlikte algoritmalarda çok etkili bir şekilde kullanılmıştır. Görüntü üzerinde bazı sınırlamalar olması (ışık, kamera gibi) durumunda bu yöntemin başarı oranı çok düşmektedir.

Bu süreçte önce görüntü işleme teknikleri kullanılarak bir görüntü üzerinde yüz bölgesi, yüz bulma algoritması ile belirlenmiştir. Bu algoritma ile belirlenen yüz kesitleri eğitilerek programımızda bir veri tabanı oluşturulmuştur. Bu eğitim ile yüzün belirli özellikleri tutulmuştur. Bu oluşan veri tabanı sayesinde test için kameradan görüntülenerek eklenen herhangi resmin yüz kesiti tespit edilir. Bu sayede test için girilen herhangi bir resmin daha önce eğitim sonucu belirlenen yüzlerden biri olup olmadığını karşılaştırarak doğru yüzü bulma işlemi gerçekleştirilmiş olur.

Bu çalışmada temel olarak 3 aşamadan oluşur :

 İşlenen görüntünün yüz olup olmadığını algılama,  İşlenen resim üzerinde yüz bölgelerinin tespiti,  Belirlenen yüzün kimliğinin tespiti.

Bu işler, geliştirilen uygulama dahilinde birbirinden bağımsız olarak çalışan ama bazı kısımlarda birbirlerinin verilerini kullanan alt programcıklar olarak düşünülebilir. Bu bilgiler ışığında aşağıda belirtilen uygulama adımları geliştirilmiştir.

Sayısal kamera ile elde edilen görüntü

 

Yüz Olup Olmadığını Algılama

Yüz Bölgesinin Tespiti

Yüz bulma ve yüz bölgesinin tespitinin sonucu elde edilen 50×50 piksel yüz içeren resimler

Yüz Tanıma Sistemi

Yüzün Kimliğinin Tespiti

Yüz tanıma adımları olarak; herhangi bir yüz aşağıdaki adımların uygulanması ile bilgisayar tarafından algılanarak gerekli yerlere kaydedilir.Veri tabanındaki verilerle karşılaştırılır ve kimlik tespiti yapılır. Bu adımlar: 1. Yüzün dijital/analog olarak görüntülenmesi, 2. Elde edilen anolog ise dijital hale getirilmesi, 3. Dijital görüntüdeki unsurların, EmguCV kütüphanelerini kullanılarak birbirine bağlı olan uzaklıkları ve yüzün genel alanı içindeki koordinatların saptanması, 4. Elde edilen değerlerin EmguCV kütüphanelerini kullanılarak algılanması ve matematiksel bir ifadeye dönüştürülmesi, 5. İfadenin daha sonra elde edilecek diğer ifadeler ile karşılaştırılmak ve diğer uygulamalar için kullanılmak üzere veri tabanında tutulması, işlemleri uygulanır.

Yüz bulma ve algılama işlemleri EmguCV ve OpenCV kütüphanelerini kullanarak hazırlandı.

3.YÜZ TANIMA SİSTEMİNDE KULLANILAN KÜTÜPHANELER

3.1 EmguCV

 Tamamen C# dilinde yazılır.  Tek seferde derlenir  ve bu nedenle Mono Linux, Mac OS X, iOS ve Android de dahil olmak üzere, destekleyen herhangi bir platformda çalışabilir.  Emgu CV;  C #, VB.NET, C + + ve IronPython dahil olmak üzere birçok farklı dilde kullanılabilir.

 

 

Kullanılan Kütüphaneler :

Emgu CV, iki katmandan oluşmaktadır:

 Temel tabakası (Layer 1): OpenCV eşlemeleri ile doğrudan yapı ve numaralandırma fonksiyonunu içerir.  İkinci katman (Layer 2): .NET sınıflarını içerir.

 

 

3.2.OpenCV

OpenCV (Open Source Computer Vision Library) Windows, Linux, Mac OS X, PSP (PlayStation Portable) platformları üzerinde çalışabilen, C diliyle yazılmış, gerçek zamanlı bilgisayarla görme (real time computer vision) ve görüntü işleme (image processing) uygulamaları için kullanılabilen, açık kaynak kodlu bir “Bilgisayarla Görme” kütüphanesidir.

 Intel tarafından geliştirilmiştir, Willow Garage tarafından desteklenmektedir.  İçerdiği fonksiyonların bir çoğu platform bağımsız olarak çalışır.  2.0 versiyonundan itibaren,  C arayüzüne ek olarak C++ arayüzü de eklenmiş.  Akademik ve ticari kullanımı ücretsizdir.

Günümüzde, OpenCV içerisindeki bilgisayarla görme ve görüntü işleme algoritmaları kullanılarak;

 İnsan-Bilgisayar Etkileşimi (Human-Computer Interaction – HCI)

 

 Nesne Kimliklendirme, Bölümleme ve Tanıma  (Object Identification, Segmentation and Recognition)  Yüz Tanıma (Face Recognition)  İşaret Dili Tanıma (Gesture Recognition)  Hareket Yakalama, Algılama ve Takibi (Motion Tracking, Ego Motion, Motion Understanding)  Çiftli ve Çoklu Kamera Kalibrasyonu ve Derinlik Hesaplama (Stereo and MultiCamera Calibration and Depth Computation)  Hareketli Robot Teknolojileri (Mobile Robotics)

uygulamaları geliştirilmektedir.

4.YÜZ TANIMA SİSTEMİ

4.1.Program Hakkında

Çalışmamızda EmguCv ve OpenCv kütüphanelerinden yararlanıldı. Programımız Visual Studio 2012  kullanarak  C# tabanında geliştirildi. Veritabanı olarak da MySql kullanıldı. Yüz tanıma sistemi; yüzün karakteristik özelliklerini analiz ederek, farklı noktalar ve bölgeler arasında biyometrik ölçümler yaparak veritabanı ile karşılaştırma yapar ve kişiyi tanımlar.

4.2 Amacı

Yüz tanıma sisteminin amacı; veritabanımızda mevcut olan yüzlere ait bir takım karakteristik ve özelliklerin sistem tarafından otomatik olarak yakalanmasına ve karşılaştırılmasına dayanmaktadır. Bu teknolojide istenilen  en önemli özellik uygulandığı alanda,  arzu edilen güvenliği kimsede stres oluşturmadan veya kimseye rahatsızlık yaşatmadan sağlamaktır. Dolayısıyla bireyler olağan aktivitelerini sürdürürken kendileri ile ilgili güvenlik araştırması yapılabilecek ve herhangi bir rahatsızlık oluşmayacaktır.

4.3 Hedefler

Video görüntülerinden otomatik olarak insan yüzlerini yakalama ve takip olanağı sunacak, Kalabalık alanlarda birden fazla yüzü aynı anda yakalama ve takip imkanı sunacak, Kameralı güvenlik sistemleri ile entegrasyonu kolaylıkla sağlanacaktır.Aranılan kişi bulunduğu anda kamera monitörlerinde görüntüleme özelliğine sahip olacak, Bilgisayardaki fotoğraf ile veritabanından sisteme kişi kaydı yapabilecektir.

Güvenliği tam sağlamak için uygulanabilecek yerler; Personel devam kontrol sistemi,  Erişim kontrol-geçiş kontrol sistemi, Yemekhane kontrol sistemi, Üye takip sistemi, Öğrenci takip sistemi,

 

 

Eğitim kuruluşları, Kamu kurum ve kuruluşları, 5.PROGRAM ARAYÜZLERİ

5.1 KULLANICI ADI SEÇİMİ

 

Sisteme giriş yapmak isteyen kullanıcı yukarıda görüldüğü gibi kullanıcı adını seçebilir.

5.2 SİSTEME GİRİŞ

 

Veritabanına kayıtlı olan kullanıcı, kullanıcı adı ve şifresiyle sisteme giriş yapmaya çalışır. Kullanıcı adı ve şifre veritabanındakiyle uyuştuğunda sisteme başarılı bir şekilde giriş yapmış olur.

 

Kullanıcı sisteme giriş yaptıktan sonra anasayfa ekranına geçiş yapmış olur. Yapmak istediği işleme göre yukarıdaki sekmelere tıklayarak işlem yapacağı sayfayı açar.

 

5.4. KAYITLI ÖĞRENCİNİN TEKRAR KAYDEDİLMEYE ÇALIŞILMASI

 

Kişinin yüzünün tanınabilmesi için öncelikle veritabanında kayıtlı olması gerekmektedir. Kaydedilmeye çalışılan öğrenci veritabanında zaten kayıtlısa yukarıdaki gibi uyarı ekranıyla karşılaşılacaktır.

5.5. YENİ ÖĞRENCİ KAYDI

 

 

Bilgileri veritabanına kaydelilen öğrencinin verilerine, yüzünün tanıması için  resim eklenmek istenirse, öğrenci kaydı ekranında  “Yüz Ekle” butonuna tıklanarak o öğrencinin numarası otomatik olarak yukarıdaki gibi, yüz tanıma ekranına getirilir. Ve öğrenci numarasına göre yeni resimler veritabanına eklenebilir.Yüz ekleme işlemini gerçekleştirmek için anasayfada “Yüz Tanıma” sekmesine de tıklananıp sayfanın açılması sağlanabilir.

NOT: Sisteme kayıtlı bir öğrenci numarası girilmeden yüz eklenmeye çalışılırsa yukarıdaki ekranla karşılaşılmaktadır. Yani yüz ekleme işleminin gerçekleşmesi için kayıtlı bir öğrenci numarasının girilmesi gerekmektedir.

5.7. YÜZ ALGILAMA VE TANIMA

Kullanıcı tarafından veritabanında kayıtlı olan diğer öğrencilerin bilgilerine başka resimler eklenmek istendiğinde, “Algıla ve Tanı” butonuna basılır ve kameranın açılıp yüzün algılanması sağlanır. Algılanan yüz, yazılan öğrenci numarasının bilgileri arasına “Yüz Ekle“ butonuna basılarak yukarıdaki gibi kaydedilir. Kaydelilen öğrencinin öğrenci numarasından, hangi bölüm olduğu , okula hangi yıl kayıt olduğu ve öğrenim türü otomatik olarak tanınır ve kamera kişinin yüzünü algıladıkça öğrencinin ismiyle birlikte bu bilgiler yukarıdaki gibi otomatik görüntülenir. Eğer  başka öğrenci kaydetmek istenirse “Öğrenci Kaydet” butonuna tıklayarak Yeni Öğrenci Kaydı ekranının açılması sağlanabilir.

Kayıtlı olan yüz artık, yukarıdaki gibi kameradan tanınmaktadır ve  bilgileri otomatik olarak görüntülenmektedir.

 

5.8. MEVCUT KAYITLARIN LİSTELENMESİ  biyometrik-yuz-tanima-sistemi_15

 

Kullanıcı, anasayfada “Mevcut Kayıtlar Listesi ” sekmesine ya da yüz tanıma ekranında “Kayıtları Listele” butonuna tıklayarak mevcut kayıtlarının listesinin bulunduğu Kayıtlar ekranını açabilir. Listede üzerine tıklanan ismin kayıtlı resimleri yukarıdaki gibi    görüntülenmektedir.

 

 

5.9.KAYITLARI GÜNCELLEME

Liste üzerinde öğrenci no ve ad soyad üzerinde de değişiklik yapılabilir. Kullanıcı değişiklik yapmak istediği öğrencinin bilgilerine tıklayarak  değiştirebilir ve “Güncelle” butonuna tıklayarak bu  bilgiler güncelleyebilir.

5.10. KAYIT ARAMA

Kayıtların listelenmesi işlemini yukarıdaki gibi  filtreleme yaparak gerçekleştirebiliriz. İstediğimiz isimdeki öğrencilerin görüntülenmesi sağlanabilir.

5.11.KAYITLARIN SİLİNMESİ

Listede üzerine tıklanarak seçilen öğrenci, veritabanından silinmek istenirse “Silme” butonuna basılarak silinebilir.

 

Eğer öğrenciye ait herhangi bir resim silinmek istenirse, resme tıklanarak “Resmi Sil” butonuna basılabilir.

Resim başarıyla silindiğinde yukarıdaki mesaj kutusuyla karşılaşılacaktır.

 

 

 

Bu çalışmada bir yüz tanıma sistemi geliştirilmeye amaçlanmıştır. Geliştirdiğimiz uygulama normal şartlar altında iyi sonuçlar vermesine rağmen ışık miktarının değişmesi veya yüzdeki bir aksesuar gibi faktörler tanıma işlemini etkilemektedir. Sisteminde eğitim verisinin arttırılması da sonuçları iyileştirdiği görülmektedir. Fakat, eğitim verisinin artması depolanan yüz sayısını ve algoritmadaki karşılaştırma sayısını arttırmaktadır. Gelecekte, depolanan verinin tutulma şekli ve karşılaştırma algoritmaları  üzerine çalışmalar yapılabilir.

7.KAYNAKLAR

 http://www.belgeler.com/blg/17re/yapay-zeka-uygulamalari-yz-tanima-applications-of-artificialintelligence-ai-identification-of-face  http://www.codeproject.com/Articles/239849/Multiple-face-detection-and-recognition-in-real-ti  http://stackoverflow.com/questions/12902457/face-detect-and-recognize  http://web.firat.edu.tr/icits2011/papers/27856.pdf  http://fewtutorials.bravesites.com/  http://www.facedetection.com/  http://www.codeproject.com/  http://ube.ege.edu.tr/~cinsdiki/UBI521/Chapter-1/cinsdikici-neural-net-giris.pdf  http://www.belgeler.com/blg/m0q/zyz-kullanilarak-yz-tanima-face-recognition-using-eigenfaces,

 http://www.emgu.com/wiki/index.php/Main_Page  http://opencv.org/  http://opencv.willowgarage.com/wiki/  http://organikyazilimblogu.blogspot.com/2010/05/c-ile-yuz-bulma-ve-tanma.html  www.goruntuisleme.org/tez/Kubilay.doc  http://www.ahmetkakici.com/genel/biyometrik-tanima-sistemleri/

İlgili Terimler :
Yazar Hakkında

Yazar : Emir

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin

Sitemizde En Çok Yorumlanan İçerikler

Rating Bar Kullanımı
Rating Bar KullanımıAndroid’de yıldız şeklinde derecelendirme çubuğu olarak kullanılır. Kullanıcı sürükleme
Android Wear Emülatör Kurulumu
Android Wear Emülatör Kurulumu   Android studio da geliştireceğimiz uygulamaların kontrolunü yapmak için emülatör
Resim Galerisi Oluşturma
Resim Galerisi OluşturmaAndroid Programlama – Resim Galerisi Oluşturma Bu yazıda, bir galeri
SQLite Database Browser Kullanımı
SQLite Database Browser KullanımıSQLite Database Browser Kullanımı Merhaba arkadaşlar, Android uygulamaları geliştirirken uygulama üzerindeki

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Eylül 2017
    P S Ç P C C P
    « Kas    
     123
    45678910
    11121314151617
    18192021222324
    252627282930  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta