Author Topic: Распознавалка симпл капчи  (Read 23993 times)

0 Members and 1 Guest are viewing this topic.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #15 on: January 22, 2016, 03:53:06 PM »
...
А это оригинальная сборка, там больше примеров
Cap_USDownloader.7z

О, а там образцы в папке CapLettersGP очень похожи на пример из данной темы.


Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #16 on: January 22, 2016, 04:03:12 PM »
...
А это оригинальная сборка, там больше примеров
Cap_USDownloader.7z

О, а там образцы в папке CapLettersGP очень похожи на пример из данной темы.
Действительно. но там все шаблонами)  а мне охота реализовать через контуры)  думаю будет быстрее  работать

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #17 on: January 22, 2016, 04:03:52 PM »
что думаете по этой идее?

Думаю на цифрах с наклоном или поплывшими волнами работать не  будет. Для прямых может быть.

Думаю сразу думать "о всех людях на земле" не нужно. Выбрать для начала определённые ограничения в рамках которых распознавание будет с хорошим результатом.

Потому что... картинки искажаются по разному. гдето контур остаётся непрерывным, а где то будут цифры в виде непропечатанного штампа. Или вот изображу пример... даже прямой и ровный  ;D см. скрины.
И как здесь определять замкнутые контуры или круги как в примере "Браm комара"?


Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #18 on: January 22, 2016, 04:07:34 PM »
Пунктирная капча тоже решается) главное - хороший алгоритм) там интервал между  точками вроде везде  одинаков, а это дает нам фору. по-моему такая капча даже проще

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #19 on: January 22, 2016, 04:19:03 PM »
Пунктирная капча тоже решается) главное - хороший алгоритм) там интервал между  точками вроде везде  одинаков, а это дает нам фору. по-моему такая капча даже проще
Не факт что будет равномерным. Пример штампа.
Я не говорю что решать не надо, говорю что нужно сделать под определённые виды с которыми сможем бороться. Позже можно добавлять другие решения или изменять существующие.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #20 on: January 22, 2016, 04:20:13 PM »
идеяя с контурами перспективная, но я вижу её несколько иначе. Нужно попиксельно разбить изображение цифры на квадраты и проверять соединение этих пикселей между собой.  Грубо говоря учитываться будут повороты неприрывной линии. каждой цифре соответствует примерная длинна такой линии и соотношение поворотов. Алгоритм определения будет не самый простой, но довольно надёжный и универсальный, так как такой способ использует глаз человека, определяя какой знакомый символ перед ним.

Я тоже так думал. А разве имели ввиду другой способ определения контура?


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #21 on: January 22, 2016, 04:24:29 PM »
Вот из проги тоже очень важная мысль про очерёдность проверки
Quote
;Приоритет символов для опознавания, слева - самые значащие. Т.к. многие символы, например I являются составными частями других
PriorityString=0128345679
;разница процентного отношения между символом, могущим быть частью другого


Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #22 on: January 22, 2016, 04:39:24 PM »
капчи вк даже самому порой трудно разобрать))\

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #23 on: January 22, 2016, 04:40:07 PM »
логично сначала проверять на 8, а только потом на 3 и сначала на  7 и 4, а потом на 1 но это при отладке утрясётся, главное  основной принцип распознования, к которому различными методами  видоизменения можно будет сводить разгадываемые картинки.
Да. Тоже заметил на единице. Наверно очерёдность для сравнения с шаблонами такая лучше. А для контуров лучше другая. Но нужна.

по соотношению: ПОПУЛЯРНОСТЬ, СЛОЖНОСТЬ, ДОХОДНОСТЬ имеет смысл ломать капчу ВК. Практически сразу получаем армию постоянных  заказчиков.
И её сразу поменяют на китайскую, про которую я читал в декабре в теме http://habrahabr.ru/post/272857/


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Распознавалка симпл капчи
« Reply #24 on: January 22, 2016, 04:42:15 PM »
капчи вк даже самому порой трудно разобрать))\

Как раз самому нормально разобрать. Ошибки крайне редки.
А вот  reCAPTCHA это АД. Я наверно, в половине случаев неправильно распознаю.


Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #25 on: January 23, 2016, 12:19:18 AM »
Очень интересная статья https://intsystem.org/captcha/kcaptcha-recognition/, когда реализуем алгоритм распознавания -можно выложить нечто подобное, на нашем форуме.
А по теме - нарежу   шаблонов, попробую сравнивать с больши количеством шаблоном.   реализация контура - для меня пока сложная задача

Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #26 on: January 23, 2016, 12:40:33 AM »
я думал про его лабиринт. не дорос пока.   на днях по пробую разобрать его код, и приспособить)

Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #27 on: January 23, 2016, 12:48:11 AM »
А ведь я еще  в конце октября не понимал что означает эта запись for($i=0, $i<5). Здешний форум и упорство   помогли осилить) хотя я уже два раза удалял весь кликер и все наработки..) когда заходил в тупик))

Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #28 on: January 23, 2016, 03:32:10 AM »
Через шаблоны - работает неплохо. но у меня глюк, причину не могу понять.
 находит, но порой бывает  (самое интересное, обрезает все ровно, все цифры   отделяет друг от дружки, а при сравнении-  берет следующую цифру для распознавания). пример на скрине. 0233  - нашел 0, затем  3  не стал искать, нашел вместо нее 2 раза   восьмерку, которая идет позже. самое интересное, что  интервал по иксу - правильный, но   вместо 3, ищет восьмерку.такой косяк  вылезает постоянно. пропуская цифру, и ищет следующую за ней. кстати, сделал 500 шаблонов, ищет на ура. понижая  % совпадения максимум до 95
Code: (clickermann) [Select]
GETSCREEN(610,326, 700, 350)
COLORMODE(8)



for($i=610, $i<702)
   for($i2=326, $i2<350)
      //      arrpush($chist,$i2)
      arrpush($chist2,pxl($i,$i2))
      //  print(pxl($i,$i2))
     
   end_cyc
   
   FOR($a2=0,$a2<arrsize($chist2)) //
      if ($chist2[$a2]=0)
         $nopolosa=$nopolosa+1
         //   print( $nopolosa, "iieina")
         
      end_if
   END_CYC
   
   if ($nopolosa<2)
      arrpush($save,$i)
   end_if
   UNDEFINE($nopolosa)
   UNDEFINE($chist2)
   UNDEFINE($a2)
end_cyc
FOR($a3,$a3<arrsize($save)) //
   print($save[$a3])
   
END_CYC
FOR($a4=0,$a4<arrsize($save)-1) // i
   if ($save[$a4+1]>$save[$a4]+1)
      if ($save[$a4+1]-$save[$a4]>15)
         $e=round(($save[$a4+1]-$save[$a4])/2)
         print("режем")
         WAIT(2)
         
         SCREENSHOTEX($save[$a4],326, $save[$a4]+$e,350, "Image_", 0)
         SCREENSHOTEX($save[$a4]+$e,326, $save[$a4+1],350, "Image_", 0)
      else
         SCREENSHOTEX($save[$a4],326, $save[$a4+1],350, "Image_", 0)
         
         $proc = 100
         if ($t1=0)
            TFReadArr("filelist.txt", $arr )
            $t1=1
         end_if
         While($chek=0)
            for ($lk=0, $lk<arrsize($arr))
               $l= $arr[$lk]
               IF_PICTURE_IN ($save[$a4],326, $save[$a4+1],350, $l, -1, $proc)
print($save[$a4]," у ",326, $save[$a4+1]," кк ",350)
    $kartinka=1
                  $cart=$l
                  $chek=1
                  $lk=2000
                  print($cart," ,йес")
                  WAITms(800)
                  arrpush($carts,$cart)
               else
                  print("не нашел",  $proc)
               end_if
               
            end_cyc
            print("выход с цикла   картинпоиска")
            $lk=0
            if ($kartinka=0)
               inc($proc,-1)
            end_if
         end_cyc
         print("чек больше одного -выход")
         WAIT(1)
         
         $chek=0
         $kartinka=0
         $cart=0
         
         
         
      end_if
   end_if
   
END_CYC
FOR($a99=0,$a99<arrsize($carts)
   print($carts[$a99])
end_cyc
halt




Doda

  • Guest
Re: Распознавалка симпл капчи
« Reply #29 on: January 23, 2016, 03:48:20 AM »
для тройки нужно уменьшить процент совпадения, а для восьмёрки увеличить.
не думаю.  процент - 95-98 везде. на таком не будет путать 3, 8. говорю же, берет следующий элемент. вот как здесь.  проскочил 5,   подумав что это 0, проскочил 4, взяв ее  как 9.  я не думаю что 5 похоже на 0.  говорю же, пропускает число, беря вместо него следующее. хотя диапазон сканирования стоит   нормальный. и режет четко