Deep Learning

MVTec software products offer a large selection of operators, functions and methods that are either based on deep learning technologies, or allow customers to use deep learning technologies in their own applications. For example, HALCON and MERLIC both include deep-learning-based OCR (check out this video to see it in action). Another example is the possibility to train one's own classifier using CNNs (Convolutional Neural Networks), which can then be used it to classify new data.

Training user-specific CNNs

CNN training with labeled image data

With MVTec HALCON, users can train their own classifier using CNNs (Convolutional Neural Network). After training the CNN, it can be used for classifying new data.

Training is done simply by providing a sufficient amount of labeled training images. E.g., to be able to differentiate between samples that show scratches or contamination and good samples, training images for all three classes must be provided: Images showing scratches must be labeled "scratch", images showing some sort of contamination must carry the label "contamination", and images showing a good sample must be in the category "OK".

The software then analyzes these images and automatically learns which features can be used to identify defective and good samples. This is a big advantage compared to all previous classification methods, where these features had to be "handcrafted" by the user – a complex and cumbersome undertaking that requires skilled engineers with programming and vision knowledge. It is the first time that customers can train CNNs with HALCON on the basis of deep learning algorithms, using sample pictures of their specific application. Thus, the resulting network can be highly optimized to the customers’ needs.

Using the trained networks

Trained CNN classifying defects

Once the network has learned to differentiate between the given classes, e.g., tell if an image shows a scratched, a contaminated or a good sample, the network can be put to work. This means, users can then apply the newly created CNN classifier to new image data which the classifier then matches to the classes it has learned during training – this is also called "inference".

Application areas

When looking for real-world applications, CNNs can for example be used for defect classification (e.g., for circuit boards, bottle mouths or pills), or for object classification (e.g., identifying the species of a plant from one single image).