تعلّم كيفية تدريب نماذج YOLO لاكتشاف الحيوانات في البرية باستخدام مجموعة بيانات الحياة البرية الأفريقية واستخدام النموذج لتشغيل الاستدلالات على الصور غير المرئية.
إن الحياة البرية على كوكبنا متنوعة بشكل لا يصدق، من النحل الطنان إلى الفيلة الشاهقة، والحفاظ على هذا التنوع البيولوجي هو المفتاح للحفاظ على نظام بيئي متوازن. ومع ذلك، أصبحت جهود الحفاظ على البيئة أكثر صعوبة بسبب فقدان الموائل والصيد الجائر وتغير المناخ. كل هذه العوامل تؤثر سلبًا على أعداد الحياة البرية.
قد تكون الطرق التقليدية لرصد الحيوانات، مثل التحليل اليدوي لصور مصائد الكاميرات وإجراء المسوحات الميدانية، بطيئة وتتطلب الكثير من الموارد. وغالباً ما تفشل هذه الجهود في تغطية مناطق واسعة وأعداد كبيرة من الحيوانات بشكل فعال.
للتغلب على هذه القيود، يمكن استخدام الذكاء الاصطناعي كأداة مؤثرة في الحفاظ على الحياة البرية. وعلى وجه التحديد، فإن نماذج الرؤية الحاسوبية مثل Ultralytics YOLO11 أن تحلل البيانات المرئية مثل الصور ومقاطع الفيديو لأتمتة عملية تحديد الحيوانات وتتبعها في الوقت الفعلي.
تُعد مهام الرؤية الحاسوبية مثل اكتشاف الأجسام وتجزئة المثيلات، التي يدعمها YOLO11 مفيدة للغاية هنا. من خلال تحليل البيانات المرئية، تساعدنا هذه المهام في جمع البيانات المهمة وتحديد الأنماط البيئية والاستجابة بفعالية أكبر للتهديدات البيئية.
في هذه المقالة، سنتعرف في هذه المقالة على عملية تدريب YOLO11 على اكتشاف الحيوانات. لنبدأ!
قبل الغوص في البرنامج التعليمي، دعنا نلقي نظرة على خيارات الإعداد المختلفة والأدوات التي ستحتاجها لتدريب واستخدام YOLO11.
الأداة الرئيسية التي ستحتاج إليها هي حزمةUltralytics Python والتي تسهّل العمل مع نماذج YOLO لمهام مثل التدريب، واكتشاف الكائنات، وتشغيل الاستدلالات. لاستخدام حزمة Ultralytics ستحتاج إلى إعداد بيئة لتشغيل الشيفرة البرمجية، وهناك العديد من الخيارات التي يمكنك الاختيار من بينها.
فيما يلي بعض الخيارات الأكثر شيوعًا لإعداد بيئة التطوير الخاصة بك:
على الرغم من وجود خيارات أخرى لإعداد بيئتك يمكنك استكشافها في وثائق Ultralytics الرسمية، إلا أن الخيارات الثلاثة المذكورة أعلاه لا تتطلب سوى القليل من الإعدادات وهي سهلة الاستخدام، مما يجعلها مثالية للبدء بسرعة.
في هذا البرنامج التعليمي، سنعرض كيفية إعداد وتدريب YOLO11 باستخدام Google Colab أو Jupyter Notebooks أو ملف Python بسيط، حيث أن الخطوات متشابهة جدًا في جميع هذه البيئات.
بعد اختيار بيئة التطوير، لتدريب YOLO11 على اكتشاف الحيوانات البرية على وجه التحديد، نحتاج إلى مجموعة بيانات عالية الجودة من الصور المصنفة. يجب أن تُظهر كل صورة بوضوح مكان وجود الحيوانات ونوعها، بحيث يمكن للنموذج أن يتعلم التعرف عليها من خلال التعلم تحت الإشراف.
سنستخدم في هذا البرنامج التعليمي مجموعة بيانات الحياة البرية الأفريقية. وهي مدعومة من قبل حزمة Ultralytics Python وهي مصممة خصيصًا للكشف عن الحيوانات التي توجد عادةً في النظم البيئية الأفريقية. وهي تحتوي على صور مشروحة لأربعة أنواع رئيسية: الجواميس والفيلة ووحيد القرن والحمير الوحشية.
فيما يلي بعض الميزات الرئيسية لمجموعة بيانات الحياة البرية الأفريقية:
والآن بعد أن استكشفنا مجموعة بيانات الحياة البرية الأفريقية، يمكننا البدء بتدريب نموذج YOLO11 لاكتشاف الحيوانات في الصور. تتضمن العملية إعداد بيئة التطوير، وتدريب نموذج YOLO11 وتقييم أداء النموذج.
للبدء، سنقوم بإعداد بيئة لتدريب واختبار النموذج. يمكن استخدام Google Colab أو Jupyter Notebooks أو ملف Python بسيط، حسب تفضيلاتك. قم بإنشاء دفتر ملاحظات جديد من Google Colab أو Jupyter Notebook أو ملف Python وفقًا لذلك.
إذا كنت تستخدم Google Colab، فإن البيئة تعمل افتراضيًا على وحدة CPU المركزية (وحدة المعالجة المركزية)، مما قد يؤدي إلى إبطاء التدريب. ولتسريع العملية، خاصةً بالنسبة للنماذج الأكبر حجمًا، يمكنك تبديل وقت التشغيل لاستخدام GPU. في Google Colab، يمكنك الانتقال إلى علامة التبويب "وقت التشغيل" في القائمة، وتحديد "تغيير نوع وقت التشغيل"، وتعيين مسرع الأجهزة على GPU (يُفضل أن تكون GPU T4). هذا مهم لتقليل أوقات التدريب.
بعد ذلك، بغض النظر عن البيئة التي تستخدمها، تحتاج إلى تثبيت حزمة Ultralytics Python . إذا كنت تستخدم بيئة مستندة إلى دفتر ملاحظاتGoogle Colab أو Jupyter)، فقم بتشغيل الأمر التالي مع وضع علامة تعجب (!) في البداية
pip install ultralytics
بمجرد تثبيت حزمة Ultralytics فإن الخطوة التالية هي تحميل نموذج YOLO11 وإعداد مجموعة البيانات للتدريب. أولاً، نقوم بتحميل نموذج YOLO11 والذي تم تدريبه مسبقًا على مهام اكتشاف الأجسام العامة. يمنحنا هذا النموذج المُدرَّب مسبقًا نقطة انطلاق جيدة، حيث أنه تعلّم بالفعل كيفية اكتشاف الأجسام المختلفة.
بعد ذلك، نحدد مجموعة البيانات باستخدام ملف YAML، والذي يحتوي على معلومات حول الصور والتسميات. يخبر هذا الملف النموذج بمكان العثور على مجموعة البيانات والكائنات التي يجب أن يتعلم التعرف عليها.
يتم دعم مجموعة بيانات الحياة البرية الأفريقية بواسطة حزمة Ultralytics لذلك سيتم تنزيلها تلقائيًا عند بدء التدريب، مما يوفر عليك عناء إعدادها يدويًا.
بمجرد أن تصبح مجموعة البيانات جاهزة، يبدأ النموذج بالتدريب. سيخضع النموذج لمجموعة البيانات عدة مرات، وهي عملية تُسمى التدريب على عدة حقب، لتحسين قدرته على التعرف على الحيوانات في الصور. خلال هذه العملية، سيتم تغيير حجم الصور إلى حجم ثابت للمعالجة، وسيعمل النموذج على عدد محدد من الصور في كل مرة، وهو ما يُعرف باسم الدفعة. يساعد هذا النموذج على التعلم بكفاءة أكبر.
باختصار، يتم تحميل النموذج، ويتم تنزيل مجموعة البيانات تلقائيًا، ويبدأ التدريب على اكتشاف الحيوانات بناءً على مجموعة بيانات الحياة البرية الأفريقية عند تشغيل مقتطف الكود أدناه.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
بمجرد تشغيل مقتطف الشيفرة أعلاه، يبدأ النموذج بالتدريب بناءً على الإعدادات التي أعطيناه إياها. لقد طلبنا من النموذج من خلال الشيفرة البرمجية أن يمر على صور التدريب 30 مرة. لذا، هذا يعني أن النموذج سينظر إلى جميع الصور في مجموعة البيانات 30 مرة، وفي كل مرة يتعلم في كل مرة أكثر قليلاً.
تخيل أنك تحاول تعلم كيفية رسم حيوان. في المرة الأولى التي ترسم فيها، قد لا يبدو الرسم جيداً، ولكن بعد التمرين مراراً وتكراراً، تبدأ في التحسن. في كل مرة تحاول فيها مرة أخرى، تتعلم من الخطأ الذي حدث وتصلحه. هذا ما تفعله كل حقبة بالنسبة للنموذج - تنظر إلى الصور وترتكب الأخطاء وتتعلم منها وتتحسن في التعرف على الحيوانات في كل مرة.
إذا كان رمز التدريب يعمل بنجاح، فسترى المخرجات التالية أثناء تقدم التدريب:
بعد اكتمال عملية التدريب، يمكنك مراجعة مقاييس أداء النموذج والتحقق من صحتها. في Google Colab، يمكنك الانتقال إلى مجلد "عمليات التشغيل"، ثم إلى مجلد "الكشف"، وأخيرًا إلى مجلد "التدريب"، حيث ستجد سجلات تعرض مؤشرات الأداء الرئيسية.
بالنسبة للمستخدمين في بيئة Python يتم حفظ نتائج التدريب افتراضيًا في دليل "التشغيل/التدريب/" ضمن دليل العمل الحالي. ينشئ كل تشغيل تدريبي دليلاً فرعيًا جديدًا (على سبيل المثال، تشغيل/التدريب/التدريب/التدريب/التكشيف، تشغيل/التدريب/التكشيف 2، إلخ)، حيث يمكنك العثور على السجلات والمخرجات الأخرى المتعلقة بالتدريب.
إذا كنت تستخدم CLI فيمكنك الوصول بسهولة إلى هذه النتائج والإعدادات باستخدام الأمر "إعداداتyolo "، والذي يسمح لك بعرض أو تعديل المسارات والتكوينات الأخرى المتعلقة بسجلات التدريب وتفاصيل التجربة.
من بين السجلات، ستجد أيضًا بعض الرسوم البيانية التي يمكنك الاطلاع عليها لمعرفة مدى نجاح عملية تدريب النموذج. تُظهر هذه الرسوم البيانية، التي تم إنشاؤها بعد اكتمال التدريب، ما إذا كان النموذج قد تحسن بمرور الوقت من خلال ارتكاب أخطاء أقل وأصبح أكثر دقة.
فهي تتتبع تقدم النموذج، وتوضح كيف انخفضت الخسارة (الفرق بين تنبؤات النموذج والقيم الفعلية) وكيف زادت الدقة أثناء التدريب. يساعدك هذا على فهم مدى جودة تعلم النموذج للتعرف على الحيوانات ومدى تحسنه بنهاية التدريب.
إليك أيضًا نظرة فاحصة على بعض المقاييس التي يمكنك استخدامها لتقييم أداء النموذج:
يمكن أن تساعد مقاييس التقييم هذه في ضبط النموذج لتحسين الدقة قبل استخدامه في التطبيقات الواقعية.
والآن بعد أن قمنا بتدريب وتقييم YOLO11 حان الوقت لاستخدامه لتحليل الصور وتشغيل الاستدلالات. يمكنك استخدام صور الاختبار من مجموعة البيانات أو صور جديدة من مصادر مختلفة.
سنستخدم مقتطف الشيفرة التالي لتشغيل النموذج على صورة في مجموعة بيانات الاختبار. يستورد الوحدات الضرورية من مكتبة Ultralytics . ثم يحدد المسار إلى ملف أوزان النموذج الأفضل ("best.pt") المخزن في دليل النتائج. يتم تحميل نموذج YOLO11 المدرّب خصيصًا باستخدام هذه الأوزان.
بعد ذلك، يتم تعيين المسار إلى صورة من مجموعة بيانات اختبار الحياة البرية الأفريقية. يتم تطبيق النموذج على هذه الصورة لاكتشاف الكائنات، ويتم إنشاء النتائج، ويتم حفظ المخرجات (مثل الكائنات المكتشفة أو التعليقات التوضيحية).
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"
img_results = model(image_path, save=True)
ستُحفظ صورة الإخراج الموضحة أدناه في مجلد "تنبؤ" الموجود داخل دليل التشغيل/الاكتشاف. بالنسبة للاختبارات اللاحقة، سيتم إنشاء مجلدات جديدة مثل "تنبؤ2" و"تنبؤ3" وهكذا لتخزين الصور.
لاختبار الصور من مصادر مختلفة، يمكنك استخدام الكود أدناه. لقد استخدمنا صورة من Pexels. يمكنك استخدام نفس الصورة أو أي صورة أخرى ذات صلة.
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)
سيتم حفظ صورة الإخراج الموضحة أدناه في المجلد المناسب.
يمكن لنماذج مثل YOLO11 اكتشاف الحيوانات وتتبعها تلقائياً، مما يتيح مجموعة متنوعة من التطبيقات العملية. فيما يلي لمحة عن بعض المجالات الرئيسية التي يمكن فيها استخدام الذكاء الاصطناعي المرئي لدعم جهود الحفاظ على الحياة البرية:
يمكن أن تلعب نماذج الرؤية الحاسوبية مثل YOLO11 دورًا رئيسيًا في الحفاظ على الحياة البرية من خلال أتمتة اكتشاف الحيوانات وتتبعها. باستخدام الذكاء الاصطناعي للرؤية، يمكننا معالجة كميات كبيرة من الصور ومقاطع الفيديو من مصادر مختلفة، مما يجعل من الممكن إجراء تقييمات دقيقة للحياة البرية.
ويُعد Ultralytics YOLO11 على وجه الخصوص، خياراً رائعاً للكشف عن الكائنات في الوقت الحقيقي، مما يجعله مناسباً تماماً لمهام مثل مراقبة مكافحة الصيد الجائر، والتحليل السلوكي، ومراقبة النظام البيئي. من خلال دمج النماذج القائمة على الذكاء الاصطناعي في جهود الحفاظ على البيئة، يمكننا حماية الأنواع بشكل أفضل، وتحسين تتبع التنوع البيولوجي، واتخاذ قرارات أكثر استنارة لحماية الحياة البرية المهددة بالانقراض.
انضم إلى مجتمعنا واستكشف مستودع GitHub لمعرفة المزيد عن رؤية الكمبيوتر. اكتشف المزيد من التطبيقات المتعلقة بالذكاء الاصطناعي في مجال الرعاية الصحية والرؤية الحاسوبية في التصنيع على صفحات الحلول الخاصة بنا. اطّلع على خيارات ترخيصUltralytics لبدء استخدام الذكاء الاصطناعي في الرؤية.