Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Шаблонное распознавание простейшей капчи, ошибка в шаблоне
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Делаю шаблонное распознавание капчи по этой статье xakep.ru/41033. При сравнение шаблона цифры пять, результата не было. Решил проверить, оказывается шаблон неправильный, хотя всё посчитал вроде правильно, начиная с нуля. Код за меня писать не надо, нужна подсказка. (Полный скрипт ниже)
Там проверяются координаты в бинарной матрице изображения. Если в указанных координатах существуют единицы то цифра определена.
Для составления шаблона, вывел матрицу на экран и посчитал все нужные мне координаты и записал в код для проверки шаблона. Проблема заключается в не определении координат. То есть координаты я посчитал, но при выполнении скрипта выдаёт в тех координатах, которые я посчитал, нули.
Panoptik
Отправлено: 14 Октября, 2014 - 18:44:43
Постоянный участник
Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011 Откуда: Одесса, Украина
Помог: 131 раз(а)
дебаг вам в помощь
var_dump($pixels);
----- Just do it
vasya_228
Отправлено: 14 Октября, 2014 - 21:41:27
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014
Помог: 0 раз(а)
Просмотрел с помощью var_dump'a массив, первые 3 проверяет (если старый код расскомментить), а остальные не хочет. Вывел на прямую,
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
Цитата:
распознавание символов гораздо более сложная задача чем описано в статье.
Я о том же. Конвертнули изображение в ЧБ и давай измерять расположение пикселей.
Сомнительно, что можно получить приемлимый результат с учётом современных каптчей.
FineReader - и тот нормальный крупный текст на однородном фоне распознает с ошибками.
OCR для unix вообще ужасно работает. (Добавление)
Уж лучше тогда, если unix машина, установить какой-нибудь ocr консольный, сохранять картинку, можно обесцвечивать какой-нибудь библиотекой и отдавать на распознание программе (например, cuneiform) через exec или system.
Только регулярочку подправить и curl чтобы сохранял/отправлял куку (Добавление)
Данный шаблон в статье делался под совершенно конкретную каптчу.
Если у вас она хоть чуть-чуть другая, то придется писать новый шаблон.
(Причем готовые решения для простейших случаев есть, на хабре видел пару статей про нейронные сети)
Если просто ради интереса, я бы делал так, наверное. Может, неверно:
Есть цифры 0123456789
Отдельный шаблон отдельно для 147, помимо того принципа в статье, дополнительно проверку на уникальность графических характеристик и применение к каждой цифре, результат в процентоной вероятности. Т.е. нашли по тому шаблону 1, еще раз проверили, что это точно не четвека и не 7.
И т.д.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.