Coca-Cola is a well-known soft drink manufacturing company which has been rapidly adopting artificial intelligence.
In the TensorFlow Dev Summit 2018, Patrick Brandt, the IT Director and Solutions Strategist at the Coca-Cola company presented a talk on how Coca-Cola has been applying AI in their loyalty campaigns.
The Coca-Cola Loyalty campaign
Coca-Cola runs a loyalty campaign where consumers can get various rewards upon multiple purchases of Coca-Cola soft drinks.
For this, they use proof of purchase method where they print 14 characters product pin-code on the assorted bottle cap and on fridge-pack cardboards. Consumers can scan these pin-codes to get various rewards.
Experimenting with Artificial Intelligence for scanning pin codes
Since Coca-Cola had been printing the codes in a format that wasn’t easily recognizable for well-known OCR methods, they started creating their own neural networks for carrying out OCR.
As a result, they created a Convolutional Neural Network for detecting features off of an image and recognizing printed pin codes.
The user would take a picture of the bottle cap. Then, OpenCV is used to detect and locate the region of interest (ROI) in the image, i.e. the bottle cap. The located ROI is then cropped and normalized and character recognition is done through the help of a CNN.
The CNN outputs a character probability matrix and top 10 predictions are taken out. Then, the pin codes are checked for validity and if they are valid, the user gets the reward.
SqueezeNet with Batch Normalization was the final choice of model architecture
The CNN model development for OCR at Coca Cola went through three big iterations.
The data science team at Coca Cola started with Binarization to normalize the image. However, this, in turn, affected the accuracy of the model as the data was lossy.
Thus, they started using Best Channel Conversion but it made the AI model too large to be stored for a mobile application.
Then, they completely discarded the previous model and developed a SqueezeNet to lower the model size by training it on fewer learnable parameters. This too had a pitfall as the model couldn’t converge due to internal covariate shift.
Finally, Batch Normalization was used to converge the model with a decrease in training time.
SqueezeNet with batch-normalization produced a 5 Mb model which was a 25-fold decrease over the initial model Coca Cola had built and the accuracy was now over 95%.
The model works for all kinds of images!
The model was able to perform well even the image faced occlusion, translation, rotation and camera focus issues. The data science team at Coca Cola had been successful in applying applied AI at a consumer-level.
What do you think about the method in which Coca Cola has been using Applied AI at scale? Please let us know in the comments.
Also, if you found this article interesting, we know that you would learn to know how Google uses neural networks for robotic grasping.
Here is the full talk if you want to hear it from the man, Patrick Brandt, himself: