$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
تم الحصول على مجموعة البيانات المستخدمة في هذا المقال من حقل AS/RS في قسم اللوجستيات في شركة لونغيان لصناعة التبغ. لم تشمل هذه الدراسة مشاركين بشريين أو. لم تكن هناك حاجة لموافقة أخلاقية.
جمع وإعداد مجموعة البيانات
تكوين الأجهزة: تركيب كاميرا صناعية (مثل MV-CA013-A0GM) مزودة بعدسة بؤرة 8 مم (مثل MVL-HF0828M-6MPE) على منصة الشحن في رافعة التكديس. قم بتوصيل الكاميرا بجهاز تحكم عبر كابل GigE وجهاز وصول لاسلكي (مثل BH-ANT5158S-14HV، BH-MS-AC1600HWH). ضع ضوء LED شريطي (مثل MV-LLDS-1002-38-W) حول الكاميرا لضمان إضاءة متجانسة.
إعداد معلمات الكاميرا: قم بتكوين الكاميرا باستخدام برنامج الشركة المصنعة (مثل MVS). اضبط دقة الاستحواذ على 1280 × 1024 بكسل. اضبط وضع الزناد على زناد الأجهزة وقم بمزامنها مع نظام تحديد المواقع في رافعة المكدسة. اضبط وقت التعريض إلى 100 مللي ثانية والكسب إلى 5 ديسيبل لتقليل ضبابية الحركة والضوضاء. المسافة بين الكاميرا وعلب السجائر حوالي 550 مم.
مجموعة الصور: تلتقط كاميرا صناعية مزودة بمشغل صورة تلقائيا في كل مرة يتم فيها وضع صينية أثناء تخزين واسترجاع صناديق السجائر. جمع ما مجموعه 4,835 صورة خام؛ تظهر الصور النموذجية في الشكل 1.
تعليق الصورة: استخدم أداة المصدر المفتوح LabelImg. لكل صورة، ارسم صناديق محيطة حول كل ميزة ظاهرة لعلامة السيجارة. تعيين اسم العلامة التجارية الصحيح (مثل هونغتشوانغ، جوتيان) كمسمى فئة لكل صندوق محيط. احفظ التعليقات بصيغة كشف أحادية المرحلة القياسية، مع ملف نص واحد لكل صورة.
مراقبة الجودة: يقوم معلق ثان بمراجعة 20٪ من الصور المشروحة المختارة عشوائيا. يتم مناقشة وحل أي تناقضات، لضمان اتساق التصنيف.
استراتيجية تعزيز البيانات
هذا القسم يوضح تقنيات التعزيز التقليدية والمتقدمة المطبقة على مجموعات البيانات. يتم دمج البيانات الأولية والبيانات المعززة في مجموعة بيانات جديدة، ثم تقسم إلى مجموعة تدريب، مجموعة تحقق، ومجموعة اختبار لضمان العدالة في التقييم.
تعزيز البيانات التقليدي32: يتم تطبيق هذه التحويلات في الوقت الحقيقي بواسطة خط أنابيب التدريب (مثل استخدام مكتبات Albumentations أو PyTorch Transforms) مع احتمال محدد لكل دفعة.
التحويلات الهندسية: الدوران: تدوير الصور عشوائيا بزاوية بين -45° و+45°. التكبير: تكبير الصور عشوائيا بعامل يتراوح بين 0.8 و1.2. الانقلاب الأفقي: قلب الصور عشوائيا أفقيا بنسبة 100٪. القص العشوائي: اقتصاص قسما عشوائيا بين 80٪ و100٪ من مساحة الصورة الأصلية.
التحويلات الضوئية: السطوع والتباين: ضبط السطوع والتباين بواسطة عامل يتم اختياره عشوائيا من [0.6، 1.4]. ضوضاء غاوسي: أضف ضوضاء غاوسية مع انحراف معياري يتم اختياره عشوائيا من [0, 0.01 * 255] إلى 10٪ من الصور. ضباب غاوسي: تطبيق ضباب غاوسي بحجم نواة من 3x3 إلى 10٪ من الصور.
محاكاة الإخفاء: ضع عشوائيا من 1 إلى 3 رقع إخفاء مستطيلة (تغطي كل منها ما يصل إلى 5٪ من مساحة الصورة) على الصور. الرقع مليئة بالضوضاء العشوائية أو متوسط قيم بكسل الصورة.
تعزيز البيانات المتقدم: نسخ ولصق حسب المنطقة
الدافع والأثر: كان الدافع الأساسي لهذا التعزيز المستهدف هو معالجة مشكلة بيانات حاسمة: فقد كان لدى العديد من علامات السجائر حالات قليلة جدا (حتى صورة واحدة). يمكن أن يخصص تقسيم اختبار التحقق العشوائي القياسي من القطار جميع نسخ علامة نادرة إلى مجموعة واحدة (أي جميعها لمجموعة الاختبار)، مما يجعل النموذج لا يحصل على فرصة لتعلم أو التحقق من صحة تلك العلامة التجارية. وقد زادت هذه الطريقة بشكل مصطنع حجم العينة لهذه العلامات التجارية الممثلة تمثيلا ناقصا، لضمان أن كل علامة تجارية لديها عدد كاف من الحالات موزعة عبر مجموعات التدريب والتحقق والاختبار. تمنع هذه الخطوة الأساسية الفشل الكارثي في الفئات النادرة وهي شرط مسبق لأي أداء نموذج ذي معنى وتعميم على مجموعة العلامات التجارية الكاملة.
تتطلب هذه الخطوة نموذج أساس مقطعي مدرب مسبقا على مجموعة البيانات الأولية ونموذج Segment Anything Model (SAM)33.
كائنات مصدر القطاع: لصور صناديق السجائر من العلامات التجارية الممثلة تمثيلا ناقصا، استخدم نموذج SAM لإنشاء أقنعة تقسيم دقيقة. استخدم وضع التوجيه النقطي، وانقر على ميزة العلامة التجارية في صندوق السجائر لبدء التقسيم. تحقق يدويا وقم بتحسين الأقنعة المولدة لضمان الدقة. احفظ صور علبة السجائر المقسمة ذات الخلفيات الشفافة كملفات PNG. هذا ينشئ مكتبة من حالات الكائنات المعزولة.
توليد أقنعة الخلفية: استخدم نموذج الخط الأساسي المقطع المدرب مسبقا لإجراء تقسيم النسخة على مجموعة من صور الخلفية (صور ذات مساحة واسعة أو خلفيات بسيطة). سيخرج النموذج أقنعة ثنائية تشير إلى المناطق التي تشغلها الأجسام بالفعل.
معالجة الأقنعة وكائنات اللصق: لكل قناع خلفية، استخدم مكتبة OpenCV (دالة 'cv2.approxPolyDP' بعامل إبسيلون 0.02 * محيط الكونتور) لإجراء ملاءمة منحنية وخطية حواف القناع، مما يحصل على تمثيل مضلع مبسط للمساحة الحرة. حدد أكبر منطقة مضلعة متجاورة داخل قناع الخلفية كمنطقة المعجون المستهدف. اختر كائن المصدر المقسم عشوائيا من المكتبة. إعادة حجمه (مع الحفاظ على نسبة العرض إلى الارتفاع) وتطبيق تحويل أفيني (دوران بسيط بين -5° و+5°، وقص طفيف) ليتناسب بشكل طبيعي مع منطقة المعجون المستهدفة، لضمان عدم تداخله مع حدود الأجسام الموجودة. استخدم دمج ألفا للصق الكائن المحول بسلاسة على صورة الخلفية في الموقع المحسوب. الإطار العام لتقنية تعزيز البيانات المعتمد على تقنية النسخ واللصق في مجالات محددة موضح في الشكل 2. تولد برمجيا ملف تعليقات txt جديد مقابل للكائن الملصق، مع تحديث إحداثيات صندوق الإحدار وتسمية الفئة.
مجموعة البيانات المعدلة النهائية: هذه العملية غير المتصلة بالإنترنت تولد 600 صورة اصطناعية جديدة. اجمعها مع 4,835 صورة أصلية و1,167 صورة إضافية تم إنشاؤها بتطبيق تقنيات التعزيز التقليدية كما هو موضح أعلاه لتشكيل مجموعة البيانات النهائية التي تضم 6,602 صورة. قسم مجموعة البيانات النهائية إلى مجموعات تدريب (70٪، 4,621 صورة)، التحقق (20٪، 1,320 صورة)، والاختبار (10٪، 661 صورة)، لضمان بقاء الصور من نفس التسلسل الأصلي ضمن نفس التقسيم لمنع تسرب البيانات.
تعديل النموذج لبناء الكاشف المحسن المقترح
حققت خوارزميات الكشف عن الأجسامالمحسنة 34 تقدما ملحوظا في التفتيش الصناعي خلال السنوات الأخيرة. يوفر هذا القسم إجراء مفصلا خطوة بخطوة لتعديل بنية النموذج الأساسي لإنشاء النموذج المقترح. يتم تنفيذ التعديلات عن طريق تحرير ملف تكوين النموذج (مثل config.yaml) والتأكد من تضمين تعريفات الوحدات المخصصة المقابلة في قاعدة الكود. يتم تقديم مبررات كل تعديل لتوضيح دوره في معالجة تحديات الكشف المحددة. هيكل النموذج المقترح موضح في الشكل 3.
استبدال وحدات التقليل من العينات بوحدة ADown: تستخدم وحدة Convolution-BatchNorm-SiLU القياسية المستخدمة في التقليل العينات الالتفافية ذات شريط واحد، والتي يمكن أن تعمل كعنق زجاجة معلومات35، مما قد يتخلى عن الميزات الدقيقة الحبيبية التي يجب التعرف عليها في صناديق السجائر الصغيرة وشعارات العلامات التجارية التفصيلية. تم تصميم وحدة ADown لتخفيف ذلك من خلال تنفيذ هيكل فرعي مزدوج يلتقط ويحافظ على مجموعة أغنى من الميزات أثناء تقليل الدقة المكانية. يركز فرع واحد على الاحتفاظ بالتفاصيل المحلية عالية التردد، بينما يأخذ الآخر نظرة عامة أوسع وغنية بالسياق. يؤدي دمج هذه الميزات التكميلية إلى تمثيل أكثر قوة ومعلوماتية للطبقات التالية.
خطوات التنفيذ
تعريف الوحدة: تأكد من أن وحدة PyTorch مخصصة باسم ADown محددة ضمن ملفات تعريف النموذج الخاصة بالمشروع. يجب أن تحتوي هذه الوحدة على فرعين متوازيين. يجب أن يتكون الفرع الأول من طبقة التفاف ثنائية الأبعاد مع نواة 3x3 وخطوة بحجم 2. يجب أن يتكون الفرع الثاني بشكل تسلسلي من طبقة تجميع قصوى 2x2 (مع خطوة 2) تليها طبقة الالتفاف 1x1. يجب ربط مخرجات هذين الفرعين على طول بعد القناة، ثم تمر خريطة الميزة الناتجة عبر طبقة الالتفاف النهائية 1x1 لتكامل القنوات وإنتاج المخرج. هيكل وحدة ADown موضح في الشكل 4.
تحرير ملف التكوين: افتح ملف تكوين النموذج الأساسي (config.yaml). تحديد كل حالة من وحدة CBS تم تكوينها لتقليل العينات بشكل منهجي (أي حيث يتم تعيين معامل stride على 2). استبدل كل من هذه الإدخالات في وحدة CBS بوحدة ADown الجديدة.
دافع التصميم: تصميم ADown مدفوع بالحاجة إلى تقليل فقدان المعلومات في التفافيات الشرائط القياسية، والتي قد تكون ضارة بالأشياء الصغيرة. هيكله ذو الفرعين مستوحى من فكرة المعالجة المتوازية لالتقاط كل من التفاصيل المكانية عالية التردد (عبر الالتفاف) والمعلومات السياقية منخفضة التردد (عبر التجميع)، مما يوفر تمثيلا أكثر ثراء متعدد المقاييس للميزات للطبقات التالية.
تكامل وحدة iEMA
المبرر ومبدأ التصميم: لتعزيز قدرة النموذج على اكتشاف الأهداف الصغيرة وتلك التي تكون مخفية جزئيا، من الضروري دمج آلية يمكنها نمذجة السياق المكاني متعدد المقاييس بفعالية. تحقق وحدة iEMA ذلك من خلال تضمين مكون الانتباه متعدد المقاييس الفعال (EMA)36 داخل هيكل كتلة متبقية مقلوبة (iRMB)37 . يوفر iRMB أساسا حسابيا فعالا باستخدام الالتفافات القابلة للفصل من حيث الأعماق، بينما يلتقط مكون EMA بشكل صريح التفاعلات المكانية عبر المقاييس من خلال تصميم متعدد الفروع متوازي. يسمح هذا التكامل للنموذج بإعادة معايرة أوزان الميزات ديناميكيا، مركزا الانتباه على المناطق المكانية الأكثر تمييزا عبر مقاييس مختلفة، مما يحسن التعرف تحت الإخفاء وللأجسام الصغيرة.
خطوات التنفيذ
تعريف الوحدة: تأكد من تعريف وحدة PyTorch مخصصة باسم iEMA. يجب أن تؤخذ هذه الوحدة أولا كتلة متبقية مقلوبة. عادة ما يبدأ هذا الكتلة بالتفاف نقطي لتوسيع القناة، يليه التواء عميق (مثل 3x3) لاستخراج الميزات المكانية، وأخيرا الالتفاف نقطي لإسقاط القناة. مباشرة بعد هذا العقب، يجب تنفيذ آلية الانتباه الEMA. عادة ما تستخدم آلية EMA التفافيات مجمعة وتفاعلات عبر الأبعاد لتوليد خريطة انتباه مكانية متعددة المقاييس بكفاءة دون عبء حسابي مفرط. هيكل وحدة iEMA موضح في الشكل 5.
تحرير ملف التكوين: في ملف تكوين config.yaml، حدد الأقسام التي تحدد شبكة الرقبة، وتحديدا الطبقات التي تلي وحدات C2f مباشرة. في هذه المواقع الاستراتيجية، أدرج طبقة جديدة تستدعي وحدة iEMA.
دافع التصميم: تستند وحدة iEMA إلى مبدأ تعزيز التمييز بين الميزات من خلال دمج استخراج الميزات المحلية (عبر التفاف العمق) مع آلية نمذجة السياق العالمية الخفيفة لكنها فعالة. يسمح هذا النهج الهجين للنموذج بالتركيز التكيفية على المناطق المعلوماتية عبر مقاييس مختلفة، وهو أمر بالغ الأهمية للتعرف على شعارات ونصوص العلامات التجارية المرئية جزئيا.
استبدال رأس الكشف بوحدة DynamicHead
المنطق ومبدأ التصميم: قد لا يتعامل رأس الكشف الأصلي بشكل مثالي مع التفاوت الكبير في مقياس صناديق السجائر والتفاعل المعقد بين مهام تحديد الموقع والتصنيف. تعالج وحدة DynamicHead هذا من خلال توحيد ثلاثة أشكال من الانتباه في هيكل متماسك: الانتباه الواعي بالمقياس، والانتباه المكاني، والانتباه الواعي بالمهمة. يقوم المكون الواعي بالمقياس بدمج الميزات من مستويات مختلفة من هرم الميزات بشكل ديناميكي، مما يضمن تمثيل الكائنات من جميع الأحجام بشكل فعال. يستخدم المكون الواعي المكاني استراتيجية أخذ عينات متفرقة لتركيز الموارد الحسابية على أكثر المناطق إفادة المعلومات داخل خرائط الميزات. يقوم المكون الواعي بالمهام بتكييف تمثيل الميزات خصيصا لتحقيق الأهداف المميزة مثل انحدار صندوق الحدود وتصنيف الفئات. يؤدي هذا النهج الموحد إلى توقعات أكثر دقة وقوة.
خطوات التنفيذ
تعريف الوحدة: هذه وحدة معقدة تشمل الآليات الثلاثة للانتباه الموصوفة في المعادلات (1) إلى (4). سيشمل هيكله الداخلي طبقات لحساب الأوزان حسب المقياس، وأداء الانتباه المكاني القابل للتشوه، وتطبيق تحويلات الميزات الخاصة بالمهمة.
(1)
(2)
(3)
(4)
حيث يشير WL(F) إلى خريطة الميزة النهائية المكررة بالانتباه، والتي يتم الحصول عليها بتطبيق آليات الانتباه الواعية بالمقياس πL(F)، و π S(F) الواعية للمكان، وآليات الانتباه الواعية للمهمة πC(F) على ميزة الإدخال F. تحديدا، في المعادلة (2)، πL(F) يحسب وزن انتباه حسب المقياس عن طريق المتوسط أولا عبر أبعاد مكانية (S) وأبعاد القناة (C)، ثم تمريره عبر دالة خطية f(⋅) وتفعيل سيجمويدي صلب σ(⋅). في المعادلة (3)، يقوم π S(F) بتركيز مكاني متفرق من خلال تجميع ميزات من K نقاط رئيسية مأخوذة من عينات pk، كل منها مع إزاحة قابلة للتعلم Δpk للتركيز على المناطق التمييزية وعدد الأهميةΔmk. في المعادلة (4)، ينفذ πC(F) انتباها واعيا بالمهمة من خلال تطبيق تحويل خطي (يحكمه معلمات مكتسبة (α1، β1،α 2،β 2)) على كل قناة ويختار أقصى استجابة، مما يسمح للرأس بالتخصص في مهام التصنيف والانحدار. هيكل وحدة DynamicHead موضح في الشكل 6.
تحرير ملف التكوين: في ملف config.yaml، ابحث عن القسم الذي يحدد رأس النموذج، والذي يحتوي في الأصل على وحدة Detect (Detect module). استبدلته بإدخال جديد يستدعي وحدة DynamicHead.
دوافع التصميم: تستند وحدة DynamicHead إلى الملاحظة بأن رؤوس اكتشاف الأجسام يجب أن تكون قابلة للتكيف مع الحجم والموقع المكاني والمهام. إطار الانتباه الموحد الخاص به، الذي تم تكليفه رسميا في Eqs. (1-4)، يسمح للنموذج بإعادة معايرة استجابات الميزات ديناميكيا بناء على هذه الأبعاد الثلاثة، مما يؤدي إلى توقعات أكثر متانة ضد تباين المقياس والفوضى الخلفية.
تدريب النماذج
تأكد من تثبيت PyTorch 2.1.0 وCUDA 12.1 وجميع التبعيات.
قيادة التدريب
قبل إعادة التدريب، جهز بيانات الصورة المقسمة وبيانات التعليقات التوضيحية بصيغة كشف أحادية المرحلة القياسية. أنشئ ملف .yaml يحتوي على مسار الصورة وفئة البيانات. وفقا لتحسين النموذج، يتم استبدال ملف .yaml الأصلي للكاشف بملف .yaml المقترح. اكتب ملف train.py، واستيراد حزمة الكاشف أحادية المرحلة، وحمل نموذج التدريب ومسار البيانات، وضبط بعض معلمات التدريب، بما في ذلك imgze=640، epochs=100، دفعة=4، العمال=0، الجهاز='0'، المحسن='SGD'، close_mosaic=10، وهكذا.
المعلمات الفائقة: المعلمات الرئيسية هي: حجم الصورة المدخلة (640 × 640)، حجم الدفعة (4)، معدل التعلم الأولي (0.01) مع جدولة التلدين الجيب تمام، محسن SGD مع زخم (0.937)، وتناقص الوزن (0.0005). يتم تفعيل تعزيز الفسيفساء بشكل افتراضي.
مراقبة التدريب: ستنتج عملية التدريب مقاييس لكل حقبة. راقب المنحنيات لفقدان التدريب/التحقق وmAP عند 0.5 لضمان التقارب وتجنب الإفراط في التوافق. التدريب لمدة 100 عصر يكون عادة كافيا.
تقييم النماذج ونشرها
التقييم: بعد التدريب، يتم حفظ أفضل نموذج كجري/تدريب/خبرة/أوزان/أفضل نقطة. قم بتقييمه على مجموعة القيمة باستخدام: bash python val.py --data cigarette_dataset.yaml --weights/train/exp/weights/best.pt. سيقوم السكربت بإخراج الدقة، الاستدعاء، mAP عند 0.5، إلخ. تأكد من أن mAP يحقق الحد المطلوب (مثلا 97.9٪).
الاستدلال للتحقق: قم بتشغيل الاستدلال على عينات الصور للتحقق بصريا من نتائج الكشف: bash python detect.py --weights/train/exp/weights/best.pt --source path/to/test/images --conf 0.5. من خلال التحقق من المنطق، يمكن الحصول على نتائج الكشف لكل صورة وسرعة الكشف للنموذج.
النشر: للنشر في الوقت الحقيقي على نظام رافعة المكدمات، قم بتحويل نموذج PyTorch (best.pt، ~4.7 ميجابايت) إلى صيغة مثل TensorRT أو ONNX لتحسين سرعة الاستدلال. النتيجة النهائية هي صناديق محيطة تحمل ملصقات الفئات (أسماء العلامات التجارية) ودرجات الثقة.