64 lines
2.4 KiB
Markdown
64 lines
2.4 KiB
Markdown
# Match Result Model v1
|
|
|
|
## Rôle et frontière
|
|
|
|
Un Match Result décrit un calcul descriptor-level réussi entre deux Feature
|
|
Sets d'une Candidate Pair. Les correspondances sont dans le Match File; aucune
|
|
vérification géométrique, aucun inlier géométrique et aucun masque d'inliers ne
|
|
font partie de ce modèle.
|
|
|
|
Les erreurs d'exécution appartiennent au Task Runtime et aux valeurs de retour.
|
|
Elles ne créent pas de Match Result. Le modèle persistant possède deux états :
|
|
|
|
- `NO_MATCH` (0) : `match_count == 0`, aucun asset;
|
|
- `MATCHED` (1) : `match_count > 0`, asset obligatoire.
|
|
|
|
`match_count` est exactement le nombre de correspondances descriptor-level
|
|
persistées après Lowe ratio et canonicalisation. Il n'existe ni `raw_match_count`
|
|
ambigu ni `inlier_count` dans Match Result v1.
|
|
|
|
## Identité et ownership
|
|
|
|
L'identité immuable est :
|
|
|
|
```
|
|
(candidate_pair_id, feature_set_id_a, feature_set_id_b,
|
|
matcher_kind, matcher_version, parameter_fingerprint)
|
|
```
|
|
|
|
Elle porte une contrainte `UNIQUE`. `feature_set_id_a` appartient à
|
|
`candidate_pair.image_id_a` et `feature_set_id_b` à `image_id_b`. Les Feature
|
|
Set IDs ne sont jamais triés numériquement.
|
|
|
|
## Schéma Project DB v10
|
|
|
|
`match_results` impose en SQL : statut dans `(0,1)`, `0 <= match_count <= 8192`,
|
|
SHA de 32 octets, chemins non vides et tailles strictement positives lorsqu'ils
|
|
sont présents. Un `CHECK` conjoint impose :
|
|
|
|
```
|
|
NO_MATCH => match_count = 0 et SHA/path/size NULL
|
|
MATCHED => match_count > 0 et SHA/path/size tous présents
|
|
```
|
|
|
|
La création vérifie aussi atomiquement l'ownership A/B avant l'INSERT. Les API
|
|
load/find/list conservent l'ordre stable par `match_result_id`; close/reopen ne
|
|
change aucune identité ni métadonnée.
|
|
|
|
## Reuse
|
|
|
|
`NO_MATCH` est directement réutilisable sans asset. `MATCHED` ne l'est qu'après
|
|
validation du chemin, de la taille, du SHA-256 réel, du format complet, du type
|
|
et de la dimension des descripteurs, des Feature Set IDs A/B et du compte.
|
|
Une ligne existante dont l'asset est absent ou corrompu déclenche un recalcul.
|
|
Le fichier est republié atomiquement et les champs résultat/asset de cette même
|
|
ligne sont réparés transactionnellement; son ID et son identité scientifique à
|
|
six parties restent inchangés. Aucune identité artificielle ne contourne la
|
|
contrainte `UNIQUE`.
|
|
|
|
## Suite
|
|
|
|
Le prochain modèle possède ses propres statistiques géométriques, dont un
|
|
éventuel `inlier_count`.
|
|
|
|
NEXT: GEOMETRIC VERIFICATION MODEL
|