Simpsons Character X-Ray
Simpsons karakterlerini görüntü ve videoda tanıma: sınıflandırma, YOLO ile tespit, X-Ray akışı ve açıklanabilirlik deneylerini birleştiren ekip projesi.
cat README.md
Simpsons Character X-Ray: YOLO ve Derin Öğrenme Tabanlı Karakter Tespiti, Sınıflandırma ve Video X-Ray Sistemi
Github: https://github.com/ibrhmgldmr3/derin_ogr_proje/
Bu repo, Simpsons karakterlerini goruntu ve video uzerinden taniyan birden fazla derin ogrenme akisini bir arada tutar. Proje tek bir modele odaklanmaz; TensorFlow/Keras siniflandirma modelleri, PyTorch tabanli ozel CNN ve DINOv2 denemeleri, YOLO detection akisi, video uzerinde detection + classification birlestiren X-Ray pipeline ve XAI notebooklari ayni calisma alaninda toplanmistir.
Kapsam
Projede temel olarak su basliklar yer alir:
- TensorFlow/Keras ile siniflandirma egitimi ve degerlendirme
- PyTorch ile
Custom CNNegitimi - PyTorch tabanli DINOv2 pipeline
- YOLO bbox etiketlerinden classification dataset uretimi
- Video uzerinde detection + classification karsilastirmasi
- XAI ve notebook tabanli deney / analiz calismalari
Proje Amaci
Amac, secilen Simpsons karakterlerini farkli senaryolarda tanimaktir:
- tekil goruntulerde siniflandirma
- YOLO etiketlerinden crop tabanli classification dataset uretimi
- farkli modellerin karsilastirilmasi
- videoda karakterlerin tespit edilip kare bazinda etiketlenmesi
- model davranisinin XAI araclariyla incelenmesi
Klasor Yapisi
src/
Cekirdek moduller burada yer alir.
data_utils.py: Veri yukleme, config okuma, manifest yonetimi, sinif adlari ve TensorFlow veri akislarimodel_factory.py: TensorFlow tarafinda model ureten factorytraining.py: Ortak egitim dongusu, compile/fine-tune yardimcilari ve callback yapilarievaluation.py: Accuracy, precision, recall, F1, confusion matrix ve benzeri degerlendirme araclarixray_pipeline.py: Detection + classification mantigini birlestiren inference yardimcilarixai.py: Aciklanabilirlik ve gorsellestirme tarafinda kullanilan yardimci kodlar
scripts/
Calistirilabilir egitim, donusum ve degerlendirme scriptleri burada bulunur.
custom_cnn_simpsons.py: PyTorch ile ozel CNN egitimidinov2_simpsons_pipeline.py: DINOv2 tabanli egitim / degerlendirme akisiconvert_yolo_to_classification.py: YOLO bbox etiketlerinden crop classification dataset uretimiprepare_icartoonface.py: iCartoonFace veri hazirlama akisiyolo_dataset_maker.py: YOLO dataset yapisi vedata.yamluretimirun_xray_compare.py: Bir videoyu birden fazla modelle ayri ayri calistirip cikti uretmeevaluate_ready_models.py:outputs/altindaki hazir checkpointleri toplu degerlendirmeevaluate_models_on_custom_testset.py: Hazir checkpointleri ozel test seti uzerinde karsilastirmaevaluate_custom_cnn_test.py: Egitilmis custom CNN modelini harici test klasorlerinde denemecreate_simpsons_manifest.py: Sinif manifesti olusturma / guncellemevalidate_config.py:configs/config.yamlile manifest uyumlulugunu kontrol etmegen_notebooks.py: Notebooklari programatik olarak uretmecustom_cnn_notebook_support.py: Notebook tarafinda custom CNN akisina destek veren yardimcilar
configs/
config.yaml: Veri yolu, image size, split oranlari, egitim ayarlari ve X-Ray esiklerisimpsons_12_manifest.json: Sinif ID ve sinif adi eslesmeleri
notebooks/
Adim adim deney notebooklari burada tutulur.
01_veri_analizi_ve_EDA.ipynb02_veri_hazirlama.ipynb03_resnet50v2.ipynb04_efficientnetb0.ipynb05_model_yolo26.ipynb06_model_karsilastirma.ipynb07_xray_inference.ipynbcustom_cnn_simpsons_notebook.ipynbtest_trained_models.ipynb
xai/
XAI notebooklari, analiz yardimcilari ve sekil uretim scriptleri bu klasor altindadir.
results/
Deney ciktilari, metrikler, gorseller ve video sonuc dosyalari icin kullanilir.
docs/
Rapor ve sunum PDF dosyalari burada yer alir.
Gereksinimler
requirements.txt dosyasi temel olarak su kutuphaneleri kapsar:
tensorflowtorch,torchvision,timmopencv-pythonultralyticsnumpy,pandas,matplotlib,seaborn,scikit-learnjupyter,ipywidgets
Kurulum
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Hizli Baslangic
1. Config kontrolu
Once configs/config.yaml dosyasini inceleyin. Bu dosyada veri yolu alanlari su anda mutlak Windows path'leriyle tanimli:
datasets.classification.pathdatasets.classification.manifest_pathdataset.path
Bu alanlari kendi makinenize gore guncellemeden bazi scriptler dogrudan calismayabilir.
2. Config ve manifest uyumlulugunu dogrulama
python scripts/validate_config.py
3. YOLO etiketlerinden classification crop dataset uretme
python -m scripts.convert_yolo_to_classification --source-dir data/simpsons_dataset --output-dir data/simpsons_14_crops
4. Custom CNN egitimi
python -m scripts.custom_cnn_simpsons --dataset_variant rect_adaptive --epochs 50
5. Hazir checkpointleri toplu degerlendirme
python -m scripts.evaluate_ready_models
6. Ozel test seti uzerinde checkpoint karsilastirma
python -m scripts.evaluate_models_on_custom_testset
7. Video uzerinde X-Ray karsilastirma
run_xray_compare.py varsayilan olarak sabit klasorler bekler. Gerekirse path'leri CLI uzerinden verin:
python -m scripts.run_xray_compare --models-dir C:\path\to\models --video-dir C:\path\to\videos --icons-dir C:\path\to\icons --yaml-path C:\path\to\data.yaml --output-dir C:\path\to\results --det-conf 0.35 --unknown-thr 0.45
Model Yapisi
Repo icinde tek tip bir model ekosistemi yoktur. Iki ana hat vardir:
- TensorFlow/Keras:
src/model_factory.py,src/training.py,src/evaluation.py - PyTorch:
scripts/custom_cnn_simpsons.py,scripts/dinov2_simpsons_pipeline.py
Bu nedenle cikti formatlari farkli olabilir. Repo icinde .keras, .h5, .pt ve .pth uzantili model ciktilariyla karsilasmak dogaldir.
X-Ray Pipeline Ozeti
Video tabanli pipeline genel olarak su sekilde calisir:
- Videodaki karelerde detector ile bbox bulunur.
- Her bbox crop edilerek siniflandirma modeline gonderilir.
- Tahmin guveni dusukse sonuc
unknownolarak isaretlenebilir. - Sonuclar video, gorsel ve ozet metrik olarak kaydedilir.
Bu kisim projeyi yalnizca goruntu siniflandirma deneyi olmaktan cikarip uygulamaya daha yakin hale getirir.
Onemli Notlar
- Repo icinde birden fazla script mutlak Windows path'lerine baglidir.
configs/config.yamlicindeki yollar su an baska bir makineyi isaret ediyor olabilir.scripts/run_xray_compare.pydosyasinda varsayilan klasorlerBASE_DIRuzerinden sabit tanimlanmistir.- Bazi scriptler
datasets/, bazilaridata/, bazilarioutputs/veyaresults/klasorlerini bekler.
Kisacasi repo her ortamda "oldugu gibi" calisacak durumda degil; ilk adim olarak path ve veri klasoru beklentilerini kendi ortaminiza gore uyarlamaniz gerekir.
Okuma Sirasi
Projeye ilk kez giren biri icin asagidaki siralama daha verimlidir:
configs/config.yamlnotebooks/01_veri_analizi_ve_EDA.ipynbnotebooks/02_veri_hazirlama.ipynbsrc/altindaki cekirdek modullerscripts/custom_cnn_simpsons.pyscripts/run_xray_compare.pyxai/altindaki notebook ve scriptler
Ozet
Bu repo:
- Simpsons karakter tanima problemine odaklanir
- hem notebook hem script tabanli deney akislarini bir arada tutar
- hem TensorFlow hem PyTorch ekosistemlerini kullanir
- detection, classification, video inference ve XAI katmanlarini birlestirir
- egitim, degerlendirme ve karsilastirma calismalarini ayni yerde toplar