Распознавание простейших капч...

Тема в разделе "PHP", создана пользователем Yus, 22 июл 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Yus

    Yus

    Регистр.:
    12 янв 2008
    Сообщения:
    255
    Симпатии:
    71
    Распознавание простейших каптч...

    Уважаемые программисты, скажите насколько реально обходить простейшие каптчи?!
    Кто-нибудь решал подобную задачу?
    Что-то вроде вот этого типа каптч:
    Перейти по ссылке

    Вот каптчи оригиналы, которые хочу обходить...
    [​IMG] 2.jpg
     
  2. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    >Перейти по ссылке
    ЭТО не простейший каптч.

    Обходятся распознаванием образов на осноее нейронных сетей.
    есть программа самопис на делфи для распознавания отдельных символов. распознавание проводится после обучения сети.
    если кто желает копаться, могу выложить.
     
  3. Piflit

    Piflit Создатель

    Регистр.:
    7 июн 2008
    Сообщения:
    24
    Симпатии:
    4
    sw04 +1, капча, в которой есть любые искажения, даже не повороты, ГОРАЗДО сложнее, чем любая другая. простейшая - это несколько цифр на одноцветном фоне, которые не меняют своей формы и цвета от картинки к картинке.
     
  4. ViD

    ViD Бигбосс

    Регистр.:
    13 апр 2006
    Сообщения:
    221
    Симпатии:
    225
    дайте и мне что ли глянуть, реально интересно.
     
  5. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Для данной капчи не знаю, а если б буквы не налазили друг на друга, то алгоритм на нейронных сетях выглядел бы так:

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

    2) В каждом прямоугольном участке находится один символ, нам надо его распознать. Для этого мы проходим по всем пикселям этого участка, цвет каждого пикселя умножаем на определенное число Wi, и потом все вместе складываем. Это и есть нейронная сеть в простейшем виде. Вопрос только в этих числах Wi, которые называются весовые коэффициенты - и показывают "вклад" каждого пиксела в общую сумму. Нам надо подобрать эти числа так, чтоб итоговая сумма для разных символов капчи всегда попадала в разные диапазоны. То есть если на картинке цифра 1, то как бы она ни была повернута мы должны на выходе получить сумму всех пикселов, к примеру, от 30000 до 40000, а если на картинке цифра 2, то у нас сумма всегда должна попадать в другой диапазон (например от 10000 до 12000).

    Таким образом мы по сумме пикселов всегда гарантрованно определяем символ, изображенный на картинке. Теперь дело за малым - найти все эти весовые коэффициенты, то есть ОБУЧИТЬ нашу нейронную сеть.

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

    Возьмем изначально для каждого пиксела весовой коэффициент равный единице. То есть мы тупо складываем все пиксели на картинке и получаем какое-то число. Даже на данном этапе уже нетрудно заметить, что для восьмерки это число будет получаться всегда больше, чем для единицы, так как в восьмерке больше закрашенных пикселов. Но вот к примеру 8 от 0 отличается не так сильно. Чтоб она попала в "старший" диапазон, нам надо тем пикселам, которые образуют центральную перегородку, придать бОльший вес по сравнению с остальными. Тогда как только на картинке в этом месте оказывается группа закрашенных пикселов - у нас автоматически сумма сильно вырастает, и 8 от 0 мы легко можем отличить. Но проблема в том, что в этой же области находятся и пикселы на цифрах "3" и "5" - соответственно их суммы тоже вырастут. Значит надо калибровать дальше. Посмотрим, сколько сейчас получаются суммы для 3 и для 5. Допустим, получаются примерно одинаковые. Как их отличить? Опять же, придать бОльший вес тем пикселам, которые отличают 3 от 5 (и в идеале от всех других цифр). Ну и так далее.


    При наличии генератора капчей процесс этот полностью автоматизируется - мы сгенерили картинку, подсунули ее сети, сеть нам выдала посчитанное число, мы сравнили с "загаданным" - тем, что рисовали на каптче, подкрутили весовые коэффициенты, вернулись в начало цикла. И так до бесконечности.
     
    Made1, Agler, wal и 8 другим нравится это.
  6. sw04

    sw04 seoplayer

    Регистр.:
    1 дек 2007
    Сообщения:
    601
    Симпатии:
    193
    Исходники.
    Наверника много чего будет не понятно.
    Суть такая. Сначало подаем картинки на распознавание, затем определяем.
    На распознавание подается по 2-8 видоизменения символа(жирный, просто, курсив, etc).
    Создается матрица весов. По ней и будут распознаваться символы.
     

    Вложения:

    • проги.rar
      Размер файла:
      1,3 МБ
      Просмотров:
      410
    denis7656, wal, BoBka_altRUist и ещё 1-му нравится это.
  7. gregzem

    gregzem

    Регистр.:
    21 окт 2007
    Сообщения:
    201
    Симпатии:
    66
    На Unix'ах очень тяжело будет распознать такую капчу своими силами. Я бы даже сказал - нереально. Блур лечится Шарпеном, но вот геометрические искажения вносят существенные трудности в анализ.

    А вот под Win32 есть возможность распознавать несложные капчи - использовать консольный FineReader. На счет последних версий не знаю, но старая версия, типа 4.0 имела в комплекте консольную версию. Ей подсовываем картинку, на выходе получаем текст. Можно запускать в режиме Batch процессинга.
     
  8. Sect0R

    Sect0R Читатель

    Заблокирован
    Регистр.:
    4 апр 2007
    Сообщения:
    136
    Симпатии:
    43
    Вот у меня завалялось 3 алгоритма, можете пользоватся :)
     

    Вложения:

    • 01.png
      01.png
      Размер файла:
      14,6 КБ
      Просмотров:
      138
    • 01.zip
      Размер файла:
      17,5 КБ
      Просмотров:
      461
    • 02.png
      02.png
      Размер файла:
      444 байт
      Просмотров:
      1.333
    • 02.zip
      Размер файла:
      13,6 КБ
      Просмотров:
      377
    • 03.jpg
      03.jpg
      Размер файла:
      2,4 КБ
      Просмотров:
      1.339
    • 03.zip
      Размер файла:
      13,4 КБ
      Просмотров:
      412
    denis7656, Made1, Agler и 17 другим нравится это.
  9. Accountboy

    Accountboy Создатель

    Регистр.:
    18 июл 2008
    Сообщения:
    29
    Симпатии:
    10
    Распознавание такой капчи это совсем не для начинающих задача. Масштаб трагедии написания постера/распознавалки 1:1000. Такие одноцветные деформированные со слиянием капчи считаются сложными - незачто зацепиться при разделении капчи на символы, что есть первый этап любого алгоритма распознавания
    На всяк случай можешь спросить у этого парня - http://www.uaweb.in.ua/guru/3175.html
     
  10. Yus

    Yus

    Регистр.:
    12 янв 2008
    Сообщения:
    255
    Симпатии:
    71
    Я думаю, что какую каптчу бы не поставили, то что я нашел справиться с любыми...
    http://anti-captcha.com/
    Это сервис, в котором твои каптчи вводят люди (каптчи подставляются на дрочерские сайты в автономном режиме, и интегрируются с твоим софтом

    Так что проблем с первой каптчей больше нет.
    Кстати, там дают тестовый акк, если стукнуть админу...и на счет денежку кладут, которой вполне хватит на 1000 каптч введенных;)
     
Статус темы:
Закрыта.