Найти тему
Машинное обучение

Пишем решатель капчи на Python

Это простой решатель для решения капчи, таких как на картинке ниже. Используйте силу, чтобы найти что-то более сложное.

Идея

В этом примере мы будем использовать следующие изображения.

Полный код: https://github.com/ptigas/simple-captcha-solver

-2

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

Первая часть заключалась в том, чтобы извлечь все буквы. Для этого, , мы отобрали несколько изображений, чтобы убедиться, что изображения, которые у нас есть, содержат все 16 букв из примера. Затем с помощью простого графического редактора мы обрезали все буквы одну за другой. Вы должны быть очень осторожны, чтобы все буквы были выровнены правильно. Вот последняя маска.

-3

Теперь мы можем сосредоточиться на капче. Как вы можете заметить, а изображении есть некоторый шум, который мы должны удалить (линии и прочее). Далее мы преобразуем изображение в оттенки серого, а затем использовали функцию, чтобы удалить часть шума. Вот пример после фильтрации.

-4

Математика

Мы перемещаем каждую букву по изображению, возьмем разницу пикселей для каждой позиции и суммируйте их. Таким образом, для каждой позиции у нас есть оценка того, насколько буква (маска) соответствует букве за ней. Затем сохраните для каждой буквы позицию. Затем отсортируем по количеству баллов, возьмите первые пять результатов (наша капча состоит из пяти букв) и, наконец, отсортируем символы по позиции. Результатом является текст капчи.

Код:

Вот код, который реализует этот метод: https://github.com/ptigas/simple-CAPTCHA-solver.

Машинное обучение RU
Python RU