Werking en gebruik van automatisering van GUI-handelingen met beeldherkenning
Bij het opnemen en afspelen van macro’s merken veel mensen dat iets gisteren nog werkte, maar de klikpositie vandaag verschoven is. Dat komt meestal doordat de opgenomen macro uitgaat van vaste schermcoördinaten. Als het venster op een andere plaats wordt geopend, de schermresolutie verandert of de macro op een andere monitor wordt afgespeeld, komt de klik op de verkeerde plaats terecht. Automatisering met beeldherkenning lost dit fundamentele probleem op.
Beeldherkenning is een techniek die elementen op het scherm zoekt op basis van hun uiterlijk in plaats van hun coördinaten. U registreert vooraf een kleine afbeelding van de knop waarop u wilt klikken. Tijdens het afspelen scant de tool het hele scherm naar een plek die met die afbeelding overeenkomt. Waar de knop ook naartoe is verplaatst, zolang hij er hetzelfde uitziet kan hij nauwkeurig worden gevonden en aangeklikt. Dat is de kracht van beeldherkenning.
Hoe beeldherkenning elementen vindt
De werking is eenvoudig. Eerst legt u een kleine afbeelding vast van het element dat als herkenningspunt moet dienen, bijvoorbeeld de knop ‘Verzenden’ of een bepaald pictogram, en slaat u die op als sjabloonafbeelding. Wanneer de macro wordt uitgevoerd, maakt de tool een opname van het scherm en zoekt daarin naar een gebied dat met de sjabloonafbeelding overeenkomt. Zodra een overeenkomst is gevonden, geeft de tool de coördinaten van het middelpunt terug. De macro verplaatst de muis daarheen en klikt.
Een belangrijke instelling hierbij is de overeenkomstsdrempel, oftewel de nauwkeurigheid van de vergelijking. Afbeeldingen hoeven niet voor 100% identiek te zijn: u kunt bijvoorbeeld instellen dat een gelijkenis van 90% of meer als overeenkomst geldt. Een hogere drempel vermindert foutieve detecties, maar kleine uiterlijke verschillen kunnen er dan toe leiden dat het element niet wordt gevonden. Een lagere drempel biedt meer flexibiliteit, maar vergroot het risico dat een ander, vergelijkbaar element ten onrechte wordt herkend. De kunst is om dit op het daadwerkelijke scherm te testen en een geschikte waarde te vinden.
Wanneer gebruikt u FIND_IMAGE en WAIT_IMAGE?
makuroku biedt twee belangrijke opdrachten om beeldherkenning vanuit scripts te gebruiken. FIND_IMAGE zoekt waar de betreffende afbeelding zich op dat moment op het scherm bevindt. Omdat de gevonden coördinaten in een variabele kunnen worden opgeslagen, is deze opdracht geschikt voor toepassingen zoals het aanklikken van een knop waarvan niet bekend is waar die zal verschijnen.
WAIT_IMAGE wacht daarentegen totdat de betreffende afbeelding verschijnt. Het laden van een Webpagina of starten van een toepassing kost tijd. Als de volgende handeling wordt uitgevoerd voordat dat proces is voltooid, mislukt die. Met WAIT_IMAGE kunt u de automatisering betrouwbaar afstemmen op de schermstatus, bijvoorbeeld door te wachten tot een pictogram verschijnt dat aangeeft dat het laden is voltooid en pas daarna verder te gaan. Door beide opdrachten te combineren, ontstaat robuuste automatisering die bestand is tegen de timingverschillen die in de praktijk vaak voorkomen.
Situaties waarin beeldherkenning bijzonder nuttig is
Beeldherkenning komt vooral goed van pas in de volgende situaties.
- • Apps waarin knoppen of vensters telkens op een andere positie verschijnen
- • Wanneer u wilt wachten tot het laden of verwerken is voltooid voordat u verdergaat
- • Schermen met een dynamische lay-out die niet volledig met vaste coördinaten kunnen worden bediend
- • Wanneer een bepaalde status of het verschijnen van een specifiek pictogram een verwerking moet activeren
Beeldherkenning kent echter ook beperkingen. Bij ontwerpen waarvan het uiterlijk vaak verandert en bij semitransparante of geanimeerde elementen is het vaststellen van een overeenkomst vaak minder stabiel. Omdat het hele scherm moet worden doorzocht, kost de verwerking bovendien iets meer tijd dan bij het gebruik van coördinaten. Vervang daarom niet alles door beeldherkenning, maar kies per situatie de juiste methode: „coördinaten waar die volstaan, en alleen beeldherkenning waar de positie verandert”. Dat is de sleutel tot praktische en snelle automatisering.
Tips om goede sjabloonafbeeldingen te maken
De nauwkeurigheid van beeldherkenning hangt sterk af van de kwaliteit van de geregistreerde sjabloonafbeelding. Enkele tips kunnen daarbij helpen. Snijd het gebied dat als herkenningspunt dient om te beginnen „klein en onderscheidend” uit. Neem niet de hele knop op, maar alleen het kenmerkende pictogram of de specifieke tekst ervan, zodat verwarring met andere elementen minder waarschijnlijk is. Als het gebied daarentegen te groot is, kunnen kleine veranderingen in de omgeving, zoals de achtergrondkleur of een aangrenzend element, ervoor zorgen dat er geen overeenkomst wordt gevonden.
Vermijd vervolgens gebieden waarvan de kleur of status gemakkelijk verandert. Als u een knop die bij een muisaanwijzer van kleur verandert of een gebied dat in geselecteerde toestand wordt gemarkeerd als herkenningspunt gebruikt, wordt er afhankelijk van de status mogelijk geen overeenkomst gevonden. Kies een stabiel gedeelte dat er altijd hetzelfde uitziet. Als de beeldschermschaal verandert, verandert ook de grootte van de afbeelding. Het is daarom het betrouwbaarst om de sjabloon vast te leggen met de resolutie en schaal die daadwerkelijk worden gebruikt. Al deze kleine aandachtspunten samen verhogen het succespercentage van beeldherkenning aanzienlijk.
Beeldherkenning combineren met andere methoden
Beeldherkenning is krachtig, maar niet universeel. Voor robuuste automatisering in de praktijk is het verstandig meerdere methoden op de juiste plaatsen te combineren. Voor een knop die nooit van positie verandert, volstaat het snel opgeven van coördinaten. Gebruik beeldherkenning alleen voor knoppen die wel van positie veranderen of elementen die pas na enige tijd verschijnen. Wilt u tekst op het scherm lezen, gebruik dan OCR (tekenherkenning); wilt u externe diensten koppelen, gebruik dan HTTP-communicatie. Zo kiest u voor elk doel de juiste methode.
Met makuroku kunnen deze methoden vrij binnen één script worden gecombineerd. Bijvoorbeeld: „met WAIT_IMAGE wachten tot het scherm gereed is, met FIND_IMAGE een knop zoeken en aanklikken, met OCR de numerieke uitkomst lezen en de verwerking vervolgens met voorwaarden vertakken”. Zo kan flexibele automatisering die sterk op menselijk werk lijkt als één samenhangende stroom worden beschreven. Houd niet vast aan één methode, maar combineer ze en benut de sterke punten van elke methode. Deze denkwijze is de kortste weg naar automatisering die in de praktijk echt bruikbaar is.
Wat te doen als beeldherkenning niet goed werkt
Wanneer u beeldherkenning gaat gebruiken, kan het gebeuren dat een afbeelding die u dacht te hebben geregistreerd niet wordt gevonden. Daar kunnen verschillende oorzaken voor zijn. Meestal verschillen de schermschaal of resolutie bij het vastleggen van de sjabloonafbeelding van de instellingen tijdens het daadwerkelijke zoeken. Daardoor verandert de afbeeldingsgrootte en ontstaat er geen overeenkomst. De betrouwbaarste oplossing is om de sjabloon opnieuw vast te leggen met dezelfde instellingen als in de gebruiksomgeving.
De op een na meest voorkomende oorzaak is een te strenge overeenkomstdrempel. Als u een perfecte overeenkomst van 100% vereist, kan zelfs een minimaal verschil in kleurtoon of anti-aliasing ervoor zorgen dat de afbeelding niet wordt gevonden. De herkenning wordt vaak stabieler als u de drempel iets verlaagt en ongeveer 90% gelijkenis als overeenkomst beschouwt. Bij een te lage drempel neemt het aantal foutieve detecties echter toe. Test daarom op het werkelijke scherm om een geschikte waarde te vinden.
Als het probleem daarmee niet is opgelost, bekijkt u het als sjabloon gekozen gebied opnieuw. Als u een deel met een vaak veranderende achtergrond of een deel dat bij selectie wordt gemarkeerd als herkenningspunt gebruikt, verandert het uiterlijk per situatie en ontstaat er geen overeenkomst. Beperk de sjabloon tot een kenmerkend, stabiel deel dat er altijd hetzelfde uitziet, zoals een unieke pictogram of logo. Dit verhoogt het slagingspercentage. Een gemakkelijk vindbaar herkenningspunt kiezen is de belangrijkste tip voor stabiele beeldherkenning.
Beeldherkenning vergt aanvankelijk wat afstelling, maar eenmaal goed ingesteld biedt het een flexibiliteit die met vaste coördinaten niet haalbaar is. Zelfs als het venster wordt verplaatst of de lay-out verandert, reageert het nauwkeurig zolang het uiterlijk hetzelfde blijft. Deze robuustheid geeft veel vertrouwen bij langdurig gebruik van automatisering in de dagelijkse praktijk.
Praktijkscenario met beeldherkenning
Laten we de kracht van beeldherkenning bekijken aan de hand van een concreet scenario. Stel dat u het periodiek downloaden van gegevens uit een Web-app wilt automatiseren. Bij elke aanmelding verandert de schermindeling van deze app enigszins en ook de downloadknop staat niet altijd op dezelfde plaats. Een macro op basis van vaste coördinaten kan niet met deze veranderingen omgaan en houdt al snel op met werken.
Hier komt beeldherkenning van pas. Registreer eerst het pictogram van de downloadknop als sjabloonafbeelding. De macro wacht met WAIT_IMAGE tot de pagina volledig is geladen, zoekt vervolgens met FIND_IMAGE de downloadknop op het scherm en klikt op de gevonden positie. Waar de knop ook verschijnt, hij kan nauwkeurig worden gevonden en aangeklikt zolang het uiterlijk hetzelfde blijft. Zo ontstaat stabiele automatisering die niet wordt beïnvloed door wijzigingen in de lay-out.
Als u bovendien met WAIT_IMAGE wacht tot er een melding verschijnt dat de download is voltooid voordat u doorgaat, wordt er zelfs bij een trage verbinding niets overgeslagen. Beeldherkenning brengt zo een voor mensen vanzelfsprekende afweging in automatisering: de toestand van het scherm bekijken en op het juiste moment de juiste plek bedienen. Juist daardoor kunt u zelfs in de voortdurend veranderende dagelijkse werkomgeving robuuste automatisering bouwen.
Dergelijke scenario’s zijn niet alleen toepasbaar op Web-apps, maar ook op desktopapps, bedrijfssystemen en allerlei andere situaties. Met beeldherkenning komen zelfs taken binnen bereik waarvan automatisering eerder werd opgegeven omdat de positie verandert of het tijdstip onvoorspelbaar is. Denk eerst eens aan een taak waarbij u telkens last had van een verschoven positie en probeer die met beeldherkenning stabiel te maken.
Robuuste automatisering bouwen
Of automatisering in de praktijk echt bruikbaar is, hangt af van de mate waarin ze onverwachte situaties kan doorstaan. Automatisering die uitsluitend op vastgelegde coördinaten steunt, werkt de eerste keer misschien goed, maar stopt vaak al bij een kleine verandering in de omgeving. Door beeldherkenning toe te voegen, kunt u onbewuste menselijke afwegingen in de automatisering opnemen, zoals klikken op basis van het uiterlijk of wachten tot het scherm gereed is.
Naast opname via de GUI biedt makuroku standaard beeldherkenningsopdrachten zoals FIND_IMAGE en WAIT_IMAGE. Neem eerst de handelingen op om een basisstructuur te maken en vervang vervolgens alleen de onderdelen waarvan de positie verandert of waarbij op het juiste moment moet worden gewacht door beeldherkenning. Met deze combinatie maakt u automatiseringen die niet bij de eerste onverwachte situatie uitvallen, maar bestand zijn tegen de rommeligheid van echte werkomgevingen. Omdat u alle functies gratis kunt uitproberen, kunt u het beste beginnen met beeldherkenning om taken te stabiliseren waarbij “de positie telkens verschoof en problemen veroorzaakte”.
Probeer gratis
Automatiseer het met makuroku
makuroku neemt je muis en toetsenbord op en speelt ze automatisch af. Voeg SCR-scripts en AI-(MCP-)integratie toe wanneer je meer nodig hebt. Alle functies gratis op Windows.
Meer artikelen