Geliştirici: Ayşenur Arslan
Tarih: 16.04.2025
Bu proje, kullanıcının sağladığı görüntülerdeki nesneleri tanımlayarak, bu nesnelerle ilgili bilgilerin web üzerinden araştırılıp sunulduğu bir yapay zeka uygulamasıdır. Uygulama, CLI (komut satırı arayüzü) üzerinden çalışır ve kullanıcı dostu bir deneyim sunar.
Projenin temel amacı, kullanıcıların görüntülerdeki nesneler hakkında hızlı ve kapsamlı bilgiye erişmesini sağlamaktır.
- URL veya yerel dosyadan görüntü alma
- Nesne tespiti ve önceliklendirme
- Anahtar kelime çıkarımı
- Web araması ve içerik sunumu
- Sohbet geçmişi ile bağlamsal süreklilik
- Kullanıcı görüntü URL’si veya dosya yolu girer
- Görüntü alınır ve ön işleme yapılır
- Nesneler tespit edilir, en belirgin nesne belirlenir
- Nesne adı Türkçe’ye çevrilir
- Anahtar kelimeler oluşturulur
- Web araması gerçekleştirilir
- İçerik çıkarılır ve sunulur
- Sonuçlar kaydedilir
- Yeni görüntü veya çıkış seçeneği sunulur
Dil: Python
Kütüphaneler:
PIL– Görüntü işlemenltk,spaCy– Doğal dil işlemetransformers– Büyük dil modellerirequests– HTTP istekleriultralytics– YOLOv8 nesne tanımafiftyone– Görselleştirme ve veri yönetimi
Modüler ve nesne yönelimli mimari:
main.py– Uygulama giriş noktasıimage_processor.py– Görüntü alma ve ön işlemeobject_detector.py– Nesne tespitikeyword_extractor.py– Anahtar kelime çıkarımıtranslator.py– Çeviri işlemleriweb_searcher.py– Web aramasıdata_storage.py– Geçmiş veri yönetimi
- URL ve dosya girişi desteği
- RGB dönüşümü, kontrast artırma (1.5x)
- Yeniden boyutlandırma: 640x640
- LANCZOS örnekleme
- Model: YOLOv8x ve özel eğitimli YOLOv8l
- Veri seti: Open Images (2000 örnek, 80/20 split)
- Eğitim: 100 epoch, Adam optimizer, LR: 0.001 → 0.01, çeşitli augmentasyonlar
- Ensemble: YOLOv8x (1.4 ağırlık), özel model (1.2 ağırlık)
- Güven skoru (%25)
- Nesne boyutu (%25)
- Merkeze yakınlık (%15)
- Önemli nesne (%40 bonus)
- Bounding box
- Ana nesne vurgusu
- Tespit edilen model ve skor gösterimi
- LLM (BERTurk, Transformers, cosine similarity)
- Kural tabanlı sistem (kategori & nitelik sözlükleri)
- NLP araçları: SpaCy, WordNet
- Önceki sorgu geçmişi tutulur (son 10)
- Kategorik benzerlik analizleri yapılır
spaCymodelleri:en_core_web_md,tr_core_news_mdsentence-transformersçok dilli model yedeği
- Alternatif yöntemlerle çalışabilirlik
- Varsayılan anahtar kelimelerle devam edebilme
- Arama motorları:
Serper.dev,DuckDuckGo - Dil tercihi: Türkçe öncelikli
- Kategoriye göre özelleştirilmiş sorgular
- Arama geçmişi optimizasyonu
- Sayfa içeriğinden bilgi çıkarımı
- Otomatik özetleme (max 4000 karakter)
- HTML temizleme
- Wikipedia entegrasyonu
- NLP tabanlı özetleme
- JSON formatında veri
- Zaman damgası, nesne, anahtar kelime, içerik
- UTF-8 desteği
- Varsayılan dosya:
data/history.json - Otomatik dosya oluşturma
- Geçmiş veriye erişim
- Dosya hataları için try-except
- Log kayıtları
- İngilizce nesneler Türkçe’ye çevrilir
- Yerel sözlük: 300+ nesne adı
- Google Translate ve LibreTranslate API entegrasyonu
- Kategori tabanlı çeviri doğruluğu
- CLI tabanlı etkileşim
argparseile komut satırı parametreleri- Emoji ve görsel bildirim desteği
- Kullanıcı yönlendirmesi ve hata mesajları
- Tüm modüllerde
try-except - Konsol ve dosya loglama
- Hatalarda kullanıcıya yönlendirme (yeniden dene/görüntü gir/çıkış)
pip install pillow nltk spacy transformers requests ultralytics
python -m spacy download en_core_web_md
python -m spacy download tr_core_news_md
python main.py --source https://example.com/image.jpg
python main.py --source images/sample.jpg
goruntu_analizi_sohbet_uygulamasi/
├── main.py
├── modules/
│ ├── image_processor.py
│ ├── object_detector.py
│ ├── keyword_extractor.py
│ ├── translator.py
│ ├── web_searcher.py
│ └── data_storage.py
├── data/
│ └── history.json
├── models/
│ └── best.pt
├── app.log
└── egitilmis_yolo.ipynb