SVM Kullanarak Yüz Maskesi Algılama — Intel oneAPI Optimize Edilmiş Scikit-Learn Kitaplığı
COVID -19 salgını, yüz maskelerini günlük hayatımızda vazgeçilmez hale getirdi. Giderek daha fazla ülke virüsün yayılmasını kontrol etmek için yüz maskesi kullanımını zorunlu kıldıkça, insanların bu düzenlemelere uymasını sağlamak giderek daha önemli hale geldi. Bunu yapmanın bir yolu, yüz maskesi algılama teknolojisini kullanmaktır.
Bu blogda, Destek Vektör Makinesi (SVM) ve Intel oneAPI ile optimize edilmiş Scikit-Learn kitaplığını kullanarak bir kişinin yüz maskesi takıp takmadığını nasıl tespit edeceğimizi keşfedeceğiz .
Öncelikle Destek Vektör Makinesi Algoritmasının ne olduğunu bilmemiz gerekiyor. Hem sınıflandırma tipi hem de regresyon tipi problemleri çözmek için kullanılan hafif ama güçlü bir makine öğrenme algoritmasıdır.
Algoritma, veri noktalarını farklı sınıflara ayıran en iyi karar sınırını bulur.
SVM'nin nasıl çalıştığına dair basit bir açıklama:
- Veri noktaları, her noktanın çeşitli özelliklere sahip bir gözlemi temsil ettiği bir grafik üzerinde çizilir.
- Algoritma, iki sınıfı mümkün olan en büyük marjla ayıran bir çizgi (veya daha yüksek boyutlarda bir hiperdüzlem) bulmaya çalışır.
- Kenar boşluğu, karar sınırı ile her iki sınıftan en yakın veri noktaları arasındaki mesafedir.
- Karar sınırına en yakın veri noktalarına destek vektörleri denir ve sınırın konumunu ve yönünü belirlerler.
- Sınır bulunduğunda, algoritma, sınırın hangi tarafına düştüklerini belirleyerek yeni veri noktalarını sınıflandırabilir.
Şimdi bunu projemize uygulayacağız. Bunu basitçe , bir kişinin maske takıp takmadığını bulabileceğimiz Binary Classification Model olarak tanımlayabiliriz .
SVM algoritması , S cikit-learn paketinde tanımlanır . Scikit-learn, makine öğrenimi için bir Python modülüdür. Scikit-learn için Intel® Uzantısı, tek ve çok düğümlü yapılandırmalarda Intel CPU'lar ve GPU'lar için scikit-learn uygulamalarınızı sorunsuz bir şekilde hızlandırır . Hızlandırma, Intel® oneAPI Data Analytics Library (oneDAL) . Scikit-learn için Intel(R) Uzantısı) kullanılarak elde edilir ve orijinal olarak daal4pypakette bulunan scikit-learn düzeltme eki işlevi içerir. Bu uzantı paketi dinamik olarak düzeltme ekleri yaparscikit-learn makine öğrenimi algoritmalarınızın performansını artırırken tahmin ediciler.
Uzantı, makine öğrenimi araçlarını mevcut yapay zeka paketlerinizle kullanma esnekliği sağlayan Intel® Yapay Zeka Analitik Araç Kitinin (AI Kit) bir parçasıdır. Bu uzantıyla birlikte Scikit-learn kullanarak , eşdeğer matematiksel doğrulukla eğitim ve çıkarımı 100 kata kadar hızlandırabiliriz .
Önkoşullar:
- Python 3.7 veya üstü.
- Gerekli Paketler :
Numpy, Pandas, scikit-learn-intelex, scikit-learn, PIL, matplotlib
Bu paketleri kurmak için sanal bir ortam oluşturabilirsiniz. Aşağıdaki kodu Jupyter Notebook'un bir hücresine yazın:
!pip install scikit-learn-intelex
O zaman koş:
from sklearnex import patch_sklearn
patch_sklearn()
Veri kümesi:
Veri seti Kaggle'dan alınmıştır . Biri maskeli , diğeri maskesiz olmak üzere iki farklı etikete sahip fotoğraflar içerir . With_mask veri seti 3725 resim içerir ve Without_mask veri seti 3828 resim içerir.
Dataset Link: https://www.kaggle.com/datasets/omkargurav/face-mask-dataset
Veri Kümesini İçe Aktarma ve NumPy dizisine dönüştürme:
Veri setini içe aktarmak ve ardından onu 3 kanallı numpy dizisine dönüştürmek için PIL ve Numpy kitaplıklarını kullandı.
with_mask_files = os.listdir(‘data/with_mask’)
print(with_mask_files[0:5])
print(with_mask_files[-5:])
without_mask_files = os.listdir(‘data/without_mask’)
print(without_mask_files[0:5])
print(without_mask_files[-5:])
Şimdi Convert it to Numpy dosyalarını saklayacağız.
Görüntüler artık 3 kanal dizisine dönüştürülür, dizinin her öğesi görüntünün 3 parametresini içerir ( RGB Değeri ).
Veri Ön İşleme:
Şimdi model eğitimine geçmeden önce array boyutlarını 3 kanaldan tek kanala çevirmemiz gerekiyor.
Şimdi tüm değerleri tek bir listeye ekleyeceğiz, 0'lar, 1'ler içeren başka bir etiket listesi oluşturacağız ve train_test_split.veri setini eğitim ve teste bölmek için kullanacağız.
Modeli Eğitmek:
Modelimize uyması için DVM'nin destek vektörü sınıflandırıcısını kullanacağız ve ardından tahminler yapacağız.
Artık tahminlerde bulunabilir ve modelimizin doğruluğunu kontrol edebiliriz.
Karışıklık Matrisinin Kontrol Edilmesi :
Test yapmak:
Artık modelimizin düzgün çalışıp çalışmadığını bazı görseller ile test edebiliriz.
Maskesiz bir kişinin başka bir görüntüsüne bakalım.
Bu model aynı zamanda bir yüzdeki maskeleri gerçek zamanlı olarak algılayabilen bir bilgisayar görme modeline de uygulanabilir.
Bu proje , Google Developers Students Club Techno India University tarafından Intel , GDG Cloud Kolkata ve Hack4Bengal ile ortaklaşa düzenlenen ENIGMA — Intel oneAPI tabanlı bir Makine Öğrenimi Hackathon'u olan ENIGMA'da Ripan Roy (Ben) tarafından sergilendi .
Zaman ayırdığın için teşekkürler.

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































