تعرف على كيفية مزج Neural Style Transfer (NST) لمحتوى الصور مع الأساليب الفنية باستخدام CNNs. اكتشف استخداماته في زيادة البيانات والذكاء الاصطناعي الإبداعي في Ultralytics.
نقل النمط العصبي (NST) هو تقنية تحسين متطورة في مجال الرؤية الحاسوبية تتيح للذكاء الاصطناعي مزج المحتوى المرئي لصورة ما مع النمط الفني لصورة أخرى. من خلال الاستفادة من الشبكات العصبية العميقة ، وتحديداً الشبكات العصبية التلافيفية (CNNs)، يقوم هذا الخوارزمية بتركيب صورة جديدة تحتفظ بالتفاصيل الهيكلية لصورة "محتوى" (مثل منظر المدينة) مع تطبيق القوام والألوان وضربات الفرشاة المرجعية "للأسلوب" (مثل لوحة شهيرة). تعمل هذه العملية على سد الفجوة بين استخراج الميزات الإحصائية منخفضة المستوى و الإبداع الفني عالي المستوى، مما يسمح بإنشاء صور فريدة ومتقنة.
تعتمد الآلية الكامنة وراء NST على قدرة الشبكة العميقة على فصل المحتوى عن الأسلوب. عندما تمر الصورة عبر شبكة مدربة مسبقًا — عادةً ما تكون بنية VGG المدربة على ImageNet الضخمة — تستخرج الطبقات المختلفة أنواعًا مختلفة من المعلومات. تلتقط الطبقات المبكرة التفاصيل منخفضة المستوى مثل الحواف والأنسجة، بينما تمثل الطبقات الأعمق المحتوى الدلالي والأشكال عالية المستوى.
تتضمن عملية NST، التي تم تفصيلها لأول مرة في بحث أجراه Gatys et al.، خوارزمية تحسين تعمل بشكل متكرر على تعديل صورة ضوضاء عشوائية لتقليل قيمتي خطأ متميزتين في وقت واحد:
على عكس التدريب النموذجي القياسي، حيث يتم تحديث أوزان الشبكة ، يقوم NST بتجميد أوزان الشبكة وتحديث قيم البكسل للصورة المدخلة نفسها حتى يتم تقليل وظائف الخسارة إلى الحد الأدنى.
على الرغم من أن NST اشتهرت في البداية بفضل إنشائها للفلاتر الفنية، إلا أن لها فائدة عملية تتجاوز الجماليات في مجال الذكاء الاصطناعي الأوسع نطاقًا .
من المهم التمييز بين نقل النمط العصبي وتقنيات إنشاء الصور الأخرى الموجودة في Ultralytics :
يتمثل جوهر NST في تحميل نموذج مدرب مسبقًا للوصول إلى طبقات ميزاته الداخلية. في حين أن أجهزة الكشف الحديثة مثل YOLO26 مُحسّنة من حيث السرعة والدقة في الكشف، تظل البنى مثل VGG-19 هي المعيار لنقل الأنماط نظرًا لتسلسل ميزاتها المحدد .
ما يلي PyTorch كيفية تحميل نموذج أساسي يستخدم عادةً في مرحلة استخراج الميزات في NST:
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.")
بالنسبة للمستخدمين الذين يرغبون في إدارة مجموعات البيانات المعززة بنقل الأنماط أو تدريب نماذج الكشف النهائية، توفر Ultralytics بيئة مركزية لتعليق مجموعات البيانات وإصدار الإصدارات ونشر النماذج.