http://captcha.su/
Mikhail Suvorov
ноябрь 2015.
457

Есть ли "роботы", которые могут прочитать "капчу", и что мешает создать такую программу?

Ответить
Ответить
Комментировать
0
Подписаться
4
3 ответа
Поделиться
АВТОР ВОПРОСА ОДОБРИЛ ЭТОТ ОТВЕТ

Сначала очень упрощенно о том, как вообще работают системы распознавания готовых текстов (распознание текстов в процессе написания -- другая задача).

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

На небольшом фрагменте текста программа пытается сравнивать полученный текст со словарями и уточнять результаты, потом обрабатывать текст полностью получив уточнения шаблонов.

Если качество печати низкое, то отличий от шаблонов будет слишком много. В этом случае программа пытается распознать структуру символа и сравнить её со структурами описанными в базе. Структура описывается как граф (объекты представляются как вершины, или узлы графа, а связи — как дуги, или рёбра). wikipedia.org)

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

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

Да, как написали другие авторы, некоторые капчи всё-таки взламывают. Но эти взломы основываются на недочётах реализации капчи. Примеры: intsystem.org intsystem.org Ошибки реализации взломанных систем очевидны. Одинаковый мусор, одинаковый текст и тому подобное.

Также рекомендую почитать про ReCAPTCHA wikipedia.org Это интересная штука. Только вчера я думал о том, как много книг (на примере вопроса здесь по истории астрономии), очень интересных книг, остаются неоцифрованными, а предлагаются к чтению в формате картинок. Оцифровка -- очень трудный процесс, требует много ресурсов и человеческого участия. Гугл придумал как подключить к этому людей не сильно их обременяя ))

ps Кстати, вот небольшой текст по распознаванию на хабрахабр habrahabr.ru

3
-1

Я вот почитал чего: habrahabr.ru и как бы понятно, что человек делал. Но я попробовал (чисто для себя) локализовать вопрос. Это не вопрос Вам никакой, а так, мои "концептуальные рассуждения" на тему - можно ли научить компьютер работать так же, как человеческий ум. А как распознаёт текст файн-ридер, это понятно - там сравнение с набором стандартов (шрифтов)... Ну да ладно.

Словом, как научить компьютер сделать вот чего. Картинку я тут не могу поставить, так что "на словах". Представьте, я чёрным фломастером на белом фоне (специально упрощаю) напишу три цифры, допустим 4, 8 и 2 (но это всё равно - какие). Но я напишу их так, что они будут накладываться друг на друга, как бы крест-на-крест пересекаться - так что это будет сплошная такая "ломаная", когда границ никаких между этими тремя объектами нет. Вот, надеюсь не сложно представить, что я имею в виду(?).

И пусть программа ("робот") даже ожидает, что там именно какие-то цифры (из десяти возможных) и что их - именно три. Прежде чем их распознать - это дело как раз пустяковое, даже если они не шрифт, сопоставить и найти "похожее" с чем то в "базе" её научить можно, - прежде чем распознать, её нужно эту "абракадабру" разделить на три объекта. Границ нет, вся картинка чёрно-белая.

Так вот. Я, человек, разделю абракадабру на три объекта - на основании того, что уже вижу в ней три цифры (и даже уже вижу - какие это цифры). А компьютеру нужно - сначала разделить на три объекта, а уж потом он сможет сказать, что они есть такое - три цифры 4 8 2. Понимаете, получаются действия диаметрально противоположной направленности: то, что человеческий ум использует в качестве критерия для разделения - уже узнанные цифры, то - является конечной целью для "робота". А у робота просто нет критерия для различения - я думаю, что для него это не возможно в принципе.

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

0
Ответить

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

Вообще-то, надо про нейронные сети почитать (машинные). Не соберусь на примере каком-то разобраться. По идее они именно на распознавание образов и нужны.

0
Ответить

В той ссылке, которая у меня, там тоже про нейронные сети, и ссылка специальная - прям на код, что ли. Но я тоже не смотрел дальше, туда. Но вот, как-то "обобщил" теперь, более-менее понятно теперь самому, в какую "сторону" смотреть. А нейронные сети - там про самообучаемость как-то. Доберусь как-нибудь.

А! Я вот тут оставил у себя "под рукой" свой этот камент и кракозябру изобразил для понятности. Так, на всякий случай. facebook.com

0
Ответить
Прокомментировать

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

2
-2

Где код такого "робота" можно посмотреть? Пусть, для "расшифровывания" самой простой капчи - картинки, допустим, с одной как-то там "исковерканной" (но узнаваемой человеком, естественно) буквы или цифры.

Ну, или в двух словах принцип такого "расшифровываия" (я пойму, я немного про это знаю).

0
Ответить
Прокомментировать

DeathByCaptcha, De-Captcher и многие другие. Обычно подобные сервисы дают доступ к своему API, что обычно многим нужно. Сам пользуюсь первым и крайне доволен. Дёшево и эффективно.

0
-1
Прокомментировать
Ответить