دليل خطوة بخطوة لتدريب النماذج YOLO11 باستخدام نموذج IBM Watsonx
في الوقت الحاضر، أصبحت حلول الرؤية الحاسوبية القابلة للتطوير أكثر شيوعًا في الوقت الحاضر وتغير الطريقة التي نتعامل بها مع البيانات المرئية. ومن الأمثلة الرائعة على ذلك منصة IBM Watsonx، وهي منصة متقدمة للذكاء الاصطناعي والبيانات تعمل على تبسيط تطوير نماذج الذكاء الاصطناعي ونشرها وإدارتها. وهي توفر مجموعة كاملة لدورة حياة الذكاء الاصطناعي بأكملها والتكامل السلس مع خدمات IBM Cloud.
يمكنك تدريب نماذجUltralytics YOLO11 باستخدام IBM Watsonx. إنه خيار جيد للمؤسسات المهتمة بالتدريب الفعال للنماذج، والضبط الدقيق لمهام محددة، وتحسين أداء النماذج باستخدام أدوات قوية وإعداد سهل الاستخدام. في هذا الدليل، سنرشدك خلال عملية التدريب YOLO11 باستخدام IBM Watsonx، حيث سنغطي كل شيء بدءًا من إعداد بيئتك إلى تقييم النماذج المدربة. لنبدأ!
ما هي شركة IBM Watsonx؟
Watsonx هي منصة IBM القائمة على السحابة المصممة للذكاء الاصطناعي التوليدي التجاري والبيانات العلمية. تجتمع مكونات IBM Watsonx الثلاثة - watsonx.ai وWatsonx.data وWatsonx.governance - معًا لإنشاء منصة ذكاء اصطناعي متكاملة وجديرة بالثقة يمكنها تسريع مشاريع الذكاء الاصطناعي التي تهدف إلى حل مشاكل الأعمال. وهي توفر أدوات قوية لبناء نماذج التعلم الآلي وتدريبها ونشرها وتسهيل الاتصال بمصادر البيانات المختلفة.
وتعمل واجهته سهلة الاستخدام وقدراته التعاونية على تبسيط عملية التطوير والمساعدة في إدارة النماذج ونشرها بكفاءة. سواء للرؤية الحاسوبية، أو التحليلات التنبؤية، أو معالجة اللغة الطبيعية، أو تطبيقات الذكاء الاصطناعي الأخرى، يوفر IBM Watsonx الأدوات والدعم اللازمين لدفع عجلة الابتكار.
الميزات الرئيسية لـ IBM Watsonx
يتكون نظام IBM Watsonx من ثلاثة مكونات رئيسية: watsonx.ai، و watsonx.data، و watsonx.governance. يقدم كل مكون ميزات تلبي جوانب مختلفة من الذكاء الاصطناعي وإدارة البيانات. دعنا نلقي نظرة فاحصة عليها.
Watsonx.ai
يوفر Watsonx.ai أدوات قوية لتطوير الذكاء الاصطناعي ويوفر إمكانية الوصول إلى النماذج المخصصة المدعومة من IBM، ونماذج الطرف الثالث مثل Llama 3، ونماذج Granite الخاصة بشركة IBM. ويتضمن مختبر المطالبات لتجربة مطالبات الذكاء الاصطناعي، واستوديو الضبط لتحسين أداء النموذج مع البيانات المصنفة، ومحرك التدفقات لتبسيط تطوير تطبيقات الذكاء الاصطناعي التوليدي. كما أنه يوفر أدوات شاملة لأتمتة دورة حياة نموذج الذكاء الاصطناعي والاتصال بمختلف واجهات برمجة التطبيقات والمكتبات.
بيانات Watsonx.data
يدعم Watsonx.data كلاً من عمليات النشر السحابية والمحلية من خلال تكامل IBM Storage Fusion HCI. توفر وحدة التحكم سهلة الاستخدام وصولًا مركزيًا إلى البيانات عبر البيئات وتجعل استكشاف البيانات أمرًا سهلاً باستخدام SQL الشائعة. يعمل على تحسين أعباء العمل باستخدام محركات استعلام فعالة مثل Presto وSpark، ويسرّع رؤى البيانات باستخدام طبقة دلالية مدعومة بالذكاء الاصطناعي، ويتضمن قاعدة بيانات متجهة لملاءمة الذكاء الاصطناعي، ويدعم تنسيقات البيانات المفتوحة لسهولة مشاركة التحليلات وبيانات الذكاء الاصطناعي.
واتسونx.الحكم
يعمل نظام Watsonx.governance على تسهيل الامتثال من خلال تحديد التغييرات التنظيمية وتطبيق السياسات تلقائيًا. كما أنها تربط المتطلبات ببيانات المخاطر الداخلية وتوفر صحائف حقائق محدثة بالذكاء الاصطناعي. وتساعد المنصة على إدارة المخاطر من خلال التنبيهات والأدوات اللازمة للكشف عن المشكلات مثل التحيز والانحراف. كما أنها تعمل على أتمتة مراقبة دورة حياة الذكاء الاصطناعي وتوثيقها، وتنظم عملية تطوير الذكاء الاصطناعي من خلال مخزون النماذج، وتعزز التعاون من خلال لوحات المعلومات وأدوات إعداد التقارير سهلة الاستخدام.
كيفية تدريب YOLO11 باستخدام نظام واتسون من IBM Watsonx
يمكنك استخدام IBM Watsonx لتسريع سير عمل تدريب النماذج YOLO11 الخاص بك .
المتطلبات الأساسية
تحتاج إلى حساب IBM Cloud لإنشاء مشروع watsonx.ai، وستحتاج أيضًا إلى حساب Kaggle لتحميل مجموعة البيانات.
الخطوة 1: قم بإعداد بيئتك
أولاً، ستحتاج إلى إعداد حساب IBM لاستخدام دفتر Jupyter Notebook. قم بتسجيل الدخول إلى watsonx.ai باستخدام حساب IBM Cloud الخاص بك.
بعد ذلك، قم بإنشاء مشروع watsonx.ai، ودفتر ملاحظات Jupyter.
بمجرد القيام بذلك، ستفتح لك بيئة دفتر ملاحظات لتحميل مجموعة البيانات الخاصة بك. يمكنك استخدام الشيفرة من هذا البرنامج التعليمي لمعالجة مهمة تدريب نموذج بسيط للكشف عن الكائنات.
الخطوة 2: تثبيت المكتبات ذات الصلة واستيرادها
بعد ذلك، يمكنك تثبيت مكتبات Python الضرورية واستيرادها.
التركيب
للاطلاع على الإرشادات التفصيلية وأفضل الممارسات المتعلقة بعملية التثبيت، راجع دليل التثبيتUltralytics . أثناء تثبيت الحزم المطلوبة YOLO11 ، إذا واجهت أي صعوبات، راجع دليل المشكلات الشائعة للحصول على الحلول والنصائح.
بعد ذلك، يمكنك استيراد الحزم المطلوبة.
استيراد المكتبات ذات الصلة
الخطوة 3: تحميل البيانات
في هذا البرنامج التعليمي، سنستخدم مجموعة بيانات القمامة البحرية المتاحة على Kaggle. باستخدام مجموعة البيانات هذه، سنقوم بتدريب نموذج YOLO11 مخصص لاكتشاف وتصنيف القمامة والأجسام البيولوجية في الصور تحت الماء.
يمكننا تحميل مجموعة البيانات مباشرةً في دفتر الملاحظات باستخدام واجهة برمجة تطبيقات Kaggle. أولاً، قم بإنشاء حساب Kaggle مجاني. بمجرد إنشاء حساب، ستحتاج إلى إنشاء مفتاح API. يمكن العثور على إرشادات إنشاء مفتاحك في وثائق Kaggle API تحت قسم "بيانات اعتماد واجهة برمجة التطبيقات".
انسخ والصق اسم مستخدم Kaggle ومفتاح واجهة برمجة التطبيقات في الكود التالي. ثم قم بتشغيل الكود لتثبيت واجهة برمجة التطبيقات وتحميل مجموعة البيانات في Watsonx.
بعد تثبيت Kaggle، يمكننا تحميل مجموعة البيانات إلى Watsonx.
تحميل البيانات
# Replace "username" string with your username
os.environ["KAGGLE_USERNAME"] = "username"
# Replace "apiKey" string with your key
os.environ["KAGGLE_KEY"] = "apiKey"
# Load dataset
os.system("kaggle datasets download atiqishrak/trash-dataset-icra19 --unzip")
# Store working directory path as work_dir
work_dir = os.getcwd()
# Print work_dir path
print(os.getcwd())
# Print work_dir contents
print(os.listdir(f"{work_dir}"))
# Print trash_ICRA19 subdirectory contents
print(os.listdir(f"{work_dir}/trash_ICRA19"))
بعد تحميل مجموعة البيانات، قمنا بطباعة دليل العمل وحفظه. كما قمنا بطباعة محتويات دليل العمل لدينا للتأكد من تحميل مجموعة البيانات "trash_ICRA19" بشكل صحيح.
إذا رأيت "trash_ICRA19" بين محتويات الدليل، فهذا يعني أنه تم تحميله بنجاح. يجب أن ترى ثلاثة ملفات/مجلدات: أ config.yaml
ملف، أ videos_for_testing
الدليل، و dataset
الدليل. سنتجاهل دليل videos_for_testing
الدليل، لذا لا تتردد في حذفه.
سوف نستخدم ملف config.yaml ومحتويات دليل مجموعة البيانات لتدريب نموذج اكتشاف الكائنات لدينا. فيما يلي عينة من صورة من مجموعة بيانات القمامة البحرية.
الخطوة 4: المعالجة المسبقة للبيانات
لحسن الحظ، فإن جميع التسميات في مجموعة بيانات القمامة البحرية منسقة بالفعل كملفات YOLO .txt. ومع ذلك، نحن بحاجة إلى إعادة ترتيب بنية أدلة الصور والتسميات من أجل مساعدة نموذجنا على معالجة الصورة والتسميات. في الوقت الحالي، يتبع دليل مجموعة البيانات المحملة لدينا هذه البنية:
ولكن، تتطلب نماذج YOLO افتراضيًا صورًا وتسميات منفصلة في دلائل فرعية ضمن تقسيم القطار/التقييم/الاختبار. نحتاج إلى إعادة تنظيم الدليل في الهيكل التالي:
لإعادة تنظيم دليل مجموعة البيانات، يمكننا تشغيل البرنامج النصي التالي:
المعالجة المسبقة للبيانات
# Function to reorganize dir
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
# Create image and label subdirs if non-existent
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
# Move images and labels to respective subdirs
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
# Delete .xml files
elif filename.endswith(".xml"):
os.remove(os.path.join(subdir_path, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)
بعد ذلك، نحتاج إلى تعديل ملف .yaml لمجموعة البيانات. هذا هو الإعداد الذي سنستخدمه في ملف .yaml الخاص بنا. تبدأ أرقام معرّفات الفئات من 0:
path: /path/to/dataset/directory # root directory for dataset
train: train/images # train images subdirectory
val: train/images # validation images subdirectory
test: test/images # test images subdirectory
# Classes
names:
0: plastic
1: bio
2: rov
قم بتشغيل النص البرمجي التالي لحذف المحتويات الحالية من config.yaml واستبدالها بالمحتويات أعلاه التي تعكس بنية دليل مجموعة البيانات الجديدة. تأكد من استبدال جزء work_dir من مسار الدليل الجذر في السطر 4 بمسار دليل العمل الذي استرجعناه سابقًا. اترك تعريفات الدليل الفرعي للقطار و val و test الفرعية. أيضًا، لا تغير {work_dir} في السطر 23 من الكود.
تحرير ملف .yaml
# Contents of new confg.yaml file
def update_yaml_file(file_path):
data = {
"path": "work_dir/trash_ICRA19/dataset",
"train": "train/images",
"val": "train/images",
"test": "test/images",
"names": {0: "plastic", 1: "bio", 2: "rov"},
}
# Ensures the "names" list appears after the sub/directories
names_data = data.pop("names")
with open(file_path, "w") as yaml_file:
yaml.dump(data, yaml_file)
yaml_file.write("\n")
yaml.dump({"names": names_data}, yaml_file)
if __name__ == "__main__":
file_path = f"{work_dir}/trash_ICRA19/config.yaml" # .yaml file path
update_yaml_file(file_path)
print(f"{file_path} updated successfully.")
الخطوة 5: تدريب النموذج YOLO11
قم بتشغيل كود سطر الأوامر التالي لضبط نموذج YOLO11 الافتراضي المُعد مسبقًا.
تدريب النموذج YOLO11
إليك نظرة فاحصة على المعلمات في أمر تدريب النموذج:
- المهمة: تحدد مهمة الرؤية الحاسوبية التي تستخدم لها نموذج YOLO ومجموعة البيانات المحددة.
- الوضع: يشير إلى الغرض الذي تقوم بتحميل النموذج والبيانات المحددة من أجله. بما أننا نقوم بتدريب نموذج، يتم ضبطه على "تدريب". لاحقًا، عندما نختبر أداء النموذج، سنضبطه على "تنبؤ".
- الحقب الزمنية: هذا يحدد عدد المرات التي سيمر فيها YOLO11 عبر مجموعة البيانات بأكملها.
- دفعة: تحدد القيمة العددية أحجام دفعات التدريب. الدفعات هي عدد الصور التي يعالجها النموذج قبل أن يقوم بتحديث معلماته.
- lr0: يحدد معدل التعلم الأولي للنموذج.
- المؤامرات: يوجه YOLO لإنشاء وحفظ المخططات الخاصة بمقاييس التدريب والتقييم الخاصة بالنموذج.
للحصول على فهم مفصل لعملية التدريب على النموذج وأفضل الممارسات، راجع دليل التدريب على النموذجYOLO11 . سيساعدك هذا الدليل على تحقيق أقصى استفادة من تجاربك والتأكد من أنك تستخدم YOLO11 بفعالية.
الخطوة 6: اختبار النموذج
يمكننا الآن تشغيل الاستدلال لاختبار أداء نموذجنا المضبوط بدقة:
اختبر النموذج YOLO11
يُنشئ هذا النص البرمجي الموجز تسميات متوقعة لكل صورة في مجموعة الاختبار، بالإضافة إلى ملفات صور الإخراج الجديدة التي تراكب المربع المحيط المتوقع فوق الصورة الأصلية.
يتم حفظ التسميات .txt المتوقعة لكل صورة عبر save_txt=True
ويتم إنشاء صور الإخراج مع تراكبات المربع المحدود من خلال وسيطة save=True
الحجة.
المتغير conf=0.5
يُعلم النموذج بتجاهل جميع التنبؤات التي يقل مستوى الثقة فيها عن 50%.
وأخيراً, iou=.5
يوجه النموذج لتجاهل المربعات في نفس الفئة بتداخل 50% أو أكثر. يساعد على تقليل المربعات المكررة المحتملة التي تم إنشاؤها لنفس الكائن.
يمكننا تحميل الصور مع تراكبات المربعات المحدودة المتوقعة لعرض كيفية أداء نموذجنا على عدد قليل من الصور.
تنبؤات العرض
يعرض الرمز أعلاه عشر صور من مجموعة الاختبار مع مربعاتها المحدودة المتوقعة، مصحوبة بتسميات أسماء الفئات ومستويات الثقة.
الخطوة 7: تقييم النموذج
يمكننا إنتاج تصورات لدقة النموذج واستدعائه لكل فئة. تُحفظ هذه التصورات في الدليل الرئيسي، ضمن مجلد التدريب. يتم عرض درجة الدقة في P_curve.png:
يُظهر الرسم البياني زيادة أسية في الدقة مع زيادة مستوى ثقة النموذج في التنبؤات. ومع ذلك، فإن دقة النموذج لم تستقر بعد عند مستوى ثقة معين بعد حقبتين.
يعرض الرسم البياني للاستدعاء (R_curve.png) اتجاهًا عكسيًا:
على عكس الدقة، يتحرك الاستدعاء في الاتجاه المعاكس، حيث يظهر استدعاء أكبر مع حالات الثقة الأقل واستدعاء أقل مع حالات الثقة الأعلى. هذا مثال مناسب للمفاضلة في الدقة والاستدعاء لنماذج التصنيف.
الخطوة 8: حساب التقاطع على الاتحاد
يمكنك قياس دقة التنبؤ عن طريق حساب IoU بين المربع المحدود المتوقع والمربع المحدود الحقيقي لنفس الكائن. راجع البرنامج التعليمي لشركة IBM حول التدريب YOLO11 لمزيد من التفاصيل.
الملخص
استكشفنا ميزات IBM Watsonx الرئيسية، وكيفية تدريب نموذج YOLO11 باستخدام IBM Watsonx. كما رأينا أيضًا كيف يمكن ل IBM Watsonx تحسين سير عمل الذكاء الاصطناعي لديك باستخدام أدوات متقدمة لبناء النماذج وإدارة البيانات والامتثال.
لمزيد من التفاصيل حول الاستخدام، تفضل بزيارة وثائق IBM Watsonx الرسمية.
تأكد أيضًا من مراجعة صفحة دليل التكاملUltralytics ، لمعرفة المزيد عن عمليات التكامل المختلفة والمثيرة.
الأسئلة الشائعة
كيف يمكنني تدريب نموذج YOLO11 باستخدام IBM Watsonx؟
لتدريب نموذج YOLO11 باستخدام IBM Watsonx، اتبع الخطوات التالية:
- قم بإعداد بيئتك: أنشئ حساب IBM Cloud وقم بإعداد مشروع Watsonx.ai. استخدم Jupyter Notebook لبيئة البرمجة الخاصة بك.
- تثبيت المكتبات: تثبيت المكتبات الضرورية مثل
torch
,opencv
وultralytics
. - تحميل البيانات: استخدم واجهة برمجة تطبيقات Kaggle API لتحميل مجموعة بياناتك إلى Watsonx.
- بيانات ما قبل المعالجة: قم بتنظيم مجموعة البيانات الخاصة بك في بنية الدليل المطلوبة وقم بتحديث
.yaml
ملف التكوين. - تدريب النموذج: استخدم واجهة سطر الأوامر YOLO لتدريب نموذجك بمعلمات محددة مثل
epochs
,batch size
وlearning rate
. - الاختبار والتقييم: قم بتشغيل الاستدلال لاختبار النموذج وتقييم أدائه باستخدام مقاييس مثل الدقة والاستدعاء.
للحصول على تعليمات مفصلة، راجع دليل التدريب على نموذجYOLO11 .
ما هي الميزات الرئيسية لبرنامج IBM Watsonx لتدريب نماذج الذكاء الاصطناعي؟
يقدم IBM Watsonx العديد من الميزات الرئيسية لتدريب نماذج الذكاء الاصطناعي:
- Watsonx.ai: يوفر أدوات لتطوير الذكاء الاصطناعي، بما في ذلك الوصول إلى النماذج المخصصة المدعومة من IBM ونماذج الطرف الثالث مثل Llama 3. ويتضمن مختبر Prompt Lab، واستوديو الضبط، ومحرك التدفقات لإدارة دورة حياة الذكاء الاصطناعي الشاملة.
- Watsonx.data: يدعم عمليات النشر السحابية والمحلية، ويوفر وصولاً مركزيًا إلى البيانات، ومحركات استعلام فعالة مثل Presto وSpark، وطبقة دلالية مدعومة بالذكاء الاصطناعي.
- Watsonx.governance: يعمل على أتمتة الامتثال، ويدير المخاطر من خلال التنبيهات، ويوفر أدوات لاكتشاف المشكلات مثل التحيز والانحراف. كما يتضمن أيضاً لوحات المعلومات وأدوات إعداد التقارير للتعاون.
لمزيد من المعلومات، قم بزيارة الوثائق الرسمية لـ IBM Watsonx.
لماذا يجب استخدام IBM Watsonx لتدريب النماذج Ultralytics YOLO11 ؟
تُعد IBM Watsonx خيارًا ممتازًا لتدريب نماذج Ultralytics YOLO11 نظرًا لما توفره من مجموعة شاملة من الأدوات التي تعمل على تبسيط دورة حياة الذكاء الاصطناعي. تشمل المزايا الرئيسية ما يلي:
- قابلية التوسع: قم بتوسيع نطاق تدريبك النموذجي بسهولة باستخدام خدمات IBM Cloud.
- التكامل: التكامل بسلاسة مع مختلف مصادر البيانات وواجهات برمجة التطبيقات.
- واجهة سهلة الاستخدام: تبسط عملية التطوير من خلال واجهة تعاونية وسهلة الاستخدام.
- أدوات متقدمة: الوصول إلى أدوات قوية مثل مختبر الموجهات واستوديو الضبط ومحرك التدفقات لتحسين أداء النموذج.
تعرف على المزيد حول Ultralytics YOLO11 وكيفية تدريب النماذج باستخدام IBM Watsonx في دليل التكامل الخاص بنا.
كيف يمكنني معالجة مجموعة البيانات الخاصة بي مسبقًا لتدريب YOLO11 على IBM Watsonx؟
لمعالجة مجموعة بياناتك مسبقًا من أجل تدريب YOLO11 على IBM Watsonx:
- تنظيم الدلائل: تأكد من أن مجموعة البيانات الخاصة بك تتبع بنية الدليل YOLO مع وجود دلائل فرعية منفصلة للصور والتسميات داخل تقسيم القطار/التقييم/الاختبار.
- تحديث ملف .yaml: تعديل
.yaml
ملف التكوين ليعكس بنية الدليل وأسماء الفئات الجديدة. - تشغيل البرنامج النصي للمعالجة المسبقة: استخدم برنامجًا نصيًا Python لإعادة تنظيم مجموعة البيانات وتحديث
.yaml
الملف وفقًا لذلك.
إليك نموذج برنامج نصي لتنظيم مجموعة البيانات الخاصة بك:
import os
import shutil
def organize_files(directory):
for subdir in ["train", "test", "val"]:
subdir_path = os.path.join(directory, subdir)
if not os.path.exists(subdir_path):
continue
images_dir = os.path.join(subdir_path, "images")
labels_dir = os.path.join(subdir_path, "labels")
os.makedirs(images_dir, exist_ok=True)
os.makedirs(labels_dir, exist_ok=True)
for filename in os.listdir(subdir_path):
if filename.endswith(".txt"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(labels_dir, filename))
elif filename.endswith(".jpg") or filename.endswith(".png") or filename.endswith(".jpeg"):
shutil.move(os.path.join(subdir_path, filename), os.path.join(images_dir, filename))
if __name__ == "__main__":
directory = f"{work_dir}/trash_ICRA19/dataset"
organize_files(directory)
لمزيد من التفاصيل، راجع دليل المعالجة المسبقة للبيانات.
ما هي المتطلبات الأساسية لتدريب نموذج YOLO11 على IBM Watsonx؟
قبل أن تبدأ في تدريب نموذج YOLO11 على IBM Watsonx، تأكد من أن لديك المتطلبات الأساسية التالية:
- حساب IBM Cloud: أنشئ حساباً على IBM Cloud للوصول إلى Watsonx.ai.
- حساب Kaggle: لتحميل مجموعات البيانات، ستحتاج إلى حساب Kaggle ومفتاح API.
- دفتر جوبيتر: قم بإعداد بيئة Jupyter Notebook داخل Watsonx.ai للترميز والتدريب على النماذج.
لمزيد من المعلومات حول إعداد بيئتك، تفضل بزيارة دليل التثبيتUltralytics .