Nuqta OCRنقطة

Guides

Read Arabic ID cards and passports with OCR

Extract MRZ fields with ICAO check digits from passports, visas and ID cards, and read Arabic ID text, on your own servers.

from nuqta import OCR

if __name__ == "__main__":
    ocr = OCR("nuqta-4b")
    r = ocr.read("passport.jpg", mode="id")
    print(r.fields["mrz"])   # format, issuer, surname, given_names, number, birth, expiry, check results

Each MRZ field is checked against its ICAO check digit. A failed check is reported, never silently corrected, so the field can go to a person for review. Egyptian national ID numbers are decoded and cross-checked against the printed birth date and sex.

Accuracy on real documents

On held-out real documents, the 4B reads 85.7% of ID-card fields and 87.2% of passport fields correctly. Documents never leave your hardware, which matters for KYC and privacy rules.

Questions

Can I do passport OCR on-premises?

Yes. Nuqta OCR runs on your own GPU or CPU, so passport and ID images never leave your network.