![]() |
Распознавания элементарных Captcha часть I
Распознавания элементарных CAPTCHA часть I I.Что такое CAPTCHA II.Элементарная CAPTCHA ( beeline.ua )
III.GD модуль ( Perl )
IV.Реализация ( Perl ) I.Что такое CAPTCHA Очень кратко: CAPTCHA (от англ. «Completely Automated Public Turing test to tell Computers and Humans Apart» — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — торговая марка Университет Карнеги — Меллона, компьютерный тест, используемый для того чтобы определить, человек ли использует систему. Термин появился в 2000 году. Основная идея теста: предложить пользователю такую задачу, которую легко решает человек, но которую невозможно (или крайне трудно) научить решать компьютер. В основном это задачи на узнавание образов. wiki(c) http://ru.wikipedia.org/wiki/CAPTCHA II.Элементарная CAPTCHA ( beeline.ua )
'Введите код, указанный на рисунке слева'.Слева указан рисунок с оранжевым фоном и фиксированным размером 50x20. Это значит что высота картинки 20 пикселей, а ширина 50 пикселей. Пиксель (англ. pixel, сокр. от англ. PICture'S ELement, элемент изображения)— мельчайшая единица цифрового изображения в растровой графике. Он представляет собой неделимый объект прямоугольной (обычно квадратной) формы, обладающий определённым цветом. Любое растровое компьютерное изображение состоит из пикселей, расположенных по строкам и столбцам. Если изображение увеличить, вы увидите ряды пикселей. wiki(c)http://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%BA%D1%81%D0%B5%D0%BB Код:
Код:
0 x 3-ка имеет формат 10 пикселей x 8 пикселей . Все остальные цифры имеют точно такой же формат (10х8) Схематически картинка целиком будет выглядеть так: Код:
8 pxl 1 pxl
Код:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 *под активными пикселями подразумевается пиксели, попадающие в объем цифры. Код:
q0 = 36*Под итерацией будем понимать один шаг цикла. Код:
q1 + q0 + q0 +q0 = 27 + 36 + 36 + 36 = 135В данном случае нету никаких помех, позиции цифр неизменны. Поэтому можно выделить характерные активные пиксели для каждой цифры. *под характерными активными пикселями подразумевается наличие 1-го или двух пикселей в объеме цифры . В итого анализа стало известно, что каждую цифру можно описать 1-м или 2-мя пикселями: Код:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Код:
Код:
q1 + q0 + q0 +q0 = 2 + 2 + 2 + 2 = 8 |
III.GD модуль ( Perl )
GD — Библиотека для работы с графикой. для ознакомления можно почитать _http://ru.wikipedia.org/wiki/GD и _http://search.cpan.org/dist/GD/GD.pm Установка Для Active Perl : Код:
C:\>ppm helpКод:
C:\>cpanhttp://forum.vingrad.ru/faq/topic-158272.html IV.Реализация ( Perl ) Проверяем установлен ли GD модульКод:
С:\>perl -e "use GD"Код:
Can't locate GD.pm in @INC ....Код:
#!/usr/bin/perl -wЛентяям качаем пачку картинок _http://www.rapidshare.ru/429980 или _http://fileshare.in.ua/454150 или _http://upload.com.ua/get/899997654 Еcли можно перенесите в раздел 'Наши Статьи' |
отличная статья.. классно оформлена и, что самое главное, интересная тема - сам все хотел поработать в данном направлении (распознование образов), но все руки пока не доходили.. ) буду ждать в продолжении описание более интересных и продвинутых техник распознования каптчи..
p.s. На ActivePerl установить GD можно отсюда: ppm install http://theoryx5.uwinnipeg.ca/ppms/GD.ppd (для версии perl 5.8) ppm install http://theoryx5.uwinnipeg.ca/ppmpackages/GD.ppd (для 5.6) p.p.s. форум кромсанул сорец в районе объявления переменной $y_position - поправьте.. ) |
классное оформление, а вот сама статья об обычном эталонном сравнение с естественной оптимизацией. буду ждать продолжения.
|
оформление порадовало, а алгоритм самый элементарный =/
|
Я дела с распознаванием образов не имел еще, было весьма интересно
|
Цитата:
нейронные сети ммм, я подумаю об этом :) |
Автор молодец. понравилось то как идет рспознавание, подход индивидуальный )
|
А возможно такое на php?
|
РЕСПЕКТ! ;) Для регистрации в каталогах людям, занимающимся оптимизацией и раскруткой сайтов, весьма полезно ;)
|
| Время: 22:54 |