Top Banner
66

IkaLog: Data Collector for Splatoon and Machine Learning

Jan 08, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: IkaLog: Data Collector for Splatoon and Machine Learning
Page 2: IkaLog: Data Collector for Splatoon and Machine Learning

ThisisatranslatedversionofIkaLogtechpresenta6on,originallyinJapaneselanguage.

Transla6onworkiss6llinprogress!

2

Page 3: IkaLog: Data Collector for Splatoon and Machine Learning

What is Splatoon?

A unique third-person shooter –  Paint the battlefield with your ink,

and claim turf from the enemy team

–  Switch between an Inkling and a Squid for different approaches

–  Several gamemodes in addition to turf war, like KOTH and payload

Simple rules, but deep – Various strategies and tactics – Unique weapon classes

Shooter, Charger, Roller, Splatling, and Slosher

Page 4: IkaLog: Data Collector for Splatoon and Machine Learning

Strategy is the key to winning

STAGERECON

•  There’smorethanonewayaroundeachmap

•  Knowwheretheenemyiscomingfromandhaveaplan

VARIETYOFWEAPONS

•  CertainweaponsarebeCersuitedtosomemapsandmodesoverothers

Page 5: IkaLog: Data Collector for Splatoon and Machine Learning

You play, IkaLog collects the data

HDMICaptureDevice

IkaLog

Page 6: IkaLog: Data Collector for Splatoon and Machine Learning

COLLECTPLAY

IkaLog: Data Collector for Splatoon

– Play Splatoon as you would normally

– Your gameplay footage is analyzed

– The data can then be sent to log files, and/or other tools, like stat.ink

GameConsole

Logfiles

IkaLog

stat.ink,Speechapplica6on,etc.

Forwardtodesiredtools

PROCESS

Page 7: IkaLog: Data Collector for Splatoon and Machine Learning

Supported Integrations

VideoStreaming/Recording

AmaRecTV

OnlineDatabase

CSV/JSON,Screenshots

SNSandChat

IkaLog

Page 8: IkaLog: Data Collector for Splatoon and Machine Learning
Page 9: IkaLog: Data Collector for Splatoon and Machine Learning

stat.ink

The online database provided by @fetus_hina –  Submit your battle results

and statistics with IkaLog

–  Review your past gameplay easily using the website

Page 10: IkaLog: Data Collector for Splatoon and Machine Learning

Review your gameplay on stat.ink

SCOREBOARD

Reviewthescoreboard

later

Filteringallowsforcarefulanalysisofyourpast

gameplay

TIMELINE

Thegraphshowswhathappenedinthegame

Displayskills,deaths,specialweapons,rankedmode

counts/distancesandevents

GLOBALSTATS

Sta6s6csdatafrom

allstat.inkusersisavailable

Seethetrendsamongusers

Page 11: IkaLog: Data Collector for Splatoon and Machine Learning

Timeline Visualization

TheperiodwhenyougotsplaCedand6mespentinac6ve

Alive/Deadstatusofall8players

Team’sspecialweapons,Kills,Deaths

YourTurfScore

Page 12: IkaLog: Data Collector for Splatoon and Machine Learning

Timeline for Ranked Battles

StatusoftheSplatZone

SplatZonecounttheotherteam

earned

SplatZonecountyourteamearned

Thegame-changingmoment

Page 13: IkaLog: Data Collector for Splatoon and Machine Learning

# of IkaLog + stat.ink users

SourcehCps://stat.ink/en6re/user

Avg:200+users,4500+matchesaday

Peak:370usersadayProcessed15,000matches

Page 14: IkaLog: Data Collector for Splatoon and Machine Learning

Statistical data from all players

Kill/DeathHeatmap KOraWo

Page 15: IkaLog: Data Collector for Splatoon and Machine Learning

https://stat.ink/

.96GalDecousersdecreasedaUerthemomentofgameupdate

LongBlasterCustomisgeWngmorepopularsinceSummer

Page 16: IkaLog: Data Collector for Splatoon and Machine Learning
Page 17: IkaLog: Data Collector for Splatoon and Machine Learning

Sourcefootage MaskImage AddedImage

+==

Addi6on(OR)ofsourceimageandcorrectmaskresultsinwhiteimage

Addi6on(OR)ofsourceimageandwrongmaskresultsinnon-whiteimage

Page 18: IkaLog: Data Collector for Splatoon and Machine Learning

18

Page 19: IkaLog: Data Collector for Splatoon and Machine Learning
Page 20: IkaLog: Data Collector for Splatoon and Machine Learning

20

Page 21: IkaLog: Data Collector for Splatoon and Machine Learning

•  Therearetwofonttypesinthegame.Weshouldcoversinglenumberfontface

– Thefontisknown,soweshouldbeabletoiden6fythem.

•  DecidedtohaveMLbasedimageclassifica6on,ratherthanuseofexis6ngOCRlibrary

Page 22: IkaLog: Data Collector for Splatoon and Machine Learning

• 

• 

• 

• 

TesseractOCRcouldnotfindthecharachers

Page 23: IkaLog: Data Collector for Splatoon and Machine Learning
Page 24: IkaLog: Data Collector for Splatoon and Machine Learning

1)Crop the number from the footage, apply some image filters

2)Generate vertical & horizontal histogram to guess each character’s

position

3)Resize the characters to identical size, and make the image binary

4)Classify the image using KNN

Page 25: IkaLog: Data Collector for Splatoon and Machine Learning
Page 26: IkaLog: Data Collector for Splatoon and Machine Learning
Page 27: IkaLog: Data Collector for Splatoon and Machine Learning
Page 28: IkaLog: Data Collector for Splatoon and Machine Learning

•  Basciallysameideawithrecogni6onofnumbers

•  30+%ofaccuracyforsingleclassifica6on.Earnaccuracybyinves6ga6ngmanyframes

–  IkaLoginves6gatesapprox.10framesperasec

–  ThisexampleshowsIkaLoganalyzed49frames,andfound“96gal_deco”ismostlikely(18frames,36%)->correct.

votes={'supershot':6, 'carbon_deco':1, 'bucketslosher':1, 'octoshooter_replica':1,'splashshield':1, 'sshooter_collabo':5, 'hotblaster':2, 'pablo':1, 'nzap89':6,'sharp_neo':3, 'hotblaster_custom':2, '96gal_deco':18, '52gal':1, 'hokusai':1}

Page 29: IkaLog: Data Collector for Splatoon and Machine Learning
Page 30: IkaLog: Data Collector for Splatoon and Machine Learning

30

Page 31: IkaLog: Data Collector for Splatoon and Machine Learning

59Weapons(Splatoonhas90+weaponstoday)

Page 32: IkaLog: Data Collector for Splatoon and Machine Learning

• 

• 

• 

• 

Overlapsofotherequipment SimilarBG&FGcolor-1 SimilarBG&FGcolor2

Page 33: IkaLog: Data Collector for Splatoon and Machine Learning

Note:ThisscreenshotwastakeninquiteearlystageofIkaLogdevelopment.

Page 34: IkaLog: Data Collector for Splatoon and Machine Learning

Input LaplacianFilter

Grayscale Classifyusingk-NearestNeighbor

Thanks@itooon

sschooter_collabo

Featuremap

Page 35: IkaLog: Data Collector for Splatoon and Machine Learning

35

Page 36: IkaLog: Data Collector for Splatoon and Machine Learning

Pros

–  IgnoresColor

–  Ituses“theshape”formatching

Cons

– Doesn’tworkifinputhasdifferentresolu6on

– Cannotclassifysimilarshapes

Page 37: IkaLog: Data Collector for Splatoon and Machine Learning
Page 38: IkaLog: Data Collector for Splatoon and Machine Learning
Page 39: IkaLog: Data Collector for Splatoon and Machine Learning

39

Page 40: IkaLog: Data Collector for Splatoon and Machine Learning

Originalclass(longblaster)

Variantversion(longblaster_custom)

Onemorevariant!(Apr2016)

(longblaster_necro)

Conjunc6ononfeaturesbetweenthevariants.Neededtoupdate(orfind)thefeatureextrac6on

Page 41: IkaLog: Data Collector for Splatoon and Machine Learning

longblaster_necro

longblaster_custom

longblaster

IkaLoginternalfeaturesvaluesPloCedin2DusingPCA

Conjunc6ononfeaturesbetweenthevariants.Neededtoupdate(orfind)thefeatureextrac6on

Page 42: IkaLog: Data Collector for Splatoon and Machine Learning

Anothergameresultsceneswith“GearAbilityicons”Theapproachresultsinlowaccuracy…・Sameicon,differentsizeinsingleframe・Usersusesdifferentcaptureresolu6on→Morerobustimageclassifierneeded

Page 43: IkaLog: Data Collector for Splatoon and Machine Learning

•  Amountofthedataisalwaysjus6ceformachinelearning

•  Usethecrowdtocollectthedata50games/dayperperson

5000gamescanbepossibleby100people

–  Field-generateddatahasthenoisesandoutliers•  ModelofHDMIcaptureunits,HDMIre-transmiCers,andsoUwareconfigura6on

•  It’seasiertocollec6ngtheoutliersfromfield,thentrain,andtestclassifiers

Page 44: IkaLog: Data Collector for Splatoon and Machine Learning

Objectstorageonthecloud

WorkVMonIaaS

4TB+Data(collectfor12months+)

IkaLogusers stat.ink

Page 45: IkaLog: Data Collector for Splatoon and Machine Learning

•  AccuracyofMachinelearning/DeepLearningisaffectedbypre-processing

•  Templatematching-basedalgorithmautoma6callyfixesbroken

inputimages

Wrongaspectra6o offsetedreference

Imagetoclassify

Page 46: IkaLog: Data Collector for Splatoon and Machine Learning

Thanks@itoooon

Page 47: IkaLog: Data Collector for Splatoon and Machine Learning
Page 48: IkaLog: Data Collector for Splatoon and Machine Learning

Pros

–  BeCerclassifica6onaccuracy

Cons

–  Toolargedatasize(20MB->100MB~400MB)

Hardtodistributetheweights

–  BreaksWindowsversionofIkaLog

•  90%+ofusersarerunningIkaLogonWindowsPlazorm

•  MostofdeeplearningframeworkbreaksPy2EXE(PythonscripttoWindowsexecutableconverter)

– Morecompu6ngpowerneeded

Page 49: IkaLog: Data Collector for Splatoon and Machine Learning

–  Input: RGBorHSVcolorvalue(47*45*3=6,345units)

–  Output:possibilityofeachclass(91units,applysoUmax)

–  Connec6on:alwaysusefullyconnec6on

–  Letcomputersthefeatureautoma6cally

•  Inthisusecase,deeplearningwillfindproperweightsautoma6cally

•  Itwillignorebackgroundcolorsautoma6cally

–  TargetPerformance

•  Calc.6me:lessthan350msforeachmul6-classclassifica6on(91classes)<3secondsperaframe

•  99.99+%accuracyagainststat.inkposted(Field)data

Page 50: IkaLog: Data Collector for Splatoon and Machine Learning

0

1

2

3

..

..

n

0

1

2

3

89

90

InputLayer OutputLayerHiddenLayer

52gal

52gal_deco

96gal

96gal_deco

sschooter_wasabi

wakaba

Page 51: IkaLog: Data Collector for Splatoon and Machine Learning

51

Page 52: IkaLog: Data Collector for Splatoon and Machine Learning

•  TestedonAzureML,beforeimplemen6ngthecode

–  Trainedclassifiersusingsmalldataset

–  Input:Pixelvalues(w/PCA)

–  HiddenLayer:1layer、150units

–  Output:Probably91(AzureMLmanages)

•  Gotgoodresultsanddecidedtomoveforward

–  98+%accuracy(withsmalldataset)

–  Enoughrobustnessforanyimages(e.g.los-res)

Page 53: IkaLog: Data Collector for Splatoon and Machine Learning
Page 54: IkaLog: Data Collector for Splatoon and Machine Learning

54

Page 55: IkaLog: Data Collector for Splatoon and Machine Learning

•  UsedChainer(DeepLearningFramework)totrainthemodel

–  Supervisedtrainingusingstat.inkdata(0.9Mimages)

–  CanbenefitGPUperformance

•  TrainedmodelsareconvertedtoFloat16

– 32bitfloat->16bitfloat

– 50%smallerfilesize

Page 56: IkaLog: Data Collector for Splatoon and Machine Learning

CPU GPU #ofjobs

Throughput(images/s)

GPUTime/epoch(s)

RelaWveperf.

(virtual)

Corei7-4790STyp.3.2GHz

NA 1 3,928 234.5s 1X

Corei7-4790STyp.3.2GHz

GeForceGTX760

1 10,371 39.2s 5.9X

Corei7-4790STyp.3.2GHz

GeForceGTX760

4 (Cl)15,988 25.8s(103/4)

9.0XCorei7-4790STyp.3.2GHz

GeForceGTX1080

4 (Cl)30,320 6.25s(25.0s/4) 37.5X

Page 57: IkaLog: Data Collector for Splatoon and Machine Learning

57

Page 58: IkaLog: Data Collector for Splatoon and Machine Learning

CPU GPU #ofjobs

Throughput(images/s)

GPUTime/epoch(s)

RelaWveperf.

(virtual)

Corei7-4790STyp.3.2GHz

NA 1 3,928 234.5s 1X

Corei7-4790STyp.3.2GHz

GeForceGTX760

1 10,371 39.2s 5.9X

Corei7-4790STyp.3.2GHz

GeForceGTX760

4 (Cl)15,988 25.8s(103/4)

9.0XCorei7-4790STyp.3.2GHz

GeForceGTX1080

4 (Cl)30,320 6.25s(25.0s/4) 37.5X

2XE5-2630Lv3Typ.1.80GHz

TeslaP100 4 (Cl)65,811 2.5s(10.3/4)

93.8X

SpecialThanksto

TypicalLinuxBox

Page 59: IkaLog: Data Collector for Splatoon and Machine Learning

Pre-training(Parametertuning)

–  Testedvariouslayerconfigura6on(#ofunits),balancedmodelfilesizeanditsaccuracy

–  4concurrentjobs

–  Started03:08am〜6:28pm (15h20m)

Training

–  550epochs/24hrs IncludesdiskIO,crossvalida6ontest6me

–  Adoptedthe617thepochforthefirstNN-basedclassifier.

TookApprox.48GPUHoursusing21GBdataset

SpecialThanksto

Page 60: IkaLog: Data Collector for Splatoon and Machine Learning

KNN(Original) ComplexNN ThenewNN

Accuracy Low,oncertainusers 99.99+%

99.99+%

Datasize 20MB 400MB(AlexNet)100MB(GoogleNet)

14MB(Float32)7MB(Float16)

Classifica6on6me@IvyBridge2GHz

(veryfast) ~300ms ~20ms

•  Improvedaccuracyofweaponclassifica6on

•  Fasterthancomplexneuralnetworkmodels

•  Smallerdatasizemakesdistribu6oneasy

SpecialThanksto

Page 61: IkaLog: Data Collector for Splatoon and Machine Learning

•  IkaLogincludesownneuralnetworkimplementa6on

– DeepLearningFrameworksbreakWindowsversion

–  Re-implementedpropaga6onfunc6on

•  Tomakethecodesimple,themodeliskeptsimple

•  Compa6blewithLinearFunc6on,andReLUinChainerhCps://github.com/hasegaw/IkaLog/commit/3238b67749334a3c4254aa6f25c005f83e210895

–  [email protected]@PYNQ-Z1FPGAboard(Cortex-A9650MHz)

Page 62: IkaLog: Data Collector for Splatoon and Machine Learning

•  Applyneturalnetwork-basedapproachtootherclassifiers

– Gearabilityimageclassifier

–  Rainmakertouchdowndetec6on

– UseRNNfor“TideofthebaCle”evalua6onfunc6on

•  Makethedatasetsmaller

–  Thedataset(21GB)isobviouslyredundant

– UsePCA-basedanomalydetec6ontogeneratemoresmallerdata?

Page 63: IkaLog: Data Collector for Splatoon and Machine Learning
Page 64: IkaLog: Data Collector for Splatoon and Machine Learning

•  Severalmarchine-learningapproachappliedinIkaLog

–  KNearestNeighborforreal-6meclassifica6on

–  Neuralnetworkformoreaccurateclassifica6on

•  Autofeatureextrac6on,trainingfrom0.9Msamples

•  IkaLogandDeepLearning

– MostofDeepLearningframeworkbreaksPy2EXE

–  Easytore-implementofpropaga6onifthenetworkissimple

–  Canu6lizeexis6ngDNNframeworksandGPUsfortrainingprocess

Page 65: IkaLog: Data Collector for Splatoon and Machine Learning

LapisLazuli(2000-2014)

Page 66: IkaLog: Data Collector for Splatoon and Machine Learning

©07strikers