Image Annotation

License Plate Annotation for Vehicle Recognition System

Image

What happens when a computer vision pipeline depends on complex license plate data — and the data doesn’t exist yet? Our team had 14 days to annotate 100,000 images across regions, languages, and formats, down to every digit and symbol. Here’s how we built a high-accuracy dataset under pressure — and why synthetic data couldn’t compete.

Image

Task

A long-term client approached us with a task critical for their computer vision pipeline: to accurately annotate vehicle license plates across various regions for use in traffic camera systems. Unlike previous projects, this time the complexity was significantly higher. They needed not only bounding boxes for entire license plates, but also precise annotations for each individual digit, the region code, and specific regional symbols — including those in Arabic script.

Speed and accuracy were paramount. The client planned to train a neural network on this data to automate plate recognition in real-world conditions, and the annotated dataset had to reflect real diversity across regions, styles, and lighting conditions.

Solution

Task Design & Guidelines Development:

  • Domain Research and Client Interviews: We began by exploring the structure of license plates and regional variations across the target geography. This involved consultations with the client to clarify all edge cases and potential ambiguities.
  • Detailed Annotation Guidelines: We developed a comprehensive annotation manual covering every object class: full license plate, individual digits, region codes, and national/regional symbols.
    The guide included visual examples, rules for difficult cases (e.g., partially occluded plates), and standardized labeling logic.
  • Edge Case Library & Reference Materials: A shared library of rare or borderline cases was created to ensure consistency when annotators encountered unexpected formats or damaged plates.
  • Pilot Run & Calibration: A small batch of images was annotated and reviewed collaboratively with the client to lock in quality standards before full-scale production.

Scalable Team Setup & Training:

  • Specialist Team Assembly: We onboarded a dedicated team of over 30 trained annotators with prior experience in computer vision tasks, ensuring minimal ramp-up time.
  • Rapid Onboarding Process: Annotators went through structured training sessions, completed a qualification test, and participated in guided walkthroughs of the annotation platform.
  • Live Helpdesk Support: A real-time support system was launched to provide answers to annotators' questions on edge cases and tool usage, ensuring uninterrupted productivity.
  • Monitoring Infrastructure: A custom dashboard tracked real-time annotation rates, validator load, and individual accuracy metrics to maintain speed without sacrificing quality.
  • Balanced Workflows: The project was carefully scheduled to avoid annotator fatigue and ensure consistent throughput, with task assignments adjusted dynamically based on performance.

Iterative Delivery & Quality Assurance Loop:

  • Client Feedback Integration: Early deliveries were used to fine-tune both annotation rules and internal QA processes. Feedback from the client was immediately incorporated into updated guidelines.
  • Layered QA Process: A two-stage validation approach was used: manual reviews of random samples and logic-based consistency checks across labels (e.g., size coherence between digits and the plate bounding box).
  • Versioning & Rule Updates: As new plate formats and exceptions were discovered, the guidelines were updated, and annotators were briefed accordingly. Change logs were maintained and version-controlled.
  • Reporting & Transparency: Weekly reports summarized quality metrics, identified bottlenecks, and included recommendations for further refinements or automation opportunities.
StageInputWorkflow ScopeMain Quality Checks
Task Design & ResearchClient requirements, regional plate formatsStructure analysis, edge case identificationCoverage of formats, ambiguity reduction
Guidelines DevelopmentPlate samples, annotation requirementsCreation of detailed annotation manualClarity, completeness, edge case handling
Team Setup & TrainingAnnotator poolTraining, testing, onboardingQualification results, readiness
Image AnnotationRaw license plate imagesBounding boxes for plates, digits, symbolsLabel precision, structural consistency
ValidationAnnotated datasetManual review, logic-based checksAccuracy, inter-label consistency
Final QA & DeliveryValidated datasetDataset packaging and reportingConsistency, client acceptance
Pilot & Sampling
5 days
Guidelines & Metrics Alignment
5 days
Labeling
7 days
QA & Final Dataset Delivery
3 days

The Results

  • We delivered 100,000 images annotated with multilayered structure: bounding boxes for full plates, digits, region codes.
  • Delivered on time thanks to early team onboarding, pilot-phase efficiency testing, and a fallback plan involving ML-assisted pre-labeling.
  • >97.5% accuracy verified through manual QA and automated checks
  • No revisions required — all batches approved on first delivery
  • Improved model performance for the client’s plate recognition pipeline, outperforming datasets built with synthetic data
License plate annotation requires precise handling of multilayered data structures and regional variability. High model accuracy depends on detailed guidelines, consistent handling of edge cases, and continuous quality control throughout the annotation process.
Roman Lukoshin
Roman Lukoshin
Speech and Generative Data 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
  • Egocentric Data Collection for Humanoid Robot Training
    Data Collection

    Egocentric Data Collection for Humanoid Robot Training

    Open egocentric datasets give you 2D video with no depth, no pose, no tactile signal. Humanoid training requires all three. How do you build a multimodal setup that captures what open data structurally cannot?

    Lean more
  • Image
    Geospatial Annotation services

    Aerial Image Annotation for Urban Planning

    We annotated 132,000+ objects in 11,000 aerial images—streamlining urban planning data with scalable workflows and tailored class logic.

    Lean more
  • Image
    NLP Annotation services

    Expert Financial Data Annotation for AI

    CFA-level cases, multi-step calculations, and professional English, all at once. 20–25% hiring conversion, no in-house domain expertise on the ops side. How do you maintain expert consistency when the domain leaves no room for approximation?

    Lean more
  • Image
    Data Collection

    Image Data Collection for a Palm Recognition Task

    Collecting 20,000 palm photos sounds easy until you try it. We managed scale, verification, and logistics to deliver a clean dataset.

    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.