Fonctionnement et utilisation de l’automatisation des opérations GUI par reconnaissance d’image
Lors de l’enregistrement et de la lecture de macros, beaucoup constatent que « cela fonctionnait hier, mais aujourd’hui le clic est décalé ». Cela vient généralement du fait que la macro enregistrée s’appuie sur des coordonnées fixes à l’écran. Si la fenêtre s’ouvre ailleurs, si la résolution change ou si la macro est exécutée sur un autre moniteur, le clic peut se produire au mauvais endroit. L’automatisation par reconnaissance d’image résout ce problème fondamental.
La reconnaissance d’image est une technique qui recherche les éléments à l’écran d’après leur apparence plutôt que leurs coordonnées. Il suffit d’enregistrer au préalable une petite image du bouton à cliquer. Lors de l’exécution, l’outil analyse tout l’écran pour trouver l’emplacement correspondant à cette image. Même si le bouton a été déplacé, il peut être détecté et cliqué avec précision tant que son apparence reste identique : c’est là toute la force de la reconnaissance d’image.
Comment la reconnaissance d’image trouve-t-elle les éléments ?
Le fonctionnement est simple. Commencez par capturer et enregistrer une petite image de l’élément qui servira de repère, par exemple le bouton « Envoyer » ou une icône particulière. Cette image est appelée image modèle. Lors de l’exécution de la macro, l’outil capture l’écran à cet instant et recherche une zone correspondant à l’image modèle. S’il la trouve, il renvoie les coordonnées de son centre, puis la macro y déplace la souris et clique.
Le paramètre essentiel est ici le « seuil de correspondance », ou degré de précision de la comparaison. Il est possible, par exemple, de considérer qu’il y a correspondance dès que la similarité atteint 90 %, sans exiger une identité parfaite à 100 %. Un seuil élevé réduit les fausses détections, mais de légères différences visuelles peuvent alors empêcher de trouver l’élément. À l’inverse, un seuil faible offre davantage de souplesse, mais augmente le risque de sélectionner par erreur un élément ressemblant. L’astuce consiste à faire des essais sur l’écran réel afin de trouver la valeur appropriée.
Quand utiliser FIND_IMAGE ou WAIT_IMAGE
makuroku propose deux commandes principales pour utiliser la reconnaissance d’image depuis un script. FIND_IMAGE recherche l’endroit où se trouve l’image à cet instant précis. Les coordonnées trouvées pouvant être stockées dans une variable, cette commande convient notamment pour cliquer sur un bouton dont la position d’affichage est inconnue.
WAIT_IMAGE, quant à elle, attend que l’image apparaisse. Le chargement d’une page Web ou le démarrage d’une application prend du temps, et lancer l’opération suivante sans attendre la fin entraîne un échec. WAIT_IMAGE permet une automatisation fiable adaptée à l’état de l’écran, par exemple en attendant l’apparition de l’icône indiquant la fin du chargement avant de poursuivre. En combinant ces deux commandes, on obtient une automatisation robuste face aux variations de délai fréquentes dans les tâches réelles.
Situations dans lesquelles la reconnaissance d’image est particulièrement utile
La reconnaissance d’images est particulièrement efficace dans les situations suivantes.
- • Les applications dans lesquelles la position des boutons ou des fenêtres change à chaque fois
- • Lorsque vous souhaitez attendre la fin du chargement ou du traitement avant de continuer
- • Les écrans à la mise en page dynamique que de simples coordonnées ne permettent pas de gérer correctement
- • Lorsque vous souhaitez déclencher un traitement à l’apparition d’une icône ou d’un état particulier
À l’inverse, la reconnaissance d’images a aussi ses limites. La détection des correspondances tend à devenir instable lorsque l’apparence de la cible change fréquemment ou lorsque les éléments sont semi-transparents ou animés. De plus, comme l’écran entier doit être analysé, le traitement prend légèrement plus de temps qu’avec des coordonnées. Au lieu de tout remplacer par la reconnaissance d’images, mieux vaut utiliser chaque méthode à bon escient : « des coordonnées là où elles suffisent, et la reconnaissance d’images uniquement là où la position varie ». C’est le secret d’une automatisation à la fois rapide et réellement pratique.
Conseils pour bien préparer les images modèles
La précision de la reconnaissance d’images dépend fortement de la qualité de l’image modèle enregistrée. Voici quelques conseils. Tout d’abord, recadrez la zone servant de repère de façon à ce qu’elle soit « petite et distinctive ». Au lieu de capturer l’ensemble du bouton, ne conservez que son icône ou son texte caractéristique afin de réduire le risque de confusion avec d’autres éléments. À l’inverse, si la zone est trop grande, de légères variations alentour, comme la couleur de fond ou un élément voisin, peuvent empêcher toute correspondance.
Ensuite, évitez les zones dont la couleur ou l’état change facilement. Si vous utilisez comme repère un bouton qui change de couleur au survol de la souris ou une zone mise en évidence lorsqu’elle est sélectionnée, la correspondance risque d’échouer selon l’état affiché. Choisissez une zone stable qui conserve toujours la même apparence. Par ailleurs, un changement d’échelle d’affichage modifie aussi la taille de l’image. Le plus fiable est donc de capturer le modèle avec la résolution et l’échelle réellement utilisées en production. L’accumulation de ces petites précautions augmente considérablement le taux de réussite de la reconnaissance d’images.
Combiner la reconnaissance d’images avec d’autres méthodes
La reconnaissance d’images est puissante, mais elle n’est pas universelle. Pour créer une automatisation robuste dans un contexte professionnel, la bonne approche consiste à combiner plusieurs méthodes là où elles sont les plus adaptées. Des coordonnées rapides suffisent pour un bouton qui ne change jamais de position. Réservez la reconnaissance d’images aux boutons qui se déplacent ou aux éléments qui mettent du temps à s’afficher. Pour lire du texte à l’écran, utilisez OCR (reconnaissance de caractères) ; pour communiquer avec un service externe, utilisez une communication HTTP. Il s’agit ainsi de choisir chaque méthode en fonction de l’objectif.
makuroku permet de combiner librement toutes ces méthodes dans un même script. Par exemple : « attendre que l’écran soit prêt avec WAIT_IMAGE, rechercher et cliquer sur un bouton avec FIND_IMAGE, lire la valeur du résultat avec OCR, puis répartir le traitement selon des conditions ». Une automatisation souple, proche du travail humain, peut ainsi être décrite sous la forme d’un flux unique et cohérent. Plutôt que de s’en tenir à une seule méthode, il faut exploiter les avantages de chacune et les combiner. Cette approche est le chemin le plus direct vers une automatisation réellement utile sur le terrain.
Que faire lorsque la reconnaissance d’image ne fonctionne pas correctement ?
Lorsque vous commencez à utiliser la reconnaissance d’image, il peut arriver qu’une image pourtant enregistrée soit introuvable. Plusieurs causes sont possibles. Le cas le plus fréquent est une différence de mise à l’échelle de l’affichage ou de résolution entre le moment où l’image modèle a été capturée et celui où elle est recherchée. La taille de l’image change alors, ce qui empêche toute correspondance. La solution la plus fiable consiste à capturer de nouveau le modèle avec les mêmes paramètres que l’environnement d’utilisation.
La deuxième cause la plus fréquente est un seuil de correspondance trop strict. Si vous exigez une correspondance parfaite à 100 %, une différence infime de teinte ou d’anticrénelage peut suffire à empêcher la détection. En abaissant légèrement le seuil afin qu’une similarité d’environ 90 % soit considérée comme une correspondance, la détection devient souvent plus stable. Toutefois, un seuil trop bas augmente les faux positifs : l’astuce consiste donc à effectuer des essais sur l’écran réel pour trouver la valeur appropriée.
Si le problème persiste, réexaminez la zone choisie comme modèle. Si vous utilisez comme repère une partie dont l’arrière-plan change souvent ou qui est mise en surbrillance lorsqu’elle est sélectionnée, son apparence variera selon la situation et empêchera la correspondance. Limiter le modèle à une partie distinctive et stable qui conserve toujours la même apparence — une icône ou un logo propre à l’application, par exemple — améliore le taux de réussite. Choisir un repère facile à retrouver est le conseil le plus important pour stabiliser la reconnaissance d’image.
La reconnaissance d’image demande certes quelques ajustements au départ, mais une fois correctement configurée, elle offre une souplesse impossible à obtenir avec des coordonnées fixes. Même si la fenêtre se déplace ou que la mise en page change, elle réagit avec précision tant que l’apparence reste identique. Cette robustesse est particulièrement rassurante lorsqu’il s’agit d’utiliser durablement une automatisation dans le cadre professionnel.
Scénario pratique utilisant la reconnaissance d’image
Examinons les capacités de la reconnaissance d’image à travers un scénario concret. Imaginons que vous souhaitiez automatiser le téléchargement périodique de données depuis une application Web. À chaque connexion, la mise en page de cette application change légèrement et la position du bouton de téléchargement n’est pas fixe. Une macro fondée sur des coordonnées ne peut pas s’adapter à ces variations et cesse rapidement de fonctionner.
C’est ici que la reconnaissance d’image entre en jeu. Commencez par enregistrer l’icône du bouton de téléchargement en tant qu’image modèle. La macro utilise WAIT_IMAGE pour attendre la fin du chargement de la page, puis FIND_IMAGE pour repérer le bouton de téléchargement à l’écran et cliquer à son emplacement. Où que le bouton apparaisse, il peut être trouvé et cliqué avec précision tant que son apparence reste la même, ce qui produit une automatisation stable et indépendante des changements de mise en page.
De plus, si vous utilisez WAIT_IMAGE pour attendre l’apparition du message indiquant que le téléchargement est terminé avant de poursuivre, aucune étape ne sera manquée, même lorsque la connexion est lente. La reconnaissance d’image intègre ainsi à l’automatisation un jugement naturel pour l’être humain : observer l’état de l’écran et agir au bon endroit au bon moment. C’est précisément ce qui permet de créer des automatisations robustes, même dans un environnement professionnel réel constamment soumis aux changements.
Ces scénarios ne s’appliquent pas seulement aux applications Web, mais aussi aux applications de bureau, aux systèmes métier et à bien d’autres contextes. Grâce à la reconnaissance d’image, des tâches dont l’automatisation avait été abandonnée parce que la position change ou que le moment est imprévisible deviennent elles aussi accessibles. Commencez par penser à une tâche qui vous posait problème parce qu’un élément changeait de position à chaque fois, puis essayez de la stabiliser à l’aide de la reconnaissance d’image.
Créer des automatisations robustes
L’utilité réelle d’une automatisation sur le terrain dépend de sa capacité à résister aux situations imprévues. Une automatisation qui repose uniquement sur des coordonnées enregistrées peut fonctionner parfaitement la première fois, mais s’arrête souvent dès que l’environnement change légèrement. En y associant la reconnaissance d’image, vous pouvez intégrer des décisions que les humains prennent inconsciemment, comme cliquer en se fiant à l’apparence ou attendre que l’écran soit prêt.
En plus de l’enregistrement via une GUI, makuroku intègre par défaut des commandes de reconnaissance d’image telles que FIND_IMAGE et WAIT_IMAGE. Commencez par enregistrer les opérations pour créer une structure de base, puis remplacez par la reconnaissance d’image uniquement les étapes dont la position varie ou qui nécessitent d’attendre le bon moment. Cette combinaison permet de créer des automatisations qui ne cèdent pas au premier imprévu, mais résistent au désordre des situations réelles. Toutes les fonctionnalités étant disponibles gratuitement à l’essai, commencez par stabiliser grâce à la reconnaissance d’image les tâches où « le décalage systématique de la position vous posait problème ».
Essayer gratuitement
Automatisez-le avec makuroku
makuroku enregistre votre souris et votre clavier, puis les rejoue automatiquement. Ajoutez des scripts SCR et l'intégration IA (MCP) au besoin. Toutes les fonctionnalités gratuites sous Windows.
Plus d'articles