Fingerprint identification for embedded platforms
FingerCell technology is designed for embedded biometric systems developers and features compact, sensor-independent and cross-platform fingerprint recognition algorithm. It offers decent performance on various embedded devices based on low-power microcontrollers or processors.
FingerCell is available for integrators as Software Development Kits (SDK) with FingerCell library or source code for developing a fast and reliable system on embedded or mobile platform.
There are specific system requirements for evaluating FingerCell technology, developing a FingerCell-based solution and deploying it on embedded hardware.
Click on specific platform to view the corresponding requirements.
Technology evaluation and development platform requirements
At the moment FingerCell technology can be evaluated on Microsoft Windows platform.
There are some specific requirements for developing FingerCell-based applications, as well as running FingerCell technology demo application on Microsoft Windows:
- Microsoft Windows 7 / 8 / 10, 32-bit or 64-bit. If a fingerprint scanner is required, note that some scanners are supported only on 32-bit OS or only from 32-bit applications.
PC or laptop with x86 (32-bit) or x86-64 (64-bit) compatible processors.
- 2 GHz or better processor is recommended.
- SSE2 support is required. Processors that do not support SSE2 cannot run the FingerCell algorithm. Please check if a particular processor model supports SSE2 instruction set.
- At least 128 MB of free RAM should be available for the application. Additional RAM is required for applications that perform 1-to-many identification, as all biometric templates need to be stored in RAM for matching. For example, 10,000 templates (each with 1 fingerprint inside) require from 10 MB of additional RAM depending on configured template size.
- Fingerprint reader (optional). The trial version of FingerCell SDK includes support modules for more than 100 fingerprint scanners and sensors under Microsoft Windows platform. Also, fingerprint images in BMP, JPG or PNG formats can be provided to the FingerCell algorithm for evaluation.
- Network/LAN connection (TCP/IP) for client/server applications. If communication must be secured, a dedicated network (not accessible outside the system) or a secured network (such as VPN; VPN must be configured using operating system or third party tools) is recommended.
- Microsoft .NET framework 4.5 or newer (for .NET components usage).
Deployment platform requirements
There is a list of common requirements for deploying a FingerCell-based software on embedded hardware. These requirements are provided for performing operations with 180 x 256 pixels fingeprint images at 385 ppi resolution, or, correspondingly, 234 x 332 pixels at 500 ppi.
A device with ARM-based microcontroller:
- ARM Cortex-M4 based microcontroller, running at 168 MHz or better recommended for performing template extraction and matching in the specified time.
- Floating Point Unit (FPU) is not required for the FingerCell algorithm.
- Slower microcontrollers may be used if a system uses smaller fingerprint images or has lower performance requirements.
Memory requirements depend on a specific operation performed with fingerprint templates.
Note that RAM is mostly used only during a specific operation (extraction, matching, stitching) and is freed aftewards, so it can be reused for another operation.
The program data (code) is intended to be stored and executed in flash memory:
- Template extraction from an image requires 128 kB of RAM and 100 kB of Flash storage for the 385 ppi image specified above.
- Template matching requires 16 kB of RAM and 70 kB of Flash storage.
- Template stitching requires 50 kB of RAM and 80 kB of Flash storage. This RAM amount is required for performing the operation with 9 templates.
- Additional flash storage is required for systems that store multiple fingerprint templates.
Additional RAM is required in these cased:
- The original raw fingerprint image needs to be preserved in the RAM during the template extraction operation. In this case the additional amount of RAM equals to the image bitmap size (i.e. additional 45 kB for a 180 x 256 pixels image).
- The raw fingerprint image is larger than specified above. In this case the minimal amount of RAM for template extraction will be equal to 2 times the image bitmap size plus 10 kB for internal data structures. This amount does not include the space for preserving the original image in the RAM – see the comment above.
- The system performs 1-to-many identification, as all biometric templates need to be stored in RAM for matching. See technical specifications for more information.
- The RAM should be not fragmented – at least it should have continuously addressable space to fit single copy of raw image.
- FingerCell technology can be deployed on different platforms, which can be with or without operating system. However, FingerCell libraries require some functions from the standard C library: malloc, calloc, realloc, free, memcpy, memcmp, memset, memmove, qsort, pow. These functions should be provided by the integrators.
Fingerprint readers and fingerprint images.
The FingerCell Extractor component directly accepts fingerprint images as raw grayscale pixels for further biometric template extraction, thus almost any fingerprint sensor can be used.
- Integrators should implement by themselves the passing of fingerprint images to a device which runs the FingerCell algorithm.
- The fingerprint images should meet the technical specifications for acceptable fingerprint recognition performance on a target device.