Это реальная реализация CNN на Python 3, Keras и TensorFlow. Мы работаем в два основных этапа, используя Preprocess.py
, который создает изображения цифр без артефактов, которые позже передаются в модель CNN в train.py
, который обучает и сохраняет модель CNN.
Этот решатель капчи был разработан для использования и в настоящее время используется в metu-NTE-scraper, чтобы обойти защиту капчи студенческого портала METU для проверки мощности курса https://student.metu.edu.tr/. Но вы можете использовать его в своем приложении, выполнив простые действия, которые описаны в разделе «Как его использовать?». раздел.
Я обучил CNN с помощью TensorFlow классифицировать изображения цифр капчи после извлечения цифр. Модель состоит из двух сверточных слоев и слоев пула, за которыми следует полностью связный слой. Я обучил модель на наборе данных из 10 000 изображений с капчами, которые позже были разделены на изображения по 60 000 цифр, и достиг точности теста 99,94% на тестовом наборе изображений из 12 000 цифр.
Точность обучения и тестирования модели составляет:
Примечание. Некоторые изображения реакций активационных нейронов можно увидеть под 4 этапами предварительной обработки.
predict.py
в вашу программу Python: Import predict
predict_captcha
используя путь к файлу изображения капчи в качестве единственного аргумента для прогнозирования капчи. filepath="pathtocaptchaimage"
prediction=predict.predict_captcha(filepath)
Чтобы помочь вам понять экстрактор цифр и модель, мы показываем вам их шаги в наглядном виде.
Preprocess.py
работает в 4 этапа для создания цифровых изображений, которые показаны ниже, с активациями модели в конце.
На первом этапе мы очищаем артефакты изображений капчи, собранных с помощью SampleCollecter.py
Исходное изображение | После удаления артефакта |
---|---|
Позже изображение без артефактов обрезается, чтобы ограничить цифры капчи.
После удаления артефакта | Обрезано |
---|---|
Затем взвешенное K-среднее используется для нахождения центров каждой цифры.
Обрезано | Центроиды |
---|---|
Наконец, мы создаем изображения цифр, используя центроиды, найденные из k-средних.
Центроиды | Цифры |
---|---|
После извлечения цифр. Модель CNN используется для прогнозирования изображений капчи. Здесь генерируются нейроны активации для последнего сверточного слоя CNN. Эти изображения были созданы путем извлечения выходных данных последнего сверточного слоя и их визуализации как изображения. Ниже изображения активации показывают реакцию некоторых фильтров в последнем сверточном слое двухзначных изображений.
Извлеченная цифра | активация 10 | активация 18 | активация 26 | активация 29 |
---|---|---|---|---|
Примечание. Чтобы увидеть реакции других нейронов, вы можете проверить активации.