A Distributed Canny Edge Detector: Algorithm and FPGA Implementation Qian Xu, Srenivas Varadarajan, Chaitali Chakrabarti, Fellow, IEEE, and Lina J

A Distributed Canny Edge Detector: Algorithm and FPGA Implementation Qian Xu, Srenivas Varadarajan, Chaitali Chakrabarti, Fellow, IEEE, and Lina J

2944 IEEE TRANSACTIONS ON IMAGE PROCESSING, VOL. 23, NO. 7, JULY 2014 A Distributed Canny Edge Detector: Algorithm and FPGA Implementation Qian Xu, Srenivas Varadarajan, Chaitali Chakrabarti, Fellow, IEEE, and Lina J. Karam, Fellow, IEEE Abstract— The Canny edge detector is one of the most widely and has best performance [10]. Its superior performance is due used edge detection algorithms due to its superior performance. to the fact that the Canny algorithm performs hysteresis thresh- Unfortunately, not only is it computationally more intensive as olding which requires computing high and low thresholds compared with other edge detection algorithms, but it also has a higher latency because it is based on frame-level statistics. based on the entire image statistics. Unfortunately, this feature In this paper, we propose a mechanism to implement the Canny makes the Canny edge detection algorithm not only more algorithm at the block level without any loss in edge detection computationally complex as compared to other edge detection performance compared with the original frame-level Canny algorithms, such as the Roberts and Sobel algorithms, but also algorithm. Directly applying the original Canny algorithm at necessitates additional pre-processing computations to be done the block-level leads to excessive edges in smooth regions and to loss of significant edges in high-detailed regions since the on the entire image. As a result, a direct implementation of original Canny computes the high and low thresholds based the Canny algorithm has high latency and cannot be employed on the frame-level statistics. To solve this problem, we present in real-time applications. a distributed Canny edge detection algorithm that adaptively Many implementations of the Canny algorithm have been computes the edge detection thresholds based on the block type proposed on a wide list of hardware platforms. There and the local distribution of the gradients in the image block. In addition, the new algorithm uses a nonuniform gradient mag- is a set of work [1]–[3] on Deriche filters that have nitude histogram to compute block-based hysteresis thresholds. been derived using Canny’s criteria and implemented on The resulting block-based algorithm has a significantly reduced ASIC-based platforms. The Canny-Deriche filter [1] is latency and can be easily integrated with other block-based a network with four transputers that detect edges in a image codecs. It is capable of supporting fast edge detection 256 × 256 image in 6s, far from the requirement for real- of images and videos with high resolutions, including full-HD since the latency is now a function of the block size instead of time applications. Although the design in [2] improved the the frame size. In addition, quantitative conformance evaluations Canny-Deriche filter implementation of [1] and was able to and subjective tests show that the edge detection performance of process 25 frames/s at 33 MHz, the used off-chip SRAM the proposed algorithm is better than the original frame-based memories consist of Last-In First-Out (LIFO) stacks, which algorithm, especially when noise is present in the images. Finally, increased the area overhead compared to [1]. Demigny pro- this algorithm is implemented using a 32 computing engine architecture and is synthesized on the Xilinx Virtex-5 FPGA. posed a new organization of the Canny-Deriche filter in [3], The synthesized architecture takes only 0.721 ms (including the which reduces the memory size and the computation cost by a SRAM READ/WRITE time and the computation time) to detect factor of two. However, the number of clock cycles per pixel edges of 512 × 512 images in the USC SIPI database when of the implementation [3] varies with the size of the processed clocked at 100 MHz and is faster than existing FPGA and GPU image, resulting in variable clock-cycles/pixel from one image implementations. size to another with increasing processing time as the image Index Terms— Distributed image processing, Canny edge size increases. detector, high throughput, parallel processing, FPGA. There is another set of work [4]–[6] on mapping the Canny edge detection algorithm onto FPGA-based platforms. The two I. INTRODUCTION FPGA implementations in [4] and [5] translate the software DGE detection is the most common preprocessing step design directly into VHDL or Verilog using system-level Ein many image processing algorithms such as image hardware design tools, which results in a decreased timing per- enhancement, image segmentation, tracking and image/video formance as shown later in Section 6 of this paper. The parallel coding. Among the existing edge detection algorithms, the implementation in [6] operates on only 4 pixels in parallel, Canny edge detector has remained a standard for many years resulting in an increase in the number of memory accesses and in the processing time as compared to the proposed Manuscript received December 10, 2012; revised June 20, 2013 and November 7, 2013; accepted November 17, 2013. Date of publication algorithm. Furthermore, in order to reduce the computational March 18, 2014; date of current version June 3, 2014. The associate editor complexity, all of these implementations compute the high and coordinating the review of this manuscript and approving it for publication was low thresholds off-line and use the same fixed threshold values Prof. Marios S. Pattichis. The authors are with the School of Electrical, Computer and Energy for all the images, which result in a decreased edge detection Engineering, Arizona State University, Tempe, AZ 85281 USA (e-mail: performance. In [7], a self-adapt threshold Canny algorithm [email protected]; [email protected]; [email protected]; [email protected]). is proposed for a mobile robot system where a low and high Color versions of one or more of the figures in this paper are available online at http://ieeexplore.ieee.org. threshold values are computed for each input image and an Digital Object Identifier 10.1109/TIP.2014.2311656 implementation for an Altera Cyclone FPGA is presented. 1057-7149 © 2014 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information. XU et al.: DISTRIBUTED CANNY EDGE DETECTOR 2945 Recently, the General Purpose Graphic Processing Unit time and the computation time) to detect edges of 512 × 512 (GPGPU) has emerged as a powerful and accessible parallel images in the USC SIPI database when clocked at 100 MHz. computing platform for image processing applications [8], [9]. A preliminary version of this work was presented in [13]. Studies of GPGPU accelerated Canny edge detection have The work presented herein does not only provide more elabo- been presented [10]–[12]. All of these implementations are rate discussions and performance results but also provides an frame-based and do not have good edge detection performance improved distributed Canny edge detector both at the algo- since they use the same fixed pair of high and low threshold rithm and architecture levels. The algorithm is improved by values for all images. Furthermore, as shown later in the paper, proposing a novel block-adaptive threshold selection procedure their timing performance is inferior compared to the proposed that exploits the local image characteristics and is more robust algorithm in spite of being operated at a very high clock to changes in block size as compared to [13]. While the frequency. architecture presented in [13] was limited to a fixed image In the original Canny method, the computation of the high size of 512 × 512, a fixed image block of 64 × 64, this paper and low threshold values depends on the statistics of the whole presents a general FPGA-based pipelined architecture that input image. However, most of the above existing implementa- can support any image size and block size. Furthermore, no tions (e.g., [4]–[6], [10]–[12]) use the same fixed pair of high FPGA synthesis results and no comparison results with exist- and low threshold values for all input images. This results ing techniques were presented in [13]. In this paper, FPGA in a decreased edge detection performance as discussed later synthesis results, including the resource utilization, execution in this paper. The non-parallel implementation [7] computes time, and comparison with existing FPGA implementations the low and high threshold values for each input image. are presented. This results in increased latency as compared to the existing The rest of the paper is organized as follows. Section 2 gives implementations (e.g., [4]–[6], [10]–[12]). Furthermore, the a brief overview of the original Canny algorithm. Section 3 non-parallel implementations ([4]–[7]) result in a decreased presents the proposed distributed Canny edge detection throughput as compared to the parallel implementations algorithm which includes the adaptive threshold selection ([6], [10]–[12]). The issue of increased latency and decreased algorithm and a non-uniform quantization method to compute throughput is becoming more significant with the increasing the gradient magnitude histogram. Quantitative conformance demand for large-size high-spatial resolution visual content as well as subjective testing results are presented in Section 4 (e.g., High-Definition and Ultra High-Definition). in order to illustrate the edge detection performance of the Our focus is on reducing the latency and increasing the proposed distributed Canny algorithm as compared to the throughput of the Canny edge detection algorithm so that it can original Canny algorithm for clean as well as noisy images. be used in real-time processing applications. As a first step, the In addition, the effects of the gradient mask size and the image can be partitioned into blocks and the Canny algorithm block size on the performance of the proposed distributed can be applied to each of the blocks in parallel.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    17 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us