تعرّف على كيفية تدريب نماذج YOLO لاكتشاف الحيوانات في البرية باستخدام مجموعة بيانات الحياة البرية الأفريقية واستخدام النموذج لتشغيل الاستدلالات على الصور غير المرئية.

تعرّف على كيفية تدريب نماذج YOLO لاكتشاف الحيوانات في البرية باستخدام مجموعة بيانات الحياة البرية الأفريقية واستخدام النموذج لتشغيل الاستدلالات على الصور غير المرئية.
إن الحياة البرية على كوكبنا متنوعة بشكل لا يصدق، من النحل الطنان إلى الأفيال الشاهقة، والحفاظ على هذا التنوع البيولوجي هو المفتاح للحفاظ على نظام بيئي متوازن. ومع ذلك، أصبحت جهود الحفظ أكثر صعوبة بسبب فقدان الموائل والصيد الجائر وتغير المناخ. كل هذه العوامل تؤثر سلبًا على أعداد الحيوانات البرية.
الطرق التقليدية لمراقبة الحيوانات، مثل التحليل اليدوي لصور كاميرات المراقبة وإجراء المسوحات الميدانية، يمكن أن تكون بطيئة وتتطلب الكثير من الموارد. غالبًا ما تفشل هذه الجهود في تغطية مناطق واسعة وتعدادات كبيرة بشكل فعال.
للتغلب على هذه القيود، يمكن استخدام الذكاء الاصطناعي (AI) كأداة مؤثرة في الحفاظ على الحياة البرية. على وجه التحديد، يمكن لنماذج الرؤية الحاسوبية مثل 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، يمكنك الانتقال إلى علامة التبويب "Runtime" في القائمة، وتحديد "Change runtime type"، وتعيين مسرع الأجهزة على وحدة معالجة الرسومات (يفضل وحدة معالجة الرسومات T4). هذا مهم لتقليل أوقات التدريب.
بعد ذلك، بغض النظر عن البيئة التي تستخدمها، تحتاج إلى تثبيت حزمة Ultralytics Python. إذا كنت تستخدم بيئة قائمة على دفتر الملاحظات (Google Colab أو Jupyter)، فقم بتشغيل الأمر التالي بعلامة تعجب (!) في البداية
pip install ultralytics
بمجرد تثبيت حزمة Ultralytics، فإن الخطوة التالية هي تحميل نموذج YOLO11 وإعداد مجموعة البيانات للتدريب. أولاً، نقوم بتحميل نموذج YOLO11، الذي تم تدريبه مسبقًا على مهام اكتشاف الكائنات العامة. يمنحنا هذا النموذج المدرب مسبقًا نقطة بداية جيدة، حيث تعلم بالفعل كيفية اكتشاف الكائنات المختلفة.
ثم، نحدد مجموعة البيانات باستخدام ملف YAML، الذي يحتوي على معلومات حول الصور والتسميات. يخبر هذا الملف النموذج بمكان العثور على مجموعة البيانات وما هي الكائنات التي يجب أن يتعلم التعرف عليها.
مجموعة بيانات الحياة البرية الأفريقية مدعومة من حزمة Ultralytics، لذلك سيتم تنزيلها تلقائيًا عند بدء التدريب، مما يوفر عليك متاعب إعدادها يدويًا.
بمجرد أن تصبح مجموعة البيانات جاهزة، يبدأ النموذج في التدريب. سيمر النموذج عبر مجموعة البيانات عدة مرات، وهي عملية تسمى التدريب على مدى عدة حقب (epochs)، لتحسين قدرته على التعرف على الحيوانات في الصور. خلال هذه العملية، سيتم تغيير حجم الصور إلى حجم ثابت للمعالجة، وسيعمل النموذج مع عدد محدد من الصور في كل مرة، وهو ما يعرف بالدفعة (batch). هذا يساعد النموذج على التعلم بكفاءة أكبر.
باختصار، يتم تحميل النموذج وتنزيل مجموعة البيانات تلقائيًا ويبدأ التدريب في العمل لاكتشاف الحيوانات بناءً على مجموعة بيانات الحياة البرية الأفريقية عند تشغيل مقتطف الشفرة أدناه.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
بمجرد تشغيل مقتطف التعليمات البرمجية أعلاه، يبدأ النموذج في التدريب بناءً على الإعدادات التي قدمناها له. لقد أخبرنا النموذج من خلال التعليمات البرمجية بالمرور عبر صور التدريب 30 مرة. لذا، فهذا يعني أن النموذج سينظر إلى جميع الصور في مجموعة البيانات 30 مرة، وفي كل مرة يتعلم المزيد.
تخيل أنك تحاول تعلم كيفية رسم حيوان. في المرة الأولى التي ترسم فيها، قد لا يبدو الرسم جيدًا، ولكن بعد التدريب مرارًا وتكرارًا، تبدأ في التحسن. في كل مرة تحاول مرة أخرى، تتعلم من الأخطاء التي حدثت وتصلحها. هذا ما تفعله كل حقبة (epoch) للنموذج - فهي تنظر إلى الصور، وترتكب أخطاء، وتتعلم منها، وتتحسن في التعرف على الحيوانات في كل مرة.
إذا كان كود التدريب يعمل بنجاح، فسترى المخرجات التالية مع تقدم التدريب:
بعد اكتمال عملية التدريب، يمكنك مراجعة والتحقق من مقاييس أداء النموذج. في Google Colab، يمكنك الانتقال إلى مجلد "runs"، ثم إلى مجلد "detect"، وأخيرًا إلى مجلد "train"، حيث ستجد سجلات تعرض مؤشرات الأداء الرئيسية.
بالنسبة للمستخدمين في بيئة Python، يتم حفظ نتائج التدريب افتراضيًا في الدليل “runs/train/” داخل دليل العمل الحالي الخاص بك. ينشئ كل تشغيل تدريب دليلاً فرعياً جديدًا (على سبيل المثال، runs/train/exp، runs/train/exp2، إلخ)، حيث يمكنك العثور على السجلات والمخرجات الأخرى المتعلقة بالتدريب.
إذا كنت تستخدم واجهة سطر الأوامر (CLI)، فيمكنك الوصول بسهولة إلى هذه النتائج والإعدادات باستخدام الأمر “yolo settings”، والذي يسمح لك بعرض أو تعديل المسارات والتكوينات الأخرى المتعلقة بسجلات التدريب وتفاصيل التجربة.
ستجد أيضًا من بين السجلات بعض الرسوم البيانية التي يمكنك الاطلاع عليها لترى مدى جودة عملية تدريب النموذج. تُظهر هذه الرسوم البيانية، التي يتم إنشاؤها بعد اكتمال التدريب، ما إذا كان النموذج قد تحسن بمرور الوقت عن طريق ارتكاب أخطاء أقل وزيادة دقته.
يتتبعون تقدم النموذج، ويظهرون كيف انخفض الفقد (الفرق بين تنبؤات النموذج والقيم الفعلية) وكيف زادت الدقة أثناء التدريب. يساعدك هذا على فهم مدى جودة تعلم النموذج للتعرف على الحيوانات ومقدار التحسن الذي حققه بحلول نهاية التدريب.
أيضًا، إليك نظرة فاحصة على بعض المقاييس التي يمكنك استخدامها لتقييم أداء النموذج:
يمكن أن تساعد مقاييس التقييم هذه في ضبط النموذج لتحسين الدقة قبل استخدامه في التطبيقات الواقعية.
الآن بعد أن قمنا بتدريب وتقييم 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)
سيتم حفظ الصورة الناتجة الموضحة أدناه في مجلد "predict" الموجود داخل دليل runs/detect. بالنسبة للاختبارات اللاحقة، سيتم إنشاء مجلدات جديدة مثل "predict2" و "predict3" وما إلى ذلك لتخزين الصور.
لاختبار الصور من مصادر مختلفة، يمكنك استخدام الكود أدناه. لقد استخدمنا صورة من 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 لتبدأ مع Vision AI.