WeChatミニプログラムにゲーム「Jump Jump」が登場して以来、多くのWeChatユーザーがランキングを競い、中には必ず勝つと決意しているユーザーもいる。 ゲーム「ジャンプジャンプ」が初めてリリースされてから1か月以上経ち、多くの優秀なプレイヤーが登場し始めました。数千点を取るのは難しくありません。 「WeChatの父」張小龍氏も、2018年WeChatオープンクラスPROのWeChatミニゲーム「Jump Jump」でのスコアを公開し、最高スコアは6000点以上だったと語った。また、「Jump Jump」をプレイしているときは緊張したり心臓の鼓動が速くなったりせず、むしろとても落ち着いてプレイを楽しんだと語った。 全能の AI プログラマーとして、私たちは人工知能 (AI) とコンピューター ビジョン (CV) の手法を使用してこのゲームをプレイできるかどうか疑問に思っています。 そこで、WeChat 自動ジャンプ アルゴリズムを開発し、ゲームの正しいプレイ方法を再定義しました。 私たちのアルゴリズムは、人間のレベルをはるかに超えるだけでなく、速度と精度の点で現在知られているすべてのアルゴリズムをはるかに超えています。ジャンプ業界の最先端であると言えます。以下で私たちのアルゴリズムを詳しく紹介します。 アルゴリズムの最初のステップは、携帯電話の画面のスクリーンショットを撮り、携帯電話のタッチ操作を制御することです。Android および iOS 携帯電話の設定方法については、当社の Github リポジトリで詳しく説明しています。 Githubアドレス: https://github.com/Prinsphield/Wechat_AutoJump 携帯電話をコンピューターに接続し、チュートリアルに従って設定を完了するだけです。スクリーンショットが撮れたら、あとは視覚の問題だけです。私たちが見つけなければならないのは、小さな男の位置と、次にジャンプする必要があるテーブルの中央です。 図に示すように、緑の点はキャラクターの現在の位置を表し、赤の点はターゲット位置を表します。 マルチスケール検索 この問題を解決する方法はたくさんあります。リストに素早く簡単に載るために、最初はマルチスケール検索を使用しました。ランダムに写真を見つけて、以下のように小さな男を切り取りました。 さらに、画面上の位置によって小人の大きさがわずかに異なることに気づいたので、さまざまなサイズを一致させて最も信頼スコアが高いものを選択するマルチスケール検索を設計しました。 マルチスケール検索のコードは次のようになります。
試してみましょう。効果はかなり良好です。速くて良いと言えます。これまでのすべての実験で、小さな男を見つけるのに失敗したことはありません。 ただし、ここでの位置ボックスの中央下は小人の位置ではなく、実際の位置はそれより少し上になります。 同様に、対象のカウンタートップもこの方法で検索できますが、円形、四角形、コンビニエンスストア、マンホールの蓋、角柱など、いくつかの異なるカウンタートップを収集する必要があります。数が多く、スケールが複数あるため、速度が遅くなります。 現時点では、スピードを上げる方法を見つける必要があります。まず、ターゲットの位置は常に小人の位置より上にあることに気づくでしょう。そこでできることの 1 つは、小人の位置を見つけた後、小人の位置より下の部分を破棄することです。これにより、検索スペースを減らすことができます。 しかし、これだけでは十分ではありません。ゲーム内のストーリーをさらに探求する必要があります。小人やターゲットテーブルの位置は、基本的に画面の中央に対して対称になっています。これは、検索範囲を絞り込むための非常に良いアイデアを提供します。 画面解像度を(1280, 720)とすると、男性の下の位置は(h1, w1)なので、中心の対称点の位置は(1280 - h1, 720 - w1)です。この点を中心に、辺の長さが300の正方形内で複数のスケールで目的の位置を探すと、高速かつ正確です。 効果は下図の通りです。青い四角が検索範囲(300, 300)、赤い四角が検索したテーブル、四角形の中心がターゲットポイントの座標です。 高速検索 ゲームをプレイするには注意深い観察が必要です。前回、小人がテーブルの中央にジャンプした場合、次回は上の写真のように、ターゲット テーブルの中央に白い点が表示されることがわかります。 もっと注意深く見れば、ホワイト ポイントの RGB 値が (245, 245, 245) であることが分かります。これにより、このホワイト ポイントを直接検索するという非常にシンプルで効率的な方法を見つけることができます。 白い点は連結された領域であり、ピクセル値(245、245、245)を持つピクセルの数は280〜310の間で安定しているため、これを使用してターゲットの位置を直接見つけることができます。 この方法は、前回の中心へのジャンプが行われた場合にのみ使用できますが、それは問題ではありません。この時間節約方法を毎回試し、うまくいかない場合はマルチスケール検索を検討できます。 この時点で、私たちの方法は非常にうまく機能しており、基本的には永久機関です。以下は、スマホで約1時間半プレイして、859回のジャンプを行った状態です。 私たちの方法は、小人の位置とターゲットの位置を正しく計算しましたが、携帯電話が動かなくなったため、私は死ぬことを選択しました。 効果のデモンストレーションは次のとおりです。 ビデオリンク: https://v.vzuu.com/video/932359600779309056 これで終わりですか?では、私たちとアマチュア選手の違いは何でしょうか?これから本格的な学習時間に入ります。非戦闘員は速やかに避難してください。 CNN 粗密モデル iOS デバイスでは、スクリーン キャプチャ ソリューションの制限により高速検索を使用できないことを考慮します (WebDriverAgent によって取得されたスクリーンショットは圧縮されており、画像ピクセルが破損し、元のピクセル値ではなくなりました。理由は不明です。詳細を知っている友人は、改善の提案を歓迎します)。 同時に、マルチ解像度デバイスとの互換性を確保するために、畳み込みニューラル ネットワークを使用して、より高速で堅牢なオブジェクト検出モデルを構築します。 以下は、データの収集と前処理、粗いモデル、細かいモデル、およびカスケードの 4 つの部分で構成されたアルゴリズムの紹介です。 データ収集と前処理 高精度のマルチスケール検索モデルと高速検索モデルに基づいて、7 つの実験からデータを収集し、それぞれにターゲット位置の注釈が付いた合計約 3,000 枚のスクリーンショットを作成しました。 各画像に対して、2 つの異なる前処理方法を実行し、それぞれ Coarse モデルと Fine モデルのトレーニングに使用しました。2 つの異なる前処理方法については、以下で紹介します。 粗いモデルデータの前処理 現状の判断に真に意味のある各画像の領域は、人物と対象物が位置する画面中央のみであるため、各スクリーンショットの上部と下部は意味がありません。 そこで、収集した1280*720の画像を上下x方向に320*720で切り取り、中央の640*720の画像のみをトレーニングデータとして保持します。 ゲームでは、小さな男がターゲット オブジェクトの中心に着地するたびに、次のターゲット オブジェクトの中心に白い点が表示されることが観察されました。 トレーニング データで高速検索を行うと大量の白点データが生成されることを考慮し、白点がネットワーク トレーニングの妨げにならないように、各画像に対して白点除去操作を実行しました。具体的な方法は、白点の周囲の純色ピクセルで白点領域を塗りつぶすというものです。 微細モデルデータの前処理 モデルの精度をさらに向上させるために、Fine モデルのデータセットを作成しました。トレーニング セット内の各画像について、ターゲット ポイント付近の 320 x 320 ピクセルのブロックをトレーニング データとしてキャプチャしました。 ネットワークが些細な結果を学習するのを防ぐために、各画像に 50 ピクセルのランダム オフセットを追加しました。ファインモデルデータも白点除去処理済み。 粗いモデル 私たちはこの問題を回帰問題として定式化し、Coarse モデルは畳み込みニューラル ネットワークを使用してターゲットの位置を回帰します。
10 時間のトレーニング後、Coarse モデルはテスト セットで 6 ピクセルの精度を達成し、実際のテスト精度は約 10 ピクセル、テスト マシン (MacBook Pro Retina、15 インチ、2015 年中期、2.2 GHz Intel Core i7) での推論時間は 0.4 秒でした。 このモデルは、1,000 を超えるスコアを簡単に獲得できます。これは、人間のレベルやほとんどの自動アルゴリズムのレベルをはるかに超えています。日常の娯楽には十分すぎるほどです。ただし、私たちがそこで止まると思っているなら、それは間違いです。 ファインモデル Fine モデルの構造は Coarse モデルと似ていますが、パラメータの数が若干多くなっています。Fine モデルは、Coarse モデルの改良操作として機能します。
10 時間のトレーニング後、Fine モデルのテスト セットの精度は 0.5 ピクセルに達し、実際のテスト精度は約 1 ピクセル、テスト マシンでの推論時間は 0.2 秒でした。 カスケード 全体的な精度は約1ピクセル、時間は0.6秒です。 要約する この問題に対処するために、当社は AI と CV 技術を使用して、iOS および Android デバイスに適した完全なソリューションを提案します。少しの技術的背景を持つユーザーでも、これを正常に構成して実行できます。 この問題を解決するために、私たちはマルチスケール検索、高速検索、CNN Coarse-to-Fine の 3 つのアルゴリズムを提案しました。3 つのアルゴリズムが連携して、高速かつ正確な検索とジャンプを実現します。ユーザーは自分のデバイスのジャンプ パラメータをわずかに調整するだけで、「永久機関」をほぼ実現できます。 そうは言っても、私たちの作業によってこの問題は解決したと宣言できそうです。WeChat ミニゲーム「ジャンプ ゲーム オーバー!」 親切なリマインダー:適度なゲームは脳に良いですが、ゲームへの依存は体に有害です。技術的な手段の楽しさは、ゲームランキングではなく、テクノロジー自体にあります。皆さんがゲームランキングとこの記事で提案されたテクノロジーを合理的に扱い、ゲームを使って生活を楽しませてくれることを願っています。 声明: この記事で提案されているアルゴリズムとオープンソースコードは、MIT オープンソース契約に準拠しています。アルゴリズムを商用目的で使用することで生じるすべての結果は、ユーザー自身が負担する必要があります。 Gitリポジトリアドレス:
|
>>: 「柯潔は2つの石を与えられた」が、それでもAIに負けた。プログラマーが知っておくべきトップ10のAIライブラリとフレームワークはこちら
科学技術の継続的な発展に伴い、人工知能、5Gネットワーク、生体認証、ロボットなどのインテリジェン...
ビッグデータダイジェスト制作著者: カレブ皆さんはたくさんのロボットを見たことがあると思いますが、こ...
新たなスタープロジェクトが誕生! AI 開発者コンパニオンである GPT Pilot を使用すると、...
Microsoft は最近、顧客がローカル ERP および CRM アプリケーションをクラウドに移行...
C# のデータ構造とアルゴリズムのキューは、リストの先頭での削除操作とリストの末尾での挿入操作のみを...
Google の次世代アーキテクチャ Pathways は、大規模なモデルのトレーニングに使用されて...
米国国土安全保障省および米国国税庁の元最高情報責任者であり、現在は Learning Tree In...
サスペンスやSF作品では、ぼやけた写真がコンピューターの画面に表示され、捜査官が画像を強調するように...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...