حسّن مجموعة بياناتك لتدريب YOLO26 باستخدام Albumentations#
عند إنشاء نماذج الرؤية الحاسوبية، يمكن أن تؤدي جودة بيانات التدريب وتنوعها دورًا كبيرًا في مدى جودة أداء نموذجك. توفر Albumentations طريقة سريعة ومرنة وفعّالة لتطبيق مجموعة واسعة من تحويلات الصور التي يمكن أن تحسّن قدرة نموذجك على التكيف مع سيناريوهات العالم الحقيقي. كما تتكامل بسهولة مع Ultralytics YOLO26، ويمكن أن تساعدك في إنشاء مجموعات بيانات قوية لمهام اكتشاف الكائنات والتجزئة والتصنيف.
باستخدام Albumentations، يمكنك تعزيز بيانات تدريب YOLO26 بتقنيات مثل التحويلات الهندسية وتعديلات الألوان. في هذه المقالة، سنرى كيف يمكن لـ Albumentations تحسين عملية زيادة البيانات وجعل مشروعات YOLO26 أكثر تأثيرًا. لنبدأ!
Albumentations لزيادة الصور#
Albumentations هي مكتبة مفتوحة المصدر لزيادة الصور، أُنشئت في يونيو 2018. صُممت لتبسيط عملية زيادة الصور وتسريعها في الرؤية الحاسوبية. وقد أُنشئت مع التركيز على الأداء والمرونة، وتدعم العديد من تقنيات الزيادة المتنوعة، بدءًا من التحويلات البسيطة مثل التدوير والقلب، وصولًا إلى التعديلات الأكثر تعقيدًا مثل تغيير السطوع والتباين. تساعد Albumentations المطورين على إنشاء مجموعات بيانات غنية ومتنوعة لمهام مثل تصنيف الصور واكتشاف الكائنات والتجزئة.
يمكنك استخدام Albumentations لتطبيق التحويرات بسهولة على الصور، أقنعة التقسيم، مربعات الإحاطة، ونقاط المفتاح، والتأكد من تحويل جميع عناصر مجموعة البيانات معاً. يعمل بسلاسة مع أطر عمل التعلم العميق الشائعة مثل PyTorch وTensorFlow، مما يجعله سهل الوصول لمجموعة واسعة من المشاريع.
كذلك، تُعد Albumentations خيارًا ممتازًا للزيادة، سواء كنت تتعامل مع مجموعات بيانات صغيرة أو مهام رؤية حاسوبية واسعة النطاق. فهي تضمن معالجة سريعة وفعّالة، وتقلل الوقت المستغرق في إعداد البيانات. وفي الوقت نفسه، تساعد على تحسين أداء النموذج، مما يجعل نماذجك أكثر فعالية في تطبيقات العالم الحقيقي.
الميزات الرئيسية في Albumentations#
توفر Albumentations العديد من الميزات المفيدة التي تبسّط عمليات زيادة الصور المعقدة لمجموعة واسعة من تطبيقات الرؤية الحاسوبية. فيما يلي بعض الميزات الرئيسية:
- مجموعة واسعة من التحويلات: توفر Albumentations أكثر من 70 تحويلًا مختلفًا، بما في ذلك التغييرات الهندسية (مثل التدوير والقلب)، وتعديلات الألوان (مثل السطوع والتباين)، وإضافة الضوضاء (مثل ضوضاء Gaussian). ويتيح تعدد الخيارات إنشاء مجموعات بيانات تدريب شديدة التنوع والمتانة.
-
تحسين الأداء بدرجة عالية: بُنيت Albumentations على OpenCV وNumPy، وتستخدم تقنيات تحسين متقدمة مثل SIMD (تعليمة واحدة، بيانات متعددة)، التي تعالج نقاط بيانات متعددة في الوقت نفسه لتسريع المعالجة. وهي تتعامل مع مجموعات البيانات الكبيرة بسرعة، مما يجعلها من أسرع الخيارات المتاحة لزيادة الصور.
-
ثلاثة مستويات للزيادة: تدعم Albumentations ثلاثة مستويات للزيادة: التحويلات على مستوى البكسل، والتحويلات على المستوى المكاني، والتحويلات على مستوى المزج. تؤثر التحويلات على مستوى البكسل في الصور المدخلة فقط، دون تغيير الأقنعة أو مربعات الإحاطة أو النقاط المفتاحية. أما التحويلات على المستوى المكاني، فتحوّل الصورة وعناصرها، مثل الأقنعة ومربعات الإحاطة، معًا. وعلاوة على ذلك، تُعد التحويلات على مستوى المزج طريقة فريدة لزيادة البيانات، إذ تجمع صورًا متعددة في صورة واحدة.

- نتائج القياس: عند إجراء القياسات، تتفوق Albumentations باستمرار على المكتبات الأخرى، لا سيما مع مجموعات البيانات الكبيرة.
لماذا ينبغي استخدام Albumentations في مشروعات الذكاء الاصطناعي للرؤية؟#
فيما يتعلق بزيادة الصور، تتميز Albumentations بوصفها أداة موثوقة لمهام الرؤية الحاسوبية. فيما يلي بعض الأسباب الرئيسية التي تدعوك إلى التفكير في استخدامها لمشروعات الذكاء الاصطناعي للرؤية:
-
واجهة API سهلة الاستخدام: توفر Albumentations واجهة API واحدة ومباشرة لتطبيق مجموعة واسعة من الزيادات على الصور والأقنعة ومربعات الإحاطة والنقاط المفتاحية. وقد صُممت للتكيف بسهولة مع مجموعات البيانات المختلفة، مما يجعل إعداد البيانات أبسط وأكثر كفاءة.
-
اختبار صارم للأخطاء: يمكن للأخطاء في مسار زيادة البيانات أن تفسد بيانات الإدخال بصمت، وغالبًا ما تمر دون ملاحظة، لكنها تؤدي في النهاية إلى تدهور أداء النموذج. تعالج Albumentations ذلك من خلال مجموعة اختبارات شاملة تساعد على اكتشاف الأخطاء مبكرًا أثناء التطوير.
-
القابلية للتوسعة: يمكن استخدام Albumentations لإضافة زيادات جديدة بسهولة واستخدامها في مسارات الرؤية الحاسوبية عبر واجهة واحدة، إلى جانب التحويلات المضمّنة.
كيفية استخدام Albumentations لزيادة البيانات من أجل تدريب YOLO26#
بعد أن استعرضنا ماهية Albumentations وما يمكنها فعله، لنلقِ نظرة على كيفية استخدامها لزيادة بياناتك من أجل تدريب نموذج YOLO26. من السهل إعدادها لأنها تتكامل مباشرةً مع وضع تدريب Ultralytics، وتُطبّق تلقائيًا إذا كانت حزمة 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% لتطبيق هذا التشويش على كل صورة. ويسمح الاحتمال المنخفض بتطبيق تأثيرات التشويش من حين لآخر، وإدخال قدر من التنوع لمساعدة النموذج على التعميم دون الإفراط في تشويش الصور.
التشويش الوسيط#
يطبّق تحويل MedianBlur في Albumentations تأثير التشويش الوسيط على الصورة، وهو مفيد خصوصًا لتقليل الضوضاء مع الحفاظ على الحواف. وعلى خلاف طرق التشويش التقليدية، يستخدم MedianBlur مرشحًا وسيطًا فعالًا بصورة خاصة في إزالة ضوضاء الملح والفلفل مع الحفاظ على الحدة حول الحواف.
فيما يلي المعلمات والقيم المستخدمة في هذا التكامل:
-
blur_limit: تتحكم هذه المعلمة في الحد الأقصى لحجم نواة التشويش. في هذا التكامل، يكون النطاق الافتراضي (3, 7)، ما يعني اختيار حجم نواة التشويش عشوائيًا بين 3 و7 بكسلات، مع السماح بالقيم الفردية فقط لضمان المحاذاة الصحيحة.
-
p: يحدد احتمال تطبيق التشويش الوسيط. هنا، p=0.01، لذا توجد فرصة بنسبة 1% لتطبيق التحويل على كل صورة. ويضمن هذا الاحتمال المنخفض استخدام التشويش الوسيط باعتدال، مما يساعد النموذج على التعميم من خلال عرض صور ذات ضوضاء أقل وحواف محفوظة من حين لآخر.
توضح الصورة أدناه مثالًا على تطبيق هذه الزيادة على صورة.
التدرج الرمادي#
يحوّل تحويل 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% لتحويل كل صورة إلى تدرج رمادي، مما يتيح مزيجًا من الصور الملونة وصور التدرج الرمادي لمساعدة النموذج على التعميم بصورة أفضل.
توضح الصورة أدناه مثالًا على تطبيق تحويل التدرج الرمادي هذا.
موازنة المدرج التكراري التكيفية المحدودة التباين (CLAHE)#
يطبّق تحويل CLAHE في Albumentations تقنية موازنة المدرج التكراري التكيفية المحدودة التباين (CLAHE)، وهي تقنية تعزز تباين الصورة من خلال موازنة المدرج التكراري في مناطق محلية (بلاطات) بدلًا من الصورة بأكملها. وتنتج CLAHE تأثير تحسين متوازنًا، متجنبةً التباين المفرط الذي قد ينتج عن موازنة المدرج التكراري القياسية، لا سيما في المناطق منخفضة التباين مبدئيًا.
فيما يلي المعلمات والقيم المستخدمة في هذا التكامل:
-
clip_limit: يتحكم في نطاق تحسين التباين. ويُضبط افتراضيًا على النطاق (1, 4)، ويحدد الحد الأقصى للتباين المسموح به في كل بلاطة. وتُستخدم القيم الأعلى للحصول على تباين أكبر، لكنها قد تؤدي أيضًا إلى إدخال ضوضاء.
-
tile_grid_size: يحدد حجم شبكة البلاطات، عادةً على شكل (الصفوف، الأعمدة). والقيمة الافتراضية هي (8, 8)، ما يعني تقسيم الصورة إلى شبكة بحجم 8x8. وتوفر أحجام البلاطات الأصغر تعديلات أكثر محلية، بينما تُنشئ الأحجام الأكبر تأثيرات أقرب إلى الموازنة العامة.
-
p: احتمال تطبيق CLAHE. هنا، يضيف p=0.01 تأثير التحسين بنسبة 1% فقط من المرات، مما يضمن تطبيق تعديلات التباين باعتدال لإدخال تنوع عرضي في صور التدريب.
توضح الصورة أدناه مثالًا على تطبيق تحويل CLAHE.
استخدام تحويلات Albumentations مخصصة#
مع أن التكامل الافتراضي مع Albumentations يوفر مجموعة قوية من الزيادات، فقد ترغب في تخصيص التحويلات لحالة الاستخدام الخاصة بك. باستخدام Ultralytics YOLO26، يمكنك تمرير تحويلات Albumentations المخصصة بسهولة عبر Python API باستخدام المعلمة 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 (Python API). يمكن أيضًا تمرير التحويلات التسلسلية عبر سطر الأوامر (CLI) أو ملفات تكوين YAML، بما في ذلك عند استئناف التدريب.
- استبدال الإعدادات الافتراضية: ستستبدل تحويلاتك المخصصة تحويلات Albumentations الافتراضية بالكامل. وتظل زيادات YOLO الأخرى نشطة.
- معالجة التسميات: تؤدي التحويلات المكانية، بما في ذلك تلك المتداخلة في
A.OneOfأوA.Compose، إلى نقل مربعات الإحاطة والمضلعات والنقاط الرئيسية والأعماق أو الأقنعة الدلالية مع الصورة. لا تستطيعA.RandomGridShuffleالحفاظ على طوبولوجيا المضلعات أو النقاط الرئيسية وتثير استثناءً مع عينات التجزيء ووضعيات الجسم والمضلعات الموجهة (OBB). - الأداء: تتطلب بعض التحويلات موارد حسابية كبيرة. راقب سرعة التدريب واضبطها وفقًا لذلك.
- توافق المهام: تعمل تحويلات Albumentations المخصصة مع تدريب الكشف عن الكائنات والتجزيء والتجزيء الدلالي والعمق والوضعيات والمضلعات الموجهة (OBB)، ولكنها لا تعمل مع التمهيد أو التصنيف (الذي يستخدم مسار زيادة بيانات مختلفًا).
حالات استخدام التحويلات المخصصة#
تستفيد التطبيقات المختلفة من استراتيجيات زيادة مختلفة:
- التصوير الطبي: استخدم التشوهات المرنة، وتشوهات الشبكة، وأنماط الضوضاء المتخصصة
- الصور الجوية/صور الأقمار الصناعية: طبّق تحويلات تحاكي الارتفاعات المختلفة والظروف الجوية وزوايا الإضاءة
- سيناريوهات الإضاءة المنخفضة: ركّز على إضافة الضوضاء وتعديلات السطوع لتدريب نماذج قوية على التعامل مع الإضاءة الصعبة
- الفحص الصناعي: أضف اختلافات في النسيج وعيوبًا محاكاة لتطبيقات مراقبة الجودة
للحصول على قائمة كاملة بالتحويلات المتاحة ومعلماتها، تفضل بزيارة وثائق Albumentations.
لمزيد من الأمثلة التفصيلية وأفضل الممارسات حول استخدام تحويلات Albumentations المخصصة مع YOLO26، راجع دليل زيادة بيانات YOLO.
واصل التعلم عن Albumentations#
إذا كنت مهتمًا بمعرفة المزيد عن Albumentations، فراجع الموارد التالية للحصول على تعليمات وأمثلة أكثر تعمقًا:
-
وثائق Albumentations: توفر الوثائق الرسمية نطاقًا كاملًا من التحويلات المدعومة وتقنيات الاستخدام المتقدمة.
-
دليل Ultralytics لـ Albumentations: تعرّف بصورة أعمق على تفاصيل الدالة التي تيسّر هذا التكامل.
-
مستودع Albumentations على GitHub: يتضمن المستودع أمثلة وقياسات ومناقشات لمساعدتك على البدء في تخصيص الزيادات.
أهم الاستنتاجات#
في هذا الدليل، استكشفنا الجوانب الرئيسية في Albumentations، وهي مكتبة Python ممتازة لزيادة الصور. وناقشنا مجموعتها الواسعة من التحويلات، وأداءها المحسّن، وكيفية استخدامها في مشروع YOLO26 القادم.
كذلك، إذا أردت معرفة المزيد عن تكاملات Ultralytics 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 لعدة أسباب:
- الأداء: مبنية على OpenCV وNumPy مع تحسين SIMD لتوفير سرعة فائقة
- المرونة: تدعم أكثر من 70 تحويلًا عبر الزيادات على مستوى البكسل والمستوى المكاني ومستوى المزج
- التوافق: تعمل بسلاسة مع أطر العمل الشائعة مثل PyTorch وTensorFlow
- الموثوقية: تمنع مجموعة الاختبارات الشاملة تلف البيانات بصمت
- سهولة الاستخدام: واجهة API موحدة واحدة لجميع أنواع الزيادات
تعزز Albumentations مختلف مهام الرؤية الحاسوبية، بما في ذلك:
- اكتشاف الكائنات: يحسّن متانة النموذج في مواجهة اختلافات الإضاءة والمقياس والاتجاه
- تجزئة الكائنات: تعزز دقة التنبؤ بالقناع من خلال تحويلات متنوعة
- التصنيف: تزيد قدرة النموذج على التعميم باستخدام زيادات لونية وهندسية
- تقدير الوضعية: تساعد النماذج على التكيف مع وجهات النظر وظروف الإضاءة المختلفة
تجعل خيارات الزيادة المتنوعة في المكتبة منها أداة قيّمة لأي مهمة رؤية تتطلب أداءً قويًا للنموذج.