Разбор простой каптчи.

14. February 2010

Алгоритм разбора простой каптчи.

Хочу поделиться своим алгоритмом разбора капчи.

Далее скриншоты, видео и исходные коды на C#

 

Задача.

Задача программы: распознать символы на картинках такого рода:

 

 

Решение.

Так как картинки всегда разного цвета и одного размера, то задача сильно упращается. Для распознавания символы будет удобно разделить по цвету и сравнить с маской.

Алгоритм.

Программа просматривает все входящее ихображение и находит площади фигур.

Выбирает цвета, которые встречаются чаще всего.

Разрывает цифры друг от друга

Сравнивает с маской и выбирает какая из масок подходит больше.

Маски.

Видео.

Вывод.

Программа распознает нужную капчу с вероятностью ~90%.

Алгоритм устойчив к трансформации символов в небольших пределах.

Улучшить показатели можно путем: тщательной прорисовки масок; добавления новых масок для искаженных символов  или, иначе, создания базы масок сопоставления.

 

P.S. Такая каптча используется на довольно посещаемом сайте для защиты от разного рода накруток.

Исходный код (ASP.net форма)

WMCaptcha.zip (17,50 kb)

Компьютерная графика, JonyRock, .NET , , ,

Comments

2/16/2010 11:27:29 PM #
Ты как всегда крут! Я все же думаю мы с тобой распознаем задуманную нами другую каптчу. Wink Ну ты понял о чем я! И обязательно на Python!

Скажи, пожалуйста, а чем именно ты записываешь скринкасты? Там на vimeo определенный лимит в неделю, я правильно понял? Так что особо много скринкастов не позакачиваешь, да?
2/17/2010 10:41:32 AM #
Наша затея у меня сидит в голове Smile
Скринкасты записываю на CamStudio (там в видео можно увидеть на панели внизу ее свернутое окошко), кстати openSourse софт.
На vimeo правила очень просты: You have a weekly limit of 500.00MB and 1 HD video per week. Сейчас там храняться 2-месячные видео.
Думаю хватит места что бы записывать видео 5 раз в неделю по 20 минут.