We do embedded vision
At the end of the day, embedded vision can be your best solution. It's powerful, small, robust, and cheap.
What is embedded vision?
Embedded vision is, in fact, the same as computer vision. The only difference is, as the title suggests, the hardware. Usually, it is one large advanced computer chip mounted on a tiny circuit board. These chips are amazingly powerful and can be used well in various vision tasks.
Embedded vision is mainly applied for two reasons. As an alternative to a computer or when advanced algorithms cannot be efficiently executed with a regular computer.
The first reason is the most obvious. Why use every time an expensive computer when a single board computer like an Odroid-UX4 for, say $80, can do the job just as good? In a much smaller housing and less downtime because of the fewer parts. And, last but not least, it can be used well in rugged environments.
The second reason for using embedded vision has to do with the computer hardware itself. A computer is optimized for general purpose arithmetic and logical operations. Not so much for specific operations like Fourier transformations with its butterfly memory addressing scheme. An embedded system with customized electronics will, in this case, perform much better than the computer. Of course, a study is advisable to determine whether this method is useful before beginning the process of making your own electronics. However, as the cases below show, it can be very profitable to do this. On the fly stitching of two images could only be done in dedicated hardware as shown in the stereo-vision case.
Not only the computer can be replaced with embedded hardware, but also the camera. This can lower the price per unit even further. Be aware, not every tiny embedded camera has great optics. Sometimes this can be the showstopper.
Embedded camera for Raspberry Pi
Camera suppliers sometimes also sell so-called embedded vision systems or smart cameras. This is often a camera with a processor in the same housing. Some words of warning here. In addition to the often outdated processor, there is always the friction between the manufacturer's reluctance to reveal all its hard- and software secrets and the programmers desire to configure the best design. Even worse if the embedded vision camera only comes with a library. Needless to say, this is the recipe for disappointment.
Is embedded vision always a better choice than 'normal' computer vision? This depends on the problem at hand. Still, regular computers, certainly with graphics cards, outperform every standard embedded system. So if you want to run some massive deep learning and training application, the computer is still a better option. However, even these applications are also increasingly being taken over by embedded systems. Think of self-driving cars.
Another reason to stick to a normal computer may be the development. There are tons of software tools available for a regular computer environment. Especially when writing the application includes a lot of trial and error, good debugging tools make the difference. The application can still be ported to an embedded system at a later stage.
This is an elegant example of embedded vision. The famous triangulation on a credit card. The image sensor can take pictures up to 1000 fps. Next, an FPGA calculates the measured height. With displacement pulses at an input, it can also compute volume and other quantities like flow. A flexible scheme connects outputs of the triangulation with different thresholds. Now the triangulation device can be programmed to select measured products on their size or volume, such as oysters for example. Or it measures the accumulated volume on a conveyor belt. A USB connection broadcasts the triangulation live images, Ethernet for communication with a PC or PLC and some I/O for controlling valves and other actuators.
Another example that can only work in embedded vision. This stereo vision camera employs two sensors, both focused on a flat surface at a certain distance. The two images are combined into a single picture with a constant 200 dpi regardless of the distance to the object.
Because each sensor has a pixel clock of 90 MHz, only an FPGA can perform the necessary calculations. The overlap between the two images determines the distance to the surface and the scale of the original picture. This overlap is calculated for each image line by a convolution algorithm. Because the method is time-consuming, there are 12 identical kernels implemented in the FPGA. This way, there is always one idle and ready to accept the next image line. Once the distance is known, and hence the scale, a variable sub-pixel downscale algorithm is used the generate the 200 dpi image.
On slide 7 the outcome of the convolution is show by the red line. The small curvature is due to the minimal lens distortion. This is taken care of by the stitching routine inside the stereo vision camera.
Each tea variety has its own preparation time and temperature. Therefore the machine must know in advance which flavor is chosen. The simplest method is to mark a taste with a unique color. That is why each cartridge has a colored marker on the back. Once inserted, an IR beam is broken and the machine starts its procedure. Two white LEDs illuminate the back of the cartridge and a sensor detects the reflected color. The signal is transformed by plotting the chroma in a two-dimensional space. A simple clustering algorithm can now be used to give the tea variety. It is now up to marketing to define the appropriate colors. It was the cheapest vision solution we ever made: two LEDs and a single color sensor. A tiny MCU could run the whole machine.