YOLO end-to-end project
325 segments
في هذا الفيديو، سأقدم
شرحاً لمشروع YOLO
متكامل، بدءاً من
التقاط الصور
وتصنيفها، وصولاً إلى
تدريب نموذج YOLO لمهمة
محددة. في الفيديو
السابق، شرحت شبكة YOLO
وكيفية استخدام كود
بايثون بسيط لتدريبها
على صور مصنفة مسبقاً.
يمكنك العثور على جميع
الأكواد التي سأعرضها
في هذا الفيديو على
صفحتي الرئيسية. إذا
لم تقم بتثبيت YOLO بعد،
يمكنك تثبيته بهذه
الطريقة. لمعرفة كيف
يعمل YOLO في الوقت
الفعلي، نقوم
باستيراد فئة YOLO
وتحميل نموذج YOLO مدرب
مسبقاً. نقوم هنا
بتحميل أصغر نموذج
يسمى YOLO 26n لأنه الأسرع
في الاستنتاج ويعمل
بشكل جيد مع مقاطع
الفيديو. إذا قمت الآن
بتشغيل الكود التالي،
فسيفتح كاميرا الويب
الافتراضية بجهازك
ويشغل YOLO على الفيديو
المباشر. إذا كان لديك
كاميرا ويب خارجية،
فقد تحتاج إلى تغيير
هذه القيمة إلى واحد.
عند تشغيل الكود، نرى
أن نموذج YOLO يحاول وضع
صناديق إحاطة حول
الأشياء ويتنبأ
بفئتها. نرى أنه يفشل
في توقع الدباسة
والنظارات والشاحن
لأنه لم يتم تدريبه
على هذه الأشياء، لكنه
تدرب على تحديد المقص،
مما يفسر سبب اكتشافه
له. ومع ذلك، إذا قمت
بتدريب نموذج YOLO على
هذه الأشياء الأربعة،
فسيعرف كيفية
اكتشافها. في هذا
الفيديو، سأوضح لك
كيفية القيام بذلك.
هذه هي الخطوات العامة
التي نحتاجها لتدريب
نموذج YOLO على مهمة
محددة. لذا، نبدأ
بالتقاط صور للأشياء.
إليك بعض الصور التي
التقطتها للمقص
والنظارات والدباسة
والشاحن. من المهم
التقاط الصور من زوايا
ومواضع مختلفة. يجب أن
تحاول خلق أكبر قدر
ممكن من التنوع في
صورك. هنا، قمت حتى
بتغيير الخلفية
لزيادة التباين. في
المجموع، التقطت
حوالي 100 صورة فقط
لتوفير الوقت، لكن
كلما التقطت صوراً
أكثر، تعلم النموذج
بشكل أفضل. بمجرد
التقاط جميع الصور،
حان وقت التصنيف، وهذا
يعني أننا نضع تسميات
ونرسم صناديق إحاطة
حول الأشياء. إليك بعض
الأمثلة على الأدوات
التي يمكنك استخدامها
لتصنيف صورك. لقد جربت
هذا التطبيق لأنه بدا
بسيطاً في الاستخدام.
لم أجرب الأدوات
الأخرى، لذا لا يمكنني
مقارنتها. دفعت حوالي
70 دولاراً مقابل
النسخة الاحترافية،
لكن أعتقد أن نسخة
المبتدئين ستعمل بشكل
جيد للتصنيفات
الأساسية. قد تجد
أيضاً نسخة تجريبية
مجانية يمكنك تجربتها
قبل الدفع لأي شيء. إذا
قمت بفتح برنامج LabelMe،
فيجب أن يبدو بهذا
الشكل. لنقم بفتح ملف
صورة. سأعرض هنا
مثالاً لصورة تحتوي
على قطة وكلب، ثم
سأوضح كيفية استخدام
الأداة للصور التي
التقطتها. تبدو الصورة
هكذا. لتدريب نموذج YOLO
، نحتاج إلى رسم
صناديق إحاطة حول
الكائنات في الصورة
وتصنيفها. إذا نقرت
هنا، فستتمكن من رسم
مستطيل أو صندوق إحاطة
حول كائن ما. بعد رسم
الصندوق حول الكائن،
يجب عليك إدخال تصنيف
هنا. وفي هذه الحالة،
ندخل "قطة" ونضغط على
موافق. لاحظ أنه يحفظ
التصنيف الذي يمكننا
إعادة استخدامه للقطط
في صور أخرى. كما أنه
يعرض التعليق
التوضيحي في الصورة
الحالية. إذا رسمنا
الآن صندوق إحاطة حول
الكائن الثاني، فإنه
يقترح تصنيف "قطة" لأن
هذا التصنيف محفوظ في
القائمة. لكن يجب
علينا تغيير هذا
التصنيف إلى "كلب". نرى
الآن أن لدينا فئتين
في قائمة التصنيفات
يمكننا إعادة
استخدامهما لصور أخرى
تشمل القطط والكلاب.
الآن، إذا انتقلت إلى
المجلد الذي توجد به
الصورة الأصلية، لاحظ
أنه تم إنشاء ملف جديد
في هذا المجلد. هذا ما
يسمى بملف JSON. يحتوي
هذا الملف على معلومات
حول الصورة
والتعليقات التوضيحية
. على سبيل المثال،
يظهر تصنيف "قطة"
للصندوق الأول. كما
يظهر إحداثيات البكسل
X و Y للزاوية العلوية
اليسرى، بالإضافة إلى
إحداثيات البكسل
للزاوية السفلية
اليمنى. تظهر نفس
المعلومات لصندوق
الإحاطة حول الكلب.
إحدى مشاكل أداة
المستطيل هي أنها
تستغرق الكثير من
الوقت لرسم هذه
الصناديق بدقة عالية.
لتسريع العملية،
يمكننا بدلاً من ذلك
استخدام أداة ذكاء
اصطناعي تتنبأ بموقع
الكائن. قم بالتغيير
من المضلع إلى القناع (
Mask). إذا نقرت الآن على
كائن، فسيقوم
تلقائياً بالتنبؤ
بصندوق حول الكائن.
سيظل ملف JSON المُنشأ
يخزن معلومات صندوق
الإحاطة، لكنه الآن
يتضمن أيضاً معلومات
القناع. هذه المعلومات
غير ضرورية لتدريب
نموذج YOLO البسيط الخاص
بنا، وسنقوم لاحقاً
بإنشاء كود بايثون
يستبعدها. لاحظ أن
الأداة تنشئ ملف JSON
واحداً لكل صورة نقوم
بتعليقها. وهكذا، يوضح
هذا كيف عملت على
تعليق صوري.
>> حان الوقت الآن لتشغيل
سكربت بايثون الذي
يجهز كل ما نحتاجه قبل
تدريب نموذج YOLO. سأشرح
الأمور العامة التي
تحدث في هذا الكود
الذي يمكنك العثور
عليه في صفحتي
الرئيسية. أولاً، يجب
عليك تغيير هذه
المسارات لتشير إلى
المجلدات التي تحتوي
على الصور وملفات JSON
على جهازك. يحدد هذا
السطر المكان الذي
سننشئ فيه لاحقاً مجلد
مجموعة بيانات YOLO،
والذي سنقوم فيه
بإعداد الهيكل الصحيح
لتدريب YOLO. سيتم
استخدام 80%من الصور
للتدريب و 20%للتحقق من
الصحة. سيقوم هذا
الكود بإنشاء
المجلدات التالية.
وداخل مجلد مجموعة
بيانات YOLO، سيقوم
بإنشاء مجلدي التدريب
والتحقق من الصحة.
وداخل هذين المجلدين،
سينشئ مجلدين جديدين
حيث سنقوم لاحقاً
بتخزين الصور
والملفات بما في ذلك
التعليقات التوضيحية.
سيقوم هذا الكود
باستخراج المعلومات
من ملفات JSON. بينما
يقوم هذا الكود بتحويل
المعلومات الموجودة
في ملفات JSON إلى
التنسيق الصحيح لـ YOLO.
على سبيل المثال، تقوم
هذه الأسطر بتحويل
إحداثيات X و Y للزاوية
العلوية اليسرى إلى
إحداثيات مركزية
مُطبعة لمربع التحديد.
بينما تقوم هذه الأسطر
بحساب العرض
والارتفاع المُطبعين
لمربع التحديد. ثم
نقوم بتقسيم مجموعة
البيانات إلى بيانات
تدريب وبيانات تحقق من
الصحة. بعد ذلك، نقوم
بحفظ الصور وملفات TXT
في مجلدات التدريب
والتحقق من الصحة
الصحيحة. بعد تشغيل
هذا الكود، يجب أن
تكون قادراً على رؤية
الصور في مجلدات
التدريب والتحقق من
الصحة داخل مجلد
مجموعة بيانات YOLO
وملفات TXT التي تم
إنشاؤها في مجلد
التصنيفات المقابل.
ستتضمن ملفات TXT
الفئات وموقع مربعات
التحديد. على سبيل
المثال، يمثل الرقم
صفر هنا فئة الشاحن.
وتمثل هذه الأرقام
إحداثيات البكسل
المركزية المُطبعة
لمربع التحديد. بينما
تظهر هذه الأرقام
العرض والارتفاع
المُطبعين لمربع
التحديد. وأخيراً،
سيقوم هذا الكود
بإنشاء ملف YAML في مجلد
مجموعة بيانات YOLO.
الذي سيحتوي على
المسارات إلى مكان
تواجد الملفات. وترميز
الفئات الأربع الخاصة
بنا. يجب أن يبدو
الهيكل النهائي
لمجموعة البيانات
بهذا الشكل. إذاً، حان
الوقت الآن لتدريب
نموذج YOLO الخاص بنا.
سنقوم بتدريب نموذج YOLO
8n الحالي باستخدام 100
دورة تدريبية وحجم
إدخال صورة يبلغ 640.
يجب علينا هنا تحديد
المسار إلى ملف YAML. بعد
الانتهاء من التدريب،
ألقِ نظرة على دليل
عمل Python النشط الخاص
بك. حيث يمكنك العثور
على معلومات حول
الأداء على مجموعة
بيانات التحقق من
الصحة. إذا كان
التدريب ناجحاً، يجب
أن تقترب دوال الخسارة
هذه من الصفر. بينما
يجب أن تقترب نتائج MAP
50 من الواحد. الآن،
انسخ هذا الملف، وهو
نموذج YOLO المدرب الخاص
بك، وضعه في مكان ما
على جهاز الكمبيوتر
الخاص بك. حان الوقت
الآن لتجربة نموذجنا
المدرب. هذا الكود هو
نفسه الذي عرضته في
بداية هذا الفيديو.
الاختلاف الوحيد هو
أننا نحدد الآن مسار
نموذج YOLO المدرب الخاص
بنا باسم best.pt. لقد
وضعت هذا الملف هنا في
مجلد مشروع YOLO. إذا قمت
بتشغيل هذا الكود، آمل
أن ترى أن YOLO يتعرف
الآن على الكائنات
التي قمت بتدريبه
عليها. كانت هذه نهاية
الفيديو حول تدريب
نموذج YOLO. شكراً على
المشاهدة.
Ask follow-up questions or revisit key timestamps.
يقدم هذا الفيديو دليلاً شاملاً حول كيفية تدريب نموذج YOLO على كائنات محددة لم يتم تدريبه عليها مسبقاً. تبدأ العملية بالتقاط مجموعة متنوعة من الصور للكائنات المستهدفة، تليها مرحلة التصنيف ورسم صناديق الإحاطة باستخدام أدوات مثل LabelMe. بعد ذلك، يتم شرح كود بايثون الذي يعالج الصور وملفات JSON الناتجة لتحويلها إلى تنسيق YOLO الصحيح وتقسيمها إلى بيانات تدريب وتحقق. أخيراً، يتم تدريب النموذج وتقييم أدائه، ثم اختباره للتأكد من قدرته على التعرف على الكائنات الجديدة بنجاح.
Videos recently processed by our community