CVB Polimago applications divide into two types ‒ search and classification. Search applications include finding variable defects that are not easily found by classical methods. Classification might follow a search step, to allow a target to be found and then classified as a specific type. One example of this is complex OCR, such as stamped characters or handwriting.
Machine learning for industrial applications
CVB Polimago is a machine-learning tool that has tangible advantages over other ‘Deep Learning’ tools. CVB Polimago is both a search tool (for finding variable targets) and a classification tool for distinguishing or classifying targets.
Machine Learning approaches are generally most successful where it is easier to show rather than to describe the target and its variations. This approach is well known for organic applications such as farming and food production, but it is also highly useful for industrial applications.
For example, the detection of unknown defects is traditionally difficult, but machine learning allows a ‘good’ and ‘bad’ state to be characterised with more flexibility than conventional image processing tools. Also applications on metal, where machining marks and reflections have previously prevented successful search or classification become straightforward with machine learning. The key to all of these applications is modelling the variation.
CVB Polimago has the following differences compared to convolutional neural network ‘deep learning’ approaches:
Much smaller training sets
CVB Polimago typically needs 20-50 training images per class. This compares very favourably to other tools that typically need 500 images per class. This is a strong advantage in industrial applications, where finding 500 different examples of defects (per type) may be impossible. Consider also the effort that this amount of training implies.
The time to create a classifier from training data is or the order of minutes, 10 minutes is typical. In deep learning tools the training time is usually measured in hours.
Deep learning tools are usually only feasible when using a powerful GPU to accelerate the learning. Without this, the training may take ten times longer. CVB Polimago runs on standard CPUs, for both training and deployment, and execution time is often faster. By running on a standard CPU, CVB Polimago applications can be run on compact PCs, not just 19” industrial machines.
Available for Windows and Linux
With CVB 2019, Polimago is now available for Windows and Linux (including ARM platforms). This makes the lightweight power of CVB Polimago available in embedded applications for the first time.
A niche usage of CVB Polimago is 3D pose estimation. For a planar target, it is possible to learn the effects of perspective as well as rotation, scaling and variability. This means that CVB Polimago can return the x,y position, the scale and also the 3D axial angles (alpha, beta, gamma) ‒ resulting in the description of the position and 3D direction that the object is facing.
CVB Polimago can be used in virtually identical applications to neural networks and is part of the Common Vision Blox machine vision toolkit from STEMMER IMAGING. It uses ridge regression supervised learning method for search and classification in machine vision applications. Supervised learning means that there is some prior knowledge in the training images where the user has marked typical examples of the features for classification with a region of interest. This allows the ridge regression algorithm to generate a function to produce the desired output. Crucially CVB Polimago requires typically just 20 - 100 training images whereas CNNs could require 500 training images per class as well as 500 good ones. As an example, for an OCR application with alphanumerics A-Z and 0-9, a CNN could require 36 x 500 = 18000 training images.
There are a number of significant benefits that arise from having smaller training sets. In particular, training times for Polimago will be much shorter than for CNNs. Polimago has been trained in times of typically 5-20 minutes compared to hours for a CNN. It can also take a long time simply to label the required features in the larger training sets needed for CNNs. If an iterative training process is required to evaluate different parameters then CNNs become even more unwieldy.
CVB Polimago is designed to be run on a CPU and achieves comparable speeds to a CNN using GPU acceleration. Since Polimago does not require a GPU it can be used on a compact PC rather than a 19“ rack mounted PC. Typical execution times for Polimago search are of the order of tens of milliseconds, which are comparable to GPU-accelerated neural network speeds, but CVB classification-only tasks run at much faster speeds – often sub-millisecond.
CVB POLIMAGO is available at significantly lower cost than many commercial CNN tools, and has the added benefit that in CVB 2019 (due for release Q3 2019) it will also be available for Linux (on Intel and ARM platforms) for the first time. This means that it can also be used in embedded vision applications.
Markets and Applications
CVB Polimago applications are many and varied ‒ they include the search (and tracking) of organic or continuouslyvariable objects. This makes it a good choice for the food industry.
The variability of a target's appearance might also be due to illumination, so CVB Polimago can be a good choice for outdoor applications or those with uncontrolled lighting, such as agriculture and traffic applications.
CVB Polimago classification applications can be similar to the search applications, except that a decision is made between multiple trained classes. OCR, gender classification, vehicletype recognition and defect classification are all examples of this.