| import gradio as gr
|
| import cv2
|
| import numpy as np
|
| from captcha_solver_hf import solve_captcha
|
|
|
| def predict_captcha(image):
|
| if image is None:
|
| return "Please upload an image."
|
| img_array = np.array(image)
|
| img_cv = cv2.cvtColor(img_array, cv2.COLOR_RGB2BGR)
|
| result = solve_captcha(img_cv)
|
| return result
|
|
|
|
|
| examples = [
|
| "example_captcha1.png",
|
| "example_captcha2.png",
|
| "example_captcha3.png"
|
| ]
|
|
|
| css = """
|
| .gradio-container {
|
| font-family: 'Arial', sans-serif;
|
| }
|
| .gr-button {
|
| color: white;
|
| border-color: black;
|
| background: linear-gradient(45deg, #007bff, #00bcd4);
|
| }
|
| .gr-button:hover {
|
| background: linear-gradient(45deg, #0056b3, #008ba3);
|
| }
|
| .gr-form {
|
| flex-direction: column;
|
| align-items: center;
|
| }
|
| .gr-image-input {
|
| width: 100% !important;
|
| max-width: 400px;
|
| margin: auto;
|
| }
|
| .footer {
|
| margin-top: 20px;
|
| text-align: center;
|
| color: #666;
|
| }
|
| h1, h3 {
|
| text-align: center;
|
| }
|
| """
|
|
|
| with gr.Blocks(css=css) as iface:
|
| gr.Markdown(
|
| """
|
| # CAPTCHA Solver
|
| ### Unlock the Power of AI-Driven CAPTCHA Recognition
|
| Upload your CAPTCHA image and let our advanced AI model decipher it instantly!
|
| """
|
| )
|
| with gr.Column(scale=1):
|
| input_image = gr.Image(type="numpy", label="Upload CAPTCHA Image")
|
| output_text = gr.Textbox(label="Predicted Text")
|
|
|
| solve_button = gr.Button("Solve CAPTCHA", variant="primary")
|
| solve_button.click(fn=predict_captcha, inputs=input_image, outputs=output_text)
|
|
|
| gr.Examples(examples, inputs=input_image)
|
|
|
| gr.Markdown(
|
| """
|
| ### How It Works
|
| 1. Upload a CAPTCHA image
|
| 2. Click "Solve CAPTCHA"
|
| 3. Get instant results!
|
|
|
| Our state-of-the-art AI model processes your image and provides accurate text recognition.
|
| """
|
| )
|
|
|
| gr.Markdown(
|
| """
|
| <div class="footer">
|
| Developed with ❤️ by Arnav Agarwal | © 2024 All Rights Reserved
|
| </div>
|
| """
|
| )
|
|
|
| if __name__ == "__main__":
|
| iface.launch() |