Meet YOLO26: next-gen vision AI.

Link to this sectionحسّن مجموعة بياناتك لتدريب YOLO26 باستخدام Albumentations#

عند بناء نماذج الرؤية الحاسوبية، يمكن أن تلعب جودة وتنوع بيانات التدريب دوراً كبيراً في مدى جودة أداء نموذجك. توفر Albumentations طريقة سريعة ومرنة وفعالة لتطبيق مجموعة واسعة من تحويلات الصور التي يمكن أن تحسن قدرة نموذجك على التكيف مع سيناريوهات العالم الحقيقي. إنها تتكامل بسهولة مع Ultralytics YOLO26 ويمكن أن تساعدك في إنشاء مجموعات بيانات قوية لمهام اكتشاف الكائنات، والتجزئة، والتصنيف.

باستخدام Albumentations، يمكنك تعزيز بيانات تدريب YOLO26 الخاصة بك بتقنيات مثل التحويلات الهندسية وتعديلات الألوان. في هذه المقالة، سنرى كيف يمكن لـ Albumentations تحسين عملية تعزيز البيانات وجعل مشاريع YOLO26 الخاصة بك أكثر تأثيراً. لنبدأ!

Link to this sectionAlbumentations لتعزيز الصور#

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

يمكنك استخدام Albumentations لتطبيق التعزيزات بسهولة على الصور، وأقنعة التجزئة، وصناديق التحديد، والنقاط الرئيسية، والتأكد من تحويل جميع عناصر مجموعة البيانات الخاصة بك معاً. وهي تعمل بسلاسة مع أطر التعلم العميق الشهيرة مثل PyTorch وTensorFlow، مما يجعلها في متناول مجموعة واسعة من المشاريع.

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

Link to this sectionالميزات الرئيسية لـ Albumentations#

تقدم Albumentations العديد من الميزات المفيدة التي تبسط عمليات تعزيز الصور المعقدة لمجموعة واسعة من تطبيقات الرؤية الحاسوبية. فيما يلي بعض الميزات الرئيسية:

  • مجموعة واسعة من التحويلات: تقدم Albumentations أكثر من 70 تحويلاً مختلفاً، بما في ذلك التغييرات الهندسية (مثل التدوير، والقلب)، وتعديلات الألوان (مثل السطوع، والتباين)، وإضافة الضوضاء (مثل ضوضاء Gaussian). يتيح وجود خيارات متعددة إنشاء مجموعات بيانات تدريب متنوعة وقوية للغاية.

Albumentations augmentation examples

  • تحسين الأداء العالي: مبنية على OpenCV وNumPy، تستخدم Albumentations تقنيات تحسين متقدمة مثل SIMD (تعليمات فردية، بيانات متعددة)، التي تعالج نقاط بيانات متعددة في وقت واحد لتسريع المعالجة. وهي تتعامل مع مجموعات البيانات الكبيرة بسرعة، مما يجعلها واحدة من أسرع الخيارات المتاحة لتعزيز الصور.

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

نظرة عامة على مستويات التعزيز المختلفة

  • نتائج القياس: عندما يتعلق الأمر بالقياس، تتفوق Albumentations باستمرار على المكتبات الأخرى، خاصة مع مجموعات البيانات الكبيرة.

Link to this sectionلماذا يجب عليك استخدام Albumentations لمشاريع Vision AI الخاصة بك؟#

فيما يتعلق بتعزيز الصور، تبرز Albumentations كأداة موثوقة لمهام الرؤية الحاسوبية. فيما يلي بعض الأسباب الرئيسية التي تجعلك تفكر في استخدامها لمشاريع Vision AI الخاصة بك:

  • واجهة برمجة تطبيقات سهلة الاستخدام (API): توفر Albumentations واجهة برمجة تطبيقات واحدة ومباشرة لتطبيق مجموعة واسعة من التعزيزات على الصور، والأقنعة، وصناديق التحديد، والنقاط الرئيسية. وهي مصممة للتكيف بسهولة مع مجموعات البيانات المختلفة، مما يجعل تحضير البيانات أبسط وأكثر كفاءة.

  • اختبار صارم للأخطاء: يمكن أن تؤدي الأخطاء في خط أنابيب التعزيز إلى تلف بيانات الإدخال بصمت، وغالباً ما تمر دون أن يلاحظها أحد ولكنها تؤدي في النهاية إلى تدهور أداء النموذج. تعالج Albumentations هذا الأمر من خلال مجموعة اختبار شاملة تساعد في اكتشاف الأخطاء مبكراً في التطوير.

  • القابلية للتوسع: يمكن استخدام Albumentations لإضافة تعزيزات جديدة بسهولة واستخدامها في خطوط أنابيب الرؤية الحاسوبية من خلال واجهة واحدة جنباً إلى جنب مع التحويلات المدمجة.

Link to this sectionكيفية استخدام Albumentations لتعزيز البيانات لتدريب YOLO26#

الآن بعد أن غطينا ماهية Albumentations وما يمكنها فعله، دعنا نلقي نظرة على كيفية استخدامها لتعزيز بياناتك لتدريب نموذج YOLO26. من السهل إعدادها لأنها تتكامل مباشرة في وضع التدريب في Ultralytics ويتم تطبيقها تلقائياً إذا كان لديك حزمة Albumentations مثبتة.

Link to this sectionالتثبيت#

لاستخدام Albumentations مع YOLO26، ابدأ بالتأكد من تثبيت الحزم الضرورية. إذا لم تكن Albumentations مثبتة، فلن يتم تطبيق التعزيزات أثناء التدريب. بمجرد الإعداد، ستكون مستعداً لإنشاء مجموعة بيانات معززة للتدريب، مع دمج Albumentations لتحسين نموذجك تلقائياً.

التثبيت
# Install the required packages
pip install albumentations ultralytics

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

Link to this sectionالاستخدام#

بعد تثبيت الحزم الضرورية، ستكون مستعداً لبدء استخدام Albumentations مع YOLO26. عند تدريب YOLO26، يتم تطبيق مجموعة من التعزيزات تلقائياً من خلال تكاملها مع Albumentations، مما يسهل تحسين أداء نموذجك.

الاستخدام
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

بعد ذلك، دعنا نلقي نظرة فاحصة على التعزيزات المحددة التي يتم تطبيقها أثناء التدريب.

Link to this sectionتمويه#

تطبق تحويل Blur في Albumentations تأثيراً ضبابياً بسيطاً على الصورة عن طريق حساب متوسط قيم البكسل داخل منطقة مربعة صغيرة، أو نواة. يتم ذلك باستخدام وظيفة cv2.blur في OpenCV، والتي تساعد في تقليل الضوضاء في الصورة، على الرغم من أنها تقلل أيضاً قليلاً من تفاصيل الصورة.

إليك المعلمات والقيم المستخدمة في هذا التكامل:

  • blur_limit: يتحكم هذا في نطاق حجم تأثير التمويه. النطاق الافتراضي هو (3, 7)، مما يعني أن حجم النواة للتمويه يمكن أن يتراوح بين 3 و7 بكسل، مع السماح بالأرقام الفردية فقط للحفاظ على توسيط التمويه.

  • p: احتمالية تطبيق التمويه. في التكامل، p=0.01، لذا هناك فرصة 1% لتطبيق هذا التمويه على كل صورة. تتيح الاحتمالية المنخفضة تأثيرات تمويه عرضية، مما يضفي القليل من التباين لمساعدة النموذج على التعميم دون طمس الصور بشكل مفرط.

Albumentations Blur augmentation result

Link to this sectionتمويه الوسيط (Median Blur)#

يطبق تحويل MedianBlur في Albumentations تأثير تمويه الوسيط على الصورة، وهو مفيد بشكل خاص لتقليل الضوضاء مع الحفاظ على الحواف. على عكس طرق التمويه النموذجية، يستخدم MedianBlur مرشح الوسيط، وهو فعال بشكل خاص في إزالة ضوضاء الملح والفلفل مع الحفاظ على الحدة حول الحواف.

إليك المعلمات والقيم المستخدمة في هذا التكامل:

  • blur_limit: تتحكم هذه المعلمة في الحد الأقصى لحجم نواة التمويه. في هذا التكامل، الافتراضي هو نطاق (3, 7)، مما يعني أن حجم نواة التمويه يتم اختياره عشوائياً بين 3 و7 بكسل، مع السماح بالقيم الفردية فقط لضمان المحاذاة الصحيحة.

  • p: يحدد احتمالية تطبيق تمويه الوسيط. هنا، p=0.01، لذا فإن التحويل لديه فرصة 1% للتطبيق على كل صورة. تضمن هذه الاحتمالية المنخفضة استخدام تمويه الوسيط باعتدال، مما يساعد النموذج على التعميم من خلال رؤية الصور بضوضاء مخفضة وحواف محفوظة من وقت لآخر.

تُظهر الصورة أدناه مثالاً لهذا التعزيز المطبق على صورة.

Albumentations MedianBlur augmentation

Link to this sectionتدرج رمادي#

يقوم تحويل ToGray في Albumentations بتحويل الصورة إلى تدرج رمادي، مما يقللها إلى تنسيق أحادي القناة ونسخ هذه القناة اختيارياً لمطابقة عدد محدد من قنوات الإخراج. يمكن استخدام طرق مختلفة لضبط كيفية حساب سطوع التدرج الرمادي، بدءاً من الحساب البسيط للمتوسط وصولاً إلى تقنيات أكثر تقدماً للإدراك الواقعي للتباين والسطوع.

إليك المعلمات والقيم المستخدمة في هذا التكامل:

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

  • method: يحدد طريقة تحويل التدرج الرمادي. الطريقة الافتراضية، "weighted_average"، تطبق صيغة (0.299R + 0.587G + 0.114B) التي تتوافق بشكل وثيق مع الإدراك البشري، مما يوفر تأثيراً طبيعياً للتدرج الرمادي. الخيارات الأخرى، مثل "from_lab" و"desaturation" و"average" و"max" و"pca"، تقدم طرقاً بديلة لإنشاء صور تدرج رمادي بناءً على احتياجات مختلفة للسرعة أو التركيز على السطوع أو الحفاظ على التفاصيل.

  • p: يتحكم في عدد المرات التي يتم فيها تطبيق تحويل التدرج الرمادي. مع p=0.01، هناك فرصة 1% لتحويل كل صورة إلى تدرج رمادي، مما يجعل من الممكن وجود مزيج من صور الألوان والتدرج الرمادي لمساعدة النموذج على التعميم بشكل أفضل.

تُظهر الصورة أدناه مثالاً لهذا التحويل للتدرج الرمادي المطبق.

Albumentations grayscale conversion

Link to this sectionمساواة الرسم البياني التكيفي المحدود للتباين (CLAHE)#

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

إليك المعلمات والقيم المستخدمة في هذا التكامل:

  • clip_limit: يتحكم في نطاق تعزيز التباين. مضبوط على نطاق افتراضي (1, 4)، وهو يحدد الحد الأقصى للتباين المسموح به في كل بلاطة. تُستخدم القيم الأعلى لمزيد من التباين ولكن قد تؤدي أيضاً إلى إدخال ضوضاء.

  • tile_grid_size: يحدد حجم شبكة البلاطات، وعادة ما يكون (صفوف، أعمدة). القيمة الافتراضية هي (8, 8)، مما يعني أن الصورة مقسمة إلى شبكة 8x8. توفر أحجام البلاطات الأصغر تعديلات أكثر محلية، بينما تخلق الأحجام الأكبر تأثيرات أقرب إلى المساواة العالمية.

  • p: احتمالية تطبيق CLAHE. هنا، p=0.01 يقدم تأثير التعزيز بنسبة 1% فقط من الوقت، مما يضمن تطبيق تعديلات التباين باعتدال للحصول على تباين عرضي في صور التدريب.

تُظهر الصورة أدناه مثالاً لتحويل CLAHE المطبق.

Albumentations CLAHE contrast enhancement

Link to this sectionاستخدام تحويلات Albumentations المخصصة#

بينما يوفر تكامل Albumentations الافتراضي مجموعة صلبة من التعزيزات، قد ترغب في تخصيص التحويلات لحالة الاستخدام الخاصة بك. مع Ultralytics YOLO26، يمكنك بسهولة تمرير تحويلات Albumentations مخصصة عبر Python API باستخدام معلمة augmentations.

Link to this sectionكيفية تحديد تحويلات مخصصة#

يمكنك تحديد قائمتك الخاصة من تحويلات Albumentations وتمريرها إلى وظيفة التدريب. هذا يحل محل تحويلات Albumentations الافتراضية مع الحفاظ على نشاط جميع تعزيزات YOLO الأخرى (مثل hsv_h وdegrees وmosaic وما إلى ذلك).

إليك مثال مع تحويلات أكثر تقدماً:

import albumentations as A

from ultralytics import YOLO

# Load model
model = YOLO("yolo26n.pt")

# Define custom transforms with various augmentation techniques
custom_transforms = [
    # Blur variations
    A.OneOf(
        [
            A.MotionBlur(blur_limit=7, p=1.0),
            A.MedianBlur(blur_limit=7, p=1.0),
            A.GaussianBlur(blur_limit=7, p=1.0),
        ],
        p=0.3,
    ),
    # Noise variations
    A.OneOf(
        [
            A.GaussNoise(var_limit=(10.0, 50.0), p=1.0),
            A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
        ],
        p=0.2,
    ),
    # Color and contrast adjustments
    A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
    A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
    A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
    # Simulate occlusions
    A.CoarseDropout(
        max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
    ),
]

# Train with custom transforms
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Link to this sectionاعتبارات هامة#

عند استخدام تحويلات Albumentations مخصصة، ضع هذه النقاط في الاعتبار:

  • Python API فقط: لا يمكن تمرير التحويلات المخصصة إلا من خلال Python API، وليس عبر CLI أو ملفات تكوين YAML.
  • تستبدل الافتراضيات: ستحل تحويلاتك المخصصة محل تحويلات Albumentations الافتراضية تماماً. تظل تعزيزات YOLO الأخرى نشطة.
  • معالجة صناديق التحديد: تتعامل Ultralytics تلقائياً مع تعديلات صناديق التحديد لمعظم التحويلات، ولكن التحويلات المكانية المعقدة قد تتطلب اختباراً إضافياً.
  • الأداء: بعض التحويلات مكلفة من الناحية الحسابية. راقب سرعة التدريب واضبطها وفقاً لذلك.
  • التوافق مع المهام: تعمل تحويلات Albumentations المخصصة مع مهام الاكتشاف والتجزئة ولكن ليس مع التصنيف (الذي يستخدم خط أنابيب تعزيز مختلف).

Link to this sectionحالات استخدام التحويلات المخصصة#

تستفيد التطبيقات المختلفة من استراتيجيات تعزيز مختلفة:

  • التصوير الطبي: استخدم التشوهات المرنة، وتشوهات الشبكة، وأنماط الضوضاء المتخصصة
  • صور الجو/الأقمار الصناعية: طبق تحويلات تحاكي ارتفاعات مختلفة، وظروف جوية، وزوايا إضاءة
  • سيناريوهات الإضاءة المنخفضة: أكد على إضافة الضوضاء وتعديلات السطوع لتدريب نماذج قوية للإضاءة الصعبة
  • الفحص الصناعي: أضف تنوعات في النسيج وعيوباً محاكاة لتطبيقات مراقبة الجودة

للحصول على قائمة كاملة بالتحويلات المتاحة ومعلماتها، تفضل بزيارة توثيق Albumentations.

لمزيد من الأمثلة التفصيلية وأفضل الممارسات حول استخدام تحويلات Albumentations المخصصة مع YOLO26، راجع دليل تعزيز بيانات YOLO.

Link to this sectionاستمر في التعلم عن Albumentations#

إذا كنت مهتماً بمعرفة المزيد عن Albumentations، تحقق من الموارد التالية للحصول على تعليمات وأمثلة أكثر تعمقاً:

  • توثيق Albumentations: يوفر التوثيق الرسمي مجموعة كاملة من التحويلات المدعومة وتقنيات الاستخدام المتقدمة.

  • دليل Ultralytics Albumentations: احصل على نظرة فاحصة على تفاصيل الوظيفة التي تسهل هذا التكامل.

  • مستودع Albumentations على GitHub: يتضمن المستودع أمثلة، ومقاييس، ومناقشات لمساعدتك على البدء في تخصيص التعزيزات.

Link to this sectionالخلاصة#

في هذا الدليل، استكشفنا الجوانب الرئيسية لـ Albumentations، وهي مكتبة Python رائعة لتعزيز الصور. ناقشنا مجموعتها الواسعة من التحويلات، والأداء المحسن، وكيف يمكنك استخدامها في مشروع YOLO26 التالي الخاص بك.

أيضاً، إذا كنت ترغب في معرفة المزيد عن تكاملات Ultralytics YOLO26 الأخرى، فقم بزيارة صفحة دليل التكامل الخاصة بنا. ستجد موارد ورؤى قيمة هناك.

Link to this sectionالأسئلة الشائعة#

Link to this sectionكيف يمكنني دمج Albumentations مع YOLO26 لتحسين تعزيز البيانات؟#

تتكامل Albumentations بسلاسة مع YOLO26 ويتم تطبيقها تلقائياً أثناء التدريب إذا كان لديك الحزمة مثبتة. إليك كيفية البدء:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=100)

يتضمن التكامل تعزيزات محسنة مثل التمويه، وتمويه الوسيط، وتحويل التدرج الرمادي، وCLAHE مع احتمالات مضبوطة بعناية لتعزيز أداء النموذج.

Link to this sectionما هي الفوائد الرئيسية لاستخدام Albumentations مقارنة بمكتبات التعزيز الأخرى؟#

تبرز Albumentations لعدة أسباب:

  1. الأداء: مبنية على OpenCV وNumPy مع تحسين SIMD لسرعة فائقة
  2. المرونة: تدعم أكثر من 70 تحويلاً عبر تعزيزات مستوى البكسل، والمستوى المكاني، ومستوى المزج
  3. التوافق: تعمل بسلاسة مع أطر عمل شهيرة مثل PyTorch وTensorFlow
  4. الموثوقية: مجموعة اختبار واسعة تمنع تلف البيانات الصامت
  5. سهولة الاستخدام: واجهة برمجة تطبيقات موحدة واحدة لجميع أنواع التعزيز

Link to this sectionما هي أنواع مهام الرؤية الحاسوبية التي يمكن أن تستفيد من تعزيز Albumentations؟#

تعمل Albumentations على تحسين العديد من مهام الرؤية الحاسوبية بما في ذلك:

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

تجعل خيارات التعزيز المتنوعة للمكتبة منها قيمة لأي مهمة رؤية تتطلب أداء نموذج قوياً.

التعليقات