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.
General deployment platform requirements
There is a list of general requirements for deploying a FingerCell-based software on embedded hardware with low-power microcontrollers. If you are going to use more powerful hardware, like Raspberry Pi, see more specific requirements below on this page.
The 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.
- 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.
ARM Linux specific deployment platform requirements
Please contact us and report the specifications of a target device to find out if it will be suitable for running FingerCell-based applications. See the general deployment requirements above on this page for a different hardware platform.
The FingerCell ARM Linux SDK is intended for deploying the FingerCell technology on Raspberry Pi single-board computers or similar devices. The detailed requirements are:
- A device with ARM-based processor, running Linux 3.2 kernel or newer. Raspbian Linux distribution is recommended.
- ARM-based 900 MHz processor or better is recommended. Floating Point Unit (FPU) is not required for the FingerCell algorithm.
At least 2 MB of free RAM should be available for the FingerCell algorithm.
- Additional RAM is required if 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.
- Fingerprint reader. FingerCell SDK includes support modules for several fingerprint scanners under ARM Linux platform. Also, fingerprint images in BMP, JPG or PNG formats can be processed thus almost any third-party fingerprint capturing hardware can be used with the FingerCell technology if it generates images in the mentioned formats.
- glibc 2.13 or newer.
- libstdc++-v3 4.7.2 or newer.
Technology evaluation and development platform requirements
At the moment FingerCell technology can be evaluated on Microsoft Windows and Linux platforms.
There are some specific requirements for developing FingerCell-based applications, as well as running FingerCell technology demo application on Microsoft Windows:
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.
- If a fingerprint scanner is required, note that some scanners are supported only on 32-bit OS or only from 32-bit applications.
- 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 Windows specific:
- Microsoft Windows 7 / 8 / 10, 32-bit or 64-bit.
- Microsoft .NET framework 4.5 or newer (for .NET components usage).
Linux x86/x86_64 specific:
- Linux 2.6 or newer kernel (32-bit or 64-bit) is required. Linux 3.0 kernel or newer is recommended.
- glibc 2.13 library or newer
- GCC-4.4.x or newer
- GNU Make 3.81 or newer