Data generation services

Synthetic Passport Dataset for Identity Verification

Image

We built a synthetic document generation pipeline to support the training of an identity verification model covering more than 100 countries. Real passport images were unavailable by law. Instead of collecting data, we reproduced it under controlled parameters: templates, text fields, faces, and physical artifacts were generated separately and combined. The result was over 100,000 high-fidelity images containing no personal data.

Image

The Task

The objective was to train a system that could verify passport authenticity and detect forged documents across more than 100 countries.

Real data was not an option. Passport images are among the most legally restricted categories of personal data, protected under GDPR and national privacy regulations. Collection and transfer were both closed to us.

The client's earlier approach was manual. Templates were edited in Photoshop, personal fields were masked, and text was inserted from Excel sheets at random. The output looked artificial. It did not reproduce the variability of genuine documents: layouts, fonts, lighting, textures, and physical wear.

The model generalized poorly and produced frequent false positives in verification tasks.

The Generation Pipeline

We built the dataset as a sequence of generation stages:

  1. Document templates PSD-based layouts for more than 100 countries, covering passports, ID cards, visas, and driver's licenses.
  2. Text generation Language models filled the name, number, and issuing authority fields with realistic multilingual entries.
  3. Face synthesis GAN-based models produced synthetic portraits, blended into each layout.
  4. Physical variation: a) Fonts, seals, and holograms varied per document b) Background noise, glare, and scanning artifacts applied at random
  5. Metadata pairing Every image carried structured metadata: gender, document type, country of origin, and background.

Real data was prohibited at every stage. No scanned document, cropped photograph, or field value from a genuine passport entered the pipeline. Every element was generated, including the faces.

Metadata gave the client direct control over dataset composition. The same corpus could then be used for face recognition and anti-spoofing tasks without regenerating it.

Quality Control

Every generated batch was validated before delivery.

Three parameters were checked:

  • Template fidelity Layout, field positions, and typography had to match the reference structure for the country.
  • Field consistency Generated values had to stay coherent across the whole document.
  • Visual plausibility Artifacts, holograms, and noise had to stay within the range observed in genuine scans.

Consistency mattered more than volume. For example, if a document number appeared both on the data page and in the machine-readable zone, both had to carry the same value. A mismatch teaches the model that a genuine document is a forgery.

Validation at the template level reduced downstream errors. Rather than filtering images after generation, we corrected the source layout and regenerated the batch.

No personally identifiable information entered the pipeline at any stage.

Challenges

The main complexity lay in balancing three dimensions:

  • Realism without any trace of real personal data
  • Coverage across more than 100 countries without losing per-country accuracy
  • Randomness that reproduces wear and scanning artifacts without crossing into visible distortion

Additionally, no two countries share the same document logic. Layout, script, security features, and field order differ, and a template that is correct for one issuing authority is wrong for the next. Instead of generalizing across regions, we built and verified templates country by country and expanded the library incrementally.

This approach allowed us to scale coverage while keeping structural accuracy per document type.

Stage Overview

StageInputWorkflow ScopeMain Quality Checks
Template DesignReference document structuresPSD layout construction per countryField positions, typography, security elements
Text GenerationCountry and document parametersModel-based field populationMultilingual accuracy, internal consistency
Face SynthesisGeneration parametersPortrait creation and blendingRealism, alignment, no real identities
Artifact SimulationComposed base documentsFont, seal, hologram, and noise variationPlausible wear, scan-level realism
Metadata AssemblyGenerated imagesAttribute taggingCompleteness, label accuracy
DeliveryValidated datasetPackaging and handoverPrivacy compliance, coverage balance
Week 1
Pipeline assembled, first country templates built
Week 2
First batches in client-side testing
Week 4
Coverage past 100 countries, four document types
Within 2 months
Over 100,000 images, dataset in production

The Results

  • Over 100,000 synthetic document images generated automatically
  • Coverage of more than 100 countries across passports, ID cards, visas, and driver’s licenses
  • 27 percent improvement in the client’s identity verification accuracy
  • Dataset preparation time reduced from weeks to hours
  • Full compliance with privacy regulations, with no personally identifiable data involved
  • Datasets reused across subsequent computer vision and KYC projects
Generated data is data you can dictate: which country, how worn, how badly scanned. Real collection cannot give you that range at this scale, and with passports it gives you nothing at all. The limit is reproducibility: when a task depends on one physical object behaving identically twice, only real collection will do, and we say so before generation starts.
Elizabeth Karnaukhova
Elizabeth Karnaukhova
Datamarket Project Manager

Similar Cases

  • Image
    Image Annotation

    License Plate Annotation for Vehicle Recognition System

    How do you annotate 100,000 license plates with dozens of nuances — from Arabic characters to regional codes — and still meet a two-week deadline?

    Lean more
  • Image
    Text Labeling

    Chat Message Annotation for Toxic Content Filtering

    Our team supported the development of a reply suggestion system by annotating thousands of user dialogs — focusing on tone, relevance, and linguistic nuance.

    Lean more
  • Image
    Data Collection

    Fabric Mask Dataset for Biometric Testing

    Testing biometrics with frontal-only masks hides real weaknesses. We developed fabric mask samples for true multi-angle evaluation.

    Lean more
  • Image
    Audio Transcription

    Multi-Speaker Audio Annotation for Banking

    We handled complex, real-world audio by combining automation with expert oversight — capturing every voice, pause, and interruption.

    Lean more
  • Image
    Text Labeling

    Document Annotation for Financial Services

    From contracts to inheritance certificates, we annotated 6,000+ legal documents with high precision and custom validation logic.

    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.