Yüz Tanımada MATLAB Uygulaması: Kod, Açıklama ve Sözdizimi

Yayınlanan: 2020-06-23

Cep 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:

  1. İlk adım, vision.CascadeObjectDetector nesnesinin oluşturulmasını ve özelliklerinin ayarlanmasını içerir.
  2. 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.