حتى الأن تعرفنا على تقنيات متعددة لها دور أساسي في مهام التعرف على الأنماط و تصنيف الصور . كما قد شاهدنا كيف تقوم شبكات اللف الرياضي العصبية بتصنيف الصور. في هذه المقالة سنتعرف على شبكة اللف الرياضي العصبية الإقليمية (Regional CNN) التي بوسعها تصنيف أكثر من جسم في الصورة ، سنبدأ حديثنا عن تصنيف و موضعة جسم واحد في الصورة ( و الموضعة تعني تحديد مكان الجسم في الصورة ) وذلك عن طريق حصر الجسم داخل صندوق . و يتم هذه بشكل عام عن طريق تحليل الصورة و تقسيمها إلى مناطق صغيرة. بعد ذلك سنتعرف على شبكة اللف الرياضي العصبية الإقليمية (Regional CNN) ، يليها شبكة اللف الرياضي العصبية الإقليمية السريعة (Fast Regional CNN) و و أخيراَ سننتقل إلى شبكة اللف الرياضي العصبية الإقليمية الأسرع (Faster Regional CNN).
الموضعه (localization)
في مهام التصنيف التي تعرفنا عليها حتى الأن قمنا بإدخال صورة إلى شبكة اللف الرياضي العصبية و نتج لنا تصنيف لكامل الصورة. لكن في بعض الأحيان قد نرغب في معلومات أكثر كمثال موقع الجسم في الصورة و هذا يسمى موضعه (localization) فلو كان لدينا صورة شخص يلعب بالكرة و نرغب في معرفة مكان الشخص الذي بحوزته الكرة لإكمال هذا الأمر سنحتاج إلى موضعة و تعريف الكرة و الشخص الذي يحوزها .
تًستخدم الموضعه في تطبيقات أمنية كثيرة مثل أجهزة مراقبة الأطفال . و كذلك تًستخدم الموضعة في تطبيقات القيادة الأمنة بحيث يتم إستخدام كاميرا لمراقب السائق. الموضعه مهمة في جميع التطبيقات المعتمدة على معرفة المسافة التقريبية بين جسمين أو أكثر .
فلننظر إلى مثال بسيط عن الموضعه ، صورة هذا الصقر ، فبالإضافة إلى تصنيف هذه الصورة كصقر نرغب أيضا بتحديد موقعه في الصورة . الطريقة المعتادة للقيام بهذا تتم عن طريقة رسم صندوق حوله . و يمكن التفكير في الصندوق على أنه مجموعة من الإحداثيات (coordinates) التي تحدد الجسم. بحيث نشير إلى مركز الصندوق بـ x و y أما إرتفاع و عرض الصندوق فنشير إليه بـ w و h
لإيجاد هذه القيم فبوسعنا إستخدام نفس المعمارية المستخدم في شبكات اللف الرياضي العصبية . و إحدى طرق تأدية عملية الموضعة هي بواسطة تمرير الصورة بسلسلة من طبقات اللف الرياضي و طبقات التجميع و تكوين مُتجهات سمة (feature vectors) للصورة . ومن ثم تمريرها على نوعين من الطبقات كاملة الإتصال إحداها لتصنيف الصورة و الأخرى للتنبؤ بموضع و حجم صندوق الحصر (bounding box)
في هذه الحالة سنفترض بأن الصورة المدخلة ليس لها تصنيف محدد مسبق فحسب بل كذلك لها قيم صندوق الحصر . و بهذه الطريقة يمكننا تدريب الشبكة عن طريق مقارنة القيم الحقيقية مع القيم المتنبأ بها لكل من التصنيف و صندوق الحصر .
دالة الخسارة
عندما نقوم بتدريب شبكة اللف الرياضي العصبية لتصنيف الصور ، سنقوم بتدريبها عن طريق مقارنة التصنيف المُتنبأ به مع التصنيف الحقيقي لمعرفة مدى تطابقهما. في الغالب نستخدم الانتروبيا التقاطعية (Cross-entropy) لقياس الخطأ بين التصانيف .
لكن عندما نرغب في مقارنة مجموعة من النقاط التي تحدد منطقة معينة في الصورة فسنحتاج إلى دالة خسارة تقوم بحساب نقاط التشابه بين قيم الإحداثيات ، و بالتالي فهذه ليست مسألة تصنيف إنما هي مسألة إنحدار (regression). فالتصنيف يهتم بالتنبؤ بالصنف بينما الأنحدار يهتم بالتبؤ بالكمية . ففي مسائل الإنحدار سنحتاج إلى إستخدام دالة خسارة تقوم بمقارنة هذه الكميات و تمنحنا مسافة لمدى قربهما لبعض.
من الجدير بالذكر أيضا بأنه في مسائل التصنيف نحن نمتلك فكرة عامة عن الدقة فلو كان التنبؤ مشابة للتصنيف الحقيقي فبالتالي شبكتنا لها نسبة عالية من الدقة . و لكن في مسائل الإنحدار(regression) فلا يمكننا الجزم بأن النقطة دقيقة أو لا بالنظر لشيئ مثل قيمة الخطأ التربيعي المتوسط بينهما (mean squared error) لذلك في مسائل الإنحدار غالباً ما نتحدث عن شبكات ذات خطأ صغير عوضاً عن شبكات ذات دقة عالية
كما ذكرنا لحساب الخطا بين كميتين ، سنقوم بإستخدام دالة خسارة تقوم بحساب الفرق بين الكمية المتبأ بها و التي يرمز لها بـ P و الكمية المستهدفة و التي يرمز لها بـ T عنصراً تلو الأخر . فلنفترض أننا سنتنبأ بقيمة نقطة واحدة P و إحداثيات xy و التي تمثل مركز الجسم في الصورة . في هذه الحالة ، دالة الخسارة ستنظر إلى النقطة P التي قامت شبكة اللف الرياضي العصبية بالتنبؤ بها و القيمة المستهدفة للموقع الحقيقي T لمركز الجسم
و هناك عدة دوال ستساعدنا في تحقيق ذلك :
– دالة الخسارة لـ 1 (L1 loss)
– دالة خسارة الخطأ التربيعي المتوسط (mean squared error)
كل من هاتين الدالتين تحسبان المسافة بين النقاط. و لكن لكل من هاتين الدالتين نقاط قوة و نقاط ضعف ، ومن نقاط ضعف دالة الخسارة ل 1 أنها لا تستجيب بفعالية لقيم الأخطاء الصغيرة بينما من نقاط ضفف دالة خسارة الخطأ التربيعي المتوسط أنها تتضخم (amplify) الأخطاء الكبيرة و النادرة و المسمأة كذلك بالشواذ (outliers) .
– دالة الخسارة ل1 الناعمة (Smooth L1 loss)
تعتبر مزيج بين الدالتين و فبالنسبة للإختلافات الصغيرة بين القيمة المتنبأ بها و القيمة الحقيقة ستقوم بإستخدام الخطأ التربيعي المتوسط بينما للأخطاء الكبيرة ستستخدم الخسارة ل1 و بالتالي فهي تجمع بين أفضل ما يميز كل من هذه الدوال.
إكتشاف عدة أجسام في الصورة
لو فرضنا بأن لدينا جسمين في الصورة ، نرغب في تصنيفهما و موضعتهما فأحد الطرق الممكن إتباعها هي تقسيم الصورة المدخلة إلى منطقتين مختلفتين كل منهما تحتوي جسم واحد. وبعد ذلك ندخل كل منطقة إلى شبكة لف رياضي عصبية و التي بدورها تقوم بتصنيف الجسم و موضعته
لكن ماذا لو كان لدينا أكثر من جسمين في الصورة ، التحدي هنا هو أن المُخرج (output) متغير فنحن لا نعلم كم عدد الأجسام في الصورة كما أن أغلب معماريات شبكات اللف الرياضي العصبية لها مُخرج ثابت ذو حجم غير متغير.
لذلك من أجل أن نتمكن من إكتشاف أكثر من جسم في الصورة فعلينا أولا أن نقسم الصورة المدخلة إلى مناطق صغيرة و نقوم بتصنيف الجسم في كل من هذه المناطق و رسم صندوق حصر في كل منها. كل منطقة على حدى . و بهذا سنتمكن من موضعة و تصنيف كل جسم يظهر في الصورة سواءً كان جسم واحد أو أكثر.
و لكن ما هي الطريقة التي سنتبعها في عملية تقسيم الصورة إلى مناطق صغيرة ، يمكننا إستخدام نافذة صغيرة تمر على كامل الصورة و دورها تكوين مقصوصيات صغيرة من الصورة الأصلية ( أي المرور على الصورة و قص كل منطقة تمر عليها) ، ومن ثم نقوم بتمرير كل قصاصة على شبكة لف رياضي عصبي و نؤدي عملية التصنيف لكن هذه الطريقة ستقوم بإنتاج قصاصات كثيرة للصورة الواحدة و هذه يستهلك الكثير من الموارد كما يحتاج للكثير من الوقت لتصنيف صورة واحدة ، و كما لا ننسى أنه في هذه الحالة فليست كل قصاصات الصورة تحتوي على جسم نرغب في تصنيفه.
شبكة اللف الرياضي العصبية الإقليمية
لموضعت و تصنيف عدة أجسام في الصورة ، نرغب في أن نكون قادرين على تحديد مجموعة محدودة من المناطق المقصوصة في الصورة لتتعامل معها شبكة اللف الرياضي .
في الحالة المثالية ، سنقوم بتوليد ثلاثة مناطق تحتوي ثلاثة أجسام مختلفة في الصورة ، لتحقيق هذا الهدف و لتوليد عدد محدود من المناطق المقصوصة ، ظهرت خوارزمية المناطق المقترحة ( region proposals) .
خوارزمية المناطق المقترحة تعطينا طريقة سريعة لننظر للصورة و توليد مناطق (قصاصات) في أجزاء الصورة التي تحتوي جسم ما فقط. و نستخدم تقنيات التبصير الحاسوبي التي تقوم بإكتشاف الحواف و الأنسجة لتوليد مجموعة من المناطق و التي قد تحتوي أجسام. كمثال مناطق ذات حواف متصلة . و الطريقة التي يتم فيها دمج هذه الخوارزمية في معمارية شبكات اللف الرياضي العصبية هي كالأتي:
أولا : نستخدام هذه الخوارزمية لتوليد مجموعة محددة من المناطق المقصوصة في الصورة و التي تسمى عادة مناطق ذات إهتمام (regions of interests)
ثانيا : نقوم بإدخال هذه المناطق في شبكة لف رياضي عصبية لغرض تصنيفها واحدة تلو الأخرى ، و نرى ما نوع التصنيف الذي ستخرج به الشبكة تسمى هذه المعمارية بـ شبكة اللف الرياضي العصبية الإقليمية (region convolutional neural network) أو بإختصار (R-CNN)
ثالثاً : تقوم هذه الشبكة بتصنيف كل منطقة ذات إهتمام بالتالي ستصنف المنطقة التي تحتوي بو أو المنطقة التي تحتوي لا لا و نضيف تصنيف ثالث يعرف بالخلفية غايته تصنيف أي منطقة تحتوي على ضوضاء .
بما أن هذه المناطق في العادة ذات أحجام مختلفة
فيتم في البداية تحويلها إلى الحجم القياسي الذي تتقبله شبكة اللف الرياضي العصبية
كمُدخل ، لكن من نقاط ضعف هذه التقنية هو أنها تتطلب أن تمر كل منطقة مقصوصة خلال
الشبكة العصبية بأكملها و هذا يتطلب الكثير من الوقت
شبكة اللف الرياضي العصبية الإقليمية السريعة
التطور التالي في هذا النوع من الشبكات ظهر مع معمارية شبكة اللف الرياضي العصبية الإقليمية السريعة أو بإختصار (Fast R-CNN) حيث بدل من معالجة كل منطقة ذات إهتمام بتمرريرها في كامل الشبكة العصبية . هذه المعمارية تقوم بتمرير كامل الصور خلال شبكة اللف الرياضي مرة واحدة فقط. حيث تمرر الصورة داخل الشبكة في سلسلة من طبقات اللف الرياضي و طبقات التجميع و من ثم سنحصل على خرائط سمات (feature maps) و من ثم نقوم بإسقاط (project) المناطق ذات الإهتمام في طبقة خرائط السمات المصغرة. و كل جزء في خرائط السمات يقابله جزء أكبر في الصورة الأصلية و بالتالي يمكننا أخذ هذه المناطق الصغيرة في خرائط السمات و تغذيتها واحدة تلو الأخرى في الطبقة كاملة الإتصال و التي بدورها تقوم بتوليد تصنيف لكل من هذه المناطق المختلفة .
في هذه المعمارية نقوم بإكمال أكثر مرحلة مستهلكة
للوقت و هي تمرير الصورة على سلسة من طبقات اللف الرياضي مرة واحدة فقط بعد ذلك نستخدم
خرائط السمات لنحصل على مخرج . و لكن لا ننسى بأنه علينا أن ننتعامل مع الأحجام المختلفة
لإسقاطات المناطق ذات الإهتمام بما أن الطبقات الأخيرة في الشبكة تتوقع حجم ثابت و لذلك نقوم بإستخدم
تقنية تسمى تجميع المناطق ذات الإهتمام (ROI pooling)
لتحويل هذه المناطق إلى حجم ثابت يتم إدخاله على الطبقة كاملة الإتصال. و تعتبر هذه المعمارية أسرع بعشرة مرات من سابقتها.
شبكة اللف الرياضي العصبية الإقليمية الأسرع
لتسريع الوقت المحتاج لتمرير صورة على الشبكة و إكتشاف جميع الأجسام فيها ، فنحن بحاجة إلى تقليل الوقت الذي تتطلبه خوارزمية المناطق المقترحة (region proposals) ، و من هنا نشأت معمارية شبكات اللف الرياضي العصبية الإقليمية الأسرع أو بإختصار (faster R-CNN).
ما يميز هذه المعمارية أنها تتعلم تحديد المناطق المقترحة بنفسها ، فهي تأخذ صورة كمدخل و تمررها على عدة طبقات لف رياضي مثل سابقتها و من ثم تبني خريطة سمات للصورة المدخلة ، بعد ذلك يتم إدخال خريطة السمات في شبكة مستقلة تسمى شبكة المناطق المقترحة (region proposal network)
وهذه الشبكة تقوم بالتنبؤ بالمناطق المقترحة ، و إذا كانت المنطقة تم إكتشاف عدة سمات فيها من حواف وغيرها فسيتم تصنيفها على أنها منطقة ذات إهتمام. وكما تقوم هذه الشبكة بعملية تصنيف ثنائية بحيث تقوم بفحص كل منطقة ذات إهتمام و التأكد هل تحتوي على جسم أما لا .إذا إحتوت على جسم فسيتم الإحتفاظ بهذه المنطقة إما إذا لم تحتوي على جسم فسيتم التخلص منها . و بعد ذلك يتم تمرير المناطق ذات الإهتمام المتبقية إلى بقية الشبكة العصبية و و تصنيفها.
و طريقة عمل شبكة المناطق المقترحة كالأتي :
بعد أن يتم توليد خريطة السمات يتم تمرير نافذة متحركة عليها حجمها 3×3 و هذه النافذة تقوم بتقسيم الخريطة إلى خرائط أصغر ، بعد ذلك في كل من هذه الخرائط الصغيرة تقوم الشبكة بالأتي :
– تستخدم مجموعة من صناديق الإرتكاز (anchor boxes) و هي صناديق ذات أحجام معرفة مسبقاً و ذلك لأجل توليد المناطق ذات الإهتمام.
– لكل منطقة مقترحة تقوم الشبكة بتوليد قيمة إحتمال و التي تصنف المنطقة سواء تحتوي جسم أما لا ، كما تقوم بتعريف إحداثيات صندوق الحصر لذلك الجسم
– يتم التخلص من المناطق ذات قيمة إحتمال أقل من عتبة معينة
و بعد حصولنا على المناطق المقترحة نقوم بتمريرها إلى بقيمة الشبكة العصبية و التي تعمل تماما كشبكة اللف الرياضي العصبية السريعة
إضافة تعليق