كيف استبدلنا الكشافة الرياضية بشبكة عصبية


نعم ، في الواقع ، تمكنا من استبدال الشبكة العصبية الكشفية الرياضية وبدأنا في جمع البيانات تلقائيًا عن اللعبة. والآن نعرف عن الحدث الرياضي أكثر من الحضور الحالي ، وأحيانًا القاضي.

نحن ( Constanta ) متخصصون في تطوير منتجات تكنولوجيا معلومات الرهان: تطبيقات الهاتف المحمول ، والمواقع ، وفي الآونة الأخيرة نقوم بتطوير مشاريع في مجال رؤية الكمبيوتر وتعلم الآلة. واحد منهم سيناقش

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


أحتاج إلى إحداثيات وسرعات جميع الكرات الخاصة بك والإشارة الخاصة بك.

لاحظ أنه في تحليل العديد من الألعاب الرياضية لتحديد النتيجة بشكل صحيح ، يجب عليك تتبع سلسلة الأحداث بدقة. ومن هنا يأتي الطلب الكبير على موثوقية المكونات المسؤولة عن تحديد هذه الأحداث. دعونا نوضح في مثال بسيط: إذا قام اللاعبون في المتوسط ​​بلف جميع الكرات في الجيوب لمدة 20 ضربة ، ثم مع موثوقية تحديد نتيجة النتيجة بنسبة 99٪ ، فإن احتمال تحديد الفائز في السحب هو فقط حوالي 82٪ (0.99 20 ≈0.817). تستمر المباراة حتى خمسة انتصارات لأحد اللاعبين ، أي من 5 إلى 9 تعادلات تجري في المتوسط ​​7. وبالتالي ، في المتوسط ​​، مع هذه الموثوقية في تحديد الأحداث ، يتم الحصول على النتيجة الصحيحة للمباراة باحتمال حوالي 24٪ فقط (0.817 7 ≈0 ، 24). لكن في البداية كان احتمال الخطأ 1٪ فقط!

تسعة بركة


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

رؤية الكمبيوتر


أولاً ، لنتحدث عن كيفية استقبال الشبكة العصبية للبيانات. تدفق معلومات الإدخال - بث الفيديو من كاميرا واحدة تقع فوق الطاولة والتصوير بتردد 60 إطارًا في الثانية.


مثال على إطار دفق فيديو معالج بواسطة النظام.

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


المخطط العام للنظام.

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

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


بنية شبكة LinkNet-34 (انظر arXiv ).

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

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


مثال على الصورة وترميزها المقابل. إن مهمة الشبكة العصبية هي الحصول على هذه "الأقنعة" من الصورة المدخلة.

أسرع وأسرع وأسرع ...


يحتاج المستخدم النهائي للبيانات إلى معلومات في الوقت الفعلي (أو حتى أفضل - أسرع من الوقت الحقيقي). تم استخدام العديد من التقنيات لتسريع الشبكة العصبية ، مثل الجمع بين تطبيع الحزمة مع الالتفاف ثنائي الأبعاد (BatchNorm Fusion) ، والذي يسمح لك بالحصول على شبكة مكافئة بدون عدة طبقات. إن إعداد وتحميل إطار جديد بالتوازي مع معالجة الإطار السابق على بطاقة الفيديو يعطي أيضًا نتائج جيدة. بالإضافة إلى ذلك ، يتم تنفيذ جزء من العمليات التحضيرية مع الموظفين والمعالجة اللاحقة لـ "الأقنعة" على وحدة معالجة الجرافيكس. حتى الفكرة البسيطة ساعدت على تقليل إجمالي وقت المعالجة لكل إطار - لنقل نتيجة الشبكة من بطاقة الفيديو إلى ذاكرة الوصول العشوائي بعد ثنائيات في شكل uint8 بدلاً من تلك المستلمة من شبكة float32.

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

هل كان هناك صدام؟


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


لاعب بلياردو في أحلام المطورين الرهيبة.

إنه أمر غريب للوهلة الأولى ، لكن الحقيقة هي أن نتيجة تحديد موقع الكرات يمكن أن تختلف بين الإطارات حتى مع الكرات غير المتحركة. التفسير بسيط - "الضجيج" للفيديو الحقيقي ، القطع الأثرية لضغط دفق الفيديو ، والتي ، إلى جانب خطأ في تحديد موضع الصور الضبابية للكرات المتحركة ، تؤدي إلى الحاجة إلى تخفيف النتائج.

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


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

البيانات عن حالة ومسار الكرات تجعل من الممكن تحديد حدوث ما يسمى الحدث منخفض المستوى ، حتى عندما تقع "بين الإطارات".



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


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

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

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

فهل نلعب أم لا؟


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


يحاول النظام فهم ما إذا كانت اللعبة قد بدأت أم لا.

ومن ربح في النهاية؟


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

كيف يعمل


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


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


التصور الفني لكيفية عمل النظام. تشير الكرة الموجودة بجانب "كرة التلميح" إلى أي كرة واجهتها الكرة. "الحالة" - حالة النظام: يمكن أن تكون "الانتظار" - حتى يضرب اللاعب ، و "اللعب" - أثناء تحرك الكرات ؛ "اللاعب" - اللاعب الحالي ؛ تشير الأرقام حول الكرات إلى تقدير السرعة بالسنتيمتر / ثانية.

Source: https://habr.com/ru/post/ar430030/


All Articles