Как обучать свою нейросеть на простых графических капчах без лишнего мусора и переобучения
Для простых CAPTCHA обычно хватает маленькой CNN, если не тащить в датасет шум, обрезки и редкие артефакты. Ключ не в размере модели, а в чистой разметке: один символ — одна метка, одинаковый размер входа, стабильный контраст. Если капча многоцветная, сначала приводим её к серому, потом выравниваем яркость и режем фон.
Дальше работает типовой пайплайн:
— генерация или сбор синтетики с теми же шрифтами и искажениями;
— аугментации, но без фанатизма: сдвиг, поворот, небольшое размытие;
— баланс классов, чтобы редкие символы не проваливались в ноль;
— раздельные выборки train/val/test, иначе метрика будет врать.
Если капча состоит из нескольких символов, удобнее решать задачу двумя этапами: сначала сегментация, потом классификация каждого фрагмента. Для плотных искажений сегментация часто ломается, тогда проще учить модель на sequence-to-sequence или CTC, но для “простых” капч это обычно избыточно. На практике выигрывает не самая умная архитектура, а предсказуемый препроцессинг и одинаковая длина строки на входе.
Снижаем косты на распознавание: сначала добейтесь стабильной точности на чистом тесте, потом проверяйте на “грязных” примерах. Если модель начинает путать пары вроде O/0 или I/l, добавляйте именно такие примеры в обучение, а не увеличивайте сеть.
Анти-капча стек
@anti_captcha_stack_ubt
Как обучать свою нейросеть на простых графических капчах без лишнего мусора и переобучения
Этот пост опубликован в Telegram-канале Анти-капча стек. Подписаться можно по ссылке: @anti_captcha_stack_ubt.