| # Fingerprint System Performance Analysis and Qualification | |
| This document gives a high level overview of what is required to analyze the | |
| performance of a fingerprint system for Chrome OS. In this document, the | |
| *fingerprint system* is the combination of the fingerprint sensor, fingerprint | |
| MCU (FPMCU), and matching library that runs on the FPMCU. | |
| ## Requirements | |
| 1. An **FPMCU firmware** that is approved by the Chrome OS Fingerprint Team | |
| This should include the matching library and any relevant changes necessary | |
| to enable full fingerprint functionality within the Chrome OS User | |
| Interface. | |
| *Although the fingerprint study tool will collect "raw" fingerprint captures | |
| from the sensor [bypassing the matching library], it is important for the | |
| study participants to familiarize themselves with the fingerprint unlock | |
| feature on Chrome OS, before collecting samples for analysis. To achieve | |
| this, the participants will enroll their finger(s) on the Chromebook and use | |
| it to unlock the device multiple times.* | |
| The final firmware for a qualification must be built by the Chrome OS | |
| Fingerprint Team. If the matching library or any code that impacts the | |
| performance of the fingerprint system changes after qualification, a new | |
| qualification would be required. | |
| 2. A **Chromebook** that is fitted with the fingerprint sensor and FPMCU | |
| The fingerprint sensor must be positioned in a natural location that is | |
| approved by Chrome OS. | |
| For qualification, the testing lab will require at least three identical | |
| Chromebook test devices to increase testing speed and redundancy. | |
| 3. A **Chrome OS image** with the Fingerprint Study Tool enabled | |
| This is a Chrome OS image file that will be used to install Chrome OS on the | |
| Chromebook being tested. In particular, this image must include the | |
| [Fingerprint Study Tool]. This tool prompts the test participant to touch | |
| the sensor and aggregates the fingerprints collected. For qualifications, | |
| this image must be built by the Chrome OS Fingerprint Team. | |
| The following are some of the Fingerprint Study Tool configuration | |
| parameters to consider: | |
| - The number of fingers to capture. | |
| - The number of enrollment captures. | |
| - The number of verification captures. | |
| See [Fingerprint Study Tool] for instructions on how to prepare the image. | |
| 4. A **Performance Evaluation Tool** | |
| This is a tool that analyzes the offline raw fingerprint captures produced | |
| by the fingerprint study tool. It is expected to accurately identify whether | |
| the fingerprint system meets the [Chrome OS Fingerprint Requirements] for | |
| FRR/FAR as true to real world conditions as possible. In general, it should | |
| demonstrate the FAR/FRR performance throughout the range of possible | |
| matching thresholds and the FRR at predefined thresholds (corresponding to | |
| 1/50k and 1/100k FAR). | |
| The tool itself must run on a standard amd64 GNU/Linux machine, but must | |
| invoke the same fingerprint matching library with the same parameters to the | |
| FPMCU matching library being qualified. This tool must accurately measure | |
| the performance of the provided FPMCU matching library being qualified. | |
| Again, there should be no difference in performance between the performance | |
| evaluation tool and the fingerprint systems being qualified. | |
| *If the FPMCU fingerprint matching library is provided by the vendor, the | |
| vendor is required to provide the Performance Evaluation Tool. This tool | |
| must be written in Python 3, but may invoke matching specific functions from | |
| a pre-compiled matching library. The Python 3 source must be committed to | |
| the [Chromium OS FP Study Repository]. Google reserves the right to have a | |
| third party auditor evaluate the accuracy of the provided Performance | |
| Evaluation Tool and its accompanying matching library. This includes | |
| source-level analysis of the pre-compiled matching library.* | |
| Considering errors can occur in the fingerprint capture/labeling process, | |
| additional diagnostics should be built into the tool to understand which | |
| participants contribute more negatively to the overall performance. Again, | |
| the tool may indicate which participants/captures are problematic, but may | |
| not exclude these from the overall analysis. | |
| At a minimum, the tool should present the following: | |
| - Plot of FAR vs. matching threshold (threshold on x-axis) | |
| - Plot of FRR vs. matching threshold (threshold on x-axis) | |
| - Plot of [Detection Error Tradeoff] (FAR on x-axis, FRR on y-axis) | |
| - The FRR statistics at 1/50k and 1/100k FAR | |
| - Any Failure to Enrolls (FTE) that occurred | |
| If enrolled template updating is used, the before and after values/plots | |
| must be provided. | |
| ## Process | |
| 1. Capture participant fingerprint samples using the [Fingerprint Study Tool]. | |
| For qualification, the [Fingerprint Sensor FAR/FRR Test Procedure] must be | |
| followed. | |
| 2. Run the analysis tool on the captured fingerprint samples to determine if | |
| the fingerprint matching performance meets | |
| [Chrome OS Fingerprint Requirements]. | |
| For qualifications, no fingerprint samples may be excluded/filtered. If a | |
| truly unique and unnatural fingerprint capturing situation arises, the | |
| Chrome OS Fingerprint Team can assess and correct the discrepancy on a case | |
| by case basis. | |
| 3. Further manual testing must be done to ensure that on-chip matching times | |
| meet [Chrome OS Fingerprint Requirements]. | |
| [Fingerprint Study Tool]: README.md | |
| <!-- TODO(hesling): The following test procedure needs to be published for all. --> | |
| [Fingerprint Sensor FAR/FRR Test Procedure]: https://chromeos.google.com/partner/dlm/docs/hardware-specs/fingerprintsensor.html | |
| [Chrome OS Fingerprint Requirements]: https://chromeos.google.com/partner/dlm/docs/latest-requirements/chromebook.html#fingerprint | |
| [Detection error tradeoff]: https://en.wikipedia.org/wiki/Detection_error_tradeoff | |
| [Chromium OS FP Study Repository]: https://chromium.googlesource.com/chromiumos/platform2/+/HEAD/biod/study/ |