Skip to content
A stack of folded newspapers seen from the side, layered paper edges running the frame.

Retail · AI in production

Printed promotions, cropped and read by machine

Computer vision crops each advertisement off the page, reads printed and handwritten text, and classifies the offer, at a volume no manual team could match.

Client
Collects printed retail ads and coupons into a product and offer database
Segment
Retail, pricing and promotions data
Requirement
about 20,000 ad blocks a day, at least 80% of processing automated
Timeline
3 months, 9 person-months
  • PyTorch
  • ONNX
  • YOLOv4
  • YOLOv5
  • CRAFT
  • Bidirectional LSTM
  • SynthText
  • MJSynth

Before

What was true before

Promotional data was gathered from printed advertisements by hand. Each page was cropped, read and categorised by a person, which capped coverage and made the data late. The new system had to handle about 20,000 ad blocks a day, automate at least 80% of processing, and read text with accuracy close to 100%.

After

What we did

A pipeline that crops an ad page into individual blocks, reads printed and handwritten text, extracts brand, price, volume and product type, and classifies the offer type.

Build log

How it was built

work log · Retail · Promotional data provider6 steps
  1. 01

    Prepared training data from real-world and synthetic examples

  2. 02

    Trained YOLOv4 and YOLOv5 to detect each ad on a page and crop it into a block

  3. 03

    Applied CRAFT text detection on real and synthetic data

  4. 04

    Recognised text with a spatial transformer, bidirectional LSTM, CTC and an attention module

  5. 05

    Extracted brand, price, volume and product type, and classified the offer type

  6. 06

    Tuned for speed and accuracy, and retrained as new data arrived

Measured

Results

As reported in the published case.

cropping accuracy
99.3%
accuracy recognising the offer type
Almost 93%
The published case on oxagile.com

Engagement

Where this work sits

Next step

Yours would be the next one.

Tell us where it breaks, and you get a written answer on what breaks first and what it costs.