Boarding Pass

This section describes how to build your custom OCR API to extract data from Flight Boarding Passes using the API Builder. A Flight Boarding Pass is a document issued by an airline upon check-in that allows a passenger to access the restricted area of an airport and board an aircraft.

Prerequisites

You’ll need at least 20 Boarding Pass images or PDFs to train your OCR.

Define Your Boarding Pass Use Case

Using the Boarding Pass below, we’re going to define the fields we want to extract from it.

Boarding PassBoarding Pass

  • Passenger name: The full name of the travelling passenger (John Doe)
  • Flight number: The flight number for the boarding pass, including the airline's identification letters (AC 2505)
  • Date: The date of departure in US format (10/12/2017)
  • Departure airport: The airport of departure including the airport identification letters (New Delhi DEL)
  • Destination airport: The airport of destination including the airport identification letters (Los Angeles LAX)
  • Boarding Time: The boarding time (07:45)

That’s it for this example. Feel free to add any other relevant data that fits your requirement.

Deploy Your API

Once you have defined the list of fields you want to extract from your Boarding Pass, head over to the platform and follow these steps:

  1. Click on the Create a new API button on the right.

  2. Next, fill in the basic information about the API you want to create as seen below.
    Set up your modelSet up your model

  3. Click on the Next button. The following page allows you to define and add your data model.

Define Your Model

There are two ways to add fields to your data model.

Document data modelDocument data model

Upload a JSON Config

To add data fields using JSON config upload.

  1. Copy the following JSON into a file.
{
  "problem_type": {
    "classificator": { "features": [], "features_name": [] },
    "selector": {
      "features": [
        {
          "cfg": { "filter": { "alpha": -1, "numeric": 0 } },
          "handwritten": false,
          "name": "passenger_name",
          "public_name": "Passenger Name",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": -1 } },
          "handwritten": false,
          "name": "flight_number",
          "public_name": "Flight number",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "convention": "US" } },
          "handwritten": false,
          "name": "date",
          "public_name": "Date",
          "semantics": "date"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": 0 } },
          "handwritten": false,
          "name": "departure_airport",
          "public_name": "Departure airport",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": 0 } },
          "handwritten": false,
          "name": "destination_airport",
          "public_name": "Destination airport",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": 0, "numeric": -1 } },
          "handwritten": false,
          "name": "boarding_time",
          "public_name": "Boarding Time",
          "semantics": "word"
        }
      ],
      "features_name": [
        "passenger_name",
        "flight_number",
        "date",
        "departure_airport",
        "destination_airport",
        "boarding_time"
      ]
    }
  }
}
  1. The data model will be automatically filled.
  2. Click on Create API at the bottom of the screen.

Document data model filledDocument data model filled

Manually Add Data

Using the interface, you can manually add each field for the data you are extracting. In our example, here are the different field configurations we used:

  • Passenger name: type String that never contains numeric characters.
  • Flight number: type String without specifications.
  • Date: type Date with US format order.
  • Departure airport: type String that never contains numeric characters.
  • Destination airport: type String that never contains numeric characters.
  • Boarding Time: type String that never contains alpha characters

Once you’re done setting up your data model, click the Create API button at the bottom of the screen.

Document data model filledDocument data model filled

Train Your Boarding Pass OCR model

You’re all set! Now it's time to train your Boarding Pass deep learning model in the Training section of our API.

Train your modelTrain your model

  1. Upload one file at a time or a zip bundle of many files.
  2. Click on the field input on the right, and the blue box on the left highlights all the corresponding field candidates in the document.
  3. Next, click on the validate arrow for all the field inputs.
  4. Once you have selected the proper box(es) for each of your fields as displayed on the right-hand side, click on the validate button located at the right-side bottom to send an annotation for the model you have created.
  5. Repeat this process until you have trained 20 documents to create a trained model.

To get more information about the training phase, please refer to the Getting Started tutorial.

 

Questions?
Slack Logo IconSlack Logo Icon  Join our Slack