/unwrap_labels

Algorithm to unwrap labels using edge markers

Primary LanguagePython

Unwrap Labels

The algorithm to unwrap labels using edge markers

How it works

A wine label, being stick to a cylinder surface, is distorted, which reduces quality of at least two operations with it:

  • Image matching (product search by a picture)
  • Recognition of the text on the label

The accuracy of those operations can be highly improved if the label is unwrapped, and the current library provides an easy to use algorithm for that.

A cylinder distortion of the label on a picture makes it look like a barrel (see an example below): original image

The following schema shows, how that happens: schema

The thing is, to revert the distortion, it's only required to specify 6 markers: markers image

The library creates a mesh, which will be transformed into a plane: mesh

The unwrapped image is below. There are two ways to unapply transform - with or without interpolation. The interpolated method generates a better image but requires to have scipy dependency installed (it might be an issue if you use Amazon lambda, which has limited library size):

unwrapped

Unwrapping + Stitching

See our AI based service for auto unwrapping and stitching https://perfectlabel.io