• Sonuç bulunamadı

Biyometrik yüz tanımaya dayalı web üzerinden güvenli erişim sistemi tasarımı

N/A
N/A
Protected

Academic year: 2021

Share "Biyometrik yüz tanımaya dayalı web üzerinden güvenli erişim sistemi tasarımı"

Copied!
97
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

T.C.

SELÇUK ÜNĠVERSĠTESĠ FEN BĠLĠMLERĠ ENSTĠTÜSÜ

BĠYOMETRĠK YÜZ TANIMAYA DAYALI WEB ÜZERĠNDEN GÜVENLĠ ERĠġĠM

SĠSTEMĠ TASARIMI Yasin VURGUN YÜKSEK LĠSANS

BiliĢim Teknolojileri Mühendisliği Anabilim Dalı

Ocak-2017 KONYA Her Hakkı Saklıdır

(2)

TEZ KABUL VE ONAYI

Yasin VURGUN tarafından hazırlanan “Biyometrik Yüz Tanımaya Dayalı Web Üzerinden Güvenli EriĢim Sistemi Tasarımı” adlı tez çalıĢması …/…/… tarihinde aĢağıdaki jüri tarafından oy birliği / oy çokluğu ile Selçuk Üniversitesi Fen Bilimleri Enstitüsü BiliĢim Teknolojileri Mühendisliği Anabilim Dalı’nda YÜKSEK LĠSANS TEZĠ olarak kabul edilmiĢtir.

Jüri Üyeleri Ġmza

BaĢkan

Doç. Dr. ġakir TAġDEMĠR ………..

DanıĢman

Yrd. Doç. Dr. Hasan Erdinç KOÇER ………..

Üye

Yrd. Doç. Dr. Onur ĠNAN ………..

Yukarıdaki sonucu onaylarım.

Prof. Dr. Mustafa YILMAZ FBE Müdürü

(3)

TEZ BĠLDĠRĠMĠ

Bu tezdeki bütün bilgilerin etik davranıĢ ve akademik kurallar çerçevesinde elde edildiğini ve tez yazım kurallarına uygun olarak hazırlanan bu çalıĢmada bana ait olmayan her türlü ifade ve bilginin kaynağına eksiksiz atıf yapıldığını bildiririm.

DECLARATION PAGE

I hereby declare that all information in this document has been obtained and presented in accordance with academic rules and ethical conduct. I also declare that, as required by these rules and conduct, I have fully cited and referenced all material and results that are not original to this work.

Yasin VURGUN Tarih: 23.01.2017

(4)

iv

ÖZET

YÜKSEK LĠSANS TEZĠ

BĠYOMETRĠK YÜZ TANIMAYA DAYALI WEB ÜZERĠNDEN GÜVENLĠ ERĠġĠM SĠSTEMĠ TASARIMI

Yasin VURGUN

Selçuk Üniversitesi Fen Bilimleri Enstitüsü BiliĢim Teknolojileri Mühendisliği Anabilim Dalı

DanıĢman: Yrd. Doç. Dr. Hasan Erdinç KOÇER 2017, 88 Sayfa

Jüri

Yrd. Doç. Dr. HASAN ERDĠNÇ KOÇER Doç. Dr. ġakir TAġDEMĠR

Yrd. Doç. Dr. Onur ĠNAN

Sanal ortamda yayınlanan web sitelerinin bazıları eriĢime tamamen açık olup hiçbir kısıtlamaya sahip olmazken, bazı web siteleri özel alanlara belirli kiĢilerin eriĢimine izin vermektedir. Bu web sitelerinde özel alanlara eriĢim, kullanıcı giriĢi ile sağlanmaktadır. Kullanıcı giriĢinde genellikle kullanıcı adı ve kullanıcı Ģifresi istenilmektedir. Ancak Ģifrenin çalınması gibi durumlarda güvenlik açığı oluĢmaktadır. Sisteme giriĢ yapmak isteyen kiĢinin gerçekten o kiĢi mi olduğunu belirlemek amacıyla sisteme, son yıllarda üzerinde sıkça çalıĢma yapılan biyometrik tanıma modülü eklenmektedir. Bu tez çalıĢmasında, kullanıcı giriĢinin olduğu web sitelerde, güvenliği arttırmak amacıyla biyometrik tanıma yöntemlerinden yüz tanıma kullanılmıĢtır. GeliĢtirilen web tabanlı biyometrik yüz tanıma sisteminde “Özyüzler”, “Fisheryüzler” ve “Yerel Ġkili Örüntü” yöntemleri kullanılmıĢtır. Sistem öncelikle masaüstü uygulaması olarak geliĢtirilmiĢ ve bu yöntemlerin birbirlerine olan üstünlükleri araĢtırılmıĢtır. Test iĢlemlerinde literatürde yüz tanıma araĢtırmalarında sıklıkla kullanılan uluslararası “Yale Yüz Veritabanı” ve “Georgia Tech Yüz Veritabanı” kullanılmıĢtır. Ayrıca sistemin güvenirliğini test etmek için çalıĢma kapsamında 50 adet gönüllü kullanıcıdan alınan 750 adet fotoğraf içeren yeni bir veri tabanı (YV Yüz Veritabanı) oluĢturulmuĢtur. Web kısmında çalıĢan Silverlight tabanlı yüz tanıma uygulaması; kullanıcı giriĢi arayüzü, kullanıcı fotoğrafı ve giriĢ bilgilerini sunucu tarafına aktaran web servis uygulaması ve masaüstü uygulamasından elde edilen yüz tanıma yazılımının sunucu versiyonu olmak üzere 3 katmandan oluĢmaktadır. Kullanıcı giriĢi arayüzü web kamerası üzerinden kiĢinin fotoğrafını alarak boyutunu yarıya düĢürüp kullanıcı adı ve Ģifre bilgisi ile birlikte sunucu uygulamasına göndermektedir.

ÇalıĢma kapsamında geliĢtirilen yüz tanıma uygulaması; fotoğrafın yakalanması, yakalanan resim içerisinde yüz bölgesinin tespiti, yüz bölgesinde yer alan sağ ve sol gözbebeği noktalarını baz alan hizalama iĢlemi ve 3 farklı yöntemle yüz tanıma aĢamalarından oluĢmaktadır. Tez kapsamında her yöntem 3 farklı veritabanında uygulanmıĢ tanıma baĢarı oranları Doğru Kabul Yüzdesi (DKY) ve Doğru Ret Yüzdesi (DRY) açısından değerlendirilmiĢtir. Test sonuçlarına göre Yerel Ġkili Örüntü yönteminin (%70.04 DKY, %76.13 DRY) diğer yöntemlere göre (Özyüzler: %69.00 DKY, %0.00 DRY; Fisheryüzler: %61.25 DKY, %71.77 DRY) daha baĢarılı tanıma gerçekleĢtirildiği görülmüĢtür.

(5)

v

ABSTRACT MS THESIS

DESIGN OF SECURE ACCESS SYSTEM THROUGH WEB BASED ON BIOMETRIC FACE RECOGNITION

Yasin VURGUN

THE GRADUATE SCHOOL OF NATURAL AND APPLIED SCIENCE OF SELCUK UNIVERSITY

THE DEGREE OF MASTER OF SCIENCE IN INFORMATION TECHNOLOGY ENGINEERING

Advisor: Asst. Prof. Dr. Hasan Erdinc KOCER 2017, 88 Pages

Jury

Asst. Prof. Dr. Hasan Erdinc KOCER Assoc. Prof. Dr. Sakir TASDEMIR

Asst. Prof. Dr. Onur INAN

While some web sites that are published in the virtual environment are fully accessible and have no restrictions, some web sites allow specific people to access specific areas. Access to specific areas in these web sites is provided by user login. Usually user name and user password are required at user login. However, security vulnerability occurs when password is played. In order to determine if the person who wants to login to the system is really the person, a biometric recognition module has been added to the system, which has been frequently worked on in recent years. In this thesis study, face recognition is used as a biometric recognition method in order to increase security in web sites where user login is located. "Eigenface", "Fisherface" and "Local Binary Pattern" methods were used in the developed web based biometric face recognition system. The system has been developed primarily as a desktop application and the superiority of these methods to each other has been investigated. During the testing process, the international "Yale Face Database" and "Georgia Tech Face Database" which are frequently used in face recognition researches were used. Also, to test the reliability of the system, a new database (YV Facial Database) was created with 750 photographs from 50 volunteer users. Silverlight-based face recognition application running on the web consists of 3 layers, user login interface, web service application which transfers the user photograph and login information to the server side, and server version of the face recognition software obtained from the desktop application. The user login interface takes the picture of the person through the webcam and cuts down in half and sends it to the server application with username and password information.

Face recognition application developed in the scope of the study consists of capture of the photo, detection of the face area in the captured image, alignment process based on the right and left pupil points located in the face region, and face recognition phases with 3 different methods. In the thesis, each method was applied in 3 different databases and recognition success rates were evaluated in terms of True Accept Rate (TAR) and True Reject Rate(TRR). According to the test results, Local Binary Pattern Method (70.04% TAR, 76.13% TRR) was more successful than other methods (Eigenface: 69.00% TAR, 0.00% TRR, Fisherface: 61.25% TAR, 71.77% TRR).

Keywords: Biometrics, eigenface, face recognition, fisherface, security, local binary pattern,

(6)

vi

ÖNSÖZ

ÇalıĢmalarım sırasında yardım ve desteğini hiçbir zaman esirgemeyen, bana her yönden danıĢmanlık eden saygıdeğer hocam Yrd. Doç. Dr. Hasan Erdinç KOÇER’e teĢekkürlerimi sunarım.

Tez çalıĢmamda kullanmak amacıyla hazırladığım yüz veritabanının oluĢturulması için fotoğraflarını çektiğim kiĢilere Ģükranlarımı sunarım.

Ayrıca tüm öğrenim hayatım boyunca maddi ve manevi desteklerini esirgemeyen aileme; tez döneminde hayatıma giren, tezin hazırlanması esnasındaki desteklerinden ve gösterdikleri özverilerden dolayı eĢim ve oğluma minnettarım.

Yasin VURGUN KONYA-2017

(7)

vii ĠÇĠNDEKĠLER ÖZET ... iv ABSTRACT ... v ÖNSÖZ ... vi ĠÇĠNDEKĠLER ... vii SĠMGELER VE KISALTMALAR ... ix 1. GĠRĠġ ... 1 1.1 Tezin Organizasyonu ... 2 2. KAYNAK ARAġTIRMASI ... 4 3. MATERYAL VE YÖNTEM ... 8

3.1. Kullanılan Veri Kümeleri (Yüz Veritabanları) ... 8

3.1.1. The Yale Face database ... 8

3.1.2. Georgia Tech face database (GT-Db) ... 9

3.1.3. YV (Yasin Vurgun) yüz veritabanı ... 10

3.2. Yöntem ... 10

4. YÜZ TANIMA SĠSTEMLERĠ ... 12

4.1. Yüz Bulma ... 12

4.1.1. Viola – Jones yüz bulma yöntemi ... 13

4.2. Yüz Hizalama ... 17

4.3. Yüz Tanıma ... 18

4.3.1. Özyüzler (Eigenfaces) yöntemi ... 18

4.3.1. Fisheryüzler (Fisherfaces) yöntemi ... 21

4.3.1. Yerel ikili örüntü (LBP) yöntemi ... 22

5. YÜZ TANIMA UYGULAMASI ... 25

5.1. Masaüstü Uygulaması Olarak YV Yüz Tanıma Sistemi ... 25

5.1.1. Programın kullanımı ... 25

5.1.2. Yüz bulma ... 31

5.1.3. Yüz hizalama ... 34

5.1.4. Yüz tanıma ... 37

5.1.5. Masaüstü yüz tanıma uygulaması sonuçları ... 37

5.2. Web Tabanlı YV Yüz Tanıma Sistemi ... 48

5.2.1. Web uygulamasının kullanımı ... 49

5.2.2. Web uygulaması sonuçları ... 54

6. SONUÇLAR VE ÖNERĠLER ... 56

6.1 Sonuçlar ... 56

(8)

viii

KAYNAKLAR ... 61 ÖZGEÇMĠġ ... 88

(9)

ix SĠMGELER VE KISALTMALAR Simgeler % : Yüzde ∑ : Toplam ig() : Ġntegral görüntü i() : Pikselin değeri Γ : Vektör görüntü

Ψ : Ortalama yüz görüntüsü

: Ortalama görüntüden sapma miktarı μi : i. Özdeğer

C : Kovaryans matrisi

G(x,y) : Gözün koordinat düzlemindeki konumu SB : Sınıflar arası saçılım matrisi

SW : Sınıf içi saçılım matrisi

tan() : Tanjant XC : Merkez piksel

XP : KomĢu piksel

vi : i. özvektör

Wopt : Optimum izdüĢüm matrisi

Kısaltmalar

AAM : Aktif Görünüm Modeli

API : Application Programming Interface CNN : Convolutional Neural Network DKY : Doğru Kabul Yüzdesi

DRY : Doğru Ret Yüzdesi EBG : Elastik Demet Grafiği GB : Gigabyte

GHz : GigaHertz

GT-Db : Georgia Tech Face Database ICA : Bağımsız BileĢenler Analizi IP : Internet Protocol

LBP : Local Binary Pattern (Yerel Ġkili Örüntü)

LDA : Linear Discriminant Analiysis (Doğrusal Diskriminant Analizi) LFW : Labeled Faces in the Wild

PCA : Temel BileĢen Analizi (Principal Component Analysis) TCP : Transmission Control Protocol

V&J : Viola ve Jones YĠÖ : Yerel Ġkili Örüntü YV : Yasin VURGUN

(10)

1. GĠRĠġ

Ġnternet ve teknolojideki geliĢmeyle birlikte, web sitesi çeĢidi ve web kullanımı artmıĢtır. Artık her türlü hizmet, internet üzerinden de kullanıcılara sunulmaktadır. Bütün bu kolaylıklar, yanında büyük sorumluluklar da getirmiĢtir. Ġnternet gibi büyük bir ağ sayesinde tüm dünyaya açılan bir hizmetin, güvenliğinin sağlanması da zorlaĢmaktadır.

Web sitelerindeki eriĢim güvenliği, kullanıcı kontrolü ile sağlanmaktadır. Kullanıcı kontrolü için kimi siteler, kullanıcı adı ve Ģifresini yeterli görürken, bankacılık gibi bazı sektörlere ait siteler ek bir parametreye daha gerek duymuĢlardır. Bu ek güvenlik parametresi, kullanıcıya ait cep telefonuna gönderilen bir Ģifre veya kullanıcıya daha önceden verilen özel ek bir donanımın ürettiği Ģifre ile sağlanmaktadır. Ġkinci bir Ģifreyi oluĢturan bu donanımların da çalınma veya kaybolma riskinin olduğu unutulmamalıdır.

En üst düzey güvenliğe sahip sistemler, biyometrik tanıma tabanlı sistemler olarak bilinmektedir. Biyometrik sistemleri bu Ģekilde önemli yapan Ģey, kullandığı güvenlik parametresinin kiĢiye özel olup çalınma riskinin olmaması ve kopyalanamamasıdır. Birçok biyometrik tanıma yöntemi olmasına rağmen günümüzde en çok parmak izi tanıma, damar tanıma ve yüz tanıma kullanılmaktadır. Damar tanıma ve parmak izi tanıma yapabilmek için görüntü alacak özel ek bir donanıma ihtiyaç vardır. Bu cihazla görüntü alabilmek için kiĢi elini/parmağını cihaza temas ettirmek zorundadır. Farklı kiĢilerin aynı yere fiziksel temas etme zorunluluğu, sağlık sorunları oluĢmasına davet çıkartmaktadır. Bu ve buna benzer nedenlerle kullanıcılar bu sistemleri isteyerek kullanmamaktadır. Biyometrik yüz tanıma sistemleri tanıma iĢlemlerinde kamera kullanmaktadır. Son yıllarda günlük yaĢantımızın her alanına giren kameralar bilgisayarlarda standart donanım olarak sunulmaktadır. Günümüzde internete giriĢimizi sağlayan dizüstü bilgisayarı, tablet ve cep telefonu gibi her cihazda dâhili kamera bulunduğundan, yüz tanıma sistemini kullanmak istediğimizde ek bir donanım maliyetine gerek kalmamaktadır. Ayrıca görüntü almak için temas edilmemesi kullanıcıların sağlık açısından endiĢe duymamasını sağlamaktadır.

Bu çalıĢmada, web sitelerine kullanıcı giriĢ yaparken biyometrik özelliklerden yüz görüntüsü kullanılarak yüksek güvenlik seviyesinde giriĢ yapılmasını sağlayan web tabanlı yüz tanıma sistemi geliĢtirilmiĢ ve test edilmiĢtir. Tanıma sistemi öncelikle masaüstü uygulaması olarak geliĢtirilmiĢ ve 3 farklı algoritma ile test edilmiĢtir. Bu

(11)

algoritmalar yüz tanıma uygulamalarında sıkça tercih edilen yerel ikili örüntü (Local Binary Pattern – LBP), Özyüzler (Eigenfaces) ve Fisher yüz (Fisher faces) algoritmalarıdır. Burada amaç, bu yöntemlerden yüz tanıma aĢamasında en baĢarılı olanı belirlemek ve sunucuda çalıĢacak olan web tabanlı yüz tanıma sisteminde kullanmaktır. Bu amaçla yüz tanıma araĢtırmalarında sıklıkla kullanılan uluslararası yüz veritabanlarından Yale Face ve Georgia Tech Face veritabanları üzerinde bahsi geçen yöntemler test edilmiĢ ve en baĢarılı yöntem tespit edilmeye çalıĢılmıĢtır. Bu iki veritabanı haricinde yöntemin güvenirliğini test etmek amacıyla bu tez çalıĢması kapsamında 50 kiĢiden alınan toplam 750 fotoğraf içeren yeni bir yüz veritabanı (Yasin Vurgun (YV) yüz veritabanı) oluĢturulmuĢtur.

GeliĢtirilen yüz tanıma yazılımı üç temel aĢamadan oluĢmaktadır. Bunlar; (1) yakalanan görüntüden yüz bölgesinin tespit edilmesi, (2) yüz bölgesi içerisinden göz noktaları tespit edilerek hizalama iĢleminin yapılması ve (3) yüz tanıma iĢlemi yapılarak sistemin giriĢ izni vermesi/vermemesi olarak sıralanabilir. Bu aĢamalardan ilki olan yüz bölgesinin tespit edilmesi iĢleminde yüz bulma fonksiyonuna sahip Viola – Jones yöntemi uygulanmıĢtır. Ġkinci aĢamada yine Viola-Jones yönteminin göz bulma fonksiyonu kullanılarak göz noktaları bulunmuĢ ve sağ ve sol göz noktasının yatayda yaptığı açı baz alınarak yüz hizalama yapılmıĢtır. Son aĢamada ise yerel ikili örüntü, özyüzler ve Fisher yüzler yöntemleri kullanılarak yüz tanıma yapılmıĢtır. Bu aĢamada görüntünün iyileĢtirilmesi amacıyla Histogram eĢitleme ve yüz kırpma iĢlemleri uygulanmıĢ ve çapraz test yaklaĢımı ile yöntemler test edilmiĢtir. En baĢarılı uygulama tespit edilerek web sunucusunda çalıĢacak Silverlight tabanlı yüz tanıma uygulamasına geçiĢ sağlanmıĢtır. Tanıma iĢlemi sonrası kullanıcı giriĢ bilgileri (kullanıcı adı ve Ģifre) ile yakalanan görüntüden tespit edilen yüz görüntüsüne ait kiĢi bilgisi eĢleĢtirilmiĢ ve kullanıcı web ara yüzüne sonuç döndürülmüĢtür. Tanıma sonucuna göre kullanıcının ilgili sayfalara eriĢimi veya reddi sağlanmıĢtır.

1.1 Tezin Organizasyonu

Bu tez çalıĢması altı bölümden oluĢmuĢ olup bölümlerin kapsamı aĢağıdaki gibidir:

Birinci bölümü giriĢ bölümü olup, tezin genel özellikleri, amacı ve bölümlerin tanıtıldığı kısımdır.

(12)

Tezin ikinci bölümünde, kaynak araĢtırması sonucu yüz tanıma konusunda tespit edilen önceki çalıĢmalar hakkında bilgiler verilmiĢtir.

Üçüncü bölümde tez çalıĢmamızda kullandığımız yüz veritabanları, materyal ve metotlardan bahsedilmiĢtir.

Dördüncü bölümde yüz tanıma sistemleri hakkında genel bilgi verilmiĢ, yüz bulma, yüz hizalama ve bu çalıĢmada yüz tanıma amacıyla kullanılan yerel ikili örüntü, özyüzler ve Fisher yüzler yöntemlerine yer verilmiĢtir.

BeĢinci bölümde bu tez kapsamında geliĢtirilen masaüstü ve web tabanlı yüz tanıma uygulamalarının sonuçlarına yer verilmiĢ ve sonuçlar irdelenmiĢtir.

Altıncı bölümde ise sonuçlar ve tartıĢma ile öneriler yer almaktadır. Son kısımda yararlanılan kaynaklar ve ekler sunulmuĢtur.

(13)

2. KAYNAK ARAġTIRMASI

Biyometri, insanları birbirinden ayırt etmeye yarayan fiziksel ve davranıĢsal özelliklerini inceleyen bilim dalıdır. Biyometrik sistemler, kimlik doğrulama ve/veya kimlik belirlemede biyometrik özelliklerin kullanıldığı sistemdir. Biyometik sistemlerin alt dalı olan yüz tanıma sistemleri, en hızlı büyüyen biyometri alt dalı olup geniĢ bir uygulama alanına sahiptir (Çetinkaya ve Akçay, 2012).

Yüz tanıma sistemleri baĢta güvenlik olmak üzere, personel devam kontrolü, pasaport kontrolü, suçlu tespiti, insan-bilgisayar etkileĢimi, yüz tabanlı video dizinleme gibi çok çeĢitli alanlarda uygulama bulmaktadır.

Yüz tanıma yapılabilmesi için öncelikle kameradan görüntü alınması gerekmektedir. Kameralar genelde, 3 boyutlu nesneleri 2 boyuta indirgemektedir. Ġnsan yüzünün görüntüsü alınırken, yüzün 3 boyutlu geometrik yapısından dolayı aydınlanma ve poz değiĢiklikleri fazlasıyla olmaktadır. YaĢlanmayla insan yüzünde oluĢan değiĢimler, yüz ifadesindeki değiĢimler, poz ve ıĢık kaynağındaki değiĢimler ve ölçekteki değiĢiklikler nedeniyle, yüz tanıma; örüntü sınıflandırma alanının en zor problemine sahiptir.

Yüz tanıma alanında 50 yıllık çalıĢma bulunup, halen çalıĢmaya devam edilmektedir. 1960’ın ortalarında baĢlayan bu çalıĢmalar,1990’lı yıllarda hız kazanmıĢtır. Biriken bu çalıĢmalardaki, yüz tanıma problemine yönelik metotlar görünüm temelli ve model temelli olarak iki ana grupta incelenebilir. Görünüm temelli metodlar: Temel bileĢen Analizi (PCA), Doğrusal Diskriminant Analizi (LDA), Bağımsız BileĢenler Analizi (ICA) iken; model temelli metotlar: Aktif Görünüm Modeli (AAM), Elastik Demet Grafiği (EBG), 3 Boyutlu Model DönüĢtürme olarak listelenebilir.

Ġlk yarı-otomatik yüz tanıma sistemi Bledsoe (1966) tarafından geliĢtirilmiĢtir. Bledsoe (1966), Goldstein ve ark. (1971); göz, ağız, burun, dudak gibi bazı öznitelikler arasındaki mesafeleri ölçerek yüz tanımayı gerçekleĢtirmiĢlerdir. Yüz tanıma alanında yapılan bu ilk çalıĢmalarda, yüzdeki bu özniteliklerinin iĢaretlenip ölçülme iĢlemi elle yapıldığından; bu sistemler yarı-otomatik olarak değerlendirilmiĢtir.

Kanade (1973), ilk otomatikleĢtirilmiĢ yüz tanıma sistemini geliĢtirmiĢtir. Kanade; yüzdeki göz, burun, ağız gibi kısımların göreceli boyutu ve birbirleriyle olan mesafesini, Öklid uzaklıkları kullanarak sınıflandırma yapmıĢtır.

(14)

Sirovich ve Kirby (1987) yüzü etkin bir Ģekilde tanımlamak için Karhunen-Louve dönüĢümü olarak da bilinen PCA’yı uygulamıĢtır. Bu kiĢiler, özvektör (eigenvector) yaklaĢımını kullanarak yüzü yeniden oluĢturmayı baĢarmıĢlardır. Yüzü yeniden oluĢturmak için 40 özvektörün yeterli olduğunu göstermiĢlerdir (1990).

Turk ve Pentland (1991), özyüzler yaklaĢımını 16 kiĢinin toplamda 2500 fotoğrafının olduğu veri kümesinde denemiĢlerdir. Farklı ıĢıklandırmaya sahip görüntülerde %96’lık baĢarıya ulaĢırken; farklı görüntü ölçeklerinde %64’lük doğru sonuçlandırma değerleri elde etmiĢlerdir.

Belhumeur ve ark. (1997) çalıĢmalarında yüz tanımada özyüzler ve fisheryüzler yöntemini karĢılaĢtırmıĢlardır. Özyüzler yönteminin, aydınlanma ve poz değiĢiminden çok etkilendiğini belirten Belhumeur ve ark. (1997), bunun yerine Fisheryüzleri tavsiye etmiĢlerdir. ÇalıĢmalarında Harvard ve Yale yüz veritabanlarını kullanmıĢlardır. Gözlük kullanmanın, ıĢık geliĢ açısının ve yüz bölgesinin yakın açıdan kırpılmasının yüz tanımaya etkisini ölçmüĢlerdir. IĢığın geliĢ açısı kameraya göre 45 derece olduğu andaki Yale yüz veritabanındaki test sonuçlarında Özyüzler yönteminin hata oranının %46.7, Fisheryüzler yönteminin hata oranının %4.6 olduğunu bildirmiĢlerdir. Yüze yakın kırpma yaparak Yale yüz veritabanında yaptıkları yüz tanıma sonuçlarını Ģu Ģekilde bildirmiĢlerdir: Özyüzler yöntemi için hata oranı yakın kırpmada %24.4 iken, yüz bölgesinin tamamında %19.4; Fisheryüzler yöntemi için hata oranı yakın kırpmada %7.3 iken, yüz bölgesinin tamamında hata oranı %0.6 olarak bulunmuĢtur.

Özdemir (2007), yüksek lisans tezinde dalgacık dönüĢümü yöntemini kullanarak yüz tanıma gerçekleĢtirmiĢtir. ÇalıĢmasında %80’lik doğru sonuç elde etmiĢtir. Direk karĢılaĢtırma (template matching) yöntemine göre 11 kat daha hızlı tanıma gerçekleĢtiği belirtmiĢtir.

Chan ve ark. (2007) çalıĢmalarında, LBP’nin geliĢmiĢ versiyonu olan Çok Ölçekli Yerel Ġkili Örüntü Histogram (Multi-Scale LBP) yöntemini kullanarak geliĢtirdiği yüz tanıma sistemini FERET veritabanında (Phillips ve ark., 1998) test edip; %95’lik tanıma oranına ulaĢmıĢtır.

Varlık ve Çorumluoğlu (2011), dijital fotogrametri teknikleri ile kiĢi tanıma yapmıĢlardır. KiĢi tanıma için parmak izi tanıma ve yüz tanıma yöntemlerini birlikte kullanmıĢlardır. Ġki boyutlu doğrusal bir dönüĢüm olan Affin dönüĢümünü kullanarak özellik noktalarının eĢlemesini yapmıĢlar. Parmak izi ve yüz eĢlemenin birlikte değerlendirildiği sistemin hata yapma olasılığının yok denecek kadar az olduğunu belirtmiĢlerdir.

(15)

Nabiyev ve Koçak (2011), yerel ikili örnekleri kullanarak, yüz güzelliğini ölçmüĢlerdir. Manken yüzlerinin güzel, diğerlerinin çirkin kabul edilmesiyle onar adet görüntü alarak göz bebeklerine göre sıralanmıĢtır. Bu on fotoğraf, morfleme yöntemiyle tek bir fotoğraf haline getirilerek; göz, dudak gibi yüz güzelliğini belirlediği düĢünülen noktalar çakıĢtırılmıĢtır. Öznitelik çıkarmada LBP kullanarak, kiĢinin yüzdelik olarak ne kadar güzel olduğunu göstermiĢlerdir.

Nabiyev ve Günay (2010), Kılınç (2012) insan yüzündeki kırıĢıklıklardan yaĢ tespiti yapmıĢlardır. Nabiyev ve Günay, çalıĢmalarında global ve bölgesel LBP histogramları çıkartarak; FERET veritabanındaki görüntüleri beĢ yaĢ grubu Ģeklindeki gruplayıp, gerçekleĢtirdikleri testte %87 doğrulukla kiĢinin yaĢının bulmuĢlardır. Kılınç (2012) öznitelik çıkartırken; Geometrik öznitelikler, dokusal öznitelikler, LBP, Gabor Filtreleme ve Yerel Gabor Ġkili Örüntü Operatörü yöntemlerini denemiĢtir. Gabor ve LBP’yi birlikte uyguladığı yöntemle en iyi sonuca %94 olarak ulaĢmıĢtır.

Gezgin (2012), öğrenci devamsızlığını belirlemek için elektronik ve web tabanlı bir sistem geliĢtirmiĢtir. Öğrenciler sınıfa parmak izini okutarak giriĢ yapmaktadır. Parmak izi tanıma yapılarak sesli komutlarla kullanıcı bilgilendirilip; aynı anda devamsızlık durumu TCP/IP üzerinden web ortamındaki sisteme aktarılmaktadır.

Filiz (2012), tez çalıĢmasında SIFT ve SVM algoritmalarına dayalı bir yüz tanıma sistemi önermiĢtir. Algoritması, kafanın eğim açısından ve görüntüdeki yüz arka zemininden oldukça fazla etkilendiğini bildirmiĢtir.

Abdur ve ark. (2013), çalıĢmalarında LBP yöntemini kullanarak yüz tanıma gerçekleĢtirmiĢlerdir. 2000 kiĢiden aldıkları görüntülerden veritabanı oluĢturup, 2000 görüntüyü veritabanında karĢılaĢtırmıĢlardır. %99’luk tanıma oranına ulaĢtığını belirtmiĢlerdir.

Tilki (2014) yüksek lisans tezinde, PCA temelli bir yüz tanıma uygulaması geliĢtirmiĢtir. Rastgele seçtiği 50 görüntüyü, geliĢtirdiği uygulamada test ettiğinde, %72 - %90 arası doğru tanıma oranı elde ettiğini bildirmiĢtir.

Özdil (2015), tez çalıĢmasında gömülü sistemler üzerinde yüz tanıma algoritmalarını incelemiĢtir. OpenCV kütüphanesini kullanarak, Özyüz, Fisher yüz ve LBPH yöntemlerinin, iki farklı arm-tabanlı bir tane intel-tabanlı gömülü sistemde performansını ölçmüĢtür. Bir video görüntüsündeki, 3 kiĢinin yüzlerini yakalayarak, veri setini oluĢturmuĢ. 3 kiĢiden oluĢan veri setinde yaptığı ölçümlerde, Özyüzler yöntemi %93, Fisher yüzler yöntemi %85 ve LBPH yöntemi %94 doğru tanıma oranına sahip olduğunu belirtmiĢtir.

(16)

Derin öğrenme yöntemini her alana uygulamalarının çoğalmasıyla, Zhou ve ark. (2015) on katmanlı konvolüsyonel sinir ağı (CNN) ile “Megvii Face Classification” adını verdikleri yüz tanıma sistemini geliĢtirmiĢlerdir. Webden 20000 ünlüye ait 5 milyon fotoğraf ile yaptıkları eğitim ardında ki testlerde %99,5 değeriyle yüksek bir baĢarı elde etmiĢlerdir. Schroff ve ark. (2015) geliĢtirdikleri derin CNN ile, LFW veritabanında %99.63, Youtube FaceDb’de ise %95.12’lik bir baĢarı elde etmiĢlerdir. GeliĢtirdikleri bu sistemi, “Face++” adında ticari olarak kullanıma açmıĢlardır (Face++, 2016).

Kaya ve GüneĢ (2016), elektronik ortamda yapılan sınav sistemleri için yüz tanımanın kullanıldığı bir kullanıcı doğrulama sistemi geliĢtirmiĢtir. ÇalıĢmasında özyüzler yöntemini kullanmıĢtır. Elli kiĢilik kullanıcı grubundan birer görüntü alarak sisteme kaydını gerçekleĢtirmiĢ, bunlardan kırkı sisteme giriĢ yapabilmiĢ, geri kalan on kiĢi için sisteme tekrar farklı açıdaki görüntülerini eklediğinde sistemi iki kiĢi için yanlıĢ sonuç dönmüĢtür.

Arslan ve Sağıroğlu (2016), biyometrik sistemlerin mobil cihazlar üzerinde incelenmesi üzerine bir çalıĢma yapmıĢlardır. Biyometrik yöntemlerin mobil cihazlarda kullanım oranlarını; iris tanımanın %16, parmak izi tanımanın %15, yüz tanımanın %15, ses tanımanın %13 ve damar tanımanın %10 olduğunu belirtmiĢlerdir. Mobil cihazlarda ek bir donanıma ihtiyaç duymadan çalıĢan iris ve yüz tanıma sistemlerinin daha çok kullanım oranına sahip olduğunu çalıĢmalarında göstermiĢlerdir.

Buraya kadar yapılan kaynak araĢtırmaları masaüstü uygulama kullanan çalıĢmaları içermektedir. Web üzerinde çalıĢan biyometrik yüz tanıma ile ilgili ticari uygulamalara son yıllarda sıkça rastlanılmaktadır. Yüz bulma ve yüz tanıma alanında geliĢtirilen API’ler, web ortamında tanıtılmaktadır. Bu tanıtımlarda uygulamanın kullanımı anlatılmakta ancak arka planda çalıĢan yöntemlere yer verilmemektedir (Betaface, 2016; Kairos AR, 2016; Lambda Labs, 2016; Microsoft, 2016; Sky Biometry, 2016).

(17)

3. MATERYAL VE YÖNTEM

Bu tez çalıĢmasında, web sitelerine kullanıcı giriĢi yapılırken kullanılmak üzere bir yüz tanıma sistemi geliĢtirilmiĢtir. Kullanıcı giriĢi kısmında sadece yüz tanıma kullanılabileceği gibi, kullanıcı adı ve Ģifreye ek üçüncü bir güvenlik parametresi olarak da hazırladığımız yüz tanıma sistemi kullanılabilecektir.

Web kısmında yüz tanıma yapan web servisi hazırlanmadan önce, kullanılacak en baĢarılı yöntemi belirlemek amacıyla masaüstü uygulaması geliĢtirilmiĢtir. Yüz tanıma sisteminin web kısmı ASP.NET, masaüstü kısmı ise C# dili ile Microsoft Visual Studio 2010 ortamında geliĢtirilmiĢtir. Yazılım, 1.3 Megapixel çözünürlüğü olan standart bir web kamerasına sahip bir dizüstü bilgisayarda geliĢtirilip, test edilmiĢtir. Kullanılan bilgisayar, Ġntel Core2Duo P8700 @2.53 GHz iĢlemcisine, 4 GB belleğe, GEFORCE GT120M marka/model ekran kartına ve Windows 7 Home Premium iĢletim sistemine sahip, orta güçlükte bir bilgisayardır.

Sistem geliĢtirilirken, açık kaynak görüntü iĢleme framework’lerinden OpenCV (Anonymous, 2012b) Framework’u tercih edilmiĢtir. OpenCV, C++ dili ile geliĢtirmeye uygun olup, C# dili ile kullanabilmek için: OpenCV wrapperlerinden (çerçeveleyicisi) olan EmguCV (Anonymous) kullanılmıĢtır. Masaüstü uygulamasında ise yine açık kaynak olarak yayınlanan “Face Recognition v2.4.9 (Johnson, 2013)” yüz tanıma algoritması temel alınmıĢtır.

3.1. Kullanılan Veri Kümeleri (Yüz Veritabanları)

Bu çalıĢmada yüz tanıma için uygulanan üç yöntemin (özyüzler, fisheryüzler, yerel ikili örüntü) baĢarılarını karĢılaĢtırmak amacıyla uluslararası literatürde kabul görmüĢ “Yale Face” ve “Georgia Tech Face” yüz veritabanları kullanılmıĢtır. Ayrıca bu çalıĢma kapsamında “YV Yüz Veritabanı” olarak oluĢturulan veritabanı da kullanılmıĢtır.

3.1.1. The Yale Face database

Bu veri kümesi, 165 adet “gif” formatında gri seviyeli fotoğraftan oluĢmaktadır. Veritabanında 15 farklı kiĢiden alınan 11’er adet fotoğraf (toplam 165 fotoğraf) bulunmaktadır. Yale Üniversitesinde Belhumeur ve ark. (1997) tarafından oluĢturulan

(18)

bu veritabanında belirli ıĢık koĢullarında (yandan aydınlatmalı, karĢıdan aydınlatmalı gibi) çekilmiĢ, belirli yüz ifadelerini kapsayacak (mutlu, uykulu, ĢaĢkın…) Ģekilde ve aksesuar kullanım durumuna göre (gözlüklü, gözlüksüz) değiĢen pozlar yer almaktadır. Bu veritabanından alınmıĢ örnek yüz görüntüleri ġekil 3.1’de verilmiĢtir. Bu çalıĢmada Yale veritabanı görüntüleri iĢlem kolaylığı açısından “.jpg” formatına dönüĢtürülmüĢtür.

ġekil 3.1. Yalefaces veritabanından alınan S01 kodlu kiĢiye ait yüz görüntüleri 3.1.2. Georgia Tech face database (GT-Db)

Bu veri kümesinde; 50 kiĢiye ait, renkli, “jpeg” formatında 750 adet fotoğraf bulunmaktadır. Her kiĢiden farklı zamanlarda alınmıĢ 15’er adet fotoğraf vardır. Belirli bir aydınlatma tekniği olmadan, karmaĢık arka planda çekimler yapılmıĢtır. Çekimler tek seferde yapılmayıp, 5 ay gibi uzun zaman diliminde parça parça tamamlanmıĢtır (Nefian ve ark., 1997). GT-Db yüz veritabanının alınan örnek yüz görüntüleri Ģekil 3.2’de verilmiĢtir.

(19)

3.1.3. YV (Yasin Vurgun) yüz veritabanı

Tez kapsamında ilk defa oluĢturulan bu YV yüz veritabanında 50 farklı kiĢiden farklı zamanlarda ve farklı ortamlarda alınan 15’er adet fotoğraf (toplam 750 adet fotoğraf) mevcuttur. Gönüllü olarak görüntüsü alınan kiĢilerin bel üstü fotoğrafları çekilmiĢtir. Kullanılan fotoğraf makinesi Nikon D90 olup, 18-105mm objektife sahiptir. Çekilen fotoğraflar diğer veritabanlarında olduğu gibi s10(1), s10(15), s50(7) Ģeklinde adlandırılmıĢtır. Bu adlandırmada s10, s50 gibi kodlar kullanıcı kodlarını, bu koddan sonra gelen parantez içindeki rakam [s10(1), s10(2), s10(3),… s10(15)], o kiĢinin kaçıncı fotoğrafı olduğunu belirtmektedir. Fotoğraflar renkli olup “jpg” formatındadır. Görüntü iĢleme yazılımını hızlandırmak amacıyla çözünürlüğü 4288 x 2848 pikselden 800 x 531 piksel oranına düĢürülmüĢtür. Her fotoğraf yaklaĢık 150 KB boyutundadır. YV yüz veritabanından alınan örnek yüz görüntüleri ġekil 3.3’te görülmektedir.

ġekil 3.3. YV yüz veritabanından alınan s18 kodlu kiĢiye ait yüz görüntüleri 3.2. Yöntem

Bu tez kapsamında geliĢtirilen web tabanlı yüz tanıma sisteminin çalıĢma adımları Ģu Ģekildedir:

 Kullanıcı, giriĢ sayfasından kamerayı baĢlatır.

 Kullanıcı, kullanıcı adı ve Ģifresini girerek; “GiriĢ Yap” butonuna basar.

 Kullanıcı internet tarayıcısında çalıĢan Silverlight uygulaması, web kamerası aracılığıyla kullanıcının fotoğrafını çeker ve yakalanan

(20)

görüntünün boyutunu yarıya indirerek web servisi aracılığıyla sunucu tarafına gönderir.

 Web sunucusunda çalıĢan yüz tanıma uygulaması gelen görüntüde yüz bölgesini tespit eder.

 Tespit edilen yüz bölgesinde göz noktaları bulunarak yüz hizalama iĢlemi yapılır

 Önceden belirlenmiĢ tanıma algoritmasına göre yüz tanıma iĢlemi yapılır.

 Web servisi aracılığıyla yüz tanıma iĢlemi sonucu kullanıcının internet tarayıcısındaki ara yüz üzerinden gösterilir ve eriĢim kabul/ret edilir.

ġekil 3.4. Yüz Tanıma web uygulamasının çalıĢma adımları

Tez kapsamında geliĢtirilen yüz tanıma uygulamasında kullanılan yüz veritabanlarındaki resimlerin bir kısmı eğitim için ayrılmıĢ, kalan kısmı test iĢleminde kullanılmıĢtır. Yalefaces veri kümesinde her kiĢiye ait 11 görüntüden 9’ar tanesi eğitim, kalan 2’Ģer tanesi test iĢleminde; GT-Db veri kümesinde her kiĢiye ait 15 görüntüden 12’Ģer tanesi eğitim, kalan 3’er tanesi test iĢleminde; YV veri kümesinde her kiĢiye ait 15’er görüntüden 12’si eğitim, kalan 3’er tanesi test iĢleminde kullanılmıĢtır. Eğitim ve test için kullanılacak görüntülerin seçiminde çapraz doğrulama (cross validation) yaklaĢımı uygulanmıĢtır. Buna yaklaĢıma göre; veri kümesi eĢit sayıda görüntüye sahip belirli bir gruba bölünmüĢ ve her grup sırasıyla test iĢlemine alınmıĢtır. Kalan gruplar ise eğitim için kullanılmıĢ ve grup sayısı kadar test iĢlemi tekrarlanmıĢtır.

KAMERAYI BAġLAT GÖRÜNTÜ YAKALA&GÖNDER YÜZ BUL VE HĠZALA YÜZÜ TANI YETKĠLENDĠRME DURUMUNU KULLANICIYA BĠLDĠR

(21)

4. YÜZ TANIMA SĠSTEMLERĠ

Bu bölümde yüz tanıma sisteminin aĢamaları üzerinde durulacaktır. Yüz bulma ve hizalama iĢlemlerinin teknik detayları anlatılacak ve bu çalıĢmada kullanılan yüz tanıma algoritmaları (Özyüzler, Fisheryüzler ve LBP) açıklanacaktır.

Genel olarak bir yüz tanıma sistemi aĢağıdaki aĢamalardan oluĢmaktadır:

ġekil 4.1. Yüz tanıma sistemlerinin genel yapısı

4.1. Yüz Bulma

Görüntü içerisinden yüzün varlığı, yeri ve boyutunun araĢtırılmasına yüz bulma denilmektedir (Samal ve Iyengar, 1995). Yüz bulma, yüz tanımada olduğu gibi, yüz takibi, poz kestirimi ve ifade tanıma gibi alanların da ilk aĢamasıdır (Yang ve ark., 2002). Doğru güvenilir bir yüz tanımanın yapılabilmesi için, yüz bulma iĢleminin doğru yapılması gerekmektedir. Yüz bulma iĢlemini zorlaĢtıran birçok neden vardır. Bunlar:

 Yüzün kameraya bakıĢ açısı,

 Sakal, bıyık gibi fiziksel özellikler,

 Gözlük, Ģapka gibi aksesuarların olması,

 Yüz ifadesindeki değiĢimler (gülme, sinirli bakma, göz kırpma gibi),

 YaĢlanma etkilerinin olması,

 Yüzün tamamı veya bir kısmının görünmesini engelleyen nesneler,

 IĢıklandırmadaki değiĢimler olarak sıralanabilir.

Yüz bulma konusunda birçok çalıĢma yapılıp, farklı yöntemler geliĢtirilmiĢtir. Tek renk arka alan önünde çekilen ön profil görüntülerinde arka plan özel yazılımlarla kolayca temizlenerek yüz bulunabilmektedir. Ancak bu yöntemde yüz bölgesine ilave boyun gibi vücudun diğer bölgeleri de görüntüde olabilmektedir. Birçok gerçek zamanlı yüz tanıma uygulamasında, sabit renkte arka alan ayarlamak zor olduğundan yüz

GÖRÜNTÜ

GĠRĠġĠ BULMA YÜZ

VERĠTABANI YÜZ ÖZNĠTELĠKLERĠNĠN

(22)

bölgesinin belirlenmesinde çeĢitli metotlar geliĢtirilmeye çalıĢılmaktadır. Gerçek zamanlı video görüntülerinde yüz genelde hareket etmektedir. Bazı uygulamalarda hareketli bölgelerin tespitiyle yüz bölgesi iĢaretlenebilmektedir. Ancak her hareketli bölgeyi, yüz olarak niteleyemeyeceğimizden sadece bu yöntemle yüz bulmak da uygun olmamaktadır. BaĢka bir yaklaĢımda ise ten rengi kullanılarak yüz bölgesi bulunabilmektedir. Bu yaklaĢımda insan yüzünün ortalama renk bilgisini kullanılmaktadır. Üstelik bu yöntemde renk bilgisi poz açısından bağımsızdır. Ancak tenin renk bilgisi farklı ıĢık koĢullarında çok farklı değerler verebilmektedir. Bazı yüz bulma uygulamalarında ise öğrenme tabanlı (örneğin yapay sinir ağı) yaklaĢım sergilenmektedir. Bu teknikte yüz bulunan ve yüz bulunmayan görüntüler eğitime alınır ve yüz bulma modeli oluĢturulur. BaĢarılı sonuç için eğitime alınması gereken görüntünün çokluğu ve bu görüntülerin iĢlenmesinin zaman ve yüksek güçlü iĢlemcilere ihtiyaç duymasından dolayı bu yöntem de fazla tercih edilmemektedir.

Bu çalıĢmada literatürde baĢarısı kanıtlanmıĢ Viola ve Jones (V&J) yöntemi kullanılmıĢtır. Bu yöntem, görüntünün tamamıyla ilgilenmek yerine, haar-benzeri özniteliklerin görüntü içinde dolandırarak olası yüz bölgelerin belirlenmesi mantığıyla çalıĢmaktadır. Bu yöntem diğer yüz bulma yöntemlerine göre çok daha hızlı çalıĢıp (15 kat) %94 gibi yüksek bulma oranına sahiptir.

4.1.1. Viola – Jones yüz bulma yöntemi

Viola ve Jones (2001), haar-benzeri öznitelikleri ve basamaklı hızlandırmayı kullanarak, yüz bulma konusunda önemli bir yer edinmiĢlerdir. Buldukları yöntemin sadece yüz bulma değil, her türlü nesne bulmada kullanılabilir bir yöntem olması ve iyi sonuçlar vermesi nedeniyle bu çalıĢmada tercih edilmiĢtir.

V&J, görüntü içerisinde pencere kaydırıp; kayan pencereler içerisinde sınıflandırma yaparak yüz bulma iĢlemini gerçekleĢtirmektedir. Aslında bu yöntemde kullanılan kayan pencereler yaklaĢımının tarihi eskiye dayanmaktadır. Ancak V&J bu yönteme ilave ettikleri üç yeni metot ile yüz bulma konusunda dönüm noktası denilebilecek bir çalıĢma yapmıĢlardır. Bu üç yeni metot; haar-benzeri öznitelikleri çok hızlı bir Ģekilde hesaplayan “integral görüntü” tekniği, “adaboost algoritması”nın temel alındığı özniteliklerin seçilerek verimli sınıflandırıcıları türeten öğrenme algoritması ve sınıflandırıcıların art arda birleĢtirilmesiyle kademeli sınıflandırıcıların elde edilmesi olarak sıralanabilir.

(23)

V&J görüntü içerisinde haar-benzeri öznitelikler diye bilinen, dikdörtgen Ģekilleri gezdirerek yüz bulma yapmaktadır. V&J’un kullandığı bu dikdörtgen öznitelikler Ģekil 4.2.’de de görüldüğü gibi ikili dikdörtgen (Ģekil 4.2. A ve B), üçlü dikdörtgen (Ģekil 4.2. C) ve dörtlü dikdörtgenlerden (Ģekil 4.2. D) oluĢmaktadır.

ġekil 4.2. Viola ve Jones’un kullandıkları dikdörtgen öznitelikler (2001)

Lienhart ve Maydt (2002), V&J’un haar-benzeri özniteliklerini geniĢleterek bir çalıĢma yapmıĢlardır. OpenCV, nesne bulma çalıĢmaları için Leinhart ve Maydt’ ın sunduğu haar-benzeri öznitelikleri kullanmıĢtır. GeniĢletilmiĢ bu haar-benzeri öznitelikler Ģekil 4.3.’te görülmektedir.

ġekil 4.3. Leinhart ve Maydt’ın sundukları haar öznitelikler (2002)

V&J, görüntü üzerinde piksel tabanlı hesaplama yapmak yerine, gezdirilen bu dikdörtgenlerin üzerine geldikleri alan üzerinde hesaplamalar yapmaktadır. Bu dikdörtgenlerden görüntü üzerinden açık renk kısımlarının altında kalan piksellerin değerlerinin toplamından, koyu renk kısımlarının altında kaldığı piksellerin değerlerinin toplamının çıkartılmasıyla elde edilen değer, belirlenen eĢik değerinin üzerindeyse o bölge yüz bölgesi olmaya adaydır denilmektedir. Bu dikdörtgen özniteliklerin hızlı bir

(24)

Ģekilde hesaplanması içinde integral görüntü kullanılır. Ġntegral görüntü, görüntüdeki her piksel değerinin solundaki ve üstündeki piksellerin değerlerinin toplanmasıyla oluĢmaktadır. Görüntünün (x,y) noktasındaki integral görüntüsünün değeri: ig(x,y),

(x,y) noktasının solunda ve üstünde kalan tüm piksellerin toplamıdır. Bu iĢlem Denklem

4.1’deki gibi ifade edilir.

(4.1)

Denklem 4.1’deki i(x’,y’) değeri, orijinal görüntünün x, y noktasındaki değerini göstermektedir ve özyinelemeli olarak çözülebilir.

Ġntegral görüntü oluĢturulduktan sonra herhangi bir dikdörtgensel bölge dört alt görüntü ile hesaplanabilir. Bu hesaplamaya iliĢkin Ģematik gösterim ġekil 4.4’te verilmiĢtir.

ġekil 4.4 Ġntegral görüntü ile alt dörtgen hesaplama (Viola ve Jones, 2001)

A dikdörtgenindeki piksel değerlerinin toplamı, 1 noktasındaki integral görüntünün değeridir. 2 noktasındaki integral görüntünün değeri A+B, 3 noktasındaki A+C, 4 noktasındaki integral görüntü ise: A+B+C+D’dir. D bölgesindeki piksellerin değerleri toplamı 4+1- (2+3) olarak hesaplanır. Bu hesaplama Denklem 4.2 deki gibi ifade edilir. (Viola ve Jones, 2001)

(25)

Buradaki ig(1) ifadesi, ġekil 4.4’te verilen 1 noktasının integral görüntüsünü ifade etmektedir.

Görüntüdeki her alt pencerede, her dikdörtgen özniteliğini araĢtırmak çok zaman alabilmektedir. Bu sorunun üstesinden gelebilmek için adaboost algoritması kullanılabilir. Adaboost, zayıf sınıflandırıcıların ağırlıklarını kullanarak güçlü bir sınıflandırıcı oluĢturan bir hızlandırma algoritmasıdır. V&J, adaboost algoritmasını, dikdörtgen özniteliklerin seçiminde ve dikdörtgen öznitelikler için eĢik değerin belirlenmesinde kullanmıĢlardır. ġekil 4.5 te adaboost algoritması tarafından seçilen ilk iki öznitelik görülmektedir. Ġlk öznitelikte gözlerin yanaklara göre daha koyu olması özellik olarak kullanılırken, ikinci öznitelikte gözlerin buruna göre daha koyu olması kullanılmıĢtır.

ġekil 4.5 Adaboost algoritmasının seçtiği ilk iki öznitelik (Anonymous, 2013)

V&J, sistemin hızını arttırmak için kademeli kaskad yapıyı geliĢtirmiĢlerdir. Kademeli kaskad yapı sayesinde, alt görüntülerde yüz bölgelerini aramak yerine yüz olmayan bölgeleri elimine etmeye gidilmiĢtir. Yüz olmayan bölgeler ilk aĢamada hemen elenince, büyük bir süre avantajı elde edilmiĢ olunmaktadır. Tarif edilen kaskad yapıya iliĢkin Ģematik gösterim ġekil 4.6’da görülmektedir.

(26)

ġekil 4.6 Kademeli kaskad yapı

Kaskad yapının ilk aĢamasında adaboost algoritmasıyla seçilen nispeten daha basit sınıflandırıcılar ile yüz adayı olmayan alt pencereler elimine edilir. Ġlerleyen aĢamalarda daha fazla ve karmaĢık sınıflandırıcılar uygulanarak, reddedilmezse o alt pencere, yüz bölgesidir denilir.

4.2. Yüz Hizalama

Yüz tanıma iĢleminin baĢarılı olabilmesi için yüzlerin düz bir Ģekilde hizalanması gerekmektedir. Yüzleri hizalamak için; eğik duran kafanın hangi yönde ne kadar açısal eğriliğe sahip olduğunun belirlenmesi gerekmektedir. Bu amaçla, düz bir Ģekilde bakan kiĢinin yüzü üzerinde aynı yatay hizada yer alan gözler referans olarak kullanılmıĢtır. Sağ ve sol göz noktasının tespiti iĢleminde gözlerin konumları önem arz etmektedir. G1 (x1,y1) gözlerden birinin konumunu, G2 (x2,y2) diğer gözün konumunu ve

bu iki noktanın yatay düzlemle yaptığı açı α olmak üzere eğrilik derecesi aĢağıdaki denklemle bulunur.

(4.3)

Eğim açısı bulunduktan sonra, negatif veya pozitif olması durumuna göre bu açı değerince görüntüyü döndürülerek hizalama iĢlemi tamamlanır. Bu aĢamada yüzün orta noktasının sağ ve sol kısmında yer alan iki veya daha fazla muhtemel göz noktalarının koordinat sistemindeki konum bilgileri kullanılarak ortalama konum bilgisi hesaplanır.

(27)

4.3. Yüz Tanıma

Görüntüde yüzler bulunup hizalandıktan sonra veritabanına kaydedilmektedir. Böylece veritabanında aynı ebatta, aynı yöntemlerle bulunup hizalanmıĢ görüntüler yer almaktadır. Yüz tanımanın iyi sonuçlar vermesi için veritabanındaki görüntüler ile test giriĢindeki görüntü aynı iĢlemlere tabi tutulmuĢ olması gerekmektedir.

Yüz tanıma, giriĢ görüntüsündeki yüzün, eğitim kümesindeki en yakın komĢusunun bulunması için yapılan sınıflandırma çalıĢmasıdır. Biz bu çalıĢmada en sık kullanılan yüz tanıma yöntemlerinden Özyüz, Fisheryüz ve LBP yöntemlerini uygulayarak en etkili yöntemi belirlemeye çalıĢtık. Bahsedilen bu üç yöntem aĢağıda anlatılmıĢtır.

4.3.1. Özyüzler (Eigenfaces) yöntemi

Özyüzler yöntemi, temel bileĢen analizine (PCA) dayalı, özellik çıkarmada kullanılan istatistiksel bir yöntemdir. PCA, boyut azalmak ve görüntüler arasındaki temel farklılıkları ortaya çıkartmak için kullanılan bir yöntemdir. Bu yöntem, bir yüze ait en belirleyici özelliklerin (özyüzler) elde edilmesi ve diğer yüzlerin bu özyüzlerin doğrusal birleĢimi olarak ifade edilmesine dayanmaktadır.

Özyüzler, veritabanındaki yüzlerin temel bileĢenlerini oluĢturmaktadır. Test için gelen görüntüdeki yüz, bu özyüzler ile yüz uzayına izdüĢümü alınarak tanıma gerçekleĢtirilir (Konak, 2006).

Özyüz yönteminin matematiksel açıklaması Ģu Ģekildedir: Veritabanındaki NxN boyutundaki yüz görüntüleri, N2

boyutunda Γ ile sembolize edilen bir vektöre çevrilir. Bu dönüĢüm Ģekil 4.7 deki gibi ifade edilebilir. Ortalama yüz görüntüsü Ģekil 4.8’deki gibidir.

Eğitim setindeki M adet yüz görüntüsünü Γ1, Γ2, …, ΓM vektörleri ile ifade

edersek, bu yüz vektörlerinin ortalamasını Denklem 4.4 deki gibi hesaplanır.

(4.4)

(28)

ġekil 4.7 NxN boyutundaki yüz görüntüsü ve tek sütuna dönüĢtürülmüĢ hali

ġekil 4.8 Ortalama yüz vektörünün gösterimi

Her yüz görüntüsü, ortalama yüz görüntüsünden

kadar farklıdır. Bu değer Denklem 4.5 ile hesaplanır.

(4.5)

Bu ortalama yüz görüntüsünden, her yüz görüntüsünün farkının alınmasıyla oluĢan matrisi A olarak isimlendirirsek; 4.6 ve 4.7 denklemleri elde edilir.

(29)

A = [1, 2 ,3,…, i,…M]NXM (4.6)

i = Γi – Ψ {i=1, ….. , M} (4.7)

Özyüzleri elde etmek için A matrisini kovaryans matrisi hesaplanmalıdır. A matrisinin kovaryans değerini Denklem 4.8 ile hesaplanır.

C =

M n T n n

M

1

)

(

1

= A * AT (4.8)

Kovaryans matrisinin daha düĢük boyuta indirgeyip, hesaplamayı kolaylaĢtırmak için Denklem 4.8 yerine, Denklem 4.9 kullanılabilir (Turk ve Pentland, 1991).

C = n M n T n

M

1

)

(

1

= A T * A (4.9)

Denklem 4.9 ile elde edilen kovaryans matrisin özvekterlerini vi olarak

gösterirsek Denklem 4.10’a ulaĢırız. Denklem 4.10’daki vi özvektörleri, μi ise

özdeğerleri ifade etmektedir.

AT * A * vi = μi * vi (4.10)

Denklem 4.10’un her iki tarafı A ile çarpılarak:

A *AT *A vi = μi *A *vi (4.11)

C=A *AT matrisinin özvektörleri, Avi olarak bulunur. C matrisinin özvektörleri,

yüz görüntülerinin özellik gruplarını göstermek için kullanılır (Kıymacı, 2010).

Denklem 4.8 yerine, denklem 4.9 kullanılmasıyla, iĢlem yükü N2xN2 yerine MxM’lik kovaryans matris oluĢturmaya indirgenmiĢtir.

Özyüzler bir kerelik elde edildikten sonra, veritabanındaki her yüz görüntüsü, özyüz alanına yansıtılmaktadır ve yüz görüntüsünün izdüĢümünden elde edilen katsayılar kaydedilmektedir. Test edilecek yüz görüntünün sınıflandırılması için, bu yüz görüntüsünün özkatsayıları yine aynı Ģekilde hesaplanarak; veritabanındaki her yüzün

(30)

özkatsayısıyla karĢılaĢtırılmaktadır (Kıymacı, 2010). En küçük öklid değerine karĢılık gelen görüntü, tanıma iĢleminin sonucudur (Turk ve Pentland, 1991).

4.3.1. Fisheryüzler (Fisherfaces) yöntemi

Fisheryüzler yöntemi Belhumeur ve ark. (1997) tarafından geliĢtirilmiĢ olup, temelleri Fisher (1936) tarafından yayınlanan Doğrusal Diskriminant Analizine (LDA) dayanmaktadır. LDA temeline dayanan bu yöntemi, yüz tanımada ilk kullanan Belhumeur, fikir sahibi anısına Fisheryüzler (Fisherfaces) olarak adlandırmıĢtır.

LDA yöntemi de PCA gibi boyut küçültme yaparak sınıflandırma yapmaktadır. LDA’nın PCA’dan farkı ise verileri sınıflarken verinin ait olduğu sınıfı dikkate almasıdır. Aynı sınıfa ait verileri bir bütün olarak incelerken, aynı sınıfın elemanlarından elde ettiği verilerle elemanların sınıf içi, farklı sınıfların kendi aralarındaki saçılım bilgisinden de sınıflar arası ayrım oluĢturmayı amaçlar (Belhumeur ve ark., 1997).

LDA, sınıflar arası saçılım matrisinin (SB), sınıf içi saçılım matrisine (SW)

oranını maksimuma götüren W matrisini bulmaya çalıĢmaktadır (Belhumeur ve ark., 1997). SB’nin büyük olması, sınıflar arasındaki mesafe farkının artmasını ve sınıfların

birbirinden uzaklaĢmasıyla daha rahat seçilmesini sağlayacaktır.

Sınıflar arası saçılım matrisi, SB, denklem 4.11’deki gibi hesaplanır.

(4.12)

Sınıf içi saçılım matrisi, SW ise denklem 4.13’deki gibi hesaplanır.

(4.13)

Burada µi ve Ni i.sınıfa ait ortalama vektörü ve örnek sayısını göstermektedir.

Sınıflararası saçılım matrisinin determinantının, sınıfiçi saçılım matrisinin determinantına oranı Wopt olarak belirtilen Optimum izdüĢüm matrisini verir, bu oran

(31)

(4.14)

Denklem 4.14’teki w1,w2,…wm ; SB ve SW’nin en yüksek m adet özdeğerine (λi)

denk düĢen özvektörlerdir;

SB Wi = λi SW Wi, i=1,2,3,….,m (4.15)

Sınıflandırma aĢamasında, bütün yüzlerin altuzaya izdüĢümü, Wopt matrisi

kullanılarak bulunur. Test edilecek yüz de aynı Ģekilde altuzaya izdüĢümü alınır. Ardından test edilen yüz, öklid mesafesini en küçük veren sınıfa atanır (Gündüz, 2010).

Fisheryüz yöntemi hem ıĢık değiĢimlerine karĢı en baĢarılı yöntem olarak raporlanmakta hem de özyüz yöntemine göre baĢarımı daha az yüksek olmaktadır. Daha iyi sonuçlar alabilmek için yüz hizalaması yapılmalıdır (Gökmen ve ark., 2007).

4.3.1. Yerel ikili örüntü (LBP) yöntemi

Yerel ikili örüntü (LBP), performansı yüksek bir doku tanımlayıcısı olup; ilk olarak Ojala ve ark. (1994) tarafından tanıtılmıĢtır. Sınıflandırmadaki baĢarısı, hesaplanmasının kolay olması ve de aydınlanmadaki değiĢimlere karĢı gürbüz olması nedeniyle yüz tanımada da sıkça tercih edilen bir yöntem olmuĢtur (Ojala ve ark., 2002; Ahonen ve ark., 2004; Hadid, 2005; Rodriguez, 2006; Nabiyev ve Günay, 2010). Hesaplanabilirliğinin basit olması nedeniyle gerçek-zamanlı yüz tanımayı mümkün kılmıĢtır.

Orijinal LBP operatörü 3x3 lük bir matris iken, sonradan LBP operatör çeĢidi sayısı artmıĢtır. Bu operatörler LBP(P,R) Ģeklinde ifade edilip; buradaki P değeri hesaba

katılan komĢu piksel sayısını, R değeri ise merkez piksele olan uzaklığı belirtmektedir. ġekil 4.9 da sırasıyla LBP(8,1) ,LBP(8,2) veLBP(16,2) operatörleri görülmektedir.

(32)

ġekil 4.9 LBP operatör çeĢitleri

LBP operatörünün çalıĢma Ģekli Ģu Ģekildedir: merkez piksel değerinin operatörde belirtilen uzaklıktaki ve operatörde belirtilen sayı kadar piksel değeriyle karĢılaĢtırılarak ikilik sayı elde edilir. Merkezi piksel eĢik değeri kabul edilip, sırasıyla komĢu pikseller bu eĢik değerinden çıkartılır, sonuç pozitif ve sıfır ise 1, negatifse 0 değeri yazılır. Yazılan bu ikilik sayılar yan yana birleĢtirilerek yerel ikili örüntü oluĢturulur. Bu iĢleme örnek olarak ġekil 4.10 incelenebilir.

ġekil 4.10 Ġkilik desenin elde edilmesi (Ahonen ve ark., 2004)

LBP operatörünün iĢlenerek yerel ikili örüntünün elde edilmesi Denklem 4.16 ve 4.17’deki gibidir.

(4.16)

(4.17)

Denklem 4.16’daki XC, ikilik deseni üretilecek merkezi pikseli, XP merkezi

pikselin komĢularını, P ise iĢleme sokulan komĢu sayısını belirtmektedir.

Görüntüdeki her piksel için LBP hesaplanır ancak; her LBP doku tanımlamada kullanılmaz (Ojala ve ark., 1994). LBP kodundaki bit seviyesindeki 1’den 0’a, 0’dan 1’e değiĢim sayısına bakılır. DeğiĢim sayısı iki ve daha az olanlar düzgün örüntü olarak

(33)

adlandırılır. GeçiĢ sayısı hesaplanırken; son bitten ilk bite geçiĢ unutulmamalıdır. Örneğin 00001110 LBP’si 2 geçiĢe, 11111111 LBP’si 0 geçiĢe, 11000110 LBP’si ise dört geçiĢe sahiptir. LBP’lerin dairesel olduğu unutulmamalıdır. GeçiĢ sayısı 0,1 ve 2 olan LBP’ler düzgün örüntülerdir, bu örüntülerden 00000000 ve 11111111 LBP’leri 0 geçiĢe sahiptir ve dairesel yapısı düĢünüldüğünde alternatifi oluĢmamaktadır. Diğer düzgün örüntüler toplamda yedi tanedir. Bunlar: 00000001, 00000011, 00000111, 00001111, 00011111, 00111111 ve 01111111’dir. Bu örüntülerin dairesel yapıda sekizer tane alternatifi oluĢmaktadır. Böylece toplamda 58 tane düzgün örüntü bulunmaktadır. Bu 58 düzgün örüntü ve düzgün olmayan diğer örüntüler için 59. olmak üzere LBP’lerin histogramı oluĢturulur. Görüntünün öznitelik vektörü oluĢturulurken bu histogram değeri kullanılır. (Nabiyev ve Günay, 2010)

(34)

5. YÜZ TANIMA UYGULAMASI

Bu bölümde, tez çalıĢması kapsamında geliĢtirilen web tabanlı yüz tanıma sisteminin (YV yüz tanıma sistemi) çalıĢma biçimi, ekran görüntüleri, algoritmaları ve uygulama sonuçları anlatılmıĢtır.

YV yüz tanıma sistemi geliĢtirilirken, kodlama ve test iĢlemlerini hızlandırmak amacıyla öncelikle masaüstü uygulaması geliĢtirilmiĢtir. Masaüstü uygulaması (bundan sonra “program” olarak anılacaktır) ile web servisinin platform farklılığı dıĢında, arka alanda çalıĢan yüz tanıma yazılımı tamamen aynıdır.

5.1. Masaüstü Uygulaması Olarak YV Yüz Tanıma Sistemi

Bu bölümde, masaüstü uygulaması olarak geliĢtirilen YV yüz tanıma programının ekran görüntüleri ile birlikte kullanım Ģekli ve algoritmalar anlatılacaktır.

5.1.1. Programın kullanımı

Programın arayüzü diğer yazılımlardan farklı olarak, yüz tanıma iĢleminin her aĢaması için ayrı kontrol seçimlerine sahiptir. Bunun amacı kullanılan yöntemlerin her aĢamadaki baĢarısını ölçmek ve gerekirse algoritmanın ilgili kısımlarına müdahale edebilmektir. Programın arayüzü ve kontrol iĢlemlerinde kullanılan menüler ve içerikleri ġekil 5.1’de gösterilmiĢtir.

ġekil 5.1. Programın arayüzü ve menülerin içerikleri

Yüz tanımanın ilk aĢamasında veritabanının oluĢturulup, yüz verilerinden eğitim yapılması gerekmektedir. GeliĢtirilen yazılımın eğitim kısmı üç farklı Ģekilde

(35)

çalıĢmaktadır. Bunlar; kameradan görüntü yakalanması, dosyadan tek fotoğraf yüklenmesi ve dizinden komple bir veritabanının yüklenmesi Ģeklinde sıralanabilir.

Üst menüde yer alan “Eğitim > Kameradan” kısmı seçildiğinde “Eğitim Hane” adında yeni bir pencere açılmaktadır (ġekil 5.2). Eğitim hane penceresinin, sol kısmında web kamerasının göstermiĢ olduğu anlık görüntü yer almaktadır. Sağ kısımdaki “10 Tane Yüz Al” butonuna tıklatıldığında; ekranda yüz bulduğu anlarda kullanıcının, kameradan 10 adet fotoğrafı ardıĢık olarak çekilmektedir. Bu görüntüler alındıktan sonra yüz tanıma kısmı çalıĢır ve görüntülerdeki yüzleri program menüsündeki tercihe göre kırpıp, sağ kısımda seçim yapılmak üzere biriktirir. Eğitim Hane penceresinin sağ kısmındaki “Tüm Verileri SĠL” butonu, veri tabanındaki tüm kayıtları silmektedir. Yine aynı pencerenin sağ orta kısmında yer alan “<< ” ve “ >> ” butonları ile görüntülerden yakalanmıĢ olan yüz görüntüleri gezilir ve istenen fotoğraf “FOTO EKLE” butonuyla veri tabanına “ĠSĠM” kısmına yazılan isimde kaydedilebilir. “HEPSĠNĠ EKLE” butonu ise yakalanan 10 adet görüntüyü yine “ĠSĠM” kısmında yazılan isim ile birlikte rastgele üretilmiĢ 10 haneli rakam eklenerek veritabanına kaydetmektedir. “Yeniden” butonu ile kameradan görüntü alma iĢlemi tekrarlanarak önceki resimlere ekleme yapılabilir. Bu aĢamada kaydedilen resim sayısı ile herhangi bir kısıtlama yapılmamıĢtır.

ġekil 5.2. Eğitim Hane Penceresi

Eğitim iĢleminde ikinci kısma, “Eğitim > Fotoğraf Yükle” menüsünden eriĢilir. Bu seçimle gelen parametre seçim ekranının (ġekil 5.3) sol tarafındaki “Yüz Bulma Parametreleri” kısmı, yüz bulma algoritmasına göndereceğimiz parametrelerin ayarlandığı kısımdır. Bu kısım ayrıntılı bir Ģekilde Bölüm 5.1.2’de anlatılacaktır. Bu

(36)

pencerede yer alan “GÖZAT” butonuna tıklandığında sabit diskte önceden kaydedilmiĢ resimler seçilebilmektedir. Ardından “YÜZ BUL” butonu tıklandığında, seçilen resim üzerinde ayarlanmıĢ yüz bulma parametreleri kullanılarak yüz bulunur ve “KĠġĠ AD” kısmına yazılan isimle birlikte rastgele üretilen 10 haneli rakam eklenmiĢ halde veritabanına kaydedilir.

ġekil 5.3. “Eğitim > Foto Yükle” menüsüne ait kontrol paneli

Eğitimle ilgili üçüncü yaklaĢıma “Eğitim > Dizin Seç” menüsünden eriĢilir. Bu kısım, hazır veritabanlarını sisteme eklemek için oluĢturulmuĢtur. Bu seçimle birlikte gelen kontrol paneli ġekil 5.4’de verilmiĢtir. Panelde yer alan “DĠZĠN SEÇ” butonu ile fotoğrafların olduğu dizin seçilir. Ardından “LĠSTEYE AL” butonu ile seçilen dizideki fotoğraflar paneldeki listeye eklenir. “LĠSTEYĠ ĠġLE” butonuna tıklandığında ise panel listesindeki her satırda yer alan resim iĢlenerek (yüz bulma ve isim verme (resmin ismindeki ilk üç hane kesilir ve 10 haneli rakam eklenir)) veritabanına kaydedilir.

(37)

Programımızın sol alt kısmında, ġekil 5.5.te gösterilen mesaj etiketi (label) bulunmaktadır. Burası kullanıcının bilgilendirilmesi amacıyla kullanılmaktadır. Program çalıĢtırıldığında, veritabanına kayıt sonrasında “Eğitim verileri yüklendi.” Ģeklinde uyarı verilmektedir. Bu bilgilendirme mesajı görüldüyse, sistemimiz test etmeye hazır demektir.

ġekil 5.5. Kullanıcı bilgilendirme alanı

Programımızın test kısmı da, eğitim kısmı gibi 3 farklı biçimde yapılabilmektedir. Test kısmının yapıldığı “Test” menüsü altında “Fotoğraf Yükle”, “Kameradan Foto” ve “Dizin Seç” seçenekleri yer almaktadır (ġekil 5.6).

ġekil 5.6. Test menüsü içeriği

Yüz tanımanın test iĢleminde, eğitime katılmamıĢ görüntüler kullanılır. Bu iĢlem öncesinde veritabanındaki görüntülerin bir kısmı eğitim, kalan kısmı da test iĢlemleri için ayrılmıĢtır.

Yüz tanıma sisteminin test aĢamasında ilk seçim “Test>Fotoğraf Yükle” seçeneğidir. Bu seçenek tıklandığında gelen ekranda (ġekil 5.7) yer alan “GÖZAT” butonu tıklanarak bilgisayardaki test edilecek görüntü seçilir. Ardından “YÜZ BUL” tıklanarak yüz bulma parametreleri ile yüz bulunur. “TANI” butonu ile görüntüde bulunan yüzün kime ait olduğu test edilir.

(38)

Test iĢleminde ikinci yaklaĢım, kameradan yakalan anlık görüntü üzerinden yapılan sorgulamadır. “Test > Kameradan” menüsü tıklandığında gelen ekranda (ġekil 5.8) “Kamerayı BaĢlat” tıklanarak cihazdaki mevcut kamera baĢlatılır.

ġekil 5.8. Kameradan görüntü alarak test etme

Kamera baĢladıktan sonra seçilebilir hale gelen “Foto Al” butonu tıklanır o an ekrandaki görüntü yakalanır. Ekranın sağ tarafında yer alan “YÜZ BUL” tıklandığında yakalanan görüntüde, yüz bulma parametreleri kullanılarak yüz bulunur ve yüzün kime ait olduğu test edilir.

ġekil 5.9. Kameradan alınan görüntünün test iĢleminden önce yüz bulma yapılması

Programımın test iĢleminde yer alan üçüncü yaklaĢıma “Test > Dizin Seç” menüsü ile eriĢilmektedir. Bu kısım, hazır veritabanlarında yer alan resimleri test etmek için hazırlanmıĢtır. Menü seçimi ile gelen ekranda (ġekil 5.10) “DĠZĠN SEÇ” butonu tıklanarak test edilecek görüntülerin olduğu dizin seçilir ve “LĠSTEYE AL” butonu ile ekranda yer alan listeye alınır. Ardından “LĠSTEYĠ ĠġLE” butonu tıklatılarak, listedeki görüntüler yüz tanıma iĢlemine alınır. “Liste ĠĢlendi” uyarı mesajı ile birlikte “DIġA AKTAR” adında yeni bir buton oluĢur. Bu buton tıklatıldığında; test edilmiĢ olan görüntünün dosya adı, kullanılan yöntem, test sonucu ile ilgili benzerlik değeri ve sonuç (doğru veya yanlıĢ) bilgisi Microsoft Excel dosyası olarak dıĢarıya aktarılır.

(39)

ġekil 5.10. Dizin seçilerek, yüz tanıma sisteminin test edilmesi

Yüz tanıma sistemini test edilirken dikkat edilmesi gereken bazı hususlar vardır. Bu hususlardan ilki test etme aĢamasında hangi veritabanında testin yapılacağının, “DB (DataBase)” menüsünden seçilmesinin gerekliliğidir. Bir diğer husus ise test iĢleminin hangi algoritmaya göre yapılacağının seçilmesidir. Algoritmanın seçiminin yapıldığı menü Ģekil 5.11’de verilmiĢtir.

ġekil 5.11. Test algoritmasının seçilmesi

YV yüz tanıma sistemini geliĢtirirken; baĢarıya etkisini ölçmek amacıyla bazı seçimler yapılmıĢtır. Bu seçimler “Histogram eĢitleme” ve “yüz kırpma” iĢlemi olarak sıralanabilir. Bahsi geçen bu seçimler doğrultusunda kullanmıĢ olduğumuz üç veritabanından, toplamda 12 adet alt veritabanı oluĢmuĢtur. ġekil 5.12’de bu 12 farklı uygulama seçimi iĢleminin Ģematik gösterimi verilmiĢtir.

(40)

ġekil 5.12. Kontrol gruplarımıza göre oluĢan alt veritabanları

Test iĢlemi yapılacağında öncelikle yukarıda belirtilen alt veritabanı “DB” menüsünden seçilmelidir. DB seçimi yapıldığında, o alt veritabanına ait ayarlar otomatik olarak “Yüz Bulma Tercihi” ve “Histogram EĢitleme Tercihi” menülerine uygulanmaktadır.

5.1.2. Yüz bulma

EmguCv, haar-benzeri özellikler kullanan bir nesne bulma sınıfına sahiptir. GeliĢtirilen program, EmguCv içerisindeki Viola–Jones yöntemi temelli algoritma ile görüntüdeki yüzleri bulmaktadır. Bu sınıf, seçilen sınıflandırıcı nesnesine göre yüz, burun, dudak, gözler, sol göz, sağ göz, insan vücudu vb. özellikleri hızlı ve kolay bir Ģekilde bulabilmektedir.

EmguCv içerisindeki CascadeClassifier sınıfına ait DetectMultiScale fonksiyonu ile görüntü içerisindeki yüzleri bulmaktayız. Bu fonksiyon 5 adet parametre almaktadır. Bunlar sırasıyla: Emgu.CV.Image(Gray,Byte) tipindeki yüzün aranacağı görüntü, double tipinde ölçek faktörü ile çerçevenin büyüme ölçek çarpanı, int32 tipinde kaç adet komĢu çerçevenin nesne tanımlaması için kullanılacağını belirten değer,

(41)

yine Drawing.Size nesnesi olarak çerçeve boyutunun en üst değeridir. Bununla birlikte haar benzeri kaskat yapıyı oluĢturan ve LBP tabanlı kaskat yapı kullanan bir diğer yaklaĢım da ekstra parametre olarak bu çalıĢmada uygulanmıĢtır. Haar kaskat yapıdan gelen 5 adet parametre LBP kaskat üzerinde de değiĢtirilerek uygulanmıĢ ve yüz bulunmaya çalıĢılmıĢtır.

Metodun programımızdaki örnek kullanımı Ģöyledir: Rectangle[] facesDetected

= Face.DetectMultiScale(gray_frame, 1.2, 10, new Size(30, 30), Size.Empty); DetectMultiScale fonksiyonunun iç yapısı Ģekil 5.13 deki gibidir.

ġekil 5.13. DetectMultiScale methodu

GeliĢtirilen programın yüz bulma aĢaması Ģekil 5.14’de verilmiĢtir.

ġekil 5.14. Yüz bulma aĢaması

Bulunan yüz bölgelerini çerçeveye al.

for (int i = 0; i < total_faces; i++){ result =

currentFrame.Copy(facesDetected[i]).Convert<Gray,

byte>().Resize(100, 100,

Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); currentFrame.Draw(facesDetected[i], new Bgr(Color.Red), 2); pictureBox1.Image = result.ToBitmap(); } Kameradan görüntü al

Kullanıcı kamerası baĢlatılıp, görüntü alınır. grabber = new Capture();

grabber.QueryFrame();

Görüntüyü gri formata dönüĢtür

Görüntü iĢlemeyi hızlandırmak için: görüntüyü gri formata çevir.

gray_frame = currentFrame.Convert<Gray,

Byte>();

Görüntüde yüz ara

Görüntüde yüz var mı?

Rectangle[] facesDetected = Face.DetectMultiScale(gray_frame,

ScaleIncreaseRate, MinNeighbors, new Size(WindowsSize, WindowsSize),

Size.Empty);

Yüz bölgelerini

(42)

Yüz bulma algoritmasının baĢarı oranını arttırmak için 2 farklı yüz bulma kaskat sınıflandırıcısı kullanılmıĢtır. Görüntüde yüz bulunamaması durumunda öncelikle yüz bulma kaskat sınıflandırıcıları arası geçiĢ yapılmıĢtır. Bu iĢlem sonucunda da yüz bulunamadıysa, yüz bulma fonksiyonumuzun parametreleri olan yüzün taranacağı çerçeve ve büyüme oranı değiĢtirilerek taramaya devam edilmiĢtir. Böylece yüz bulma algoritması toplamda dört kere çalıĢtırılarak görüntü içerisinde yüz aranmıĢtır. Yine görüntüde yüz bulunmadıysa programın geliĢtirilmesinde kullanılmak amacıyla yüz bulunmayan görüntü bilgileri arĢivlenmekte ve yüz bulunamadı mesajı verilmektedir.

Yüz bulma algoritmasının, kullanılan üç farklı veritabanındaki yüz bulma durumu ve baĢarı yüzdesi çizelge 5.1’de gösterilmiĢtir.

Çizelge 5.1. Yüz bulma algoritmasınn test sonuçları

Yüz Veri Seti Adı

Toplam Görüntü Sayısı Yüz Bulunanların Sayısı Yüz Bulamadıkları Sayısı Başarı Oranı YaleFaces 165 165 0 %100

Georgia Tech Yüz Veritabanı 750 744 6 %99,20

YV Yüz Veritabanı 750 745 5 %99,33

Yüz bulma algoritması uygulanıp otomatik olarak yüz bulunamadığı örnek görüntüler ġekil 5.15’te verilmiĢtir. Örnek olarak verilen resimler incelendiğinde yüz bulma iĢlemini olumsuz etkileyen durumlar Ģu Ģekildedir:

 “s26 (7).jpg” isimli görüntüdeki kiĢinin kâkülünün alnı kapattığı ve kaĢlarla birleĢtiği görülmektedir.

 “s32 (8).jpg” isimli görüntüde kullanılan Ģapka yüzde gölge oluĢturmuĢtur.

 “s37 (12).jpg” isimli görüntüde kullanılan gözlük camında yansıma oluĢmuĢtur.

 “s31 (13).jpg” isimli görüntüde kafanın eğiklik açısı oldukça yüksektir.

 “s35 (3).jpg” isimli görüntüde bakıĢ açısı fazla yana doğrudur.

 “s37 (11).jpg” isimli görüntüde hem bakıĢ açısı fazla yandan hem de arka plan ıĢık durumu yüksektir.

Şekil

ġekil 3.1. Yalefaces veritabanından alınan S01 kodlu kiĢiye ait yüz görüntüleri
ġekil 3.3. YV yüz veritabanından alınan s18 kodlu kiĢiye ait yüz görüntüleri
ġekil 3.4. Yüz Tanıma web uygulamasının çalıĢma adımları
ġekil 4.3. Leinhart ve Maydt’ın sundukları haar öznitelikler (2002)
+7

Referanslar

Benzer Belgeler

deformasyonlardan Hipokrat bahsetmiştir. Karadenizin kuzeydoğusunda yaşayan toplumlarda kafayı önden arkaya uzatmak amacıyla sarıldığını belirtmiştir. Bu kafa biçimini

Amigdala yüzlere karşı olan ilgiyi düzenlediği ve yaşanan deneyimlerin de etkisiyle superior temporal sulkus ve fusiform girus gibi diğer kortikal sistem- lerin gelişimini

- Özellik tabanlı yüz tanıma: Yüzün göz, ağız ve burun gibi organlarının bireysel özellikleri ve bunların birbirleri ile ilişkileri kullanılarak, tanıma işlemi

mantıksal düzenleme, varlık ve bağıntıların belirlenmesi veri tipleri, değer aralığı, uzunluk belirlenmesi. veri bütünlüğü kısıtlamalarının belirlenmesi fiziksel

Daha iyisi veya daha kötüsü için, çimento sanayisi şu anda dünyanın tek ve en büyük karbon yayıcısı tahtında oturuyor.. Bazı tahminlere göre, çimentonun kendine ait

Nakledeceğim fıkra, adı ha­ fızanızda bir şey hatırlatm ıyacak olan bir Fransız m uharririne ait.. Kendisi tabiinden darnp dinlen­ meden avans

small pelagic fish species such as anchovy, horse According to the questionnaire results, mackerel and bonito, it is known that seafood 72.4% of respondents are

parçalanması Bir arazi kullanım türünde km²’deki bölücü unsurun uzunluğu (km) Ulaşım ve diğer teknik altyapı unsurları Tür populasyonunda azalma