Data Preprocessing Techniques for Annotated Computer Vision Data
مقدمة
بعد تحديد أهداف مشروع الرؤية الحاسوبية الخاص بك وجمع البيانات وشرحها، فإن الخطوة التالية هي معالجة البيانات المشروحة مسبقًا وإعدادها لتدريب النموذج. البيانات النظيفة والمتسقة ضرورية لإنشاء نموذج يعمل بشكل جيد.
المعالجة المسبقة هي خطوة في سير عمل مشروع الرؤية الحاسوبية تتضمن تغيير حجم الصور، وتطبيع قيم البكسل، وزيادة مجموعة البيانات، وتقسيم البيانات إلى مجموعات تدريب وتحقق واختبار. دعنا نستكشف التقنيات الأساسية وأفضل الممارسات لتنظيف بياناتك!
أهمية المعالجة المسبقة للبيانات
نحن بالفعل نجمع بياناتنا ونعلق عليها بعناية مع وضع اعتبارات متعددة في الاعتبار. إذن ، ما الذي يجعل المعالجة المسبقة للبيانات مهمة جدا لمشروع رؤية الكمبيوتر؟ حسنا ، تتعلق المعالجة المسبقة للبيانات بالحصول على بياناتك بتنسيق مناسب للتدريب يقلل من الحمل الحسابي ويساعد على تحسين أداء النموذج. في ما يلي بعض المشكلات الشائعة في البيانات الأولية التي تعالجها المعالجة المسبقة:
- الضوضاء: تغيرات غير ذات صلة أو عشوائية في البيانات.
- عدم الاتساق: الاختلافات في أحجام الصور وتنسيقاتها وجودتها.
- عدم التوازن: التوزيع غير المتكافئ للفئات أو الفئات في مجموعة البيانات.
تقنيات المعالجة المسبقة للبيانات
واحدة من الخطوات الأولى والأهم في المعالجة المسبقة للبيانات هي تغيير الحجم. تم تصميم بعض الطرز للتعامل مع أحجام الإدخال المتغيرة ، ولكن تتطلب العديد من الطرز حجم إدخال متسق. تغيير حجم الصور يجعلها موحدة ويقلل من التعقيد الحسابي.
تغيير حجم الصور
يمكنك تغيير حجم صورك باستخدام الطرق التالية:
- استيفاء ثنائي الخط: يعمل على تنعيم قيم البكسل من خلال أخذ متوسط مرجح لأقرب أربع قيم بكسل.
- أقرب جار: يعيّن أقرب قيمة بكسل دون حساب المتوسط، مما يؤدي إلى صورة ممتلئة ولكن بحساب أسرع.
لجعل تغيير الحجم مهمة أبسط ، يمكنك استخدام الأدوات التالية:
- OpenCV: A popular computer vision library with extensive functions for image processing.
- PIL (وسادة): مكتبة تصوير Python لفتح ملفات الصور ومعالجتها وحفظها.
With respect to YOLO11, the 'imgsz' parameter during model training allows for flexible input sizes. When set to a specific size, such as 640, the model will resize input images so their largest dimension is 640 pixels while maintaining the original aspect ratio.
من خلال تقييم الاحتياجات المحددة للنموذج ومجموعة البيانات، يمكنك تحديد ما إذا كان تغيير الحجم خطوة ضرورية للمعالجة المسبقة أو ما إذا كان النموذج الخاص بك يمكنه التعامل بكفاءة مع الصور ذات الأحجام المختلفة.
تطبيع قيم البكسل
تقنية أخرى للمعالجة المسبقة هي التطبيع. تقوم التسوية بقياس قيم البيكسل إلى نطاق قياسي، مما يساعد في التقارب بشكل أسرع أثناء التدريب ويحسن أداء النموذج. فيما يلي بعض تقنيات التطبيع الشائعة:
- تحجيم الحد الأدنى-الأقصى: تحجيم قيم البكسل إلى نطاق من 0 إلى 1.
- تطبيع Z-Score: قياس قيم البكسل بناءً على متوسطها وانحرافها المعياري.
فيما يتعلق ب YOLO11، يتم التعامل مع عملية التطبيع بسلاسة كجزء من خط المعالجة المسبقة أثناء تدريب النموذج. يُجري YOLO11 تلقائيًا العديد من خطوات المعالجة المسبقة بما في ذلك التحويل إلى RGB، وقياس قيم البكسل إلى النطاق [0، 1]، والتطبيع باستخدام قيم المتوسط والانحراف المعياري المحددة مسبقًا.
تقسيم مجموعة البيانات
بمجرد تنظيف البيانات ، تكون جاهزا لتقسيم مجموعة البيانات. يتم تقسيم البيانات إلى مجموعات تدريب وتحقق واختبار لضمان إمكانية تقييم النموذج على بيانات غير مرئية لتقييم أداء التعميم. الانقسام الشائع هو 70٪ للتدريب ، و 20٪ للتحقق من الصحة ، و 10٪ للاختبار. هناك العديد من الأدوات والمكتبات التي يمكنك استخدامها لتقسيم بياناتك مثل scikit-learn أو TensorFlow.
ضع في اعتبارك ما يلي عند تقسيم مجموعة البيانات الخاصة بك:
- الحفاظ على توزيع البيانات: التأكد من الحفاظ على توزيع بيانات الفئات عبر مجموعات التدريب والتحقق من الصحة والاختبار.
- تجنّب تسرّب البيانات: عادةً ما تتم زيادة البيانات بعد تقسيم مجموعة البيانات. يجب تطبيق زيادة البيانات وأي معالجة مسبقة أخرى على مجموعة التدريب فقط لمنع تأثير المعلومات من مجموعات التحقق من الصحة أو الاختبار على تدريب النموذج. -موازنةالفئات: بالنسبة لمجموعات البيانات غير المتوازنة، ضع في اعتبارك تقنيات مثل أخذ عينات زائدة من فئة الأقلية أو أخذ عينات أقل من فئة الأغلبية ضمن مجموعة التدريب.
ما هي زيادة البيانات؟
خطوة المعالجة المسبقة للبيانات الأكثر شيوعا هي زيادة البيانات. تؤدي زيادة البيانات إلى زيادة حجم مجموعة البيانات بشكل مصطنع عن طريق إنشاء إصدارات معدلة من الصور. من خلال زيادة بياناتك ، يمكنك تقليل التجهيز الزائد وتحسين تعميم النموذج.
فيما يلي بعض الفوائد الأخرى لزيادة البيانات:
- إنشاء مجموعة بيانات أكثر قوة: يمكن أن تجعل زيادة البيانات النموذج أكثر قوة في مواجهة الاختلافات والتشوهات في بيانات الإدخال. يتضمن ذلك التغييرات في الإضاءة والاتجاه والمقياس.
- Cost-Effective: Data augmentation is a cost-effective way to increase the amount of training data without collecting and labeling new data.
- استخدام أفضل للبيانات: يتم استخدام كل نقطة بيانات متاحة إلى أقصى إمكاناتها من خلال إنشاء اختلافات جديدة
طرق زيادة البيانات
تتضمن تقنيات التعزيز الشائعة التقليب والتدوير والقياس وتعديلات الألوان. العديد من المكتبات ، مثل Albumentations و Imgaug و TensorFlowImageDataGenerator ، يمكن أن تولد هذه التعزيزات.
With respect to YOLO11, you can augment your custom dataset by modifying the dataset configuration file, a .yaml file. In this file, you can add an augmentation section with parameters that specify how you want to augment your data.
The Ultralytics YOLO11 repository supports a wide range of data augmentations. You can apply various transformations such as:
- المحاصيل العشوائية
- التقليب: يمكن قلب الصور أفقيا أو رأسيا.
- الدوران: يمكن تدوير الصور بزوايا محددة.
- تشويه
أيضا ، يمكنك ضبط شدة تقنيات التعزيز هذه من خلال معلمات محددة لإنشاء المزيد من تنوع البيانات.
دراسة حالة للمعالجة المسبقة
ضع في اعتبارك مشروعًا يهدف إلى تطوير نموذج لاكتشاف وتصنيف أنواع مختلفة من المركبات في صور حركة المرور باستخدام YOLO11. قمنا بجمع صور حركة المرور ووضعنا لها تعليقات توضيحية مع مربعات وتسميات.
إليك ما ستبدو عليه كل خطوة من خطوات المعالجة المسبقة لهذا المشروع:
- تغيير حجم الصور: نظرًا لأن YOLO11 يتعامل مع أحجام الإدخال المرنة ويقوم بتغيير الحجم تلقائيًا، فإن تغيير الحجم اليدوي غير مطلوب. سيقوم النموذج بضبط حجم الصورة وفقًا لمعلمة "imgsz" المحددة أثناء التدريب.
- تطبيع قيم البكسل: يقوم YOLO11 تلقائيًا بتطبيع قيم البكسل تلقائيًا إلى نطاق من 0 إلى 1 أثناء المعالجة المسبقة، لذا لا يلزم ذلك.
- تقسيم مجموعة البيانات: قسم مجموعة البيانات إلى مجموعات تدريب (70٪) ، والتحقق من الصحة (20٪) ، واختبر (10٪) باستخدام أدوات مثل scikit-learn.
- Data Augmentation: Modify the dataset configuration file (.yaml) to include data augmentation techniques such as random crops, horizontal flips, and brightness adjustments.
تتأكد هذه الخطوات من إعداد مجموعة البيانات دون أي مشاكل محتملة وأنها جاهزة لتحليل البيانات الاستكشافية (EDA).
تقنيات تحليل البيانات الاستكشافية
بعد المعالجة المسبقة وزيادة مجموعة البيانات الخاصة بك ، فإن الخطوة التالية هي اكتساب رؤى من خلال تحليل البيانات الاستكشافية. تستخدم جمعية الإمارات للغوص التقنيات الإحصائية وأدوات التصور لفهم الأنماط والتوزيعات في بياناتك. يمكنك تحديد مشكلات مثل اختلالات الفصل أو القيم المتطرفة واتخاذ قرارات مستنيرة بشأن المعالجة المسبقة للبيانات الإضافية أو تعديلات التدريب النموذجية.
تقنيات EDA الإحصائية
غالبا ما تبدأ التقنيات الإحصائية بحساب المقاييس الأساسية مثل المتوسط والوسيط والانحراف المعياري والنطاق. توفر هذه المقاييس نظرة عامة سريعة على خصائص مجموعة بيانات الصورة، مثل توزيعات كثافة البكسل. يساعدك فهم هذه الإحصائيات الأساسية على فهم الجودة والخصائص الشاملة لبياناتك ، مما يسمح لك باكتشاف أي مخالفات في وقت مبكر.
تقنيات EDA البصرية
التصورات هي المفتاح في EDA لمجموعات بيانات الصور. على سبيل المثال ، يعد تحليل عدم التوازن الطبقي جانبا حيويا آخر من EDA. يساعد في تحديد ما إذا كانت فئات معينة ممثلة تمثيلا ناقصا في مجموعة البيانات الخاصة بك ، يمكن أن يؤدي تصور توزيع فئات أو فئات صور مختلفة باستخدام المخططات الشريطية إلى الكشف بسرعة عن أي اختلالات. وبالمثل ، يمكن تحديد القيم المتطرفة باستخدام أدوات التصور مثل مخططات المربع ، والتي تسلط الضوء على الحالات الشاذة في كثافة البكسل أو توزيعات الميزات. يمنع اكتشاف القيم المتطرفة نقاط البيانات غير العادية من تحريف نتائجك.
تتضمن الأدوات الشائعة للمرئيات ما يلي:
- الرسوم البيانية والمخططات الصندوقية: مفيدة لفهم توزيع قيم البكسل وتحديد القيم المتطرفة.
- المخططات المبعثرة: مفيدة لاستكشاف العلاقات بين ميزات الصور أو التعليقات التوضيحية.
- خرائط الحرارة: فعالة لتصور توزيع كثافة البكسل أو التوزيع المكاني للمعالم المشروحة داخل الصور.
استخدام Ultralytics إكسبلورر لجمعية الإمارات للغوص
مذكرة المجتمع ⚠️
اعتباراً من ultralytics>=8.3.10
, Ultralytics explorer support has been deprecated. But don't worry! You can now access similar and even enhanced functionality through Ultralytics محور, our intuitive no-code platform designed to streamline your workflow. With Ultralytics HUB, you can continue exploring, visualizing, and managing your data effortlessly, all without writing a single line of code. Make sure to check it out and take advantage of its powerful features!🚀
For a more advanced approach to EDA, you can use the Ultralytics Explorer tool. It offers robust capabilities for exploring computer vision datasets. By supporting semantic search, SQL queries, and vector similarity search, the tool makes it easy to analyze and understand your data. With Ultralytics Explorer, you can create embeddings for your dataset to find similar images, run SQL queries for detailed analysis, and perform semantic searches, all through a user-friendly graphical interface.
التواصل والتواصل
يمكن أن يمنحك إجراء مناقشات حول مشروعك مع عشاق رؤية الكمبيوتر الآخرين أفكارا جديدة من وجهات نظر مختلفة. فيما يلي بعض الطرق الرائعة للتعلم واستكشاف الأخطاء وإصلاحها والتواصل:
قنوات للتواصل مع المجتمع
- GitHub Issues: Visit the YOLO11 GitHub repository and use the Issues tab to raise questions, report bugs, and suggest features. The community and maintainers are there to help with any issues you face.
- Ultralytics خادم ديسكورد: انضم إلى خادم Ultralytics Discord Server للتواصل مع المستخدمين والمطورين الآخرين والحصول على الدعم ومشاركة المعرفة وتبادل الأفكار وتبادل الأفكار.
الوثائق الرسمية
- Ultralytics YOLO11 Documentation: Refer to the official YOLO11 documentation for thorough guides and valuable insights on numerous computer vision tasks and projects.
مجموعة البيانات الخاصة بك جاهزة!
تعمل البيانات التي تم تغيير حجمها وتوحيدها وتعزيزها بشكل صحيح على تحسين أداء النموذج عن طريق تقليل الضوضاء وتحسين التعميم. باتباع تقنيات المعالجة المسبقة وأفضل الممارسات الموضحة في هذا الدليل، يمكنك إنشاء مجموعة بيانات قوية. مع استعداد مجموعة البيانات المعالجة مسبقا، يمكنك المتابعة بثقة إلى الخطوات التالية في مشروعك.
الأسئلة المتداولة
ما أهمية المعالجة المسبقة للبيانات في مشاريع الرؤية الحاسوبية؟
تعد المعالجة المسبقة للبيانات ضرورية في مشاريع الرؤية الحاسوبية لأنها تضمن أن تكون البيانات نظيفة ومتسقة وبتنسيق مثالي لتدريب النموذج. من خلال معالجة مشاكل مثل الضوضاء وعدم الاتساق وعدم التوازن في البيانات الخام، تساعد خطوات المعالجة المسبقة مثل تغيير الحجم والتطبيع والتكبير وتقسيم مجموعة البيانات على تقليل العبء الحسابي وتحسين أداء النموذج. لمزيد من التفاصيل، راجع خطوات مشروع الرؤية الحاسوبية.
كيف يمكنني استخدام Ultralytics YOLO لزيادة البيانات؟
For data augmentation with Ultralytics YOLO11, you need to modify the dataset configuration file (.yaml). In this file, you can specify various augmentation techniques such as random crops, horizontal flips, and brightness adjustments. This can be effectively done using the training configurations explained here. Data augmentation helps create a more robust dataset, reduce overfitting, and improve model generalization.
ما هي أفضل تقنيات تطبيع البيانات لبيانات الرؤية الحاسوبية؟
يعمل التطبيع على قياس قيم البكسل إلى نطاق قياسي لتقارب أسرع وتحسين الأداء أثناء التدريب. تتضمن التقنيات الشائعة ما يلي:
- تحجيم الحد الأدنى-الأقصى: تحجيم قيم البكسل إلى نطاق من 0 إلى 1.
- تطبيع Z-Score: قياس قيم البكسل بناءً على متوسطها وانحرافها المعياري.
For YOLO11, normalization is handled automatically, including conversion to RGB and pixel value scaling. Learn more about it in the model training section.
كيف يمكنني تقسيم مجموعة البيانات المشروحة للتدريب؟
To split your dataset, a common practice is to divide it into 70% for training, 20% for validation, and 10% for testing. It is important to maintain the data distribution of classes across these splits and avoid data leakage by performing augmentation only on the training set. Use tools like scikit-learn or TensorFlow for efficient dataset splitting. See the detailed guide on dataset preparation.
هل يمكنني التعامل مع أحجام الصور المختلفة في YOLO11 بدون تغيير الحجم يدويًا؟
Yes, Ultralytics YOLO11 can handle varying image sizes through the 'imgsz' parameter during model training. This parameter ensures that images are resized so their largest dimension matches the specified size (e.g., 640 pixels), while maintaining the aspect ratio. For more flexible input handling and automatic adjustments, check the model training section.