Wie ich League of Legends analysiert habe

Hallo Habr!





Heute wage ich Ihnen zu erzählen, wie ich Daten direkt aus Videoaufzeichnungen von League of Legends-Turnierspielen mit tiefen neuronalen Netzen extrahiert habe: Warum wird es benötigt, welche Architekturen und Techniken wurden verwendet und auf welche Schwierigkeiten bin ich gestoßen.





Schritt 0: Herausfinden, was was ist

League of Legends ( LoL ) ist ein beliebtes MOBA-Spiel mit einem monatlichen Publikum von über 100 Millionen Spielern weltweit. LoL wurde von Riot Games entwickelt und 2009 veröffentlicht.





Riot Games . , , - . - . ...





Screenshot eines Continental League-Spielstroms.  LCL Summer Split 2020.
. LCL 2020.

HUD- (Heads-Up Display - ). :





  1. ( ) - , , : , - - , - , , .





  2. ( ) - , - . , .





  3. - ( ) - -, , . - , , .





  4. ( ) - , , : K/D/A (Kills/Deaths/Assists), - , .





1:

  1. . CVAT , . , , .. (Google OCR, Yandex OCR) , (Tesseract OCR, EasyOCR).





  2. () . segmentation-based . Unet c efficientnet instance : ( ), ( ) - ( ). segmentation_models.pytorch. Pytorch Lightning .





  3. , watershed . . SVHN , multihead . , ( ), RNN . , 11- (11- , ) . , . Pytorch .





  4. , . .. . : 2D . , , , . 3D , , N , N+1.





  5. : , , , , .





Multihead-OCR-Architektur
Multihead OCR
- ?

, , . () . , - , :/





2:

  1. , : ( ), ( ), ( ). Unet .





  2. : - . . HSV ( ) : . : ( ) . x- , - / . , , , .





  3. ( ). , . , multihead . , , (/ ).





  4. , , , , . , (, - LoL) . , , 20- 20- . , 20-, 100 , argmax ( , ).





  5. . . , , , . - , OOD (Out-of-Domain), , , metric learning. . - - hinge-loss hard-negative triplet , .





?

, , , , . visual cortex.





hinge-loss- ?

. , .. pattern recogntion. pattern recogntion , .





3: -

  1. , - . Farza ( ) Yolo, , . , .





  2. Yolo - anchor-based , . segmentation-based . . : ( ), ( ). instance , , .





  3. Unet.





  4. watershed . , . , , . , .





  5. , . -.





N:

, , , Riot Games. , , , .





Ich möchte mich auch dafür entschuldigen, dass ich den Quellcode des resultierenden Frameworks nicht angegeben und einige Punkte von Trainingsnetzwerken weggelassen habe.





Vielen Dank für Ihre Aufmerksamkeit!








All Articles