هذا المستودع هو المكتبة الخلفية لتطبيقنا القائم على واجهة المستخدم الرسومية - MOTHe-GUI
Mothe هي مكتبة PYPI لاكتشاف وتتبع العديد من الحيوانات في بيئة غير متجانسة. MOTHe هو مستودع يعتمد على لغة بايثون ويستخدم بنية الشبكة العصبية التلافيفية (CNN) لمهمة الكشف عن الكائنات. يأخذ صورة رقمية كمدخل ويقرأ ميزاته لتعيين فئة. هذه الخوارزميات هي خوارزميات تعلم مما يعني أنها تستخرج الميزات من الصور باستخدام كميات هائلة من بيانات التدريب المصنفة. بمجرد تدريب نماذج CNN، يمكن استخدام هذه النماذج لتصنيف البيانات الجديدة (الصور). تم تصميم MOTHe ليكون عامًا مما يمكّن المستخدم من تتبع الأشياء محل الاهتمام حتى في البيئة الطبيعية.
يمكن لـ MOTHe أتمتة جميع المهام المرتبطة بتصنيف الكائنات وتنقسم إلى 5 طرق مخصصة للمهام التالية:
تكوين النظام : يتم استخدام تكوين النظام لإعداد MOTHe على نظام المستخدمين. التفاصيل الأساسية مثل المسار إلى المستودع المحلي، والمسار إلى الفيديو المراد معالجته، وحجم الفرد المراد اقتصاصه، وعدد الإطارات التي يجب تخطيها أثناء تشغيل الكشف أو التتبع (لتقليل وقت الحوسبة/لتشغيل حالة اختبار) وحجم المربع المحيط الذي سيتم رسمه أثناء مرحلة الكشف.
إنشاء مجموعة البيانات : يعد إنشاء مجموعة البيانات خطوة حاسمة نحو اكتشاف الكائنات وتتبعها. الجهد اليدوي المطلوب لتوليد الكمية المطلوبة من بيانات التدريب ضخم. تعمل فئة إنشاء البيانات والملف القابل للتنفيذ على أتمتة العملية بشكل كبير من خلال السماح للمستخدم باقتصاص المنطقة محل الاهتمام من خلال نقرات بسيطة على واجهة المستخدم الرسومية وحفظ الصور تلقائيًا في المجلدات المناسبة.
تدريب نموذج تدريب الشبكة العصبية التلافيفية : بعد إنشاء عدد كافٍ من أمثلة التدريب، يتم استخدام البيانات لتدريب الشبكة العصبية. تنتج الشبكة العصبية مصنفًا كمخرج. تعتمد دقة المصنف على مدى جودة تدريب الشبكة، والذي يعتمد بدوره على جودة وكمية بيانات التدريب (راجع القسم ما مقدار بيانات التدريب التي أحتاجها؟ ). تم إصلاح معلمات الضبط المختلفة للشبكة لتسهيل العملية على المستخدمين. تعمل هذه الشبكة بشكل جيد مع التصنيف الثنائي - الأشياء محل الاهتمام (الحيوانات) والخلفية. التصنيف متعدد الفئات غير مدعوم في مسار التدفق هذا.
اكتشاف الكائنات : تؤدي هذه الطريقة مهمتين رئيسيتين - فهي تحدد أولاً المناطق في الصورة التي من المحتمل أن تحتوي على حيوانات، وهذا ما يسمى التعريب؛ ثم يقوم بالتصنيف على المناطق المزروعة. يتم هذا التصنيف باستخدام شبكة CNN صغيرة (6 طبقات تلافيفية). يكون الإخراج في شكل ملفات بتنسيق csv تحتوي على مواقع الحيوانات المحددة في كل إطار.
تتبع الكائنات : تتبع الكائنات هو الهدف النهائي لوزارة الصحة. تقوم هذه الوحدة بتعيين معرفات فريدة للأفراد المكتشفين وإنشاء مساراتهم. لقد قمنا بفصل وحدات الكشف والتتبع، بحيث يمكن استخدامها أيضًا من قبل شخص مهتم فقط ببيانات التعداد (مثل الاستطلاعات). توفر هذه الوحدات أيضًا مرونة في استخدام خوارزميات تتبع أكثر تطوراً للمبرمجين ذوي الخبرة. نستخدم رمزًا موجودًا لمهمة التتبع (من صفحة Github الخاصة بالمرجع). تستخدم هذه الخوارزمية مرشحات كالمان والخوارزمية المجرية. يمكن تشغيل هذا البرنامج النصي بمجرد إنشاء الاكتشافات في الخطوة السابقة. الإخراج هو ملف text{.csv} يحتوي على معرفات ومواقع فردية لكل إطار. يتم أيضًا إنشاء إخراج فيديو بالمعرفات الفريدة لكل فرد.
MOTHe عبارة عن حزمة python تستخدم العديد من مكتبات python الأخرى التي ربما تم تحديثها. لذلك، من المهم أن تكون على دراية بالإصدارات التي نقوم بتنزيلها/تثبيتها. إصدارات python الموصى بها هي الإصدارات الثابتة من python3.6 إلى python3.7 (يتم تثبيت أحدث إصدارات LTS من Linux (على سبيل المثال: Ubuntu 20.04 Focal Fossa) مع مخزون python3.8 غير المتوافق مع MOTHe). لا يدعم Python3.8 إصدارات Tensorflow الأقل من الإصدارات 2.2 والتي تتطلبها MOTHe للعمل. يرجى ملاحظة إصدارات بعض المكتبات التي تم تعديلها بسرعة إلى حد ما وتم استخدامها لاختبار MOTHe مؤخرًا: