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 :: Шаблонное распознавание простейшей капчи, ошибка в шаблоне

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
vasya_228
Отправлено: 14 Октября, 2014 - 16:10:36
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Делаю шаблонное распознавание капчи по этой статье xakep.ru/41033. При сравнение шаблона цифры пять, результата не было. Решил проверить, оказывается шаблон неправильный, хотя всё посчитал вроде правильно, начиная с нуля. Код за меня писать не надо, нужна подсказка. (Полный скрипт ниже)

Спойлер (Отобразить)

Для распознавания цифры 5 идёт шаблон. (Кусок кода ниже)
PHP:
скопировать код в буфер обмена
  1. if(    
  2.  $pixels[$pX][$pY]==1 &&      
  3.  $pixels[$pX+4][$pY]==1 &&          
  4.  $pixels[$pX][$pY+3]==1 &&      
  5.  $pixels[$pX+4][$pY+4]==1 &&  
  6.  $pixels[$pX+4][$pY+7]==1 &&  
  7.  $pixels[$pX][$pY+8]==1        
  8. )  
  9.  {  
  10.    $symbol_5 = 5;  
  11. }  
  12. else $symbol_5 = "not recognized.";

Там проверяются координаты в бинарной матрице изображения. Если в указанных координатах существуют единицы то цифра определена.
Для составления шаблона, вывел матрицу на экран и посчитал все нужные мне координаты и записал в код для проверки шаблона. Проблема заключается в не определении координат. То есть координаты я посчитал, но при выполнении скрипта выдаёт в тех координатах, которые я посчитал, нули.
 
 Top
Panoptik
Отправлено: 14 Октября, 2014 - 18:44:43
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




дебаг вам в помощь
var_dump($pixels);


-----
Just do it
 
 Top
vasya_228
Отправлено: 14 Октября, 2014 - 21:41:27
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Просмотрел с помощью var_dump'a массив, первые 3 проверяет (если старый код расскомментить), а остальные не хочет. Вывел на прямую,
но выводит 0, хотя в вардамп показывает еденицу.
 
 Top
vasya_228
Отправлено: 27 Октября, 2014 - 19:12:28
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Лол. Писал на 3-х форумах, и никто не пнул. Что делать то? Тутж вроде ничего сложного нет. (а вот для меня загвоздка) Где асы php?
 
 Top
DeepVarvar Супермодератор
Отправлено: 27 Октября, 2014 - 19:33:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




vasya_228 пишет:
Лол
И правда лол - ты видел какого года эта статья? Не? 2007-го. Неактуально.
 
 Top
vasya_228
Отправлено: 27 Октября, 2014 - 20:03:22
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Ну дык пахать то должно, капча проще некуда.
 
 Top
dcc0
Отправлено: 27 Октября, 2014 - 21:35:42
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Вы на алгоритм распознавания внимания обращали?
Т.е. вопрос: вы статью прочитали?

(Отредактировано автором: 27 Октября, 2014 - 21:40:12)



-----
Март 2021. Бросил программирование
 
 Top
vasya_228
Отправлено: 27 Октября, 2014 - 21:42:35
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Да, читал. Алгоритм понял. Моя реализация не пашет.
 
 Top
caballero
Отправлено: 27 Октября, 2014 - 21:57:53
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




распознавание символов гораздо более сложная задача чем описано в статье.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
dcc0
Отправлено: 27 Октября, 2014 - 22:19:28
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Цитата:
распознавание символов гораздо более сложная задача чем описано в статье.

Я о том же. Конвертнули изображение в ЧБ и давай измерять расположение пикселей.
Сомнительно, что можно получить приемлимый результат с учётом современных каптчей.
FineReader - и тот нормальный крупный текст на однородном фоне распознает с ошибками.
OCR для unix вообще ужасно работает.
(Добавление)
Уж лучше тогда, если unix машина, установить какой-нибудь ocr консольный, сохранять картинку, можно обесцвечивать какой-нибудь библиотекой и отдавать на распознание программе (например, cuneiform) через exec или system.

(Отредактировано автором: 27 Октября, 2014 - 22:29:29)



-----
Март 2021. Бросил программирование
 
 Top
dcc0
Отправлено: 27 Октября, 2014 - 22:37:25
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Ну вот.
Эту картинку из статьи gocr распознал так:

(Добавление)
Хотя
gocr -i Image3.gif -o ff -C 0-9
Выдает

С пробелами.
Флаг -С - фильтр, т.е. остается только удалить пробелы регуляркой и можно отправлять
Прикреплено изображение
Image3.gif


-----
Март 2021. Бросил программирование
 
 Top
dcc0
Отправлено: 27 Октября, 2014 - 22:50:02
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




С этой картинкой облом.
______________ __
Прикреплено изображение
Image2.gif


-----
Март 2021. Бросил программирование
 
 Top
vasya_228
Отправлено: 28 Октября, 2014 - 13:16:40
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




То что вы предложили, я ознакомлен с этим. Прост надо было для конкретной простейшей капчи реализовать распознавание. Код же работает, шаблон неверный
 
 Top
Panoptik
Отправлено: 28 Октября, 2014 - 14:17:34
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




обесцвечивание не самая лучшая идея, ибо при правильном подборе цветов, получится однородно серый рисунок


-----
Just do it
 
 Top
dcc0
Отправлено: 28 Октября, 2014 - 14:30:10
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Цитата:
То что вы предложили, я ознакомлен с этим. Прост надо было для конкретной простейшей капчи реализовать распознавание. Код же работает, шаблон неверный


Ну так для простейшей каптчи (как пример для дальнейших поисков), например, для
такой
http://oldbk[dot]ru/registrar/register.php
Почти идеально

Цитата:

<?
shell_exec("wget http://oldbk[dot]ru/sec1.php -O sec1.php.gif");
$var_cap=shell_exec("gocr -i sec1.php.gif -C 0-9");
preg_match_all('/.*(\d).*/',$var_cap, $out);
echo $out[0][0];
?>

Только регулярочку подправить и curl чтобы сохранял/отправлял куку
(Добавление)
Данный шаблон в статье делался под совершенно конкретную каптчу.
Если у вас она хоть чуть-чуть другая, то придется писать новый шаблон.
(Причем готовые решения для простейших случаев есть, на хабре видел пару статей про нейронные сети)

Если просто ради интереса, я бы делал так, наверное. Может, неверно:
Есть цифры 0123456789
Отдельный шаблон отдельно для 147, помимо того принципа в статье, дополнительно проверку на уникальность графических характеристик и применение к каждой цифре, результат в процентоной вероятности. Т.е. нашли по тому шаблону 1, еще раз проверили, что это точно не четвека и не 7.
И т.д.

(Отредактировано автором: 28 Октября, 2014 - 14:44:25)



-----
Март 2021. Бросил программирование
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB