زيادة البيانات هي تقنية حاسمة في مجال الرؤية الحاسوبية تعمل على توسيع مجموعة بيانات التدريب الخاصة بك بشكل مصطنع من خلال تطبيق تحويلات مختلفة على الصور الموجودة. عند تدريب نماذج التعلُّم العميق مثل Ultralytics YOLO تساعد زيادة البيانات على تحسين متانة النموذج، وتقلل من الإفراط في التكييف، وتعزز التعميم على سيناريوهات العالم الحقيقي.
لماذا تعتبر زيادة البيانات مهمة؟
تخدم زيادة البيانات عدة أغراض مهمة في تدريب نماذج الرؤية الحاسوبية:
مجموعة بيانات موسعة: من خلال إنشاء أشكال مختلفة من الصور الموجودة، يمكنك زيادة حجم مجموعة بيانات التدريب بشكل فعال دون جمع بيانات جديدة.
تحسين التعميم: تتعلم النماذج التعرف على الأشياء في ظل ظروف مختلفة، مما يجعلها أكثر قوة في تطبيقات العالم الحقيقي.
تقليل الإفراط في التركيب: من خلال إدخال التباين في بيانات التدريب، تقل احتمالية حفظ النماذج لخصائص صورة معينة.
أداء محسّن: عادةً ما تحقق النماذج المدربة مع التعزيز المناسب دقة أفضل في مجموعات التحقق والاختبار.
يوفر تطبيق Ultralytics YOLO مجموعة شاملة من تقنيات التعزيز، يخدم كل منها أغراضًا محددة ويساهم في أداء النموذج بطرق مختلفة. سيستكشف هذا الدليل كل معلمة زيادة بالتفصيل، مما يساعدك على فهم متى وكيف تستخدمها بفعالية في مشاريعك.
أمثلة على التكوينات
يمكنك تخصيص كل معلمة باستخدام واجهة برمجة تطبيقات Python أو واجهة سطر الأوامرCLI)، أو ملف تكوين. فيما يلي أمثلة على كيفية إعداد زيادة البيانات في كل طريقة.
أمثلة على التكوين
fromultralyticsimportYOLO# Load a modelmodel=YOLO("yolo11n.pt")# Training with custom augmentation parametersmodel.train(data="coco.yaml",epochs=100,hsv_h=0.03,hsv_s=0.6,hsv_v=0.5)# Training without any augmentations (disabled values omitted for clarity)model.train(data="coco.yaml",epochs=100,hsv_h=0.0,hsv_s=0.0,hsv_v=0.0,translate=0.0,scale=0.0,fliplr=0.0,mosaic=0.0,erasing=0.0,auto_augment=None,)
# Training with custom augmentation parameters
yolodetecttraindata=coco8.yamlmodel=yolo11n.ptepochs=100hsv_h=0.03hsv_s=0.6hsv_v=0.5
استخدام ملف التكوين
يمكنك تحديد جميع معلمات التدريب، بما في ذلك الإضافات، في ملف تكوين YAML (على سبيل المثال train_custom.yaml). إن mode مطلوب فقط عند استخدام CLI. سيؤدي ملف YAML الجديد هذا بعد ذلك إلى تجاوز الافتراضي تقع في ultralytics الحزمة.
# train_custom.yaml# 'mode' is required only for CLI usagemode:traindata:coco8.yamlmodel:yolo11n.ptepochs:100hsv_h:0.03hsv_s:0.6hsv_v:0.5
ثم قم بتشغيل التدريب باستخدام واجهة برمجة تطبيقات Python :
مثال على القطار
fromultralyticsimportYOLO# Load a COCO-pretrained YOLO11n modelmodel=YOLO("yolo11n.pt")# Train the model with custom configurationmodel.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolodetecttrainmodel="yolo11n.pt"cfg=train_custom.yaml
تعزيزات مساحة اللون
تعديل تدرج الألوان (hsv_h)
النطاق: 0.0 - 1.0
افتراضي: 0.015
الاستخدام: تغيير ألوان الصورة مع الحفاظ على علاقاتها. الـ hsv_h يُحدد المعامل الفائق مقدار الإزاحة، مع اختيار التعديل النهائي عشوائيًا بين -hsv_h و hsv_h. على سبيل المثال، مع hsv_h=0.3، يتم اختيار المناوبة عشوائيًا داخل-0.3 إلى 0.3. بالنسبة للقيم الأعلى من 0.5، يلتف تحول التدرج اللوني حول عجلة الألوان، ولهذا السبب تبدو الزيادات متشابهة بين 0.5 و -0.5.
الغرض: مفيدة بشكل خاص للسيناريوهات الخارجية حيث يمكن أن تؤثر ظروف الإضاءة بشكل كبير على مظهر الجسم. على سبيل المثال، قد تبدو الموزة أكثر اصفرارًا تحت ضوء الشمس الساطع ولكنها قد تبدو أكثر اخضرارًا في الداخل.
الاستخدام: يعدّل كثافة الألوان في الصورة. و hsv_h يُحدد المعامل الفائق مقدار الإزاحة، مع اختيار التعديل النهائي عشوائيًا بين -hsv_s و hsv_s. على سبيل المثال، مع hsv_s=0.7، يتم اختيار الشدة عشوائيًا داخل-0.7 إلى 0.7.
الغرض: يساعد النماذج على التعامل مع ظروف الطقس المختلفة وإعدادات الكاميرا. على سبيل المثال، قد تبدو إشارة المرور الحمراء زاهية للغاية في يوم مشمس ولكنها تبدو باهتة وباهتة في ظروف الضباب.
الاستخدام: يغير سطوع الصورة. الـ hsv_v يُحدد المعامل الفائق مقدار الإزاحة، مع اختيار التعديل النهائي عشوائيًا بين -hsv_v و hsv_v. على سبيل المثال، مع hsv_v=0.4، يتم اختيار الشدة عشوائيًا داخل-0.4 إلى 0.4.
الغرض: ضروري لتدريب النماذج التي تحتاج إلى الأداء في ظروف إضاءة مختلفة. على سبيل المثال، قد تبدو التفاحة الحمراء ساطعة في ضوء الشمس ولكنها تبدو أكثر قتامة في الظل.
الاستخدام: تدوير الصور عشوائياً ضمن النطاق المحدد. يقوم بـ degrees يُحدِّد البارامتر الفائق زاوية الدوران، مع اختيار التعديل النهائي عشوائيًا بين -degrees و degrees. على سبيل المثال، مع degrees=10.0، يتم اختيار الدوران عشوائيًا داخل-10.0 إلى 10.0.
الغرض: حاسم للتطبيقات التي يمكن أن تظهر فيها الأجسام في اتجاهات مختلفة. على سبيل المثال، في الصور الجوية للطائرات بدون طيار، يمكن أن تكون المركبات موجهة في أي اتجاه، مما يتطلب نماذج للتعرف على الأجسام بغض النظر عن دورانها.
الاستخدام: ينقل الصور أفقياً وعمودياً بجزء عشوائي من حجم الصورة. يتم translate تحدد المعلمة الزائدة مقدار الإزاحة، مع اختيار التعديل النهائي عشوائيًا مرتين (مرة لكل محور) ضمن النطاق -translate و translate. على سبيل المثال، مع translate=0.5، يتم اختيار الترجمة عشوائيًا داخل-0.5 إلى 0.5 على المحور س، ويتم اختيار قيمة عشوائية مستقلة أخرى ضمن النطاق نفسه على المحور ص.
الغرض: يساعد النماذج على تعلم كيفية اكتشاف الأجسام المرئية جزئيًا ويحسن من متانة موقع الجسم. على سبيل المثال، في تطبيقات تقييم تلف المركبات، قد تظهر أجزاء السيارة بشكل كامل أو جزئي في الإطار اعتمادًا على موقع المصور والمسافة التي يقطعها المصور، ستعلم زيادة الترجمة النموذج التعرف على هذه الميزات بغض النظر عن اكتمالها أو موقعها.
ملاحظة: للتبسيط، الترجمات المطبقة أدناه هي نفسها في كل مرة لكل من x و y المحاور. القيم -1.0 و 1.0غير معروضة لأنها ستنقل الصورة بالكامل خارج الإطار.
-0.5
-0.25
0.0
0.25
0.5
المقياس (scale)
النطاق: ≥0.0
افتراضي: 0.5
الاستخدام: تغيير حجم الصور بمعامل عشوائي ضمن النطاق المحدد. و scale يُحدِّد المُعامِل الفائق عامل القياس، مع اختيار التعديل النهائي عشوائيًا بين 1-scale و 1+scale. على سبيل المثال، مع scale=0.5، يتم اختيار القياس عشوائيًا داخل0.5 إلى 1.5.
الغرض: تمكين النماذج من التعامل مع الأجسام على مسافات وأحجام مختلفة. على سبيل المثال، في تطبيقات القيادة الذاتية، يمكن أن تظهر المركبات على مسافات مختلفة من الكاميرا، مما يتطلب من النموذج التعرف عليها بغض النظر عن حجمها.
القيمة -1.0 لا يظهر لأنه سيؤدي إلى اختفاء الصورة، في حين أن 1.0 ينتج عنه ببساطة تكبير بمقدار 2 ضعف.
القيم المعروضة في الجدول أدناه هي القيم المطبقة من خلال البارامتر الزائد scaleوليس معامل القياس النهائي.
إذا كان scale أكبر من 1.0، يمكن أن تكون الصورة إما صغيرة جدًا أو مقلوبة، حيث يتم اختيار عامل القياس عشوائيًا بين 1-scale و 1+scale. على سبيل المثال، مع scale=3.0، يتم اختيار القياس عشوائيًا داخل-2.0 إلى 4.0. إذا تم اختيار قيمة سالبة، يتم قلب الصورة.
-0.5
-0.25
0.0
0.25
0.5
القص (shear)
النطاق: -180 إلى +180
افتراضي: 0.0
الاستخدام: يقدم تحويلًا هندسيًا يحرف الصورة على طول كل من المحور س والمحور ص، مما يؤدي فعليًا إلى إزاحة أجزاء من الصورة في اتجاه واحد مع الحفاظ على الخطوط المتوازية. إن shear يُحدِّد البارامتر الفائق زاوية القص، مع اختيار التعديل النهائي عشوائيًا بين -shear و shear. على سبيل المثال، مع shear=10.0، يتم اختيار القص عشوائيًا داخل-10 إلى 10 على المحور س، ويتم اختيار قيمة عشوائية مستقلة أخرى ضمن النطاق نفسه على المحور ص.
الغرض: يساعد النماذج على تعميم النماذج على الاختلافات في زوايا المشاهدة الناتجة عن الميل الطفيف أو وجهات النظر المائلة. على سبيل المثال، في مراقبة حركة المرور، قد تبدو الأجسام مثل السيارات وإشارات الطرق مائلة بسبب مواضع الكاميرا غير المتعامدة. يضمن تطبيق زيادة القص تعلم النموذج التعرف على الأجسام على الرغم من هذه التشوهات المائلة.
shear يمكن للقيم أن تشوه الصورة بسرعة، لذا يوصى بالبدء بقيم صغيرة وزيادتها تدريجيًا.
على عكس التحويلات المنظورية، لا يقدم القص العمق أو نقاط التلاشي ولكن بدلاً من ذلك يشوه شكل الأجسام عن طريق تغيير زواياها مع الحفاظ على توازي الجوانب المتقابلة.
-10
-5
0.0
5
10
المنظور (perspective)
النطاق: 0.0 - 0.001
افتراضي: 0.0
الاستخدام: يطبق تحويل منظور كامل على طول كل من المحور س والمحور ص، لمحاكاة كيفية ظهور الأجسام عند عرضها من أعماق أو زوايا مختلفة. إن perspective يحدد المعامل الزائد مقدار المنظور، مع اختيار التعديل النهائي عشوائيًا بين -perspective و perspective. على سبيل المثال، مع perspective=0.001، يتم اختيار المنظور عشوائيًا داخل-0.001 إلى 0.001 على المحور س، ويتم اختيار قيمة عشوائية مستقلة أخرى ضمن النطاق نفسه على المحور ص.
الغرض: تُعد زيادة المنظور أمرًا بالغ الأهمية للتعامل مع التغييرات الشديدة في المنظور، خاصةً في السيناريوهات التي تظهر فيها الأجسام مقصرة أو مشوهة بسبب تغيرات المنظور. على سبيل المثال، في الكشف عن الأجسام القائمة على الطائرات بدون طيار، يمكن أن تظهر المباني والطرق والمركبات ممتدة أو مضغوطة اعتمادًا على ميل الطائرة بدون طيار وارتفاعها. من خلال تطبيق تحويلات المنظور، تتعلم النماذج التعرف على الأجسام على الرغم من هذه التشوهات الناتجة عن المنظور، مما يحسن من قوتها في عمليات النشر في العالم الحقيقي.
الاستخدام: يقوم بإجراء قلب رأسي عن طريق قلب الصورة على طول المحور ص. يعكس هذا التحويل الصورة بأكملها رأسًا على عقب ولكنه يحافظ على جميع العلاقات المكانية بين الأجسام. تُحدِّد المعلمة الزائدة المقلوبة احتمالية تطبيق التحويل، بقيمة flipud=1.0 التأكد من أن جميع الصور مقلوبة وقيمة flipud=0.0 تعطيل التحويل بالكامل. على سبيل المثال، مع flipud=0.5، كل صورة لديها فرصة 50% أن تكون مقلوبة رأساً على عقب.
الغرض: مفيد للسيناريوهات التي يمكن أن تظهر فيها الأجسام مقلوبة رأسًا على عقب. على سبيل المثال، في أنظمة الرؤية الروبوتية، قد يتم التقاط الأجسام الموجودة على سيور ناقلة أو أذرع روبوتية ووضعها في اتجاهات مختلفة. يساعد التقليب الرأسي النموذج على التعرف على الأجسام بغض النظر عن وضعها من أعلى إلى أسفل.
الاستخدام: يقوم بإجراء قلب أفقي عن طريق عكس الصورة على طول المحور السيني. يقوم هذا التحويل بتبديل الجانبين الأيسر والأيمن مع الحفاظ على الاتساق المكاني، مما يساعد النموذج على التعميم على الأجسام التي تظهر في اتجاهات معكوسة. إن fliplr تحدد البارامتر الفائق احتمالية تطبيق التحويل، بقيمة fliplr=1.0 التأكد من أن جميع الصور مقلوبة وقيمة fliplr=0.0 تعطيل التحويل بالكامل. على سبيل المثال، مع fliplr=0.5فإن كل صورة لديها فرصة 50% أن تنقلب من اليسار إلى اليمين.
الغرض: يُستخدم التقليب الأفقي على نطاق واسع في اكتشاف الأجسام وتقدير الوضعية والتعرف على الوجه لتحسين المتانة ضد الاختلافات بين اليسار واليمين. على سبيل المثال، في القيادة الذاتية، يمكن أن تظهر المركبات والمشاة على أي من جانبي الطريق، ويساعد التقليب الأفقي النموذج على التعرف عليها بشكل جيد في كلا الاتجاهين.
الاستخدام: تبديل القنوات اللونية للصورة من RGB إلى BGR، وتغيير ترتيب تمثيل الألوان. إن bgr تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع bgr=1.0 ضمان خضوع جميع الصور لعملية تبديل القنوات و bgr=0.0 تعطيله. على سبيل المثال، مع bgr=0.5، فإن كل صورة لديها فرصة 50% لتحويلها من RGB إلى BGR.
الغرض: يزيد من المتانة مع ترتيبات قنوات الألوان المختلفة. على سبيل المثال، عند تدريب النماذج التي يجب أن تعمل عبر أنظمة كاميرات ومكتبات تصوير مختلفة حيث قد يتم استخدام تنسيقات RGB و BGR بشكل غير متناسق، أو عند نشر النماذج في بيئات قد يختلف فيها تنسيق ألوان الإدخال عن بيانات التدريب.
الاستخدام: يدمج أربع صور تدريبية في صورة واحدة. و mosaic تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع mosaic=1.0 التأكد من دمج جميع الصور و mosaic=0.0 تعطيل التحويل. على سبيل المثال، مع mosaic=0.5، كل صورة لها فرصة 50% من أن يتم دمجها مع ثلاث صور أخرى.
الغرض: فعال للغاية في تحسين اكتشاف الأجسام الصغيرة وفهم السياق. على سبيل المثال، في مشاريع الحفاظ على الحياة البرية حيث قد تظهر الحيوانات على مسافات ومقاييس مختلفة، تساعد زيادة الفسيفساء النموذج على تعلم التعرف على نفس الأنواع عبر أحجام مختلفة وانسدادات جزئية وسياقات بيئية مختلفة من خلال إنشاء عينات تدريب متنوعة بشكل مصطنع من بيانات محدودة.
حتى لو كان mosaic يجعل التعزيز النموذج أكثر قوة، ويمكنه أيضًا أن يجعل عملية التدريب أكثر صعوبة.
إن mosaic يمكن تعطيل التعزيز بالقرب من نهاية التدريب عن طريق ضبط close_mosaic إلى عدد الحقب الزمنية قبل الانتهاء عندما يجب إيقاف تشغيله. على سبيل المثال، إذا كان epochs إلى 200 و close_mosaic إلى 20فإن mosaic سيتم تعطيل التعزيز بعد 180 الحقب الزمنية. إذا كانت close_mosaic إلى 0فإن mosaic سيتم تمكين الزيادة في عملية التدريب بأكملها.
يتم تحديد مركز الفسيفساء المُنشأة باستخدام قيم عشوائية، ويمكن أن يكون داخل الصورة أو خارجها.
التنفيذ الحالي لـ mosaic تجمع الزيادة بين 4 صور منتقاة عشوائيًا من مجموعة البيانات. إذا كانت مجموعة البيانات صغيرة، يمكن استخدام نفس الصورة عدة مرات في نفس الفسيفساء.
mosaic إيقاف
mosaic على
خلط (mixup)
النطاق: 0.0 - 1.0
افتراضي: 0.0
الاستخدام: يمزج بين صورتين وتسمياتهما مع احتمال معين. إن mixup تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع mixup=1.0 التأكد من أن جميع الصور مختلطة و mixup=0.0 تعطيل التحويل. على سبيل المثال، مع mixup=0.5فإن كل صورة لديها فرصة 50% أن تكون مختلطة مع صورة أخرى.
الغرض: يحسّن متانة النموذج ويقلل من الإفراط في التركيب. على سبيل المثال، في أنظمة التعرف على المنتجات بالتجزئة، يساعد الخلط في أنظمة التعرف على المنتجات بالتجزئة النموذج على تعلم ميزات أكثر قوة من خلال مزج صور المنتجات المختلفة، وتعليمه التعرف على العناصر حتى عندما تكون مرئية جزئيًا أو محجوبة بمنتجات أخرى على رفوف المتاجر المزدحمة.
إن mixup النسبة هي قيمة عشوائية منتقاة من np.random.beta(32.0, 32.0) توزيع بيتا، مما يعني أن كل صورة تساهم بنسبة 50% تقريبًا، مع وجود اختلافات طفيفة.
الصورة الأولى, mixup إيقاف
الصورة الثانية, mixup إيقاف
mixup على
CutMix (cutmix)
النطاق: 0.0 - 1.0
افتراضي: 0.0
الاستخدام: قص منطقة مستطيلة من صورة ولصقها على صورة أخرى باحتمالية معينة. يتم استخدام cutmix تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع cutmix=1.0 التأكد من أن جميع الصور تخضع لهذا التحويل و cutmix=0.0 تعطيله بالكامل. على سبيل المثال، مع cutmix=0.5فإن كل صورة لديها فرصة بنسبة 50% لاستبدال منطقة ما برقعة من صورة أخرى.
الغرض: تحسين أداء النموذج من خلال إنشاء سيناريوهات انسداد واقعية مع الحفاظ على تكامل الميزة المحلية. على سبيل المثال، في أنظمة القيادة الذاتية، يساعد Cutmix النموذج على تعلم التعرف على المركبات أو المشاة حتى عندما تكون محجوبة جزئيًا بأجسام أخرى، مما يحسن دقة الكشف في بيئات العالم الحقيقي المعقدة ذات الأجسام المتداخلة.
يتم تحديد حجم وموضع منطقة القطع بشكل عشوائي لكل تطبيق.
على عكس المزج الذي يمزج قيم البكسل على مستوى العالم, cutmix يحافظ على كثافة البكسلات الأصلية داخل مناطق القطع، مع الحفاظ على السمات المحلية.
لا يتم لصق المنطقة في الصورة الهدف إلا إذا كانت لا تتداخل مع أي مربع محدد موجود. بالإضافة إلى ذلك، فقط المربعات المحدودة التي تحتفظ على الأقل 0.1 (10%) من مساحتها الأصلية داخل المنطقة الملصقة محفوظة.
لا يمكن تغيير الحد الأدنى لمساحة المربع المحدود هذا مع التنفيذ الحالي ويتم تعيينه إلى 0.1 افتراضيًا.
الصورة الأولى, cutmix إيقاف
الصورة الثانية, cutmix إيقاف
cutmix على
التعزيزات الخاصة بالتقسيمات الخاصة بالتقسيم
نسخ ولصق (copy_paste)
النطاق: 0.0 - 1.0
افتراضي: 0.0
الاستخدام: تعمل فقط لمهام التجزئة، تقوم هذه الزيادة بنسخ الأجسام داخل الصور أو فيما بينها بناءً على احتمال محدد، يتم التحكم فيه بواسطة copy_paste_mode. إن copy_paste تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع copy_paste=1.0 التأكد من نسخ جميع الصور و copy_paste=0.0 تعطيل التحويل. على سبيل المثال، مع copy_paste=0.5فإن كل صورة لديها فرصة بنسبة 50% لنسخ عناصر من صورة أخرى.
الغرض: مفيد بشكل خاص لمهام التجزئة على سبيل المثال وفئات الكائنات النادرة. على سبيل المثال، في الكشف عن العيوب الصناعية حيث تظهر أنواع معينة من العيوب بشكل غير متكرر، يمكن أن تزيد زيادة النسخ واللصق بشكل مصطنع من حدوث هذه العيوب النادرة عن طريق نسخها من صورة إلى أخرى، مما يساعد النموذج على تعلم هذه الحالات الناقصة التمثيل بشكل أفضل دون الحاجة إلى عينات إضافية من العيوب.
كما هو موضح في الصورة المتحركة أدناه، فإن copy_paste يمكن استخدام التعزيز لنسخ الكائنات من صورة إلى أخرى.
بمجرد أن يتم نسخ كائن ما، بغض النظر عن copy_paste_mode، يتم حساب تقاطعه على المساحة (IoA) مع جميع عناصر الصورة المصدر. إذا كانت جميع IoA أقل من 0.3 (30%)، يتم لصق الكائن في الصورة الهدف. إذا كان واحد فقط IoA أعلى من 0.3، لا يتم لصق الكائن في الصورة الهدف.
لا يمكن تغيير عتبة IoA مع التطبيق الحالي ويتم ضبطها على 0.3 افتراضيًا.
copy_paste إيقاف
copy_paste على مع copy_paste_mode=flip
تصوّر copy_paste العملية
وضع النسخ واللصق (copy_paste_mode)
الخيارات: 'flip', 'mixup'
افتراضي: 'flip'
الاستخدام: يحدد الطريقة المستخدمة في نسخ ولصق التعزيز. إذا تم ضبطها على 'flip'فإن الأجسام تأتي من الصورة نفسها، في حين أن 'mixup' يسمح بنسخ الكائنات من صور مختلفة.
الغرض: يتيح المرونة في كيفية دمج الكائنات المنسوخة في الصور المستهدفة.
الاستخدام: يطبق سياسات التعزيز الآلي للتصنيف. و 'randaugment' يستخدم الخيار RandAugment, 'autoaugment' يستخدم التعزيز التلقائي، و 'augmix' يستخدم AugMix. الإعداد لـ None تعطيل التعزيز التلقائي.
الغرض: تحسين استراتيجيات التعزيز تلقائيًا لمهام التصنيف. وتتمثل الاختلافات فيما يلي:
التعزيز التلقائي: يُطبّق هذا الوضع نُهُج التعزيز المُحدّدة مسبقًا والمُستقاة من مجموعات بيانات مثل ImageNet و CIFAR10 و SVHN. يمكن للمستخدمين تحديد هذه السياسات الموجودة ولكن لا يمكنهم تدريب سياسات جديدة داخل Torchvision. لاكتشاف استراتيجيات التعزيز المثلى لمجموعات بيانات محدّدة، سيكون من الضروري وجود مكتبات خارجية أو تطبيقات مخصّصة. راجع ورقة التعزيز التلقائي.
راندأوجمنت: يطبق مجموعة عشوائية من التحويلات ذات الحجم الموحد. يقلل هذا النهج من الحاجة إلى مرحلة بحث مكثفة، مما يجعله أكثر كفاءة من الناحية الحسابية مع تعزيز متانة النموذج. مرجع إلى ورقة RandAugment.
AugMix: AugMix هي طريقة زيادة البيانات التي تعزز متانة النموذج من خلال إنشاء تنويعات متنوعة للصور من خلال مجموعات عشوائية من التحويلات البسيطة. مرجع إلى ورقة AugMix.
يتمثل الفرق الرئيسي بين الطرق الثلاث بشكل أساسي في الطريقة التي يتم بها تعريف سياسات الزيادة وتطبيقها.
يمكنك الرجوع إلى هذه المقالة التي تقارن بين الطرق الثلاث بالتفصيل.
المسح العشوائي (erasing)
النطاق: 0.0 - 0.9
افتراضي: 0.4
الاستخدام: مسح أجزاء من الصورة بشكل عشوائي أثناء التدريب على التصنيف. و erasing تُحدِّد البارامتر الفائق احتمال تطبيق التحويل، مع erasing=0.9 التأكد من مسح جميع الصور تقريبًا و erasing=0.0 تعطيل التحويل. على سبيل المثال، مع erasing=0.5، فإن كل صورة لديها فرصة 50% لمسح جزء منها.
الغرض: يساعد النماذج على تعلّم ميزات قوية ويمنع الاعتماد المفرط على مناطق معينة من الصورة. على سبيل المثال، في أنظمة التعرّف على الوجه، يساعد المسح العشوائي النماذج على أن تصبح أكثر قوة في حالات الانسداد الجزئي مثل النظارات الشمسية أو أقنعة الوجه أو غيرها من الأشياء التي قد تغطي ملامح الوجه جزئيًا. يعمل هذا على تحسين الأداء في العالم الحقيقي من خلال إجبار النموذج على تحديد الأفراد باستخدام خصائص متعددة للوجه بدلاً من الاعتماد فقط على السمات المميزة التي قد تكون محجوبة.
إن erasing تأتي الزيادة مع scale, ratioو value البارامترات الفائقة التي لا يمكن تغييرها باستخدام التنفيذ الحالي. قيمها الافتراضية هي (0.02, 0.33), (0.3, 3.3)و 0، على التوالي، كما هو مذكور في PyTorch الوثائق.
الحد الأعلى لـ erasing تم ضبط البارامتر الفائق على 0.9 لتجنب تطبيق التحويل على جميع الصور.
erasing إيقاف
erasing على (مثال 1)
erasing على (مثال 2)
erasing على (المثال 3)
الأسئلة الشائعة
هناك الكثير من المعززات للاختيار من بينها. كيف أعرف أي منها أستخدم؟
يعتمد اختيار التعزيزات المناسبة على حالة الاستخدام ومجموعة البيانات الخاصة بك. إليك بعض الإرشادات العامة لمساعدتك في اتخاذ القرار:
في معظم الحالات، تكون الاختلافات الطفيفة في اللون والسطوع مفيدة. القيم الافتراضية ل hsv_h, hsv_sو hsv_v نقطة انطلاق قوية.
إذا كانت وجهة نظر الكاميرا متناسقة ولن تتغير بمجرد نشر النموذج، يمكنك على الأرجح تخطي التحويلات الهندسية مثل rotation, translation, scale, shearأو perspective. ومع ذلك، إذا كانت زاوية الكاميرا قد تختلف، وتحتاج إلى أن يكون النموذج أكثر قوة، فمن الأفضل الاحتفاظ بهذه الإضافات.
استخدم mosaic الزيادة فقط إذا كان وجود كائنات محجوبة جزئيًا أو كائنات متعددة في الصورة مقبولًا ولا يغير قيمة التسمية. بدلاً من ذلك، يمكنك الاحتفاظ بـ mosaic نشطة ولكن زيادة close_mosaic لتعطيله في وقت مبكر من عملية التدريب.
باختصار: اجعل الأمر بسيطًا. ابدأ بمجموعة صغيرة من التعزيزات وأضف المزيد تدريجيًا حسب الحاجة. الهدف هو تحسين تعميم النموذج وقوته، وليس تعقيد عملية التدريب. تأكد أيضًا من أن التعزيزات التي تطبقها تعكس نفس توزيع البيانات التي سيواجهها نموذجك في الإنتاج.
عند بدء التدريب، انظر albumentations: Blur[...] مرجع. هل يعني ذلك أن Ultralytics YOLO يقوم بتشغيل تعزيزات إضافية مثل التعتيم؟
إذا كان albumentations يتم تثبيت الحزمة، تطبق Ultralytics تلقائيًا مجموعة من الإضافات الإضافية للصور باستخدامها. تتم معالجة هذه التعزيزات داخلياً ولا تتطلب أي تهيئة إضافية.
يمكنك العثور على القائمة الكاملة للتحويلات المطبقة في الوثائق الفنيةوكذلك في دليل تكامل البويات. لاحظ أن التعزيزات ذات الاحتمالية فقط p أكبر من 0 نشطة. يتم تطبيقها بشكل مقصود على ترددات منخفضة لمحاكاة التأثيرات البصرية في العالم الحقيقي، مثل تأثيرات التدرج الرمادي أو الضبابية.
عند البدء في التدريب، لا أرى أي إشارة إلى البومنتات. لماذا؟
تحقق مما إذا كان albumentations مثبتة. إذا لم تكن كذلك، يمكنك تثبيتها عن طريق تشغيل pip install albumentations. بمجرد التثبيت، يجب أن يتم اكتشاف الحزمة واستخدامها تلقائيًا بواسطة Ultralytics.