Ai Model Check

AI Model Check for a Biometric Liveness Detection Model

Image

How to test a biometric liveness model against real-face variation, attributes, and age groups before deciding what data to buy.

Image

A liveness model can score high on its accuracy test and still get it wrong in production, flagging a real person as an attack because they're wearing glasses, or because the model has never seen a child's face before. Buying more training data before finding out where a model actually fails means paying to fix problems nobody has identified yet. How do you find them first?

The Problem

A Singapore-based identity verification provider already had a working face-biometric model and came to Unidata to source more training data for it. The obvious move is to buy every available dataset and feed it into the next training round. It is also the wasteful one: if the model already handles half of these scenarios well, that part of the spend buys nothing.

So the brief was different. Before any purchase, run an AI Model Check: test the client's model against a large, structured video set, find out exactly where and why it fails, and let those results decide what data is actually worth buying.

Solution

Test Setup

The check ran the client's model against three datasets, 135,978 videos combined:

  • iBeta 1 and iBeta 2, the client's main liveness test sets, built around adult faces
  • iBeta Kids, a separate set built around children's faces, up to age 17

The model's output was not reduced to a single accuracy score. It was broken down by attack type, face attribute, and age group, so weak spots would show up on their own instead of getting averaged out.

The Attribute Blind Spot

Broken out by category, the error rate was uneven: up to 5% on standard presentation attacks, up to 15% on silicone masks, and up to 25% on real faces from rare or underrepresented ethnicities. One failure mode stood out in particular: a real face wearing an attribute (glasses, jewelry, and similar items) was misclassified as a biometric attack in about 20% of these cases. The check traced this to how the model was trained rather than to a random error:

  • during training, it saw far more attack examples than real faces
  • as a result, it learned to expect a real face to look close to ideal
  • glare, an accessory, or an unusual angle is enough of a deviation to get read as an attack

This is not unique to the client's model. It is a pattern the check turns up on biometric liveness models generally.

Children's Biometrics

The same test was run separately against the iBeta Kids dataset. A model trained mostly on adult faces treats a child's face as an anomaly for the same reason it treats glasses as one: it simply does not match what the model learned a real face looks like.

Unidata includes this age-group test as part of the Model Check whenever a children's dataset is available.

From Findings to Data Purchase

The 20% figure gave the client a specific, named gap instead of a vague sense that the model "could be better." Based on it, the client bought additional data of real faces wearing attributes (glasses, jewelry, and similar items), closing that exact gap rather than repurchasing all three original datasets.

Process

PhaseInputScope of WorkQuality Control
Model & Requirements IntakeClient's liveness model, target attack scenariosAccess setup, defining test scope across face, attribute, and age datasetsTest scope matches client's model and use case
Test Dataset AssemblyiBeta 1, iBeta 2, iBeta Kids (135,978 videos)Running the client's model against all three datasets, structuring output by attack type, attribute, and age groupCoverage confirmed across attack categories and age groups
Error AnalysisModel inference resultsAccuracy breakdown by category; isolating real-face-with-attribute misclassificationsSystematic false-positive patterns identified, not just an aggregate score
Weak Spot ReportValidated error findingsDocumenting strong and weak spots, attack-type distribution, data gapsFindings are specific and reproducible
Targeted Data SourcingWeak spot reportRecommending and preparing datasets that address the identified gapsNew data maps directly to a documented weakness
Delivery & HandoffFinal report, sourced datasetPackaging the report and data with a Docker container for reproducibility, walking the client through the findingsClient sign-off on the findings and the resulting data purchase

Day 1
Model & Dataset Intake
Days 2–5:
Full Test Run Across Datasets
Day 6:
Error Analysis
Day 7:
Report Delivery

The Results

  • An error map by attack type and subject group, not one blended accuracy score
  • A ~20% misread rate isolated to one subgroup: real faces wearing attributes
  • An adult-face bias caught before it reached production, via a dedicated children’s-face test
  • A data purchase aimed at those three gaps, not a repeat buy of everything
We see this blind spot on almost every liveness model we check. It's trained mostly on attacks, so it barely learns what a normal face looks like. Someone puts on glasses, or the room lighting is a little off, and the model calls them fake.
Elizabeth Karnaukhova
Elizabeth Karnaukhova
Datamarket Project Manager

Similar Cases

  • Image
    Data Collection

    Fight Detection for Surveillance Systems

    From scenario planning to annotation, we supported a full-cycle dataset build for a CV model trained to detect physical aggression in public spaces.

    Lean more
  • Image
    Image Annotation

    Digital Tree Passport Annotation for Forest Mapping

    How do you annotate 200,000 trees with species, height, and crown data from aerial imagery to enable precise forest monitoring?

    Lean more
  • Image
    Data Collection

    Female Alopecia Image Collection and Annotation for Medical AI

    Can large-scale female hair loss data be gathered ethically and precisely? Yes, through careful participant guidance and expert labeling.

    Lean more
  • Image
    NLP Annotation services

    Cultural Image Dataset for Multimodal AI

    From zero to 120 vetted annotators in under two months. A 50 percent pass rate, manual validation, and structured exams delivered consistent 90 percent quality on a high-complexity cultural dataset.

    Lean more
  • Image
    Image Annotation

    Image Annotation for Construction and Heavy Machinery

    We successfully completed a project annotating construction equipment, labeling approximately 5,000 images using object detection methods. Our approach ensured high accuracy and fast turnaround, fully meeting the client’s requirements.

    Lean more

Ready to get started?

Tell us what you need — we’ll reply within 24h with a free estimate

    What service are you looking for? *
    What service are you looking for?
    Data Labeling
    AI Model Testing
    Data Collection
    Ready-made Datasets
    Human Moderation
    Medicine
    Other
    What's your budget range? *
    What's your budget range?
    < $5,000
    $5,000 – $25,000
    $25,000 – $50,000
    $50,000 – $100,000
    $100,000+
    Not sure yet
    • United States+1
    • United Kingdom+44
    • Afghanistan (‫افغانستان‬‎)+93
    • Albania (Shqipëri)+355
    • Algeria (‫الجزائر‬‎)+213
    • American Samoa+1684
    • Andorra+376
    • Angola+244
    • Anguilla+1264
    • Antigua and Barbuda+1268
    • Argentina+54
    • Armenia (Հայաստան)+374
    • Aruba+297
    • Australia+61
    • Austria (Österreich)+43
    • Azerbaijan (Azərbaycan)+994
    • Bahamas+1242
    • Bahrain (‫البحرين‬‎)+973
    • Bangladesh (বাংলাদেশ)+880
    • Barbados+1246
    • Belarus (Беларусь)+375
    • Belgium (België)+32
    • Belize+501
    • Benin (Bénin)+229
    • Bermuda+1441
    • Bhutan (འབྲུག)+975
    • Bolivia+591
    • Bosnia and Herzegovina (Босна и Херцеговина)+387
    • Botswana+267
    • Brazil (Brasil)+55
    • British Indian Ocean Territory+246
    • British Virgin Islands+1284
    • Brunei+673
    • Bulgaria (България)+359
    • Burkina Faso+226
    • Burundi (Uburundi)+257
    • Cambodia (កម្ពុជា)+855
    • Cameroon (Cameroun)+237
    • Canada+1
    • Cape Verde (Kabu Verdi)+238
    • Caribbean Netherlands+599
    • Cayman Islands+1345
    • Central African Republic (République centrafricaine)+236
    • Chad (Tchad)+235
    • Chile+56
    • China (中国)+86
    • Christmas Island+61
    • Cocos (Keeling) Islands+61
    • Colombia+57
    • Comoros (‫جزر القمر‬‎)+269
    • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
    • Congo (Republic) (Congo-Brazzaville)+242
    • Cook Islands+682
    • Costa Rica+506
    • Côte d’Ivoire+225
    • Croatia (Hrvatska)+385
    • Cuba+53
    • Curaçao+599
    • Cyprus (Κύπρος)+357
    • Czech Republic (Česká republika)+420
    • Denmark (Danmark)+45
    • Djibouti+253
    • Dominica+1767
    • Dominican Republic (República Dominicana)+1
    • Ecuador+593
    • Egypt (‫مصر‬‎)+20
    • El Salvador+503
    • Equatorial Guinea (Guinea Ecuatorial)+240
    • Eritrea+291
    • Estonia (Eesti)+372
    • Ethiopia+251
    • Falkland Islands (Islas Malvinas)+500
    • Faroe Islands (Føroyar)+298
    • Fiji+679
    • Finland (Suomi)+358
    • France+33
    • French Guiana (Guyane française)+594
    • French Polynesia (Polynésie française)+689
    • Gabon+241
    • Gambia+220
    • Georgia (საქართველო)+995
    • Germany (Deutschland)+49
    • Ghana (Gaana)+233
    • Gibraltar+350
    • Greece (Ελλάδα)+30
    • Greenland (Kalaallit Nunaat)+299
    • Grenada+1473
    • Guadeloupe+590
    • Guam+1671
    • Guatemala+502
    • Guernsey+44
    • Guinea (Guinée)+224
    • Guinea-Bissau (Guiné Bissau)+245
    • Guyana+592
    • Haiti+509
    • Honduras+504
    • Hong Kong (香港)+852
    • Hungary (Magyarország)+36
    • Iceland (Ísland)+354
    • India (भारत)+91
    • Indonesia+62
    • Iran (‫ایران‬‎)+98
    • Iraq (‫العراق‬‎)+964
    • Ireland+353
    • Isle of Man+44
    • Israel (‫ישראל‬‎)+972
    • Italy (Italia)+39
    • Jamaica+1876
    • Japan (日本)+81
    • Jersey+44
    • Jordan (‫الأردن‬‎)+962
    • Kazakhstan (Казахстан)+7
    • Kenya+254
    • Kiribati+686
    • Kosovo+383
    • Kuwait (‫الكويت‬‎)+965
    • Kyrgyzstan (Кыргызстан)+996
    • Laos (ລາວ)+856
    • Latvia (Latvija)+371
    • Lebanon (‫لبنان‬‎)+961
    • Lesotho+266
    • Liberia+231
    • Libya (‫ليبيا‬‎)+218
    • Liechtenstein+423
    • Lithuania (Lietuva)+370
    • Luxembourg+352
    • Macau (澳門)+853
    • Macedonia (FYROM) (Македонија)+389
    • Madagascar (Madagasikara)+261
    • Malawi+265
    • Malaysia+60
    • Maldives+960
    • Mali+223
    • Malta+356
    • Marshall Islands+692
    • Martinique+596
    • Mauritania (‫موريتانيا‬‎)+222
    • Mauritius (Moris)+230
    • Mayotte+262
    • Mexico (México)+52
    • Micronesia+691
    • Moldova (Republica Moldova)+373
    • Monaco+377
    • Mongolia (Монгол)+976
    • Montenegro (Crna Gora)+382
    • Montserrat+1664
    • Morocco (‫المغرب‬‎)+212
    • Mozambique (Moçambique)+258
    • Myanmar (Burma) (မြန်မာ)+95
    • Namibia (Namibië)+264
    • Nauru+674
    • Nepal (नेपाल)+977
    • Netherlands (Nederland)+31
    • New Caledonia (Nouvelle-Calédonie)+687
    • New Zealand+64
    • Nicaragua+505
    • Niger (Nijar)+227
    • Nigeria+234
    • Niue+683
    • Norfolk Island+672
    • North Korea (조선 민주주의 인민 공화국)+850
    • Northern Mariana Islands+1670
    • Norway (Norge)+47
    • Oman (‫عُمان‬‎)+968
    • Pakistan (‫پاکستان‬‎)+92
    • Palau+680
    • Palestine (‫فلسطين‬‎)+970
    • Panama (Panamá)+507
    • Papua New Guinea+675
    • Paraguay+595
    • Peru (Perú)+51
    • Philippines+63
    • Poland (Polska)+48
    • Portugal+351
    • Puerto Rico+1
    • Qatar (‫قطر‬‎)+974
    • Réunion (La Réunion)+262
    • Romania (România)+40
    • Russia (Россия)+7
    • Rwanda+250
    • Saint Barthélemy+590
    • Saint Helena+290
    • Saint Kitts and Nevis+1869
    • Saint Lucia+1758
    • Saint Martin (Saint-Martin (partie française))+590
    • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
    • Saint Vincent and the Grenadines+1784
    • Samoa+685
    • San Marino+378
    • São Tomé and Príncipe (São Tomé e Príncipe)+239
    • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
    • Senegal (Sénégal)+221
    • Serbia (Србија)+381
    • Seychelles+248
    • Sierra Leone+232
    • Singapore+65
    • Sint Maarten+1721
    • Slovakia (Slovensko)+421
    • Slovenia (Slovenija)+386
    • Solomon Islands+677
    • Somalia (Soomaaliya)+252
    • South Africa+27
    • South Korea (대한민국)+82
    • South Sudan (‫جنوب السودان‬‎)+211
    • Spain (España)+34
    • Sri Lanka (ශ්‍රී ලංකාව)+94
    • Sudan (‫السودان‬‎)+249
    • Suriname+597
    • Svalbard and Jan Mayen+47
    • Swaziland+268
    • Sweden (Sverige)+46
    • Switzerland (Schweiz)+41
    • Syria (‫سوريا‬‎)+963
    • Taiwan (台灣)+886
    • Tajikistan+992
    • Tanzania+255
    • Thailand (ไทย)+66
    • Timor-Leste+670
    • Togo+228
    • Tokelau+690
    • Tonga+676
    • Trinidad and Tobago+1868
    • Tunisia (‫تونس‬‎)+216
    • Turkey (Türkiye)+90
    • Turkmenistan+993
    • Turks and Caicos Islands+1649
    • Tuvalu+688
    • U.S. Virgin Islands+1340
    • Uganda+256
    • Ukraine (Україна)+380
    • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
    • United Kingdom+44
    • United States+1
    • Uruguay+598
    • Uzbekistan (Oʻzbekiston)+998
    • Vanuatu+678
    • Vatican City (Città del Vaticano)+39
    • Venezuela+58
    • Vietnam (Việt Nam)+84
    • Wallis and Futuna (Wallis-et-Futuna)+681
    • Western Sahara (‫الصحراء الغربية‬‎)+212
    • Yemen (‫اليمن‬‎)+967
    • Zambia+260
    • Zimbabwe+263
    • Åland Islands+358
    Where did you hear about Unidata? *
    Where did you hear about Unidata?
    Andrew
    Head of Client Success

    — I'll guide you through every step, from your first
    message to full project delivery

    Thank you for your
    message

    It has been successfully sent!

    We use cookies to enhance your experience, personalize content, ads, and analyze traffic. By clicking 'Accept All', you agree to our Cookie Policy.