File: sample_recognize_identity_documents.py

package info (click to toggle)
python-azure 20250603%2Bgit-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 851,724 kB
  • sloc: python: 7,362,925; ansic: 804; javascript: 287; makefile: 195; sh: 145; xml: 109
file content (82 lines) | stat: -rw-r--r-- 3,768 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# coding: utf-8

# -------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# --------------------------------------------------------------------------

"""
FILE: sample_recognize_identity_documents.py

DESCRIPTION:
    This sample demonstrates how to recognize fields from an identity document.

    See fields found on identity documents here:
    https://aka.ms/formrecognizer/iddocumentfields

USAGE:
    python sample_recognize_identity_documents.py

    Set the environment variables with your own values before running the sample:
    1) AZURE_FORM_RECOGNIZER_ENDPOINT - the endpoint to your Form Recognizer resource.
    2) AZURE_FORM_RECOGNIZER_KEY - your Form Recognizer API key
"""

import os


class RecognizeIdDocumentsSample(object):

    def recognize_identity_documents(self):
        path_to_sample_forms = os.path.abspath(os.path.join(os.path.abspath(__file__),
                                                            "..", "..", "./sample_forms/id_documents/license.jpg"))

        # [START recognize_identity_documents]
        from azure.core.credentials import AzureKeyCredential
        from azure.ai.formrecognizer import FormRecognizerClient

        endpoint = os.environ["AZURE_FORM_RECOGNIZER_ENDPOINT"]
        key = os.environ["AZURE_FORM_RECOGNIZER_KEY"]

        form_recognizer_client = FormRecognizerClient(
            endpoint=endpoint, credential=AzureKeyCredential(key)
        )
        with open(path_to_sample_forms, "rb") as f:
            poller = form_recognizer_client.begin_recognize_identity_documents(identity_document=f)
        id_documents = poller.result()

        for idx, id_document in enumerate(id_documents):
            print("--------Recognizing ID document #{}--------".format(idx+1))
            first_name = id_document.fields.get("FirstName")
            if first_name:
                print("First Name: {} has confidence: {}".format(first_name.value, first_name.confidence))
            last_name = id_document.fields.get("LastName")
            if last_name:
                print("Last Name: {} has confidence: {}".format(last_name.value, last_name.confidence))
            document_number = id_document.fields.get("DocumentNumber")
            if document_number:
                print("Document Number: {} has confidence: {}".format(document_number.value, document_number.confidence))
            dob = id_document.fields.get("DateOfBirth")
            if dob:
                print("Date of Birth: {} has confidence: {}".format(dob.value, dob.confidence))
            doe = id_document.fields.get("DateOfExpiration")
            if doe:
                print("Date of Expiration: {} has confidence: {}".format(doe.value, doe.confidence))
            sex = id_document.fields.get("Sex")
            if sex:
                print("Sex: {} has confidence: {}".format(sex.value, sex.confidence))
            address = id_document.fields.get("Address")
            if address:
                print("Address: {} has confidence: {}".format(address.value, address.confidence))
            country_region = id_document.fields.get("CountryRegion")
            if country_region:
                print("Country/Region: {} has confidence: {}".format(country_region.value, country_region.confidence))
            region = id_document.fields.get("Region")
            if region:
                print("Region: {} has confidence: {}".format(region.value, region.confidence))
        # [END recognize_identity_documents]

if __name__ == '__main__':
    sample = RecognizeIdDocumentsSample()
    sample.recognize_identity_documents()