Research Article  Open Access
Enzeng Dong, Yao Zhao, Xiao Yu, Junchao Zhu, Chao Chen, "An Improved NMSBased Adaptive Edge Detection Method and Its FPGA Implementation", Journal of Sensors, vol. 2016, Article ID 1470312, 8 pages, 2016. https://doi.org/10.1155/2016/1470312
An Improved NMSBased Adaptive Edge Detection Method and Its FPGA Implementation
Abstract
For improving the processing speed and accuracy of edge detection, an adaptive edge detection method based on improved NMS (nonmaximum suppression) was proposed in this paper. In the method, the gradient image was computed by four directional Sobel operators. Then, the gradient image was processed by using NMS method. By defining a power map function, the elements values of gradient image histogram were mapped into a wider value range. By calculating the maximal betweenclass variance according to the mapped histogram, the corresponding threshold was obtained as adaptive threshold value in edge detection. Finally, to be convenient for engineering application, the proposed method was realized in FPGA (Field Programmable Gate Array). The experiment results demonstrated that the proposed method was effective in edge detection and suitable for realtime application.
1. Introduction
Due to the broad application fields, such as in industry, spaceflight, medicine, and military [1–3], the study on edge detection became a hot issue in image processing. At present, the researches on edge detection are mainly focused on mathematical morphology methods [4, 5] and gradient methods [6, 7]. The morphology based edge detection methods can effectively detect edges; however, complex iterative operations in these methods are the main obstacle for realtime applications.
On the other hand, the gradient based edge detection methods are more suitable for engineering implementation due to relatively simple calculation. Many improved edge detection algorithms based on gradient calculation such as Roberts operator [8], Sobel operator [9], Canny operator [10], and Laplacian operator [11] were proposed successively. For example, based on the Canny operator, Yu et al. [12] designed an edge directional interpolation method to process the MRI (magnetic resonance image) of fetal spinal column. Wang et al. [13] improved the Sobel edge detection algorithm by using NMS algorithm. Wiehle and Lehner [14] proposed an edge detection algorithm for high definition satellite images based on Sobel operator.
Owing to the advantages in high calculation speed and parallel processing, the FPGA became a useful hardware realization tool for realtime images processing [15–18]. Li et al. [19] designed a data block accelerator to optimize the Sobel operator in FPGA, and this method could be applied in realtime edge detection.
In previous works, the accuracy and speed of edge detection methods were improved from different aspects. Nevertheless, edge detection threshold has not been given much concern. In this paper, an adaptive edge detection algorithm based on the NMS was proposed. In this method, the gradient image was processed by utilizing NMS method. Then, the elements values of gradient image histogram were mapped into a wider value range by a certain power map, which can help calculate the threshold accurately.
According to the maximal betweenclass variance, the threshold was calculated and inverse mapped to original gradient map. The inverse mapped threshold was considered as adaptive threshold value in edge detection. Finally, for application in engineering fields, the proposed method was realized in FPGA. The experiment results showed that the proposed method has higher processing speed and detection accuracy.
2. The Adaptive Edge Detection Algorithm
The flow chart of edge detection algorithm was shown in Figure 1. Gradient image was computed from original image data by Sobel operator. Then, NMS method was employed to process gradient image. Because gradient values in processed gradient image clustered in low value range, histogram mapping was performed to obtain a more spread distribution. After histogram mapping, the threshold in mapped histogram was calculated by using OTSU method. By inverse mapping, adaptive threshold was achieved. Double thresholds computed from threshold were applied to determine potential edges.
2.1. Gradient Calculation and NMS Processing
The original image was divided into 5 5 subregion. The 3 3 Sobel operator of vertical, horizontal, and two diagonals (0°, 45°, 90°, and 135°) was employed to calculate the gradient, as shown in Tables 1(a), 1(b), 1(c), and 1(d).
(a) 0° template  
 
(b) 45° template  
 
(c) 90° template  
 
(d) 135° template  
 
(e) The original grey value  
The gradient of a 3 3 image region (Table 1(e)) can be computed by multiplying the element value with the corresponding value in four directional Sobel operators. Then, four gradient values with direction were calculated as in the following equation:where , , , and are the gradient amplitude with 0°, 45°, 90°, and 135°, respectively. The maximal value and its direction were selected as gradient amplitude as shown in (2) and gradient direction, respectively, in the following process:
For 5 5 subregion, nine gradient amplitudes and the directions according to each gradient amplitude can be computed, as shown in Table 2.
The nonmaximum suppression method set the gradient values of central point to 0 if the gradient amplitude of central point is not local maximal, which indicates the location with the sharpest change of intensity value. According to the direction, the final gradient of the central point can be calculated by (3) as follows:where is the direction of central point and is the gradient amplitude of the central point after NMS processing.
By traversing the whole image, the NMS processed gradient image was achieved. The larger value of gradient amplitude means more possibility of edge. To improve the accuracy of edge detection, threshold of gradient amplitude should be calculated to determine whether one point is edge point or not.
2.2. The Adaptive Strategy of Threshold Calculation
After NMS processing, gradient amplitude mainly concentrated in the smaller values ranges. The accuracy of edge detection is very sensitive to threshold. Thus, the calculation of threshold is a key step in the proposed method. In this subsection, calculation of adaptive threshold consists of three parts: histogram mapping, calculation of threshold according to maximal betweenclass variance, and inverse mapping of threshold as shown in Figure 2.
In the step of histogram mapping, the gradient amplitudes were mapped into more widely values ranges. Histogram mapping function was defined as follows:where is the value in original histogram and is the value in mapped histogram. Function round rounds decimal to the nearest integer.
In OTSU method [13], the optimum threshold separating the two classes was calculated by maximizing the betweenclass variance. Assuming that the NMS processed image contains two classes of point (edge point or not), the betweenclass variance can be computed by the following equation: where is the betweenclass variance, is the total number of pixels of NMS processed gradient image, is the average gradient amplitude, is the number of edge points, and and are the average values of edge points and background points, respectively, in the mapped gradient image.
Equation (5) can be simplified into (6)
Furthermore, where is the number of points whose gradient value is .
The average gradient value can be calculated as (8)
and can be calculated as follows: where is equal to .
By traversing from 1 to 254, the value corresponding to the maximum betweenclass variance is the threshold . Finally, the adaptive threshold in NMS processed image can be obtained by using inverse mapping as follows:
2.3. The Processing of Double Threshold
The double thresholds were designed to determine the true or false edge points in NMS processed image. The threshold value was defined as the mean value between the high threshold and the low threshold. Then, the high threshold and the low threshold can be calculated as the following equations:where is the high threshold and is the low threshold.
In edge detection process, if the gradient value is greater than , it was edge point. If the gradient value is smaller than , it was not considered as edge point. In addition, if the gradient value is between high threshold and low threshold, at least one gradient value of neighborhood points (Table 2) is greater than the high threshold; this point was edge point; otherwise, it was not the edge point.
3. FPGA Implementation
The FPGA implementation scheme was mainly divided into three modules: image storage module, VGA display module, and algorithm executive module. The whole structure diagram was shown in Figure 3.
3.1. Image Storage Module
Image storage module consists of two onchip ROMs. One was used to store address of pixels, and the other one was used to store the grayscale of the corresponding pixel. This design can reduce image storage space as shown in Figure 4.
3.2. VGA Display Module
VGA display module was designed to realize two main functions. Firstly, it can generate clock signal, blanking signal, line sync signal, and field sync signal for the display [20]. Secondly, it can produce the correct address signal for reading the image data stored in ROM. The module circuit was shown in Figure 5.
3.3. Algorithm Executive Module
Six submodules were designed to realize the edge detection algorithm, including gradient amplitude calculation submodule, gradient direction calculation submodule, NMS processing submodule, histogram mapping submodule, maximal betweenclass variance calculation submodule, and double threshold processing submodule.
Gradient amplitude calculation submodule and gradient direction calculation submodule were used to calculate the eight neighborhood gradient amplitudes and gradient direction of center point, respectively. NMS processing module was designed to process gradient image. These three submodules were shown in Figure 6.
(a) Gradient amplitude
(b) Gradient direction
(c) NMS processing
Histogram mapping submodule was used to map the histogram of the gradient image. Maximal betweenclass variance calculation submodule was designed to find the threshold corresponding to maximal betweenclass variance. Double threshold processing submodule was used to inverse map the threshold and calculate double threshold. Threshold calculation related three submodules and connection were shown in Figure 7.
4. The Experiment Results and Analysis
In this section, the experimental results were analyzed in three aspects: resource usage rate, running duration, and accuracy of edge detection.
4.1. Resource Usage Rate
The DE2115 education development board (Altera Corporation) with EP4CE115F29C7N chip was used in this experiment. The size of image was 640 × 480 pixels. The system resource usage was shown in Table 3. Note that the resource usage of the whole system is less than the sum of the two subsystems, because of the repetition usage of the logical elements in subsystems. The logical elements used were 11% of the whole elements in running time, which suggested that the resource usage rate of proposed method is relatively low.

4.2. Running Duration of Each Process
In previous works, adaptive edge detection algorithm [21] and a simple Canny algorithm [22] were realized by FPGA. Comparison of running duration with those works was shown in Table 4. Although the working frequency of proposed method was relatively lower, the running duration of each process was shorter, which demonstrated the higher speed of proposed algorithm.

4.3. Accuracy of Edge Detection
Image Lena (Figure 8(a)) and image Flower (Figure 9(a)) were used in edge detection experiments. The detection results of the two images were shown in Figures 8(b), 8(c), and 8(d) and Figures 9(b), 9(c), and 9(d), respectively. Compared with the other two methods, the detected edge by proposed method is thinner than the other methods.
(a)
(b)
(c)
(d)
(a)
(b)
(c)
(d)
The positive rates of edge detection were calculated to evaluate the effect of the proposed method, as shown in Table 5. Compared with Roberts operator, Prewitt operator, Sobel operator, LoG operator, and Canny operator, true positive rate by proposed method is the highest and false positive rate is relatively lower. These results suggested that the proposed method can detect the edge more accurately.

5. Conclusion
An improved adaptive edge detection algorithm based on the NMS method was proposed in this paper. In the proposed method, a power map function was defined to map the NMS processed gradient image. Then, adaptive threshold corresponding to maximal betweenclass variance was calculated based on the mapped histogram. Additionally, the proposed method was realized in FPGA. Experimental results showed that this method has higher processing speed and better accuracy, which was suitable for application in realtime image processing.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
References
 F. Ren, B. Li, and Q. Chen, “Single parameter logarithmic image processing for edge detection,” IEICE Transactions on Information & Systems, vol. E96, no. 11, pp. 2437–2449, 2013. View at: Publisher Site  Google Scholar
 P. R. Possa, S. A. Mahmoudi, N. Harb, C. Valderrama, and P. Manneback, “A multiresolution FPGAbased architecture for realtime edge and corner detection,” IEEE Transactions on Computers, vol. 63, no. 10, pp. 2376–2388, 2014. View at: Publisher Site  Google Scholar  MathSciNet
 C. LopezMolina, B. D. Baets, H. Bustince, J. Sanz, and E. Barrenechea, “Multiscale edge detection based on Gaussian smoothing and edge tracking,” KnowledgeBased Systems, vol. 44, pp. 101–111, 2013. View at: Publisher Site  Google Scholar
 W. Shi, X. Zhu, and G. Zhu, “Adaptive edge detection algorithm of MRI image based on morphology,” Chinese Journal of Scientific Instrument, vol. 34, no. 2, pp. 408–414, 2013. View at: Google Scholar
 Y. Wu, Y. Song, and H. Zhou, “Edge detection of combustion flame images based on anisotropic mathematical morphology,” Chinese Journal of Scientific Instrument, vol. 34, no. 8, pp. 1818–1825, 2013. View at: Google Scholar
 Y. Liu and X. Cheng, “A new edge detection algorithm using wavelet and threshold method,” Journal of Information & Computational Science, vol. 6, no. 4, pp. 1759–1766, 2009. View at: Google Scholar
 E. Chen, J. Wang, L. Qi, and W. Lv, “A novel multiscale edge detection approach based on nonsubsampled contourlet transform and edge tracking,” Mathematical Problems in Engineering, vol. 2015, Article ID 504725, 14 pages, 2015. View at: Publisher Site  Google Scholar
 L. G. Roberts, “Machine perception of threedimensional solids,” in Optical and ElectroOptical Information Processing, vol. 20, pp. 31–39, MIT Press, 1963. View at: Google Scholar
 I. Sobel, Camera Models and Machine Perception, Department of Computer Science, Stanford University, Stanford, Calif, USA, 1970.
 J. Canny, “A computational approach to edge detection,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679–698, 1986. View at: Google Scholar
 D. Marr and E. Hildreth, “Theory of edge detection,” Proceedings of the Royal Society of London, vol. 207, no. 1167, pp. 187–217, 1980. View at: Publisher Site  Google Scholar
 S. Yu, R. Zhang, S. Wu, J. Hu, and Y. Xie, “An edgedirected interpolation method for fetal spine MR images,” BioMedical Engineering Online, vol. 12, no. 1, article 102, 2013. View at: Publisher Site  Google Scholar
 W. Wang, S. Zhu, and W. Tang, “Adaptive nonmaxima suppression edge detection algorithm and FPGA design to achieve,” Chinese Journal of Scientific Instrument, vol. 35, no. 8, pp. 1926–1930, 2014. View at: Google Scholar
 S. Wiehle and S. Lehner, “Automated waterline detection in the wadden sea using highresolution terrasarX Images,” Journal of Sensors, vol. 2015, Article ID 450857, 6 pages, 2015. View at: Publisher Site  Google Scholar
 P.Y. Hsiao, H. Wen, C.H. Chen, and S.J. Chen, “Realtime realisation of noiseimmune gradientbased edge detector,” IEE Proceedings: Computers and Digital Techniques, vol. 153, no. 4, pp. 261–269, 2006. View at: Publisher Site  Google Scholar
 Z. Hu, D. Wang, Q. Zhao, and Q. Zhu, “Design of portable intelligent image acquisition system based on SOPC,” Chinese Journal of Scientific Instrument, vol. 31, no. 2, pp. 371–376, 2010. View at: Google Scholar
 Y. Guo, Y. Su, and C. Gao, “Design and implementation of real time infrared image collection system based on FPGA,” Chinese Journal of Scientific Instrument, vol. 32, no. 3, pp. 514–519, 2011. View at: Google Scholar
 L. Zhang and C. Ling, “Application of sobel edge detection based on FPGA,” Embedded Technology, vol. 37, no. 8, pp. 26–29, 2011. View at: Google Scholar
 Z. Li, C. Liu, and M. An, “The design of sobel image edge detection based on FPGA,” Modern Scientific Instruments, vol. 2012, no. 4, pp. 84–86, 2012. View at: Google Scholar
 J. Jiang, D. Yu, and J. Wang, “The CCD color image acquisition and displaying system of electronic endoscope based on FPGA,” Chinese Journal of Scientific Instrument, vol. 21, no. 1, pp. 50–53, 2000. View at: Google Scholar
 Q. Xu, S. Varadarajan, C. Chakrabarti, and L. J. Karam, “A distributed canny edge detector: algorithm and FPGA implementation,” IEEE Transactions on Image Processing, vol. 23, no. 7, pp. 2944–2960, 2014. View at: Publisher Site  Google Scholar  MathSciNet
 G. Chaple and R. D. Daruwala, “Design of Sobel operator based image edge detection algorithm on FPGA,” in Proceedings of the 3rd International Conference on Communication and Signal Processing (ICCSP '14), pp. 788–792, IEEE, April 2014. View at: Publisher Site  Google Scholar
 L. Huang, Y. Fang, X. Zuo, and X. Yu, “Automatic change detection method of multitemporal remote sensing images based on 2DOtsu algorithm improved by firefly algorithm,” Journal of Sensors, vol. 2015, Article ID 327123, 8 pages, 2015. View at: Publisher Site  Google Scholar
Copyright
Copyright © 2016 Enzeng Dong et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.