Neural Style Transfer
Sinirsel Stil Aktarımının (NST) CNN'leri kullanarak görüntü içeriğini sanatsal stillerle nasıl harmanladığını öğren. Ultralytics'te veri artırma ve yaratıcı AI alanlarındaki kullanımını keşfet.
Sinirsel Stil Transferi (NST), bilgisayarlı görü alanında, bir görüntünün görsel içeriğini başka bir görüntünün sanatsal stiliyle birleştirmeyi sağlayan gelişmiş bir optimizasyon tekniğidir. Özellikle Evrişimli Sinir Ağlarından (CNNs) yararlanan bu algoritma, "içerik" fotoğrafının (örneğin bir şehir manzarasının) yapısal ayrıntılarını korurken "stil" referansının (örneğin ünlü bir tablonun) dokularını, renklerini ve fırça darbelerini uygulayan yeni bir çıktı görüntüsü sentezler. Bu süreç, düşük seviyeli istatistiksel özellik çıkarımı ile yüksek seviyeli sanatsal yaratıcılık arasındaki boşluğu etkili bir şekilde kapatarak benzersiz, stilize görsellerin oluşturulmasını sağlar.
Sinirsel Stil Transferi Nasıl Çalışır?#
NST'nin arkasındaki mekanizma, derin bir ağın içeriği stilden ayırabilme yeteneğine dayanır. Bir görüntü, genellikle büyük ImageNet veri kümesi üzerinde eğitilmiş VGG mimarisi gibi önceden eğitilmiş bir ağdan geçirildiğinde, farklı katmanlar farklı bilgi türlerini çıkarır. İlk katmanlar kenarlar ve dokular gibi düşük seviyeli ayrıntıları yakalarken daha derin katmanlar yüksek seviyeli anlamsal içeriği ve şekilleri temsil eder.
İlk olarak Gatys ve arkadaşlarının araştırmasında ayrıntılı olarak açıklanan NST süreci, iki farklı hata değerini aynı anda en aza indirmek için rastgele bir gürültü görüntüsünü yinelemeli olarak değiştiren bir optimizasyon algoritmasını içerir:
- İçerik Kaybı: Bu metrik, oluşturulan görüntü ile özgün içerik fotoğrafı arasındaki üst düzey özellik haritalarının farkını hesaplar. Sahnedeki nesnelerin ve yerleşimin tanınabilir kalmasını sağlar.
- Stil Kaybı: Bu metrik, oluşturulan görüntü ile stil referansı arasındaki doku korelasyonlarının farkını ölçer. İstatistiksel özellik dağılımını yakalamak için genellikle bir Gram matrisi kullanır ve böylece uzamsal düzenlemeden bağımsız olarak "stili" temsil eder.
Ağ ağırlıklarının güncellendiği standart model eğitiminden farklı olarak NST, ağ ağırlıklarını sabit tutar ve kayıp işlevleri en aza indirilene kadar giriş görüntüsünün piksel değerlerini günceller.
Gerçek Dünya Uygulamaları#
Başlangıçta sanatsal filtreler oluşturmak için popülerleşen NST, daha geniş yapay zeka ekosisteminde estetiğin ötesinde pratik kullanım alanlarına sahiptir.
- Veri Artırma: Geliştiriciler, dayanıklı modelleri eğitmek için NST'yi sentetik veri oluşturmak amacıyla kullanabilir. Örneğin, çeşitli hava durumu stillerini (yağmur, sis, gece) gündüz sürüş görüntülerine uygulamak, milyonlarca gerçek dünya örneği toplamaya gerek kalmadan otonom araç sistemlerinin farklı çevre koşullarını yönetmek üzere eğitilmesine yardımcı olabilir.
- Yaratıcı Araçlar ve Tasarım: NST, modern fotoğraf düzenleme yazılımlarındaki ve mobil uygulamalardaki özelliklere güç vererek kullanıcıların sanatsal filtreleri anında uygulamasını sağlar. Profesyonel tasarımda ise 3B modelleme ve sanal ortamlar için doku aktarımına yardımcı olur.
Diğer Üretken Kavramlarla İlişkisi#
Sinirsel Stil Transferini Ultralytics Sözlüğünde yer alan diğer görüntü oluşturma tekniklerinden ayırmak önemlidir:
- NST ve Üretici Çekişmeli Ağlar (GANs) karşılaştırması: NST, genellikle belirli bir girdi çiftine (biri içerik, diğeri stil olmak üzere) dayalı tek bir görüntüyü optimize eder ve görüntü başına çoğunlukla daha yavaştır. Buna karşılık GANs, tüm alanlar arasındaki eşlemeyi öğrenir (örneğin tüm atları zebralara dönüştürmek) ve eğitildikten sonra görüntüleri neredeyse anında oluşturabilir.
- NST ve Transfer Öğrenimi karşılaştırması: Her ikisi de önceden eğitilmiş ağları kullansa da transfer öğrenimi, yeni bir görevi gerçekleştirmek için bir modelin ağırlıklarının ince ayarını yapmayı içerir (örneğin bir sınıflandırıcıyı arabaları algılayacak şekilde kullanmak). NST ise piksel değerlerinin değiştirilmesine rehberlik etmek için önceden eğitilmiş modeli yalnızca bir özellik çıkarıcı olarak kullanır.
Özellik Çıkarma Uygulaması#
NST'nin temelinde, dahili özellik katmanlarına erişmek için önceden eğitilmiş bir modelin yüklenmesi yer alır. YOLO26 gibi modern nesne algılayıcılar algılama hızına ve doğruluğuna göre optimize edilirken VGG-19 gibi mimariler, kendilerine özgü özellik hiyerarşileri nedeniyle stil aktarımı için standart olmaya devam eder.
Aşağıdaki PyTorch örneği, NST'nin özellik çıkarma aşamasında yaygın olarak kullanılan bir model omurgasının nasıl yükleneceğini gösterir:
import torchvision.models as models
# Load VGG19, a standard backbone for Neural Style Transfer
# We use the 'features' module to access the convolutional layers
vgg = models.vgg19(weights=models.VGG19_Weights.DEFAULT).features
# Freeze parameters: NST updates the image pixels, not the model weights
for param in vgg.parameters():
param.requires_grad = False
print("VGG19 loaded. Ready to extract content and style features.")Stil aktarımıyla artırılmış veri kümelerini yönetmek veya sonraki aşamalarda kullanılacak algılama modellerini eğitmek isteyen kullanıcılar için Ultralytics Platformu, veri kümesi açıklaması, sürüm oluşturma ve model dağıtımı için merkezi bir ortam sağlar.









