← Retour

Vision par ordinateur

Repository GitHub

Problème & approche

L’utilisateur soumet une image requête. Le système extrait des descripteurs et retourne les images les plus similaires selon une métrique. L’approche combine descripteurs “classiques” (couleur, niveaux de gris, forme, texte), des descripteurs profonds (embeddings via un CNN type ResNet), des classes Vérité/Terrain, avec une évaluation quantitative (précision / rappel).
Les descripteurs de toutes les images de la base de données des images sont générés en asynchrone afin de ne pas bloquer l'utilisateur dans ses recherches.

Fonctionnalités clés

Compétences démontrées

Architecture

Navigateur image requête Angular Frontend · port 4200 Upload image · sélection mode · affichage résultats POST /api/search Backend Spring Boot · port 8087 API REST · extraction de descripteurs couleur · forme · texte · ResNet · précision/rappel images/ jeux d’images indexes/ descripteurs pré-calculés ground_truth/ vérité terrain
Navigateur image requête Angular Frontend · port 4200 Upload image · sélection mode · affichage résultats POST /api/search Backend Spring Boot · port 8087 API REST · extraction de descripteurs couleur · forme · texte · ResNet · précision/rappel images/ jeux d’images indexes/ descripteurs pré-calculés ground_truth/ vérité terrain
Navigateur image requête Angular Frontend · port 4200 Upload · sélection mode · résultats POST /api/search Backend Spring Boot · port 8087 API REST · extraction descripteurs couleur · forme · texte · ResNet images/ images indexes/ descripteurs ground_truth/ vérité terrain

Organisation du projet

.
├── multimedias-ui/   # Frontend Angular
├── multimedia/          # Backend Spring Boot / Java
├── data/
│  ├── images/        # Jeux d’images
│  ├── indexes/       # Indexs descripteurs
│  └── ground_truth/  # Vérité terrain
└── compose.yaml

Exécution via Docker (démo reproductible)

Accès :

API (exemples)

Recherche par image :

POST /api/search  (multipart/form-data)
- file : image requête
- topK : nombre de résultats pertinents et affichage des 8 plus proches voisins
- mode : color | shape | text | ground-truth | deep | combined (optionnel)

Exemple curl :

curl -X POST http://localhost:8087/api/search \
  -F [email protected] \
  -F topK=10 \
  -F mode=combined