Nutrition Facts Label OCR Ruby

The Ruby OCR SDK supports the Nutrition Facts Label API.

The sample below can be used for testing purposes.
Nutrition Facts Label sample

Quick-Start

require 'mindee'

# Init a new client
mindee_client = Mindee::Client.new(api_key: 'my-api-key')

# Load a file from disk
input_source = mindee_client.source_from_path('/path/to/the/file.ext')

# Parse the file
result = mindee_client.enqueue_and_parse(
  input_source,
  Mindee::Product::NutritionFactsLabel::NutritionFactsLabelV1
)

# Print a full summary of the parsed data in RST format
puts result.document

# Print the document-level parsed data
# puts result.document.inference.prediction

Field Types

Standard Fields

These fields are generic and used in several products.

Basic Field

Each prediction object contains a set of fields that inherit from the generic Field class.
A typical Field object will have the following attributes:

  • value (String, Float, Integer, Boolean): corresponds to the field value. Can be nil if no value was extracted.
  • confidence (Float, nil): the confidence score of the field prediction.
  • bounding_box (Mindee::Geometry::Quadrilateral, nil): contains exactly 4 relative vertices (points) coordinates of a right rectangle containing the field in the document.
  • polygon (Mindee::Geometry::Polygon, nil): contains the relative vertices coordinates (Point) of a polygon containing the field in the image.
  • page_id (Integer, nil): the ID of the page, always nil when at document-level.
  • reconstructed (Boolean): indicates whether an object was reconstructed (not extracted as the API gave it).

Aside from the previous attributes, all basic fields have access to a to_s method that can be used to print their value as a string.

Amount Field

The amount field AmountField only has one constraint: its value is a Float (or nil).

Specific Fields

Fields which are specific to this product; they are not used in any other product.

Added Sugars Field

The amount of added sugars in the product.

A NutritionFactsLabelV1AddedSugar implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of added sugars to consume or not to exceed each day.
  • per_100g (Float): The amount of added sugars per 100g of the product.
  • per_serving (Float): The amount of added sugars per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Calories Field

The amount of calories in the product.

A NutritionFactsLabelV1Calorie implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of calories to consume or not to exceed each day.
  • per_100g (Float): The amount of calories per 100g of the product.
  • per_serving (Float): The amount of calories per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Cholesterol Field

The amount of cholesterol in the product.

A NutritionFactsLabelV1Cholesterol implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of cholesterol to consume or not to exceed each day.
  • per_100g (Float): The amount of cholesterol per 100g of the product.
  • per_serving (Float): The amount of cholesterol per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Dietary Fiber Field

The amount of dietary fiber in the product.

A NutritionFactsLabelV1DietaryFiber implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of dietary fiber to consume or not to exceed each day.
  • per_100g (Float): The amount of dietary fiber per 100g of the product.
  • per_serving (Float): The amount of dietary fiber per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

nutrients Field

The amount of nutrients in the product.

A NutritionFactsLabelV1Nutrient implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of nutrients to consume or not to exceed each day.
  • name (String): The name of nutrients of the product.
  • per_100g (Float): The amount of nutrients per 100g of the product.
  • per_serving (Float): The amount of nutrients per serving of the product.
  • unit (String): The unit of measurement for the amount of nutrients.
    Fields which are specific to this product; they are not used in any other product.

Protein Field

The amount of protein in the product.

A NutritionFactsLabelV1Protein implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of protein to consume or not to exceed each day.
  • per_100g (Float): The amount of protein per 100g of the product.
  • per_serving (Float): The amount of protein per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Saturated Fat Field

The amount of saturated fat in the product.

A NutritionFactsLabelV1SaturatedFat implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of saturated fat to consume or not to exceed each day.
  • per_100g (Float): The amount of saturated fat per 100g of the product.
  • per_serving (Float): The amount of saturated fat per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Serving Size Field

The size of a single serving of the product.

A NutritionFactsLabelV1ServingSize implements the following attributes:

  • amount (Float): The amount of a single serving.
  • unit (String): The unit for the amount of a single serving.
    Fields which are specific to this product; they are not used in any other product.

sodium Field

The amount of sodium in the product.

A NutritionFactsLabelV1Sodium implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of sodium to consume or not to exceed each day.
  • per_100g (Float): The amount of sodium per 100g of the product.
  • per_serving (Float): The amount of sodium per serving of the product.
  • unit (String): The unit of measurement for the amount of sodium.
    Fields which are specific to this product; they are not used in any other product.

Total Carbohydrate Field

The total amount of carbohydrates in the product.

A NutritionFactsLabelV1TotalCarbohydrate implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of total carbohydrates to consume or not to exceed each day.
  • per_100g (Float): The amount of total carbohydrates per 100g of the product.
  • per_serving (Float): The amount of total carbohydrates per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Total Fat Field

The total amount of fat in the product.

A NutritionFactsLabelV1TotalFat implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of total fat to consume or not to exceed each day.
  • per_100g (Float): The amount of total fat per 100g of the product.
  • per_serving (Float): The amount of total fat per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Total Sugars Field

The total amount of sugars in the product.

A NutritionFactsLabelV1TotalSugar implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of total sugars to consume or not to exceed each day.
  • per_100g (Float): The amount of total sugars per 100g of the product.
  • per_serving (Float): The amount of total sugars per serving of the product.
    Fields which are specific to this product; they are not used in any other product.

Trans Fat Field

The amount of trans fat in the product.

A NutritionFactsLabelV1TransFat implements the following attributes:

  • daily_value (Float): DVs are the recommended amounts of trans fat to consume or not to exceed each day.
  • per_100g (Float): The amount of trans fat per 100g of the product.
  • per_serving (Float): The amount of trans fat per serving of the product.

Attributes

The following fields are extracted for Nutrition Facts Label V1:

Added Sugars

added_sugars (NutritionFactsLabelV1AddedSugar): The amount of added sugars in the product.

puts result.document.inference.prediction.added_sugars.value

Calories

calories (NutritionFactsLabelV1Calorie): The amount of calories in the product.

puts result.document.inference.prediction.calories.value

Cholesterol

cholesterol (NutritionFactsLabelV1Cholesterol): The amount of cholesterol in the product.

puts result.document.inference.prediction.cholesterol.value

Dietary Fiber

dietary_fiber (NutritionFactsLabelV1DietaryFiber): The amount of dietary fiber in the product.

puts result.document.inference.prediction.dietary_fiber.value

nutrients

nutrients (Array<NutritionFactsLabelV1Nutrient>): The amount of nutrients in the product.

for nutrients_elem in result.document.inference.prediction.nutrients do
  puts nutrients_elem.value
end

Protein

protein (NutritionFactsLabelV1Protein): The amount of protein in the product.

puts result.document.inference.prediction.protein.value

Saturated Fat

saturated_fat (NutritionFactsLabelV1SaturatedFat): The amount of saturated fat in the product.

puts result.document.inference.prediction.saturated_fat.value

Serving per Box

serving_per_box (AmountField): The number of servings in each box of the product.

puts result.document.inference.prediction.serving_per_box.value

Serving Size

serving_size (NutritionFactsLabelV1ServingSize): The size of a single serving of the product.

puts result.document.inference.prediction.serving_size.value

sodium

sodium (NutritionFactsLabelV1Sodium): The amount of sodium in the product.

puts result.document.inference.prediction.sodium.value

Total Carbohydrate

total_carbohydrate (NutritionFactsLabelV1TotalCarbohydrate): The total amount of carbohydrates in the product.

puts result.document.inference.prediction.total_carbohydrate.value

Total Fat

total_fat (NutritionFactsLabelV1TotalFat): The total amount of fat in the product.

puts result.document.inference.prediction.total_fat.value

Total Sugars

total_sugars (NutritionFactsLabelV1TotalSugar): The total amount of sugars in the product.

puts result.document.inference.prediction.total_sugars.value

Trans Fat

trans_fat (NutritionFactsLabelV1TransFat): The amount of trans fat in the product.

puts result.document.inference.prediction.trans_fat.value

Questions?

Join our Slack