Другие

Как далеко зашло машинное обучение в области решения капч?

Spread the love

Гостевая статья

Машинное обучение (machine learning, МО) теперь стало больше, чем модным словом. Учитывая огромный диапазон задач, которые, например, решает машинное обучение на Python (питон), вопрос обхода капчи — лишь очередная трудность. Рассматривая возможности свёрточных нейронных сетей, мы обнаружили большой потенциал в решении этой проблемы. Пока что пользователей не устраивают текущие показатели точности. Но давайте же подробно разберемся, какие инструменты у нас есть для решения этой проблемы и какие из них наиболее эффективны.

Что такое капча?

Термин “капча” больше не является новым в Интернет-сообществе. Эта надоедливая проверка “на человечность” присутствует на множестве сайтов. Аббревиатура CAPTCHA означает в переводе “полностью автоматизированный публичный тест Тьюринга, отличающий компьютеры от людей”. Капчу можно представить, как компьютерную программу, разработанную для отделения человека и машины, чтобы предотвратить любой вид нежелательной деятельности на веб-сайтах. Предположение, которое лежит в основе концепции капчи, состоит в том, что только человек способен пройти этот тест, а боты или автоматизированные скрипты потерпят неудачу.

Зачем автоматизировать решение капчи?

Начать следует с того, что люди используют автоматическое решение капчи для различных целей, некоторые из которых являются противоправными, тогда как другие — совершенно безобидными. Спамеры используют решение капчи для массового получения адресов электронной почты пользователей, чтобы иметь возможность слать как можно больше спама. Безобидными же примерами являются случаи как, например, когда к вам присоединился новый клиент или деловой партнер и ему необходим доступ к вашему интерфейсу прикладного программирования (API), который не может быть предоставлен без предварительного прохождения капчи в связи с какой-либо проблемой безопасности или для защиты от взлома системы. Таким образом, у нас остается только обходить капчу с использованием автоматических скриптов.

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

Классификация популярных методов автоматического решения капч

Популярные методы, доступные пользователям для решения как обычных капч, так и ReCaptcha:

  1. Боты с поддержкой оптического распознавания символов — в этом подходе используется метод оптического распознавания символов (OCR), что позволяет решать капчи автоматически. Существуют такие инструменты, как Ocrad и tesseract и они действительно решают капчи, но с очень низкой точностью.
  2. Машинное обучение — супервизорный способ, состоящий из сверточной нейронной сети (CNN), а также фреймворков и библиотек Python, таких как Keras и tensorflow. Мы можем обучить модели глубоких сверточных нейронных сетей находить и распознавать буквы и цифры на изображаемых капчах.
  3. Онлайн-сервисы по решению капч — в таких сервисах решением капч занимаются реальные люди и такие работники постоянно доступны онлайн. Когда вы отправляете запрос на решение капчи, сервис пересылает капчу работникам, которые её решают и возвращают решение вам.

Далее мы рассмотрим эффективность каждого из методов.

Анализ эффективности метода на основе OCR

Хотя метод OCR и является экономически выгодным, когда речь идет о решении большого количества простых капч, он всё же примитивен, как чайник и не обеспечивает требуемой точности. Решения на основе системы оптического распознавания символов стали редкостью после выхода Google ReCaptcha V3. Таким образом, боты с поддержкой OCR не созданы для того, чтобы решать капчи, используемые такими титанами, как Google, Facebook или Twitter — это потребует более совершенных методов.

Решения на основе оптического распознавания символов корректно распознают 1 из 3 простых капч.

Анализ эффективности метода на основе МО

Давайте посмотрим, как работают решения на основе машинного обучения:

  • Решение на основе МО использует OpenCV для поиска контуров в изображении и обнаруживает непрерывные области. Изображения предварительно обрабатываются техникой пороговой обработки.
  • Все изображения преобразуются в черно-белые.
  • Изображение капчи разбивается на символы, используя функцию OpenCV findContour (). Обработанные изображения теперь представляют собой отдельные буквы и цифры.
  • Затем всё это передаётся модели CNN, чтобы обучить её.
  • Обученная модель CNN готова решать настоящие капчи.

Архитектура CNN для прогнозирования и расшифровки капч из
https://www.researchgate.net/publication/301620459_CAPTCHA_Recognition_with_Active_Deep_Learning

Несмотря на то, что МО — усовершенствованный вариант OCR, это всё ещё несовершенная технология, где учителем изначально выступает человек. Точность этого способа намного лучше, чем решение любых текстовых капч методом OCR. Но и у этого решения есть множество недостатков, к тому же он решает только определенный вид капч, тогда как Google продолжает обновлять свой алгоритм генерации ReCaptcha, а Яндекс усложняет графические капчи. Последнее обновление, которое затронуло широкий круг пользователей, вероятно, самое лучшее в истории обновлений ReCaptcha: обычные пользователи ничего не почувствовали, тогда как автоматизированные решения либо вообще перестали работать, либо начали работать очень медленно.

При построении модели она была обучена в 10⁴ итерациях с правильными и случайными примерами и с 10⁵ тестовых изображений, и вот как она работала со средней точностью ~ 60%:

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

Онлайн-сервисы для решения капч

Онлайн-сервисы по распознаванию капч являются пока наилучшим решением проблемы. Идя в ногу со всеми обновлениями ReCaptcha от Google, они обеспечивают безупречную точность до 99%.

Почему онлайн-сервисы по решению капч лучше других методов?

На сегодняшний день, по результатам проведённых исследований и разработок, существует множество недостатков в решениях на основе OCR и МО. Они могут решать только самые простые капчи и то без существенной точности. В этой связи, вот некоторые преимущества онлайн-сервисов:

  • Более высокий процент правильных решений (OCR дает чрезвычайно высокий уровень неправильных ответов на действительно сложные капчи; не говоря уже о том, что некоторые виды капч в принципе не могут быть решены с помощью OCR, по крайней мере, на данный момент).
  • Непрерывная безупречная работа без каких-либо перебоев и с быстрой адаптацией к новым типам капч.
  • Экономически выгодный вариант, с малым потреблением мощности компьютера и низкой стоимостью обслуживания, так как исключены проблемы с программным или аппаратным обеспечением; все, что вам нужно, это подключение к Интернету для отправки простых запросов через API сервисов распознавания капч.

Крупные игроки на рынке онлайн-сервисов по решению капч

Определившись с выбором метода решения капч, стоит более детально рассмотреть варианты онлайн-сервисов. Самые продвинутые из них обеспечивают высокую точность решений, поддержку API для автоматизации и быструю скорость. Они представлены такими сервисами, как RuCaptcha, Imagetyperz, CaptchaSniper и др.

RuCaptcha — один из лучших сервисов, с которым я сталкивался. Высокие скорость и точность, сервис доступен 24/7.

Преимущества RuCaptcha среди аналогичных сервисов:

  • Высокая скорость решений — 17 секунд для графических и текстовых капч и ~23 секунды для ReCaptcha.
  • Поддержка всех популярных языков программирования с полной документацией и множеством готовых библиотек.
  • Высокая точность (до 99% в зависимости от типа капч).
  • Возврат средств за редкие неправильные ответы и нерешенные капчи.
  • Фиксированная ставка за 1000 решенных капч (в отличие от конкурентов, где ставка повышается в моменты пиковой нагрузки на сервис).
  • Возможность оперативно решать огромный объем капч (более 10000 в минуту).

Выводы

Сверточные нейронные сети (CNN) научились обходить простейшие типы капч, что ведёт капчи к их дальнейшему активному развитию. Искусственный интеллект нейронных сетей (ANN), в свою очередь, пытается соответствовать этим изменениям, а капчи вновь становятся более сложными — и эта гонка никогда не закончится. Вот почему в данном вопросе человек пока что побеждает машину и онлайн-сервисы по решению капч, в которых задействованы люди-работники, будут опережать программные решения.

Была ли вам полезна эта статья?
[3 / 3.3]

Spread the love
Editorial Team

View Comments

  • Я использую капчу от Google и очень довольна. Капча эффективно помогает от спама, но я с вами согласна эта гонка никогда не закончится, поэтому нужно использовать последние версии капчи.

Recent Posts

Vue 3.4 Новая механика v-model компонента

Краткий перевод: https://vuejs.org/guide/components/v-model.html Основное использование​ v-model используется для реализации двусторонней привязки в компоненте. Начиная с Vue…

12 месяцев ago

Анонс Vue 3.4

Сегодня мы рады объявить о выпуске Vue 3.4 «🏀 Slam Dunk»! Этот выпуск включает в…

12 месяцев ago

Как принудительно пере-отобразить (re-render) компонент Vue

Vue.js — это универсальный и адаптируемый фреймворк. Благодаря своей отличительной архитектуре и системе реактивности Vue…

2 года ago

Проблемы с установкой сертификата на nginix

Недавно, у меня истек сертификат и пришлось заказывать новый и затем устанавливать на хостинг с…

2 года ago

Введение в JavaScript Temporal API

Каким бы ни было ваше мнение о JavaScript, но всем известно, что работа с датами…

2 года ago

Когда и как выбирать между медиа запросами и контейнерными запросами

Все, кто следит за последними событиями в мире адаптивного дизайна, согласятся, что введение контейнерных запросов…

2 года ago