Image-processing tools rush fingerprint-scanner development
To test and prototype the company's fingerprint-recognition system, software developers at digitalPersona (Redwood City, CA) used MatLab from The MathWorks (Natick, MA). digitalPersona produced its first product, U are U, using MatLab and the functions of the package's image-processing and signal-processing toolboxes.
As a fingerprint-identification system for PCs, U are U includes a mouse-sized scanner with a USB connector and software that scans and digitizes fingerprints and identifies authorized users and allows them computer access. The software takes four scans of a fingerprint and then uses a set of algorithms, developed in MatLab, to establish a print-identification file used as a reference during each log-in attempt.
When Serge Belongie, chief researcher, and Vance Bjorn, chief technical officer, joined forces at digitalPersona, they chose MatLab for development and prototyping. "It was perfectly suited to the data structure of images and allowed us to test out ideas quickly," Belongie says. "The addition of multidimensional arrays to MatLab's feature set is helpful for organizing image processing problems," he says. "In one 3-D array, I can store a set of 2-D filters. In another, I can store a stack of images, starting with the raw image itself, proceeding through multiple filtered versions of that image, and concluding with an array of detected features."
The Math Works image-processing toolbox also allowed Belongie and Bjorn to read and write various file formats and resize and rotate images. Belongie and Bjorn used the Signal Processing Toolbox for exploring 1-D and 2-D filter designs and the Matlab compiler to generate C versions of Matlab image-processing functions (C-MEX files) before embedding them in production code.
"With the compiler, we can pop out the C function and insert a variation originally coded in the Matlab language," explains Bjorn. "That way, the new algorithm can be tested with production code." In future, digitalPersona plans a standalone application using Matlab C math libraries that will inspect calibration images from fingerprint sensors and assess parameters such as blur, contrast, optical distortion, and lighting variations.