تخطي إلى المحتوى

تدريب YOLOv5 على بيانات مخصصة

📚 يشرح هذا الدليل كيفية تدريب مجموعة البيانات المخصصة الخاصة بك باستخدام نموذج YOLOv5 🚀. يعد تدريب النماذج المخصصة خطوة أساسية في تصميم حلول الرؤية الحاسوبية لتطبيقات واقعية محددة تتجاوز اكتشاف الكائنات العام.

قبل أن تبدأ

أولاً، تأكد من إعداد البيئة الضرورية. استنسخ مستودع YOLOv5 وقم بتثبيت التبعيات المطلوبة من requirements.txt. أ بايثون >=3.8.0 بيئة مع PyTorch >=1.8 ضروري. يتم تنزيل النماذج ومجموعات البيانات تلقائيًا من أحدث YOLOv5 إصدار إذا لم يتم العثور عليها محليًا.

git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5
pip install -r requirements.txt # Install dependencies

التدريب على بيانات مخصصة

رسم تخطيطي لحلقة التعلم النشط لـ Ultralytics يوضح جمع البيانات وتصنيفها وتدريبها ونشرها وجمع الحالات الشاذة

يعد تطوير نموذج الكشف عن الكائنات المخصص عملية تكرارية:

  1. جمع وتنظيم الصور: اجمع الصور ذات الصلة بمهمتك المحددة. البيانات المتنوعة عالية الجودة أمر بالغ الأهمية. راجع دليلنا حول جمع البيانات والتعليقات التوضيحية.
  2. تصنيف الكائنات: ضع علامات توضيحية دقيقة على الكائنات التي تهمك داخل صورك.
  3. تدريب نموذج: استخدم البيانات المصنفة لتدريب نموذج YOLOv5 الخاص بك. استفد من التعلم بالنقل من خلال البدء بأوزان مُدرَّبة مسبقًا.
  4. النشر والتنبؤ: استخدم النموذج المدرب للاستدلال على بيانات جديدة غير مرئية.
  5. جمع الحالات الشاذة: حدد السيناريوهات التي يكون فيها أداء النموذج ضعيفًا (الحالات الشاذة) وأضف بيانات مماثلة إلى مجموعة البيانات الخاصة بك لتحسين المتانة. كرر الدورة.

يقدم Ultralytics HUB حلاً مبسطًا بدون تعليمات برمجية لدورة عمليات تعلم الآلة (MLOps) بأكملها، بما في ذلك إدارة مجموعة البيانات وتدريب النموذج ونشره.

تقدم Ultralytics خيارين للترخيص:

توفر Ultralytics خيارين للترخيص لاستيعاب سيناريوهات الاستخدام المتنوعة:

  • رخصة AGPL-3.0: هذه الرخصة مفتوحة المصدر المعتمدة من OSI مثالية للطلاب والباحثين والمتحمسين الشغوفين بالتعاون المفتوح وتبادل المعرفة. وهي تتطلب مشاركة الأعمال المشتقة بموجب نفس الترخيص. راجع ملف الترخيص (LICENSE) للحصول على التفاصيل الكاملة.
  • ترخيص مؤسسي: تم تصميم هذا الترخيص للتطبيقات التجارية، ويسمح بالتكامل السلس لبرامج Ultralytics ونماذج الذكاء الاصطناعي في المنتجات والخدمات التجارية دون اشتراطات المصدر المفتوح لـ AGPL-3.0. إذا كان مشروعك يتطلب نشرًا تجاريًا، فاطلب ترخيصًا مؤسسيًا.

استكشف خيارات الترخيص الخاصة بنا بشكل أكبر على صفحة ترخيص Ultralytics.

قبل البدء في التدريب، يعد إعداد مجموعة البيانات أمرًا ضروريًا.

1. إنشاء مجموعة بيانات

تتطلب نماذج YOLOv5 بيانات مُصنَّفة لتعلم الخصائص المرئية لفئات الكائنات. يعد تنظيم مجموعة البيانات الخاصة بك بشكل صحيح أمرًا أساسيًا.

1.1 إنشاء dataset.yaml

ملف تكوين مجموعة البيانات (على سبيل المثال، coco128.yaml) يحدد هيكل مجموعة البيانات وأسماء الفئات ومسارات إلى مجلدات الصور. COCO128 بمثابة مجموعة بيانات مثال صغيرة، تتكون من أول 128 صورة من COCO مجموعة البيانات. إنه مفيد للاختبار السريع لخط أنابيب التدريب وتشخيص المشكلات المحتملة مثل التجاوز.

في dataset.yaml يتضمن هيكل الملف:

  • path: الدليل الجذر الذي يحتوي على مجموعة البيانات.
  • train, val, test: مسارات نسبية من path إلى الدلائل التي تحتوي على صور أو ملفات نصية تسرد مسارات الصور لمجموعات التدريب والتحقق والاختبار.
  • names: قاموس يربط بين فهارس الفئات (بدءًا من 0) وأسماء الفئات المقابلة لها.

فيما يلي بنية coco128.yaml (عرض على GitHub):

# Dataset root directory relative to the yolov5 directory
path: coco128

# Train/val/test sets: specify directories, *.txt files, or lists
train: images/train2017 # 128 images for training
val: images/train2017 # 128 images for validation
test: # Optional path to test images

# Classes (example using 80 COCO classes)
names:
    0: person
    1: bicycle
    2: car
    # ... (remaining COCO classes)
    77: teddy bear
    78: hair drier
    79: toothbrush

1.2 الاستفادة من النماذج لترميز تلقائي

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

  • Google Gemini: تتمتع النماذج الكبيرة متعددة الوسائط مثل Gemini بقدرات قوية لفهم الصور. يمكن مطالبتها بتحديد وتحديد مواقع الكائنات داخل الصور، وإنشاء مربعات إحاطة أو أوصاف يمكن تحويلها إلى تسميات بتنسيق YOLO. استكشف إمكاناتها في دفتر البرنامج التعليمي المتوفر.
  • SAM2 (نموذج تقسيم أي شيء 2): يمكن لنماذج الأساس التي تركز على التقسيم، مثل SAM2، تحديد الكائنات وتحديدها بدقة عالية. في حين أن الأقنعة الناتجة مخصصة في المقام الأول للتقسيم، إلا أنه يمكن تحويلها غالبًا إلى تعليقات توضيحية للمربعات المحيطة المناسبة لمهام الكشف عن الكائنات.
  • YOLOWorld: يقدم هذا النموذج إمكانات الكشف عن المفردات المفتوحة. يمكنك تقديم أوصاف نصية للكائنات التي تهتم بها، ويمكن لـ YOLOWorld تحديد موقعها في الصور بدون تدريب مسبق على تلك الفئات المحددة. يمكن استخدام هذا كنقطة انطلاق لإنشاء تسميات أولية، والتي يمكن بعد ذلك تحسينها.

يمكن أن يوفر استخدام هذه النماذج خطوة "التسمية المسبقة"، مما يقلل من الجهد اليدوي المطلوب. ومع ذلك، من الضروري مراجعة وتنقيح الملصقات التي يتم إنشاؤها تلقائيًا لضمان الدقة والاتساق، حيث تؤثر الجودة بشكل مباشر على أداء نموذج YOLOv5 المدرب. بعد إنشاء الملصقات (وربما تنقيحها)، تأكد من أنها تلتزم بـ تنسيق YOLO: واحد *.txt ملف لكل صورة، مع تمثيل كل سطر لكائن كـ class_index x_center y_center width height (إحداثيات مُطوَّرة، فئة مفهرسة بصفر). إذا لم تكن هناك كائنات مهمة في الصورة، فلا يوجد *.txt هناك حاجة إلى ملف.

تنسيق YOLO *.txt مواصفات الملف دقيقة:

  • صف واحد لكل مربع إحاطة للكائن.
  • يجب أن يحتوي كل صف على: class_index x_center y_center width height.
  • يجب أن تكون الإحداثيات طبيعي إلى نطاق بين 0 و 1. لتحقيق ذلك، قسّم قيم البكسل الخاصة بـ x_center و width بإجمالي عرض الصورة، وقسمة y_center و height بإجمالي ارتفاع الصورة.
  • فهارس الفئات مفهرسة من الصفر (أي أن الفئة الأولى ممثلة بـ 0، والثاني بواسطة 1، وما إلى ذلك).

مثال لصورة مع شخصين ورابطة عنق مشروحة

ملف التصنيف المطابق للصورة أعلاه، والذي يحتوي على كائنين 'person' (فهرس الفئة 0) وكائن 'tie' واحد (فهرس الفئة 27)، سيبدو هكذا:

مثال على محتوى ملف تسمية بتنسيق YOLO للصورة المشروحة

1.3 تنظيم الدلائل

هيكلة مجموعات البيانات الدليل كما هو موضح أدناه. بشكل افتراضي، تتوقع YOLOv5 دليل مجموعة البيانات (على سبيل المثال، /coco128) ليقيم داخل /datasets المجلد الموجود بجوار ال /yolov5 دليل المستودع.

تحدد YOLOv5 تلقائيًا تسميات كل صورة عن طريق استبدال المثيل الأخير من /images/ في مسار الصورة مع /labels/. على سبيل المثال:

../datasets/coco128/images/im0.jpg # Path to the image file
../datasets/coco128/labels/im0.txt # Path to the corresponding label file

هيكل الدليل الموصى به هو:

/datasets/
└── coco128/  # Dataset root
    ├── images/
    │   ├── train2017/  # Training images
    │   │   ├── 000000000009.jpg
    │   │   └── ...
    │   └── val2017/    # Validation images (optional if using same set for train/val)
    │       └── ...
    └── labels/
        ├── train2017/  # Training labels
        │   ├── 000000000009.txt
        │   └── ...
        └── val2017/    # Validation labels (optional if using same set for train/val)
            └── ...

رسم تخطيطي يوضح بنية دليل مجموعة بيانات YOLOv5 الموصى بها

2. تحديد نموذج

اختر نموذجًا مُدرَّبًا مسبقًا لبدء عملية التدريب. البدء بأوزان مُدرَّبة مسبقًا يسرع التعلم ويحسن الأداء بشكل كبير مقارنةً بالتدريب من البداية. يوفر YOLOv5 أحجام نماذج مختلفة، يوازن كل منها بين السرعة والدقة بشكل مختلف. على سبيل المثال، YOLOv5s هو ثاني أصغر وأسرع نموذج، وهو مناسب للبيئات محدودة الموارد. راجع جدول README للحصول على مقارنة تفصيلية لجميع النماذج المتاحة.

مخطط مقارنة لنماذج YOLOv5 يوضح الحجم والسرعة والدقة

3. تدريب

ابدأ تدريب النموذج باستخدام train.py نص برمجي. تتضمن الحجج الأساسية:

  • --img: يحدد المدخلات حجم الصورة (على سبيل المثال، --img 640). الأحجام الأكبر تعطي عمومًا دقة أفضل ولكنها تتطلب المزيد من ذاكرة وحدة معالجة الرسومات GPU.
  • --batch: يحدد حجم الدفعة (على سبيل المثال، --batch 16). اختر أكبر حجم يمكن أن تتعامل معه وحدة معالجة الرسومات GPU الخاصة بك.
  • --epochs: يحدد العدد الإجمالي للتدريب حقبة (على سبيل المثال، --epochs 100). تمثل الحقبة الواحدة مرورًا كاملاً على مجموعة بيانات التدريب بأكملها.
  • --data: مسار إلى dataset.yaml ملف (مثل: --data coco128.yaml).
  • --weights: مسار إلى ملف الأوزان الأولي. باستخدام الأوزان المدربة مسبقًا (على سبيل المثال، --weights yolov5s.pt) موصى به للغاية لتحقيق تقارب أسرع ونتائج فائقة. للتدريب من البداية (لا يُنصح به إلا إذا كانت لديك مجموعة بيانات كبيرة جدًا واحتياجات محددة)، استخدم --weights '' --cfg yolov5s.yaml.

يتم تنزيل الأوزان المدربة مسبقًا تلقائيًا من أحدث إصدار YOLOv5 إذا لم يتم العثور عليها محليًا.

# Example: Train YOLOv5s on the COCO128 dataset for 3 epochs
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt

تحسين سرعة التدريب

💡 استخدم --cache ram أو --cache disk لتخزين صور مجموعة البيانات مؤقتًا في ذاكرة الوصول العشوائي (RAM) أو القرص المحلي، على التوالي. هذا يسرع التدريب بشكل كبير، خاصة عندما تكون عمليات إدخال/إخراج البيانات (I/O) تشكل عنق الزجاجة. لاحظ أن هذا يتطلب مساحة كبيرة من ذاكرة الوصول العشوائي (RAM) أو مساحة القرص.

تخزين البيانات محليًا

💡 قم دائمًا بالتدريب باستخدام مجموعات البيانات المخزنة محليًا. يمكن أن يكون الوصول إلى البيانات من محركات أقراص الشبكة (مثل Google Drive) أو التخزين عن بُعد أبطأ بشكل ملحوظ ويعيق أداء التدريب. غالبًا ما يكون نسخ مجموعة البيانات الخاصة بك إلى SSD محلي هو أفضل ممارسة.

يتم حفظ جميع مخرجات التدريب، بما في ذلك الأوزان والسجلات، في runs/train/ الدليل. تنشئ كل جلسة تدريب دليلًا فرعيًا جديدًا (على سبيل المثال، runs/train/exp, runs/train/exp2، إلخ). للحصول على تجربة عملية وتفاعلية، استكشف قسم التدريب في دفاتر البرامج التعليمية الرسمية الخاصة بنا: افتح في Colab افتح في Kaggle

4. التصور

يتكامل YOLOv5 بسلاسة مع أدوات متنوعة لتصور التقدم المحرز في التدريب، وتقييم النتائج، ومراقبة الأداء في الوقت الفعلي.

تسجيل وأتمتة ClearML 🌟 جديد

Comet متكامل تمامًا لتتبع التجارب الشامل. تصور المقاييس مباشرة، واحفظ المعلمات الفائقة، وقم بإدارة مجموعات البيانات ونقاط تفتيش النموذج، وحلل تنبؤات النموذج باستخدام لوحات Comet المخصصة التفاعلية.

البدء سهل ومباشر:

pip install comet_ml                                                          # 1. Install Comet library
export COMET_API_KEY=YOUR_API_KEY_HERE                                        # 2. Set your Comet API key (create a free account at Comet.ml)
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt # 3. Train your model - Comet automatically logs everything!

تعمق أكثر في الميزات المدعومة في دليل تكامل Comet. تعرف على المزيد حول إمكانات Comet من خلال الموقع الرسمي الخاص بهم الوثائقجرّب دفتر Comet Colab التفاعلي للاطلاع على عرض توضيحي مباشر: افتح في Colab

واجهة مستخدم Comet تعرض مقاييس التدريب والتصورات الخاصة بـ YOLOv5

تسجيل محلي

يتيح تكامل ClearML تتبعًا تفصيليًا للتجارب وإدارة إصدارات مجموعة البيانات وحتى التنفيذ عن بُعد لعمليات التدريب. قم بتنشيط ClearML بهذه الخطوات البسيطة:

  • تثبيت الحزمة: pip install clearml
  • تهيئة ClearML: تشغيل clearml-init مرة واحدة للاتصال بخادم ClearML الخاص بك (إما المستضاف ذاتيًا أو المستوى المجاني).

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

واجهة مستخدم إدارة تجارب ClearML تعرض المخططات والسجلات لتشغيل تدريب YOLOv5

الخطوات التالية

يتم تسجيل نتائج التدريب تلقائيًا باستخدام TensorBoard وحفظ باسم CSV الملفات داخل دليل التجربة المحدد (على سبيل المثال، runs/train/exp). تتضمن البيانات المسجلة:

  • فقدان التدريب والتحقق من الصحة ومقاييس الأداء.
  • صور sample_images توضح الزيادات المطبقة (مثل الفسيفساء).
  • تسميات الحقائق الأساسية جنبًا إلى جنب مع تنبؤات النموذج للفحص البصري.
  • مقاييس التقييم الرئيسية مثل منحنيات الدقة-الاسترجاع (PR).
  • مصفوفات الارتباك لتحليل تفصيلي للأداء حسب الفئة.

مثال على نتائج التسجيل المحلية بما في ذلك الرسوم البيانية وفسيفساء الصور من تدريب YOLOv5

في results.csv يتم تحديث الملف بعد كل حقبة ويتم رسمه كـ results.png بمجرد انتهاء التدريب. يمكنك أيضًا رسم أي results.csv الملف يدويًا باستخدام وظيفة الأداة المساعدة المتوفرة:

from utils.plots import plot_results

# Plot results from a specific training run directory
plot_results("runs/train/exp/results.csv")  # This will generate 'results.png' in the same directory

مثال على مخطط results.png يوضح مقاييس التدريب مثل متوسط الدقة (mAP) والدقة (precision) والاسترجاع (recall) والخسارة (loss) عبر الحقب (epochs)

5. الخطوات التالية

عند الانتهاء بنجاح من التدريب، فإن أفضل نقطة تفتيش لنموذج الأداء (best.pt) ويتم حفظه وجاهزًا للنشر أو لمزيد من التحسين. تتضمن الخطوات التالية المحتملة:

  • قم بتشغيل الاستدلال على صور أو مقاطع فيديو جديدة باستخدام النموذج المدرب عبر CLI أو Python.
  • إجراء التحقق لتقييم دقة النموذج وقدرات التعميم على تقسيمات بيانات مختلفة (مثل، مجموعة اختبار محجوزة).
  • تصدير النموذج إلى تنسيقات نشر مختلفة مثل ONNX أو TensorFlow SavedModel أو TensorRT للاستدلال الأمثل على منصات متنوعة.
  • استخدم تقنيات ضبط المعلمات الفائقة لاحتمالية الحصول على مكاسب إضافية في الأداء.
  • استمر في تحسين النموذج الخاص بك باتباع نصائح للحصول على أفضل نتائج التدريب وإضافة المزيد من البيانات المتنوعة والصعبة بشكل متكرر بناءً على تحليل الأداء.

البيئات المدعومة

توفر Ultralytics بيئات جاهزة للاستخدام ومجهزة بالتبعيات الأساسية مثل CUDA و cuDNN و Python و PyTorch، مما يسهل البدء السلس.

حالة المشروع

شارة حالة التكامل المستمر لـ YOLOv5

تشير هذه الشارة إلى أن جميع اختبارات إجراءات GitHub التكامل المستمر (CI) الخاصة بـ YOLOv5 تمر بنجاح. تغطي اختبارات CI الصارمة هذه الوظائف الأساسية، بما في ذلك التدريب و التحقق و الاستدلال و التصدير و المعايير، عبر أنظمة التشغيل macOS و Windows و Ubuntu. يتم تنفيذ الاختبارات تلقائيًا كل 24 ساعة وعند كل التزام بالتعليمات البرمجية، مما يضمن استقرارًا ثابتًا وأداءً مثاليًا.

الأسئلة الشائعة

الأسئلة الشائعة

ما الأدوات التي يمكنني استخدامها لتمييز مجموعة بيانات YOLOv5 الخاصة بي؟

يتضمن تدريب YOLOv5 على مجموعة بيانات مخصصة عدة خطوات رئيسية:

  1. إعداد مجموعة البيانات الخاصة بك: اجمع الصور وقم بتعليقها. تأكد من أن التعليقات التوضيحية بالتنسيق المطلوب تنسيق YOLO. قم بتنظيم الصور والتسميات في train/ و val/ (و اختياريا test/) directories. ضع في اعتبارك استخدام نماذج مثل Google Gemini, SAM2، أو YOLOWorld للمساعدة في عملية التصنيف أو أتمتتها (انظر القسم 1.2).
  2. إعداد البيئة الخاصة بك.: استنسخ مستودع YOLOv5 وثبت التبعيات باستخدام pip install -r requirements.txt.
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
    
  3. إنشاء تكوين مجموعة البيانات: حدد مسارات مجموعة البيانات وعدد الفئات وأسماء الفئات في dataset.yaml ملف.
  4. ابدأ التدريب: نفّذ train.py نص برمجي، مع توفير مسارات إلى dataset.yaml، الأوزان المدربة مسبقًا المطلوبة (مثل، yolov5s.pt)، وحجم الصورة، وحجم الدفعة، وعدد الحقب.
    python train.py --img 640 --batch 16 --epochs 100 --data path/to/your/dataset.yaml --weights yolov5s.pt
    

كيف يمكنني تحويل البيانات التي تم تمييزها إلى تنسيق YOLOv5؟

Ultralytics HUB عبارة عن نظام أساسي شامل مصمم لتبسيط دورة حياة تطوير نموذج YOLO بأكملها، غالبًا دون الحاجة إلى كتابة أي تعليمات برمجية. تشمل الفوائد الرئيسية ما يلي:

  • تدريب مبسط: يمكنك تدريب النماذج بسهولة باستخدام بيئات مُعدة مسبقًا وواجهة مستخدم سهلة.
  • إدارة البيانات المتكاملة: قم بتحميل مجموعات البيانات الخاصة بك والتحكم في إصداراتها وإدارتها بكفاءة داخل النظام الأساسي.
  • المراقبة في الوقت الفعلي: تتبع تقدم التدريب وتصور مقاييس الأداء باستخدام أدوات متكاملة مثل Comet أو TensorBoard.
  • ميزات التعاون: تسهل العمل الجماعي من خلال الموارد المشتركة وأدوات إدارة المشاريع ومشاركة النماذج بسهولة.
  • النشر بدون تعليمات برمجية: انشر النماذج المدربة مباشرة إلى أهداف مختلفة.

للحصول على شرح عملي، تحقق من منشور المدونة الخاص بنا: كيفية تدريب النماذج المخصصة الخاصة بك باستخدام Ultralytics HUB.

كيف يمكنني تحويل بياناتي المشروحة إلى تنسيق YOLOv5؟

سواء كنت تقوم بالتعليق يدويًا أو تستخدم أدوات آلية (مثل تلك المذكورة في القسم 1.2)، يجب أن تكون العلامات النهائية بتنسيق YOLO المحدد المطلوب بواسطة YOLOv5:

  • إنشاء واحد .txt ملف لكل صورة. يجب أن يتطابق اسم الملف مع اسم ملف الصورة (على سبيل المثال، image1.jpg يتوافق مع image1.txt). ضع هذه الملفات في labels/ دليل موازٍ لـ images/ الدليل (على سبيل المثال، ../datasets/mydataset/labels/train/).
  • كل سطر داخل .txt يمثل الملف تعليقًا توضيحيًا لكائن واحد ويتبع التنسيق: class_index center_x center_y width height.
  • إحداثيات (center_x, center_y, width, height) يجب أن يكون طبيعي (قيم بين 0.0 و 1.0) بالنسبة لأبعاد الصورة.
  • فهارس الفئات هي ذو أساس صفري (الفئة الأولى هي 0، والثاني هو 1، إلخ).

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

📚 يشرح هذا الدليل كيفية تدريب مجموعة البيانات المخصصة الخاصة بك باستخدام YOLOv5 🚀.

توفر Ultralytics تراخيص مرنة مصممة خصيصًا لتلبية الاحتياجات المختلفة:

  • رخصة AGPL-3.0: هذه الرخصة مفتوحة المصدر مناسبة للبحث الأكاديمي والمشاريع الشخصية والحالات التي يكون فيها الامتثال مفتوح المصدر مقبولاً. وهي تفرض أن تكون التعديلات والأعمال المشتقة مفتوحة المصدر أيضًا بموجب AGPL-3.0. راجع تفاصيل رخصة AGPL-3.0.
  • ترخيص مؤسسي: ترخيص تجاري مصمم للشركات التي تدمج YOLOv5 في المنتجات أو الخدمات الاحتكارية. يزيل هذا الترخيص التزامات المصدر المفتوح لـ AGPL-3.0، مما يسمح بتوزيع التعليمات البرمجية المغلقة. تفضل بزيارة صفحة الترخيص الخاصة بنا لمزيد من التفاصيل أو لطلب ترخيص مؤسسي.

حدد الترخيص الذي يتوافق بشكل أفضل مع متطلبات مشروعك ونموذج التوزيع.



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ 19 يومًا

تعليقات