Help us understand the problem. What is going on with this article?

寿司打を自動化してみた【RPA×OCR】

はじめに

皆さんは寿司打というタイピングゲームをご存知でしょうか?

回転寿司のように問題が次々に流れてきて、それをどんどんタイピングして点数を稼いで行くというゲームになります。
寿司打紹介.png

おそらくタイピングゲームでは一番有名?なのではないでしょうか。
(私もブラインドタッチの練習をしていた頃に大変お世話になりました)

私が現在参画しているプロジェクトでは、飲み会の幹事をこの寿司打で決めるという面白い習慣があります。
新卒の子達が先輩にボコボコにされ、その子達が訓練を積んで、次の後輩達をボコボコにする(結果的にみんなタイピングが速くなる)という事ですね。

もはや本来の趣旨を外れているのですが、「これすぐ自動化できそうだな」と思ったので、RPA(UiPath)とOCRで自動化してみました。

■使用環境
OS:Windows
ブラウザ:Chrome
RPA:UiPath
OCR:UiPathデフォルトのtesseractエンジン

■開発時間
2時間程度

結果

最適化すればもっと速くなりそうですが、しっかりとタイプしてくれています。
ezgif.com-crop.gif
全体の動画は右記参照:寿司打を自動化してみた(YouTube)

アルゴリズムとしては、スクショを撮る→OCRで文字読み取り→読み取り結果をタイピングという単純なもので、正規表現でのマッチングとリプレイス、読み取りエラーのハンドリングを5箇所程度入れています。

最終スコアがどうなるか楽しみにしていたのですが、ここで一つ大きな誤算がありました。。
制限時間の減少速度を、連打ボーナスによる時間の増加が上回り、いつまでも終わらないのでスコアが出ないという状態になりました。
とりあえず放置してみた所、500円皿が100皿を超えたあたりでシステムエラー?によるポップアップが出て強制終了に。

スコアが出ないのはそれはそれで困るので、試しに強制終了となる手前でRPAを止めた所、合計300皿で12万円程度でした。これで新卒の子達に負ける心配はなさそうです。
寿司打.png
※380円皿は2週目(180皿)

まとめ

過去に使用した際の経験上、tesseractの読み取り精度を心配していたのですが、この程度の問題設定なら十分に読み取ってくれました。

最初Pythonでやろうかと思ったのですが、UiPathは画面をクリックすればセレクタを自動で取ってきてくれるので楽ですね。小中規模程度の実装なら、フローチャート形式で書ける可読性の高さのメリットも大きいです(後から見た時にすぐわかる)。

今回は割と問題設定が易しかったので、「これ自動化してみて欲しい」という面白い課題がありましたら教えて頂けると幸いです。

<参考>
Qiita記事
RPAは誰でも簡単に作れるという罠
VBAが組める人ならRPAは簡単に作れるという罠
UiPathのコーディングチェックツールを作ってみた【RPA】
RPAへの理解がぐっと深まる、RPAがよくこける理由
RPAのオススメ書籍
RPAの開発に向いている人、向いていない人
RPAの推進に必須なRPAOpsという考え方
【AI】Deep Metric Learning
【AI】Deep Learning for Image Denoising

デモ
UiPathCodingChecker:UiPathのxamlファイルからコードを分析
AI Demos:DeepLearningによる手書き文字認識・異常検知・画像のデノイズ
寿司打自動化(YouTube):タイピングゲーム寿司打のRPA×OCRでの自動化

jw-automation
業務自動化のコンサル兼アーキテクト。 日々の業務や個人の活動の情報を共有して行きます。
https://jw-automation.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした