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()