Ce projet utilise le modèle Microsoft Florence-2-large pour générer des descriptions détaillées d'images. Il est conçu pour parcourir des dossiers d'images et générer automatiquement des descriptions textuelles pour chaque image trouvée dans les dossiers se terminant par "sans_texte".
- Analyse automatique des dossiers d'images
- Génération de descriptions détaillées pour chaque image
- Sauvegarde des résultats en format CSV et TXT
- Journalisation complète des opérations
- Gestion de la mémoire pour les traitements volumineux
- Prise en charge de différents formats d'image (JPG, PNG, BMP, GIF)
- Python 3.8+
- PyTorch
- Transformers
- Pillow (PIL)
- tqdm
pip install torch transformers pillow tqdmPour utiliser le GPU (fortement recommandé) :
pip install torch --extra-index-url https://download.pytorch.org/whl/cu118.
├── main.py # Script principal
├── output_images/ # Dossier contenant les images à traiter
│ ├── *_sans_texte/ # Sous-dossiers à traiter (doivent se terminer par "sans_texte")
│ ├── image_descriptions_sans_texte.csv # Fichier CSV de sortie
│ └── detailed_image_descriptions_sans_texte.txt # Fichier TXT de sortie
└── florence_processing.log # Journal des opérations
- Placez vos images dans des sous-dossiers se terminant par "sans_texte" dans le dossier "output_images"
- Exécutez le script :
python main.py- Les résultats seront sauvegardés dans :
output_images/image_descriptions_sans_texte.csvoutput_images/detailed_image_descriptions_sans_texte.txt
ProcessingResult: Stocke les résultats du traitement d'une imageFlorence2Error: Exception personnalisée pour les erreurs spécifiquesCSVWriter: Gère l'écriture incrémentale dans le fichier CSV
setup_model(): Initialise le modèle Florence-2 et le processeurpreprocess_image(): Prépare l'image pour le traitementget_image_description(): Génère une description pour une imageprocess_image_folder(): Traite toutes les images dans les dossiers correspondantssave_results_to_file(): Sauvegarde les résultats dans un fichier texte
- Utilisation du GPU lorsque disponible
- Nettoyage régulier de la mémoire pour éviter les fuites
- Prétraitement des images pour optimiser la qualité des descriptions
- Écriture incrémentale des résultats pour éviter la perte de données
Vous pouvez modifier les paramètres suivants dans le code :
model_iddanssetup_model()pour utiliser un modèle différent- Les paramètres de génération dans
get_image_description()pour ajuster la qualité des descriptions should_process_folder()pour changer les critères de sélection des dossiers
Le script enregistre toutes les opérations dans le fichier florence_processing.log et affiche également les informations importantes dans la console.
- Nécessite une quantité importante de mémoire GPU pour les grandes images
- Le traitement peut être lent sans GPU
- Limité aux dossiers se terminant par "sans_texte"