Распознание капчи[Delphi]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Rastamanka, 30 Aug 2012.

  1. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Добрый день.
    Подскажите как распознать данный вид капчи
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Пробую преобразую сначала в негатив. Потом повышаю резкость и перевожу в чб.
    Получается вот такие
    [​IMG]
    [​IMG]
    [​IMG]

    Подскажите что делать дальше для распознавания капчи?

    Так понимаю что надо перевести в один диапазон цветов чтобы фон был белый а цифры черные. Но вот если изначально фон темный то потом он получается светлый и наоборот. С этим думаю как нибудь разберусь а вот как дальше распознать?
     
  2. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    http://grabberz.com/showthread.php?t=32245
     
  3. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Боюсь это не то) Больно просто там никакого искажения. Никакого шума. Никаких изменений наклона цифр...
     
  4. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Искажения как раз там еще большие, но используется сторонний сервис. В вашем случае лучше почитать принцип распознавания, который у вас в лс.
     
    _________________________
  5. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Мне кажется вы не капли не разобрались что там.
    Первое там никакого искажения. ReCaptcha там заполнено вручную. А распознается только текст в самом низу.
    Именно по этому там предлагают систему сравнения с оттисками))
    Для ReCaptcha таких оттисков надо делать не сколько сотен гигов для одной только буквы.
     
  6. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Rastamanka судя по вашим картинкам я вижу только наклон, никакого искажения нет.
     
    _________________________
  7. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Шум есть и неплохой. От которого изначально надо полностью избавиться, и потом уже только начинать сравнивать по шаблону.
    Но в том примере явно ничего такого нет. И как по мне там можно было бы проще сделать. Разрезаем картинку на составные и по каждой берем средний цвет. И по нему уже определяем что там)
     
  8. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    С дельфи меня ничего не связывает, но на php можно что-нибудь придумать.
    Для начала нужно выделить самые тёмные пиксели, исключить полосы по краям и пройтись эталоном используя наклон.
     
    _________________________
  9. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Не откажусь от решения на php
     
  10. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    А зачем переводить в ч.б.? Лучше сразу в двухцветное. Что-то наподобие такого:[​IMG]
    Большой плюс этой капчи, то что цифры не пересекаются и их количество постоянно.
     
    #10 2echnoman, 30 Aug 2012
    Last edited: 30 Aug 2012
  11. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Нейронные сети вас уже ждут.
     
  12. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите как у вас получилось? Я добился только вот этого
    [​IMG]

    У вас более яркая картинка.
     
  13. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Подскажите в итоге имею 2 точки по ширине с которых надо обрезать часть картинки.
    pix_a = 10
    pix_b = 21

    пробую так
    in_img.Canvas.CopyRect(Rect(0,0,pix_b-pix_a,in_img.Height),in_img.Canvas,Rect(pix_a,0,pix_b-pix_a,in_img.Height));

    но выходит непонятно что
     
  14. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    in_img.Canvas.CopyRect(Rect(0,0,pix_b-pix_a,in_img.Height),in_img.Canvas,Rect(pix_a,0,pix_b,in_img.Height));
    Во время выполнения этого куска возникает ошибка?
     
  15. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Эта проблема решена. Осталась единственная проблема.
    Т.к. нету полноценного очертания у каждой вырезанной цифры и каждая цифра нарисована под разными углами. То количество белых и черных пикселей у некоторых картинок одинаково.

    Как дальше быть? Как сравнивать то картинки?
     
  16. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    В общем получилось преобразовать картинку вот в такой текст.

    Code:
         X         
         XXXX      
        XXXXXXXX   
        XX    XXXX 
        XX         
       XX          
       XX          
      XXXXXXX      
      XXXXXXXX     
            XXX    
              XX   
              XX   
              XX   
    XX        XX   
    XX        XX   
     XX       XX   
      XXX    XX    
      XXXXXXXX     
        XXXX
    Кто знает как теперь его преобразовать в цифру ? :) Такой текст почти всегда под углом
     
  17. 2echnoman

    2echnoman New Member

    Joined:
    3 Jul 2012
    Messages:
    54
    Likes Received:
    0
    Reputations:
    0
    Используйте ИНС. Хотя лучше сначала провести обратный поворот символов, а затем инс.
    PS: Есть библиотека компонентов реализующая многослоюную нейронную сеть - NeuralBase.
     
    #17 2echnoman, 2 Sep 2012
    Last edited: 2 Sep 2012
  18. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Это конечно все хорошо. Я его поставил.
    Но вот как им пользоваться? Как вообще это дело обучать я если честно не понимаю :(

    Можете хоть минимальный пример привести?

    Демо конечно я их открывал. Но понятнее если честно мне от этого не стало.

    Кстати очень хорошо определяет уже существующие шаблоны что я сделал Kamos из IrfanView.

    Очень прощу помощи по данной теме.
     
    #18 Rastamanka, 3 Sep 2012
    Last edited: 3 Sep 2012
  19. Duskly

    Duskly Banned

    Joined:
    5 Jan 2012
    Messages:
    68
    Likes Received:
    2
    Reputations:
    -5
    http://www.vans-soft.ru/2012/01/antigatecom.html
     
  20. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Нет это не выход. Надо именно самому а не используя сторонние сервисы.