~/projects/simpsons-character-xray/

Simpsons Character X-Ray

May 1, 2026 #computer-vision#deep-learning#xai#team

A team project for recognizing Simpsons characters in images and video, combining classification, YOLO detection, an X-Ray pipeline, and explainability experiments.

ibrhmgldmr3/simpsons-character-xray/README.md

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 CNN egitimi
  • 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 akislari
  • model_factory.py: TensorFlow tarafinda model ureten factory
  • training.py: Ortak egitim dongusu, compile/fine-tune yardimcilari ve callback yapilari
  • evaluation.py: Accuracy, precision, recall, F1, confusion matrix ve benzeri degerlendirme araclari
  • xray_pipeline.py: Detection + classification mantigini birlestiren inference yardimcilari
  • xai.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 egitimi
  • dinov2_simpsons_pipeline.py: DINOv2 tabanli egitim / degerlendirme akisi
  • convert_yolo_to_classification.py: YOLO bbox etiketlerinden crop classification dataset uretimi
  • prepare_icartoonface.py: iCartoonFace veri hazirlama akisi
  • yolo_dataset_maker.py: YOLO dataset yapisi ve data.yaml uretimi
  • run_xray_compare.py: Bir videoyu birden fazla modelle ayri ayri calistirip cikti uretme
  • evaluate_ready_models.py: outputs/ altindaki hazir checkpointleri toplu degerlendirme
  • evaluate_models_on_custom_testset.py: Hazir checkpointleri ozel test seti uzerinde karsilastirma
  • evaluate_custom_cnn_test.py: Egitilmis custom CNN modelini harici test klasorlerinde deneme
  • create_simpsons_manifest.py: Sinif manifesti olusturma / guncelleme
  • validate_config.py: configs/config.yaml ile manifest uyumlulugunu kontrol etme
  • gen_notebooks.py: Notebooklari programatik olarak uretme
  • custom_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 esikleri
  • simpsons_12_manifest.json: Sinif ID ve sinif adi eslesmeleri

notebooks/

Adim adim deney notebooklari burada tutulur.

  • 01_veri_analizi_ve_EDA.ipynb
  • 02_veri_hazirlama.ipynb
  • 03_resnet50v2.ipynb
  • 04_efficientnetb0.ipynb
  • 05_model_yolo26.ipynb
  • 06_model_karsilastirma.ipynb
  • 07_xray_inference.ipynb
  • custom_cnn_simpsons_notebook.ipynb
  • test_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:

  • tensorflow
  • torch, torchvision, timm
  • opencv-python
  • ultralytics
  • numpy, pandas, matplotlib, seaborn, scikit-learn
  • jupyter, 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.path
  • datasets.classification.manifest_path
  • dataset.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:

  1. Videodaki karelerde detector ile bbox bulunur.
  2. Her bbox crop edilerek siniflandirma modeline gonderilir.
  3. Tahmin guveni dusukse sonuc unknown olarak isaretlenebilir.
  4. 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.yaml icindeki yollar su an baska bir makineyi isaret ediyor olabilir.
  • scripts/run_xray_compare.py dosyasinda varsayilan klasorler BASE_DIR uzerinden sabit tanimlanmistir.
  • Bazi scriptler datasets/, bazilari data/, bazilari outputs/ veya results/ 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:

  1. configs/config.yaml
  2. notebooks/01_veri_analizi_ve_EDA.ipynb
  3. notebooks/02_veri_hazirlama.ipynb
  4. src/ altindaki cekirdek moduller
  5. scripts/custom_cnn_simpsons.py
  6. scripts/run_xray_compare.py
  7. xai/ 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

← cd ..