Капча ВК

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Primat6202, 24 Feb 2010.

  1. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    RedFern.89,
    Ну, в связи с нехваткой времени, сначала теоретически напишу, потом кодом подкреплю, насколько это реально.

    Сравнить можно так:

    1. Подготовить знак "Х" (его матрицу).
    2. Затем можно начать сравнение, следующим образом:
    а) изменение "Х" (это может быть выполнено и разворотом, и деформацией)
    б) Оптимизировать под него матрицу.
    в) После каждого изменения мы находим размер матрицы и рендерим эталом в матрицу "Б".
    г) Записываем во временную переменную процент совпадения.
    д) После каждой операции мы записываем наибольшую вероятность в результат, и её (вероятности) соответствие в виде знака.
    е) Берём следующий эталон для сравнения и начинаем всё заново с пункта а, загрузив исходную подготовленную матрицу "Х", соответственно.

    Ну вот, такая вот теория.
     
  2. WanSider

    WanSider New Member

    Joined:
    22 Feb 2010
    Messages:
    21
    Likes Received:
    2
    Reputations:
    5
    Изменений бесчетное количество вариантов. Каждый вариант записать что ли получается? :rolleyes:
     
  3. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    нет. это сожрет всю память, и для сравнения с оригиналом придется сделать цикл на миллион а то и больше)) достаточно записать только основне варианты (a-z, 1-9) и использовать нейронные сети)) там хооть не нужно будет точных данных а хотябы приближенные)) думаю этот вариант полдойддет больше всего)
     
  4. RDL_Rider

    RDL_Rider New Member

    Joined:
    21 Jun 2009
    Messages:
    100
    Likes Received:
    3
    Reputations:
    0
    ...Тем более что грамотно обученная нейросеть даёт ~95-98% верных распознаваний. Проверено и успешно используется :)
     
  5. Fliplab

    Fliplab Elder - Старейшина

    Joined:
    29 Jul 2008
    Messages:
    123
    Likes Received:
    20
    Reputations:
    3
    Ха,вот блин тему раскрутили как,а все началось лишь с банального вопроса:)
     
  6. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    RedFern.89,
    Ну, не знаю, как насчёт сожрёт память - относительно быстро работает, хотя я уже оставил этот метод. Придумал кое-что поновее, верней, зачитался и честно стырил кое-какие идеи, совместив их))

    Точность не потерял, и сами символы теперь меньше, чем за 1 мс определяются. Правда, не совсем стандартным нейро-сетевым способом, но всё-же.

    Теперь я вот думаю о линиях. Сбрутить их чтоли. Просто смотрю я на 7-значные капчи и думаю, что вот ну не подходят тут стандартные приёмы по разделению.

    Попробовал шуровать мысль, замеченную здесь кем-то (градиент слева-направо, справо налево). Ну да, чистит. Токо вот результат оставляет желать лучшего. Лучше таким макаром не чистить, всё-таки.

    Подсчитывать коэффициент взависимости от размеров картинки, и удалять длинные векторы... Тоже не катит. Больно уж высока вероятность потереть что-нить нужное.

    Вариант ещё есть в векторе подсчитывать градус отклонения. И если ловится "следующая" линия - собирать их воедино, а потом делить с резким возрастанием длинны, в зависимости от коэффициента размера картинки. - Вот это я ещё не пробовал, как раз ковыряюсь.

    Однако опять-таки, хорошо б, еслиб траблой были токо лини - я б их уже давно выкорчевал. Однако, слипшиеся символы - тоже вопрос. И если брутить картинку - то и линии не стОит лапать, имхо. Однако, гляжу я тут на эти компьютерные "поэзии" и понимаю, что вероятность брута в капчах 4 символа - может и составит процентов 80. Что при скорости распознования менее, чем в 50 мс даст желаемый результат. Однако, при более сложных вариантах, время возрастёт, а точность - прямопропорционально упадёт. А ведь можно! Выжимать более 80 процентов, независимо от сложности. Это можно сделать решив две основных задачи. Так что, собсне))
    Такие дела)

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

    - Используется, только вот не в целях чтения каптч :-D

    Fliplab?
    Угу, началось с того, что "не вывести каптчу в TImage" было :-D
     
  7. RDL_Rider

    RDL_Rider New Member

    Joined:
    21 Jun 2009
    Messages:
    100
    Likes Received:
    3
    Reputations:
    0
    ..и в этих целях тоже :)
     
  8. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    RDL_Rider,
    Пример встудию! А то теоретически - легко говорить, я пока реализаций нормального уровня не встречал. Все (и нейросетевики) только ахают и охают "ой, ой! проще каптча, чем антикаптча! ПисАть нельзя antigate!"

    ;)
     
  9. RDL_Rider

    RDL_Rider New Member

    Joined:
    21 Jun 2009
    Messages:
    100
    Likes Received:
    3
    Reputations:
    0
    Ну, исходники антикапчи я, конечно же, выкладывать не буду, а простых примеров у меня в данный момент нет - все на сгоревшем венике. Но могу порекомендовать на доработку программу Neuro40 - сам с неё когда-то начинал.
     
  10. dvion

    dvion New Member

    Joined:
    11 Mar 2009
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    RDL_Rider,
    Угу, что ещё предложишь? Файн-ридер? :-D

    Штук, вроде Neuro 40 - у самого написано в своё время много, и всё слишком просто.

    В общем, как я понял, здесь каждый второй пишет алгоритм распознавания каптч - просто выкладывать он, конечно же, его не будет :-D

    ;)
     
    1 person likes this.
  11. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    В общем так. Я щас с телефона. Как приеду в питер, сяду за ноут и обучу нейросеть. Дайте мне алгоритм на разделение символов. Поуй на эти линии. Главное алгоритм. Я займусь опознанием и обучением.
     
  12. StpServer

    StpServer Banned

    Joined:
    21 Jan 2010
    Messages:
    13
    Likes Received:
    17
    Reputations:
    0
    юзай pda.vkontakte.ru там нет капчи