https://github.com/ahmetfurkandemir/neural-style-transfer
Neural Style Transfer
https://github.com/ahmetfurkandemir/neural-style-transfer
Last synced: 6 months ago
JSON representation
Neural Style Transfer
- Host: GitHub
- URL: https://github.com/ahmetfurkandemir/neural-style-transfer
- Owner: AhmetFurkanDEMIR
- Created: 2020-04-08T19:38:31.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-09T09:58:02.000Z (over 5 years ago)
- Last Synced: 2025-04-15T21:52:05.897Z (6 months ago)
- Language: Python
- Size: 1.57 MB
- Stars: 16
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README



# Neural Style Transfer
* Sinirsel stil aktarımı, hedef resmin içeriğini koruyarak referans resmin stilini aktarmaktır.
* stil: farklı uzamsal ölçeklerde resmin dokuları, renkleri ve görsel örüntüleri anlamına gelmektedir.
* özgün resmin içeriğini kaybetmeden referans resmin stilini uydurmak istiyoruz.
* Eğer içerik ve stii matematiksel olarak ifade edebilirsek, aşağıdaki gibi bir kayıp fonksiyonu enküçültülebilir.
loss = distance(style(reference_image) - style(generated_image)) +
distance(content(original_image) - content(generated_image))
* Burda distance L2 gibi bir norm fonksiyonu content resmi alıp onun içeriğini hesaplayan bir fonksiyon ve style resmi alıp onun stilinin gösterimini hesaplayan fonksiyondur.
* Gatsys vd. derin evrişimli sinir ağlarının content ve style fonksiyonlarını tanımlamak için bir yol sunduğunu gözlemlemişlerdir. şimdi bunun nasıl olabileceğine bakalım.# Content Kaybı
* İçerik kaybı olarak, hedef resim ve üretilen resmin öneğitimli bir evrişimli sinir ağının sonlarındaki katmanların aktivasyonlarının L2 normu iyi bir adaydır.
* Bu son katmanlardaki aktivasyonlara bakarak üretilen resmin hedef resme benzemesini sağlayacaktır.
* Eğer son katmanların gördüğü şeylerin girdi hedef resmin içeriği olduğunu kabul edersek, resmin içeriğini korumasını sağlar.# Style kaybı
* Stilini alacağınız referans resmin evrişimli sinir ağı tarafından çıkarılan tüm ölçeklerdeki görünüşümü yakalamaya çalışırsınız.
* Stil kaybı referans resimle hedef resim arasında farklı katmanların aktivasyonlarının iç korelasyonlarını korumayı hedefler.# Keras 'ta Sinirsel Stil Aktarımı
* Bu örneğimizde VGG19 öneğitimli evrişimli sinir ağını kullanarak Sinirsel Stil Aktarımını gerçekleştirdik. süreç şu şekilde olacaktır :
* Referans resim, hedef resim ve üretilen resmin VGG19 aktivasyonlarını aynı anda hesaplayan bir ağ hesaplayalım.
* Enküçülterek stil aktarımını sağlayacağınız daha önce tanımladığınız kaybı tanımlamak için bu üç resim üzerinde hesaplanan katman aktivasyonlarını kullanalım.
*Kayıp fonksiyonunu enküçültmek için gradyan inişini kullanın* Değişkenlerin Tanımlanması :

* Yardımcı Fonksiyonlar :

* Öneğitimli VGG19 ağını yüklemek ve üç resme uygulama :

* İçerik kaybı (hedef resimle üretilen resmin birbirine benzemesini sağlayacak içerik kaybı) :

* Stil kaybı :

* Toplam Değişim Kaybı :

* Enküçülteceğimiz Kaybı Tanımlamak :

* Gradyan İnişi Sürecini Oluşturmak :

* Stil Aktarımı Döngüsü :

# Sinirsel Stil Aktarımını kullanark Sonuçlara Bakalım



# Özet
* Stil Aktarımı, hedef resmin içeriğini kaybetmeden referans resmin stilinin aktarılmasıdır
* İçerik, evrişimli sinir ağının son katmanlarında yakalanabilir.
* Stil, evrişimli sinir ağının farklı katmanlarının aktivasyonlarının iç korelasyonuyla yakalanabilir.
* Sonuçta derin öğrenme,öneğitimli bir evrişimli sinir ağında kayıp fonksiyonu tanımlayarak ve kaybı eniyileyerek stil aktarımı yapılmasını sağlar.# Kaynak
* https://keras.io/examples/neural_style_transfer/
* https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438 (Sayfa 306-315)