عزّز مجموعة بياناتك لتدريب YOLO26 باستخدام Albumentations#
عند إنشاء نماذج الرؤية الحاسوبية، يمكن أن تؤثر جودة بيانات التدريب وتنوعها كثيرًا في أداء النموذج. توفّر Albumentations طريقة سريعة ومرنة وفعّالة لتطبيق مجموعة واسعة من تحويلات الصور التي قد تحسّن قدرة نموذجك على التكيف مع سيناريوهات العالم الحقيقي. تتكامل Albumentations بسهولة مع Ultralytics YOLO26، ويمكنها مساعدتك على إنشاء مجموعات بيانات متينة لمهام اكتشاف الكائنات والتقسيم والتصنيف.
باستخدام Albumentations، يمكنك تعزيز بيانات تدريب YOLO26 بتقنيات مثل التحويلات الهندسية وتعديلات الألوان. سنستعرض في هذه المقالة كيف يمكن لـ Albumentations تحسين عملية زيادة البيانات وجعل مشروعات YOLO26 أكثر تأثيرًا. لنبدأ!
Albumentations لزيادة تنوع الصور#
Albumentations مكتبة مفتوحة المصدر لزيادة تنوع الصور، أُنشئت في يونيو 2018. صُممت لتبسيط عملية زيادة تنوع الصور وتسريعها في الرؤية الحاسوبية. وقد أُنشئت مع التركيز على الأداء والمرونة، وتدعم العديد من تقنيات زيادة التنوع، بدءًا من التحويلات البسيطة كالتدوير والقلب وصولًا إلى التعديلات الأكثر تعقيدًا كتغيير السطوع والتباين. تساعد Albumentations المطورين على إنشاء مجموعات بيانات غنية ومتنوعة لمهام مثل تصنيف الصور واكتشاف الكائنات والتقسيم.
يمكنك استخدام Albumentations لتطبيق التحويلات بسهولة على الصور وأقنعة التقسيم والصناديق المحيطة والنقاط المفتاحية، مع ضمان تحويل جميع عناصر مجموعة البيانات معًا. وتعمل بسلاسة مع أطر التعلم العميق الشائعة مثل PyTorch وTensorFlow، مما يجعلها مناسبة لمجموعة واسعة من المشروعات.
بالإضافة إلى ذلك، يُعد Albumentations خيارًا ممتازًا لتعزيز البيانات، سواء كنت تتعامل مع مجموعات بيانات صغيرة أم مع مهام الرؤية الحاسوبية واسعة النطاق. وتضمن معالجة سريعة وفعّالة، مما يقلل الوقت المستغرق في إعداد البيانات. وفي الوقت نفسه، تساعد على تحسين أداء النموذج، مما يجعل نماذجك أكثر فاعلية في التطبيقات الواقعية.
الميزات الرئيسية لـ Albumentations#
توفّر Albumentations العديد من الميزات المفيدة التي تبسّط عمليات تحويل الصور المعقدة لمجموعة واسعة من تطبيقات الرؤية الحاسوبية. فيما يلي بعض الميزات الرئيسية:
- مجموعة واسعة من التحويلات: توفّر Albumentations أكثر من 70 تحويلًا مختلفًا، بما في ذلك التغييرات الهندسية (مثل التدوير والقلب) وتعديلات الألوان (مثل السطوع والتباين) وإضافة الضوضاء (مثل ضوضاء غاوسية). ويتيح تعدد الخيارات إنشاء مجموعات بيانات تدريب متنوعة ومتينة للغاية.
-
تحسين الأداء العالي: بُنيت 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، فراجع دليل المشكلات الشائعة للاطلاع على الحلول والنصائح.
تتطلب أمثلة التحويلات المخصصة في هذه الصفحة الإصدار 1.4.22 من Albumentations أو إصدارًا أحدث، ولذلك تتطلب Python 3.9 أو إصدارًا أحدث.
الاستخدام#
بعد تثبيت الحزم اللازمة، يمكنك البدء باستخدام Albumentations مع YOLO26. عند تدريب YOLO26، تُطبّق مجموعة من التحويلات تلقائيًا من خلال تكامله مع Albumentations، مما يسهّل تحسين أداء نموذجك.
from ultralytics import YOLO
# تحميل نموذج مدرَّب مسبقًا
model = YOLO("yolo26n.pt")
# درّب النموذج باستخدام التحويلات الافتراضية
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)والآن، لنلقِ نظرة عن كثب على التحويلات المحددة التي تُطبّق أثناء التدريب.
التمويه#
يطبّق تحويل Blur في Albumentations تأثير تمويه بسيطًا على الصورة، من خلال حساب متوسط قيم البكسلات ضمن مساحة مربعة صغيرة تُسمى النواة. ويُنفّذ ذلك باستخدام دالة cv2.blur في OpenCV، التي تساعد على تقليل الضوضاء في الصورة، وإن كانت تقلل تفاصيلها قليلًا أيضًا.
فيما يلي المعلمات والقيم المستخدمة في هذا التكامل:
-
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 البرمجية باستخدام المعلمة augmentations. تتطلب الأمثلة في هذا القسم الإصدار 1.4.22 من Albumentations أو إصدارًا أحدث.
كيفية تعريف تحويلات مخصّصة#
يمكنك تعريف قائمة التحويلات الخاصة بك في Albumentations وتمريرها إلى دالة التدريب. يحل ذلك محل تحويلات Albumentations الافتراضية، مع إبقاء جميع تحويلات YOLO الأخرى (مثل hsv_h وdegrees وmosaic وغيرها) فعّالة.
إليك مثالًا على تحويلات أكثر تقدمًا:
import albumentations as A
from ultralytics import YOLO
# تحميل النموذج
model = YOLO("yolo26n.pt")
# تعريف تحويلات مخصّصة باستخدام تقنيات متنوعة لزيادة البيانات
custom_transforms = [
# تنويعات التمويه
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,
),
# تنويعات الضوضاء
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,
),
# تعديلات الألوان والتباين
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),
# محاكاة حالات الحجب
A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]
# التدريب باستخدام تحويلات مخصّصة
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)اعتبارات مهمة#
عند استخدام تحويلات Albumentations مخصّصة، ضع النقاط التالية في الحسبان:
- الإعدادات: أنشئ كائنات التحويلات المخصّصة عبر واجهة Python البرمجية. ويمكن أيضًا تمرير التحويلات المتسلسلة عبر 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، ويُطبّق تلقائيًا أثناء التدريب إذا كانت الحزمة مثبتة لديك. إليك كيفية البدء:
# تثبيت الحزم المطلوبة # !pip install albumentations ultralytics from ultralytics import YOLO # تحميل النموذج وتدريبه باستخدام عمليات زيادة البيانات التلقائية model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=100)يتضمن التكامل عمليات محسّنة لزيادة البيانات، مثل التمويه والتمويه الوسيط والتحويل إلى تدرج الرمادي وCLAHE، باحتمالات مضبوطة بعناية لتعزيز أداء النموذج.
يتميّز Albumentations لعدة أسباب:
- الأداء: مبني على OpenCV وNumPy، مع تحسين SIMD لتحقيق سرعة فائقة.
- المرونة: يدعم أكثر من 70 تحويلًا لزيادة البيانات على مستوى البكسل والمستوى المكاني ومستوى المزج.
- التوافق: يعمل بسلاسة مع أُطر العمل الشائعة مثل PyTorch وTensorFlow.
- الموثوقية: تمنع مجموعة الاختبارات الشاملة تلف البيانات غير الملحوظ.
- سهولة الاستخدام: واجهة API موحّدة واحدة لجميع أنواع زيادة البيانات.
يعزز Albumentations مجموعة متنوعة من مهام الرؤية الحاسوبية، ومنها:
- كشف الأجسام: يحسّن متانة النموذج في مواجهة اختلافات الإضاءة والمقياس والاتجاه.
- تقسيم الكائنات: يعزز دقة التنبؤ بالأقنعة من خلال تحويلات متنوعة.
- تقدير الوضع: يساعد النماذج على التكيف مع اختلاف زوايا الرؤية وظروف الإضاءة.
- كشف مربعات الإحاطة الموجّهة: يضيف تنوعًا في الألوان والضوضاء للصور الجوية وصور الأجسام المدارة.
تجعل خيارات زيادة البيانات المتنوعة في المكتبة منها أداة قيّمة لمهام الرؤية التي تتطلب أداءً قويًا للنموذج. وفي Ultralytics YOLO26، يستخدم تدريب التصنيف مسارًا خاصًا به لزيادة البيانات قائمًا على torchvision، ولا يطبّق تحويلات Albumentations.