captcha_solver / app.py
tanav2202's picture
Upload 6 files
05a88d6
raw
history blame
1.16 kB
# Define function to predict captcha
import cv2
import numpy as np
import string
import gradio as gr
import tensorflow as tf
import os
model = tf.keras.models.load_model("captcha2.h5")
symbols = string.ascii_lowercase + "0123456789"
def predict(img):
# Resize image
img = cv2.resize(img, (200, 50), interpolation=cv2.INTER_AREA)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Normalize image
img = img / 255.0
# Pass image to model
res = np.array(model.predict(img[np.newaxis, :, :, np.newaxis]))
# Decode prediction
ans = np.reshape(res, (5, 36))
l_ind = []
probs = []
for a in ans:
l_ind.append(np.argmax(a))
capt = ''
for l in l_ind:
capt += symbols[l]
return capt
def captcha(img):
prediction = predict(img)
return prediction
gr.Interface(fn=captcha, inputs="image", outputs="text",
title="Enter Alphanumeric Captcha Image" , examples=[
os.path.join(os.path.dirname(__file__), "./2cegf.png"),
os.path.join(os.path.dirname(__file__), "./yf424.png"),
os.path.join(os.path.dirname(__file__), "./yxd7m.png")
]).launch()