Implementation Of Harris Corner Matching Based On FPGA

Similar documents
International Conference on Electromechanical Control Technology and Transportation (ICECTT 2015)

CHAPTER VIII SEGMENTATION USING REGION GROWING AND THRESHOLDING ALGORITHM

Pupil Localization Algorithm based on Hough Transform and Harris Corner Detection

An adaptive container code character segmentation algorithm Yajie Zhu1, a, Chenglong Liang2, b

SUMMARY: DISTINCTIVE IMAGE FEATURES FROM SCALE- INVARIANT KEYPOINTS

Adaptive Zoom Distance Measuring System of Camera Based on the Ranging of Binocular Vision

Wikipedia - Mysid

A Rapid Automatic Image Registration Method Based on Improved SIFT

High Performance VLSI Architecture of Fractional Motion Estimation for H.264/AVC

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA

FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS

Line, edge, blob and corner detection

Image features. Image Features

Other Linear Filters CS 211A

FPGA Implementation of an Efficient Two-dimensional Wavelet Decomposing Algorithm

BioTechnology. An Indian Journal FULL PAPER. Trade Science Inc. Research on motion tracking and detection of computer vision ABSTRACT KEYWORDS

HIGH-SPEED IMAGE FEATURE DETECTION USING FPGA IMPLEMENTATION OF FAST ALGORITHM

Anno accademico 2006/2007. Davide Migliore

International Conference on Information Sciences, Machinery, Materials and Energy (ICISMME 2015)

convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection

THE COMPUTER MODELLING OF GLUING FLAT IMAGES ALGORITHMS. Alekseí Yu. Chekunov. 1. Introduction

e-issn: p-issn:

Digital Image Processing. Image Enhancement - Filtering

Canny Edge Detection Algorithm on FPGA

A Configurable Parallel Hardware Architecture for Efficient Integral Histogram Image Computing

Augmented Reality VU. Computer Vision 3D Registration (2) Prof. Vincent Lepetit

A Robust Method for Circle / Ellipse Extraction Based Canny Edge Detection

Subpixel Corner Detection Using Spatial Moment 1)

THE COMPUTER MODELLING OF GLUING FLAT IMAGES ALGORITHMS. Alekseí Yu. Chekunov. 1. Introduction

Hardware Acceleration of Edge Detection Algorithm on FPGAs

Towards the completion of assignment 1

Problems with template matching

Multimedia Computing: Algorithms, Systems, and Applications: Edge Detection

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014

Local Image preprocessing (cont d)

Fast Corner Detection Using a Spiral Architecture

Comparison between Various Edge Detection Methods on Satellite Image

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects

3D Digitization of Human Foot Based on Computer Stereo Vision Combined with KINECT Sensor Hai-Qing YANG a,*, Li HE b, Geng-Xin GUO c and Yong-Jun XU d

Edge and corner detection

CS 4495 Computer Vision. Linear Filtering 2: Templates, Edges. Aaron Bobick. School of Interactive Computing. Templates/Edges

Research and application of volleyball target tracking algorithm based on surf corner detection

Introduction. Introduction. Related Research. SIFT method. SIFT method. Distinctive Image Features from Scale-Invariant. Scale.

Motion Estimation and Optical Flow Tracking

Corner Detection. GV12/3072 Image Processing.

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong)

Journal of Chemical and Pharmaceutical Research, 2015, 7(3): Research Article

Sobel Edge Detection Algorithm

Computer Vision for HCI. Topics of This Lecture

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS /$ IEEE

The Design of Sobel Edge Extraction System on FPGA

CS 556: Computer Vision. Lecture 3

Faster Image Feature Extraction Hardware

CS 4495 Computer Vision A. Bobick. CS 4495 Computer Vision. Features 2 SIFT descriptor. Aaron Bobick School of Interactive Computing

Edge Detection. Announcements. Edge detection. Origin of Edges. Mailing list: you should have received messages

Study on Gear Chamfering Method based on Vision Measurement

Design and Development of a High Speed Sorting System Based on Machine Vision Guiding

Picking up the First Arrivals in VSP Based on Edge Detection

Edge detection. Convert a 2D image into a set of curves. Extracts salient features of the scene More compact than pixels

Multi-Step Segmentation Method Based on Adaptive Thresholds for Chinese Calligraphy Characters

Edge Detection. Today s reading. Cipolla & Gee on edge detection (available online) From Sandlot Science

Extracting Characters From Books Based On The OCR Technology

BSB663 Image Processing Pinar Duygulu. Slides are adapted from Selim Aksoy

(10) Image Segmentation

Gaussian Filter. A Gaussian filter smoothes an image by calculating weighted averages in a filter box.

Assignment 3: Edge Detection

Automatic Image Alignment (feature-based)

Improvement of SURF Feature Image Registration Algorithm Based on Cluster Analysis

Implementation of Canny Edge Detection Algorithm on FPGA and displaying Image through VGA Interface

Improved DDA Algorithm and FPGA Implementation Yi-Xuan WANG a, Quan-Gang WEN b, He YIN c, Zhi-Gang HAO, Xin-Zheng DONG

Filtering Images. Contents

Tracking Trajectories of Migrating Birds Around a Skyscraper

An Algorithm for Blurred Thermal image edge enhancement for security by image processing technique

Research on Traffic Flow Statistics Algorithm Based on Inter - Frame Similarity

A Road Marking Extraction Method Using GPGPU

Feature Detection and Matching

Image Processing

Computer Vision I - Filtering and Feature detection

Local invariant features

Image gradients and edges April 11 th, 2017

Dynamic Obstacle Detection Based on Background Compensation in Robot s Movement Space

Advanced Video Content Analysis and Video Compression (5LSH0), Module 4

ME/CS 132: Introduction to Vision-based Robot Navigation! Low-level Image Processing" Larry Matthies"

IMPLEMENTATION OF DISTRIBUTED CANNY EDGE DETECTOR ON FPGA

Local Feature Detectors

Image gradients and edges April 10 th, 2018

Image Processing. BITS Pilani. Dr Jagadish Nayak. Dubai Campus

International Journal of Advanced Research in Computer Science and Software Engineering

CSE152 Introduction to Computer Vision Assignment 3 (SP15) Instructor: Ben Ochoa Maximum Points : 85 Deadline : 11:59 p.m., Friday, 29-May-2015

Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects

An efficient FPGA implementation of the Harris Corner feature detector

Low-level Vision Processing Algorithms Speaker: Ito, Dang Supporter: Ishii, Toyama and Y. Murakami

Outline 7/2/201011/6/

Investigation of Algorithms for Calculating Target Region Area

Hardware Software Co-Simulation of Canny Edge Detection Algorithm

Wavelength Estimation Method Based on Radon Transform and Image Texture

Edge detection. Goal: Identify sudden. an image. Ideal: artist s line drawing. object-level knowledge)

A Novel Extreme Point Selection Algorithm in SIFT

Image gradients and edges

Introduction to Medical Imaging (5XSA0)

Transcription:

6th International Conference on Energy and Environmental Protection (ICEEP 2017) Implementation Of Harris Corner Matching Based On FPGA Xu Chengdaa, Bai Yunshanb Transportion Service Department, Bengbu Automation NCO Academy, Bengbu 233000, China a 756761643@qq.com, b504122278@qq.com Keywords: FPGA, Pre-filtering, Harris corner extraction, Harris corner matching Abstract. A method for applying FPGA to realize the Harris corner detection and matching, aiming to overcome the problem that it is slow to fetch feature information from the image which show the planar motion of robot. Considering the theory of Harris corner detection and the structure of FPGA, the algorithm is improved in order to simplify calculation and simulated. The simulation result show that the algorithm which guarantee of corner extraction could decrease the number of redundancy corners and raise the real-time performance of system. Otherwise it can also lower the difficulty of design and reduce the hardware overhead, in favor of analyzing the movement of robot. Introduction The main way to analyze robot motion is using machine vision to acquire valid information from the image and dispose. Corner matching mainly includes corner extraction and corresponding corner matching. At present, the commonly used corner extraction algorithms are Harris algorithm, Susan algorithm and Moravec algorithm [1] etc. Harris corner algorithm is widely used in computer vision because of its accurate location, strong anti-interference and simple operation. However, for the large amount of calculation, it is difficult to realize real-time requirement by PC. Through the analysis of Harris algorithm, it is found that although the algorithm is large in computation but calculation operation is simple. So it is suitable for using FPGA(Field Programmable Gate Array) to implement, which can increase processing speed. Harris corner matching [2] is primarily implemented by frame difference method, which the corresponding corner from front and back frame are matched. Based on pipeline processing of FPGA, it can effectively shorten the time required for matching. Considering the hardware structure of FPGA and the principle of Harris corner points, some appropriate improvements are made to the algorithm. Harris corner detection principle and improvement Harris algorithm is a point feature extraction algorithm based on gray value proposed by C.Harris and J.Stephens [3] in 1988. The algorithm is inspired by the auto-correlation function of signal processing. The main principle is to detect the edge which can be accurately measured and positioned in the image, then the auto correlation matrix M is obtained.the eigenvalue of matrix M is the first-order derivative of the correlation function. If the derivative values are both high, the point is the desired corner point. Main formula of algorithm, which is given by w(x, y) * (Ix (x, y))2 w(x, y) * (Ix (x, y)i y (x, y)) M (x, y) = w(x, y) * (I y (x, y))2 w(x, y) * (Ix (x, y)i y (x, y)) (1) R = det( M ) - α * trace 2 ( M ) (2) denotes the gauss operator; I x ( x, y ) denotes the gradient of the X direction; I y ( x, y ) denotes the gradient of the Y direction; the value of experience value α is in range of 0~0.25. From the Eq. (1) and Eq. (2), the solution process needs to manipulate at least differential operation one times and the Gaussion filter three times. In addition, Harris algorithm is sensitive to image noises, so the smoothing filter needs to be added before the Harris algorithm. Gaussion filter is usually used to reduce w( x, y ) Copyright 2017, the Authors. Published by Atlantis Press. This is an open access article under the CC BY-NC license (http://creativecommons.org/licenses/by-nc/4.0/). 807

the interference of image noises and the computation of corner matching. Using Harris algorithm to extract corner needs to manipulate the Gaussion filter four times. In order to improve the real-time and operability of the algorithm, it is very necessary to simplify the Gaussion filter. The definition of Gaussian function is as follows [4] : x 2 2 + y σ wxy (,) e 2 2 = (3) σ is the standard deviation which determines the smoothness of the Gauss filter. In order to simplify the computation and locate the target accurately, 5 dimensional Gaussion matrix ( σ = 1) is generally used. The Gaussion kernel matrix is computed by Matlab, which can be shown as 1/84*[1 2 3 2 1; 2 5 6 5 2 ; 3 6 8 6 3 ; 2 5 6 5 2 ; 1 2 3 2 1] after discretization. According to the kernel matrix, Gaussion filter needs a total of 25 multiplier, 24 adders and 1 divider. If use FPGA to structure the associated components directly, it increases the difficulty of calculation, not conducive to the operation of real-time. In addition, it also increases the workload of design, occupying large amount of resources. According to the form of the Susan operator in the article [5], in combination with FPGA signal flow made, it is necessary to improve the window matrix appropriately. Aiming to reduce the resource overhead of hardware, the sum of matrix values must be 2 integers. So the specific form is as follows: (1/16)*[0 0 1 0 0;0 1 1 1 0;1 1 4 1 1;0 1 1 1 0;0 0 1 0 0]. The improved template can basically realize the filtering function of Gaussion filter. Then it also satisfy the precision requirement of Harris corner extraction. The hardware design is simplified from the following two points: a. Normalize the coefficient of the matrix: all the coefficients of the matrix are all integers of 2, which can be achieved by the logical shift easily instead of using multiplier and divider, to reduce the complexity of design. b. Improve real-time performance of the system: it greatly reduces the sysytem computing operations, because the hardware design only need addition and shift operations. Corner matching is mainly based on the R of the detected corner points. According to Eq. (1) and Eq. (2), each pixel point of the input image corresponds to an R, although it may exist the same R, the probability is small so that it can be ignored. Fig.1 is the chart of the whole process. Hardware implementation of corner matching Fig.1. Harris algorithm process Based on Fig.1, the algorithm can be divided into linear buffer module, pre-filtering module, First-order derivative module, low-pass filter module, non-maximal suppression module and corner matching module. As the pre-filtering module, low-pass filter module and derivation module belong to matrix operation, the design of derivation module is only explained here. The design of specific modules is described in this section. Linear buffer module Since the 3 dimensional matrix is used in the first-order derivative module, it need to construct 2 row buffers to implement the normal operation of the matrix, Fig. 2 is a diagram of line caching. 808

Fig.2. Line buffer diagram linear buffer is constructed using the Ram Register IPCore of the ISE platform, which data width is defined as 8 bits and each row buffer depth is defined as 256, corresponding to the pixel values of the gray image and the width of image, respectively. This allows the data in the cache to be reused in subsequent modules to achieve computation accelerating. First-order derivative module In order to calibrate the pixel coordinate position which used be calculated on the X and Y axis, use the X, Y direction matrix of Sobel operator instead of first-order dimensional derivative vector. S x,s y can be acquired by the following formula: 1 0 1 1 2 1 s x = 2 0 2 s y = 0 0 0 1 0 1 1 2 1 As the one-dimensional vector,the Sobel operator just includes addition, subtraction, and shift operations, which can be finished in one operation cycle. For example, the S x can be designed as follows: Fig.3. diagram of first-order derivation module Non-maximal suppression module According to Eq.2, calculating Harris response R of pixels need to use subtraction and multiplication. In the case of satisfying the performance of the algorithm, assign the value of ɑ with negative integer powers of 2 in order to simplify operations. Non-maximal suppression need to compare the R of pixel with the R of adjacent eight pixels; in addition to, the R of pixel need compare 1 with R max. If the value of pixel is greater than the R of adjacent eight pixels and R max, the pixel point 64 is corner point of image. Then the coordinate values of corner should be recorded. The main operation of the module is logical comparison, which use 3 dimensional matrix to traverse all image pixels to confirm all the corner of image. 809

Overall realization The overall FPGA program framework is shown in Fig.4. The Block Ram1 records the R and coordinate values of corner in the current frame; the Block Ram2 records the R and coordinate values of corner in the last frame. The FIFO1 records the coordinate values of the matching corner in the current frame and the FIFO2 records the coordinate values of the matching corner in the last frame. When the program starts to work, the data stored in the Block Ram2 is set to zero. While FPGA reads an untreated image, the data stored in the Block Ram1 copy to the Block Ram2. Fig.4 overall block diagram of FPGA program As shown in the Fig.4, each module is connected, constituting a parallel pipeline working mode. Simultaneously, this mode is working inside of each module.this mode can be used to acquire the image at the same time to complete the corner detection, effectively reducing the time cost of the algorithm. So the processing speed depends mainly on the image acquisition speed. Simulation results and analysis The hardware used in the experiment is xc3sd3400a-4fg676 chip of Xilinx, which clock frequency is 50MHz. The software platform is ISE 14.5. The size of the acquire image is 256*256. The processing cycle of system is about 2.3ms. In order to observe the results of experiment, output data are showed through matlab 2012a. a) Harris algorithm b) add pre-filtering Harris algorithm Fig.5 result of Corner detection Fig.6 result of Corner matching 810

According to compare Fig.5(a) and Fig.5(b), Adding a pre-filtering can reduce the amount of corner and remove those fake corner points. The algorithm used in this paper can basically achieved the exact match of the corner by Fig.6. Conclusion In this paper, the powerful parallel computing power of FPGA is used to improve the calculation speed of the corner matching algorithm, and the result of matching is accurate.this is beneficial to the calculation of the motion of the robot and improve the real-time performance of the system. In addition, by adding the pre-filter and using the simplified matrix instead of the original Gaussian kernel matrix, the design complexity of the FPGA is reduced and the hardware resources are saved, which has strong application value. On the basis of ensuring the detection of feature points, the scale invariance of the algorithm is the direction of the next step. References [1] Cristina Cabani, Implementation of an affine-invariant feature detector in field-programmable gate arrays. University of Toronto, 2006:5-13. [2] Yong Zhang, Jianping Yu, Junwei Sun, Tie Jin. Corner Matching Research based on Harris Algorithm [J]. Computer and Modernization, 2011(11). [3] HARRIS C, STEPHENS M. A Combined Corner and Edge Detector[C]. UK: Manchester University Press, 1988:147-151. [4] Lihua Lu. Research on Image Matching Algorithm and High - speed Parallel Implementation Method. Nanjing University of Aeronautics and Astronautics, 2010(12):40-46. [5] Jinxiao Yang, Qiang Zhao, Baiping Yang, et al. FPGA Implementation of an Improved SUSAN Algorithm [J]. Information Security and Communication, 2010(03): 57-59. 811