1. स्क्विड गेम के 'रेड लाइट, ग्रीन लाइट' गेम के लिए AI सिस्टम डिज़ाइन करना [0]

thumbnail

1.1. समस्या का निरूपण और आवश्यकताएँ [0]

  1. समस्या कथन:

    1. 'रेड लाइट, ग्रीन लाइट' गेम में, खिलाड़ी ग्रीन लाइट के दौरान आगे बढ़ सकते हैं [3]।
    2. रेड लाइट के दौरान, कोई भी पता लगाने योग्य शारीरिक गतिविधि निष्कासन का कारण बनती है [4]।
    3. चुनौती एक AI प्रणाली बनाने की है जो वास्तविक समय में 100 से अधिक खिलाड़ियों की निगरानी कर सके और रेड लाइट चरण के दौरान किसी भी गतिविधि का तुरंत पता लगा सके [5]।
    4. प्रणाली को बाधा, प्रकाश व्यवस्था या खिलाड़ी विविधता जैसी विभिन्न परिस्थितियों में सटीक, तेज़ और मजबूत होना चाहिए [6]।
  2. समस्या का निरूपण (ML सिस्टम डिज़ाइन फ्रेमवर्क के अनुसार):

    1. उद्देश्य: यह वर्गीकृत करना कि क्या ट्रैक किए गए व्यक्ति ने रेड लाइट के दौरान फ़्रेमों के बीच महत्वपूर्ण रूप से गतिविधि की है [10]।
    2. वास्तविक समय गतिविधि का पता लगाना:
      1. ऑब्जेक्ट डिटेक्शन (लोगों को खोजना) [10]।
      2. पोज़ एस्टिमेशन (शरीर के जोड़ों को ट्रैक करना) [11]।
      3. मोशन एनालिसिस (समय के साथ पोज़ से गतिविधि का पता लगाना) [11]।
    3. कार्य: यह भविष्यवाणी करने के लिए बाइनरी वर्गीकरण करना कि व्यक्ति ने गतिविधि की है या नहीं [14]।
    4. इनपुट: प्रत्येक खिलाड़ी के हाल के फ़्रेमों के लिए 2D पोज़ कीपॉइंट्स का एक क्रम [15]।
    5. आउटपुट: एक बाइनरी क्लासिफायर (1 या 0) [15]।
    6. विशेषताएँ: प्रत्येक खिलाड़ी की संयुक्त स्थिति, पोज़ डेल्टा (पिछले फ़्रेम से वर्तमान फ़्रेम तक खिलाड़ी की गतिविधि), और उस बिंदु फ़्रेम में अंगों का वेग या त्वरण [16]।
    7. एज केस: अस्थिर कैमरे, आंशिक कीपॉइंट्स, या हवा के झटके, आँखों के झपकने जैसी गलत गतिविधियाँ जिन्हें उल्लंघन नहीं माना जाना चाहिए [17]।
  3. डेटा स्रोत और धारणाएँ:

    1. डेटा स्रोत: साक्षात्कारकर्ता से उपलब्ध डेटा के प्रकार और स्थान के बारे में पूछना चाहिए ताकि डेटा पाइपलाइन बनाने में मदद मिल सके [18]।
    2. धारणाएँ:
      1. गेम में स्थिर वाइड-एंगल कैमरे स्थापित और स्थिर हैं [21]।
      2. खिलाड़ी रेड लाइट के दौरान स्थिर रहते हैं [21]।
      3. खिलाड़ी गेम के अधिकांश समय पूरी तरह से दिखाई देते हैं और सीधे खड़े रहते हैं [21]।
      4. प्रकाश, हवा और छाया जैसी पर्यावरणीय स्थितियाँ प्रबंधनीय हैं [22]।
  4. ML की आवश्यकता:

    1. ML एक हाइब्रिड दृष्टिकोण के रूप में आवश्यक है क्योंकि पोज़ एस्टिमेशन, गतिविधि वर्गीकरण और खिलाड़ी ट्रैकिंग ML के साथ उच्च सटीकता के साथ की जा सकती है [24]।
    2. नियम-आधारित दृष्टिकोण के लिए, गतिविधि उल्लंघन का पता लगाने के लिए थ्रेशोल्ड का उपयोग किया जा सकता है [24]।
  5. कार्यात्मक आवश्यकताएँ (सिस्टम को क्या करना चाहिए):

    1. कैमरा फ़्रेम में मानव खिलाड़ियों का पता लगाना [27]।
    2. प्रत्येक खिलाड़ी के लिए 2D पोज़ कीपॉइंट्स का अनुमान लगाना [27]।
    3. वीडियो फ़्रेमों में प्रत्येक खिलाड़ी को विशिष्ट रूप से ट्रैक करना [28]।
    4. रेड लाइट और ग्रीन लाइट चरणों का पता लगाना [29]।
    5. पोज़ डेल्टा विश्लेषण का उपयोग करके गतिविधि उल्लंघनों का पता लगाना [30]।
    6. यदि कोई व्यक्ति रेड लाइट के दौरान गतिविधि करता है तो अलर्ट या फ़्लैग उठाना [31]।
    7. बाउंडिंग बॉक्स जैसे विज़ुअल फ़ीडबैक प्रदान करना [31]।
    8. खिलाड़ी ID, टाइमस्टैम्प, गतिविधि और निर्णयों जैसे सभी घटनाओं को लॉग करना [31]।
    9. एक कॉन्फ़िगर करने योग्य गतिविधि थ्रेशोल्ड का समर्थन करना और सुचारू रूप से पोस्ट करना [31]।
    10. मैदान के चारों ओर कई खिलाड़ियों को संभालना [31]।
  6. गैर-कार्यात्मक आवश्यकताएँ (सिस्टम कितनी अच्छी तरह काम करता है):

    1. वास्तविक समय विलंबता: तेज़ होना चाहिए [32]।
    2. सटीकता: गतिविधि का पता लगाने के लिए 95% परिशुद्धता और रिकॉल पर काम करना चाहिए [33]।
    3. स्केलेबिलिटी: कई कैमरा स्ट्रीम में 100 से अधिक खिलाड़ियों के लिए स्केलेबल होना चाहिए [34]।
    4. मजबूती: विभिन्न प्रकाश स्थितियों, कैमरा कोणों और हवा की स्थितियों को संभालना चाहिए [35]।
    5. दोष सहिष्णुता: ड्रॉप फ़्रेम और ट्रैकिंग त्रुटियों पर लॉग और पुनः प्रयास करना चाहिए [36]।
    6. सुरक्षा और गोपनीयता: अनावश्यक रूप से कच्चे फुटेज को संग्रहीत या लीक नहीं करना चाहिए [37]।
    7. पारदर्शिता: यह लॉग करने में सक्षम होना चाहिए कि यह किसी खिलाड़ी को क्यों फ़्लैग करता है या क्यों नहीं, थ्रेशोल्ड मानों के साथ [39]।

1.2. मेट्रिक्स [40]

  1. मेट्रिक्स का महत्व:

    1. ऑफ़लाइन मेट्रिक्स: यह सुनिश्चित करते हैं कि सिस्टम निर्दोषों पर झूठा आरोप लगाए बिना उल्लंघन को पकड़ता है, जबकि डाउनस्ट्रीम लॉजिक के लिए स्वच्छ, स्थिर कीपॉइंट्स बनाए रखता है [40]।
    2. ऑनलाइन मेट्रिक्स: यह सुनिश्चित करते हैं कि सिस्टम तैनात होने पर तेज़, स्थिर और भरोसेमंद रहे, खासकर जब दांव बहुत ऊंचे हों, जैसे कि स्क्विड गेम में [40]।
  2. ऑफ़लाइन मेट्रिक्स:

    1. परिशुद्धता और रिकॉल: महत्वपूर्ण मेट्रिक्स हैं [41]।
    2. कीपॉइंट स्थिरता स्कोर: यह मापता है कि खिलाड़ी स्थिर होने पर फ़्रेमों में कितना झटकेदार होता है [41]।
    3. ट्रैकिंग स्थिरता: यह फ़्रेमों का प्रतिशत है जब खिलाड़ी ID सही ढंग से बनाए रखा जाता है [42]।
    4. फ़्रेम ड्रॉप दर: यह अनुमान विफलता या बाधाओं के कारण छोड़े गए फ़्रेमों का प्रतिशत है [42]।
    5. छोड़ने योग्य मेट्रिक्स:
      1. F1 स्कोर: इसे छोड़ देना चाहिए क्योंकि यह परिशुद्धता और रिकॉल के बीच एक संतुलन है, और व्यक्तिगत रूप से परिशुद्धता और रिकॉल जितना कार्रवाई योग्य नहीं है [44]।
      2. पोज़ एस्टिमेशन सटीकता: इसे छोड़ देना चाहिए क्योंकि पोज़ मॉडल की कीपॉइंट-वार सटीकता तब तक सार्थक नहीं है जब तक कि अपना खुद का पोज़ मॉडल प्रशिक्षित न किया जाए [46]।
  3. ऑनलाइन मेट्रिक्स:

    1. अनुमान विलंबता: एक वास्तविक समय प्रणाली के लिए, यह 200 मिलीसेकंड से कम होनी चाहिए, अन्यथा गतिविधि का पता नहीं चलेगा या सुस्त महसूस होगा [48]।
    2. उल्लंघन का पता लगाने की दर: यह पता लगाए गए गतिविधि उल्लंघनों बनाम कुल रेड लाइट घटनाओं के रूप में गणना की जाती है, यह देखने के लिए कि रेड लाइट चरण में कितनी वास्तविक उल्लंघनों का पता लगाया जा सकता है [50]।

1.3. उच्च-स्तरीय सिस्टम डिज़ाइन (हाइब्रिड दृष्टिकोण) [52]

  1. सिस्टम फ़्लो:

    1. वीडियो इनपुट [53]।
    2. पोज़ डिटेक्शन [53]।
    3. पोज़ ट्रैकिंग [53]।
    4. फ़ीचर एक्सट्रैक्शन [53]।
    5. हाइब्रिड मॉडल और निर्णय चरण [53]।
    6. आउटपुट: रेड या ग्रीन सिग्नल [53]।
  2. मॉडल-आधारित दृष्टिकोण:

    1. पोज़ एस्टिमेशन [54]।
    2. खिलाड़ी ट्रैकिंग [54]।
    3. वैकल्पिक रूप से, गतिविधि वर्गीकरण या एक बाइनरी ML मॉडल का उपयोग किया जा सकता है [54]।
  3. नियम-आधारित दृष्टिकोण:

    1. अंतिम गतिविधि उल्लंघन निर्णय [55]।
    2. डेल्टा थ्रेशोल्ड या स्मूथिंग स्थितियों का उपयोग [56]।
    3. यह कहने के लिए एक आत्मविश्वास स्कोर लागू करना कि इस व्यक्ति ने उल्लंघन किया है या नहीं [56]।
  4. हाइब्रिड निर्णय प्रणाली का लाभ:

    1. उच्च परिशुद्धता और रिकॉल सुनिश्चित करता है [57]।
    2. बहुत कम विलंबता आवश्यकता को पूरा करता है [58]।
    3. वास्तविक दुनिया के खेलों में व्याख्या योग्य और भरोसेमंद रहता है [58]।
  5. प्रो टिप:

    1. हमेशा सरल शुरुआत करें और पुनरावृति करें [59]।
    2. झूठे सकारात्मक या एज केस दिखाई देने पर गतिविधियों का पता लगाने के लिए हमेशा नियम-आधारित थ्रेशोल्ड से शुरू करें [60]।
    3. अस्पष्टता को संभालने के लिए धीरे-धीरे हल्के ML मॉडल (जैसे बाइनरी वर्गीकरण मॉडल, लॉजिस्टिक रिग्रेशन, या ट्री-आधारित मॉडल) पेश करें [60]।
  6. हाइब्रिड दृष्टिकोण क्यों सबसे अच्छा है:

    1. संरचित और अच्छी तरह से विवश समस्या:
      1. इनपुट स्पष्ट और मानकीकृत है [63]।
      2. आउटपुट भी स्पष्ट और मानकीकृत है [64]।
      3. स्थिर कैमरे, हवा, सीधे खिलाड़ी जैसी पर्यावरणीय स्थितियों को नियंत्रित किया जा सकता है [65]।
      4. एक एंड-टू-एंड डीप लर्निंग मॉडल की आवश्यकता नहीं है; मौजूदा कंप्यूटर विज़न पाइपलाइनों का लाभ उठाया जा सकता है [66]।
    2. पोज़ एस्टिमेशन (MediaPipe का उपयोग करके):
      1. Google का MediaPipe फ्रेमवर्क 2D संयुक्त अनुमान में मदद करता है, पिक्सेल को प्रति खिलाड़ी संरचित XY बिंदुओं में परिवर्तित करता है [67]।
      2. शुरू से प्रशिक्षण की कोई आवश्यकता नहीं है [68]।
      3. फ़्रेम में 50 से 100 खिलाड़ियों पर बहुत बेहतर काम करता है [69]।
      4. ट्रैकिंग और निर्णय लॉजिक जैसे अगले चरणों में पाइप करना आसान है [70]।
      5. पोज़ एस्टिमेशन एक हल की गई समस्या है, इसे फिर से आविष्कार करने की आवश्यकता नहीं है [71]।
      6. MediaPipe बनाम OpenPose: MediaPipe वास्तविक समय उत्पादन वातावरण के लिए बेहतर है जिसमें 50 से 100 से अधिक खिलाड़ी हैं क्योंकि यह तेज़ है [72]। OpenPose का उपयोग केवल तभी किया जा सकता है जब अधिकतम सटीकता की आवश्यकता हो, शक्तिशाली GPU उपलब्ध हों, और विलंबता वहन की जा सके [73]।
    3. खिलाड़ी ट्रैकिंग (DeepSORT का उपयोग करके):
      1. MediaPipe केवल जोड़ों का पता लगाने में मदद करता है, लेकिन प्रत्येक खिलाड़ी को विशिष्ट रूप से पहचान नहीं सकता है [76]।
      2. DeepSORT फ़्रेमों में लगातार अद्वितीय ID बनाए रखने में मदद करता है [78]।
      3. प्रति फ़्रेम दर्जनों खिलाड़ियों को कुशलता से संभालता है [79]।
      4. आंशिक बाधा या छोड़ी गई पहचान से उबर सकता है [80]।
      5. पोज़ मॉडल से बाउंडिंग बॉक्स के शीर्ष पर काम करता है [81]।
      6. DeepSORT बनाम FairMOT: FairMOT ट्रैकिंग बेंचमार्क पर अधिक सटीक है लेकिन बहुत भारी है, मौजूदा पोज़ डिटेक्टरों में प्लग करना मुश्किल है, और यहाँ अतिरेक है [82]।
    4. ML वर्गीकरण (वैकल्पिक):
      1. अस्पष्ट मामलों में सहायता के लिए उपयोग किया जाता है [86]।
      2. नियम-आधारित प्रणालियों का समर्थन या सुचारू करने के लिए लॉजिस्टिक रिग्रेशन या शैलो MLP से शुरू किया जा सकता है, इसे पूरी तरह से बदलने के लिए नहीं [88]।
    5. नियम-आधारित अंतिम गतिविधि कटौती क्यों:
      1. रेड लाइट के दौरान गतिविधि केवल नियतात्मक होती है [90]।
      2. यदि कोई संयुक्त गतिविधि एक निश्चित थ्रेशोल्ड से अधिक है, तो इसे उल्लंघन कहा जाता है [90]।
      3. ML इस नियम को लागू करने से पहले व्यक्तिपरक गतिविधि की मात्रा को समझने में मदद करता है [91]।
    6. हाइब्रिड दृष्टिकोण का सारांश: यह ML-आधारित और नियम-आधारित दृष्टिकोणों का एक संतुलित संयोजन प्रदान करता है, जो बेहतर प्रदर्शन और व्याख्यात्मकता सुनिश्चित करता है [92]।

1.4. डेटा पाइपलाइन निर्माण [93]

  1. इनपुट डेटा:

    1. RTSP IP कैमरों या स्थानीय वेबकैम फुटेज से इनपुट [94]।
    2. फ़्रेम दर: 50 से 30 फ़्रेम प्रति सेकंड [94]।
    3. रिज़ॉल्यूशन: 720p से 1080p [94]।
    4. स्क्विड गेम के रेड लाइट, ग्रीन लाइट गेम के लिए कई कैमरों का समर्थन किया जा सकता है [95]।
  2. फ़्रेम प्रोसेसिंग:

    1. फ़्रेम का आकार बदलना [96]।
    2. पिक्सेल को सामान्य करना [96]।
    3. MediaPipe का उपयोग करके BGR को RGB में परिवर्तित करना [97]।
    4. वैकल्पिक रूप से, यदि कैमरा चलता है तो पृष्ठभूमि घटाव या स्थिरीकरण किया जा सकता है [97]।
  3. पोज़ एस्टिमेशन के लिए फ़ीचर एक्सट्रैक्शन:

    1. MediaPipe का उपयोग BlazePose या Pose Landmark जैसे कई मॉडलों का उपयोग करके प्रति व्यक्ति 2D कीपॉइंट्स प्रदान करने के लिए किया जा सकता है [99]।
    2. प्रत्येक कीपॉइंट में आत्मविश्वास स्कोर के साथ XY पिक्सेल निर्देशांक शामिल होते हैं [100]।
  4. खिलाड़ी ट्रैकिंग (DeepSORT का उपयोग करके):

    1. प्रत्येक इनपुट के लिए प्रत्येक खिलाड़ी की अद्वितीय पहचान बनाने के लिए DeepSORT का उपयोग किया जाता है [101]।
    2. पोज़ और/या बाउंडिंग बॉक्स का पता लगाया जाता है [102]।
    3. आउटपुट प्रति फ़्रेम समय के साथ एक अद्वितीय खिलाड़ी ID है [102]।
    4. किसी भी प्रकार की बाधा या झटके के बावजूद खिलाड़ी की पहचान बनाए रखी जाती है [102]।
  5. उल्लंघन का पता लगाने के लिए विशेषताएँ:

    1. पोज़ हिस्ट्री बफर: रेड लाइट के दौरान, प्रति खिलाड़ी कीपॉइंट्स के n फ़्रेमों की एक स्लाइडिंग विंडो बनाए रखी जाती है [104]।
    2. यह समय के साथ पता लगाने में सक्षम बनाता है और स्मूथिंग या अन्य तकनीकों के माध्यम से झटके को फ़िल्टर करता है [104]।
    3. ये विशेषताएँ केवल रेड लाइट के दौरान बनाई जाती हैं [106]।
    4. विशेषताएँ: पोज़ डेल्टा, संयुक्त वेग या त्वरण, सामान्यीकृत गति विशेषताएँ [108]।
    5. जब कोई खिलाड़ी पिछले फ़्रेम से वर्तमान फ़्रेम में चलता है, तो पोज़ डेल्टा की गणना की जाती है और ML मॉडल को पास किया जाता है [108]।
    6. ML मॉडल यह तय करेगा कि खिलाड़ी के उल्लंघन की कितनी संभावना है [109]।
  6. ML मॉडल और नियम-आधारित दृष्टिकोण:

    1. ML मॉडल: सभी विशेषताओं को लॉजिस्टिक रिग्रेशन मॉडल में पास किया जाता है, जो 0 और 1 की मदद से यह लौटाएगा कि खिलाड़ी ने गतिविधि की है या नहीं [110]।
    2. नियम-आधारित दृष्टिकोण: गतिविधि मेट्रिक्स पर एक हार्ड थ्रेशोल्ड लागू किया जा सकता है [111]।
    3. उदाहरण के लिए, यदि कोई अंग x पिक्सेल से चलता है, तो पोज़ आत्मविश्वास और फ़्रेमों में स्थिरता को सुचारू संयुक्त संकेतों के साथ माना जाता है, और आउटपुट 'गतिविधि का पता चला, सत्य या असत्य' होता है [112]।
    4. यदि कोई व्यक्ति अपने हाथ, पैर, या शरीर के किसी भी हिस्से को बदलता है, और वह पिछले फ़्रेम से बदलता है, तो इसे उल्लंघन माना जाता है [115]।
    5. ये सभी विशेषताएँ केवल रेड लाइट चरण में बनाई जाती हैं, क्योंकि उल्लंघन को केवल रेड लाइट के दौरान फ़्लैग करने की आवश्यकता होती है [117]।

1.5. मॉडल प्रशिक्षण [121]

  1. हाइब्रिड प्रशिक्षण दृष्टिकोण:

    1. पोज़ एस्टिमेशन [124]।
    2. ट्रैकिंग [124]।
    3. फ़ीचर एक्सट्रैक्शन [124]।
    4. ML मॉडल [124]।
    5. प्रशिक्षण सेट के लिए झूठे सकारात्मक को दबाने के लिए एक नियम-आधारित दृष्टिकोण [125]।
  2. डेटा विभाजन:

    1. प्रशिक्षण डेटा: 70% [126]।
    2. मान्यकरण डेटा: 15% [127]।
    3. परीक्षण डेटा: 15% [127]।
  3. बेसलाइन ML मॉडल:

    1. लक्ष्य: संयुक्त गतियों से कुछ विशेषताओं को देने पर यह भविष्यवाणी करना कि क्या खिलाड़ी नियमों का उल्लंघन करता है [128]।
    2. एक साधारण लॉजिस्टिक रिग्रेशन या ट्री-आधारित मॉडल का उपयोग बेसलाइन के रूप में किया जा सकता है [128]।
    3. यह संख्यात्मक विशेषताओं को लेता है और बाइनरी आउटपुट देता है [128]।
  4. नियम-आधारित मॉडल:

    1. नियम: उल्लंघन = कोई भी संयुक्त गतिविधि जो किसी थ्रेशोल्ड से अधिक है [129]।
    2. लाभ: पारदर्शी, तेज़, नियतात्मक [129]।
    3. नुकसान: झटके के प्रति संवेदनशील, इसलिए झूठे सकारात्मक से बचने के लिए एक ML मॉडल की आवश्यकता होती है [129]।
  5. अच्छे परीक्षण डेटा का चयन:

    1. विभिन्न खिलाड़ियों, प्रकाश व्यवस्था और बाधा वाले क्लिप या फ़्रेम का चयन करें [131]।
    2. इसमें कुछ सच्चे सकारात्मक या कुछ सच्चे नकारात्मक शामिल होने चाहिए [131]।
    3. मामूली झटके या पृष्ठभूमि गति सेंसर जैसे एज केस शामिल करें [131]।
    4. यह हाइब्रिड दृष्टिकोण का अच्छी तरह से परीक्षण करने में मदद करता है [131]।
  6. हाइपरपैरामीटर ट्यूनिंग:

    1. लॉजिस्टिक रिग्रेशन मॉडल को ट्यून करने के लिए स्ट्रेटिफाइड k-फोल्ड का उपयोग किया जाता है [132]।
  7. उपकरणों और मॉडलों का चयन क्यों:

    1. लॉजिस्टिक रिग्रेशन:
      1. सरल, व्याख्या योग्य, प्रशिक्षित करने और अनुमान लगाने में तेज़ [134]।
      2. संख्यात्मक डेटा पर अच्छी तरह से काम करता है और अनुकूलित करना बहुत आसान है [135]।
    2. ट्री-आधारित मॉडल (वैकल्पिक):
      1. व्याख्या करना कठिन, ओवरफिटिंग का जोखिम, फाइन-ट्यून करने की आवश्यकता, और वास्तविक समय के अनुमानों के लिए अच्छा नहीं [136]।
      2. यदि लॉजिस्टिक रिग्रेशन अंडरफिट है, तो बड़ी मात्रा में डेटा है, और एज केस पर बेहतर रिकॉल चाहते हैं, और ऑफ़लाइन पोस्ट-प्रोसेसिंग कर रहे हैं तो उपयोग किया जा सकता है [137]।
    3. स्ट्रेटिफाइड k-फोल्ड:
      1. बाइनरी वर्गीकरण और वर्ग असंतुलन की समस्या के लिए उपयोग किया जाता है [139]।
      2. अधिकांश रेड लाइट फ़्रेमों में, खिलाड़ी गतिविधि नहीं करते हैं [140]।
      3. नियमित k-फोल्ड डेटा के यादृच्छिक विभाजन का कारण बन सकता है, जिससे कुछ फ़ोल्ड में केवल शून्य या मुख्य रूप से एक हो सकते हैं, जिससे अस्थिर मॉडल प्रशिक्षण और पक्षपाती प्रदर्शन अनुमान हो सकते हैं [141]।
      4. स्ट्रेटिफाइड k-फोल्ड सुनिश्चित करता है कि प्रत्येक फ़ोल्ड में फ़ोल्ड डेटा सेट के समान वर्ग वितरण हो, और प्रत्येक फ़ोल्ड में गतिविधि और गैर-गतिविधि अनुपात को संरक्षित करता है [142]।
      5. यह तेज़ मॉडल के लिए और गैर-कार्यात्मक आवश्यकताओं को पूरा करने के लिए चुना जाता है [143]।

1.6. ऑनलाइन अनुमान और परिनियोजन [144]

  1. डेटा प्री-प्रोसेसिंग और सत्यापन के लिए उपकरण:

    1. MediaPipe: वास्तविक समय 2D पोज़ कीपॉइंट्स के लिए [146]।
    2. DeepSORT: खिलाड़ी ID ट्रैकिंग के लिए [147]।
    3. OpenCV: फ़्रेम ग्रैबिंग, वीडियो डिकोडिंग और इमेज डी-प्रोसेसिंग के लिए [148]।
    4. Numpy और Pandas: फ़ीचर जनरेशन और प्रोसेसिंग के लिए [149]।
    5. Pydantic: इनपुट और आउटपुट स्कीमा सत्यापन के लिए [150]।
  2. परिनियोजन के लिए वेब फ्रेमवर्क:

    1. FastAPI:
      1. बहुत हल्का, अतुल्यकालिक और पायथन नेटिव [151]।
      2. मॉडल को API में लपेटने के लिए एकदम सही [151]।
      3. Uvicorn के साथ सबसे अच्छा समाधान है [157]।
    2. Flask (वैकल्पिक):
      1. ठीक है, लेकिन धीमे और तुल्यकालिक फ़ंक्शन हैं जो केवल डेमो के लिए उपयोग किए जा सकते हैं [152]।
    3. Django (अनुशंसित नहीं):
      1. बहुत भारी और भविष्यवाणियों को परोसने के लिए अतिरेक [153]।
  3. सर्वर:

    1. Uvicorn:
      1. FastAPI के लिए एक अतुल्यकालिक सर्वर गेटवे अनुमान सर्वर [155]।
      2. उपयोग के मामले के लिए तेज़ और स्केलेबल [155]।
      3. FastAPI के साथ सबसे अच्छा समाधान है [157]।
    2. Gunicorn (वैकल्पिक):
      1. अतुल्यकालिक के लिए धीमा, लेकिन Flask के लिए बेहतर [156]।
      2. केवल Flask के साथ उपयोग किया जाता है यदि आवश्यक हो [156]।
  4. परिनियोजन शैली:

    1. Docker: प्रतिलिपि प्रस्तुत करने योग्य परिनियोजन रणनीतियों में मदद करता है [158]।
    2. Kubernetes: अधिक कैमरों और बड़ी भीड़ के लिए स्केलिंग में मदद करता है [158]।
  5. उत्पादन स्तर पर कार्यप्रणाली:

    1. FastAPI ऐप चलता है और अनुमान एंडपॉइंट पोज़ और ट्रैकिंग डेटा प्राप्त करता है [160]।
    2. क्लासिफायर को कॉल करता है [160]।
    3. नियम-आधारित लॉजिक के साथ इसे मान्य करता है [160]।
    4. JSON लौटाता है जिसमें उल्लंघन आत्मविश्वास कारण, फ़्रेम ID और खिलाड़ी ID शामिल होते हैं [160]।

1.7. पाइपलाइन को स्केल करना और अपडेट करना [161]

  1. स्केलिंग की आवश्यकता:

    1. जैसे-जैसे गेम का आकार बढ़ता है, कैमरे और खिलाड़ी बढ़ते हैं, वैसे-वैसे प्रति सेकंड ML अनुमान का समय भी बढ़ता है [162]।
    2. उत्पादन स्तर पर, प्रणाली में कई कैमरे होने चाहिए, बहुत कम वास्तविक समय विलंबता होनी चाहिए, और निरंतर सुधार, विफल-सुरक्षित और निगरानी होनी चाहिए [162]।
  2. मांग में वृद्धि के लिए स्केलिंग (समानांतर पाइपलाइन):

    1. वीडियो स्तर समानांतरता:
      1. कई वीडियो या कैमरों को समानांतर में संसाधित करने में मदद करता है [164]।
      2. कैमरों में क्षैतिज रूप से स्केल करता है [164]।
      3. सभी प्रकार के कैमरों से एक दृष्टिकोण प्राप्त करने में मदद करता है [166]।
    2. खिलाड़ी स्तर समानांतरता:
      1. यह सुनिश्चित करने में मदद करता है कि एक वीडियो के भीतर, हम प्रति खिलाड़ी ID, दानेदार CPU GPU समानांतरता के लिए पोस्ट ट्रैकिंग या गतिविधि जांच को विभाजित करते हैं [165]।
  3. डेटा और मॉडल के आकार में वृद्धि के लिए स्केलिंग (डेटा समानांतरता):

    1. डेटा समानांतरता: इस प्रकार के उपयोग के मामले के लिए अनुशंसित है [167]।
    2. डेटा को खिलाड़ियों या फ़्रेमों द्वारा विभाजित किया जा सकता है [168]।
    3. पोज़ एस्टिमेशन या ट्रैकिंग प्रति खिलाड़ी या फ़्रेमों के प्रत्येक बैच के लिए चलाई जा सकती है [169]।
    4. कई CPU कोर को भेजा जा सकता है [170]।
    5. Kafka और Rabbit MQ का उपयोग करके क्यू-आधारित स्ट्रीमिंग [171]।
    6. डेटा समानांतरता क्यों: प्रत्येक खिलाड़ी का गतिविधि निर्णय प्रति फ़्रेम स्वतंत्र होता है, वास्तविक समय के अनुमान के लिए आदर्श होता है, और फ़ील्ड सेगमेंट को बैच और पुनः प्रयास करना आसान होता है [172]।
    7. मॉडल समानांतरता क्यों नहीं: मॉडल समानांतरता LLM या ResNet जैसे बड़े मॉडलों के लिए काम करती है, और यहाँ हल्के मॉडल जैसे MediaPipe, DeepSORT, या एक बाइनरी क्लासिफायर का उपयोग किया जा रहा है, इसलिए मॉडल समानांतरता की कोई आवश्यकता नहीं है [173]।
  4. A/B परीक्षण और परिनियोजन:

    1. विभिन्न थ्रेशोल्ड या स्मूथिंग मापदंडों पर नए गतिविधि लॉजिक का परीक्षण किया जाता है [174]।
    2. झूठे सकारात्मक और नकारात्मक के प्रभाव को मापा जाता है [175]।
    3. रोल आउट से पहले मॉडल एक की तुलना मॉडल दो से की जाती है [176]।
  5. मॉडल निगरानी:

    1. MLflow: मॉडल के संस्करण, परिनियोजन प्रयोगों और महान लॉगिंग क्षमता के लिए [177]।
    2. Optuna: हाइपरपैरामीटर ट्यूनिंग प्रयोगों और हल्के सुविधाओं के लिए [177]।
    3. Evidently AI: मॉडल स्वास्थ्य और बहाव का पता लगाने के लिए हल्के बहाव डैशबोर्ड बनाने के लिए [178]।
    4. Prometheus या Grafana: वास्तविक समय मेट्रिक और अलर्टिंग के लिए [178]।
    5. Sentry Loki: लॉग अपवादों और डेटा स्नैपशॉट के लिए मॉडल विफलता लॉगिंग के लिए [178]।
    6. Prometheus या StatsD: प्रति मॉडल चरण में बाधाओं को पकड़ने के लिए अनुमान समय ट्रैकिंग के लिए [179]।

1.8. साक्षात्कार प्रश्न [181]

  1. 100 से अधिक खिलाड़ियों और कई कैमरों के साथ कम विलंबता पर उल्लंघन का पता लगाने वाली पाइपलाइन कैसे सुनिश्चित की जाएगी? [182]
  2. OpenPose या YOLOv8 पोज़ पर MediaPipe को क्यों चुना गया, और यदि वास्तविक समय की बाधाएँ विफल हो जाती हैं तो कैसे स्विच किया जाएगा? [182]
  3. DeepSORT की ट्रैकिंग स्थिरता का मूल्यांकन कैसे किया जाएगा, और कवर किए गए दृश्यों में किन विफलता मॉडलों की उम्मीद है? उन्हें कैसे कम किया जाएगा? [182]
  4. प्रत्येक 10 कैमरा स्ट्रीम के लिए क्षैतिज रूप से स्केल करने वाली वास्तुकला को डिज़ाइन करें, प्रत्येक वास्तविक समय में 50 खिलाड़ियों का पता लगाता है। यहाँ कौन से घटक स्टेटलेस होने चाहिए, और क्यों? [183]
  5. इस प्रणाली में रिकॉल की तुलना में परिशुद्धता अधिक महत्वपूर्ण क्यों है? [185]
  6. क्या वास्तविक टूर्नामेंट में तैनात होने पर उत्तर बदल जाएंगे? [185]