السلام عليكم ورحمة الله وبركاته
نبحث عن مطور متخصص في Python والرؤية الحاسوبية (Computer Vision) لبناء محرك تحليل فيديوهات كاميرات المراقبة، يعمل محليًا بالكامل على الجهاز دون الاعتماد على أي خدمات سحابية.
يستقبل المحرك تسجيلات الفيديو، ويعتمد على إعدادات مسبقة يحددها المستخدم، مثل رسم الخطوط والمناطق على الصورة، للكشف عن الأشخاص وتتبع حركتهم وتحليل سلوكهم داخل المتجر، ثم استخراج النتائج في ملفات قابلة للمعالجة لاحقًا.
ملاحظة: المطلوب هو تطوير محرك التحليل وأدواته فقط، أما الربط بقاعدة البيانات فسيتولاه مبرمج آخر.
أولًا: المتطلبات الأساسية للمحرك
يجب استخدام التقنيات والمكتبات التالية:
* اكتشاف الأجسام والأشخاص (Detection): باستخدام RF-DETR من المكتبة الرسمية rfdetr.
* تتبع الأشخاص (Tracking): باستخدام ByteTrack.
* الخطوط والمناطق والتحليلات المكانية: باستخدام مكتبة Supervision.
ويجب أن يدعم المحرك السيناريوهات التالية:
1. عدّ الداخلين والخارجين: من خلال تتبع عبور الأشخاص لخط محدد، مع تحديد اتجاه العبور.
2. حساب مدة البقاء في المنطقة: قياس الوقت الذي يقضيه الشخص داخل منطقة محددة.
3. حساب الإشغال: تحديد عدد الأشخاص الموجودين في كل منطقة في أي وقت.
يجب تصميم كل سيناريو كوحدة مستقلة (Modular Plugin)، بحيث يمكن إضافة سيناريوهات جديدة مستقبلًا دون الحاجة إلى تعديل الكود الأساسي للمحرك.
كما يجب توفير دليل مبسط يشرح آلية إنشاء سيناريو جديد وإضافته.
ثانيًا: متطلبات التشغيل والأداء
* يعمل المحرك محليًا بالكامل دون اتصال بالإنترنت أثناء التشغيل.
* الالتزام بسقف محدد لاستهلاك ذاكرة كرت الشاشة (VRAM)، مع إمكانية ضبطه.
* دعم الإيقاف المؤقت واستئناف المعالجة عند الطلب، دون فقدان حالة التتبع والتحليل.
* دعم معالجة تسجيلات فيديو متعددة ومتتالية باعتبارها امتدادًا زمنيًا لبعضها.
* ضمان عدم فقدان عمليات العبور أو احتسابها مرتين عند الانتقال من ملف فيديو إلى الملف التالي، بما يشمل التعامل الصحيح مع حالة التتبع والعبور عند حدود الملفات.
* استخراج النتائج في ملفات منظمة، مع إمكانية تحديد تنسيق المخرجات.
ثالثًا: أداة عرض النتائج والتحقق منها
توفير أداة لإنتاج فيديو توضيحي (Annotated Video) يعرض:
* الأشخاص المكتشفين والمتعقبين.
* معرّف كل شخص أثناء التتبع.
* الخطوط والمناطق المحددة.
* اتجاهات العبور ونتائج العدّ.
* مدة البقاء والإشغال حسب السيناريو المستخدم.
الهدف من هذه الأداة هو مراجعة نتائج المحرك بصريًا والتحقق من صحتها ومقارنتها بالتسجيل الأصلي.
رابعًا: نظام إضافة تصنيفات للأشخاص دون الحاجة إلى البرمجة
نحتاج إلى توفير آلية تتيح لنا إنشاء تصنيفات جديدة للأشخاص وتدريب نماذجها بأنفسنا، دون الحاجة إلى كتابة كود برمجي.
المثال الأول المطلوب: التمييز بين الموظف والزبون اعتمادًا على الزي.
يجب توفير الأدوات التالية:
1. أمر يستخرج صور الأشخاص من تسجيلات الفيديو.
2. نقوم نحن بتصنيف الصور يدويًا، وذلك بوضع صور كل فئة في مجلد مستقل.
3. أمر لتدريب نموذج التصنيف اعتمادًا على المجلدات المصنفة.
4. أمر لتقييم النموذج وقياس دقته، مع عرض نتائج التقييم.
5. إمكانية تفعيل التصنيف الجديد داخل المحرك من خلال الإعدادات.
يجب توفير دليل استخدام مبسط يشرح هذه الخطوات لمستخدم غير متخصص في البرمجة أو تعلم الآلة.
خامسًا: أداة تدريب RF-DETR على فئات وأجسام جديدة
نحتاج أيضًا إلى أداة مستقلة تتيح لنا تدريب نموذج RF-DETR لاكتشاف أنواع جديدة من الأجسام، وليس الأشخاص فقط.
أمثلة على الفئات المستقبلية:
* الأدوات.
* المنتجات.
* الهواتف المحمولة.
* أي أجسام أخرى نرغب في إضافتها لاحقًا.
آلية العمل المطلوبة:
1. نقوم بتجهيز الصور وتصنيفها يدويًا باستخدام المربعات المحيطة بالأجسام (Bounding Boxes) عبر برنامج CVAT.
2. توفير أمر لتدريب RF-DETR على البيانات المصنفة.
3. توفير أمر مستقل لتقييم النموذج وقياس دقته.
4. إمكانية تفعيل النموذج المدرب داخل محرك التحليل عن طريق الإعدادات، دون الحاجة إلى إعادة بناء المحرك أو تعديل أساسه البرمجي.
شرط مهم: يمكن قبول هذه الأداة واختبارها باستخدام مجموعة صور عامة ومعلّمة مسبقًا، ولا يشترط اختبارها على صور متجرنا.
ويجب توفير دليل مبسط يشرح عملية تجهيز البيانات والتدريب والتقييم وتفعيل النموذج، بحيث يتمكن شخص غير متخصص من تنفيذها.
سادسًا: قابلية التوسع والتطوير المستقبلي
من المهم جدًا تصميم بنية المحرك بحيث تكون قابلة للتوسع، وتستوعب إضافة أنواع جديدة من التحليلات مستقبلًا دون الحاجة إلى إعادة بناء النظام أو تغيير أساسه البرمجي.
من أمثلة التطويرات المستقبلية المتوقعة:
* كشف ارتداء الكمامات والقفازات.
* اكتشاف وتتبع الأدوات والمنتجات والأجسام غير البشرية.
* بناء قواعد زمنية تعتمد على حالة المناطق والأحداث، مثل إطلاق تنبيه عند بقاء منطقة خالية من الموظفين لأكثر من خمس دقائق.
* دمج أكثر من نوع من التحليلات والتصنيفات ضمن السيناريو الواحد.
هذه الميزات ليست ضمن نطاق التنفيذ الحالي، وإنما المطلوب تأسيس بنية تقنية تستوعب إضافتها مستقبلًا بسهولة، من خلال وحدات مستقلة وواجهات واضحة بين مكونات النظام.
سابعًا: بيئة العمل والتسليم
بيئة التشغيل المستهدفة:
* نظام التشغيل: Ubuntu 24.04.
* كرت الشاشة: NVIDIA Quadro RTX 6000.
* ذاكرة كرت الشاشة: 24GB VRAM.
المخرجات المطلوبة عند التسليم:
1. حزمة Python منظمة وموثقة.
2. صورة Docker جاهزة للتشغيل دون الحاجة إلى اتصال بالإنترنت.
3. اختبارات آلية للتحقق من صحة الوظائف الأساسية.
4. توثيق لطريقة التثبيت والتشغيل والإعدادات.
5. أدلة استخدام مبسطة لأدوات التدريب والتصنيف وإضافة السيناريوهات.
6. أمثلة عملية توضح كيفية استخدام المحرك واستخراج النتائج.
ثامنًا: التقنيات والقيود غير المسموح بها
يُمنع استخدام ما يلي:
* Ultralytics أو أي من نماذج أو مكتبات YOLO التابعة لها.
* أي مكتبة أو مكون برمجي مرخص بموجب AGPL.
* أي خدمة سحابية أو اعتماد على معالجة خارجية.
* أي تقنية للتعرف على الوجوه أو تحديد هوية الأشخاص من وجوههم.
يجب أن تكون جميع المكونات المستخدمة متوافقة مع هذه القيود، مع توضيح التراخيص البرمجية للمكتبات والمكونات الرئيسية ضمن التسليم.
تاسعًا: آلية تنفيذ المشروع وشرط القبول
سيبدأ المشروع بمرحلة أولى محددة، وهي تنفيذ سيناريو عدّ الداخلين والخارجين عبر خط افتراضي على تسجيل فيديو حقيقي من متجرنا.
وسيكون قبول هذه المرحلة وفق الآلية التالية:
* نزوّد المطور بتسجيل حقيقي من كاميرا المتجر.
* يقوم المحرك بتحليل التسجيل واكتشاف وتتبع الأشخاص وتحديد عمليات العبور.
* تتم مقارنة نتائج المحرك مع عدّ يدوي مرجعي لكل عملية عبور.
* يجب أن تكون النتائج قابلة للتحقق من خلال مراجعة الفيديو والمخرجات البرمجية.
شرط الاستمرار في المشروع:
إذا نجحت المرحلة الأولى في تحقيق المطابقة المطلوبة بين عمليات العبور الفعلية والنتائج التي ينتجها المحرك، يستمر العمل في بقية المشروع.
أما إذا لم تنجح، فيُلغى المشروع بالكامل دون أي مقابل مالي.
التقديم على المشروع يُعد موافقة صريحة على آلية القبول هذه وشرط إلغاء المشروع دون مقابل عند عدم اجتياز المرحلة الأولى.
عاشرًا: شرط الشفافية والتحقق من النتائج
أي رقم أو نتيجة أو نسبة دقة يذكرها المطور يجب أن تكون مدعومة بالأدلة التي أنتجتها فعليًا، وتشمل:
* فيديو يوضح النتيجة بصريًا.
* الكود البرمجي الذي أنتج النتيجة.
* إمكانية إعادة تشغيل الاختبار والتحقق من صحته.
لا نقبل أرقامًا أو نسب دقة نظرية أو نتائج غير قابلة لإعادة الإنتاج والتحقق.
⸻
المطلوب من المتقدم:
أن يمتلك خبرة عملية في Python والرؤية الحاسوبية وتتبع الأجسام وتدريب نماذج الذكاء الاصطناعي، وأن يكون قادرًا على تصميم نظام معياري قابل للتوسع، مع تقديم أمثلة من أعمال سابقة ذات صلة إن وجدت.
يرجى توضيح الخبرة في RF-DETR وByteTrack وSupervision، ومدى القدرة على تنفيذ مرحلة الاختبار الأولى وفق شروط القبول المذكورة.
| تاريخ التسجيل | |
| معدل التوظيف | |
| المشاريع المفتوحة | 1 |
| مشاريع قيد التنفيذ | 1 |
| التواصلات الجارية | 8 |
قادر علي تطوير محرك متكامل لتحليل فيديوهات كاميرات المراقبة باستخدام الذكاء الاصطناعي، يعمل محليا بالكامل، ويتيح اكتشاف الأشخاص وتتبع حركتهم وتحليل سلوكهم داخل ...
السلام عليكم ورحمة الله وبركاته قرأت الوصف كاملا، وجهزت قبل التقديم عرضا تجريبيا يعمل بالمكتبات المطلوبة نفسها، لأن أوضح رد على أسئلتكم هو نتيجة تشاهدونها وتعيد...