النماذج التي تعاملنا معها لتصنيف الصور حتى الآن كانت تأخذ صورة وتنتج نتيجة تصنيفية، مثل فئة "الرقم" في مشكلة MNIST. ومع ذلك، في العديد من الحالات، لا نريد فقط معرفة أن الصورة تحتوي على كائنات - بل نريد تحديد موقعها بدقة. وهذا هو الهدف من الكشف عن الكائنات.
الصورة من موقع YOLO v2
إذا أردنا العثور على قطة في صورة، فإن نهجًا بسيطًا جدًا للكشف عن الكائنات سيكون كالتالي:
- تقسيم الصورة إلى عدد من المربعات.
- تشغيل تصنيف الصور على كل مربع.
- يمكن اعتبار المربعات التي تؤدي إلى تنشيط عالي بما يكفي أنها تحتوي على الكائن المطلوب.
الصورة من دفتر التمارين
ومع ذلك، هذا النهج بعيد عن المثالية، لأنه يسمح فقط للخوارزمية بتحديد موقع الصندوق المحيط بالكائن بشكل غير دقيق. للحصول على موقع أكثر دقة، نحتاج إلى تشغيل نوع من الانحدار للتنبؤ بإحداثيات الصناديق المحيطة - وللقيام بذلك، نحتاج إلى مجموعات بيانات محددة.
هذه المقالة تقدم مقدمة رائعة للكشف عن الأشكال.
قد تصادف مجموعات البيانات التالية لهذه المهمة:
- PASCAL VOC - 20 فئة
- COCO - الكائنات الشائعة في السياق. 80 فئة، صناديق محيطة وأقنعة تقسيم
بينما من السهل قياس أداء الخوارزمية في تصنيف الصور، فإن الكشف عن الكائنات يتطلب قياس صحة الفئة وكذلك دقة موقع الصندوق المحيط المستنتج. بالنسبة للأخير، نستخدم ما يسمى التقاطع على الاتحاد (IoU)، الذي يقيس مدى تداخل صندوقين (أو منطقتين عشوائيتين).
الشكل 2 من هذه المقالة الممتازة عن IoU
الفكرة بسيطة - نقسم مساحة التقاطع بين شكلين على مساحة اتحادهما. بالنسبة لمنطقتين متطابقتين، سيكون IoU = 1، بينما بالنسبة لمنطقتين منفصلتين تمامًا سيكون 0. بخلاف ذلك، سيتراوح بين 0 و1. عادةً ما نعتبر فقط تلك الصناديق المحيطة التي يكون فيها IoU أعلى من قيمة معينة.
لنفترض أننا نريد قياس مدى جودة التعرف على فئة معينة من الكائنات
- يتم النظر في منحنى الدقة-الاستدعاء الذي يظهر الدقة بناءً على قيمة عتبة الكشف (من 0 إلى 1).
- بناءً على العتبة، سنحصل على عدد أكبر أو أقل من الكائنات المكتشفة في الصورة، وقيم مختلفة للدقة والاستدعاء.
- سيبدو المنحنى كالتالي:
الصورة من NeuroWorkshop
الدقة المتوسطة لفئة معينة
نعتبر فقط تلك الاكتشافات التي يكون فيها IoU أعلى من قيمة معينة. على سبيل المثال، في مجموعة بيانات PASCAL VOC عادةً ما يُفترض أن
الصورة من NeuroWorkshop
المقياس الرئيسي للكشف عن الكائنات يُسمى الدقة المتوسطة الإجمالية أو mAP. وهو قيمة الدقة المتوسطة، محسوبة عبر جميع فئات الكائنات، وأحيانًا أيضًا عبر
هناك فئتان رئيسيتان من خوارزميات الكشف عن الكائنات:
- شبكات اقتراح المناطق (R-CNN، Fast R-CNN، Faster R-CNN). الفكرة الرئيسية هي إنشاء مناطق اهتمام (ROI) وتشغيل CNN عليها، بحثًا عن أقصى تنشيط. يشبه هذا النهج إلى حد ما النهج البسيط، باستثناء أن مناطق الاهتمام يتم إنشاؤها بطريقة أكثر ذكاءً. أحد العيوب الرئيسية لهذه الطرق هو أنها بطيئة، لأننا نحتاج إلى العديد من تمريرات مصنف CNN عبر الصورة.
- المرور الواحد (YOLO، SSD، RetinaNet). في هذه البُنى، نصمم الشبكة للتنبؤ بالفئات ومناطق الاهتمام في مرور واحد.
R-CNN تستخدم البحث الانتقائي لإنشاء هيكل هرمي لمناطق الاهتمام (ROI)، التي يتم تمريرها بعد ذلك عبر مستخلصات ميزات CNN ومصنفات SVM لتحديد فئة الكائن، وانحدار خطي لتحديد إحداثيات الصندوق المحيط. المقالة الرسمية
الصورة من van de Sande et al. ICCV’11
الصور من هذه المقالة
هذا النهج مشابه لـ R-CNN، لكن المناطق يتم تحديدها بعد تطبيق طبقات الالتفاف.
الصورة من المقالة الرسمية، arXiv، 2015
الفكرة الرئيسية لهذا النهج هي استخدام الشبكة العصبية للتنبؤ بمناطق الاهتمام - ما يسمى شبكة اقتراح المناطق. المقالة، 2016
الصورة من المقالة الرسمية
هذا الخوارزم أسرع حتى من Faster R-CNN. الفكرة الرئيسية هي كالتالي:
- نستخرج الميزات باستخدام ResNet-101.
- يتم معالجة الميزات بواسطة خريطة النقاط الحساسة للموقع. يتم تقسيم كل كائن من
$C$ الفئات إلى مناطق$k\times k$ ، وندرب الشبكة للتنبؤ بأجزاء الكائنات. - لكل جزء من مناطق
$k\times k$ ، تصوت جميع الشبكات لفئات الكائنات، ويتم اختيار فئة الكائن ذات التصويت الأعلى.
الصورة من المقالة الرسمية
YOLO هو خوارزمية مرور واحد في الوقت الفعلي. الفكرة الرئيسية هي كالتالي:
- يتم تقسيم الصورة إلى مناطق
$S\times S$ . - لكل منطقة، CNN تتنبأ بـ
$n$ كائنات محتملة، إحداثيات الصندوق المحيط و الثقة=الاحتمالية * IoU.
الصورة من المقالة الرسمية
- RetinaNet: المقالة الرسمية
- SSD (الكاشف ذو اللقطة الواحدة): المقالة الرسمية
واصل تعلمك في الدفتر التالي:
في هذه الدرس، أخذت جولة سريعة حول الطرق المختلفة التي يمكن من خلالها تحقيق الكشف عن الكائنات!
اقرأ هذه المقالات والدفاتر عن YOLO وجربها بنفسك:
- مقالة جيدة تصف YOLO
- الموقع الرسمي
- YOLO: تنفيذ Keras، دفتر خطوة بخطوة
- YOLO v2: تنفيذ Keras، دفتر خطوة بخطوة
- الكشف عن الكائنات بواسطة نيكيل ساردانا
- مقارنة جيدة لخوارزميات الكشف عن الكائنات
- مراجعة لخوارزميات التعلم العميق للكشف عن الكائنات
- مقدمة خطوة بخطوة لخوارزميات الكشف عن الكائنات الأساسية
- تنفيذ Faster R-CNN في Python للكشف عن الكائنات











