مشروع بروميثيوس: البحث عن النار باستخدام الذكاء الاصطناعى



مشروع بروميثيوس للترجمة - حل لإيجاد حريق مدعوم من منظمة العفو الدولية

أنا وزملائي نعمل في مشروع بروميثيوس (بروميثيوس) ، وهو حل للكشف المبكر عن الحرائق يجمع بين الذكاء الاصطناعي ورؤية الكمبيوتر والطائرات بدون طيار الآلية وخدمات التنبؤ بالطقس. تم تصميم هذا المجمع لاكتشاف حرائق الغابات قبل أن تتحول إلى كارثة حقيقية. نريد أن نتحدث عن المشروع بمزيد من التفصيل ، وكيف يعمل وما هو الجهاز النظري الذي يكمن في صميمه. سيتم إرسال المواد بشكل مستقل عن التقنيات المحددة ، لذلك إذا كنت مهتمًا بميزات تنفيذ محددة (CNTK ، و Faster R-CNN ، وحاويات Docker ، و Python ، .NET Framework ، وما إلى ذلك) ، فانتقل إلى مستودع GitHub الخاص بنا. وهنا نذكر فقط التقنيات المستخدمة.

مقدمة صغيرة:


الدافع


في عام 2017 ، تم تقدير أن حرائق الغابات كلفت الاقتصاد الأمريكي حوالي 200 مليار دولار ، وهذا أقل بقليل من الأضرار الناجمة عن الأعاصير. لكن الفرق هو أنه إذا قمت بإخماد الحرائق قبل أن تنمو ، فيمكن أن تقل الخسائر بشكل كبير. ومع ذلك ، فإن مهمة اكتشاف الحرائق هي مهمة روتينية وصعبة وتتطلب مشاركة الناس: بالنسبة للجزء الأكبر ، يجلسون على أبراج المراقبة مع منظار ، يحاولون ملاحظة الحريق في الوقت المناسب ، أو يطيرون حول الأرض بواسطة طائرات هليكوبتر أو من خلال طائرات بدون طيار موجهة. تم تصميم مشروع بروميثيوس لأتمتة هذا الروتين بالكامل باستخدام طائرات بدون طيار أوتوماتيكية للكشف عن الحرائق في مرحلة مبكرة ، وإلا فإن ميزات الرياح أو الجفاف أو التضاريس ستساعد في انتشار الحريق إلى فدان من المنطقة في غضون دقائق. علاوة على ذلك ، فإن معظم هذه الحرائق تحدث في المناطق النائية حيث يوجد عدد قليل من الناس ولا أحد لتتبع حدوث بؤر.

إذا أرسلت طائرات بدون طيار للقيام بدوريات في هذه المناطق النائية ، فستساعد في اكتشاف الحريق في الوقت المناسب وتقليل الضرر.

مشروع


يمكن تقسيم بروميثيوس إلى ثلاثة أجزاء:

  • تستخدم وحدة الكشف عن الحرائق خوارزميات التعلم العميق لتحديد بؤر صغيرة باستخدام كاميرا RGB للطائرة بدون طيار (تنفذ كخدمة سحابة REST).
  • تسمح وحدة تخطيط الرحلة للمستخدم بتحديد وتخطيط مناطق الدوريات (يتم تنفيذها كتطبيق Windows ومتكاملة مع خدمات رسم خرائط الطقس).
  • يسمح نظام الإنذار للمستخدم بإخطار الفريق بسرعة عن الحريق المكتشف (باستخدام وظائف Azure و Twilio).

كشف الحريق


نحن نستخدم طائرات بدون طيار الآلي للبحث عن النار في المناطق النائية. تُستخدم كاميرات RGB المدمجة على اللوحة لإطلاق النار على المنطقة بأكملها ، ثم يتم تغذية الصور إلى نموذج للتعلم الآلي يبحث عن الحرائق ويبلغ المستخدم. شكرا لكم جميعا ، كل شخص حر. على الرغم من مهلا ...

الدرس الأول: مسائل الحجم


كان تحديد الحرائق باستخدام رؤية الكمبيوتر بالنسب التي نحتاجها مهمة صعبة ، وبالتالي استخدمنا طريقة مختلفة. ربما كنت تعتقد أن استخدام كاميرات RGB غير عملي لأن كاميرات الأشعة تحت الحمراء هي الأفضل في هذه الحالة. ولكن بعد التحدث مع رجال الإطفاء ، اكتشفنا أن الأمر ليس بهذه البساطة: فالأماكن التي ترتفع فيها درجة حرارة الهواء ستبدو وكأنها حرائق على كاميرات الأشعة تحت الحمراء ، وستبدو بعض أجزاء السطح وكأنها مصادر حرارة فقط بسبب خصائص انعكاس الضوء. بالإضافة إلى ذلك ، هذه الكاميرات هي أكثر تكلفة بكثير. يستخدمهم رجال الإطفاء معظمهم في الليل لمعرفة ما إذا كانوا قد تمكنوا من إخماد الحريق بالكامل.

بشكل عام ، إذا كنت تريد استخدام التعلم الآلي لتصنيف صورة إلى فئة معينة - حريق / لا حريق - فإنك ستستخدم على الأرجح تقنيات التصنيف. بهذه البساطة. ولكن قد تكون الخصائص المطلوبة للتصنيف صغيرة جدًا مقارنة بالصورة الكاملة. على سبيل المثال ، يبدو مصدر الإشعال الصغير النموذجي كما يلي:



في مثل هذه الحالات ، بما في ذلك حالاتنا ، يمكن تحقيق أفضل أداء في تحديد الكائنات إذا لم تهتم بموقعها المحدد أو تحسب الرقم الموجود في الصورة. ولكن في أكثر الأحيان ، يكون نظام الجهاز لتحديد الكائنات أكثر تعقيدًا. هناك طرق مختلفة لحل هذه المشكلة ، واستخدمنا الشبكة العصبية التلافيفية الإقليمية (R-CNN) ، أو بالأحرى ، تطبيق Faster R-CNN.

غالبًا ما تستخدم YoLo و Detectron (تم نقلهما مؤخرًا إلى المصدر المفتوح).

تتكون العملية من الخطوات التالية:

  • التعريب: تحتاج إلى إنشاء أقسام (عينات) من المساحات داخل الصورة التي قد تحتوي على الكائنات المطلوبة. تسمى هذه المناطق مناطق الاهتمام (ROIs). إنها مجموعات كبيرة من الإطارات تغطي الصورة بأكملها. نقوم بإنشاء عائد استثمار باستخدام التقنية الموضحة في التقسيم كبحث انتقائي للتعرف على الأشياء من قِبل Koen EA van de Sande وغيرهم. يتم تطبيق هذه التقنية في مكتبة dlib Python.
  • تصنيف الكائنات: ثم يتم استخراج الخصائص المرئية من كل إطار ، ويتم تقييمها ويفترض النظام ما إذا كانت هناك كائنات وماهية (أكثر في هذا أدناه).
  • الكبت غير الأقصى: يحدث أن تتداخل الإطارات التي تمثل نفس الكائن جزئيًا أو كليًا فوق بعضها البعض. لتجنب هذا الازدواجية ، يتم دمج الإطارات المتقاطعة في إطار واحد. قد تتطلب هذه المهمة قدرًا كبيرًا من القوة الحاسوبية ، ولكن يتم تنفيذ بعض التحسينات في مكتبة Intel Math.

الدرس الثاني: قد تحتاج بياناتك إلى مساعدة


يحتاج تعلم الآلة إلى البيانات. ولكن في التعلم العميق (أي في مساحة إدخال متعددة الأبعاد) ، ستحتاج إلى الكثير من البيانات لاستخراج الخصائص المرئية المثيرة للاهتمام. كما فهمت ، من الصعب العثور على مجموعة كبيرة من الأشياء التي تهمنا (الحرائق). لحل هذه المشكلة ، استخدمنا تقنية "نقل التعلم" مع نماذج تصنيف الصور للأغراض العامة المدربة مسبقًا لاستخراج الخصائص المرئية ، حيث يمكنها التعميم بشكل جيد. ببساطة ، تأخذ نموذجًا تم تدريبه مسبقًا لتحديد شيء ما و "تكوينه" باستخدام مجموعة البيانات الخاصة بك. بمعنى أن هذا النموذج سيستخرج الخصائص ، وستحاول بالفعل استخدام تمثيلاتها المكتسبة للمهمة A (عادةً ما تكون مهمة عالية المستوى) في حل المشكلة B (عادةً ما تكون منخفضة المستوى). يشير نجاح حل المشكلة (ب) إلى مدى قدرة نموذج المهمة (أ) على التعرف على المهمة (ب). وفي حالتنا ، كانت المهمة (أ) هي مهمة تصنيف كائنات ImageNet ، وكانت المهمة (ب) تحدد الحرائق.

يمكن تطبيق هذه التقنية عن طريق إزالة الطبقة الأخيرة من شبكة عصبية مدربة مسبقًا واستبدالها بمصنفك الخاص. ثم نقوم بتجميد أوزان جميع الطبقات الأخرى وتدريب الشبكة العصبية بالطريقة المعتادة.

الشبكة العصبية الناتجة غير متوفرة على GitHub بسبب حجمها - حوالي 250 ميجابايت. إذا كنت بحاجة إلى واحدة ، والكتابة إلينا .

هناك العديد من النماذج المدربة بالفعل لـ ImageNet (AlexNet ، VGG ، Inception ، RestNet ، إلخ). في كل واحد منهم ، استخدم المؤلفون تسويات مختلفة في السرعة والدقة والهيكل. لقد اخترنا AlexNet ، لأنه يتطلب موارد حسابية أقل ، والنتائج في مهمتنا تختلف قليلاً عن الشبكات الأخرى.

الدرس الثالث: مقاطع الفيديو (خاصة إطاراتها الفردية) هي أفضل أصدقائك


ولكن على الرغم من نقل التدريب ، ما زلنا بحاجة إلى الكثير من البيانات لحل مشكلة التصنيف. ثم استفدنا من الفيديو. يمكنك استخراج مجموعة من الإطارات من كل فيديو والحصول بسرعة على مجموعة كبيرة من البيانات. يحتوي الفيديو على خاصية أخرى مفيدة: إذا تحرك كائن أو كاميرا ، فستحصل على صور للكائن بإضاءة مختلفة وفي زوايا مختلفة وفي مواضع مختلفة ، بحيث تكون مجموعة البيانات عالية جدًا.

لم نقم بتحميل مجموعة الصور الخاصة بنا على المستودع إما بسبب حجمها.

جمعنا مقاطع فيديو من طائرات بدون طيار من مصادر مختلفة وقمنا بتسميتها يدويًا. هناك عدة أدوات لتصنيف الصور بتنسيقات مختلفة ، اعتمادًا على إطار التعلم العميق المستخدم. أوصي LabelImg لنظام التشغيل Linux / Windows و RectLabel لنظام التشغيل Mac. استخدمنا CNTK ، لذلك استقرنا على أداة Microsoft VoTT التي يمكنها التصدير إلى تنسيقات CNTK و TensorFlow.

الدرس الرابع: شراء بطاقة فيديو (أو استئجار سحابة)


تدريب نموذج كبير مثلنا يتطلب قوة حوسبية كبيرة ، وسيكون GPU مساعدة كبيرة. استغرق الأمر 15 دقيقة تقريبًا لتتعلم استخدام NVIDIA GeForce GTX 1050. لكن حتى على الرغم من استخدام بطاقة الفيديو ، فإن إعداد معلمات الطراز يمثل صعوبة كبيرة. لدى Microsoft أداة جيدة تسمى Azure Experimentation Service ، والتي تتيح لك تشغيل العديد من الدورات التدريبية بمعلمات مختلفة في السحابة بالتوازي مع تحليل الدقة التي تم الحصول عليها. نلقي نظرة أيضا على AWS SageMaker.

يحتوي مستودعنا على البرنامج النصي Sweep_parameters.py ، والذي سيؤدي تلقائيًا إلى مسح المساحة حدية وبدء مهام التدريب.

انتهى


لذلك ، قمنا بتدريب شبكة R-CNN الخاصة بنا وتخلصنا منها بنقل التدريب والتعلم العميق وبطاقات الفيديو ، وما إلى ذلك. كيف يمكننا الآن مشاركة عملنا مع الآخرين؟ أولاً ، أطلقنا خدمة REST للتفاعل مع النموذج. تسمح لك واجهة برمجة التطبيقات بإرسال صور للتقييم وإرجاع مناطق من الصور ، وجود النار التي حددها النموذج ببعض الثقة. يمكنك أيضًا إخبار واجهة برمجة التطبيقات (API) ما إذا كانت الصورة تعمل بالفعل أم لا. يتم استخدام نقاط النهاية الأخرى للتعليقات والتحسينات.
يتم حزم خدمة REST API في حاوية Docker ونشرها في السحابة ، مما يسمح لك بتوسيع نطاق الحل. في المستودع ، يمكنك العثور على الملف الذي يحتوي على صورة Docker.

تخطيط الطيران


تحذيرات حمراء


كيف تعرف بروميثيوس أين ترسل طائرات بدون طيار؟ ندمج مع خدمات الطقس الوطنية لتحديد "التنبيهات الحمراء". هذه هي المناطق التي تزيد فيها درجة حرارة الحرائق واتجاه الرياح وقوتها والرطوبة والضغط الجوي. نظرًا لأن خدمات الطقس موجهة إلى بلدانهم ، فمن الصعب استخدامها لعمليات البحث الأجنبية. اليوم نحن نعمل مع الخدمات الأمريكية والأرجنتينية.



معلومات الطقس


من المهم للغاية الحصول على بيانات دقيقة عن الطقس في المجالات ذات الاهتمام. سألنا رجال الاطفاء عن هذه الوظيفة. نحصل على بيانات الطقس عن طريق اقتراع محطات الطقس من خلال خادم الخرائط التابع للخدمة الوطنية للطقس ، وتراكب المعلومات الواردة على الخريطة. نشدد على أن هذا ليس تنبؤًا بالطقس ، ولكنه قياسات حقيقية:


محطات الطقس في الولايات المتحدة الأمريكية .

لا أفهم كيف تعمل هذه البطاقة؟ أنت لست وحدك في هذا. استغرق الأمر منا عدة أسابيع لمعرفة كيفية استخدام هذا. هناك القليل من المعلومات على الشبكة. إذا كنت ترغب في تجربة البيانات من محطات الطقس ، فسيتعين عليك الحصول على مفاتيح واجهة برمجة التطبيقات من موفري الخدمات ، حيث لا يحق لنا مشاركتها.

نظام تحذير


عندما يكتشف النظام النار ، يطلب من المشغل تأكيد حقيقة الاكتشاف. الواجهة تبدو كالتالي:


نافذة تأكيد الحريق .

كما ترون ، يعمل النظام بدقة تامة حتى في الحالات الصعبة مثل هذا. إطار أحمر صغير يحدد حدود النار مع احتمال 67 ٪. في الحقيقة ، يحاول بروميثيوس اكتشاف الحرائق الكبيرة وغير مستقر عند حساب المناطق في سيناريوهات مثل هذه. كل شيء في النظام ، كما كان المقصود. كنا ببساطة غير مهتمين بمثل هذه الحالات.

يرسل نظام الإنذار إخطار الرسائل القصيرة مع إحداثيات GPS للحريق إلى أرقام هواتف مسجلة مسبقاً. يتم التوزيع باستخدام Twilio ، وهو نظام أساسي سحابي تسمح واجهات برمجة التطبيقات الخاصة به ، من بين أشياء أخرى ، بإرسال واستقبال الرسائل النصية برمجياً.

تريد أن نلقي نظرة؟


شفرة المصدر هنا

شكر وتقدير


تم تطوير بروميثيوس بالتعاون مع قسم تيمبي للحرائق وأريزونا وإدارة الحرائق الأرجنتينية والمعهد الأرجنتيني الوطني للتكنولوجيا الزراعية في الأرجنتين.

Source: https://habr.com/ru/post/ar441620/


All Articles