# 🖼️ Yapay Zeka ile Görüntü Altyazılama (Image Captioning)
Bu proje, bir görüntüdeki içeriği analiz edip, bu içeriği anlatan, insan dilinde bir cümle üreten, uçtan uca bir Derin Öğrenme projesidir. Proje, Bilgisayarlı Görü (CV) ve Doğal Dil İşleme (NLP) alanlarını birleştiren, Encoder-Decoder mimarisine dayanmaktadır.
## 🎯 Projenin Amacı ve Mimarisi
Projenin temel amacı, bir görüntüdeki görsel desenler ile doğal dildeki kelimeler arasındaki ilişkiyi öğrenebilen bir model inşa etmektir. Bunun için iki ana bileşenden oluşan bir mimari kullanılmıştır:
1. **Göz (Encoder):** ImageNet üzerinde önceden eğitilmiş bir **EfficientNet-B0** modeli, görüntüdeki özellikleri (nesneler, dokular, renkler) anlamak ve bunları matematiksel bir vektöre dönüştürmek için kullanılmıştır.
2. **Dil (Decoder):** Bir **LSTM (Long Short-Term Memory)** ağı, Encoder'dan gelen özellik vektörünü başlangıç noktası olarak alıp, resimle en uyumlu kelimeleri sıralı bir şekilde üreterek altyazı cümlesini oluşturur.
## 💾 Veri Seti
Model, 8,000'den fazla resim ve her resim için 5 farklı insan tarafından yazılmış 40,000'den fazla altyazı içeren **Flickr8k** veri seti üzerinde eğitilmiştir. Metin verileri, spaCy kütüphanesi ile temizlenmiş ve modelin anlayabilmesi için sayısal bir kelime dağarcığı (Vocabulary) oluşturulmuştur.
## 🚀 Sonuç ve Değerlendirme
Model, 10 epoch boyunca eğitilmiştir. Eğitim sonunda, daha önce hiç görmediği resimler için mantıklı ve tutarlı altyazılar üretebilme yeteneği kazanmıştır. Proje, aynı zamanda modelin sınırlarını da göstermektedir; model, eğitim veri setinde bulunmayan (out-of-distribution) çok karmaşık veya kültürel sahneleri yorumlamakta zorlanabilmektedir. Bu durum, yapay zeka modellerinin başarısının büyük ölçüde verinin kalitesine ve çeşitliliğine bağlı olduğunun önemli bir kanıtıdır.
Projenin son hali, Gradio ile oluşturulmuş interaktif bir web arayüzü ile sunulmuştur.
## 💻 Kullanılan Teknolojiler
* Python
* PyTorch (EfficientNet, LSTM)
* Scikit-learn, Pandas, NumPy
* Spacy (NLP için)
* Gradio (Arayüz için)
* Git & Git LFS