الرؤية الحاسوبية2017متوسط8 دقيقة قراءة
DeepLab: التجزئة الدلالية للصور بالشبكات الالتفافية العميقة والالتفاف المُوسَّع وحقول مارکوف الشرطية كاملة الاتصال
DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs
Chen, L.-C. · Papandreou, G. · Kokkinos, I. · Murphy, K. · Yuille, A. L. — IEEE TPAMI
المشكلة
الشبكات الالتفافية العميقة المُدرَّبة على تُقلّص الدقة المكانية تدريجياً من خلال طبقات التجميع والخطوة — وهذا ممتاز حين نريد معرفة «ماذا» في الصورة، لكنه كارثي حين نريد معرفة «أين». عند محاولة استخدام هذه الشبكات في التجزئة الدلالية نصطدم بثلاث مشكلات: (1) خرائط السمات الناتجة أصغر 32 مرة من الصورة الأصلية، فنخسر التفاصيل الدقيقة؛ (2) الأجسام تظهر بأحجام مختلفة جداً، لكن المرشّحات ثابتة الحجم لا ترى إلا مقياساً واحداً؛ (3) الثبات المكاني الذي يُفيد التصنيف يُشوّه حدود الأجسام تحديداً حيث يجب أن تكون التجزئة حادة على مستوى البكسل.
الإسهام
يطرح DeepLab ثلاثة حلول تعمل معاً: (1) — مرشّحات بفجوات مُتعلَّمة تُوسّع مجال الاستقبال دون تقليص الدقة أو زيادة المعاملات؛ (2) (ASPP) — التفافات مُوسَّعة تعمل بالتوازي بمعدلات تمدّد مختلفة لتلتقط الأجسام والسياق على مقاييس متعددة في آنٍ واحد؛ (3) معالجة لاحقة بحقل مارکوف الشرطي كامل الاتصال تربط تنبؤات الشبكة بتشابه الألوان والمواقع على مستوى البكسل فتستعيد حدوداً حادة للأجسام. هذه الحلول مجتمعة تحقّق 79.7% mIOU على معيار PASCAL VOC 2012.
الأثر
رسّخ DeepLab الالتفاف المُوسَّع بوصفه الأداة المعيارية ، وأغنى عن طبقات الالتفاف المقلوب. صار ASPP لبنة أساسية في معماريات التجزئة لسنوات. من هذه الورقة انبثق DeepLabv3 وDeepLabv3+ اللذان يُهيمنان اليوم على القيادة الذاتية والتصوير الطبي وتحليل صور الأقمار الاصطناعية. أفكارها المحورية — التحكّم في الدقة عبر التمدّد وتحسين الحدود بالنماذج الرسومية الاحتمالية — أثّرت في SegFormer وMask R-CNN وفي كل نظام تجزئة حديث تقريباً.
تخيّل أنك رسّام خرائط تحاول تتبّع كل مبنى وطريق وحديقة في صورة جوية. القياسي يشبه عدسة مكبّرة عادية: تُريك التفاصيل لكن في رقعة صغيرة جداً، فإن أردت رؤية السياق الأوسع عليك أن تبتعد عن الصورة — وعندها تضيع الخطوط الدقيقة التي تحتاج لرسمها.
DeepLab يمنحك عدسة مكبّرة مثقوبة: الثقوب تسمح لعينك برؤية مساحة أعرض من خلال العدسة نفسها، فترى الحدّ الدقيق والسياق المحيط في الوقت ذاته، من غير أن تبتعد عن الصورة أبداً.
بعد الرسم، يأتي مدقّق دقيق يمشي على كل حدّ رسمتَه ويسأل: هل يتطابق هذا الخط فعلاً مع تغيّر الألوان في الصورة الأصلية؟ وحيثما يجد اختلافاً، يُزيح الخط حتى يُطابق الحافة الحقيقية.
المشكلة: شبكات التصنيف تُدمّر التفاصيل المكانية
شبكات مثل VGG-16 وResNet-101 بارعة في الإجابة عن سؤال: «ما محتوى هذه الصورة؟» لكن تطرح سؤالاً أصعب: «ما هوية كل بكسل على حدة؟»
هذه الشبكات تُصغّر الصورة تدريجياً عبر طبقات و المتكررة. صورة بحجم 512×512 تتحوّل إلى بحجم 16×16 — أصغر 32 مرة. في التصنيف لا مشكلة، لأن وسم «قطة» لا يحتاج إلى موقع محدّد. لكن في التجزئة، كل بكسل من أصل 262,144 يحتاج وسمه الخاص، والتصغير يُفقدنا هذه القدرة.
تحديداً، تواجهنا ثلاث مشكلات:
-
انهيار الدقة. والخطوة المتكررة يُقلّصان خرائط السمات إلى من حجم المدخل، فتضيع المعلومات المكانية الدقيقة التي تعتمد عليها الحدود.
-
تباين المقاييس. شخص في مقدمة المشهد وسيارة في خلفيّته يشغلان أعداداً مختلفة جداً من البكسلات. ذات الحجم الثابت لا تستطيع التقاط المقياسين معاً.
-
تشويه الحدود. الثبات المكاني الذي يجعل التصنيف متيناً هو نفسه الذي يجعل الحدود المتنبَّأ بها ضبابية. التجميع يُشوّش الصورة تحديداً في المواضع التي يجب أن تكون فيها التجزئة حادة.
الحل الأول: الالتفاف المُوسَّع — رؤية أوسع بلا تصغير
كلمة «atrous» أصلها فرنسي من à trous أي «بثقوب»، والفكرة بسيطة لكنها فعّالة جداً: بدلاً من وضع أوزان المرشّح متلاصقة جنباً إلى جنب، نُباعد بينها بإدراج أصفار (ثقوب) في الفراغات.
الالتفاف القياسي بحجم 3×3 يرى رقعة 3×3 فقط. لكن حين نستخدم التفافاً مُوسَّعاً بمعدّل تمدّد ، توزَّع الأوزان التسعة نفسها على مساحة 5×5. وعند تُغطّي مساحة 9×9. النتيجة أن يتّسع دون أن نتعلّم أوزاناً إضافية أو نُقلّص خريطة السمات.
تخيّل يداً بأصابع مفرودة تضغط على رمل: الأصابع الخمسة نفسها، لكن الانفراج يجعلها تتحسّس مساحة أكبر. لا حاجة لأصابع إضافية ()، والرمل (خريطة السمات) يبقى بدقّته الكاملة.
عملياً، يأخذ DeepLab شبكة تصنيف (VGG-16 أو ResNet-101) ويحذف طبقات التجميع والخطوة الأخيرة، ثم يستبدل الالتفافات التالية بالتفافات مُوسَّعة بمعدّل أو أعلى. بهذا التعديل تُنتج الشبكة خرائط سمات بدقة بدلاً من — أي أكثف أربع مرات، وبالعدد نفسه من المُعاملات.
الحل الثاني: ASPP — التقاط الأجسام على كل مقياس
معدّل تمدّد واحد يرى مقياساً واحداً فقط. لكن مشهد شارع يحوي مشاة وسيارات ومبانٍ وسماء — أجساماً تشغل مساحات مختلفة تماماً. هنا يأتي دور التجميع الهرمي المكاني بالالتفاف المُوسَّع (ASPP): عدة التفافات مُوسَّعة تعمل بالتوازي، كلٌّ بمعدّل تمدّد مختلف (مثلاً ).
الأمر يشبه أربعة مراقبين ينظرون إلى المشهد نفسه بمناظير مضبوطة على مستويات تقريب مختلفة: الأول يرى تفاصيل ورقة شجر، والثاني يرى الشجرة كاملة، والثالث يرى البستان، والرابع يرى الغابة بأكملها. ASPP يجمع ملاحظاتهم في خريطة سمات واحدة تُدرك المقاييس المختلفة.
كل فرع يلتقط السياق على مقياسه. المعدلات الصغيرة تلتقط التفاصيل الدقيقة والأجسام الصغيرة، والمعدلات الكبيرة تلتقط السياق العام — مثل أن تعرف أن «هذه المنطقة سماء». تُسلسَل المخرجات معاً، فيحصل كل بكسل على وصف لما حوله.
الحل الثالث: حقل مارکوف الشرطي — شحذ الحدود بالاستدلال على مستوى البكسل
حتى مع استخدام الالتفاف المُوسَّع، تبقى مخرجات الشبكة ناعمة مكانياً — الحواف تخرج ضبابية لأن الالتفاف بطبيعته يحسب متوسطاً على الجوار المحلي. لكن تتغيّر بحدّة عند حدود الأجسام: بكسل يمثّل «شخصاً» والذي بجانبه مباشرة يمثّل «خلفية».
لحلّ هذه المشكلة، يستعين DeepLab بحقل مارکوف الشرطي كامل الاتصال كخطوة معالجة لاحقة. الفكرة تشبه مدقّقاً يمرّ على كل زوج بكسلات في الصورة ويطرح سؤالين:
-
تشابه اللون: هل يبدو هذان البكسلان متشابهين في الصورة الأصلية (قيم RGB متقاربة)؟ إن كانا كذلك، فعلى الأرجح ينتميان إلى الصنف نفسه.
-
القرب المكاني: هل هما قريبان من بعضهما؟ البكسلات المتجاورة ذات الألوان المتشابهة يُفترض أن تحمل الوسم ذاته.
الفارق الجوهري هنا أن حقل مارکوف الشرطي في DeepLab ليس محلياً — لا يكتفي بفحص الجيران المباشرين بل يُقارن كل بكسل بكل بكسل آخر في الصورة بأكملها. هذا ما يسمح له باستعادة البنى الرفيعة والحدود الطويلة التي تفوت النماذج المحلية.
الصورة الكاملة — خط معالجة DeepLab
نظام DeepLab الكامل يتكوّن من ثلاث مراحل متتالية:
المرحلة الأولى — بالالتفاف المُوسَّع. نأخذ شبكة تصنيف مُدرَّبة مسبقاً (VGG-16 أو ResNet-101) ونحذف طبقات التجميع الأخيرة ونستبدل الالتفافات بالتفافات مُوسَّعة. الخرج هو خريطة سمات كثيفة بدقة .
المرحلة الثانية — ASPP. نُغذّي السمات الكثيفة إلى التفافات مُوسَّعة متوازية بمعدلات ونُسلسل مخرجاتها. بعد هذه المرحلة يحمل كل بكسل سياقاً متعدد المقاييس.
المرحلة الثالثة — خريطة الدرجات + + حقل مارکوف الشرطي. التفاف يُحوّل سمات ASPP إلى درجة لكل صنف. ثم يرفع الدقة إلى الحجم الكامل. وأخيراً يُنقّح حقل مارکوف الشرطي كامل الاتصال الحدود.
انقر على أي مرحلة أدناه لتراها عملياً:
الفكرة ذاتها في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def atrous_conv2d(image, kernel, rate=1):
"""التفاف مُوسَّع ثنائي البعد: النواة نفسها، مدًى أوسع."""
H, W = image.shape
k = kernel.shape[0]
# الحجم الفعّال للنواة مع التمدّد
eff_k = k + (k - 1) * (rate - 1)
out_h, out_w = H - eff_k + 1, W - eff_k + 1
out = np.zeros((out_h, out_w))
for i in range(out_h):
for j in range(out_w):
# أخذ عيّنات بفجوات بمقدار rate بين عناصر النواة
patch = image[i:i+eff_k:rate, j:j+eff_k:rate]
out[i, j] = np.sum(patch * kernel)
return out
def aspp(feature_map, kernel, rates=[6, 12, 18, 24]):
"""التجميع الهرمي المكاني بالالتفاف المُوسَّع: سياق متعدد المقاييس."""
branches = []
for r in rates:
branch = atrous_conv2d(feature_map, kernel, rate=r)
branches.append(branch)
# عملياً: نُسلسل على محور القنوات
# هنا نحسب المتوسط للتبسيط
min_h = min(b.shape[0] for b in branches)
min_w = min(b.shape[1] for b in branches)
cropped = [b[:min_h, :min_w] for b in branches]
return np.mean(cropped, axis=0)
# rate=1 ← التفاف قياسي 3×3، يرى مساحة 3×3
# rate=2 ← الأوزان التسعة نفسها، ترى مساحة 5×5
# rate=4 ← الأوزان التسعة نفسها، ترى مساحة 9×9
# بلا معاملات إضافية. مجرد رؤية أوسع.لماذا كانت هذه الورقة مفصلية
2015
FCN — الشبكات الالتفافية بالكامل
أظهر Long وزملاؤه أن بالإمكان تحويل شبكات التصنيف الالتفافية إلى أنظمة تنبؤ كثيف، وذلك باستبدال الطبقات كاملة الاتصال بالتفافات واستخدام الالتفاف المقلوب لرفع الدقة. كان هذا أول نموذج تجزئة يعمل من طرف إلى طرف.
2015
DeepLabv1 — الالتفاف المُوسَّع + حقل مارکوف الشرطي
أول استخدام للالتفاف المُوسَّع في التجزئة مع معالجة لاحقة بحقل مارکوف الشرطي. أثبت أن هذا المزيج أفضل من الالتفاف المقلوب في استعادة حدود الأجسام.
2017
DeepLabv2 — إضافة ASPP
هذه الورقة. أُضيف ASPP متعدد المقاييس، واستُخدمت ResNet-101 شبكةً أساسية، وتحقّقت نتيجة 79.7% mIOU على معيار PASCAL VOC 2012.
2017
DeepLabv3 — تحسين ASPP بدون حقل مارکوف الشرطي
طُوّر ASPP بإضافة تسوية الدُّفعات وسمات على مستوى الصورة. تحسّن الأداء بدرجة كافية للاستغناء عن حقل مارکوف الشرطي كلياً.
2018
DeepLabv3+ — مُرمِّز ومُفكِّك بالالتفاف الفاصل المُوسَّع
أُضيفت وحدة فكّ ترميز للحصول على حدود أحدّ، واستُخدم الالتفاف الفاصل عمقياً المُوسَّع لرفع الكفاءة. يُعدّ المعيار الحالي لكثير من مهام التجزئة.
2021
SegFormer — المحوِّلات في خدمة التجزئة
استُبدل الالتفاف بمحوِّلات رؤية هرمية ومُفكِّك MLP خفيف. لم تعد هناك حاجة لحقل مارکوف الشرطي — آلية الانتباه تلتقط السياق بعيد المدى بشكل طبيعي، وهو ما كان الالتفاف المُوسَّع يسعى لتقريبه.
FCN أثبتت أن التجزئة يمكن أن تعمل من طرف إلى طرف. DeepLab أثبت أنها يمكن أن تكون دقيقة. SegFormer أثبت أنها ممكنة بلا التفاف أصلاً — لكن فلسفة ASPP في التعامل مع المقاييس المتعددة تسري في عروق كل نموذج تجزئة حديث.
المرجعChen, Papandreou, Kokkinos, Murphy, Yuille. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs. IEEE TPAMI, 2017.
مصطلحات هذه الورقة
- التجزئة الدلالية للصورةSemantic Segmentation
- الالتفاف المُوسَّعAtrous Convolution
- الالتفاف المتوسِّعDilated Convolution
- الحقل الاستقبالي للعصبونReceptive Field
- خريطة السماتFeature Map
- الحقل العشوائي الشرطيConditional Random Field
- التجميع الهرمي المكاني بالالتفاف المُوسَّعAtrous Spatial Pyramid Pooling
- شبكة التفافية كاملةFully Convolutional Network
- التنبؤ الكثيفDense Prediction
- رفع الدقةUpsampling
- التجميع المكانيPooling
- خطوة التخطّي الحسابيةStride
- متعدد المقاييسMulti-Scale
- الاستيفاء الثنائي الخطيBilinear Interpolation