Structure réseau de reconnaissance
Les modules de reconnaissance créés pour une utilisation avec Windows Vista et Windows XP Édition Tablet PC utilisent un ensemble de structures, chacune appelée treillis, pour transmettre les résultats de reconnaissance aux bibliothèques de plateforme Tablet PC. La plateforme Tablet PC copie ensuite les informations de ces structures dans l’objet IInkRecognitionResult , la collection IInkRecognitionAlternates et l’objet IInkRecognitionAlternate .
Un pointeur vers le réseau doit être retourné par le module de reconnaissance lorsque la plateforme appelle la fonction GetLatticePtr sur le handle HRECOCONTEXT .
Cette section décrit la structure en treillis en détail. Pour obtenir une vue d’ensemble des modules de reconnaissance et des concepts associés, consultez À propos de la reconnaissance d’écriture manuscrite.
Le besoin d’un treillis
Un module de reconnaissance peut trouver plusieurs façons de briser un ensemble de traits d’encre en segments de reconnaissance. Ce que le module de reconnaissance utilise comme segment de reconnaissance dépend du type de module de reconnaissance. Les personnes qui reconnaissent la langue anglaise utilisent généralement des mots comme segment de reconnaissance. D’autres acteurs de reconnaissance peuvent utiliser des caractères, des formes ou des mouvements comme segment de reconnaissance. La flexibilité des structures en treillis permet une gestion logique du grand nombre de résultats de reconnaissance qui peuvent être combinés dans des relations complexes.
En interne, les modules de reconnaissance utilisent un treillis pour contenir des unités de reconnaissance de base pour un morceau d’encre donné. Le treillis contient également le score, ou niveau de confiance, du résultat combiné. En outre, le treillis stocke le mappage des segments aux traits d’encre d’origine.
Les structures de treillis sont définies dans le fichier d’en-tête RecTypes.h. Les structures en treillis incluent les structures suivantes :
Composants en treillis
Les exemples suivants utilisent les traits pour le mot « ensemble », comme illustré dans l’image suivante. Dans les exemples, les segments sont évalués comme un ou plusieurs mots. Les nombres représentent les traits individuels dans le segment évalué. Notez que chacun des caractères « t » contient deux traits.
Un réseau est composé d’une ou plusieurs colonnes, une pour chaque segment. Chaque colonne contient à son tour un ou plusieurs éléments. Un élément contient une autre reconnaissance discrète. Pour plus d’informations sur les colonnes, consultez la structure RECO_LATTICE_COLUMN . Pour plus d’informations sur les éléments, consultez la structure RECO_LATTICE_ELEMENT .
Le module de reconnaissance peut retourner un seul segment lors de l’évaluation de l’exemple d’entrée manuscrite indiqué dans l’exemple précédent. Dans ce cas, le réseau contient une colonne unique avec un seul élément.
Un exemple plus complexe se présente lorsque l’outil de reconnaissance évalue l’exemple d’entrée manuscrite et propose plusieurs segments et plusieurs alternatives pour chaque segment.
Le nombre d’alternatives de reconnaissance peut être stupéfiant, même pour un petit échantillon d’encre. Par exemple, « t o g e t h e r » peut produire les résultats suivants :
- « pour la récupérer » (plus des substituts pour chaque mot)
- « to gather » (plus des substituts pour chaque mot)
- « to got her » (plus des substituts pour chaque mot)
- « together » (plus les substituts pour le mot)
Dans ce cas, un module de reconnaissance peut créer la structure de treillis suivante.
Notes
Chaque colonne partage le même ordre de trait, car elles font toutes référence à la même collection InkStrokes .