We do computer vision
We can assist you with your vision projects.
Whichever way you want. From a few scratches of code to turnkey solutions.
What is computer vision?
Computer vision, also known as machine vision, tries to extract information from images. This information contains some description of the photo at hand. That's in a nutshell what computer vision is about.
It all starts with a camera and a computer. This can be as simple as a webcam and an office PC. Or as sophisticated as a high-speed camera with a high-performance PC and powerful graphics card for GPU acceleration. That was the simple part. Now for the difficult part, the software.
Certain things are clear to us humans, which are absolutely incomprehensible to a computer. Especial when it comes down to vision and recognition. For example, a dog partially hidden behind a tree is split into separate parts for a computer. The computer has no perception that it is still one, not two dogs. Or, to put it in other words, computer vision software is just as intelligent as the designed algorithms.
Suppose you want to find red pixels in an image, assuming that ripe tomatoes are red. That is relatively simple. Mark each pixel with a high red channel and a low green and blue channel. Your description is still an image where the spots are marked with ripe tomatoes.
Next, assume you want to detect straight lines in an image. That is a lot harder. By starting with one pixel and scanning in the neighbourhood won't do; it takes a lot of time to process a single photo this way. Detecting a straight line turns out to be so complicated that people have graduated on the subject. See https://en.wikipedia.org/wiki/Hough_transform. In the same category falls something like automatic number plate recognition.
Up to now, all features to be detected have been defined geometrically. If not, it becomes even more complicated. Think of recognizing pedestrians or oncoming traffic in a self-driving car app. Or descriptions of real-world views.
You now leave the machine vision behind and move on to the field of machine learning, also known as deep learning, which is discussed here.
Once the desired features in an image are found and marked, they are usually processed at a higher level in the computer vision software.
This may include the distillation of mathematical formulas from descriptions. In this way, dimensions, direction, rotation or other important information about the detected objects are available in a more feasible form.
At the end of the chain, some action happens. It can be as simple as a good-bad decision. Or the storage of the number plate with a time or speed tag. You name it.
Broken bone detection
What is a bone? Two curved lines within a certain distance from each other.
That's what this application tries to find in the x-ray. A dedicated designed cubic fitter works upon two lines simultaneously.
The algorithm lets the curves grown until the contrast drops, or the distance between the two becomes too large. Usually, there are only a limited number of curves available. A misalignment between the two sets indicates a broken bone.
A second scan along each curve individually is done for the contrast of the x-ray. Any sudden fluctuation hints at a broken bone or a hair crack. It then will be investigated further.
Tobacco leaves have veins that should not be found in the final product. Because these stems have about the color as the tobacco, they are difficult to detect. However, their texture is different. Tobacco with all its tiny fibers can be considered as a high-frequency signal while the stems are low frequency.
Given this fact, a distinction is made with a wavelet. The Daubechies 8 wavelet, applied in a lifting scheme, generates the correct low-frequency locations in the image. See the pictures with the blue background.
The following stage tries to mark every stem individually. To this end, the shapes are diluted into skeletons. Next, the skeletons are transformed into simple vectors. Intersections between stems are now easily detected. See the second picture where the overlap of the stems is indicated by the blue lines.
In the end, the program generates all kinds of statistical information like the number and size of the stems as well as the color and cut width of the tobacco.
If the depth is of importance then there are different possibilities. Some techniques use well defined light patterns, in the visual or infrared range, which only works indoors. Others make use of two or more cameras. With the difference in location between features in the image, the distance can be calculated. This method is called epipolar geometry. A lack of detectable features is the show stopper here.
Our method replaces a camera with a laser device. Using galvo scanners (extremely fast moving mirrors) the laser beam can draw figures on surfaces. The camera can easily locate these figures in the picture. Before any accurate measurement can be done, the lens distortion must be eliminated first. Secondly, the fundamental and essential matrix of both the camera and the laser needs to be determined. Once done, the application can pinpoint any location within millimeters.