واحدة من أبسط الأفكار وأكثرها إثارة للاهتمام في التعلم العميق هي اكتشاف الأشياء. الفكرة الأساسية هي تقسيم كل عنصر إلى فئات متتالية تمثل سمات قابلة للمقارنة ثم رسم مربع حوله.
يمكن أن تكون هذه الخصائص المميزة بسيطة مثل الشكل أو اللون ، مما يساعد في قدرتنا على تصنيفها.
تطبيقات كشف الكائن يتم توظيفهم على نطاق واسع في العلوم الطبية ، والقيادة الذاتية ، والدفاع والجيش ، والإدارة العامة ، والعديد من المجالات الأخرى بفضل التحسينات الجوهرية في رؤية الكمبيوتر ومعالجة الصور.
هنا لدينا MMDetection ، مجموعة أدوات رائعة للكشف عن الكائنات مفتوحة المصدر مبنية على Pytorch. في هذه المقالة ، سنقوم بفحص MMDetection بالتفصيل ، ونستمر في العمل معه ، ونناقش ميزاته ، وأكثر من ذلك بكثير.
ما هي تفاصيل MMDetection?
• MMDetection تم إنشاء toolbox كقاعدة كود Python خصيصًا للمشكلات التي تتضمن تحديد الكائن وتجزئة المثيل.
يتم استخدام تطبيق PyTorch ، ويتم إنشاؤه بطريقة معيارية. للتعرف على الكائنات وتجزئة المثيلات ، تم تجميع مجموعة واسعة من النماذج الفعالة في مجموعة متنوعة من المنهجيات.
يسمح بالاستدلال الفعال والتدريب السريع. من ناحية أخرى ، يشتمل صندوق الأدوات على أوزان لأكثر من 200 شبكة مُدربة مسبقًا ، مما يجعلها حلًا سريعًا في مجال تحديد الكائن.
مع القدرة على تكييف التقنيات الحالية أو إنشاء كاشف جديد باستخدام الوحدات المتاحة ، فإن MMDetection يعمل كمعيار.
الميزة الرئيسية في صندوق الأدوات هي تضمينه لأجزاء معيارية مباشرة من العادي كشف الكائن إطار عمل يمكن استخدامه لإنشاء خطوط أنابيب فريدة أو نماذج فريدة.
تجعل قدرات قياس الأداء لمجموعة الأدوات هذه من السهل بناء إطار عمل جديد للكاشف فوق إطار عمل حالي ومقارنة أدائه.
المميزات
- يتم دعم أطر الكشف الشائعة والحديثة ، مثل Faster RCNN و Mask RCNN و RetinaNet وما إلى ذلك ، بشكل مباشر بواسطة مجموعة الأدوات.
- استخدام أكثر من 360 نموذجًا مدربًا مسبقًا للضبط الدقيق (أو التدريب من جديد).
- لمجموعات بيانات الرؤية المعروفة بما في ذلك COCO و Cityscapes و LVIS و PASCAL VOC.
- في وحدات معالجة الرسومات ، يتم تنفيذ جميع عمليات bbox و Mask الأساسية. يمكن تدريب قواعد التعليمات البرمجية الأخرى ، مثل Detectron2 و maskrcnn-benchmark و SimpleDet ، بمعدل أسرع من أو على قدم المساواة مع هذا.
- الباحثون يكسرون كشف الكائن إلى عدة وحدات ، والتي يمكن بعد ذلك دمجها لإنشاء نظام فريد لاكتشاف الكائنات.
بنية MMDetection
يحدد MMDetection تصميمًا عامًا يمكن تطبيقه على أي نموذج نظرًا لأنه عبارة عن صندوق أدوات به مجموعة متنوعة من النماذج المبنية مسبقًا ، ولكل منها بنيته الخاصة. المكونات التالية تشكل هذه البنية الشاملة:
- العمود الفقري: العمود الفقري ، مثل ResNet-50 بدون الطبقة النهائية المتصلة بالكامل ، هو المكون الذي يحول الصورة إلى خرائط المعالم.
- العنق: العنق هو الجزء الذي يربط العمود الفقري بالرؤوس. في خرائط المعالم الأولية للعمود الفقري ، يقوم بإجراء بعض التعديلات أو إعادة التكوين. شبكة هرم الميزة هي صورة توضيحية واحدة (FPN).
- رأس كثيف (AnchorHead / AnchorFreeHead): هو المكون الذي يعمل على مناطق كثيفة من خرائط المعالم ، مثل AnchorHead و AnchorFreeHead ، مثل RPNHead و RetinaHead و FCOSHead.
- RoIEExtractor: باستخدام عوامل التشغيل المشابهة لـ RoIPooling ، فإن هذا القسم هو الذي يسحب ميزات RoIwise من مجموعة واحدة أو مجموعة من خرائط الميزات. تستخلص عينة SingleRoIExtractor ميزات العائد على الاستثمار من مستوى مطابقة أهرامات الميزات.
- ROIHead (BBoxHead / MaskHead): هو جزء من النظام يستخدم خصائص العائد على الاستثمار كمدخل ويقوم بإنشاء تنبؤات خاصة بالمهمة قائمة على العائد على الاستثمار ، مثل تصنيف الصندوق المحيط / الانحدار وتنبؤ القناع.
يتم توضيح بناء أجهزة الكشف أحادية المرحلة والمرحلة باستخدام المفاهيم المذكورة أعلاه. يمكننا تطوير إجراءاتنا الخاصة ببساطة عن طريق إنشاء بعض الأجزاء الجديدة والجمع بين بعض الأجزاء الموجودة.
قائمة النماذج المدرجة في MMDetection
يوفر MMDetection قواعد أكواد من الدرجة الأولى للعديد من النماذج المعروفة والوحدات النمطية الموجهة نحو المهام. النماذج التي تم تصنيعها مسبقًا والطرق القابلة للتكيف التي يمكن استخدامها مع مربع أدوات MMDetection مذكورة أدناه. تستمر القائمة في النمو مع إضافة المزيد من النماذج والطرق.
- سريع R-CNN
- أسرع R-CNN
- قناع R-CNN
- شبكية العين
- DCN
- DCNv2
- تتالي R-CNN
- M2Det
- GHM
- خدش
- مزدوج الرأس R-CNN
- شبكة R-CNN
- FSAF
- الميزان R-CNN
- جي نت
- HRNet
- سجل القناع R-CNN
- فكوس
- SSD
- R-FCN
- تدريب مختلط الدقة
- توحيد الوزن
- تتالي المهام الهجينة
- رسو موجه
- الاهتمام العام
نموذج الكشف عن كائن البناء باستخدام MMDetection
في هذا البرنامج التعليمي ، سنكون مفكرة Google Collab لأنه من السهل ضبطه واستخدامه.
التنزيل
لتثبيت كل ما نحتاجه ، سنقوم أولاً بتثبيت المكتبات الضرورية واستنساخ مشروع MMdetection GitHub.
استيراد البيئة
سيتم الآن استيراد بيئة مشروعنا من المستودع.
استيراد مكتبات و MMdetection
سنقوم الآن باستيراد المكتبات المطلوبة ، جنبًا إلى جنب مع MMdetection بالطبع.
قم بتنزيل نقاط التفتيش المدربة مسبقًا
يجب الآن تنزيل نقاط فحص النموذج المدربة مسبقًا من MMdetection لمزيد من التعديل والاستدلال.
نموذج البناء
سنقوم الآن ببناء النموذج وتطبيق نقاط التفتيش على مجموعة البيانات.
استنتاج الكاشف
الآن وقد تم إنشاء النموذج وتحميله بشكل صحيح ، دعنا نتحقق من مدى تميزه. نحن نستخدم كاشف استدلال API عالي المستوى من MMDetection. تم تصميم واجهة برمجة التطبيقات هذه لتسهيل عملية الاستدلال.
نتيجة
دعونا نلقي نظرة على النتائج.
وفي الختام
في الختام ، يتفوق صندوق أدوات MMDetection على قواعد الكود التي تم إصدارها مؤخرًا مثل SimpleDet و Detectron و Maskrcnn-المعيارية. مع مجموعة كبيرة من النماذج ،
يعد MMDetection الآن من أحدث التقنيات. يتفوق MMDetection على جميع قواعد الكود الأخرى من حيث الكفاءة والأداء.
أحد أجمل الأشياء في MMdetection هو أنه يمكنك الآن فقط الإشارة إلى ملف تكوين مختلف ، وتنزيل نقطة اختبار مختلفة ، وتشغيل نفس الكود إذا كنت ترغب في تغيير النماذج.
أنصح بالنظر إلى ملفات تعليمات إذا واجهت مشاكل في أي من المراحل أو كنت ترغب في تنفيذ بعضها بشكل مختلف.
اترك تعليق