We're planting a tree for every job application! Click here to learn more

Are facial recognition systems so bad?

Nikolay Donets

10 May 2021

2 min read

Are facial recognition systems so bad?
  • Python

Forbes posted an article 'London Police Facial Recognition ‘Fails 80% Of The Time And Must Stop Now’'. The question is, are facial recognition systems so bad in reality? To estimate it quantitively let's rephrase the question to the following one: what is the probability that an individual identified as a criminal is a real offender?

First, let's write a simple function in python to estimate it:

def if_prob(sensitivity: float, specificity: float, prob: float) -> float:
    """
    :param sensitivity: true positive results, probability
    :param specificity: true negative results, probability
    :param prob:        probability of the event
    """
    numerator = sensitivity * prob
    denominator = sensitivity * prob + (1.0 - specificity) * (1.0 - prob)
    return numerator / denominator

Now we are ready to answer the question. We can assume that the sensitivity of a given facial recognition system is 0.99 with a specificity of 0.99. Therefore we have true positive results in 99 trials out of 100, and we correctly identify false-positive 99 times out of 100. According to the "Annual Abstract of Statistics" (National Office of Statistics. 2009. Retrieved 23 January 2009), the prison population was about 149 people per 100,000 in 2007. From that, the probability of criminal might be estimated as 149/100000. With these numbers we have:

>>> if_prob(0.99, 0.99, 149/100_000)
0.1287150311512887

That is, a 12.8% probability to correctly identify a criminal. And to adjust probability to the claimed one in the Forbes article, let's set sensitivity equal to 99.5% and specificity to 99.5%:

>>> if_prob(0.995, 0.995, 149/100_000)
0.22896171487699016

That is, a 22.9% probability to correctly identify a real criminal, almost equal to what Forbes reported in the article. Given this, are there any ways to improve performance? One of the options might be a sequential identification with different conditions:

| Identifications in sequence | Probability of error         |
|-----------------------------|------------------------------|
| 1                           | (1-0.229)**1 = 0.771 = 77.1% |
| 3                           | (1-0.229)**3 = 0.458 = 45.8% |
| 5                           | (1-0.229)**5 = 0.272 = 27.2% |
| 7                           | (1-0.229)**5 = 0.161 = 16.1% |

To summarize this short note, remember to check business requirements to estimate the performance of systems and understand their limitations in real applications. Properties of a system might be outstanding, but it can produce miserable results in wrong conditions.

Did you like this article?

Nikolay Donets

See other articles by Nikolay

Related jobs

See all

Title

The company

  • Remote

Title

The company

  • Remote

Title

The company

  • Remote

Title

The company

  • Remote

Related articles

JavaScript Functional Style Made Simple

JavaScript Functional Style Made Simple

Daniel Boros

12 Sep 2021

JavaScript Functional Style Made Simple

JavaScript Functional Style Made Simple

Daniel Boros

12 Sep 2021

WorksHub

CareersCompaniesSitemapFunctional WorksBlockchain WorksJavaScript WorksAI WorksGolang WorksJava WorksPython WorksRemote Works
hello@works-hub.com

Ground Floor, Verse Building, 18 Brunswick Place, London, N1 6DZ

108 E 16th Street, New York, NY 10003

Subscribe to our newsletter

Join over 111,000 others and get access to exclusive content, job opportunities and more!

© 2024 WorksHub

Privacy PolicyDeveloped by WorksHub