Распознавание через модуль yandexnew

  • Автор темы Автор темы fighter_kit
  • Дата начала Дата начала

fighter_kit

Новичок
Регистрация
13.05.2018
Сообщения
9
Реакции
0
Баллы
1
Приветствую всех!

Столкнулся вот с такой историей: старая новая капча от Яндекса, состоящая из двух слов, содержит порой моменты, когда помимо букв необходимо набирать ещё и другие символы (":", "(", ")", ",", "." и т.п.). Опытным путём было установлено, что эти символы в ответе приходить должны, иначе капча не будет пройдена. Вот, что показывает CM:
soLpxYo.png

Rq8zKmj.png


Как видно из этих скринов, CM прекрасно справляется (ну, почти) с вариантами, где имеются только слова (при этом не важно, на каком языке они написаны), однако с точками, запятыми и двоеточиями это получается ровно никак — эти символы просто вырезаются.

Вопроса тут будет два:
1. Вероятно ли, что дело в запросе, который я отсылаю на сервер? Если да, то где можно раздобыть документацию по составлению запросов при отправке картинок (а то поиски по wiki не дали почти никакого результата; разве что ReCaptcha там описана)?
2. Если дело не в запросах, а в том, что модуль отказывается определять другие символы, то насколько реально доработать модуль до адекватного состояния (думаю, что это понадобится многим в последующем)?
 
Вроде бы должны были дообучить модуль на эти символы, но видимо не получилось.
Если не сложно пришлите образцы таких капч. Нужно много... несколько тысяч.
 
Вроде бы должны были дообучить модуль на эти символы, но видимо не получилось.
Если не сложно пришлите образцы таких капч. Нужно много... несколько тысяч.

Для начала, спасибо, что ответили. Собрать материал абсолютно не сложно. Правда, сбор материала убивает кучу времени, поэтому сейчас закину первую тысячу, остальное пришлю позже.

И да, боюсь показаться немного глупым, но попробую ещё несколько своих наблюдений описать. Пока собирал эту тысячу капч, выявил следующие особенности:
  • В некоторых капчах присутствуют посторонние рисунки, которые обрабатывать вообще не стоит, поскольку на клавиатуре их просто не наберёшь: пятиконечные звёздочки, яблоки, прочая ересь...
  • В части капч могут наблюдаться буквы, которые нужно будет заменить аналогами в латинице: например, мало кому придёт в голову ввести символ "Å", когда есть латинская "A" как аналог;
  • В остальных случаях подставы тоже могут встречаться, но там хотя бы главное слово как-то выделено, поэтому понять, что вводить надо, возможно. Но самый большой прикол был, когда я увидел вот это:
    6uLr90O.png

    Думаю, что здесь всё понятно, но вот кому так повеселиться захотелось, не ясно до сих пор)
  • Местами встречаются в изображениях кавычки разных типов: ", «, и ещё парочка типов.
  • И ещё: даже в выборке 1000 капч заметно, что "половинки" картинок могут повторяться. Не знаю, насколько это может облегчить жизнь, но вдруг...
Вот такие дела! Как и написал ранее, чуть позднее пришлю ещё пару тысяч.
 

Вложения

Приветствую ещё раз! Поскольку никаких новостей по поводу обновления модуля для новых капч Яндекса я пока не нашёл, решить помочь, чем смогу.
Держите архив на 36 тысяч капч (сколько удалось собрать за месяц): https://yadi.sk/d/_9UJwoGc3XnmJh . Надеюсь, это поможет.
 
Сегодня обновили модуль. Процент распознавания примерно 60%.
 
  • Спасибо
Реакции: Sergodjan
Сегодня обновили модуль. Процент распознавания примерно 60%.
Жаль, что только в обновлённой версии я это никак проверить не могу:
upload_2018-7-5_16-23-58.png


Версия 2.10.8.0. Отправляю через POST-запрос с base64. Раньше хотя бы картинку показывало, а теперь как-то не хочет. Есть пути решения?
 
Жаль, что только в обновлённой версии я это никак проверить не могу:
Посмотреть вложение 30678

Версия 2.10.8.0. Отправляю через POST-запрос с base64. Раньше хотя бы картинку показывало, а теперь как-то не хочет. Есть пути решения?
Пришлите образец запроса, посмотрим в чем проблема.
Если отправляете по API сервиса распознавания, то должно проходить.
 
Жаль, что только в обновлённой версии я это никак проверить не могу:
Посмотреть вложение 30678

Версия 2.10.8.0. Отправляю через POST-запрос с base64. Раньше хотя бы картинку показывало, а теперь как-то не хочет. Есть пути решения?
Хочешь отправить картинку? - Плачи 15000 рублей за зеннопостер. Поддержка других софтов сейчас полностью прекращена. Тут сейчас главная проблема неверный токен рекаптчи, а про остальное врятли вспомнят.
 
Пришлите образец запроса, посмотрим в чем проблема.
Скачайте любой другой софт. Отправьте картинку, и вы получите ошибку. У вас что-то поменялось в порядке приема запроса и вы не хотите об этом никому говорить.
 
Хочешь отправить картинку? - Плачи 15000 рублей за зеннопостер. Поддержка других софтов сейчас полностью прекращена. Тут сейчас главная проблема неверный токен рекаптчи, а про остальное врятли вспомнят.
Предупреждаю, что негатив и необоснованная критика запрещены правилами форума.
 
Пользователь что-то придумавает от себя....
fighter_kit, Тоже что-то придумал? Тут вам пачками пишут, что вы поменяли что-то в порядке приёма запроса от других софтов для версии 2.1.8.0, а вы только пытаетесь усмехнуться и сделать вид, что ничего не произошло. Причем для версии 2.1.7.0 работает всё как обычно хорошо.
 
Пришлите образец запроса, посмотрим в чем проблема.
Если отправляете по API сервиса распознавания, то должно проходить.
Как это обычно происходит. Берём код на PHP, опираясь на апишку рукаптчи:
PHP:
Развернуть Свернуть Копировать
        $imageCode = explode(',', $base64);
        $imageCode = $imageCode[1];

        $postData = array(
            'method'    => 'base64',
            'key'       => $apiKey,
            'body'      => $imageCode,
            'phrase'    => $is_phrase,
            'regsense'    => $is_regsense,
            'numeric'    => $is_numeric,
            'min_len'    => $min_len,
            'max_len'    => $max_len,
            'language'    => $language
        );

        # отправляем запрос
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,             "http://$domain/in.php");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,     1);
        curl_setopt($ch, CURLOPT_TIMEOUT,             60);
        curl_setopt($ch, CURLOPT_POST,                 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,         $postData);

        $result = curl_exec($ch);

Здесь: $domain - DNS сервера, куда отправляется запрос; $base64 - исходная картинка, переведённая в код base64 (со всеми "data:image/png;base64,......." и тому подобное), $imageCode здесь оказался нужным, когда я руками вычислил, что КМ нужно отправлять "голый" код base64 без начальных метаданных. Остальные переменные как раз относятся к API rucaptcha, тут много пояснять не стоит. После резалта идёт тупо разбор ответа, это уже не особо интересная часть.

Суть в том, что в ранних версиях с отправкой было всё адекватно (как раз использовал 2.10.7.0 на момент написания первого поста), а сегодня обновился - и такое вот.

Тут вам пачками пишут, что вы поменяли что-то в порядке приёма запроса от других софтов для версии 2.1.8.0, а вы только пытаетесь усмехнуться и сделать вид, что ничего не произошло.
Предлагаю просто реквестировать документацию по конструированию запросов. Особенно, если имеется какой-то отдельный "родной" формат для POST-запросов (тогда не придётся заниматься эмулированием); и я думаю, что большинство вопросов на форуме будет исчерпано.
 
О, пока совсем не забыл; вероятно, это может помочь. Вот, что выдаёт в логах при отправке (для чистоты эксперимента взял тот самый случай из скрина; UPD: случайно указал иное время, всё-таки не один раз пытался "пробить" оборону):
Код:
Развернуть Свернуть Копировать
2018-07-05 16:20:52.7521|MultiNetRecognize Recognize|System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в ZennoLab.Structures.RGBIntMassConverter.YbEhcMPWxcRnZu5e3m(Object )
   в ZennoLab.Structures.RGBIntMassConverter.BitmapToByteArray(Bitmap image, MatrixArrayRePackingFormat rePackingFormat)
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.tT4r5DYHCSpO9EARhBdl(Object , MatrixArrayRePackingFormat )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.mxgAjrZ07Z(Object  )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.hjLACBhiYi(Image  )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.MultiNetRecognize(Image image, CaptchaDescriptor descriptor, Boolean parallelMode, String& error, Int32 threadId)
2018-07-05 16:28:17.2439|MultiNetRecognize Recognize|System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
   в ZennoLab.Structures.RGBIntMassConverter.YbEhcMPWxcRnZu5e3m(Object )
   в ZennoLab.Structures.RGBIntMassConverter.BitmapToByteArray(Bitmap image, MatrixArrayRePackingFormat rePackingFormat)
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.tT4r5DYHCSpO9EARhBdl(Object , MatrixArrayRePackingFormat )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.mxgAjrZ07Z(Object  )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.hjLACBhiYi(Image  )
   в ZennoLab.CapthaService.Modules.RemoteRecognizingModule.MultiNetRecognize(Image image, CaptchaDescriptor descriptor, Boolean parallelMode, String& error, Int32 threadId)
 
Как это обычно происходит. Берём код на PHP, опираясь на апишку рукаптчи:
Суть в том, что в ранних версиях с отправкой было всё адекватно (как раз использовал 2.10.7.0 на момент написания первого поста), а сегодня обновился - и такое вот.
Люди об этом сюда уже 2 недели пишут. Результата 0 и дальше будет также. Сейчас есть проблема намного поважнее и заниматься этой мелочью никто не будет в ближайшее время.
 
Люди об этом сюда уже 2 недели пишут. Результата 0 и дальше будет также. Сейчас есть проблема намного поважнее и заниматься этой мелочью никто не будет в ближайшее время.
Если не прекратите лить негатив, будет наложен рид-онли режим на длительный срок..
В жизни любого софта есть черные и белые полосы, разработчики занимаются текущими проблемами в авральном режиме..
 
Последнее редактирование:
Если не прекратите лить негатив, будет наложен рид-онли режим на длительный срок..
В жизни любого софта есть черные и белые полосы, разработчики занимаются текущими проблемами в авральном режиме..
Хорошо я понял, но ведь можно об этом всем сообщить, а не пытаться сделать вид, что все хорошо и при этом угрожать обычным пользователям каким-то карательными методами?
 
FastSpace, тебе ныть не надоело?
 
Может, чисто картинки в base64 не принимает? Я шлю обычные, все проходит так, как и в прошлых версиях.
 
$base64 - исходная картинка, переведённая в код base64 (со всеми "data:image/png;base64,......." и тому подобное), .
сама картинка должна быть в только в голом коде base64, без - data:image/png;base64,......." и тому подобное
 
сама картинка должна быть в только в голом коде base64, без - data:image/png;base64,......." и тому подобное
Так я и отсекаю это дело: я же отправляю в теле запроса тупо "голый" код base64; для этого в представленном мной фрагменте есть переменная $imageCode, которая и хранит этот самый "голый" код. Так что про то, что картинка должна быть только в "голом" коде, я представляю. Может, ещё что-то не так в запросе?
 
Так я и отсекаю это дело: я же отправляю в теле запроса тупо "голый" код base64; для этого в представленном мной фрагменте есть переменная $imageCode, которая и хранит этот самый "голый" код. Так что про то, что картинка должна быть только в "голом" коде, я представляю. Может, ещё что-то не так в запросе?
Наверное только отснифанный запрос поможет разобраться. Буду показывать программистам.
И если есть возможность отправлять картинку просто в байтах в multpart, то попробуйте этот способ, а не base64.

Upd: и репорт диагностики сделайте пожалуйста, с включенным подробным логом, после воспроизведения ошибки.
 
Так я и отсекаю это дело: я же отправляю в теле запроса тупо "голый" код base64; для этого в представленном мной фрагменте есть переменная $imageCode, которая и хранит этот самый "голый" код. Так что про то, что картинка должна быть только в "голом" коде, я представляю. Может, ещё что-то не так в запросе?
Мы у себя проверяем, вот такой запрос по Апи рукапчи успешно проходит:

<form method="post" action="http://rucaptcha.com/in.php">
<input type="hidden" name="method" value="base64">
Ваш ключ:
<input type="text" name="key" value="YOUR_APIKEY">
Тело файла капчи в формате base64:
<textarea name="body">BASE64_FILE</textarea>
<input type="submit" value="Загрузить и получить ID">
</form>
BASE64_FILE — тело файла капчи в формате base64, именно "голый код", про который я говорил.
 
Мы у себя проверяем, вот такой запрос по Апи рукапчи успешно проходит
Ну, вопрос заключался не в использовании формы, а в запросах через cURL, но я уже разобрался, что нужно было изменить.

Для справки всем присутствующим: приведённый мной выше пример запроса через cURL на PHP отправляет запрос как multipart, а надо было чуть иначе. Для этого нужно было поправить одну строку вот таким образом:
PHP:
Развернуть Свернуть Копировать
curl_setopt($ch, CURLOPT_POSTFIELDS,         http_build_query($postData));

Хорошая новость — картинки начали проявляться, в логах наблюдается. Плохая — проблема со знаками препинания всё ещё осталась нерешённой:
upload_2018-7-6_15-20-43.png
 
Ну, вопрос заключался не в использовании формы, а в запросах через cURL, но я уже разобрался, что нужно было изменить.

Для справки всем присутствующим: приведённый мной выше пример запроса через cURL на PHP отправляет запрос как multipart, а надо было чуть иначе. Для этого нужно было поправить одну строку вот таким образом:
PHP:
Развернуть Свернуть Копировать
curl_setopt($ch, CURLOPT_POSTFIELDS,         http_build_query($postData));

Хорошая новость — картинки начали проявляться, в логах наблюдается. Плохая — проблема со знаками препинания всё ещё осталась нерешённой:
Посмотреть вложение 30694
Т.е. вы отправляли картинку в кодировке base64 в multipart запросе? Это некорректно.
 
Т.е. вы отправляли картинку в кодировке base64 в multipart запросе? Это некорректно.
Это я уже и так понял. Правда, в предыдущих версиях и старый код до внесённых изменений работал исправно, но это уже мелочи. А вот то, что пунктуационные знаки, о которых я говорил, так и не начали появляться, пока что слегка расстраивает (хотя я понимаю, это обучить не так-то уж и просто).
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)