Ну код я показывать не буду, по вполне понятным причинам. А вот демку попробую показать. В общем заходим ЛИНК ПОТЕР, ПОСКОЛЬКУ "САМЫЕ УМНЫЕ" НАЧАЛИ ПАРСИТЬ КАПЧУ И ГРУЗИТЬ МНЕ СЕРВАК В поле вставляем урл капчи: Код (Text): http://image.captchas.net/?client=wordtracker&random=35qh3s7debl&alphabet=abcdefghkmnopqrstuvwxyz&letters=4 ВАЖНО: в этом линке можно (и нужно) менять параметр random, чтобы выводились разные капчи, но НЕ надо менять alphabet и num, потому что распознавалка заточена на 4 символа и этот алфавит (капча, используемая на вордтрекере). Распознавание само-собой не 100%, хуже всего распознаются символы "a" и "e". Если интересно, могу в общих чертах рассказать алгоритм (в данном случае алгоритмы, поскольку самое трудное было выделить символы из этой мешанины пикселей), по которому работает данный скрипт.
Ты лучше посчитай отношение успешного распознавания к неуспешному на разных капчах с большой выборкой Вобще там в среднем 1:3 - 1:5 (в СРЕДНЕМ!). Уж поверь, я пока писал этот модуль столько капчей распознал, что и не представить. И вобще сам попробуй хотя бы символы нормально выделить из этой капчи с помощью GD функций, а потом критикуй
Итак, по поводу алгоритма: В данном случае (см. выше демо), основной трудностью было выделить сами символы, причем выделить как однородные области (контуры), без шума и артефактов. Поскольку сам алгоритм распознавания оперирует массивом "рабочих" пикселей и "пустых", то главной задачей было привести капчу к именно такому виду, без лишних деталей. Оригинальная капча и результат предварительной обработки: Подобный результат был достигнут путем множества преобразований и манипуляций с исходным изображением. Там и различные фильтры, и imageconvolution с матрицей преобразования, ну конечно основной алгоритм нахождения "контуров" - т.е. частей картинки в виде областей, все пиксели которой установлены в 1. А прилегающими пиксели могут считатся как по горизонтали-вертикали так и по диагонали (настраиваемый параметр). Ну и конечно этот алгоритм работает уже не с исходным изображением, а с результатом всех предыдущих преобразований - удаление шума, разные микро-алгоритмы твикалки, для улучшения вида символов; резкость-четкость и т.п. Соответственно после работы данной функции, отсекаются все "контуры" (или "фигуры", не знаю как точнее назвать), общее количество точек в которых меньше пороговой величины, а далее контуры сортируются по координате Х, чтобы был ясен порядок символов. И в итоге у нас остается набор букв, с которыми уже можно работать. Ну а дальше создается относительно большая база этих символов и соответствий их буквам, во внутреннем формате скрипта (обычно приходится забивать руками базу, но с данной капчей получилось это автоматизировать - посмотрите на урл капчи в предыдущих сообщениях и поймёте как и почему). Сам же алгоритм распознавания в основе своей примитивен - это обычное сравнение. Но само-собой все не так просто. Иначе, с учетом неровности символов, с учетом различных углов и погрешностей предварительной обработки, база для успешного распознавания должна была быть очень большой, а время распознавания увеличилось бы до нереальных значений. Я не буду в точности описывать алгоритм, в нем нет ничего сложного, но все-таки это результат многих экпериментов и, в чем-то, мое личное "ноу-хау". Скажу лишь, что он учитывает: - размеры символов (ширина-высота) и их различие - количество точек в символе (не нулевых значений) - толщину символов (тоже был написан свой алгоритм расчета) И к этому всему применяется особый набор правил сравнения и математ. операций, который был вычислен в основном эмпирическим путем. В результате получаем: - большую скорость распознавания, почти независимую от размера базы (в демке медленно грузится сама картинка с сервера, где расположена капча, а распознавание - быстрое) - небольшой размер базы требуемый для точного результата (сугубо индивидуально для каждой капчи) В принципе - ничего особо сложного, но результат налицо
Нашел тут финтифлюшки http://www.nt.uni-saarland.de/projects/ ... tion.shtml http://demiurg.livejournal.com/70914.html
Да, умно сделали, но люди с небольшим IQ не понимают, почему у них не влазит 5 цифра, а раньше влазила, читать пояснение на английском никто не хочет. Уже 2 раза слышал, что "рапида сломалась, посмотри сам... 5 цифра не влазит!!"
http://sergey89.net/trash/captcha/test1.php http://sergey89.net/trash/captcha/test2.php что скажете про такой простой вариант?
Прищурился, поднял пальцем веко правого глаза, трагическим взглядом посмотрел на картинку, увидел почти все цифры Попроще бы, чтобы только прищуриться.
Sergey89 Да нет, видно отлично, непривычно просто как-то, с первого раза люди не знают, что у 1 есть плацдарм снизу и короткий носик, а у 7 нету плацдарма и нос длиннее. Стоит 1 раз отгадать проблемные символы (увидеть четко) и все отложится в мозге Лично я не мог понять, 1 или 7 там с 1 раза.
Посмотрел последнюю каптчу.. Уж очень на грани между "вижу чётко" и "а вдруг это не 8, а 6?". Из 10 просмотренных каптч я кажется отгадал все, но чувство, что обязательно высветится такая, которую я не смогу понять - осталось. Но, имхо, оно того стоит, если эту каптчу не сможет бот распознать.
Считаю, что название темы попало в самую точку, и если бот еще не может распознать какие-то каптчи, то эти каптчи читаются человеком уже с трудом, а боты... они и этому научатся, чтоб им не ладно было. Так что, ИМХО, нужна альтернатива, нужна уже завтра, следовательно реализовывать сегодня