Fréchet Inception Distance (FID)
يقيّم مقياس مسافة فريشيه لإنسيبشن (FID) الصور المولّدة عبر مقارنة إحصاءات ميزات Inception فيها بإحصاءات الصور الحقيقية. تعرّف على كيفية حسابه ومقارنته.
مسافة فرشيه إنسبشن (FID) مقياس يقيّم نموذجًا توليديًا للصور بمقارنة إحصاءات صوره المُنشأة بإحصاءات الصور الحقيقية. وتمر المجموعتان عبر شبكة Inception v3 مدرّبة مسبقًا، ثم تُلخّص سمات كل مجموعة بتوزيع غاوسي متعدد المتغيرات له متوسط ومصفوفة تغاير، وتكون FID هي مسافة فرشيه بين التوزيعين الغاوسيين. والقيمة الأقل أفضل، وتعني الدرجة صفرًا تطابق متوسطات السمات وتغايراتها في المجموعتين. قدّم مارتن هويزل وزملاؤه في جامعة يوهانس كيبلر في لينتس مقياس FID عام 2017 في ورقتهم تتقارب شبكات GAN المدرّبة بقاعدة تحديث ذات مقياسين زمنيين إلى توازن ناش محلي، وسرعان ما حل محل درجة Inception بوصفه المقياس القياسي لـالشبكات التوليدية التنافسية (GANs) ثم نماذج الانتشار.
كيفية حساب FID#
- أنشئ عينة كبيرة من الصور، يبلغ حجمها المتعارف عليه 50,000 صورة، واجمع مجموعة مرجعية من الصور الحقيقية، وعادةً ما تكون مجموعة التدريب.
- غيّر حجم كل صورة إلى 299 x 299 بكسل ومررها عبر Inception v3، وهي شبكة عصبية التفافية دُرّبت على تصنيف الصور باستخدام ImageNet، واحتفظ بمخرج طبقة التجميع الأخيرة ذي الأبعاد البالغة 2,048 بوصفه تمثيل الصورة.
- احسب متجه المتوسط ومصفوفة التغاير لتضمينات الصور الحقيقية ولتضمينات الصور المولّدة.
- ادمجها: FID = (مربع المسافة بين المتوسطين) + الأثر(C_real + C_gen - 2 × sqrt(C_real × C_gen))، حيث sqrt هو الجذر التربيعي للمصفوفة.
يزداد الحد الأول عندما تختلف الصور المُنشأة عن الصور الحقيقية في المتوسط، مثل اختلاف درجة اللون أو عدم ملاءمة مزيج المحتوى. ويزداد الحد الثاني عندما يكون التنوع غير مناسب، كما في انهيار الأنماط، وهو إخفاق في GAN ينتج فيه المولّد أنواعًا قليلة فقط من المخرجات. وهكذا يعكس رقم واحد الوفاء والتنوع معًا، وهو ما جعل FID الدرجة الافتراضية لأنظمة تحويل النص إلى صورة مثل Stable Diffusion.
الحساب نفسه باستخدام NumPy، على متجهات سمات محاكاة ذات 64 بُعداً:
import numpy as np
rng = np.random.default_rng(0)
# Simulated 64-D feature vectors for 5,000 real and 5,000 generated images
real = rng.normal(0.0, 1.0, size=(5000, 64))
generated = rng.normal(0.3, 0.8, size=(5000, 64)) # shifted mean, less variety
# Summarize each set as a Gaussian: a mean vector and a covariance matrix
mu_r, mu_g = real.mean(axis=0), generated.mean(axis=0)
cov_r, cov_g = np.cov(real, rowvar=False), np.cov(generated, rowvar=False)
# Trace of the matrix square root of cov_r @ cov_g, via its eigenvalues
tr_covmean = np.sqrt(np.linalg.eigvals(cov_r @ cov_g)).real.sum()
# FID = squared distance between means + covariance mismatch
fid = ((mu_r - mu_g) ** 2).sum() + np.trace(cov_r) + np.trace(cov_g) - 2 * tr_covmean
print(f"FID: {fid:.2f}")يطبع البرنامج قيمة FID تبلغ 8.78. ويسهم المتوسط المنزاح بنحو 5.8، ويسهم الانتشار الأضيق بنحو 2.6، أما النصف نقطة المتبقية فتأتي من تقدير الإحصاءات بعينة محدودة، ما يرفع FID دائماً. وفي التقييمات الفعلية، تحسب مكتبات مثل TorchMetrics FID السمات باستخدام أوزان Inception الأصلية من TensorFlow التي نُشرت مع المقياس. أما Inception v3 في Torchvision، المدرّب على ImageNet، فله أوزان مختلفة، ولا يمكن مقارنة نتائجه بالنتائج المنشورة.
قراءة درجات FID ومقارنتها#
لا يمكن مقارنة قيم FID إلا في ظروف متطابقة: المجموعة المرجعية نفسها، ودقة الصور نفسها، وعدد العينات نفسه، والمعالجة المسبقة نفسها. وقد يؤدي تغيير مكتبة تغيير حجم الصور أو حفظها بصيغة JPEG إلى انحراف الدرجة عدة نقاط، وهي مشكلة دفعت إلى تطوير تطبيق Clean-FID. ولأن العينات القليلة ترفع الدرجة، يوصي المؤلفون الأصليون باستخدام 10,000 صورة على الأقل، ولا تجوز مقارنة درجة محسوبة من 5,000 عينة بأخرى محسوبة من 50,000 عينة.
للمقارنة، حقق StyleGAN2 درجة FID تبلغ 2.84 على صور وجوه بدقة 1024 x 1024 من مجموعة بيانات FFHQ، وفي توليد النص إلى الصورة من دون أمثلة مسبقة على 30,000 وصف من MS-COCO، سجل نموذج Imagen من Google درجة 7.27 مقابل 10.39 لنموذج DALL-E 2.
مقاييس أخرى لتقييم الصور التوليدية#
- درجة Inception (IS): تقيّم الصور المُنشأة وحدها، بناءً على مدى ثقة Inception وتنوع تصنيفاته لها. ولا تنظر مطلقًا إلى البيانات الحقيقية، لذا لا يمكنها كشف نموذج ينتج صورًا واضحة لكنها من النوع الخطأ.
- مسافة نواة Inception (KID): تقارن سمات Inception نفسها باستخدام مقدّر نواة غير متحيز، ما يجعلها أكثر موثوقية عند صغر حجم العينة.
- درجة CLIP: تقيس مدى تطابق الصورة مع موجهها النصي، وهو ما لا يلتقطه FID، لذا تعرض نماذج تحويل النص إلى صورة القيمتين عادةً.
- الدقة والاستدعاء للنماذج التوليدية: تقسّمان رقم FID الواحد إلى الوفاء، أي نسبة الصور المُنشأة التي تبدو حقيقية، والتغطية، أي نسبة التنوع الحقيقي التي يعيد النموذج إنتاجها.
- FD-DINOv2: تحسب مسافة فرشيه نفسها على سمات DINOv2، وهو محوّل للرؤية مدرّب ذاتيًا. اقترحها جورج شتاين وزملاؤه عام 2023 بعد أن وجدت دراسة بشرية واسعة أن FID لا يعكس مدى واقعية صور نماذج الانتشار في تقييم الناس.
تستخدم نماذج الفيديو الفكرة نفسها مع مسافة فرشيه للفيديو، كما تفصل مجموعات الاختبار مثل VBench جودة الفيديو إلى أبعاد منفصلة بدلًا من استخدام مسافة واحدة.
FID لبيانات التدريب الاصطناعية#
يُستخدم FID أيضًا لفحص البيانات الاصطناعية قبل استخدامها لتدريب كاشف. ويكشف تقييم الصور المُنشأة لمشاهد نادرة، مثل القيادة ليلًا في رؤية السيارات أو عيوب منتجات محددة في كشف العيوب، مقابل صور حقيقية من كاميرا النشر، فجوة المجال قبل إنفاق أي وقت على التدريب. والفحص النهائي هو الدقة في المهام اللاحقة: درّب Ultralytics YOLO26 مع الصور الاصطناعية ومن دونها، ثم قارن متوسط الدقة المتوسطة (mAP) على صور حقيقية محجوبة نفسها في وضع التحقق.










