Bonjour, Habr!
Aujourd'hui, j'ose vous dire comment il m'est arrivé d'extraire des données directement à partir d'enregistrements vidéo de jeux de tournois League of Legends en utilisant des réseaux de neurones profonds: pourquoi est-ce nécessaire, quelles architectures et techniques ont été utilisées, et quelles difficultés j'ai rencontrées.
Étape 0: déterminer ce qui est quoi
League of Legends ( LoL ) est un jeu MOBA populaire avec une audience mensuelle de plus de 100 millions de joueurs dans le monde. LoL a été développé par Riot Games et sorti en 2009.
Riot Games . , , - . - . ...
HUD- (Heads-Up Display - ). :
( ) - , , : , - - , - , , .
( ) - , - . , .
- ( ) - -, , . - , , .
( ) - , , : K/D/A (Kills/Deaths/Assists), - , .
1:
. CVAT , . , , .. (Google OCR, Yandex OCR) , (Tesseract OCR, EasyOCR).
() . segmentation-based . Unet
c efficientnet instance : ( ), ( ) - ( ). segmentation_models.pytorch. Pytorch Lightning .
, watershed . . SVHN
, multihead . , ( ), RNN . , 11- (11- , ) . , . Pytorch .
, . .. . : 2D . , , , . 3D , , N , N+1.
: , , , , .
2:
, : ( ), ( ), ( ). Unet .
: - .
. HSV ( ) : . : ( ) . x- , - / . , , , .
( ).
, . , multihead . , , (/ ).
, , , , . , (, - LoL) . , , 20-


20- . , 20-, 100 , argmax ( , ).
. . , , , . - , OOD (Out-of-Domain), , , metric learning. . - - hinge-loss hard-negative triplet , .
?
hinge-loss- ?
. , .. pattern recogntion. pattern recogntion , .
3: -
, - . Farza ( ) Yolo, , . , .
Yolo - anchor-based , . segmentation-based . . : ( ), ( ). instance , , .
Unet.
watershed . , . , , . , .
, . -.
N:
, , , Riot Games. , , , .
Je voudrais également m'excuser de ne pas avoir fourni le code source du framework résultant et d'omettre certains points des réseaux de formation.
Merci pour l'attention!