kenya_id_ocr 0.1.2 copy "kenya_id_ocr: ^0.1.2" to clipboard
kenya_id_ocr: ^0.1.2 copied to clipboard

A Flutter package for scanning and extracting data from Kenyan National ID cards using Google ML Kit OCR.

kenya_id_ocr #

A Flutter package for scanning and extracting data from Kenyan National ID cards (front side) using Google ML Kit — fully on-device, no API key required.

Features #

  • šŸ“· Built-in camera scanner widget with ID card overlay guide
  • šŸ—‚ļø Parse ID data from an image file or bytes
  • šŸ” Extracts: ID Number, Full Name, Date of Birth, District of Birth, Gender
  • ⚔ On-device ML Kit OCR — works offline
  • šŸ› ļø Handles common OCR misreads (I→1, O→0)

Platform setup #

Android #

In android/app/build.gradle, ensure minSdkVersion is at least 21.

Add to android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA"/>

<!-- ML Kit model download -->
<application ...>
  <meta-data
    android:name="com.google.mlkit.vision.DEPENDENCIES"
    android:value="ocr"/>
</application>

iOS #

In ios/Runner/Info.plist:

<key>NSCameraUsageDescription</key>
<string>Camera is used to scan your Kenyan National ID</string>

Usage #

Camera scanner widget #

import 'package:kenya_id_ocr/kenya_id_ocr.dart';

final result = await Navigator.push<KenyaIdResult>(
  context,
  MaterialPageRoute(
    builder: (_) => KenyaIdScanner(
      onResult: (r) => Navigator.pop(context, r),
      minConfidence: 0.6, // optional, default 0.6
    ),
  ),
);

if (result != null && result.isValid) {
  print(result.idNumber);   // "12345678"
  print(result.fullName);   // "KAMAU JOHN MWANGI"
  print(result.dateOfBirth);// "01.01.1990"
  print(result.district);   // "NAIROBI"
  print(result.gender);     // "M"
}

Read from an existing image file #

final reader = KenyaIdReader();
final result = await reader.readFromFile(File('/path/to/id_photo.jpg'));
await reader.dispose();
print(result);

Result model #

Field Type Description
idNumber String? 7–9 digit ID number
fullName String? Full name in uppercase
dateOfBirth String? As printed, e.g. 01.01.1990
dateOfBirthParsed DateTime? Parsed DateTime
districtOfBirth String? District/county name
gender String? "M" or "F"
confidence double 0.0–1.0 score based on fields found
isValid bool True if ID number + name found
rawText String Full OCR output for custom parsing

Notes #

  • Lighting and focus significantly affect accuracy. Encourage users to scan in good light.
  • The rawText field is exposed so you can build custom parsing logic on top if needed.
  • This package reads the front side only.

License #

MIT

0
likes
0
points
86
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package for scanning and extracting data from Kenyan National ID cards using Google ML Kit OCR.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

camera, flutter, google_mlkit_text_recognition, image, path_provider

More

Packages that depend on kenya_id_ocr