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
- 01
OpenCV-Face-Features-Toolkit-For-ML-cpparacı tarafından üretilen normalize veri setlerinin doğrudan içeri alınması ve sınıflandırılması - 02TensorFlow CNN'lerini Scikit-Learn ensemble pipeline'ları içinde orkestre etmek için özel
BaseEstimatorköprü katmanı - 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ı
- 04Çapraz platform ve runtime bağımsız inference (çıkarsama) için otonom ONNX graph serileştirme hattı