Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| # --- Fonction principale Gradio --- | |
| def analyse_double_image(recto, verso): | |
| try: | |
| valider_image(recto) | |
| valider_image(verso) | |
| except ValueError as e: | |
| return f"Erreur d’image : {e}", {} | |
| # Prétraitement | |
| recto_np = preprocess_image(recto) | |
| verso_np = preprocess_image(verso) | |
| # Appel de la fonction OCR | |
| text_recto = ocr_easyocr(recto_np) | |
| text_verso = ocr_easyocr(verso_np) | |
| texte_complet = text_recto + "\n" + text_verso | |
| # Vérification de la nature du document avant le traitement | |
| if not est_carte_identite(texte_complet): | |
| message = ( | |
| "Alerte ! Le document ne semble **pas être une carte d'identité**.\n" | |
| "Extraction et traitement annulée.\n\n" | |
| " Réessayez avec une meilleure qualité d’image." | |
| ) | |
| return message, {} | |
| # Extraction | |
| champs_extraits = extract_fields(texte_complet) | |
| sauvegarder_csv(champs_extraits) | |
| return texte_complet, champs_extraits | |
| interface = gr.Interface( | |
| fn=analyse_double_image, | |
| inputs=[ | |
| gr.Image(type="pil", label="Image Recto"), | |
| gr.Image(type="pil", label="Image Verso") | |
| ], | |
| outputs=[ | |
| gr.Textbox(label="Texte OCR Brut Extrait."), | |
| gr.JSON(label="Données structurées extraites") | |
| ], | |
| title="OCR Pour verification et traitement Carte d'Identité (Recto + Verso)", | |
| description="Téléversez les images du recto et du verso d'une carte d'identité pour verifier et extraire automatiquement les champs comme nom, prénom, date, etc.", | |
| theme="soft" | |
| ) | |
| interface.launch() |