Blog | G5 Cyber Security

Iris Scan Accuracy: Hamming Distance & False Rejections

TL;DR

Reducing false rejections in iris recognition means finding the right balance between security and usability. This guide explains how to adjust the Hamming distance threshold to achieve that, considering the trade-off with false acceptance rate.

Understanding the Problem

Iris scan systems work by creating a unique ‘iris code’ for each eye. When someone tries to log in, their current iris is scanned and compared to stored codes. The comparison produces a Hamming distance – a measure of how different the two codes are.

False Rejection: The system incorrectly says the person isn’t who they claim to be (even though they are). This happens when the Hamming distance is too high, meaning the system is too strict.

False Acceptance: The system incorrectly allows someone else access. This happens when the Hamming distance is too low, making the system too lenient.

Step-by-step Guide to Adjusting Hamming Distance

  1. Gather Data: You need data from real users – both legitimate attempts and impostor attempts.
    • Legitimate Attempts: Record the Hamming distances for when the correct person tries to log in.
    • Impostor Attempts: Record the Hamming distances when someone else tries to log in.
  2. Calculate Statistics: Analyse your data.
    • False Rejection Rate (FRR): The percentage of legitimate users rejected by the system.
    • False Acceptance Rate (FAR): The percentage of impostors incorrectly accepted.
    • Equal Error Rate (EER): The point where FRR and FAR are equal. This is a good overall measure of accuracy.
  3. Set an Initial Threshold: Start with a default Hamming distance threshold.
    • Many systems begin around 0.3 – 0.4, but this varies greatly depending on the iris scan technology and sensor quality. Check your system documentation for recommendations.
  4. Test Different Thresholds: Systematically change the Hamming distance threshold.
    • Increase the threshold to reduce false acceptances (but increase false rejections).
    • Decrease the threshold to reduce false rejections (but increase false acceptances).
  5. Evaluate Results: For each threshold, recalculate FRR and FAR.

    You can use a simple script or spreadsheet to do this. Here’s an example of how you might calculate the FRR:

    # Example Python code (requires data in a list called 'legitimate_distances')
    threshold = 0.35
    rejected_count = sum(1 for distance in legitimate_distances if distance > threshold)
    many_attempts = len(legitimate_distances)
    frr = rejected_count / many_attempts
    print(f"False Rejection Rate: {frr:.2%}")
  6. Choose the Optimal Threshold: Select a threshold that balances FRR and FAR based on your security needs.
    • High Security: Prioritise low FAR, even if it means higher FRR.
    • Usability Focused: Prioritise low FRR, even if it means slightly higher FAR.
    • Aim for an EER that is acceptable for your application.
  7. Monitor and Adjust: Continuously monitor the system’s performance.
    • Over time, environmental factors or changes in user demographics might require you to re-evaluate and adjust the threshold.

Important Considerations

Exit mobile version