- #computer-vision
- #automation
- #games
GTA V Fingerprint Solver
Un risolutore basato sulla visione artificiale per il minigioco delle impronte nel colpo al casinò di GTA V: legge lo schermo, confronta l’impronta con quattro modelli e inserisce la soluzione in meno di un secondo.
- Ruolo
- Sviluppatore unico, open source.
- Risultato
- Risolve ogni impronta in meno di un secondo. Un esercizio compatto di template matching con una scadenza in tempo reale.
- Anno
- 2024
- Stato
- completato
- Stack
- Python
- OpenCV
- NumPy
- Pillow
- PyAutoGUI
L'inizio
Un minigioco contro il tempo
Il colpo al Diamond Casino di GTA V ha un minigioco di clonazione delle impronte: il gioco mostra un'impronta bersaglio e otto frammenti, e bisogna scegliere i quattro che le appartengono prima che scada il tempo. Farlo a mano, ancora e ancora, è lento e facile da sbagliare. Guardandolo da sviluppatore, però, era un'altra cosa: un problema di visione artificiale piccolo e ben delimitato.
L'obiettivo
Leggere lo schermo, riconoscere l'impronta, rispondere in meno di un secondo
Il gioco usa sempre le stesse quattro impronte. Il piano quindi era un risolutore che cattura il minigioco, riconosce l'impronta che ha davanti, trova i suoi quattro frammenti tra gli otto sullo schermo e inserisce la risposta, il tutto prima che una persona abbia finito di leggere lo schermo.
L'avventura
Template matching, un pezzo alla volta
Ho costruito il risolutore in Python con OpenCV. Cattura solo la zona del minigioco, prepara l'immagine e la confronta con le quattro impronte note usando la correlazione incrociata normalizzata. Ogni impronta è salvata anche come quattro quarti di riferimento, che il risolutore cerca tra i frammenti. Una volta trovata la risposta, PyAutoGUI sposta il selettore e conferma con pressioni di tasti simulate.
VideoIl risolutore che completa il minigioco delle impronte0:00 / 0:00Riconoscimento, confronto e input, in tempo reale. Le difficoltà
Abbastanza veloce, e robusto alla grafica del gioco
Il tempo è poco, quindi ogni millisecondo di elaborazione contava. E le impronte non appaiono mai due volte uguali: si spostano leggermente e cambiano luminosità a seconda della scena. Un confronto ingenuo sull'immagine intera avrebbe fallito proprio quando serviva.
La fine
Ogni impronta, in meno di un secondo
Il risolutore riconosce ogni impronta e inserisce la risposta in meno di un secondo, e nelle mie prove non ne ha mai sbagliata una. È un esercizio compatto, ma completo: cattura dello schermo, pre-elaborazione, template matching con il rumore del mondo reale e automazione dell'input, tutto con una scadenza in tempo reale.
- Per risolvere un'impronta
- <1 s
- Per risolvere un'impronta
- Impronte note
- 4
- Impronte note
- Quarti di riferimento
- 16
- Quarti di riferimento
- Errori nelle mie prove
- 0
- Errori nelle mie prove
Riconoscimento dell'impronta
Capisce quale delle quattro impronte del gioco è sullo schermo, confrontandola con modelli noti.
Ricerca dei frammenti
Divide ogni impronta in quarti e trova i quattro frammenti giusti tra gli otto proposti dal gioco.
Tempo reale
Osserva lo schermo di continuo e risponde in meno di un secondo, ben dentro il tempo del minigioco.
Robusto alla grafica del gioco
Il confronto normalizzato regge spostamenti e cambi di luminosità da un colpo all'altro.
Input automatico
Sposta il selettore e conferma la risposta con pressioni di tasti simulate, senza mani.
Cattura mirata
Legge solo la zona dello schermo del minigioco, così resta veloce e leggero.
In azione
Cosa stai guardando:
- La cattura dello schermo intercetta il minigioco appena compare.
- L'impronta viene riconosciuta e la soluzione calcolata quasi all'istante.
- Il selettore si sposta su ogni frammento giusto e lo conferma, con pressioni di tasti automatiche e precise.
Come riconosce un'impronta
Il gioco usa sempre e solo quattro impronte. Il risolutore le conserva sia come modello completo sia divise in quattro quarti, così riesce a riconoscere un'impronta anche quando una parte appare diversa.
Cattura
Prende solo la zona del minigioco e la prepara al confronto: scala di grigi e contrasto.Template matching
Confronta il bersaglio con le quattro impronte note usando la correlazione incrociata normalizzata.Analisi dei quarti
Trova i quattro quarti di riferimento dell'impronta tra gli otto frammenti sullo schermo.Risposta
Sposta il selettore su ogni frammento giusto e conferma, tramite PyAutoGUI.
Sotto il cofano
Cattura e pre-elaborazione
Pillow, NumPy
Cattura la zona della finestra di gioco e applica filtri che rendono più facile confrontare le creste dell'impronta.
Template matching
OpenCV
cv2.matchTemplatecon correlazione incrociata normalizzata, che tollera piccoli cambi di luce e di posizione.Analisi per componenti
Quarti
Quando l'impronta intera non combacia bene, ogni quarto viene confrontato da solo, e il riconoscimento resta affidabile.
Automazione dell'input
PyAutoGUI
Trovata la risposta, il risolutore guida il selettore con pressioni di tasti simulate e tempi precisi.
Sfide
Problema
Prestazioni in tempo reale
Il tempo è poco: la risposta deve arrivare il prima possibile.
Soluzione
I modelli vengono caricati una volta all'avvio e il confronto avviene solo sulla zona del minigioco, mai sull'intero schermo.
Problema
Variazioni dell'impronta
Le impronte si spostano leggermente e cambiano luminosità da una scena all'altra.
Soluzione
Confrontare i quattro quarti separatamente, e non solo l'impronta intera, mantiene il risultato affidabile quando una zona appare diversa.
Problema
Convivere con il gioco
Il risolutore deve leggere e agire senza disturbare il gioco.
Soluzione
Una cattura dello schermo non invasiva e un input che passa dagli stessi tasti che premerebbe un giocatore.
Competenze acquisite
Visione artificiale
OpenCV
Template matching, pre-elaborazione e i compromessi tra precisione e velocità.
Elaborazione delle immagini
NumPy, Pillow
Trasformare catture dello schermo grezze in dati puliti e confrontabili.
Sistemi in tempo reale
Latenza
Progettare un ciclo attorno a una scadenza rigida, dove il precalcolo conta più del codice furbo.
Automazione dell'input
PyAutoGUI
Controllo della tastiera preciso e temporizzato, guidato da ciò che il programma vede.
Quanto è veloce?
Riconosce l'impronta e inserisce la risposta in meno di un secondo, ben dentro il tempo del minigioco.
Perché solo quattro modelli?
Perché il gioco usa sempre e solo quattro impronte. È questo che rende il problema ben delimitato: il risolutore non deve imparare niente, solo riconoscere in modo affidabile.
Come inserisce la risposta?
Tramite PyAutoGUI: sposta il selettore e conferma con pressioni di tasti simulate, gli stessi tasti che userebbe un giocatore.
Il codice è disponibile?
Sì, su GitHub.
Ti serve qualcosa di simile?
Dimmi cosa deve fare, dove gira e per quando ti serve.
Altri lavori

- #computer-vision
- #automation
- #roblox
Leaf's Grand Blue Autofish
Un'app gratuita per Windows che pesca per te in Grand Blue su Roblox e registra ogni pesce che legge.

- #computer-vision
- #automation
- #roblox
Pet Sim 99 Autofish
Un aiuto che legge lo schermo e segue i vortici nel minigioco di pesca di Pet Simulator 99.

- #discord
- #bots
- #api-integration
BotFire
Un bot Discord per la mia community: giochi suggeriti e calendario Twitch sincronizzato con Google Calendar.



















