Bus Ticket OCR

This article walks you through the building process of an OCR API that extracts data from Bus Ticket using our deep learning engine. It will work for any bus company.

Prerequisites

  1. You’ll need a free account. Sign up and confirm your email to login.
  2. You’ll need at least 20 Bus Ticket images or pdfs to train your OCR.

Define your Bus Ticket use case

First, we’re going to define what fields we want to extract from your Bus Ticket.

Bus ticket key data extractionBus ticket key data extraction

Bus ticket key data extraction

  • Bus Company: The name of the company that sold the ticket (megabus.com)
  • Reservation Number: The reservation number that will be asked when you board the bus (67-2722-033018-M10R-1415-LAS-ANA)
  • Date: The date of departure (March 30, 2018)
  • Departure city: The city of departure for your travel by bus (Las Vegas)
  • Arrival city: The city of destination (Anaheim)
  • Departure Time: The bus departure time from the departure city (2:15 PM)
  • Price: The total amount paid for the bus ticket ($41,75)

That’s it for our use case, but you are free to add any other relevant data to fit your requirements.

Deploy your API

Once you have defined the list of fields you want to extract, head over to the platform and press the ‘create a new API’ button.

You land now on the setup page. Here is the image you can use to set up the API. For instance, my setup is as follows:
Set up your APISet up your API

Set up your API

Once you’re ready, click on the “next” button. We are going to specify the data types for each of the fields we want our API to extract from your bus ticket.

To move forward, you have two possibilities:

Upload a json config
Copy the following JSON into a file and upload it on the interface

{
  "problem_type": {
    "classificator": { "features": [], "features_name": [] },
    "selector": {
      "features": [
        {
          "cfg": { "filter": { "alpha": -1, "numeric": 0 } },
          "handwritten": false,
          "name": "bus_company",
          "public_name": "Bus company",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": -1 } },
          "handwritten": false,
          "name": "reservation_number",
          "public_name": "Reservation 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_city",
          "public_name": "Departure city",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": 0 } },
          "handwritten": false,
          "name": "arrival_city",
          "public_name": "Arrival city",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "alpha": -1, "numeric": -1 } },
          "handwritten": false,
          "name": "departure_time",
          "public_name": "Departure Time",
          "semantics": "word"
        },
        {
          "cfg": { "filter": { "is_integer": -1 } },
          "handwritten": false,
          "name": "price",
          "public_name": "Price",
          "semantics": "amount"
        }
      ],
      "features_name": [
        "bus_company",
        "reservation_number",
        "date",
        "departure_city",
        "arrival_city",
        "departure_time",
        "price"
      ]
    }
  }
}

Or build your data model manually
Using the interface, add up to your data model each field.

Define your modelDefine your model

Define your model

  • Bus company: type String that never contains numeric characters.
  • Reservation number: type String without specifications.
  • Date: type String without specifications.
  • Departure city: type String that never contains numeric characters.
  • Arrival city: type String that never contains numeric characters.
  • Departure Time: type String without specifications.
  • Price: type Number without specifications.

Once you’re done setting up your bus ticket data model, press the Start training your model button at the bottom of the screen.

Model ready to trainModel ready to train

Model ready to train

Train your Bus Ticket OCR

Training your modelTraining your model

Training your model

You’re all set!

Now is the time to train your Bus ticket deep learning model in the Training section of our API.

In a few hours (minutes if you're fast), you’ll get your first model trained and will be able to use your custom OCR API for parsing Bus Ticket in your application.

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

If you have any questions regarding your use case, feel free to reach out via our chat!

Updated 4 months ago


Bus Ticket OCR


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.