Inspection of defects in the surface of lacquered boards
The challenge of inspecting painted surfaces for defects, in this example painted kitchen fronts, is the sheer number of different defects that an algorithm needs to identify and classify.
There can be over 25 different types of defects in the lacquer - small holes, scratches, orange peel, dust, etc. It would be very resource-intensive to develop an algorithm capable of finding and classifying all defects, especially due to the high variance in defects.
In this example, we have developed a solution that first pre-processes the image and identifies areas in the image that are likely to have a defect. We can use traditional machine vision for this part, as it doesn't need to do anything other than find areas that deviate from how the surface otherwise looks.
We then process these image sections in a neural network that has been trained on a large number of good and bad images that have been annotated so that the network learns the different types of defects. The network can then assess with a high degree of probability whether an error is present and at the same time define which type of error it is.
The neural network identifies the errors by setting a probability that a particular error is present in an image section.
In some cases, the value will be close to the threshold we have defined for an error. If there are specific errors that are particularly important to avoid, we can use traditional machine vision to post-process the image sections with borderline cases.
Since we have narrowed the sample space through machine learning, we now can create an algorithm that looks for specific characteristics of a given defect. In this way, we increase the accuracy of the system.
Why Hybrid Vision is necessary
It's often a bad idea to process an entire image with machine learning, as it will take too much time and require too many resources. The system becomes much more efficient when we use traditional 2D and 3D vision to identify the areas of an image that we want to process through the machine learning network.
When the complexity of a task is sufficiently large, it is often not possible to solve it with standard machine learning solutions. Training the network to be robust enough to identify and classify a high number of different errors with high variance requires a great deal of professional expertise.