Skip to content

ID document recognition on server to read ID card, passport and driver license, which is most powerful ID scanner and ID document reader

License

Notifications You must be signed in to change notification settings

kby-ai/IDCardRecognition-Docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤗 Hugging Face - Here

📚 Product & Resources - Here

🛟 Help Center - Here

💼 KYC Verification Demo - Here

🙋‍♀️ Docker Hub - Here

sudo docker pull kbyai/idcard-recognition:latest
sudo docker run -e LICENSE="xxxxx" -p 8082:8080 -p 9002:9000 kbyai/idcard-recognition:latest

IDCardRecognition-Docker

Introduction

This repo demonstrates the server-based recognition capabilities for ID card, passport, and driver's license.
At the core of this project lies the ID Card Recognition SDK, which has been developed to provide comprehensive support for recognizing ID card, passport, and driver's license from 200+ countries.

◾ID Card Recognition SDK Main Functionalities

Surpported ID Type Functionalities Release Type
ID Card Extracting Information(OCR) Android(Kotlin & Java)
Passport Scanning Barcode iOS(Swift & Objectiv-C)
Driver License Parsing MRZ Flutter(Dart)
Auto Capturing Web Front-end(Javascript)
Scanning QR code Server-Windows(Python)
Supporting 200+ Countries' ID Documents Server-Linux(Python)
Supporting 130+ Languages
ID Document Detection

◾ID Card Recognition Product List

No. Repository Release Type
1 ID Card Recognition - Android Android
2 ID Card Recognition - iOS iOS
3 ID Card Recognition - Flutter Flutter
4 ID Auto Capture - React Web Front-end
5 ID Card Recognition - Windows Server-Windows
➡️ ID Card Recognition - Linux Server-Linux

Try the API

Online Demo

You can test the SDK using images here.

image

Documentation

https://docs.kby-ai.com/help/product/id-card-sdk

Postman

To test the API, you can use Postman. Here are the endpoints for testing:

  • Test with an image file: Send a POST request to http://18.221.33.238:8082/idcard_recognition.

  • Test with a base64-encoded image: Send a POST request to http://18.221.33.238:8082/idcard_recognition_base64.

    You can download the Postman collection to easily access and use these endpoints. click here

    image

SDK License

This project uses KBY-AI's ID card recognition server SDK, which requires a license per machine.

  • The code below shows how to use the license:

    licensePath = "license.txt"
    license = ""
    machineCode = getMachineCode()
    print("machineCode: ", machineCode.decode('utf-8'))
    try:
    with open(licensePath, 'r') as file:
    license = file.read()
    except IOError as exc:
    print("failed to open license.txt: ", exc.errno)
    print("license: ", license)

  • To request the license, please provide us with the machine code obtained from the getMachineCode function.

Please contact us:

🧙Email: contact@kby-ai.com
🧙Telegram: @kbyai
🧙WhatsApp: +19092802609
🧙Skype: live:.cid.66e2522354b1049b
🧙Facebook: https://www.facebook.com/KBYAI

How to run

1. System Requirements

  • CPU: 2 cores or more (Recommended: 2 cores)
  • RAM: 4 GB or more (Recommended: 8 GB)
  • HDD: 4 GB or more (Recommended: 8 GB)
  • OS: Ubuntu 20.04 or later

2. Setup and Test

  • Clone the project:

    git clone https://github.com/kby-ai/IDCardRecognition-Docker.git
  • Download the model from Google Drive: click here

    cd IDCardRecognition-Docker
    
    wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1fmTUG7a9IoMA8QiXR9A0xf3Cr6D5UkdC' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1fmTUG7a9IoMA8QiXR9A0xf3Cr6D5UkdC" -O data.zip && rm -rf /tmp/cookies.txt
    
    unzip data.zip
  • Build the Docker image:

    sudo docker build --pull --rm -f Dockerfile -t kby-ai-idcard:latest .
  • Run the Docker container:

    sudo docker run -v ./license.txt:/root/kby-ai-idcard/license.txt -p 8082:8080 kby-ai-idcard
  • Send us the machine code and then we will give you a license key.

    After that, update the license.txt file by overwriting the license key that you received. Then, run the Docker container again.

    image

    image

  • To test the API, you can use Postman. Here are the endpoints for testing:

    Test with an image file: Send a POST request to http://{xx.xx.xx.xx}:8082/idcard_recognition.

    Test with a base64-encoded image: Send a POST request to http://{xx.xx.xx.xx}:8082/idcard_recognition_base64.

    You can download the Postman collection to easily access and use these endpoints. click here

3. Execute the Gradio demo

  • Setup Gradio Ensure that you have the necessary dependencies installed.

    Gradio requires Python 3.6 or above.

    You can install Gradio using pip by running the following command:

    pip install gradio
  • Run the demo Run it using the following command:

    cd gradio
    python demo.py
  • You can test within the following URL:
    http://127.0.0.1:9000

About SDK

1. Initializing the SDK

  • Step One

    First, obtain the machine code for activation and request a license based on the machine code.

    machineCode = getMachineCode()
    print("machineCode: ", machineCode.decode('utf-8'))
  • Step Two

    Next, activate the SDK using the received license.

    setActivation(license.encode('utf-8'))

    If activation is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.

  • Step Three

    After activation, call the initialization function of the SDK.

    initSDK()

    If initialization is successful, the return value will be SDK_SUCCESS. Otherwise, an error value will be returned.

2. APIs

  • ID Card Recognition

    The SDK provides a single API for ID card recognition.

    The function can be used as follows:

    ret = idcardRecognition(base64_image.encode('utf-8'))

    The function accepts only one parameter, which should be the base64-encoded format of the image (e.g., JPG, PNG, etc.).

    If the recognition is successful, the function will return a JSON-formatted string containing the recognized information. In case of failure, the return value will be NULL.