HIIDE 4 Biometrics Collection Device
One of the major projects I’ve worked on while at SecuriMetrics, Inc was the Handheld Interagency Identity Detection Equipment series 4 (HIIDE 4). In a nutshell, this mobile device was able to capture a person’s irises, fingerprints, and face images to perform biometric searching against the local database. This was a great boon for law enforcement and military personnel because it was able to package up the functionalities of three capturing devices into a convenient form factor.
My primary responsibility that I had for the project was developing, maintaining, and documenting the device’s API in both C++ and C#. The main API itself was a static C++ library that exposed the fine grain functionalities of the device such as starting and stopping the biometric sensors, remote connection and authentication, subject databases access, and various maintenance methods. While this API was very powerful, it was not very easy to use. Since the majority of our customers were .Net developers, I created a C# wrapper for the C++ API and designed it to be as user-friendly as possible by masking a lot of the complexity. This resulted in a better user experience overall. Capturing a subject’s biometrics went from being 10 method calls to just one. In addition, I added XML serialization support so that developers using the API could easily import and export subjects to and from the device.
Another small, but high impact user experience feature that I added to the HIIDE 4 is the an audible clicker to the iris capturing mode. When I was at on site locations, I was able to observe how the HIIDE 4 device was used. One thing that struck me was in hostile biometric capture environments, the operator is not able to view the screen when capturing an iris since he is preoccupied with pinning down the subject. This made capturing irises a long process as images would be rejected. By adding an audible clicker, the device operator now knows whether the device is capturing an iris without having to look at the screen. The clicker utilized the processed image quality to determine the rate at which the clicking sound was made. Higher image quality translated into faster clicks. This simple addition helped to cut down the amount of time spent capturing the biometrics of a hostile subject.
For device subsystem development, one of the responsibilities I held was creating an efficient shadow database scheme for the subject database. The driving force was to make a backup of all subjects recently enrolled on the device, while at the same time trying to minimize the on disk footprint since the internal hard drive was small. The solution that I designed and implemented involved saving each subject individually as its own file referenced by the subject ID number with the contents of the file being a packed binary representation of the subject. In this way, backup database corruption is minimized to only the corrupted file in question, an individual backup subject can be quickly restored, and the disk footprint is small in comparison to an XML-based representation.
Aside from the major responsibilities noted above, I also worked on various aspects of the HIIDE 4 device:
- Creating a power management module for the HIIDE 4 device application
- Creating an encryption layer for all data stored on the device and tying the key to a volatile portion of device memory to render the data on the device inaccessible in the event of device tampering
- Providing seamless image conversions when importing and exporting subject records
- Maintaining and bug fixing various aspects of the HIIDE 4 device application
- Documenting user facing APIs