[Python, Обработка изображений, Машинное обучение] Сервис распознавания капч, который больше не нужен
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Я уже рассказывал про свой опыт в области распознавания капчи. Разумеется, кроме чисто академического интереса у меня был и материальный - иногда приходится скачивать несколько файлов с обменника, а ждать паузу и вводить капчи я не люблю. Поэтому и пользуюсь программой для закачек под названием Universal Share Downloader, или сокращённо USD. Недавно сервис обмена файлами Turbobit в очередной раз внёс изменения в свой сайт, в результате чего моя программа оказалась бесполезной. Теперь я могу рассказать о сервисе распознавания поподробнее, уже не опасаясь приблизить этот момент. Может, рост числа бесплатных скачиваний в результате использования сервиса уже повлиял. Или это просто традиционная июньская пакость от обменника - то капчу поменяют, то скорость скачивания урежут.
Ну как так то?У USD есть активное сообщество, в котором разрабатываются и распространяются плагины для поддержки различных файлообменников. Там я выкладывал свою программу для распознавания капчи, чтобы облегчить процесс скачивания всем желающим. Версии с Тессерактом, потом с нейросетью и окончательный вариант - с использованием веб-сервиса на Heroku. Капча представляла собой довольно известную в прошлом Kohana, сейчас такая больше нигде не используется и спамерам неинтересна. Отправка файла осуществлялась РОST запросом. Экспериментальная клиентская часть была написана на Пайтоне, потом для сокращения размера и помещения в сборку я переписал её на AutoIt. Это вызвало проблемы с защитником в Windows 10 - он не оценил идею отправлять файлы куда-то в интернет (а может, совпали какие-нибудь сигнатуры) и стал её блокировать. И тут меня осенило: лучшая программа - это её отсутствие. Я связался с разработчиком плагина и предложил поместить отправку файла на распознавание прямо в плагин Турбобита. Правда, для этого пришлось добавить в сервис возможность приёма файлов в виде Base64 текста.Технически сервис представлял собой Flask приложение на Heroku, распознавание с помощью Keras и Tensorflow. Мне удалось уложиться в ограничения бесплатного использования - потребление дискового пространства составило 430 Мб. В самом начале принимались файлы, по которым можно было судить о номере попытки - в случае неудачи следующий файл шёл с другим именем. Я пытался вести статистику, но периодически прилетали серии с не зависящими от очерёдности именами - возможно, кто-то использовал сервис для разметки своих файлов. С отправкой капч в виде Base64 имена файлов стали недоступны, и я стал просто считать капчи. Сохранение файлов реализовал следующим образом: картинка и результат добавляются в словарь, при достижении нужного количества в памяти создается zip архив и капчи переносятся туда с добавлением к имени метки времени, затем архив отправляется на хранение. Бесплатный сервис на Heroku автоматически перезапускается примерно раз в сутки или при бездействии в течение 30 минут. При таком подходе часть капч теряется в случае перезапуска сервиса, но задачи сохранить абсолютно всё и не ставилось. Потом добавил возможность просмотра последней распознанной картинки. Правда, из-за того что страница с текстом и картинка запрашивались не одновременно, иногда можно было увидеть капчу, совсем не соответствующую тексту. Решил не исправлять, всё равно кроме меня никто эту страницу не смотрит. В какой-то момент добавил возможность просмотра собственного IP адреса - почему бы и нет, когда уже есть постоянно работающий сервис?
Два варианта интерфейса для отладкиСервис проработал около 8 месяцев, количество распознаваемых файлов за сутки колебалось от полутора до трех тысяч, были всплески до шести. Тренировал нейросеть несколько раз на 15000 файлах, последний раз в январе с учетом 250 обнаруженных за месяц ошибок. Логи я не сохранял, сами файлы в целях контроля точности можно было паковать в архивы и отправлять на Cloudinary. Включал сохранение два раза на пару месяцев, теперь у меня есть полтора гигабайта распознанных капч - чуть более 300 тысяч файлов. Судя по сохраняемым именам, явных ошибок там всего 13 штук, неявных при выборочном просмотре обнаружить не удалось. По-моему, неплохая точность распознавания, сам такого не ожидал.
Обнаруженные ошибки распознаванияКод программы доступен на GitHub, настройки Heroku и ключи авторизации Cloudinary передаются через переменные окружения.
===========
Источник:
habr.com
===========
Похожие новости:
- [Искусственный интеллект, Игры и игровые приставки] Мод Witcher 3 использует сгенерированную нейросетью озвучку
- [Облачные вычисления, Машинное обучение] MLflow в облаке. Простой и быстрый способ вывести ML-модели в продакшен
- [Машинное обучение, Искусственный интеллект] Чат-бот для отзывов из Google Play. Опыт QuData
- [Машинное обучение, Искусственный интеллект] Исследователи предсказывают связь между млекопитающими и вирусами при помощи машинного обучения
- [Python, Семантика, Программирование, Машинное обучение, Natural Language Processing] Перефразирование русских текстов: корпуса, модели, метрики
- [Python, Программирование, Проектирование и рефакторинг] Python: неочевидное в очевидном
- [Python, Big Data, Машинное обучение] ML-обработка результатов голосований Госдумы (2016-2021)
- [Python, Программирование, Работа с 3D-графикой, Машинное обучение] Пристальный взгляд на код из лучшего доклада конференции по компьютерному зрению и распознаванию образов 2021 — GIRAFFE (перевод)
- [Python, MongoDB, Голосовые интерфейсы] Голосовой дневник на python с распознаванием голоса и сохранением в Mongo DB
- [] Вебинар «Анализ данных проще с ITMO FS»
Теги для поиска: #_python, #_obrabotka_izobrazhenij (Обработка изображений), #_mashinnoe_obuchenie (Машинное обучение), #_captcha, #_python, #_ocr, #_neural_networks, #_algoritmy (алгоритмы), #_nejroseti (нейросети), #_raspoznavanie_teksta (распознавание текста), #_kapcha (капча), #_python, #_obrabotka_izobrazhenij (
Обработка изображений
), #_mashinnoe_obuchenie (
Машинное обучение
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:36
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Я уже рассказывал про свой опыт в области распознавания капчи. Разумеется, кроме чисто академического интереса у меня был и материальный - иногда приходится скачивать несколько файлов с обменника, а ждать паузу и вводить капчи я не люблю. Поэтому и пользуюсь программой для закачек под названием Universal Share Downloader, или сокращённо USD. Недавно сервис обмена файлами Turbobit в очередной раз внёс изменения в свой сайт, в результате чего моя программа оказалась бесполезной. Теперь я могу рассказать о сервисе распознавания поподробнее, уже не опасаясь приблизить этот момент. Может, рост числа бесплатных скачиваний в результате использования сервиса уже повлиял. Или это просто традиционная июньская пакость от обменника - то капчу поменяют, то скорость скачивания урежут. Ну как так то?У USD есть активное сообщество, в котором разрабатываются и распространяются плагины для поддержки различных файлообменников. Там я выкладывал свою программу для распознавания капчи, чтобы облегчить процесс скачивания всем желающим. Версии с Тессерактом, потом с нейросетью и окончательный вариант - с использованием веб-сервиса на Heroku. Капча представляла собой довольно известную в прошлом Kohana, сейчас такая больше нигде не используется и спамерам неинтересна. Отправка файла осуществлялась РОST запросом. Экспериментальная клиентская часть была написана на Пайтоне, потом для сокращения размера и помещения в сборку я переписал её на AutoIt. Это вызвало проблемы с защитником в Windows 10 - он не оценил идею отправлять файлы куда-то в интернет (а может, совпали какие-нибудь сигнатуры) и стал её блокировать. И тут меня осенило: лучшая программа - это её отсутствие. Я связался с разработчиком плагина и предложил поместить отправку файла на распознавание прямо в плагин Турбобита. Правда, для этого пришлось добавить в сервис возможность приёма файлов в виде Base64 текста.Технически сервис представлял собой Flask приложение на Heroku, распознавание с помощью Keras и Tensorflow. Мне удалось уложиться в ограничения бесплатного использования - потребление дискового пространства составило 430 Мб. В самом начале принимались файлы, по которым можно было судить о номере попытки - в случае неудачи следующий файл шёл с другим именем. Я пытался вести статистику, но периодически прилетали серии с не зависящими от очерёдности именами - возможно, кто-то использовал сервис для разметки своих файлов. С отправкой капч в виде Base64 имена файлов стали недоступны, и я стал просто считать капчи. Сохранение файлов реализовал следующим образом: картинка и результат добавляются в словарь, при достижении нужного количества в памяти создается zip архив и капчи переносятся туда с добавлением к имени метки времени, затем архив отправляется на хранение. Бесплатный сервис на Heroku автоматически перезапускается примерно раз в сутки или при бездействии в течение 30 минут. При таком подходе часть капч теряется в случае перезапуска сервиса, но задачи сохранить абсолютно всё и не ставилось. Потом добавил возможность просмотра последней распознанной картинки. Правда, из-за того что страница с текстом и картинка запрашивались не одновременно, иногда можно было увидеть капчу, совсем не соответствующую тексту. Решил не исправлять, всё равно кроме меня никто эту страницу не смотрит. В какой-то момент добавил возможность просмотра собственного IP адреса - почему бы и нет, когда уже есть постоянно работающий сервис? Два варианта интерфейса для отладкиСервис проработал около 8 месяцев, количество распознаваемых файлов за сутки колебалось от полутора до трех тысяч, были всплески до шести. Тренировал нейросеть несколько раз на 15000 файлах, последний раз в январе с учетом 250 обнаруженных за месяц ошибок. Логи я не сохранял, сами файлы в целях контроля точности можно было паковать в архивы и отправлять на Cloudinary. Включал сохранение два раза на пару месяцев, теперь у меня есть полтора гигабайта распознанных капч - чуть более 300 тысяч файлов. Судя по сохраняемым именам, явных ошибок там всего 13 штук, неявных при выборочном просмотре обнаружить не удалось. По-моему, неплохая точность распознавания, сам такого не ожидал. Обнаруженные ошибки распознаванияКод программы доступен на GitHub, настройки Heroku и ключи авторизации Cloudinary передаются через переменные окружения. =========== Источник: habr.com =========== Похожие новости:
Обработка изображений ), #_mashinnoe_obuchenie ( Машинное обучение ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 07:36
Часовой пояс: UTC + 5