Meccanismo e utilizzo dell’automazione delle operazioni GUI tramite riconoscimento delle immagini
Durante la registrazione e la riproduzione delle macro, molti si imbattono nel problema: «Ieri funzionava, ma oggi il clic è fuori posizione». Nella maggior parte dei casi ciò accade perché la macro registrata opera sulla base di coordinate fisse dello schermo. Se la finestra si apre altrove, cambia la risoluzione dello schermo o la macro viene riprodotta su un altro monitor, il clic finisce in una posizione diversa da quella prevista. L’automazione tramite riconoscimento delle immagini risolve questo problema alla radice.
Il riconoscimento delle immagini è una tecnologia che cerca gli elementi sullo schermo in base al loro aspetto anziché alle coordinate. Si registra in anticipo una piccola immagine del pulsante da premere; durante la riproduzione, lo strumento esamina l’intero schermo per individuare la posizione corrispondente. Non importa dove sia stato spostato il pulsante: finché il suo aspetto rimane invariato, può essere trovato e premuto con precisione. Questo è il punto di forza del riconoscimento delle immagini.
Come trova gli elementi il riconoscimento delle immagini
Il meccanismo è semplice. Innanzitutto si acquisisce e si salva una piccola immagine dell’elemento da usare come riferimento, ad esempio il pulsante «Invia» o un’icona specifica. Questa è l’immagine modello. Quando viene eseguita la macro, lo strumento acquisisce lo schermo in quell’istante e cerca un’area corrispondente all’immagine modello. Se trova una corrispondenza, restituisce le coordinate del centro; la macro sposta quindi il mouse in quel punto e fa clic.
Un’impostazione importante è la «soglia di corrispondenza», ossia la precisione del confronto. Le immagini non devono necessariamente coincidere al 100%: si può stabilire, ad esempio, che una somiglianza pari o superiore al 90% costituisca una corrispondenza. Una soglia più alta riduce i falsi rilevamenti, ma anche lievi differenze visive possono impedire di trovare l’elemento. Una soglia più bassa offre maggiore flessibilità, ma aumenta il rischio di selezionare per errore un altro elemento simile. Il segreto è effettuare prove sullo schermo effettivo per trovare il valore più adatto.
Quando usare FIND_IMAGE e WAIT_IMAGE
makuroku mette a disposizione due comandi principali per utilizzare il riconoscimento delle immagini negli script. FIND_IMAGE cerca dove si trova una determinata immagine sullo schermo in quello specifico momento. Poiché le coordinate rilevate possono essere memorizzate in una variabile, il comando è adatto, ad esempio, per fare clic su un pulsante di cui non si conosce in anticipo la posizione.
WAIT_IMAGE, invece, attende finché l’immagine non viene visualizzata. Il caricamento di una pagina Web o l’avvio di un’applicazione richiedono tempo; se si esegue l’operazione successiva prima del completamento, questa non riuscirà. WAIT_IMAGE consente di creare un’automazione affidabile e sincronizzata con lo stato dello schermo, ad esempio aspettando che compaia l’icona di caricamento completato prima di proseguire. Combinando i due comandi si ottiene un’automazione resistente alle variazioni nei tempi di esecuzione comuni nel lavoro reale e meno soggetta a malfunzionamenti.
Situazioni in cui il riconoscimento delle immagini è particolarmente utile
Il riconoscimento delle immagini è particolarmente efficace nelle seguenti situazioni.
- • Applicazioni in cui la posizione dei pulsanti o delle finestre cambia ogni volta
- • Quando si desidera attendere il completamento del caricamento o dell’elaborazione prima di procedere
- • Schermate con layout dinamico che non possono essere gestite adeguatamente specificando le coordinate
- • Quando si desidera avviare un’elaborazione alla comparsa di un’icona o di uno stato specifico
D’altra parte, anche il riconoscimento delle immagini ha dei limiti. Il rilevamento delle corrispondenze tende a essere instabile nei design in cui l’aspetto dell’elemento cambia frequentemente e con gli elementi semitrasparenti o animati. Inoltre, poiché occorre analizzare l’intero schermo, l’elaborazione richiede leggermente più tempo rispetto all’uso delle coordinate. Anziché sostituire tutto con il riconoscimento delle immagini, è meglio scegliere il metodo più adatto: «coordinate dove sono sufficienti e riconoscimento delle immagini solo dove la posizione cambia». Questo è il segreto per un’automazione pratica e veloce.
Consigli per preparare bene le immagini modello
La precisione del riconoscimento delle immagini dipende in larga misura dalla qualità dell’immagine modello registrata. Ci sono alcuni accorgimenti utili. Innanzitutto, ritagliate l’area da usare come riferimento in modo che sia «piccola e distintiva». Anziché acquisire l’intero pulsante, ritagliate solo l’icona o il testo che lo caratterizza, così sarà più difficile confonderlo con altri elementi. Al contrario, se l’area è troppo grande, lievi variazioni circostanti, come il colore dello sfondo o un elemento adiacente, possono impedire il rilevamento della corrispondenza.
Inoltre, evitate le parti il cui colore o stato cambia facilmente. Se usate come riferimento un pulsante che cambia colore al passaggio del mouse o un’area evidenziata quando viene selezionata, la corrispondenza potrebbe non essere rilevata in alcuni stati. Scegliete una parte stabile che mantenga sempre lo stesso aspetto. Poiché modificando la scala di visualizzazione cambia anche la dimensione dell’immagine, è più sicuro acquisire il modello con la risoluzione e la scala effettivamente utilizzate. La somma di queste piccole attenzioni aumenta notevolmente il tasso di successo del riconoscimento delle immagini.
Combinare il riconoscimento delle immagini con altri metodi
Il riconoscimento delle immagini è potente, ma non è universale. Per creare un’automazione solida nel lavoro reale, la soluzione corretta è combinare più metodi, utilizzando ciascuno nel contesto più adatto. Per un pulsante che non cambia mai posizione bastano delle coordinate impostate rapidamente. Riservate il riconoscimento delle immagini ai pulsanti che si spostano o agli elementi che impiegano tempo a comparire. Per leggere le informazioni testuali sullo schermo utilizzate OCR (riconoscimento dei caratteri), mentre per interagire con servizi esterni utilizzate la comunicazione HTTP. In questo modo ogni metodo viene scelto in base all’obiettivo.
makuroku consente di combinare liberamente questi metodi in un unico script. Ad esempio: «attendere che lo schermo sia pronto con WAIT_IMAGE, trovare e fare clic su un pulsante con FIND_IMAGE, leggere il valore del risultato con OCR e differenziare l’elaborazione tramite condizioni». In questo modo è possibile descrivere in un unico flusso un’automazione flessibile e simile al lavoro umano. Invece di affidarsi a un solo metodo, bisogna combinarli sfruttando i punti di forza di ciascuno. Questa mentalità è la via più breve per ottenere un’automazione davvero utile sul campo.
Cosa fare quando il riconoscimento delle immagini non funziona correttamente
Quando si inizia a usare il riconoscimento delle immagini, può capitare che un’immagine apparentemente registrata non venga trovata. Le cause possibili sono diverse. Il caso più comune è una differenza nella scala di visualizzazione o nella risoluzione dello schermo tra il momento in cui viene acquisita l’immagine modello e quello della ricerca effettiva. In questo caso le dimensioni dell’immagine cambiano e non si ottiene una corrispondenza. La soluzione più sicura consiste nel riacquisire il modello con le stesse impostazioni dell’ambiente operativo.
La seconda causa più comune è una soglia di corrispondenza troppo rigida. Se si richiede una corrispondenza perfetta al 100%, anche una minima differenza di tonalità o antialiasing può impedire il rilevamento dell’immagine. Spesso il riconoscimento diventa più stabile abbassando leggermente la soglia e considerando una somiglianza di circa il 90% come corrispondenza. Una soglia troppo bassa aumenta però i falsi positivi, quindi è opportuno effettuare prove sulla schermata reale per trovare il valore più adatto.
Se il problema persiste, occorre rivedere l’area scelta come modello. Se si utilizza come riferimento una parte con uno sfondo variabile o che viene evidenziata quando è selezionata, il suo aspetto cambierà a seconda della situazione e non si otterrà una corrispondenza. Limitare il modello a una parte distintiva e stabile che mantenga sempre lo stesso aspetto, come un’icona o un logo specifico, aumenta il tasso di successo. Scegliere un riferimento facile da individuare è il consiglio più importante per rendere stabile il riconoscimento delle immagini.
Il riconoscimento delle immagini richiede inizialmente un po’ di lavoro di regolazione, ma una volta configurato correttamente offre una flessibilità impossibile da ottenere con coordinate fisse. Anche se la finestra si sposta o il layout cambia, reagisce con precisione purché l’aspetto rimanga invariato. Questa robustezza offre grande tranquillità quando si utilizza a lungo l’automazione nelle attività lavorative reali.
Scenario pratico con il riconoscimento delle immagini
Vediamo le capacità del riconoscimento delle immagini attraverso uno scenario concreto. Supponiamo di voler automatizzare il download periodico di dati da un’applicazione Web. A ogni accesso, il layout della schermata cambia leggermente e anche la posizione del pulsante di download non è fissa. Una macro basata sulle coordinate non riesce ad adattarsi a queste variazioni e smette presto di funzionare.
È qui che entra in gioco il riconoscimento delle immagini. Per prima cosa si registra l’icona del pulsante di download come immagine modello. La macro usa WAIT_IMAGE per attendere il completamento del caricamento della pagina, quindi usa FIND_IMAGE per individuare il pulsante di download sullo schermo e fare clic sulla sua posizione. Ovunque venga visualizzato il pulsante, può essere trovato e selezionato con precisione purché mantenga lo stesso aspetto, ottenendo così un’automazione stabile e indipendente dalle variazioni del layout.
Inoltre, usando WAIT_IMAGE per attendere la comparsa del messaggio di completamento del download prima di passare all’elaborazione successiva, non si perderà alcun passaggio nemmeno quando la connessione è lenta. Il riconoscimento delle immagini introduce così nell’automazione una valutazione naturale per le persone: osservare lo stato dello schermo e agire nel punto giusto al momento opportuno. Proprio per questo permette di creare automazioni robuste anche nell’ambiente di lavoro reale, caratterizzato da continui cambiamenti.
Scenari di questo tipo sono applicabili non solo alle applicazioni Web, ma anche alle applicazioni desktop, ai sistemi aziendali e a molti altri contesti. Grazie al riconoscimento delle immagini, diventano automatizzabili anche le attività a cui in passato si era rinunciato perché la posizione cambia o il momento non è prevedibile. Per iniziare, pensate a un’attività che vi ha creato problemi perché un elemento si spostava ogni volta e provate a stabilizzarla mediante il riconoscimento delle immagini.
Come creare automazioni robuste
L’effettiva utilità di un’automazione sul campo dipende dalla sua capacità di resistere alle situazioni impreviste. Un’automazione basata esclusivamente sulle coordinate registrate può funzionare bene la prima volta, ma tende a fermarsi anche per una minima variazione dell’ambiente. Combinandola con il riconoscimento delle immagini è possibile integrare valutazioni che le persone compiono inconsciamente, come fare clic in base all’aspetto o attendere che la schermata sia pronta.
Oltre alla registrazione tramite GUI, makuroku include di serie comandi di riconoscimento delle immagini come FIND_IMAGE e WAIT_IMAGE. Per prima cosa, registra le operazioni per creare una struttura di base, quindi sostituisci con il riconoscimento delle immagini soltanto i punti in cui la posizione cambia o in cui è necessario attendere il momento giusto. Questa combinazione consente di creare automazioni che non si interrompono al primo imprevisto, ma resistono al disordine degli ambienti reali. Poiché tutte le funzionalità possono essere provate gratuitamente, inizia stabilizzando tramite il riconoscimento delle immagini quelle attività in cui «lo spostamento continuo della posizione causava problemi».
Provalo gratis
Automatizzalo con makuroku
makuroku registra mouse e tastiera e li riproduce automaticamente. Aggiungi script SCR e integrazione IA (MCP) quando serve di più. Tutte le funzionalità gratis su Windows.
Altri articoli