Это четвертая часть моей серии «автоматизация игр с помощью python».

Часть 1: Как я сделал бота на питоне для автоматизации тактической мморпг. Это объясняет мою мотивацию и игру, которую я автоматизирую.

Часть 2: Как управлять мышью и клавиатурой с помощью Python для автоматизации. В этой части рассматриваются основные функции, необходимые для автоматизации.

Часть 3: Оболочка, которую я сделал для простой реализации поиска изображений в вашей программе на Python и как ее использовать: Простое распознавание изображений для автоматизации с помощью Python

Итак, зачем нужно распознавание изображений с помощью нейронной сети, когда у нас уже есть библиотека, которая может это сделать?

Я имею в виду, если подумать, машинное обучение — это действительно сверхмощный механизм:

  • Вам нужно большое количество образцов изображений
  • Обучение может занять много времени
  • Использование машинного обучения вовсе не тривиально

Ну, это просто: точность на труднодоступных изображениях

Под трудно поддающимися классификации я подразумеваю изображения, которые могут двигаться.

Например, как вы обнаружите персонажа, который постоянно движется в своем неактивном положении (например, персонаж уличного бойца) или изображения, которые меняют цвет. Если вы пытаетесь найти это, используя типичное распознавание изображений, вам нужно найти изображение, которое постоянно меняется, поэтому у вас есть 2 варианта:

  • Сделайте много разных изображений различных состояний движущегося изображения и наложите поиск изображений на поиск изображений, чтобы попытаться обнаружить его. Но это очень медленно и все еще довольно неточно.
  • Сделайте один снимок и установите высокий допуск на изменение пикселей, это может привести к большому количеству ложных срабатываний, так что это все еще плохо.

Таким образом, это можно довольно легко решить с помощью машинного обучения, когда вы просто вводите множество изображений, а алгоритм сам учится правильно обнаруживать изображения с почти идеальной точностью в большинстве случаев.

Вернемся к нашей проблеме:

Что нам нужно для классификации?

Если вы помните мой первый пост, то вы помните про защиту от ботов, если нет вот оригинальный текст:

Представляем, капчат:
Перед вами ваш персонаж и кот, вокруг кота вы видите три квадрата с цифрами (от 1 до 8). Вокруг вас есть 8 квадратов с каждым числом.

Вам нужно нажимать на квадраты вокруг вас, которые соответствуют квадратам вокруг кота. И обратите внимание, что точки, из которых состоит число внутри квадрата, постоянно перемещаются:

Это 2:

Это также 2, снятое через несколько секунд после :

А это 3:

Видишь, куда я иду? поскольку числа постоянно меняются, а разница очень тонкая, почти невозможно классифицировать их с помощью традиционных алгоритмов.

Прежде чем прибегнуть к машинному обучению, я попробовал несколько вещей:

  • Подсчет точек: я взял изображение одной точки и попытался сопоставить, сколько их было в квадрате. Это не сработало, потому что они иногда смешивались, и поэтому это не достигло хорошей точности.
  • Другие методы, описанные в этом посте (каскад и высокая толерантность), не работают, потому что неточны.

Так что я был прижат к стене. Единственное решение, которое мне подошло: машинное обучение.

Прошу прощения за то, что задержал еще один пост, посвященный реальным вещам машинного обучения, но этот пост должен был быть вступлением, а он уже слишком длинный. И я не хочу, чтобы мои статьи были слишком длинными, поэтому предобработку данных мы увидим в следующей статье!

Спасибо за чтение

Если вам понравилась моя статья, заходите в мой блог, чтобы увидеть больше на https://brokencode.io/ :)