Open source Python Deep Learning low-code library for generating captcha image recognition models
🚀pip install CaptchaCracker --upgrade
CaptchaCracker is an open source Python library that provides functions to create and apply deep learning models for Captcha Image recognition. You can create a deep learning model that recognizes numbers in the Captcha Image as shown below and outputs a string of numbers, or you can try the model yourself.
023062
Integrated into Huggingface Spaces 🤗 using Gradio. Try out the Web Demo:
pip install CaptchaCracker
pip install numpy==1.19.5 tensorflow==2.5.0
Before executing model training, training data image files in which the actual value of the Captcha image is indicated in the file name should be prepared as shown below.
import glob
import CaptchaCracker as cc
# Training image data path
train_img_path_list = glob.glob("../data/train_numbers_only/*.png")
# Training image data size
img_width = 200
img_height = 50
# Creating an instance that creates a model
CM = cc.CreateModel(train_img_path_list, img_width, img_height)
# Performing model training
model = CM.train_model(epochs=100)
# Saving the weights learned by the model to a file
model.save_weights("../model/weights.h5")
- input: image file path
import CaptchaCracker as cc
# Target image data size
img_width = 200
img_height = 50
# Target image label length
max_length = 6
# Target image label component
characters = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
# Model weight file path
weights_path = "../model/weights.h5"
# Creating a model application instance
AM = cc.ApplyModel(weights_path, img_width, img_height, max_length, characters)
# Target image path
target_img_path = "../data/target.png"
# Predicted value
pred = AM.predict(target_img_path)
print(pred)
- input: image bytes object
import CaptchaCracker as cc
# Target image data size
img_width = 200
img_height = 50
# Target image label length
max_length = 6
# Target image label component
characters = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'}
# Model weight file path
weights_path = "../model/weights.h5"
# Creating a model application instance
AM = cc.ApplyModel(weights_path, img_width, img_height, max_length, characters)
# Predicted value
target_img_bytes = "..."
pred = AM.predict_from_bytes(target_img_bytes)
print(pred)