Passport OCR Ruby
The Ruby OCR SDK supports the passport API for extracting data from passports.
Using the sample below, we are going to illustrate how to extract the data that we want using the OCR SDK.
Quick Start
require 'mindee'
# Init a new client, specifying an API key
mindee_client = Mindee::Client.new(api_key: 'my-api-key')
# Send the file
result = mindee_client.doc_from_path('/path/to/the/file.ext').parse(Mindee::Prediction::PassportV1)
# Print a summary of the document prediction in RST format
puts result.inference.prediction
Output:
:Full name: HENERT PUDARSAN
:Given names: HENERT
:Surname: PUDARSAN
:Country: GBR
:ID Number: 707797979
:Issuance date: 2012-04-22
:Birth date: 1995-05-20
:Expiry date: 2017-04-22
:MRZ 1: P<GBRPUDARSAN<<HENERT<<<<<<<<<<<<<<<<<<<<<<<
:MRZ 2: 7077979792GBR9505209M1704224<<<<<<<<<<<<<<00
:MRZ: P<GBRPUDARSAN<<HENERT<<<<<<<<<<<<<<<<<<<<<<<7077979792GBR9505209M1704224<<<<<<<<<<<<<<00
Fields
Each prediction object contains a set of different fields.
Each Field
object contains at a minimum the following attributes:
value
(String or Float depending on the field type): corresponds to the field value. Can benil
if no value was extracted.confidence
(Float): the confidence score of the field prediction.bounding_box
(Array< Array< Float > >): contains exactly 4 relative vertices coordinates (points) of a right rectangle containing the field in the document.polygon
(Array< Array< Float > >): contains the relative vertices coordinates (points) of a polygon containing the field in the image.reconstructed
(Boolean): True if the field was reconstructed or computed using other fields.
Attributes
Depending on the field type specified, additional attributes can be extracted from the Passport
object.
Using the above sample, the following are the basic fields that can be extracted:
- Orientation
- Birth Place
- Country
- Dates (Expiry, Issuance, Birth)
- Gender
- Given Names
- ID Number
- Machine Readable Zone
- Surname
Birth Place
birth_place
(Field): Passport owner birthplace.
puts result.inference.prediction.birth_place.value
Country
country
(Field): Passport country in ISO 3166-1 alpha-3 code format (3-letter code).
puts result.inference.prediction.country.value
Dates
Date fields:
- contain the
date_object
attribute, which is a standard Ruby date object - have a
value
attribute which is the ISO 8601 representation of the date.
The following date fields are available:
expiry_date
: Passport expiry date.
puts result.inference.prediction.expiry_date.value
issuance_date
: Passport date of issuance.
puts result.inference.prediction.issuance_date.value
birth_date
: Passport's owner date of birth.
puts result.inference.prediction.birth_date.value
Gender
gender
(Field): Passport owner's gender (M / F).
puts result.inference.prediction.gender.value
Names
given_names
(Array< Field >): List of passport owner's given names.
result.inference.prediction.given_names.each do |name|
puts name
end
surname
(Field): Passport's owner surname.
puts result.inference.prediction.surname.value
ID
id_number
(Field): Passport identification number.
puts result.inference.prediction.id_number.value
Machine-Readable Zone
mrz1
(Field): Passport first line of machine-readable zone.
puts result.inference.prediction.mrz1.value
mrz2
(Field): Passport second line of machine-readable zone.
puts result.inference.prediction.mrz2.value
mrz
(Field): Reconstructed passport full machine-readable zone from mrz1 and mrz2.
puts result.inference.prediction.mrz.value
Questions?
Updated 3 months ago