2025-01-07 15:14:21 +01:00
|
|
|
import os
|
|
|
|
import cv2
|
2025-01-05 22:53:09 +01:00
|
|
|
from src.pipeline import ObjectDetectionPipeline
|
2025-01-07 15:14:21 +01:00
|
|
|
from src.classifiers.bayesian import BayesianClassifier
|
2025-01-05 22:53:09 +01:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2025-01-07 15:14:21 +01:00
|
|
|
# Chemin vers le modèle entraîné
|
|
|
|
model_path = "models/bayesian_model.pth"
|
|
|
|
|
|
|
|
# Chargement du modèle bayésien
|
|
|
|
print(f"Chargement du modèle bayésien depuis {model_path}")
|
|
|
|
bayesian_model = BayesianClassifier()
|
|
|
|
try:
|
|
|
|
bayesian_model.load_model(model_path)
|
|
|
|
print(f"Modèle bayésien chargé depuis {model_path}")
|
|
|
|
except Exception as e:
|
|
|
|
print(f"Erreur lors du chargement du modèle : {e}")
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
# Chemin de l'image de test
|
2025-01-05 22:53:09 +01:00
|
|
|
image_path = "data/page.png"
|
2025-01-07 15:14:21 +01:00
|
|
|
if not os.path.exists(image_path):
|
|
|
|
print(f"L'image de test {image_path} n'existe pas.")
|
|
|
|
exit(1)
|
2025-01-05 22:53:09 +01:00
|
|
|
|
2025-01-07 15:14:21 +01:00
|
|
|
# Initialisation du dossier de sortie
|
|
|
|
output_dir = "output"
|
|
|
|
if not os.path.exists(output_dir):
|
|
|
|
os.makedirs(output_dir)
|
2025-01-05 22:53:09 +01:00
|
|
|
|
2025-01-07 15:14:21 +01:00
|
|
|
# Initialisation de la pipeline
|
|
|
|
print("Initialisation de la pipeline...")
|
|
|
|
pipeline = ObjectDetectionPipeline(image_path=image_path, model=bayesian_model, output_dir=output_dir)
|
2025-01-05 22:53:09 +01:00
|
|
|
|
|
|
|
# Chargement de l'image
|
2025-01-07 15:14:21 +01:00
|
|
|
print("Chargement de l'image...")
|
|
|
|
try:
|
|
|
|
pipeline.load_image()
|
|
|
|
except FileNotFoundError as e:
|
|
|
|
print(e)
|
|
|
|
exit(1)
|
2025-01-05 22:53:09 +01:00
|
|
|
|
2025-01-07 15:14:21 +01:00
|
|
|
# Détection et classification des objets
|
|
|
|
print("Détection et classification des objets...")
|
|
|
|
try:
|
|
|
|
class_counts, detected_objects = pipeline.detect_and_classify_objects()
|
|
|
|
except Exception as e:
|
|
|
|
print(f"Erreur lors de la détection/classification : {e}")
|
|
|
|
exit(1)
|
2025-01-05 22:53:09 +01:00
|
|
|
|
2025-01-07 15:14:21 +01:00
|
|
|
# Sauvegarde et affichage des résultats
|
|
|
|
print("Sauvegarde et affichage des résultats...")
|
2025-01-05 22:53:09 +01:00
|
|
|
pipeline.display_results(class_counts, detected_objects)
|
2025-01-07 15:14:21 +01:00
|
|
|
|
|
|
|
print(f"Les résultats ont été sauvegardés dans le dossier : {output_dir}")
|