簡體   English   中英

如何檢測“節奏游戲”自動播放器的符號

[英]How to detect symbols for a "rhythm game" auto player

在此處輸入圖片說明

在此處輸入圖片說明

在此處輸入圖片說明

我正在開發一個使用 Python 自動播放的“節奏游戲”,但我遇到了問題。

我的計划如下。

1 捕獲游戲中的特定范圍。(無限重復)

2 “1”從檢測預存圖片。

3 檢測到時,輸入鍵盤“S”鍵。

“1”已成功實施,但我無法實施數字“2”。

節奏游戲=當紅色方塊在白色方塊中時,輸入's'鍵為游戲。

PS我使用的是python版本

在此處輸入圖片說明捕獲范圍

在此處輸入圖片說明要檢測的照片

在此處輸入圖片說明我的代碼

在此處輸入圖片說明什么是節奏游戲??

如果你想檢測自動播放器的符號,你可以應用神經網絡,比如 sklearn、PyTorch 或 Keras 支持的。 第一個更容易處理,但 PyTorch 和 Keras 也可以使用顯卡(至少是 Nvidia)來加快訓練速度,因為它們支持 cuda。

如果您說五個“車道”,其中符號向下移動,我會嘗試從五個“車道”中的每一個中抓取相同大小和相對位置的一塊,這樣您就可以為每個車道捕獲符號的相似部分。 然后,您可以將這五個部分提供給您訓練有素的網絡,讓它決定是否有符號(以及哪個)或是否沒有,然后根據此決定在您的 Python 代碼中做出反應。

如果您可以設法抓住一個相似的區域,該區域將包含所有車道的相似符號,那么神經網絡的工作將很容易,因此您可以保持其架構簡單。 但由於應用訓練有素的神經網絡(以確定是否有符號)也需要時間,我會

  1. 保持網絡簡單,所以它有盡可能少的神經元(盡量不要用隱藏層誇大)

  2. 我也會盡量保持輸入區域盡可能小(所以只是一個足夠大的片段來包含符號的一部分,而不是整個符號)和

  3. 也許您可以添加一些快速的額外邏輯,您可以使用它來檢查車道的輸入區域是否為空白(例如僅包含背景顏色),或者輸入區域中是否還有其他內容(可能是符號)。 因此,您可以避免對 NN 進行一些不必要的工作,這基本上是大量的浮點運算。

所有這些只是為了使過程更快,因為更快意味着您可以以更高的頻率檢查符號。

為了能夠訓練網絡,我將只實現代碼,獲取車道的輸入區域和我在上面 3.) 中描述的邏輯(如果可以實現類似的東西)。 這將作為您稍后使用 NN 的最終程序的框架,您可以從它開始為您的網絡抓取訓練圖像。 但是你需要手工標記它們。 這是工作中最無聊的部分。 因此,您查看抓取的圖像片段並將圖像的名稱以及它包含的是否/哪個符號保存在一個額外的文本文件中。 如果你在標記小片段時遇到問題,你可以稍微作弊,讓你的工作的輸入區域更大一點,這樣更容易識別符號,如果你將它們輸入神經網絡,然后減小它們的大小.

順便提一句。 即使對您來說這聽起來很傻,您也應該在訓練期間將所有圖像類型的相似比例提供給您的神經網絡,因為它們會在稍后應用時得到。 因此,例如,如果您無法實現 3.) 中描述的邏輯,您還應該放置大量圖像,其中輸入區域中沒有符號,而不僅僅是一兩個。 那是因為神經網絡只有在有足夠的機會犯錯時才會學習。 因此,如果您在訓練數據中只說一張沒有符號的圖像,則您的神經網絡可能會將其錯誤分類,但由於它只是一張圖像,它的數量可能會被其他圖片所超過,因此網絡對於自動播放器來說幾乎一文不值。

好吧,它有點復雜,只有在調整網絡權重以正確檢測空白圖像會導致網絡對其他符號片段不太確定時才會發生這種情況。 但這不太可能發生。

順便提一句。 如果您在車道中選擇輸入區域,我寧願選擇垂直方向較大的矩形區域,而不是水平方向。 如果您沒有成功使用常規 NN(我認為不會),您可以嘗試使用卷積層。 但是沒有必要這樣做,我不會這樣做,因為它使網絡更復雜,因此速度更慢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM