lardon3d/docs/concepts/visual_index.md

4.5 KiB

Visual Index

Définition

Un visual index (ou index visuel) est une structure de données compacte qui encode les caractéristiques visuelles distinctives de chaque image d'un scan set. Il permet de retrouver rapidement les paires d'images susceptibles de se chevaucher, sans comparaison exhaustive de toutes les combinaisons possibles.

L'index visuel transforme chaque image en un vecteur de descripteurs (features) invariantes à la rotation, à l'échelle et partiellement à l'illumination. Ces descripteurs forment une empreinte numérique qui identifie le contenu visuel de l'image.

Statut

IDEA — Concept fondamental pour l'étape de matching. Pas encore implémenté. Actuellement, le pipeline de photogrammétrie classique utilise une approche exhaustive ou semi-exhaustive qui ne passe pas à l'échelle.

Place dans le pipeline

Scan Set (images brutes)
    ↓
Feature Extraction (descripteurs par image)
    ↓
Visual Index (indexation compacte)
    ↓
Candidate Selection (paires candidats)
    ↓
Matching & Tracks (appariement détaillé)

L'index visuel se situe entre l'extraction de features et la sélection de paires candidates. Il réduit drastiquement l'espace de recherche pour l'appariement.

Concepts clés

Descripteurs visuels

Type Caractéristiques Usage
SIFT Invariant à l'échelle et rotation, 128 dimensions Référence académique, lent
SURF Plus rapide que SIFT, bonne invariance Compromis vitesse/qualité
ORB Binaire, très rapide, Open source Usage temps réel
AKAZE Non-linéaire, préservation des contours Bon pour les textures

Structure de l'index

Image → [Feature 1, Feature 2, ..., Feature N]
                    ↓
         Visual Index (KD-Tree / LSH / PQ)
                    ↓
         Requête : top-K voisins les plus proches

Techniques d'indexation

  • KD-Tree : arbre binaire de partitionnement spatial, efficace pour KNN en basse dimension
  • Locality-Sensitive Hashing (LSH) : hashing probabiliste, efficace en haute dimension
  • Product Quantization (PQ) : quantification par produit, compression agressive des descripteurs
  • IVF (Inverted File) : indexation par clusters, bon compromis mémoire/recherche

Paramètres clés

Paramètre Description Impact
n_features_per_image Nombre de descripteurs extraits par image Plus = meilleure couverture, plus de mémoire
index_type Type de structure d'index (KD-Tree, LSH, PQ) Compromis précision/vitesse
search_radius Rayon de recherche pour les voisins Plus grand = plus de candidats, plus lent
min_match_count Seuil minimum d'appariements validés Filtre les faux positifs

Relations avec les autres modules

Module Relation
Image Catalog Le catalogue fournit les métadonnées nécessaires à l'indexation (dimensions, modèle caméra).
Image View Les vues peuvent filtrer les images avant indexation (par zone, par qualité).
Resource Governor Le gouverneur alloue la mémoire pour la structure d'index et contrôle la taille des lots d'indexation.
Task L'indexation visuelle est une tâche candidate pour le scheduler. Elle est CPU-intensive mais parallélisable.
Hardware Profile Le profil matériel détermine le type d'index optimal (KD-Tree pour peu de features, LSH pour beaucoup).

Contraintes de conception

  • L'index doit tenir en mémoire pour un scan set complet typique (100-1000 images).
  • La construction de l'index ne doit pas bloquer la TUI : tâche asynchrone avec progression.
  • L'index est reconstruction-only : il n'est pas persisté entre les sessions (reconstruit à la demande).
  • La taille maximale de l'index est bornée par le budget RAM du Resource Governor.
  • Les descripteurs doivent être calculés de manière déterministe (même image → même index).

Terminologie

Terme Définition
Feature Point d'intérêt local avec descripteur associé
Keypoint Position spatiale (x, y) d'un point d'intérêt
Descriptor Vecteur numérique décruant l'apparence locale autour d'un keypoint
KNN K-Nearest Neighbors, recherche des K voisins les plus proches
Vocabulary visuel Dictionnaire de descripteurs typiques pour la bag-of-words
BoW (Bag of Words) Représentation histogrammique des features d'une image