إسماعيل بن علا

U-Net Image Segmentation

ست متغيرات للتجزئة مقيسة على البيانات نفسها

الرؤية الحاسوبية · أكتوبر 2026 · مكتمل

أي خيارات تصميم U-Net تهم فعلاً: وصلات التخطي، والتجميع، وعمق الكتل، والمتبقيات، كل منها راية ورقم.

التقنياتPyTorchtorchvisionpytestMatplotlibNumPyKaggleGoogle Colab

U-Net Image Segmentation — نظرة عامة

نظرة عامة

بدأ هذا كدفتر واجب دراسي في الرؤية الحاسوبية يطرح أربعة أسئلة عن U-Net: هل يتفوق التجميع الأقصى (max-pooling) على الالتفاف بخطوة (strided convolution)، وكم تضيف وصلات التخطي (skip connections)، وكيف يقارَن مشفّر-مفكّك بشبكة كاملة الاتصال، وكيف ينبغي اختيار عتبة الاستدلال. أعدت بناءه كحزمة يكون فيها كل سؤال راية (flag) واحدة، والنماذج صغيرة (1 إلى 2M معلمة، دقائق لكل تشغيل على CPU)، ويُعاد قياس كل إجابة بـ IoU وDice بدلاً من دقة البكسل.

ستة إعدادات مسبقة تتشارك فئة EncoderDecoder واحدة: U-Net العادي، ونسخة بالالتفاف بخطوة، ونسخة بالتفاف مفرد، ونسخة متبقية، ونموذج شبيه بـ SegNet بلا وصلات تخطٍّ، وخط أساس كامل الاتصال مكوّن من طبقات Linear فقط. تتدرب كلها على الأشكال الاصطناعية نفسها وعلى مجموعة فرعية من Oxford-IIIT Pet، بخسارة BCE + Dice، وتُقيَّم من مصفوفة التباس واحدة. ومسح للعتبة على قسم التحقق يختار الحد الفاصل، لا على قسم الاختبار أبداً.

على الأشكال يبلغ U-Net العادي IoU اختبار قدره 0.560 مقابل 0.422 للالتفافات بخطوة و0.489 بلا وصلات تخطٍّ؛ ويسجل النموذج كامل الاتصال 0.102 بعشرة أضعاف المعلمات. وعلى صور الحيوانات الأليفة يتصدر U-Net المتبقي بـ0.679، ثم U-Net بـ0.641، وبلا وصلات تخطٍّ 0.630، وكامل الاتصال 0.524. كشف نقل الدفتر أيضاً أن مجموعتي التحقق والاختبار فيه كانتا معزَّزتين، وأن مسح العتبة فيه جرى على المدى 40 إلى 80 بدلاً من 0.40 إلى 0.80، وأن نموذجه كامل الاتصال كان ينتهي بـ ReLU يمنع الـ logits السالبة.

السؤال

ماذا تضيف وصلات التخطي والتجميع الأقصى والالتفافات المزدوجة والكتل المتبقية، كلٌّ على حدة، إلى شبكة تجزئة، عندما يُدرَّب كل متغير على البيانات نفسها ويُقيَّم بالمقياس نفسه؟

أهم الميزات

كيف يعمل

  1. تقليل الدقة أربع مرات

    كتلة ConvBlock ابتدائية تليها أربع خطوات نزول تنصّف الدقة في كل مرة، بتجميع أقصى 2 × 2 ثابت أو التفاف 3 × 3 متعلَّم بخطوة 2، مع التفاف واحد أو اثنين في كل كتلة ومسار متبقٍّ اختياري.

  2. رفع الدقة والضم

    أربع خطوات ConvTranspose 2 × 2 تعيد عنق الزجاجة إلى الحجم الكامل؛ مع تفعيل وصلات التخطي تضم كل خطوة خريطة المشفّر ذات الحجم نفسه، ومع تعطيلها لا يرى المفكّك سوى عنق الزجاجة.

  3. أو الاستغناء عن الالتفافات

    يسطّح خط الأساس كامل الاتصال الصورة، ويمررها عبر مكدس من طبقات Linear، ويعيد تشكيل المخرج، فلا يملك أي محلية ولا أي تسلسل هرمي على الإطلاق.

  4. التدريب بـ BCE + Dice

    AdamW بإحماء وتناقص جيب التمام، ودفعة 16، وصور 96 px؛ تقيّم BCE كل بكسل ويقيّم Dice الناعم التداخل، ما يدفع الاحتمالات نحو 0 أو 1.

  5. التقييم واختيار العتبة

    الاحتمالات فوق عتبة ما تصبح القناع؛ وتُقرأ IoU وDice والدقة والاستدعاء من مصفوفة التباس واحدة، وتُمسح العتبة على قسم التحقق قبل تقييم قسم الاختبار.

أمثلة

U-Net على الأشكال الاصطناعية، إطار لكل حقبة: الأخضر بكسلات الجسم الصحيحة، والأحمر الإيجابيات الكاذبة، والأزرق البكسلات الفائتة. الشبكة غير المدرَّبة تلوّن كل شيء تقريباً بالأحمر؛ وبحلول الحقبة الأخيرة يتبع القناع الحدود.
نفس U-Net على صور Oxford-IIIT Pet، حقبة بحقبة: ينتقل القناع إلى الحيوان خلال حقب قليلة، وأعادت هذه الإعادة إنتاج IoU الاختبار 0.641 الوارد في الجدول بالضبط.
صور الاختبار نفسها عبر كل متغير، مع IoU لكل صورة تحت كل لوحة. يفوّت النموذج بخطوة مثلثات صغيرة كاملة، ويحوّل النموذج بلا وصلات تخطٍّ الأشكال إلى بقع مستديرة، ويلوّن النموذج كامل الاتصال ضجيجاً حيث تميل الأجسام إلى الوجود.
صور الاختبار نفسها عبر كل متغير، مع IoU لكل صورة تحت كل لوحة. يفوّت النموذج بخطوة مثلثات صغيرة كاملة، ويحوّل النموذج بلا وصلات تخطٍّ الأشكال إلى بقع مستديرة، ويلوّن النموذج كامل الاتصال ضجيجاً حيث تميل الأجسام إلى الوجود.
صور الحيوانات الأليفة عبر U-Net وU-Net المتبقي والنموذج بلا وصلات تخطٍّ وخط الأساس كامل الاتصال. تجد شبكات U-Net الحيوان (استدعاء نحو 0.85) لكنها تلوّن أيضاً خلفية ذات لون مشابه؛ ويتنبأ النموذج كامل الاتصال ببقعة في المنتصف أياً كانت الوضعية.
صور الحيوانات الأليفة عبر U-Net وU-Net المتبقي والنموذج بلا وصلات تخطٍّ وخط الأساس كامل الاتصال. تجد شبكات U-Net الحيوان (استدعاء نحو 0.85) لكنها تلوّن أيضاً خلفية ذات لون مشابه؛ ويتنبأ النموذج كامل الاتصال ببقعة في المنتصف أياً كانت الوضعية.
IoU التحقق وخسارة التدريب لكل حقبة للمتغيرات الستة على الأشكال. يهبط IoU النموذج كامل الاتصال بعد الحقبة 2 حين يبدأ في حفظ صور التدريب الـ600.
IoU التحقق وخسارة التدريب لكل حقبة للمتغيرات الستة على الأشكال. يهبط IoU النموذج كامل الاتصال بعد الحقبة 2 حين يبدأ في حفظ صور التدريب الـ600.

المدخل

unetseg-data shapes && python scripts/compare_all.py --data data/shapes --epochs 6 --max-train 600 --threads 1 --out runs/shapes

المخرج

test IoU: unet-single 0.660, unet-residual 0.633, unet 0.560, segnet 0.489, unet-strided 0.422, fcn 0.102 (Dice 0.796, 0.775, 0.718, 0.657, 0.593, 0.184); pixel accuracy above 0.83 for every model, including fcn.

التشغيل وراء جدول الأشكال: 600 صورة تدريب بحجم 96 px، و6 حقب، وBCE + Dice، و2 إلى 11 دقيقة لكل نموذج على خيط CPU واحد.

التقنيات المستخدمة

ما تعلمته

الحدود

الكلمات المفتاحية

U-Net · تجزئة الصور · التجزئة الثنائية · وصلات التخطي · التجميع الأقصى مقابل الالتفاف بخطوة · الكتل المتبقية · SegNet · شبكة التفافية كاملة · خسارة Dice · IoU · مسح العتبة · Oxford-IIIT Pet · PyTorch · الرؤية الحاسوبية · التعلم العميق