Skip to content

yiboTR/pytorch-image-captioning

Repository files navigation

# 🖼️ 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

About

Encoder-Decoder mimarisi ve Transfer Learning kullanarak görüntüler için otomatik altyazı üreten derin öğrenme projesi.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors