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

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

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

استخدام Albumentations لزيادة البيانات الصورية

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

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

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

الميزات الرئيسية لـ Albumentations

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

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

Albumentations augmentation examples

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

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

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

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

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

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

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

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

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

كيفية استخدام Albumentations لزيادة البيانات لتدريب YOLO26

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

التثبيت

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

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

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

الاستخدام

بعد تثبيت الحزم الضرورية، أنت جاهز لبدء استخدام 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)

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

التمويه

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

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

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

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

Albumentations Blur augmentation result

Median Blur

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

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

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

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

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

Albumentations MedianBlur augmentation

Grayscale

يقوم تحويل 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

موازنة الهستوغرام التكيفي المحدود بالتباين (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

استخدام تحويلات Albumentations المخصصة

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

كيفية تحديد التحويلات المخصصة

يمكنك تحديد قائمتك الخاصة من تحويلات 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,
)

اعتبارات هامة

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

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

حالات الاستخدام للتحويلات المخصصة

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

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

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

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

استمر في التعلم عن Albumentations

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

أهم النتائج

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

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

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

كيف يمكنني دمج 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 مع احتمالات مضبوطة بعناية لتعزيز أداء النموذج.

ما هي الفوائد الرئيسية لاستخدام Albumentations مقارنة بمكتبات الزيادة الأخرى؟

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

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

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

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

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

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

التعليقات