هذه الصفحة تشرح بلغة بسيطة ما يفعله نظام رقيب بفيديو كاميرات المغسلة، وما يستطيع رؤيته وما لا يستطيع. لا تحتاج إلى أي خلفية تقنية لقراءتها.
الفيديو في الحقيقة صور متتالية (من 12 إلى 25 صورة في الثانية). يمرّ النظام على هذه الصور ويقوم بثلاث خطوات: يكشف الأشخاص والسيارات في كل صورة، ثم يتتبعهم من صورة إلى التي تليها، ثم يفهم ما يحدث: أين يقف كل شخص، هل هو عامل أم عميل، وفي أي مرحلة من الخدمة تكون السيارة. في النهاية يكتب التقرير.
1. الكشف: «ماذا يوجد في الصورة؟»
نموذج ذكاء اصطناعي (اسمه YOLO) ينظر إلى كل صورة ويرسم مربعًا حول كل شخص وكل سيارة يجدها، ومعه درجة ثقة من 0 إلى 1 (مثلًا 0.87 تعني «متأكد إلى حد كبير أن هذا شخص»).
- المربعات ذات الثقة المنخفضة تُهمَل حتى لا نعدّ ظلًا أو انعكاسًا على أنه شخص.
- يرى النموذج الصورة بحجم مصغّر (مثلًا 960 نقطة عرضًا) ليعمل بسرعة على المعالج العادي دون كرت شاشة. كلما كبّرنا هذا الحجم رأى الأشخاص البعيدين الصغار أفضل، لكنه يصبح أبطأ.
- النموذج الحالي تدرّب على صور عامة من الإنترنت، لا على صور مغسلتنا. لذلك يخطئ أحيانًا في الليل أو مع الرغوة الكثيفة أو مع السيارة المصوّرة من الأعلى. تدريبه على صور من كاميراتنا هو أكبر تحسين قادم.
2. التتبع: «هل هذا نفس الشخص الذي رأيناه قبل لحظة؟»
الكشف وحده لا يعرف أن الشخص في الصورة الأولى هو نفسه في الصورة الثانية. التتبع يربط المربعات عبر الصور حسب الموقع والحركة، ويعطي كل مسار رقمًا ثابتًا (عامل 3، سيارة أ ...).
المشكلة المعروفة هي تبديل الرقم: عندما يختفي العامل خلف سيارة أو يخرج من الكاميرا ثم يعود، قد يأخذ رقمًا جديدًا. في مقطع الساحة (90 ثانية) أعطى المتتبع 36 رقمًا لحوالي 6 أشخاص حقيقيين. لهذا:
- عدد «الأشخاص» في التقرير تقدير، وليس عدًّا دقيقًا للرؤوس.
- النظام يحاول دمج الأجزاء التي يكمل بعضها بعضًا (نفس المكان بعد لحظة) في شخص واحد.
- الحلول التي نجربها: انتظار أطول قبل اعتبار الشخص «غادر»، ومقارنة شكل الملابس بين الأجزاء. لكن الزي الموحّد يجعل العمال متشابهين جدًا؛ والحل الأرخص فعليًا سترات مرقّمة للعمال.
3. المناطق: «أين يقف؟»
نرسم على صورة كل كاميرا مضلعات ثابتة لها أسماء: منطقة الغسيل، كراسي الانتظار، مكان المكنسة، موقف السيارات عند البوابة. ثم يحسب النظام لكل رقم كم ثانية قضى في كل منطقة.
- نستخدم القدمين (منتصف أسفل المربع) لا الرأس، لأن الرأس قد يظهر فوق منطقة بعيدة عنه بسبب زاوية الكاميرا.
- السيارة تُحسب في المنطقة بمركز مربعها.
- المناطق تُرسم مرة واحدة لكل كاميرا، وتُراجَع بالعين. إذا تحرّكت الكاميرا يجب إعادة رسمها.
4. الأدوار: عامل أم عميل؟
يجمع النظام دليلين:
- السلوك: من يبقى بجانب السيارة 8 ثوانٍ أو أكثر غالبًا عامل. من ينزل من باب السيارة، أو يجلس ساكنًا بعيدًا عن السيارات، غالبًا عميل. من يمرّ مرورًا يبقى «غير محدد».
- المظهر: نرسل أوضح 3 صور مقصوصة للشخص إلى نموذج رؤية يصف الملابس: زي Waves (قميص أسود أو أصفر بشعار وكاب غالبًا) أو ثوب أبيض وشماغ أو ملابس عادية.
إذا كان المظهر واضحًا فهو الذي يقرر، وإلا يقرر السلوك. التقرير يذكر لكل شخص على أي أساس صُنّف.
5. تصنيف المرحلة: وصول ← غسيل ← تجفيف ← انتهاء
- وصول: سيارة توقفت ولم يبدأ أحد العمل عليها.
- غسيل وتجفيف: كل 10 ثوانٍ تقريبًا نقصّ صورة السيارة ومن حولها من العمال، ونسأل نموذج الرؤية: هل نرى ماءً ورغوة وخرطومًا (غسيل)، أم مناشف ومسحًا دون ماء (تجفيف)؟ نأخذ رأي الأغلبية في آخر 3 عينات حتى لا تقفز المرحلة ذهابًا وإيابًا.
- انتهاء: لا يوجد عامل عند السيارة لمدة 15 ثانية بعد بدء الخدمة.
- إذا لم يتوفر نموذج الرؤية نرجع إلى قاعدة بسيطة: فترة غياب للعمال بعد الغسيل تعني بداية التجفيف.
6. الخرائط الحرارية: «أين يقضي الناس وقتهم؟»
نقسم الصورة إلى شبكة (32 × 18 خانة)، ونعدّ في كل خانة كم مرة ظهر فيها شخص. ثم نلوّن الخانات فوق صورة حقيقية من الكاميرا: الأحمر حيث يقف الناس كثيرًا، الأزرق حيث يمرّون قليلًا. لدينا خريطة لكل الناس، وخريطة لمنطقة السيارات، وخريطة لكل عامل مع مساره. هذه الخرائط تُظهر بسرعة الأماكن المزدحمة والأماكن المهملة.
7. قراءة اللوحات
- في فيديو 1080p تكون اللوحة عرضها نحو 40 نقطة فقط، أي مربعات لا تُقرأ.
- لذلك نأخذ لقطات ثابتة بدقة 4K (وتكبيرًا على اللوحة)، ويقرأها نموذج الرؤية.
- كل لوحة تأخذ حالة: مقروءة / تقريبية (بعض الحروف غير مؤكدة) / غير واضحة / غير ظاهرة. لا نخمّن لوحة لم نرها.
لماذا دقة 4K مهمة؟
صورة 4K فيها أربعة أضعاف عدد النقاط في 1080p. هذا يعني:
- لوحات تُقرأ، ووجوه وشعارات زي أوضح في الصور القريبة.
- الأشخاص البعيدون في الساحة (بضع عشرات من النقاط فقط في 1080p) يصبحون أكبر وأسهل كشفًا.
لكن فكّ ضغط فيديو 4K وتحليله أبطأ بكثير على معالج بلا كرت شاشة. لذلك الأسلوب الحالي: تحليل الحركة والتتبع على نسخة أصغر من الفيديو، واستخدام 4K للقطات ثابتة في اللحظات المهمة (وصول السيارة، قبل وبعد، اللوحة). وتسريع النموذج نفسه (OpenVINO على معالجات AMD/Intel) يوفر وقتًا إضافيًا.
ما يستطيع النظام رؤيته وما لا يستطيع
| يستطيع (بدرجة جيدة) | لا يستطيع بعد، أو بدقة محدودة |
|---|---|
| وصول السيارة ووقت بدء الخدمة وانتهائها | معرفة اسم العامل من وجهه: الزي موحّد والكاميرات من الأعلى (نستخدم أرقامًا، أو أسماء يُدخلها مدير) |
| مدة الغسيل والتجفيف لكل سيارة | العدّ الدقيق للأشخاص: تبديل الرقم يضخّم العدد |
| وجود العمال عند السيارة وعددهم التقريبي | ما يحدث خلف البخار أو الرغوة الكثيفة جدًا، أو خارج زاوية الكاميرا |
| الوقت في كل منطقة (غسيل، انتظار، مكنسة) | جودة الغسيل الفعلية (هل بقيت بقعة؟) |
| الخرائط الحرارية والأماكن المزدحمة | ما يحدث داخل السيارة |
| نوع السيارة ولونها، واللوحة من لقطة 4K | اللوحة من فيديو 1080p |
| تمييز العامل من العميل في أغلب الحالات | الليل وصور الأشعة تحت الحمراء (رمادية) تقلل الدقة حتى ندرّب النموذج على صورنا |
قاعدة عامة: الأرقام في التقرير قياسات آلية من صور كاميرات، وهي ممتازة لمقارنة الأيام والورديات ومعرفة الاتجاه العام، لكنها ليست دليلًا قاطعًا على حادثة بعينها دون النظر إلى الفيديو نفسه. كل تقرير يذكر مصدر كل حكم (السلوك أو المظهر أو قاعدة احتياطية) حتى يمكن مراجعته.
مصطلحات
| بالعربية | بالإنجليزية | المعنى باختصار |
|---|---|---|
| الكشف | Detection | رسم مربع حول كل شخص وسيارة في الصورة |
| درجة الثقة | Confidence | مدى تأكد النموذج من المربع (0 إلى 1) |
| التتبع | Tracking | ربط المربعات عبر الصور برقم ثابت |
| تبديل الرقم | ID switch | نفس الشخص يأخذ رقمًا جديدًا |
| المنطقة | Zone | مضلع ثابت مرسوم على صورة الكاميرا |
| الوقت في المنطقة | Time in zone | ثوانٍ قضاها رقم ما داخل مضلع |
| الدور | Role | عامل / عميل / غير محدد |
| المرحلة | Phase | وصول، غسيل، تجفيف، انتهاء |
| الخريطة الحرارية | Heat map | ألوان تبيّن أين يقضي الناس وقتهم |
| نموذج الرؤية | Vision model | نموذج يصف صورة مقصوصة بالكلمات |
| الدقة | Resolution | عدد النقاط في الصورة (1080p، 4K) |
