تقنيات معالجة البيانات مسبقاً لبيانات الرؤية الحاسوبية المشروحة

مقدمة

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



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

تعد المعالجة المسبقة خطوة في سير عمل مشروع الرؤية الحاسوبية تتضمن تغيير حجم الصور، وتطبيع قيم البكسل، وزيادة مجموعة البيانات، وتقسيم البيانات إلى مجموعات للتدريب، والتحقق من الصحة، والاختبار. لنستكشف التقنيات الأساسية وأفضل الممارسات لتنظيف بياناتك!

أهمية معالجة البيانات مسبقاً

نحن نقوم بالفعل بجمع بياناتنا وشرحها بعناية مع مراعاة اعتبارات متعددة. إذاً، ما الذي يجعل معالجة البيانات مسبقاً مهمة جداً لمشروع الرؤية الحاسوبية؟ حسناً، تتعلق معالجة البيانات مسبقاً بجعل بياناتك في تنسيق مناسب للتدريب يقلل من العبء الحسابي ويساعد في تحسين أداء النموذج. فيما يلي بعض المشكلات الشائعة في البيانات الأولية التي تعالجها المعالجة المسبقة:

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

تقنيات معالجة البيانات مسبقاً

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

تغيير حجم الصور

يمكنك تغيير حجم صورك باستخدام الطرق التالية:

  • الاستيفاء الثنائي الخطي (Bilinear Interpolation): يعمل على تنعيم قيم البكسل بأخذ متوسط مرجح لقيم البكسلات الأربعة الأقرب.
  • أقرب جار (Nearest Neighbor): يخصص قيمة البكسل الأقرب دون حساب المتوسط، مما يؤدي إلى صورة ذات مظهر مربع ولكن بحسابات أسرع.

لجعل تغيير الحجم مهمة أبسط، يمكنك استخدام الأدوات التالية:

  • OpenCV: مكتبة رؤية حاسوبية شهيرة ذات وظائف واسعة النطاق لمعالجة الصور.
  • PIL (Pillow): مكتبة تصوير بلغة Python لفتح ملفات الصور ومعالجتها وحفظها.

فيما يتعلق بـ YOLO26، يسمح معامل 'imgsz' أثناء تدريب النموذج بأحجام إدخال مرنة. عند ضبطه على حجم معين، مثل 640، سيقوم النموذج بتغيير حجم صور الإدخال بحيث يكون أكبر بُعد لها 640 بكسل مع الحفاظ على نسبة العرض إلى الارتفاع الأصلية.

من خلال تقييم احتياجات نموذجك ومجموعة بياناتك المحددة، يمكنك تحديد ما إذا كان تغيير الحجم خطوة ضرورية للمعالجة المسبقة أم أن نموذجك يمكنه التعامل بكفاءة مع صور ذات أحجام مختلفة.

تطبيع قيم البكسل

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

  • توسيع نطاق الحد الأدنى والأقصى (Min-Max Scaling): يوسع قيم البكسل إلى نطاق من 0 إلى 1.
  • تطبيع Z-Score: يوسع قيم البكسل بناءً على متوسطها وانحرافها المعياري.

فيما يتعلق بـ YOLO26، تتم معالجة التطبيع بسلاسة كجزء من خط أنابيب المعالجة المسبقة الخاص به أثناء تدريب النموذج. يقوم YOLO26 تلقائياً بتنفيذ عدة خطوات للمعالجة المسبقة، بما في ذلك التحويل إلى RGB، وتوسيع نطاق قيم البكسل إلى النطاق [0, 1]، والتطبيع باستخدام قيم متوسطة وانحراف معياري محددة مسبقاً.

تقسيم مجموعة البيانات

بمجرد تنظيف البيانات، تصبح جاهزاً لتقسيم مجموعة البيانات. يتم إجراء تقسيم البيانات إلى مجموعات للتدريب، والتحقق من الصحة، والاختبار لضمان إمكانية تقييم النموذج على بيانات غير مرئية لتقييم أداء تعميمه. التقسيم الشائع هو 70% للتدريب، و20% للتحقق من الصحة، و10% للاختبار. هناك العديد من الأدوات والمكتبات التي يمكنك استخدامها لتقسيم بياناتك مثل scikit-learn أو TensorFlow.

ضع في اعتبارك ما يلي عند تقسيم مجموعة بياناتك:

  • الحفاظ على توزيع البيانات: تأكد من الحفاظ على توزيع البيانات للفئات عبر مجموعات التدريب والتحقق من الصحة والاختبار.
  • تجنب تسرب البيانات: عادةً ما يتم إجراء زيادة البيانات (Data Augmentation) بعد تقسيم مجموعة البيانات. يجب تطبيق زيادة البيانات وأي معالجة مسبقة أخرى فقط على مجموعة التدريب لمنع تأثير المعلومات من مجموعات التحقق من الصحة أو الاختبار على تدريب النموذج.
  • موازنة الفئات: بالنسبة لمجموعات البيانات غير المتوازنة، ضع في اعتبارك تقنيات مثل الإفراط في أخذ عينات من الفئة الأقل تمثيلاً أو التقليل من أخذ عينات من الفئة الأكثر تمثيلاً داخل مجموعة التدريب.

ما هي زيادة البيانات (Data Augmentation)؟

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

إليك بعض الفوائد الأخرى لزيادة البيانات:

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

طرق زيادة البيانات

تشمل تقنيات الزيادة الشائعة القلب، والتدوير، وتغيير الحجم، وتعديلات الألوان. يمكن للعديد من المكتبات، مثل Albumentations وImgaug وImageDataGenerator الخاص بـ TensorFlow، إنشاء هذه الزيادات.

Overview of Data Augmentations

فيما يتعلق بـ YOLO26، يمكنك زيادة مجموعة بياناتك المخصصة عن طريق تعديل ملف تكوين مجموعة البيانات، وهو ملف .yaml. في هذا الملف، يمكنك إضافة قسم للزيادة مع معاملات تحدد كيفية رغبتك في زيادة بياناتك.

يدعم مستودع Ultralytics YOLO26 مجموعة واسعة من زيادات البيانات. يمكنك تطبيق تحويلات مختلفة مثل:

  • الاقتصاص العشوائي (Random Crops)
  • القلب: يمكن قلب الصور أفقياً أو عمودياً.
  • التدوير: يمكن تدوير الصور بزوايا محددة.
  • التشوه

أيضاً، يمكنك ضبط كثافة تقنيات الزيادة هذه من خلال معاملات محددة لتوليد مزيد من تنوع البيانات.

دراسة حالة للمعالجة المسبقة

ضع في اعتبارك مشروعاً يهدف إلى تطوير نموذج لاكتشاف وتصنيف أنواع مختلفة من المركبات في صور المرور باستخدام YOLO26. لقد قمنا بجمع صور المرور وشرحها باستخدام مربعات الإحاطة (BBoxes) والتصنيفات.

إليك كيف ستبدو كل خطوة من خطوات المعالجة المسبقة لهذا المشروع:

  • تغيير حجم الصور: نظراً لأن YOLO26 يتعامل مع أحجام إدخال مرنة ويقوم بتغيير الحجم تلقائياً، فإن تغيير الحجم اليدوي غير مطلوب. سيقوم النموذج بضبط حجم الصورة وفقاً لمعامل 'imgsz' المحدد أثناء التدريب.
  • تطبيع قيم البكسل: يقوم YOLO26 تلقائياً بتطبيع قيم البكسل إلى نطاق من 0 إلى 1 أثناء المعالجة المسبقة، لذا فهو غير مطلوب.
  • تقسيم مجموعة البيانات: تقسيم مجموعة البيانات إلى مجموعات للتدريب (70%)، والتحقق من الصحة (20%)، والاختبار (10%) باستخدام أدوات مثل scikit-learn.
  • زيادة البيانات: تعديل ملف تكوين مجموعة البيانات (.yaml) ليشمل تقنيات زيادة البيانات مثل الاقتصاص العشوائي، والقلب الأفقي، وتعديلات السطوع.

تضمن هذه الخطوات إعداد مجموعة البيانات دون أي مشكلات محتملة وهي جاهزة لتحليل البيانات الاستكشافي (EDA).

تقنيات تحليل البيانات الاستكشافي

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

تقنيات تحليل البيانات الاستكشافي الإحصائية

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

تقنيات تحليل البيانات الاستكشافي المرئية

التصورات هي المفتاح في تحليل البيانات الاستكشافي لمجموعات بيانات الصور. على سبيل المثال، يعد تحليل اختلال الفئات جانباً حيوياً آخر من جوانب تحليل البيانات الاستكشافي. فهو يساعد في تحديد ما إذا كانت بعض الفئات ممثلة تمثيلاً ناقصاً في مجموعة بياناتك. يمكن أن يكشف تصور توزيع فئات أو تصنيفات الصور المختلفة باستخدام المخططات الشريطية بسرعة عن أي اختلالات. وبالمثل، يمكن تحديد القيم المتطرفة باستخدام أدوات التصور مثل مخططات الصندوق (Box Plots)، والتي تسلط الضوء على الشذوذ في شدة البكسل أو توزيعات الميزات. يمنع اكتشاف القيم المتطرفة نقاط البيانات غير العادية من تحريف نتائجك.

تشمل الأدوات الشائعة للتصورات ما يلي:

  • المدرجات التكرارية (Histograms) ومخططات الصندوق: مفيدة لفهم توزيع قيم البكسل وتحديد القيم المتطرفة.
  • المخططات المبعثرة (Scatter Plots): مفيدة لاستكشاف العلاقات بين ميزات الصورة أو الشروحات.
  • الخرائط الحرارية (Heatmaps): فعالة لتصور توزيع شدة البكسل أو التوزيع المكاني للميزات المشروحة داخل الصور.

استخدام منصة Ultralytics لتحليل البيانات الاستكشافي

لنهج بدون كود لتحليل البيانات الاستكشافي، قم بتحميل مجموعة بياناتك إلى منصة Ultralytics. تقوم علامة التبويب Charts في مجموعة البيانات تلقائياً بإنشاء التصورات الموضحة أعلاه: توزيع التقسيم، وعدد الفئات الأعلى، ومدرجات تكرارية لعرض/ارتفاع الصورة، وخرائط حرارية ثنائية الأبعاد لمواقع الشروحات وأبعاد الصورة. تتيح لك علامة التبويب Images تصفح بياناتك في طرق عرض شبكية أو مضغوطة أو جدولية مع تراكبات الشروحات، مما يجعل من السهل اكتشاف الأمثلة التي تم تصنيفها بشكل خاطئ أو الفئات غير المتوازنة دون كتابة سطر واحد من الكود.

تواصل وانضم إلينا

يمكن أن تمنحك مناقشة مشروعك مع عشاق الرؤية الحاسوبية الآخرين أفكاراً جديدة من وجهات نظر مختلفة. إليك بعض الطرق الرائعة للتعلم واستكشاف الأخطاء وإصلاحها والتواصل:

قنوات للتواصل مع المجتمع

  • قضايا GitHub: قم بزيارة مستودع YOLO26 على GitHub واستخدم علامة التبويب Issues لطرح الأسئلة، والإبلاغ عن الأخطاء، واقتراح ميزات. المجتمع والمشرفون موجودون للمساعدة في أي مشكلات تواجهها.
  • خادم Discord الخاص بـ Ultralytics: انضم إلى خادم Discord الخاص بـ Ultralytics للتواصل مع مستخدمين ومطورين آخرين، والحصول على الدعم، ومشاركة المعرفة، وطرح الأفكار.

التوثيق الرسمي

  • توثيق Ultralytics YOLO26: ارجع إلى توثيق YOLO26 الرسمي للحصول على أدلة شاملة ورؤى قيمة حول العديد من مهام ومشاريع رؤية الحاسوب.

مجموعة بياناتك جاهزة!

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

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

ما هي أهمية معالجة البيانات مسبقاً في مشاريع الرؤية الحاسوبية؟

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

كيف يمكنني استخدام Ultralytics YOLO لزيادة البيانات؟

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

ما هي أفضل تقنيات تطبيع البيانات لبيانات الرؤية الحاسوبية؟

يقوم التطبيع بتوسيع نطاق قيم البكسل إلى نطاق قياسي لتقارب أسرع وأداء محسّن أثناء التدريب. تشمل التقنيات الشائعة:

  • توسيع نطاق الحد الأدنى والأقصى (Min-Max Scaling): يوسع قيم البكسل إلى نطاق من 0 إلى 1.
  • تطبيع Z-Score: يوسع قيم البكسل بناءً على متوسطها وانحرافها المعياري.

بالنسبة لـ YOLO26، يتم التعامل مع التطبيع تلقائياً، بما في ذلك التحويل إلى RGB وتوسيع نطاق قيم البكسل. تعرف على المزيد حول ذلك في قسم تدريب النموذج.

كيف يجب أن أقسم مجموعة بياناتي المشروحة للتدريب؟

لتقسيم مجموعة بياناتك، من الممارسات الشائعة تقسيمها إلى 70% للتدريب، و20% للتحقق من الصحة، و10% للاختبار. من المهم الحفاظ على توزيع البيانات للفئات عبر هذه التقسيمات وتجنب تسرب البيانات عن طريق إجراء الزيادة فقط على مجموعة التدريب. استخدم أدوات مثل scikit-learn أو TensorFlow لتقسيم فعال لمجموعة البيانات. انظر الدليل المفصل حول إعداد مجموعة البيانات.

هل يمكنني التعامل مع أحجام صور مختلفة في YOLO26 دون تغيير الحجم يدوياً؟

نعم، يمكن لـ Ultralytics YOLO26 التعامل مع أحجام صور مختلفة من خلال معامل 'imgsz' أثناء تدريب النموذج. يضمن هذا المعامل تغيير حجم الصور بحيث يطابق أكبر بُعد لها الحجم المحدد (مثلاً 640 بكسل)، مع الحفاظ على نسبة العرض إلى الارتفاع. لمزيد من التعامل المرن مع الإدخال والتعديلات التلقائية، تحقق من قسم تدريب النموذج.

التعليقات