رؤية YOLO 2026:

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

عندما تقوم بنناء computer vision models، فإن جودة وتنوع training data الخاصة بك يمكن أن تلعب دوراً كبيراً في مدى جودة أداء نموذجك. توفر Albumentations طريقة سريعة ومرنة وفعالة لتطبيق مجموعة واسعة من تحويلات الصور التي يمكنها تحسين قدرة نموذجك على التكيف مع سيناريوهات العالم الحقيقي. وهي تتكامل بسهولة مع Ultralytics YOLO26 ويمكن أن تساعدك في إنشاء مجموعات بيانات قوية لمهام object detection وsegmentation وclassification.

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

Albumentations لتعزيز الصور#

Albumentations هي مكتبة تعزيز صور مفتوحة المصدر تم إنشاؤها في June 2018. وهي مصممة لتبسيط وتسريع عملية تعزيز الصور في computer vision. تم تصميمها مع وضع performance والمرونة في الاعتبار، وهي تدعم العديد من تقنيات التعزيز المتنوعة، بدءاً من التحويلات البسيطة مثل التدوير والقلب وحتى التعديلات الأكثر تعقيداً مثل تغييرات السطوع والتباين. تساعد Albumentations المطورين في إنشاء مجموعات بيانات غنية ومتنوعة لمهام مثل image classification وobject detection وsegmentation.

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

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

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

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

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

Albumentations augmentation examples

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

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

Overview of the Different Levels of Augmentations

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

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

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

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

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

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

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

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

التثبيت#

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

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

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

تتحتاج أمثلة التحويل المخصصة على هذه الصفحة إلى إصدار Albumentations 1.4.22 أو أحدث، وبالتالي إلى Python 3.9 أو أحدث.

الاستخدام#

بعد تثبيت الحزم الضرورية، ستكون مستعداً لبدء استخدام 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 يطبق تأثير ضبابية بسيطة على الصورة عن طريق حساب متوسط قيم البكسل داخل مساحة مربعة صغيرة، أو نواة. يتم ذلك باستخدام دالة 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

تدرج رمادي#

يقوم تحويل 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 1.4.22 أو أحدث.

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

يمكنك تحديد قائمة التحويلات الخاصة بك لـ 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(std_range=(0.0124, 0.0277), 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(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=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 API، وليس عبر CLI أو ملفات تكوين YAML.
  • تستبدل الافتراضيات: ستحل تحويلاتك المخصصة محل تحويلات Albumentations الافتراضية تماماً. تظل تعزيزات YOLO الأخرى نشطة.
  • معالجة صناديق التحديد: تتعامل Ultralytics تلقائياً مع تعديلات صناديق التحديد لمعظم التحويلات، ولكن التحويلات المكانية المعقدة قد تتطلب اختباراً إضافياً.
  • الأداء: بعض التحويلات مكلفة من الناحية الحسابية. راقب سرعة التدريب واضبطها وفقاً لذلك.
  • التوافق مع المهام: تعمل تحويلات Albumentations المخصصة مع مهام الاكتشاف والتجزئة ولكن ليس مع التصنيف (الذي يستخدم خط أنابيب تعزيز مختلف).

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

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

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

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

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

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

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

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

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

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

الخلاصة#

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

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

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

  • تتكامل 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 لعدة أسباب:

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

    • Object Detection: يحسن متانة النموذج في مواجهة اختلافات الإضاءة والحجم والاتجاه
    • Instance Segmentation: يرفع دقة التنبؤ بالأقنعة من خلال التحويلات المتنوعة
    • Classification: يزيد من تعميم النموذج باستخدام تحسينات الألوان والهندسة
    • Pose Estimation: يساعد النماذج على التكيف مع وجهات النظر المختلفة وظروف الإضاءة

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

التعليقات