FX3 SDK adotta algoritmi altamente innovativi per l'estrazione delle caratteristiche e il confronto delle impronte digitali in grado di assicurare un'elevata accuratezza e una grande efficienza. FX3 fa ricorso a diversi moduli distinti per il confronto (confronto multimodale) e l'estrazione delle minuzie, e in generale delle altre caratteristiche dell'impronta, direttamente dall'immagine a livelli di grigio.
Confronto multi modale: Le caratteristiche più discriminanti delle impronte digitali sono senza dubbio le cosidette minuzie, e come la maggior parte degli algoritmi di riconoscimento, anche FX3 utilizza le minuzie al fine di valutare la similarità di due impronte. Non sempre però le minuzie possono essere estratte con sufficiente affidabilità a causa della cattiva qualità di alcune impronte acquisite da dita di scarsa qualità intrinseca (anziani, lavoratori manuali, o altri soggetti dove lo spessore delle creste epidermiche risulta molto ridotto). La figura mostra alcune impronte dove la localizzazione delle minuzie risulta molto problematica non solo da parte di un algoritmo automatico ma anche da parte di un esperto umano.
In tali casi, il confronto automatico, se basato esclusivamente sulle minuzie, non è in grado di decidere con sufficiente affidabilità se le impronte appartengono o meno alla stessa persona, e molto spesso produce false reiezioni (incrementando FRR).
FX3 utilizza, oltre alle minuzie, altri 4 tipi di caratteristiche dell'impronta che codificano il flusso locale delle creste epidermiche, la loro densità, la forma puntuale in particolari regioni ritenute particolarmente interessanti, ecc. I test sperimentali condotti hanno evidenziato che tali caratteristiche sono in grado di fornire un notevole aiuto al "matcher" mettendolo in condizioni di poter decidere con maggiore certezza specialmente:
Nonostante la grande mole di informazioni estratte, il modello dell'impronta (template) ha una dimensione media di circa 6Kbyte e una dimensione massima di circa 8Kbyte. Tali dimensioni possono essere ridotte del 50% circa (dimensione massima minore di 4Kbyte) agendo su alcuni parametri disponibili allo sviluppatore; ciò può essere utile nel caso di memorizzazione del template su supporti di capacità limitata (es. Smart Card).
Estrazione delle caratteristiche direttamente dall'immagine a livelli di grigio: FX3 esegue l'estrazione delle minuzie e delle altre caratteristiche utilizzate per il confronto direttamente sull'immagine a livelli di grigio (senza eseguire binarizzazione e thinning come la maggior parte degli approcci esistenti). Nel lavoro scientifico "Direct Gray-Scale Minutiae Extraction in Fingerprints", IEEE transaction on Patten Analysis Machine Intelligence, 1997, è dimostrato che l'estrazione diretta delle caratteristiche comporta una minore perdita di informazioni (e conseguentemente maggiore precisione) e al contempo riduce i tempi di calcolo. Gli algoritmi di estrazione delle caratteristiche di FX3 rappresentano un'evoluzione di quelli inizialmente introdotto nel suddetto lavoro scientifico.
Una misura assoluta dell'accuratezza di un sistema biometrico è priva di significato se non riferita a uno specifico database. Le prestazioni nel seguito riportate fanno riferimento a un test svolto su di un database di impronte raccolte con lo scanner Fx2000. Tale database è stato collezionato acquisendo le impronte di 105 utenti per lo più inesperti, e contiene anche diverse impronte di scarsa qualità (tra cui quelle nella figura sopra riportata).
FX3 può essere configurato per operare in due modi principali DEFAULT (massimizza l'accuratezza) e FAST (a scapito di una lieve perdita di prestazioni si ottiene un dimezzamento dei tempi di calcolo). Le tabelle sottostanti riportano le prestazioni misurate sul database di test per entrambe le modalità operative.
soglia t | SPEED_DEFAULT | SPEED_FAST | ||
FAR | FRR | FAR | FRR | |
0.3500 | 0.0049 (0.49%) | 0.0005 (0.05%) | 0.0032 (0.32%) | 0.0009 (0.09%) |
0.3750 | 0.0025 (0.25%) | 0.0010 (0.10%) | 0.0014 (0.14%) | 0.0014 (0.14%) |
0.4000 | 0.0011 (0.11%) | 0.0014 (0.14%) | 0.0005 (0.05%) | 0.0020 (0.20%) |
0.4250 | 0.0006 (0.06%) | 0.0019 (0.19%) | 0.0002 (0.02%) | 0.0034 (0.34%) |
0.4500 | 0.0004 (0.04%) | 0.0026 (0.26%) | 0.0000 (0.00%) | 0.0049 (0.49%) |
0.4750 | 0.0000 (0.00%) | 0.0036 (0.36%) | 0.0000 (0.00%) | 0.0063 (0.63%) |
OPERAZIONE | SPEED_DEFAULT | SPEED_FAST |
Estrazione caratteristiche | 86 ms | 56 ms |
Confronto | 28 ms | 13 ms |
Verifica identità (1:1) | 114 ms | 69 ms |
Identificazione (1:50) | 0.79 sec | 0.38 sec |
Il tempo di Verifica identità (1:1) è il tempo medio necessario a verificare l'identità di un individuo e comprende il tempo di estrazione caratteristiche e il tempo di matching.
Il tempo di Identificazione (1:50) è il tempo medio necessario a identificare un individuo su un database di 50 individui (nell'ipotesi di trovarlo in media al 25 posto e quindi di eseguire 1 volta l'estrazione delle caratteristiche e 25 volte il matching).