LOGO DETECT Detection with deep learning Image classifier ml5js Tutorial image classification MobileNet MobileNet Code Logo detection in marketing

Machine Learning and Deep Learning

The evolution of artificial intelligence over the past decade has been prodigious and has led us to new and exciting applications of AI. Machine learning is an application of artificial intelligence that provides systems the ability to automatically learn and improve from experience without being explicitly programmed.

There are two types of learning that can take place; supervised learning where both input and desired output are provided and labelled for classification to provide a learning for basis for future data processing. On the other hand, Unsupervised learning requires the ability to identify patterns in steams of inputs. There are many different types of algorithms used in machine learning that differ in terms of their approach, the type of input and output and finally the type of task intended to solve. There are also various types of models that are used where they must be trained in order to have the capability to process additional date to make successful predictions.

Our application is programmed using deep learning which is a method based on artificial neural networks (ANN). More specifically in our app, a convolutional Neural Network (CNN) will be used and is explained in more detail on the first picture on the right.This is an important and widely used network for image recognition.

An artificial neural network is a very rough model of how the human brain is structured as shown in the second picture. Neurons in our brain receives a signal, will process it and then pass it on to other neuros.

In a similar fashion, neural networks contain 3 layers (input layer, hidden layer, output layer) in which neurons are interconnected to neuros in the next layer. In image processing, lower layers may identify edges while higher layer may identify concepts relevant to humans such as letters. This is the layer in which the feature extraction takes place. No. of hidden nodes and no. of hidden layers is arbitrary. Every hidden layer extracts features that helps in identifying image if you’re classifying the images.








Finally, if this information was a bit too complex to understand, I recommended watching the Ted talk video on the right called "How we’re teaching computers to understand pictures"



How to program an image classification model?

In order to create this model, a neural network must be created and trained. Using ml5.js, we can access the library that provides us with machine learning algorithms and models in the browser. In addition, MobileNets which is a class of convolutional neural network that is trained to recognize images will also be integrated in order to have the ability to recognise images. As shown in the picture on the right, it can have the ability to recognise a specific type of bird up up to a 100% confidence. MobileNet has the ability to recognise images in two different ways: with images directly uploaded to the site and in real time with a camera.

By providing a group of picture of a certain brand in different situation, it will train itself to recognise it. For example, if we provided the following pictures of the BMW brand, it will now have the ability to recognise it. In order for the AI differentiate the BWM brand with other logo, we will have to provide the AI with many other different logos.To create this database with MobileNet, use the image classification youtube link at the top of the page that explains the whole process.

It is important to note that the AI will become more efficient and successful as you train it. Therefore by providing the AI with a larger amount of pictures of logos, it will become mre accurate at recognising them.

The last resource you need to create a great image classifier is to add a live video feature using the webcam. The code to create such a classifier can be found here. The AI will now be able to recognise logos of an individual’s clothing if sat in front of a webcam.

Finally, it is important to note that using Region-based Convolutional Neural Networks is not the only option to create an image classifier. There are two other methods called YOLO (you only look once) and SSD link (Single Shot MultiBox Detector) that can be used.

Why use Logo Detect

The LogoDetect application can be used in many different situations. In terms of marketing for corporations, the application could be used to measure marketing campaign effectiveness and verify how many times your add appears during live events and for how long. It can also be used to verify there is no misuse of your organisation’s logo or any brands that are trying to rip off your logo.

Individuals could use the classifier to detect any logo they don’t recognise. They will then have the ability to determine which brand it is and can directed towards it’s official website in case you want to buy a product.