İçeriğe geç
Tüm projeler

Ensemble Facial Recognition & ONNX Pipeline

SVM, Random Forest ve CNN mimarilerini soft-voting (esnek oylama) ile birleştirerek yüz veri setlerini sınıflandıran ve modelleri otonom olarak ONNX grafklarına serileştiren heterojen ML hattı.

Teknoloji yığını

Diller
Çatılar & kütüphaneler

Performans & metrikler

  • Yüksek bias'a sahip geleneksel sınıflandırıcılar ile derin uzamsal özellik çıkarıcıları birleştirerek overfitting riskini büyük ölçüde azaltır
  • ONNX serileştirmesi, canlı çıkarsama (inference) aşamasındaki ağır TensorFlow runtime bağımlılığını tamamen ortadan kaldırır

Neden geliştirdim?

Bu pipeline, OpenCV-Face-Features-Toolkit-For-ML-cpp projem tarafından üretilen normalize edilmiş yüz veri setlerini (dataset) işlemek ve sınıflandırmak için uç nokta (downstream) motoru olarak tasarlandı. Yüz tanımada tek bir ML mimarisine güvenmek genellikle uzamsal aşırı öğrenmeye (overfitting) veya varyans sorunlarına yol açar. Geleneksel istatistiksel modeller (SVM/RF) ile derin uzamsal özellik çıkarıcıların (CNN) tahminlerini matematiksel olarak birleştirerek bireysel model sapmalarını (bias) minimize etmek için bu ensemble yaklaşımını kurguladım.

Mimari & kararlar

Veri yükleme katmanı, girdi matrislerini 100x100 gri tonlamalı dizilere normalize eder. Scikit-Learn ve TensorFlow farklı tensör geometrileri beklediği için (1D düzleştirilmiş diziler vs. 2D uzamsal tensörler), BaseEstimator ve ClassifierMixin sınıflarından miras alan özel bir KerasClassifierWrapper inşa ettim. Bu wrapper, TF/Keras hesaplama grafiğini (computational graph) doğrudan Scikit-Learn'ün VotingClassifier yapısına entegre eder. Sistem, tahmin olasılık dağılımlarını (predict_proba) soft-voting mekanizmasıyla hesaplar. Son olarak modeller, çıkarsama (inference) motorunu Python/TensorFlow runtime'ından izole edip C++ ortamlarında (edge deployment) çalıştırılabilmesi için ONNX formatında (opset 9 ve 11) serileştirilir.

Temel özellikler

  1. 01OpenCV-Face-Features-Toolkit-For-ML-cpp aracı tarafından üretilen normalize veri setlerinin doğrudan içeri alınması ve sınıflandırılması
  2. 02TensorFlow CNN'lerini Scikit-Learn ensemble pipeline'ları içinde orkestre etmek için özel BaseEstimator köprü katmanı
  3. 03SVM, Random Forest ve CNN olasılık dağılımları üzerinden maksimum olabilirlik (maximum likelihood) hesaplayan soft-voting ensemble sınıflandırıcı
  4. 04Çapraz platform ve runtime bağımsız inference (çıkarsama) için otonom ONNX graph serileştirme hattı