Hello Robert,
I am quite new to the world of Windows programming so please forgive me for asking simple question like this...
I am trying to store Person and Fingerprint objects in mysql tables (MyPerson and MyFingerprint) using entity framework. Is there any example I can look at? If you would be so kind to point me to a right direction where/what to look for...
MyFingerprint table has blob binary field for storing extracted templates, but I am not able to assign them back to fingerprint object while reconstructing person from database (for identification). Most probably I am completely on a wrong track here...
Serialized (My)Fingerprint and (My)Person objects work as expected. I am able to store/retrieve serialized objects to/from database, but would like to know what would be the best way of storing this data performance wise?
Thanks again!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
SourceForge forums seem to be broken and fix is nowhere in sight. I've responded to Arsla via email. Since SF forum seems to partially work now, I am copying my response here.
SourceAFIS provides you with several serialization options. Choice of specific serialization technique depends on your project. You can either serialize the whole Fingerprint/Person object or serialize individual templates. Templates can be furthermore saved in several different formats.
The built-in .NET serialization is convenient, but it has two serious drawbacks. First, it embeds fingerprint images in the serialized blob. That can be a performance problem with large number of fingerprints, because you cannot load templates without images. Second, the .NET serialization is very brittle. It will break with every change to SourceAFIS data structures as well as with any change to classes you derive from SourceAFIS ones. I recommend the .NET serialization only for transient use, e.g. for sending data over tightly knit network.
It is much better to serialize individual templates, but this has a few gotchas. Templates in the present version of SourceAFIS do not include finger position. You have to save the Finger property yourself if you use it. Templates should be assumed to be specific to the particular version of SourceAFIS that generated them. You should always keep the original fingerprint images and re-extract templates after every SourceAFIS upgrade. Even if template structure stays the same, semantics can change. In order to maintain highest possible accuracy, always use extractor and matcher from the same version of SourceAFIS.
SourceAFIS presently supports three template formats: compact binary, XML, and ISO/IEC 19794-2. The ISO format is for compatibility only. It cannot preserve all the information that SourceAFIS extractor can generate. It should be only used for exchange of templates with other biometric systems. The recommended format is compact binary. It will reliably preserve all information in SourceAFIS templates. Binary templates are small and they load quickly. XML templates are semantically equivalent to binary templates, i.e. they contain the same information, but they use the more readable XML syntax at the cost of size and parsing speed.
That said, I don't see where the serialization could go wrong. Could you explain the particular problem you are experiencing in more detail?
Kind Regards,
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Regarding the saved template data size - how does the WSQ format compared to the above 3 mentioned options? (in terms of minimizing the data size in bytes).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
WSQ is image format, not template format. You would be forced to re-extract the template every time you load the WSQ image from DB. Extraction will take too much time for any non-trivial DB size. Images should be always saved just in case though.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Latest SourceAFIS (Java port, but also .NET port once it is upgraded) produces and accepts only its own templates serialized as JSON documents. Limited ISO 19794-2 import is supported only to allow processing of fingerprints from sensors that won't give you the original fingerprint image.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello Robert,
I am quite new to the world of Windows programming so please forgive me for asking simple question like this...
I am trying to store Person and Fingerprint objects in mysql tables (MyPerson and MyFingerprint) using entity framework. Is there any example I can look at? If you would be so kind to point me to a right direction where/what to look for...
MyFingerprint table has blob binary field for storing extracted templates, but I am not able to assign them back to fingerprint object while reconstructing person from database (for identification). Most probably I am completely on a wrong track here...
Serialized (My)Fingerprint and (My)Person objects work as expected. I am able to store/retrieve serialized objects to/from database, but would like to know what would be the best way of storing this data performance wise?
Thanks again!
To everyone reading this thread,
SourceForge forums seem to be broken and fix is nowhere in sight. I've responded to Arsla via email. Since SF forum seems to partially work now, I am copying my response here.
SourceAFIS provides you with several serialization options. Choice of specific serialization technique depends on your project. You can either serialize the whole Fingerprint/Person object or serialize individual templates. Templates can be furthermore saved in several different formats.
The built-in .NET serialization is convenient, but it has two serious drawbacks. First, it embeds fingerprint images in the serialized blob. That can be a performance problem with large number of fingerprints, because you cannot load templates without images. Second, the .NET serialization is very brittle. It will break with every change to SourceAFIS data structures as well as with any change to classes you derive from SourceAFIS ones. I recommend the .NET serialization only for transient use, e.g. for sending data over tightly knit network.
It is much better to serialize individual templates, but this has a few gotchas. Templates in the present version of SourceAFIS do not include finger position. You have to save the Finger property yourself if you use it. Templates should be assumed to be specific to the particular version of SourceAFIS that generated them. You should always keep the original fingerprint images and re-extract templates after every SourceAFIS upgrade. Even if template structure stays the same, semantics can change. In order to maintain highest possible accuracy, always use extractor and matcher from the same version of SourceAFIS.
SourceAFIS presently supports three template formats: compact binary, XML, and ISO/IEC 19794-2. The ISO format is for compatibility only. It cannot preserve all the information that SourceAFIS extractor can generate. It should be only used for exchange of templates with other biometric systems. The recommended format is compact binary. It will reliably preserve all information in SourceAFIS templates. Binary templates are small and they load quickly. XML templates are semantically equivalent to binary templates, i.e. they contain the same information, but they use the more readable XML syntax at the cost of size and parsing speed.
That said, I don't see where the serialization could go wrong. Could you explain the particular problem you are experiencing in more detail?
Kind Regards,
Robert
Regarding the saved template data size - how does the WSQ format compared to the above 3 mentioned options? (in terms of minimizing the data size in bytes).
WSQ is image format, not template format. You would be forced to re-extract the template every time you load the WSQ image from DB. Extraction will take too much time for any non-trivial DB size. Images should be always saved just in case though.
Latest SourceAFIS (Java port, but also .NET port once it is upgraded) produces and accepts only its own templates serialized as JSON documents. Limited ISO 19794-2 import is supported only to allow processing of fingerprints from sensors that won't give you the original fingerprint image.