2011-01-27 15 views
15

Sto utilizzando il formato di dati delle impronte digitali iso 19794-2. Tutti i dati sono nel formato iso 19794-2. Ho più di centomila impronte digitali. Desidero fare una ricerca efficiente per identificare la partita. È possibile costruire una struttura ad albero binario per eseguire una ricerca efficiente (più veloce) di corrispondenza? o suggerirmi un modo migliore per trovare la corrispondenza. e mi suggerisce anche una API open source per Java per fare la corrispondenza delle impronte digitali. Aiutami. Grazie.iso 19794-2 formato di impronta digitale

+0

dove hai ricevuto i dati delle impronte digitali? – Yehonatan

+0

@Yehonatan: dal mio cliente. – brainless

+0

@brainless e il client è ...? – Yehonatan

risposta

18

Hai uno sfondo in corrispondenza delle impronte digitali? Non è un problema semplice e avrete bisogno di un po 'di teoria per affrontare un problema del genere. Dai un'occhiata allo this introduction to fingerprint matching del BioLab dell'Università di Bologna (un importante laboratorio di ricerca in questo campo).

Rispondiamo ora alla tua domanda, ovvero come rendere la ricerca più efficiente.

Le impronte digitali possono essere classificate in 5 classi principali, in base al tipo di macro-singolarità che presentano.

Ci sono tre tipi di macro-singolarità:

  • spirale (una sorta di cerchio)
  • ciclo (inversione U)
  • delta (una sorta di tre -way crossing)

Secondo la posizione di quelle macro -singularities, è possibile classificare l'impronta digitale in quelle classi:

  • arco
  • arco tenda
  • occhiello giusto
  • ciclo sinistra
  • spirale

Dopo aver ristretto la ricerca alla classe corretta, è possibile eseguire le partite.Dalla tua domanda sembra che devi svolgere un'attività di identificazione, quindi temo che dovrai fare tutti i confronti, o aggiungere alcuni strati di pre-elaborazione (come la classificazione di cui ho scritto) per restringere ulteriormente il campo di ricerca.

È possibile trovare molte informazioni sulla corrispondenza delle impronte digitali nel libro Handbook of Fingerprint Recognition, di Maltoni, Maio, Jain e Prabhakar - i principali ricercatori in questo campo.

Per leggere il formato ISO 19794-2, è possibile utilizzare alcune utilità sviluppate dal NIST chiamate BiomDI, Software Tools supporting Standard Biometric Data Interchange Formats. Potresti provare a interfacciarlo con algoritmi di corrispondenza open source come quello trovato in this biometrics SDK. Avrebbe tuttavia bisogno di molto lavoro, compresa la conversione da un formato all'altro e la messa a punto degli algoritmi.

La mia opinione (come studente di dottorato di ricerca in biometria) è che in questo campo è possibile scrivere facilmente codice che fa il 60% di quello che ti serve in poco tempo, ma il restante 40% sarà:

  • difficile da scrivere (20%); e
  • davvero difficile da scrivere senza soldi e tempo (20%).

Spero che questo aiuti!

Edit: aggiunto informazioni NIST BiomDI

Edit 2: dal momento che la gente a volte mi email chiedendo una copia dello standard, purtroppo non ce l'ho da condividere. Tutto quello che ho è un link to the ISO page that sells the standard.

+0

@Andrea Spadaccini: Grazie mille :-) – brainless

+0

Prego, se hai bisogno di ulteriore aiuto fammi sapere :) –

+0

@Andrea Spadaccini: come posso contattarti? siete su Facebook? oppure puoi darmi la tua mail, per favore? – brainless

2

Il formato iso specifica i meccanismi utili per la corrispondenza e i parametri decisionali. Decidi quale meccanismo desideri utilizzare per identificare la partita e i relativi parametri decisionali. Una volta determinati questi meccanismi e parametri decisionali, esaminarli per vedere quali sono in grado di essere inseriti in un ordine - con un grado piuttosto elevato di valori individuali, in quanto si desidera evitare collisioni multiple sui dati. Dopo aver identificato un piccolo numero di elementi di dati (preferibilmente uno) che hanno questa proprietà, calcola la proprietà per ogni impronta digitale, preferibilmente man mano che vengono aggiunti al database, anche se inizialmente è possibile eseguire un carico di massa. Quindi la ricerca di una corrispondenza viene eseguita sulla caratteristica calcolata e può essere eseguita da un albero binario, un albero nero-rosso o una varietà di altri processi di ricerca. Non posso raccomandare una particolare strategia di ricerca senza sapere quale forma e grado di differenziazione dei valori avete nel vostro database. Tale strategia di ricerca dovrebbe, tuttavia, essere in grado di fornire una (piccola) gamma di possibili corrispondenze - che possono quindi essere testate individualmente rispetto al meccanismo di corrispondenza e ai parametri, prima di decidere una corrispondenza specifica.

Problemi correlati