A New FPGA Architecture of FAST and BRIEF Algorithm for On-Board Corner Detection and Matching
Abstract
:1. Introduction
2. Overview of the FAST and BRIEF Algorithm
2.1. FAST Detector
- (1)
- The maximum value of n for which p is still a corner;
- (2)
- The minimum value of t for which p is still a corner;
- (3)
- The sum of the absolute difference between the pixels in the contiguous arc and the center pixel.
2.2. BRIEF Descriptor
2.3. Corner Matching
3. Proposed FPGA Architecture
3.1. The Whole Architecture
- (1)
- The Writing/Reading module controls the writing/reading of image data and generates the corresponding writing/reading addresses. The image data are stored into a DDR3, which is 512 Mb of external memory.
- (2)
- In the Corner Detection module, the image data input from the image sequences are sent into line buffers and then, the candidate corners are first located using the FAST algorithm, which is implemented by using 16 comparators. The most robust corners are determined by a non-maximal suppression sub-module.
- (3)
- In the Corner Matching module, when the most robust corners are output, the locations of the corners are sent to the Writing/Reading module to read the corresponding sub-images centered on the corners. The sub-images are used to generate the BRIEF descriptors. Each BRIEF descriptor consists of a binary vector. The BRIEF descriptors in the first image are sent into First In First Out (FIFO)-1 and the BRIEF descriptors in the second image are sent into FIFO-2. The Hamming distances between the BRIEF descriptors stored in FIFO-1 and FIFO-2 are calculated. A point pair with the minimal Hamming distance is output as the final result.
3.2. Writing/Reading Module
3.3. Corner Detection Module
3.4. Corner Matching Module
- (1)
- The burst length of DDR3 is 8 and the size of the sub-image is 35 × 35. Hence, the smallest size of a sub-image needed to be read is 48 × 35. To cut out the sub-image with 35 × 35 from the sub-image with 48 × 35, a remainder-based method first proposed in this paper is adopted. Details of the remainder-based method are presented in Figure 7:
- First, locate the column of the top left corner of the smaller sub-image (Figure 7a), the value of the remainder is calculated by dividing the column by 8. In an FPGA implementation, the divider can be replaced with the right shift operation;
- According to the calculated remainder, the writing signal is active-high between the (remainder)th and (remainder+35)th data at each row when the sub-image (48 × 35) is written into FIFO. Then, the smaller sub-image (35 × 35) is output when the read signal is active-high (Figure 7b).
- (2)
- In the BRIEF descriptor module, the sub-image of 35 × 35 reading from FIFO are sent into line buffers with a depth of 35 bits (see Figure 8a). A box filter with a size of 5 × 5 is performed on the sub-image. Then, the 256 patch-pairs are selected on the basis of the filtered sub-image. The FPGA implementation of Equation (3) is presented in Figure 8b. As presented in Figure 8b, the 256 patch-pairs are compared to generate a binary vector. The 256 comparators are processed in parallel and a combination operation is used to combine a BRIEF descriptor with 256 bits. The BRIEF descriptor is stored into the FIFO unit waiting for matching processing. Because of the fixed-point arithmetic of Equation (3), the FPGA is simple to implement in parallel, which makes the BRIEF algorithm attractive for use in real-time image processing.
4. Experiment and Analysis
4.1. Hardware Platform and Test Field
4.2. Experiment Results
4.3. Accuracy Analysis
4.4. Speed Comparison and Resource Usage
5. Discussion
6. Conclusions
- (1)
- If an image is covered with artificial textures, more robust corners are detected. The value of recall is approximately 0.8 that means the rate of the correct matching of FPGA implementation is same as PC implementation.
- (2)
- The speed of the FPGA implementation is able to reach 310 fps, which is 31 and 2.5 times faster than those of the CPU and of GPU implementation, respectively.
- (3)
- The consumption of the selected FPGA resources is less than 40% that is acceptable for the selected FPGA platform.
Acknowledgments
Author Contributions
Conflicts of Interest
References
- Rosten, E.; Porter, R.; Drummond, T. Faster and better: A machine learning approach to corner detection. IEEE Trans. Pattern Anal. Mach. Intell. 2010, 32, 105–119. [Google Scholar] [CrossRef] [PubMed]
- Rosten, E.; Drummond, T. Machine learning for high-speed corner detection. In Computer Vision–ECCV; Springer: Berlin, Germany, 2006; pp. 430–443. [Google Scholar]
- Harris, C.; Stephens, M. A combined corner and edge detector. In Proceedings of the Fourth Alvey Vision Conference, Manchester, UK, 31 August–2 September 1988; Plessey Research Roke Manor: Ilford, UK, 1988; Volume 15, pp. 10–5244. [Google Scholar]
- Smith, S. A new class of corner finder. In BMVC92; Springer: London, UK, 1992; pp. 139–148. [Google Scholar]
- Förstner, W.; Gülch, E. A fast operator for detection and precise location of distinct points, corners and centres of circular features. In Proceedings of the ISPRS intercommission conference on fast processing of photogrammetric data, Interlaken, Switzerland, 2–4 June 1987; pp. 281–305. [Google Scholar]
- Mair, E.; Hager, G.; Burschka, D.; Suppa, M.; Hirzinger, G. Adaptive and generic corner detection based on the accelerated segment test. In Computer Vision–ECCV; Springer: Berlin, Germany, 2010; pp. 183–196. [Google Scholar]
- Zitova, B.; Flusser, J. Image registration methods: A survey. Image Vis. Comput. 2003, 21, 977–1000. [Google Scholar] [CrossRef]
- Calonder, M.; Lepetit, V.; Strecha, C.; Fua, P. Brief: Binary robust independent elementary features. In Computer Vision–ECCV; Springer: Berlin, Germany, 2010; pp. 778–792. [Google Scholar]
- Lowe, D.G. Distinctive image features from scale-invariant keypoints. Int. J. Comput. Vis. 2004, 60, 91–110. [Google Scholar] [CrossRef]
- Bay, H.; Ess, A.; Tuytelaars, T.; Van Gool, L. Speeded-up robust features (SURF). Comput Vis. Image Underst. 2008, 110, 346–359. [Google Scholar] [CrossRef]
- Alcantarilla, P.F.; Bartoli, A.; Davison, A.J. KAZE Features. In Computer Vision–ECCV 2012 Lecture Notes in Computer Science; Fitzgibbon, A., Lazebnik, S., Perona, P., Sato, Y., Schmid, C., Eds.; Springer: Berlin, Germany, 2012; Volume 7577. [Google Scholar]
- Zhou, G.Q.; Baysal, O.; Kaye, J.; Habib, S.; Wang, C. Concept design of future intelligent earth observing satellites. Int. J. Remote Sens. 2004, 25, 2667–2685. [Google Scholar] [CrossRef]
- Zhang, B. Intelligent remote sensing satellite system. J. Remote Sens. 2011, 15, 415–431. [Google Scholar]
- Torres-Huitzil, C.; Arias-Estrada, M. An FPGA architecture for high speed edge and corner detection. In Proceedings of the Fifth IEEE International Workshop on Computer Architectures for Machine Perception, Grenoble, France, 11–15 September 2000; pp. 112–116. [Google Scholar]
- Wang, J.; Zhong, S.; Yan, L.; Cao, Z. An embedded system-on-chip architecture for real-time visual detection and matching. IEEE Trans. Circuits Syst. Video Technol. 2014, 24, 525–538. [Google Scholar] [CrossRef]
- Yao, L.; Feng, H.; Zhu, Y.; Jiang, Z.; Zhao, D. An architecture of optimised SIFT feature detection for an FPGA implementation of an image matcher. In Proceedings of the International Conference on FieldProgrammable Technology, Sydney, Australia, 9–11 Decenmber 2009; pp. 30–37. [Google Scholar]
- Svab, J.; Krajnik, T.; Faigl, J.; Preucil, L. FPGA based speeded up robust features. In Proceedings of the IEEE International Conference on Technologies for Practical Robot Applications, Woburn, MA, USA, 9–10 November 2009; pp. 35–41. [Google Scholar]
- Huang, J.; Zhou, G. On-Board Detection and Matching of Feature Points. Remote Sens. 2017, 9, 601. [Google Scholar] [CrossRef]
- Fan, X.; Wu, C.; Cao, W.; Zhou, X.; Wang, S.; Wang, L. Implementation of high performance hardware architecture of OpenSURF algorithm on FPGA. In Proceedings of the 2013 International Conference on Field-Programmable Technology, Kyoto, Japan, 9–11 December 2013; pp. 152–159. [Google Scholar]
- Chen, C.; Yong, H.; Zhong, S.; Yan, L. A real-time FPGA-based architecture for OpenSURF. In Proceedings of the MIPPR 2015: Pattern Recognition and Computer Vision, Enshi, China, 31 October 2015; pp. 1–8. [Google Scholar]
- Claus, C.; Huitl, R.; Rausch, J.; Stechele, W. Optimizing the SUSAN corner detection algorithm for a high speed FPGA implementation. In Proceedings of the International Conference on Field Programmable Logic and Applications, Prague, Czech Republic, 31 August–2 September 2009; pp. 138–145. [Google Scholar]
- Aydogdu, M.F.; Demirci, M.F.; Kasnakoglu, C. Pipelining Harris corner detection with a tiny FPGA for a mobile robot. In Proceedings of the 2013 IEEE International Conference on Robotics and Biomimetics (ROBIO), Shenzhen, China, 12–14 December 2013; pp. 2177–2184. [Google Scholar]
- Kraft, M.; Schmidt, A.; Kasinski, A.J. High-Speed Image Feature Detection Using FPGA Implementation of Fast Algorithm. VISAPP 2008, 8, 174–179. [Google Scholar]
- Heo, H.; Lee, J.Y.; Lee, K.Y.; Lee, C.H. FPGA based implementation of FAST and BRIEF algorithm for object recognition. In Proceedings of the TENCON 2013–2013 IEEE Region 10 Conference (31194), Xi’an, China, 22–25 October 2013; pp. 1–4. [Google Scholar]
- Fularz, M.; Kraft, M.; Schmidt, A.; Kasiński, A. A high-performance FPGA-based image feature detector and matcher based on the FAST and BRIEF algorithms. Int. J. Adv. Robotic Syst. 2015, 12, 141. [Google Scholar] [CrossRef]
- Dohi, K.; Yorita, Y.; Shibata, Y.; Oguri, K. Pattern compression of FAST corner detection for efficient hardware implementation. In Proceedings of the 2011 International Conference on Field Programmable Logic and Applications (FPL), Chania, Greece, 5–7 September 2011; pp. 478–481. [Google Scholar]
- Mehra, R.; Verma, R. Area Efficient FPGA Implementation of Sobel Edge Detector for Image Processing Applications. Int. J. Comput. Appl. 2012, 56. [Google Scholar] [CrossRef]
- Bi, C.; Maruyama, T. Real-time corner and polygon detection system on FPGA. In Proceedings of the 2012 22nd International Conference on Field Programmable Logic and Applications (FPL), Oslo, Norway, 29–31 August 2012; pp. 451–457. [Google Scholar]
- Schaeferling, M.; Kiefer, G. Object recognition on a chip: A complete SURF-based system on a single FPGA. In Proceedings of the 2011 International Conference on Reconfigurable Computing and FPGAs, Cancun, Mexico, 30 November–2 December 2011; pp. 49–54. [Google Scholar]
- Battezzati, N.; Colazzo, S.; Maffione, M.; Senepa, L. SURF algorithm in FPGA: A novel architecture for high demanding industrial applications. In Proceedings of the Conference on Design, Automation and Test in Europe, Dresden, Germany, 12–16 March 2012; pp. 161–162. [Google Scholar]
- Sledevič, T.; Serackis, A. SURF algorithm implementation on FPGA. In Proceedings of the 2012 13th Biennial Baltic Electronics Conference, Tallinn, Estonia, 3–5 October 2012; pp. 291–294. [Google Scholar]
- Park, J.S.; Kim, H.E.; Kim, L.S. A 182 mW 94.3 f/s in Full HD Pattern-Matching Based Image Recognition Accelerator for an Embedded Vision System in 0.13um CMOS Technology. IEEE Trans. Circuits Syst. Video Technol. 2013, 23, 832–845. [Google Scholar] [CrossRef]
- Weberruss, J.; Kleeman, L.; Drummond, T. ORB feature extraction and matching in hardware. In Proceedings of the Australasian Conference on Robotics and Automation, the Australian National University, Canberra, Australia, 2–4 December 2015; pp. 1–10. [Google Scholar]
- Jiang, J.; Li, X.; Zhang, G. SIFT hardware implementation for real-time image feature extraction. IEEE Trans. Circuits Syst. Video Technol. 2014, 24, 1209–1220. [Google Scholar]
- Zhong, S.; Wang, J.; Yan, L.; Kang, L.; Cao, Z. A real-time embedded architecture for sift. J. Syst. Archit. 2013, 59, 16–29. [Google Scholar] [CrossRef]
- Bonato, V.; Marques, E.; Constantinides, G.A. A parallel hardware architecture for scale and rotation invariant feature detection. IEEE Trans. Circuits Syst. Video Technol. 2008, 18, 1703–1712. [Google Scholar] [CrossRef]
- Xilinx. 7 Series FPGAs Memory Interface Solutions. Available online: http://www.xilinx.com/support/ documentation/ ip_documentation/ug586_7Series_MIS.pdf (accessed on 1 March 2011).
- Rodriguez-Andina, J.J.; Moure, M.J.; Valdes, M.D. Features, design tools and application domains of FPGAs. IEEE Trans. Ind. Electron. 2007, 54, 1810–1823. [Google Scholar] [CrossRef]
- All Programmable 7 Series Product Selection Guide. Available online: https://china.xilinx.com/support/documentation/selection-guides/7-series-product-selection-guide.pdf (accessed on 15 July 2016).
- OpenCV Library. Available online: http://opencv.org/ (accessed on 12 June 2017).
- Mikolajczyk, K.; Schmid, C. A performance evaluation of local descriptors. IEEE Trans. Pattern Anal. Mach. Intell. 2005, 27, 1615–1630. [Google Scholar] [CrossRef] [PubMed]
- Peter Andreas Entschev. Real-Time and High Resolution Feature Tracking and Object Recognition. Presentation 2015, GTC 2015–ID S5205. Available online: http://on-demand.gputechconf.com/gtc/2015/presentation/S5205-Peter-Andreas-Entschev.pdf (accessed on 11 November 2017).
ID | Second Image | ID | First Image | XOR | Hamming Distance | Result |
---|---|---|---|---|---|---|
1 | 111111 | 1 | 110011 | 001100 | 2 | Matched |
2 | 110000 | 001111 | 4 | Unmatched | ||
3 | 010101 | 101010 | 3 | Unmatched | ||
2 | 000001 | 1 | 110011 | 110010 | 3 | Unmatched |
2 | 110000 | 110001 | 3 | Unmatched | ||
3 | 010101 | 010100 | 2 | Matched | ||
3 | 110100 | 1 | 110011 | 000111 | 3 | Unmatched |
2 | 110000 | 000100 | 1 | Matched | ||
3 | 010101 | 100001 | 2 | Unmatched |
Algorithm | Size | f (MHz) | N | fps | Platform | FFTs | LUTs | BRAMs (kb) |
---|---|---|---|---|---|---|---|---|
FAST+BRIEF(CPU) | 512 × 512 | 3.60 GHz | 100 | 10 | Win. 7, i7-4790 CPU | / | / | / |
Oriented FAST and Rotated BRIEF (GPU) [42] | 512 × 512 | 706 | / | 125 | Linux, NVIDIA K20 GPU | / | / | / |
FAST+BRIEF [This paper] | 512 × 512 | 100 | 100 | 310 | Xilinx, K7 XC72K325T | 112,166 | 80,472 | 35 |
FAST [23] | 512 × 512 | 130 | / | 500 | Xilinx, S3 XC3S200-4 | 1547 | 2368 | 192 |
FAST+BRIEF [24] | 640 × 480 | 100 | / | 55 | Xilinx, Zynq-7000 SoC | 3187 | 4257 | 576 |
FAST+BRIEF [25] | 640 × 480 | 100 | 100 | 325 | Xilinx, Zynq-7000 SoC | 17,412 | 9866 | 1330 |
© 2018 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Huang, J.; Zhou, G.; Zhou, X.; Zhang, R. A New FPGA Architecture of FAST and BRIEF Algorithm for On-Board Corner Detection and Matching. Sensors 2018, 18, 1014. https://doi.org/10.3390/s18041014
Huang J, Zhou G, Zhou X, Zhang R. A New FPGA Architecture of FAST and BRIEF Algorithm for On-Board Corner Detection and Matching. Sensors. 2018; 18(4):1014. https://doi.org/10.3390/s18041014
Chicago/Turabian StyleHuang, Jingjin, Guoqing Zhou, Xiang Zhou, and Rongting Zhang. 2018. "A New FPGA Architecture of FAST and BRIEF Algorithm for On-Board Corner Detection and Matching" Sensors 18, no. 4: 1014. https://doi.org/10.3390/s18041014
APA StyleHuang, J., Zhou, G., Zhou, X., & Zhang, R. (2018). A New FPGA Architecture of FAST and BRIEF Algorithm for On-Board Corner Detection and Matching. Sensors, 18(4), 1014. https://doi.org/10.3390/s18041014