Ce projet implémente une chaîne complète de vision par ordinateur permettant :
- la détection automatique de pièces dans une image\
- la classification de leur matériau (cuivre, or, bimétallique)\
- l'estimation de leur valeur monétaire totale\
- l'évaluation quantitative sur un jeu de données annoté
Le système constitue un framework d'évaluation complet avec génération automatique de rapports et métriques de performance.
Pour chaque image :
- Lecture de l'image (gestion Unicode compatible Windows)
- Conversion en niveaux de gris
- Réduction du bruit (filtrage gaussien)
- Amélioration du contraste (CLAHE)
- Détection des cercles (Transformée de Hough)
- Classification du matériau (analyse colorimétrique LAB)
- Estimation de la dénomination de chaque pièce
- Calcul de la valeur totale
- Comparaison avec la vérité terrain
Le système propose trois stratégies différentes.
- Estimation du facteur d'échelle pixel → millimètre
- Comparaison avec les diamètres officiels des pièces
- Contraintes souples selon le matériau détecté
✔ Robuste
✔ Complètement automatique
✔ Ne nécessite pas d'images de référence
- Normalisation par la plus grande pièce détectée
- Comparaison avec des ratios relatifs connus
✔ Simple et rapide
⚠ Sensible aux erreurs de détection
- Filtrage des candidats par aire
- Alignement d'échelle
- Extraction de descripteurs ORB
- Vérification géométrique par RANSAC
- Fallback automatique vers la baseline si le matching est incertain
✔ Haute précision si les références sont fiables
✔ Robuste grâce au fallback
src/
│
├── main.py
│
├── core/
│ ├── data_loader.py
│ ├── evaluator.py
│ ├── classification.py
│ ├── matching.py
│ └── io_utils.py
│
data/
├── images/
├── ref/
└── annotations.csv
Les paramètres principaux sont définis dans src/main.py.
CFG = {
"DETECT_METHOD_ID": 2,
"CLASSIFY_METHOD_ID": 0,
"RUN_DEBUG_SINGLE": False,
"DEBUG_MODE": "none",
"DEBUG_OUT_DIR": "debug_out",
"DEBUG_IMAGE_PATH": ".../gp1/25.png"
}Mode Description
none Aucun affichage ni sauvegarde show Affichage des étapes intermédiaires save Sauvegarde des images debug both Affichage + sauvegarde
python src/main.pySorties : - Résumé dans la console - Rapport détaillé : evaluation_report.txt
Dans main.py :
RUN_DEBUG_SINGLE = True
DEBUG_MODE = "both"Le système calcule automatiquement :
- MAE
- RMSE
- Précision sous tolérance
- Taux de détection
- Cas d'erreurs détaillés
- Images sans annotation
- Exceptions
Résultats exportés dans :
evaluation_report.txt
Python ≥ 3.9
pip install -r requirements.txt
Projet développé dans le cadre d'expérimentations en vision par ordinateur.