harris corner detector on fpga rohit banerjee jared choi 15-418: parallel computer architecture and...

38
Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Upload: sharlene-sharp

Post on 25-Dec-2015

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Harris Corner Detector on FPGA Rohit BanerjeeJared Choi

15-418: Parallel Computer Architecture and Programming

Page 2: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Introduction to the problem

Page 3: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Corner detection

Corner Detection

• Corners provide a lot of information

• Spending time to detect corners can significant reduce computation time* Image matching* Motion tracking* Robot Navigation

Page 4: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Application Specific Need

Pixel Stream

OutputCORNERDETECT

OR

• Want to be able to process images in real time.

• Corner detection is very memory intensive.

• CPU cannot process data fast enough because it had to store data to DRAM first.

Page 5: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Exploit arbitrary hardware parallelism to process more within the given time window

Page 6: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Harris Detector Basic Idea

Page 7: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Hardware Implementation

Page 8: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 9: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 10: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Grayscale

Page 11: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 12: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 13: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Sobel Filter

Page 14: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

2D convolution

Page 15: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 16: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 17: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 18: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 19: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 20: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 21: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 22: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 23: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

Page 24: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

After a while……

Page 25: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

This column is ready to be processed

0

1

N-2

N-1

Page 26: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

0

1

N-2

N-1

Page 27: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Convolution Buffer

0

1

N-2

N-1

Page 28: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 29: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 30: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Gaussian Filter

Page 31: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 32: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Processing Pipeline

Page 33: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Harris Response

Harris Input

∑Gadxdx

∑Gadydy∑Gadxdy

∑Gadxdy

=Sxx

Sxy

Sxy

Syy

Page 34: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Harris Response

Page 35: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Results

OpenCV parallel software implementation SystemVerilog(50MHz)0

2

4

6

8

10

12

14

16

18

20

Execution Time for Different platforms

Platform

Executi

on t

ime/m

s

Platform Execution Time/ms

Naïve Serial Implementation 351.20

OpenCV 18.12

SystemVerilog(50MHz) 1.31

Page 36: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Results

Speedup over serial implementation Speedup over OpenCV implementaion0.00

50.00

100.00

150.00

200.00

250.00

300.00

Speedup

Speedup

PlatformSpeedup of

FPGA Implementation

Naïve Serial Implementation 268.09

OpenCV 13.83

Page 37: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Results

Intel i3-4330 Cyclone IVE FPGA0.00

5.00

10.00

15.00

20.00

25.00

30.00

35.00

40.00

45.00

Energy Efficiency

Platform

Appro

x.

Pow

er

Consum

pti

on/W

Hardware Approx. Power Consumption/W

Intel i3-4330 42.00

Cyclone IVE FPGA 6.30

Page 38: Harris Corner Detector on FPGA Rohit Banerjee Jared Choi 15-418: Parallel Computer Architecture and Programming

Thank you for your attention