With new algorithms and optimizations coming out at an unprecedented rate, it is no secret that Artificial Intelligence and computer vision are at the forefront of the programming world. A good analogy to compare this breakthrough to is living organisms of the past. In the very first hours of life on earth, organisms were single celled and had no way of seeing. They simply moved around and executed simple commands like eat, run, or fight. It was until these creatures developed vision that they became truly complex. Animals started performing much more complex actions such as detecting movement and classifying whether it was prey or predator, all in an instant. The technology world is seeing a similar rapid evolution with the dawn of its own vision.
Computer vision algorithms require complex and repetitive operations, large amounts of data, and a variety of different forms of data interactions. Add in any form of machine learning on top of that with a spice of IoT and you can see how the problem becomes exponentially more complex. The requirements of these systems can also be very complex, with potentially more data coming into some units and more computing of algorithms for A.I. on others. This is where FPGA boards can be a perfect fit. With being extremely customizable, FPGA boards can help meet the specific needs of the netowrk of units. Unlike other programmable computers, FPGA can get down to the gate-level, the most efficient technique. Also, once the bit stream is uploaded, the FPGA will work diligently running the code with no worries of start up times or resets. Such systems have been used in DNA matching, encryption decryption, image compression and decompression, and networking.
There has never been a sever need in the automobile industry for a car to have serious processing power until the dawn of self driving cars. Manufacturers are now faced with the unique problem of optimizing the processing capabilities within their cars. One recent innovation is trying to bridge the gap from today and tomorrow by using FPGA inside a car to monitor for system failures and control the system. The design proposes a GPU handle primary automation functions and use the FPGA to kick in when a failure is detected. The FPGA greatly enhances the total design of the system by be very reliable, low power consumption, and very low latency with decent processing power to back it up. When failure is detected, the FPGA will be able to kick in one of its 'special drivers' to handle a number of situation and control the car for 10 seconds until the driver is alerted or bring the car to a safe stop. Theses, 'special drivers' are able to handle several computer vision algorithms suc as watching the rode and controlling the car and watching the driver to see if their focus has returned. While this is not true self driving, having these fallbacks that are as reliable as a FPGA that can run constantly under almost any condition greatly enhances the factor of safety on these autonomous driving cars and will help usher in a true era of self driving cars.
Laundry is a part of everyone's life. However, not everyone's first thought of a smart appliance is a laundry machine. A smart laundry machine has many things to offer such as saving energy and more reasonable washing. Most smart laundry machines have a tough time learning the user's cloth types and turbidity changes and take a long time to train. However, using FPGA in a new designs allows for faster training with the use of genetic algorithms. Genetic algorithms is a form of machine learning which is very similar to how our own genes are created. Using mutation and crossover, the weights of the system are taken and simulated to the environment. Over about 100 different tested weights, the best 10 are taken and slightly manipulated to create another 100. This process is repeated hundreds of times until these weights are optimized. The weights are then funneled into a neural network that controls features such as the time, temperature, inflow of water, and the motor. Combine all these features on a reliable and always running FPGA and you are left with an extremely efficient washer that will wash clothes like their your clothes, not just the "standard wash" setting. This is all made possible with the large increase of training speed due to the FPGA board running all the algorithms.
One of the most challenging problems facing the computer vision and artificial intelligence community is the issue with image quality. There are frequently times when information needs to be extracted from an image but the image is distorted. With no reference picture to go from, this becomes a difficult problem referred to as No Reference Image Quality Analysis. With speed always being at the forefront of the programming world, when it comes to complex image processing, a standard CPU does not cut it. However, with the parallel processing of a FPGA, the problem becomes much easier. Using deep convolutional neural networks, a team form Beijing, China has developed a method o extract natural scene statistical features using FPGA. This problem only becomes more feasible due to the FPGA unique structure. This can be implemented in many computer vision applications across many different fields of technology.
As the field of Artificial Intelligence and Computer Vision develop more and more in the future, the need for supporting devices will also rise. While many companies are running trying to create the best GPU, FPGA could have a silent uprise. The ease and reliability of FPGA to work with complex algorithms will be its shining point. The parallel computing combined with being able to optimize down to the gate level is a significant help. Another helpful aspect not mentioned often is FPGA ease to implement in a IoT setting. Since the bitstream can be exactly the same or specified to how you need it, with network access, FPGA has a very short design period and can implemented fast. There are more and more upsides to mentioning to FPGA, but the main idea is that FPGA is not going anywhere. More and more applications will arise with FPGA being implemented to help ushering in this new wave of truly smart applications. As an avid follower of new computer vision and AI technology, I can barely wait to see.