15 KiB
الكشف عن الكائنات
النماذج التي تعاملنا معها لتصنيف الصور حتى الآن كانت تأخذ صورة وتنتج نتيجة تصنيفية، مثل الفئة "رقم" في مشكلة MNIST. ومع ذلك، في العديد من الحالات، لا نريد فقط معرفة أن الصورة تحتوي على كائنات - بل نريد تحديد موقعها بدقة. وهذا هو بالضبط الهدف من الكشف عن الكائنات.
اختبار ما قبل المحاضرة
الصورة من موقع YOLO v2
نهج بسيط للكشف عن الكائنات
لنفترض أننا نريد العثور على قطة في صورة، فإن نهجًا بسيطًا جدًا للكشف عن الكائنات سيكون كالتالي:
- تقسيم الصورة إلى عدد من المربعات.
- تشغيل تصنيف الصور على كل مربع.
- يمكن اعتبار المربعات التي تؤدي إلى تنشيط عالي بما يكفي أنها تحتوي على الكائن المطلوب.
الصورة من دفتر التمارين
ومع ذلك، هذا النهج بعيد عن المثالية، لأنه يسمح فقط للخوارزمية بتحديد صندوق الإحاطة للكائن بشكل غير دقيق. للحصول على موقع أكثر دقة، نحتاج إلى تشغيل نوع من الانحدار للتنبؤ بإحداثيات صناديق الإحاطة - وللقيام بذلك، نحتاج إلى مجموعات بيانات محددة.
الانحدار للكشف عن الكائنات
هذه المقالة تقدم مقدمة رائعة للكشف عن الأشكال.
مجموعات البيانات للكشف عن الكائنات
قد تصادف مجموعات البيانات التالية لهذه المهمة:
- PASCAL VOC - 20 فئة
- COCO - الكائنات الشائعة في السياق. 80 فئة، صناديق الإحاطة وأقنعة التجزئة
مقاييس الكشف عن الكائنات
التقاطع على الاتحاد
بينما من السهل قياس أداء الخوارزمية في تصنيف الصور، فإن الكشف عن الكائنات يتطلب قياس دقة الفئة بالإضافة إلى دقة موقع صندوق الإحاطة المستنتج. بالنسبة للأخير، نستخدم ما يسمى التقاطع على الاتحاد (IoU)، الذي يقيس مدى تطابق صندوقين (أو منطقتين عشوائيتين).
الشكل 2 من هذه المقالة الممتازة عن IoU
الفكرة بسيطة - نقسم مساحة التقاطع بين شكلين على مساحة اتحادهما. بالنسبة لمنطقتين متطابقتين، سيكون IoU 1، بينما بالنسبة للمناطق غير المتداخلة تمامًا سيكون 0. بخلاف ذلك، سيتراوح بين 0 و1. عادةً ما نعتبر فقط صناديق الإحاطة التي يكون فيها IoU أعلى من قيمة معينة.
الدقة المتوسطة
لنفترض أننا نريد قياس مدى جودة التعرف على فئة معينة من الكائنات C. لقياس ذلك، نستخدم مقاييس الدقة المتوسطة، التي تُحسب كالتالي:
- نأخذ منحنى الدقة-الاستدعاء الذي يظهر الدقة بناءً على قيمة عتبة الكشف (من 0 إلى 1).
- بناءً على العتبة، سنحصل على المزيد أو القليل من الكائنات المكتشفة في الصورة، وقيم مختلفة للدقة والاستدعاء.
- سيبدو المنحنى كالتالي:
الصورة من NeuroWorkshop
الدقة المتوسطة لفئة معينة C هي المساحة تحت هذا المنحنى. بشكل أكثر دقة، يتم تقسيم محور الاستدعاء عادةً إلى 10 أجزاء، ويتم حساب متوسط الدقة على جميع هذه النقاط:
AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10})
AP و IoU
نعتبر فقط تلك الاكتشافات التي يكون فيها IoU أعلى من قيمة معينة. على سبيل المثال، في مجموعة بيانات PASCAL VOC عادةً ما يُفترض \mbox{IoU Threshold} = 0.5، بينما في COCO يتم قياس AP لقيم مختلفة من \mbox{IoU Threshold}.
الصورة من NeuroWorkshop
الدقة المتوسطة الإجمالية - mAP
المقياس الرئيسي للكشف عن الكائنات يُسمى الدقة المتوسطة الإجمالية أو mAP. وهو قيمة الدقة المتوسطة، محسوبة عبر جميع فئات الكائنات، وأحيانًا أيضًا عبر \mbox{IoU Threshold}. يتم وصف عملية حساب mAP بمزيد من التفصيل
في هذه المقالة، وأيضًا هنا مع أمثلة للرمز.
طرق مختلفة للكشف عن الكائنات
هناك فئتان رئيسيتان من خوارزميات الكشف عن الكائنات:
- شبكات اقتراح المناطق (R-CNN، Fast R-CNN، Faster R-CNN). الفكرة الرئيسية هي إنشاء مناطق اهتمام (ROI) وتشغيل CNN عليها، بحثًا عن التنشيط الأقصى. يشبه هذا النهج إلى حد ما النهج البسيط، باستثناء أن مناطق الاهتمام يتم إنشاؤها بطريقة أكثر ذكاءً. أحد العيوب الرئيسية لهذه الطرق هو أنها بطيئة، لأننا نحتاج إلى العديد من تمريرات مصنف CNN عبر الصورة.
- المرور الواحد (YOLO، SSD، RetinaNet). في هذه البُنى، يتم تصميم الشبكة للتنبؤ بالفئات ومناطق الاهتمام في مرور واحد.
R-CNN: الشبكة العصبية القائمة على المناطق
R-CNN تستخدم البحث الانتقائي لإنشاء هيكل هرمي لمناطق الاهتمام، التي يتم تمريرها بعد ذلك عبر مستخلصات ميزات CNN ومصنفات SVM لتحديد فئة الكائن، والانحدار الخطي لتحديد إحداثيات صندوق الإحاطة. المقالة الرسمية
الصورة من van de Sande et al. ICCV’11
الصور من هذه المقالة
F-RCNN - Fast R-CNN
هذا النهج مشابه لـ R-CNN، لكن المناطق يتم تحديدها بعد تطبيق طبقات الالتفاف.
الصورة من المقالة الرسمية، arXiv، 2015
Faster R-CNN
الفكرة الرئيسية لهذا النهج هي استخدام الشبكة العصبية للتنبؤ بمناطق الاهتمام - ما يسمى شبكة اقتراح المناطق. المقالة، 2016
الصورة من المقالة الرسمية
R-FCN: الشبكة العصبية القائمة على المناطق بالكامل
هذا الخوارزم أسرع حتى من Faster R-CNN. الفكرة الرئيسية هي كالتالي:
- نستخرج الميزات باستخدام ResNet-101.
- يتم معالجة الميزات بواسطة خريطة النقاط الحساسة للموقع. يتم تقسيم كل كائن من
Cالفئات إلى مناطقk\times k، وندرب الشبكة للتنبؤ بأجزاء الكائنات. - لكل جزء من مناطق
k\times k، تصوت جميع الشبكات لفئات الكائنات، ويتم اختيار فئة الكائن ذات التصويت الأقصى.
الصورة من المقالة الرسمية
YOLO - You Only Look Once
YOLO هو خوارزمية مرور واحد في الوقت الحقيقي. الفكرة الرئيسية هي كالتالي:
- يتم تقسيم الصورة إلى مناطق
S\times S. - لكل منطقة، CNN تتنبأ بـ
nكائنات محتملة، إحداثيات صندوق الإحاطة و الثقة=الاحتمالية * IoU.
الصورة من المقالة الرسمية
خوارزميات أخرى
- RetinaNet: المقالة الرسمية
- SSD (الكاشف ذو اللقطة الواحدة): المقالة الرسمية
✍️ تمارين: الكشف عن الكائنات
واصل التعلم في دفتر الملاحظات التالي:
الخاتمة
في هذه الدرس، أخذت جولة سريعة حول الطرق المختلفة التي يمكن من خلالها تحقيق الكشف عن الكائنات!
🚀 تحدي
اقرأ هذه المقالات والدفاتر حول YOLO وجربها بنفسك:
- مقالة جيدة تصف YOLO
- الموقع الرسمي
- YOLO: تنفيذ Keras، دفتر خطوة بخطوة
- YOLO v2: تنفيذ Keras، دفتر خطوة بخطوة
اختبار ما بعد المحاضرة
المراجعة والدراسة الذاتية
- الكشف عن الكائنات بواسطة Nikhil Sardana
- مقارنة جيدة لخوارزميات الكشف عن الكائنات
- مراجعة لخوارزميات التعلم العميق للكشف عن الكائنات
- مقدمة خطوة بخطوة لخوارزميات الكشف عن الكائنات الأساسية
- تنفيذ Faster R-CNN في Python للكشف عن الكائنات
التكليف: الكشف عن الكائنات
إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. على الرغم من أننا نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.









