Yüz Tanımada MATLAB Uygulaması: Kod, Açıklama ve Sözdizimi
Yayınlanan: 2020-06-23Cep telefonunuzun kilidini yüzünüzle her açtığınızda veya yüksek teknolojili ofis gözetim sisteminizden her geçtiğinizde, arka planda ayrıntılı bir yüz tanıma teknolojisi çalışır. Peki yüz tanıma nedir ve MATLAB kullanarak yüz tanımayı nasıl gerçekleştirebilirsiniz ?
Yüz tanıma, teknoloji aracılığıyla insan yüzlerini tanımlama sürecidir. Yüz tanıma sistemi, görüntülerden ve videolardan çıkarılan yüz özelliklerini modellemek ve sınıflandırmak için bilgisayarlı görme ve Makine Öğrenimi tekniklerini kullanır. Yüz tanımlama algoritmaları, yüz özelliklerini çıkarır ve eşler ve en iyi eşleşmeyi bulmak için bunları bilinen yüzlerden oluşan bir veri tabanıyla karşılaştırır.
Kaynak
İçindekiler
Yüz Tanımada MATLAB
MATLAB kodu kullanılarak yüz tanıma elde etmek mümkündür . MATLAB'daki yerleşik sınıf ve işlev, yüz, gözler, burun ve ağzı algılamak için kullanılabilir. Bilgisayarlı görü sistemi araç kutusunun nesne vizyonu.CascadeObjectDetector Sistemi, nesneleri Viola-Jones yüz algılama algoritmasına dayalı olarak tanır.
MATLAB Nesne Dedektörünün Açıklaması
Vision.CascadeObjectDetector, yüzlerin, gözlerin, ağzın, burnun veya vücudun üst kısmının tanımlanması için Viola-Jones algoritmasını kullanır. Özel bir sınıflandırıcı, MATLAB'ın Görüntü Etiketleyicisi kullanılarak eğitilebilir ve System nesnesi ile birlikte kullanılabilir. Peki bir görüntüde yüz özellikleri veya üst vücut nasıl tespit edilir? İşte adımlar:
- İlk adım, vision.CascadeObjectDetector nesnesinin oluşturulmasını ve özelliklerinin ayarlanmasını içerir.
- Bu adımda, nesne argümanlarla çağrılır (sanki bir işlev gibi davranıyormuş gibi).
Okuyun: Yeni Başlayanlar İçin 15 İlginç MATLAB Proje Fikri ve Konusu

Object Detector Oluşturma Sözdizimi
Object Detector oluşturmak için kullanılan sözdizimi aşağıdaki gibidir:
- dedektör = vision.CascadeObjectDetector
- dedektör = görüş.CascadeObjectDetector(mod1)
- Dedektör = vision.CascadeObjectDetector(Ad,Değer)
- dedektör = vision.CascadeObjectDetector(XMLFILE)
Sözdiziminin Açıklaması
- detektör =vision.CascadeObjectDetector: Bu sözdizimi, Viola-Jones algoritmasını kullanarak nesneleri algılayan bir detektörün oluşturulması için kullanılır.
- detektör = vizyon.CascadeObjectDetector(mode1): Bu sözdizimi, giriş vektörü - mod1 tarafından tanımlanan nesneleri algılamak için yapılandırılmış bir detektörün oluşturulması için kullanılır.
- detektör = vision.CascadeObjectDetector(Name,Value): Bu sözdizimi, her bir özellik adının tırnak içine alındığı bir veya birden fazla ad-değer çifti kullanarak özellikleri ayarlamak için kullanılır. Örneğin: dedektör = vision.CascadeObjectDetector('ClassificationModel','UpperBody')
Kontrol edin: Makine Öğrenimi Proje Fikirleri
Özellikleri
Aksi belirtilmedikçe, kademeli Nesne Dedektörünün özellikleri ayarlanamaz, yani nesne çağrıldıktan sonra değerleri değiştirilemez. Nesneler, çağrıldıklarında kilitlenir ve kilitlerinin açılması 'serbest bırakma' işlevi tarafından yapılır.
Öte yandan, ayarlanabilir bir özellik, değerinin herhangi bir zamanda değiştirilebileceği anlamına gelir. Öyleyse, MATLAB kodlarını kullanarak yüz tanımayı anlamadan önce bazı özelliklere bir göz atalım .
- ClassificationModel: Bir karakter vektörü olarak tanımlanan bu özellik, algılanacak nesnenin türünü kontrol etmekten sorumludur. Dedektörün varsayılan yapılandırması yüzleri algılar.
- MinSize: Tanınabilir en küçük nesnenin boyutu, iki elemanlı bir vektör [yükseklik genişliği] olarak gösterilir. Bir özellik değeri belirtilmedikçe, dedektör bunu sınıflandırma modelini eğitmek için kullanılan görüntü boyutuna ayarlar.
- MaxSize: Tanınabilir en küçük nesnenin boyutu, iki elemanlı bir vektör [yükseklik genişliği] olarak gösterilir . Bir özellik değeri belirtilmedikçe, dedektör bunu boyuta (I) ayarlar.
- ScaleFactor: 1.0001'den yüksek bir belirlenmiş değere sahiptir. Bu özellik, MinSize ve MaxSize arasındaki algılama çözünürlüğünün artımlı ölçeklenmesi içindir.
- MergeThreshold: 4'e eşit bir tamsayı değerine sahiptir. Bir hedef nesne etrafında birden fazla algılama olması durumunda, eşik nihai algılama kriterlerini tanımlar.
- UseROI: false olarak belirtilen bu özellik, giriş görüntüsündeki dikdörtgen ilgi alanı içindeki nesnelerin algılanması için true olarak ayarlanabilir.
Nesne Dedektörünü Kullanma Sözdizimi
- bbox = dedektör(I)
- bbox = algılayıcı(I,roi)
Sözdiziminin Açıklaması
- bbox = dedektör(I) , algılanan nesneleri içeren ' M ' sınırlayıcı kutuları tanımlayan bir M -by-4 matrisi olan bbox'ı döndürür.
- bbox = dedektör(I,roi), roi ile belirtilen dikdörtgen ilgi alanı içindeki nesneleri algılamak için kullanılır.
Giriş Bağımsız Değişkenleri

- I — Giriş resmi: Gerçek renk veya gri tonlamalı (RGB) olarak belirtilir.
- model — Sınıflandırma modeli: Bir karakter vektörü olarak belirtilir ve algılanacak nesne tipini tanımlar.
- XMLFILE — Özel sınıflandırma modeli: Bir XML dosyası olarak belirtilir, OpenCV eğitim işlevi veya trainCascadeObjectDetector işlevi kullanılarak oluşturulabilir.
- roi — Dikdörtgen ilgi alanı: Bu girdi bağımsız değişkenini belirtmek için dört elemanlı bir vektör [ x y genişlik yüksekliği ] kullanılır.
Çıktı Argümanları
bbox — Algılamalar: Algılamalar , her satırı dört elemanlı vektörü [ x y genişlik yüksekliği ] içeren bir M -by-4 eleman matrisi olarak döndürülür.
Tüm Sistem Nesnelerinde Ortak Nesne İşlevleri
- adım: Sistem Nesnesi algoritmasını çalıştırmak için
- yayın: Sistem kaynaklarını serbest bırakmak için
- reset: Sistem Nesnesinin dahili durumlarını sıfırlamak için.
Yüz tanıma için MATLAB kodu
Bu bölümde MATLAB kodu kullanılarak yüz tanıma örneği göreceğiz.
Yüz tanıma
Kaynak
Kaynak
step(Detector,I), algılanan nesnelerin [x,y,Height,Width] değerini içeren Bounding Box değerini döndürür:
Kaynak
Burun Algılama
Kaynak
Kaynak
Tanım:
- 'Burun' argümanının geçmesi, ilgilenilen nesnenin burun olduğunu gösterir.
- Varsayılan burun algılama sözdizimi, vision.CascadeObjectDetector('Nose') şeklindedir.
- Vision.CascadeObjectDetector'a iletilen varsayılan parametre değerleri, giriş görüntüsüne göre değiştirilebilir.
- Hedef nesne çevresinde birden fazla algılamayı önlemek için 'MergeThreshold' değeri geçersiz kılınabilir (yukarıdaki resimde olduğu gibi).
Göz Algılama
Kaynak
Kaynak

Ağız Algılama
Kaynak
Kaynak
Ayrıca Okuyun: MATLAB'de while döngüsü: Bilmeniz Gereken Her Şey
Toplama
Yüz tanıma teknolojisi, kişisel kimliğin doğrulanması için faydalı olsa da, mahremiyet sorunlarına yol açar. Teknoloji bir kişinin yüz izini kullandığından, genellikle kişinin mahremiyetinin, güvenliğinin ve güvenliğinin ihlali olarak kabul edilir. MATLAB kullanarak yüz tanıma, güvenliğin çok önemli olduğu birkaç durumda kullanılabilir. Yüz tanıma, havaalanları ve ofislerden akıllı telefonlara kadar birçok sistem ve organizasyonun ayrılmaz bir parçası haline geldi.
Makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev, IIIT- sunan IIIT-B & upGrad'ın Makine Öğrenimi ve Yapay Zeka PG Diplomasına göz atın. B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.
Yüz tanıma nedir?
Yüz tanıma, kimlik hırsızlığına karşı koruma sağlamanın yanı sıra kişileri isimleriyle tanımlamak için kullanılabilir. Bununla birlikte, yüz tanımanın nispeten yeni olduğu ve sürekli olarak geliştirilmekte olduğu göz önüne alındığında, onu etkin bir şekilde kullanmak için yüz tanımanın temellerini anlamak önemlidir. Yüz tanıma, bir yüz görüntüsünün bilinen bir kişiye ait olup olmadığını belirleme sürecini ifade eder. Yüz tanıma problemi iki göreve ayrılabilir: 1) Yüz Algılama – görüntüdeki yüzün yerini tespit etme, 2) Yüz Tanıma – yüzü olan kişinin kimliğini belirleme.
Matlab nedir?
Matlab, sayısal hesaplama için bir programlama dilidir. Temel olarak, bir matris programlama dilidir. Bilimsel ve mühendislik hesaplamalarında çokça kullanılır. Diğer programlama dillerinden farklı olarak MATLAB, matrisler üzerinde hesaplamaya uygun bir matris dili olarak tasarlanmıştır. Matrisler, birçok farklı denklemde, özellikle bilimsel ve mühendislik hesaplamalarında kullanılmaktadır. Matlab, çok sayıda işlevle birlikte gelen üst düzey bir programlama dilidir. Matematik problemlerini çözmek, verileri analiz etmek ve grafikler oluşturmak için kullanılır.
Matlab'da Viola Jones nedir?
Viola Jones algoritması, yüz tanıma ve yüz ifadesi tanıma için kullanılır. Viola Jones algoritması, ilk olarak 2001 yılında Paul Viola ve Michael Jones tarafından tanıtılan Histograms of Oriented Gradients (HOG) tabanlıdır. Bilgisayarla görü, makine öğrenimi ve görüntü işlemede kullanılır. Viola Jones algoritması eksiksiz bir nesne algılama sistemi sağlar ve yaya algılama, nesne algılama veya insan algılamada kullanılabilir. Viola Jones algoritması, bir özellik çıkarma adımı, bir kümeleme adımı ve bir nesne sınıflandırma adımından oluşur.