FPGA image processing, from now on, let's give the time to "image processing". My brother, who had hesitated and pondered over a question before writing, had been bothering me, "the position of FPGA in the field of image processing." ”
As a rule, let's not go into the answer to this question for a moment, but first we'll talk about image processing technology. In my personal opinion, image processing is about manipulating images to get the results you want. Image processing, it is a very broad concept, it contains image enhancement, image restoration, image reconstruction, image analysis, pattern recognition, computer vision and other n application direction. Many of these applications are inherently interlinked, but the focus in different areas of application is often different.
When we go to graduate school, or enter the company, if we are engaged in image processing related work, we also have a field of our own. In this, a Hugh brother actively confessed, a Hugh brother at this stage of the main focus of the field for image reconstruction.
Well, gossip doesn't say much, let's talk about truth. In my view of the image processing, as a "semi-professional" fpgaer, using FPGA for image processing related development, we often first of all to consider is the performance of the FPGA processing board, because doing image processing is a very resource-consuming thing. Open Taobao, we can search for a lot of image processing FPGA Development Board, some Development Board resources are very rich, can meet our pre-test requirements. However, it is embarrassing to use FPGA to do image processing is also a very difficult thing. A Hugh brother from the open source of the network, the main application of FPGA in image processing has been in the preprocessing stage of image.
What is called image preprocessing. such as image distortion correction, filter processing, edge detection, color detection and threshold processing. These preprocessing have some common characteristics, the algorithm is simpler, the operation is repetitive and so on. However, in addition to preprocessing, FPGA can not do anything else. Yes, image processing is like a three-layer pyramid, divided into the bottom, middle layer, high-level.
The image processing pyramid has three layers, respectively, for Pixel, feature, and target levels. A mature image processing application should cover these three layers.
At the pixel level, we can make some transformations on the image to enhance the useful information of the image while suppressing any irrelevant information (such as noise). Then through the preprocessing image segmentation operation to achieve the image from the pixel level to the feature level of the excessive, segmentation operation can be understood as the detection of the image has some common properties of the region. For these areas, the region is categorized into some pre-defined feature types as a later-identified dataset, based on one or more classification rules. At this time, the data is not only the image, which contains a wealth of feature information, such as object location information. At the top of the pyramid, depending on the acquired features, these feature sets can also be used as a learning training set to create a dedicated model, with the help of a model for identification, and then to describe the images captured in real time.
Well, just said a lot of a Hugh brother not good at the "textbook-style" definition, a Hugh brother continued to speak truth. Word, the application of FPGA in image processing is still in the immature state, the network can be used for reference is mostly preprocessing resources, and the use of FPGA to do features and target level of processing is very complex, most high-level applications are still in the development stage, specifically, Mainly universities and large companies will do this research and application, and because it is the development stage, so the use of FPGA suite is very expensive, regardless of cost. Obviously, this implementation is not commercial. So when you actually implement a very good image processing algorithm with a new "cheaper", "efficient" hardware, then you're really great.
Said so long, about "FPGA in the field of image processing." "This question, I suppose you have the answer to your own heart."
You may wish to compare it with the answer of a Hugh brother. Using FPGA to do image processing often needs to consider more problems than the algorithm, such as timing constraints, insufficient memory bandwidth, insufficient resources, computational problems, these problems are restricting the development of FPGA in the field of image processing. Imagine that this complex image processing algorithm, coupled with these unresolved problems, which is often the dilemma we encounter. Fortunately, technology is constantly improving, when the existing technology can not be a good solution to the current application challenges, will certainly be the birth of new technology, specifically to deal with these problems but the technology. That's why we need to constantly learn and recharge.
DDR2, DDR3, Zynq, PCIE, USB3.0, gigabit Network, LVDS, CORDIC, the advent of these new technologies to provide us with new ideas and solutions, so that the FPGA has greater potential, FPGA will be in the field of image processing more outstanding performance.
In the next and future post, a brother will mainly introduce the FPGA in the image processing application examples. With the new technology, through the application of specific examples of the way to tell a different but "absolutely wonderful" image processing stories, please look forward to.