# ウイイレのデータ集計自動化してくよ！ part1

### ■はじめに

* 初めまして！ヤジュンです。
    「は？お前誰？」って気になる方は [■自己PR](https://qiita.com/junya0001000/items/ccb673ba7c07a57e6d8a#%E8%87%AA%E5%B7%B1pr) へ

    今日から「ウイイレ」 x 「エンジニアリング」企画を書き始めます！
    eスポーツが流行する中、自分はeスポーツにどんな価値を作ることができるのか？
    いくつかアイディアが思いついたため、手を動かしてみました。
    
    本記事記載のソフトウェアは、Pythonで開発しました。 [■参考URL](https://qiita.com/junya0001000/items/ccb673ba7c07a57e6d8a#%E5%8F%82%E8%80%83url)
       
    **★追記★part2の記事を書きました！[記事のリンク](https://qiita.com/junya0001000/items/d97e1d3596b85892e767)** 

-----

### ■今回の題材は「データ分析」 
* 「データ分析」は、どのような分野にも需要あります。
    これをウイイレでやっていこうと思います。

#### ▼データ分析の流れ
- *①解析対象の選定*
- *②データの取り込み*
- *③データフォーマットへの整形*
- *④出力*
- *⑤解析(グラフ化、表化など)*
- *⑥考察*

* 大まかに工程はこんな感じ。
    考察のロジック作りで腕が試されますが、時間的コストの大部分は考察以外の工程です。
    考察以外の工程を最適化・自動化することで考察の時間を増やせるようになります。
    今回は、①解析対象の選定～④出力までやってみます！

#### ▼データ解析は難しい？
* データ解析を高い効果で得るためには、「プレイヤー」と「エンジニア」両方の技術が必須です。
    [両方のスキルが必要な理由](https://tech.dely.jp/entry/2019/12/06/000000)

##### エンジニアとしての技術が求められる理由
* データ集めを効率化する技術をプレイヤーは持ってないからです。
    手作業で頑張れば行けますが、非効率で絶望すると思います。

##### プレイヤーとしての技術が求められる理由
* 考察のロジック形成が稚拙になります。
    その分野を知らない人は、見えるデータからしかロジック形成出来ないからです。
    サッカーやウイイレをしたことない人が、解析結果をどう考察するか予想してください。
    下記のようなことがおきます。本当におきます！笑

    * *解析者　「シュート本数が多い方が点を取りやすい傾向があるので、シュート増やしてください」*    
        *プレイヤ「どうすれば増やせますか？」*  
        *解析者　「データ分析が専門で、シュートの増やし方は分かりません。」*  


-----

### いざデータ解析へ！
#### ①パラメータの選定
* 今回パラメータとして選んだのは、以下の三枚の画像です。
    ウイイレプレイヤーの皆さんがいつも見ている試合結果です。

    ◆チームスタッツ
    ![](https://i.imgur.com/MnJVi6d.jpg)
    ◆攻撃時エリア
    ![](https://i.imgur.com/hg4BWNC.jpg)
    ◆ボール奪取エリア
    ![](https://i.imgur.com/W58gUXp.jpg)

#### ②データ取り込み
* 入力データは画像ですが、欲しいのは文字や数字です。
    光学文字認識技術を用いてデータを取得します。
    文字の領域抽出やノイズリダクション等も使用しました。

#### ③データフォーマットへの成形
* データフォーマットは、以下の感じで出力します。

    |Param      |Home        |Away         |
    |:----------:|:-----------:|:------------:|
    | Possession  |      45     |     55       |

    チームスタッツと攻撃エリアは、数値で出てくるので、上記フォーマットに当てはめればいいので簡単ですね。
    
    問題はボール奪取エリア！
    悩んだ末、ピッチを縦5(1~5) x 横5(A~E)に分割した領域で何回ボール奪取したかをカウントすることにしました。
    ※5等分にしたのは、ペップ監督の5レーン理論に倣ってです。
    こういうデータフォーマットの数値には、根拠を持つことはとても大事です。
    領域ごとにラベリング処理を回して、以下のように出力します。
    
    |Area      |Home        |Away      |
    |:----------|:------------|:----------|
    | 1A        |      2     |     3     | 

#### ④出力
* 出力先は、csvにします。
    処理が軽いですし、Excel等と比べてデータの扱いが楽です。
    実際に出力されたデータはcsvはこれ！
    ※CSV貼り付けできないみたいで、出力文字データを貼り付けます（泣）[変換ツール](https://www.convertcsv.com/csv-to-markdown.htm)

    |Param       | Home          |Away        |
    |:----------|:-------------|:-----------|
    |Name        |  ヤジュントス   | しゃおマドリー |
    |Score       |4              |1           |
    |Possession  |51             |49          |
    |Shot        |9              |5           |
    |Shot on Goal|6              |3           |
    |Foul        |6              |2           |
    |Off Side    |4              |1           |
    |Corner Kick |2              |0           |
    |Free Kick   |2              |6           |
    |Pass        |120            |95          |
    |Pass Success|89             |58          |
    |Cross       |0              |1           |
    |Intercept   |24             |20          |
    |Tackle      |4              |10          |
    |Save        |3              |2           |
    |Left Side   |13             |21          |
    |Middle      |60             |45          |
    |Right Side  |27             |34          |
    |1A          |0              |1           |
    |1B          |2              |1           |
    |1C          |0              |1           |
    |1D          |0              |2           |
    |1E          |0              |1           |
    |2A          |1              |2           |
    |2B          |3              |0           |
    |2C          |1              |1           |
    |2D          |2              |1           |
    |2E          |0              |1           |
    |3A          |3              |3           |
    |3B          |3              |1           |
    |3C          |3              |3           |
    |3D          |4              |4           |
    |3E          |1              |4           |
    |4A          |1              |1           |
    |4B          |2              |0           |
    |4C          |3              |3           |
    |4D          |2              |6           |
    |4E          |2              |4           |
    |5A          |0              |0           |
    |5B          |0              |0           |
    |5C          |4              |2           |
    |5D          |2              |2           |
    |5E          |3              |0           |
 

#### ⑤解析 ~ ⑥考察
* 次回の投稿で、解析用にもAIや統計解析を用いたソフトウェアを作ってみます。  
    今回作成したソフトウェアで、試合結果は一瞬で取得できるようになったので、解析が楽しみです！  
   to be continued
   
-----

### ■プレイヤー自身で解析できるの？
* 実際に手作業でこのデータを取得する工数を想像してみてください。
    1試合分で10分~1時間弱くらいかかるのではないでしょうか？
    これを毎試合分集めようとすると、疲れちゃいますよね。

    プロゲーマーのときどさんの[著書](https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E4%B8%80%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B2%E3%83%BC%E3%83%9E%E3%83%BC%E3%81%8C%E3%82%84%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B-%E5%8A%AA%E5%8A%9B2-0-%E3%81%A8%E3%81%8D%E3%81%A9/dp/4478108315)でも書かれていましたが、
     *   *「アウトソーシングできるものはアウトソーシングする」*

    簡単に言うと分業です。
    「解析に使う時間を練習時間に割ける」 or 「解析結果をFBして練習を効率化」
    することであなたのパフォーマンスを最大化するのです。


-----

### ■エンジニアリングの可能性
* 今回作成したソフトは簡単です。
    動画解析やリアルタイム分析、対戦相手のリサーチ等も可能です。
    ゲームは、「システム」です。
    全てのシステムは、言語化・形式化・数値化することが可能です。
    あなたの要求にもエンジニアリングで応えられるかもしれません。

-----

### ■告知 
* ここまで読んでくれたあなた！本当にありがとうございます！
* テスターを２名ほど募集します。 **※テスター募集は終了しました。**
    プロゲーマーや配信者の方で、試合結果を提供してくれる方を２名ほど募集します。
    こちらが求めるのは、数十試合分の試合結果です！
    提供できるのは、数十試合分の試合結果の解析結果等をお送りします！
    
    ※フラッシュアイディアいっぱいあるため、今後も新しい解析ソフトを作成した場合、
    優先的にテスターとしてお声がけします！

-----

### ■自己PR
* 私は、「eスポーツプレイヤー」と「エンジニア」両方の顔を持っています。
    下記は、それぞれでやってきたことを一部抜き出してみました。


    * ▼eスポーツプレーヤーとしてやってきたこと▼  
        ・全国都道府県対抗eスポーツ選手権2019 (国体) 準優勝[▶ニュース](https://www.famitsu.com/news/201910/07184643.html)[▶試合映像](https://www.youtube.com/watch?v=Crih7RudKAY)  
        ・でんきlooopCup 準優勝 賞金30万円獲得[▶試合映像](https://www.youtube.com/watch?v=XW5NNg5SPc8)  
        ・pes league 2019 myclub gland final elite 優勝 [▶詳細](https://pesleague.konami.net/en/myclub-2019-1v1/)  
            など

    * ▼エンジニアとしてやってきたこと▼ 
        ・生体医工学会シンポジウム2018 ベストリサーチアワード
        「仮想電極分極現象を用いたSpiral Reentry旋回中心制御」[▶論文](https://www.jstage.jst.go.jp/article/jsmbe/57/2-3/57_49/_pdf)
        ・心筋へ通電印加時の電位勾配を用いて２次元心筋フローマップの導出方法考案[▶詳細]  (https://www.jstage.jst.go.jp/article/jsmbe/55Annual/4AM-Abstract/55Annual_296/_article/-char/ja/)
        ・画像・信号処理、およびデータマイニングソフトウェア開発　4年
        ・現在は一部上場メーカー R&D部門でソフトウェア開発 2年
            など


        私はeスポーツ業界に未来を感じており、パラレルキャリアを形成したいと考えています。
        私と手を組んで、eスポーツ界でライバルに差をつけませんか？ 
        興味がある方は以下の連絡先にご連絡ください。

        *twitter ID : junya0001000*
        ツイッターのDMを解放してます。

-----

###■参考URL
* [Pillow](https://pillow.readthedocs.io/en/stable/)
* [【Python】Pillow ↔ OpenCV 変換](https://qiita.com/derodero24/items/f22c22b22451609908ee)
* [PyOCRでTesseractを使う](https://blog.machine-powers.net/2018/08/04/pyocr-and-tips/)
* [Image Processing with Python](https://datacarpentry.org/image-processing/aio/index.html)
* [オブジェクト検出](https://axa.biopapyrus.jp/ia/opencv/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%A4%9C%E5%87%BA.html)