ECE 5775 High-Level Digital Design Automation, Fall 2016 School of Electrical and Computer Engineering, Cornell University

Size: px
Start display at page:

Download "ECE 5775 High-Level Digital Design Automation, Fall 2016 School of Electrical and Computer Engineering, Cornell University"

Transcription

1 ECE 5775 High-Level Digital Design Automation, Fall 2016 School of Electrical and Computer Engineering, Cornell University Optical Flow on FPGA Ian Thompson (ijt5), Joseph Featherston (jgf82), Judy Stephen (jls633) 1 Introduction Optical flow algorithms aim to estimate motion of objects using a stream of images. The technique is used in diverse applications from video encoding to visual odometry. It is widely used in robotics for obstacle avoidance and navigation. While the task requires a lot of computation power due to derivations and convolutions, it also requires a high frame-rate for real-time applications. This is because high accuracy object tracking requires a high update rate for any estimated velocity data. One of the more successful approaches to estimating optical flows the Lucas-Kanade method, and there have been many implementations of optical flow algorithms on FPGA deriving from the Lucas-Kanade method [1][2][3]. Our implementation will focus on one specific derivative of the Lucas-Kanade method which is well-optimized for FPGAs and reduces overall error [1]. In our project, we have successfully implemented such a design using Vivado HLS and SDSoC, and achieved an average error in flow direction of about 20 degrees. Our design is fully pipelined, such that it processes a pixel every cycle, to allow it to be used in real-time applications. 2 Techniques The technique used in this paper was optimized for use on an FPGA, in particular, it was divided into five distinct stages to allow pipelining. The input to the algorithm is a sequence of images. The sequence of images are of the same scene where the images were taken consecutively. In order to calculate the optical flow for one image, we needed a input sequence of four other images along with the desired image for which we want to calculate the T optical flow. The input sequence is described as g (X) where X = (x, y, t). The x and y are the spatial coordinates in the image while the t is the temporal coordinate of each image in the sequence. The input sequence is passed to the first module which calculates the image s gradient. Figure 1 shows the result of this gradient computation for our test image. Figure 1: Output of the gradient step for one frame. In this image, blue represents the X gradient, green Y, and red time The second step, gradient weighting, takes the gradients computed for each pixel by the first module, and applies a function to smooth each gradient, to reduce noise in the data. A 2D gaussian kernel is convolved with all 3 components of the gradient, to apply a small gaussian blur to the data. Figure 2 shows the smoothed image resulting from this step.

2 Figure 2: The smoothed output of the gradient weighting step The third step, outer product, computes the outer product of the smoothed gradient data. This yields a 3x3 matrix O for each pixel, computed from the following equation. Note that while the matrix is 3x3, it only contains 6 distinct values: O = g(x) g(x) T = After computing the outer product, it is again smoothed using a gaussian blur, similar to the gradient weighting step, to produce the final gradient tensor T. This involves applying a gaussian blur to all 6 values produced in the outer product step. Figure 3 shows cropped images of the six different results from this step. T = c i O i = i

3 Figure 3: The six images produced after tensor weighting. The bottom row, from left to right, is t 1, t 2, and t 3. The top row, from left to right, is t 4, t 5, and t 6 The final step computes the flow vector based on the gradient tensor T. Optical flow can be represented by ( V x V y) T T measured in pixels per frame. It can then be extended to v = (V x V y 1), which is the 3D spatio-temporal vector. The idea behind the optical flow calculation is that a moving object with only translational motion and without noise would result in v T Tv = 0. However, all of the images taken would realistically have noise and rotation. Therefore the objective is to minimize v T Tv since it will not be zero. The x and y components, V x and V y, could be calculated based on the gradient tensor T: (t6t4 t5t 2) v x = (t t t ) 3 Implementation (t t t t ) v y = (t t t ) The optical flow estimation engine was implemented in C++ as a hardware/software codesign targeting the ZC706 board. All of the 5 main stages of the optical flow pipeline are implemented in hardware. The software on the ARM core is responsible for loading input images, converting them to grayscale images, passing them to the hardware, and reading the outputs from a memory buffer. The host program then saves this output buffer, and computes the overall error. Most real applications will use some sort of additional processing on top of the flow calculation, either implemented in hardware or in software. Since we don t have an additional processing, the bulk of computation will have been completed in the hardware accelerator. For our project, we simply display the estimated optical flow as a colored image. This image is generated from the output of our flow algorithm using open source code acquired with the MPI Sintel Dataset [4]. The accelerator design consists of a top level function and 8 submodules, implemented as individual functions. The overall datapath for the accelerator design is shown in Figure 4. There is one submodule for each

4 block in the figure with the exception that the two weighting steps are each split into and X and Y weighting. Additionally, the gradient calculation for the z direction is split into its own function. This is because the Z gradient is fundamentally different from the X and Y gradients, as it is a time domain gradient which requires 5 frames of data to compute. The X and Y gradients, on the other hand, only look at a single frame, but need line buffers to look in the neighborhood around a pixel. Each submodule function uses two dimensional arrays to pass inputs and outputs, which allows each stage to be written in terms of a transformation over a framebuffer, rather than a streaming algorithm. By using a dataflow optimization, these arrays are implemented by SDSoC as FIFO buffers which connect the stages together. This allows the entire design to be pipelined to an Initiation Interval (II) of 1 pixel/cycle if all the submodules achieve this II. Figure 4: Diagram of algorithm implementation The outer product and final optical flow calculation steps are very straightforward to pipeline, since they only involve looking at a single pixel and not any neighborhood. These functions are very simple because of this, and only require a simple pipeline directive and will automatically implement their inputs and outputs as FIFOs. The XY gradient calculation, gradient weighting, and tensor weighting steps, however, are all basically convolutional steps which require computing using a neighborhood of pixels around each individual pixel. For example, the gradient calculation has a kernel size of 5. This means that the pixels in a 5x5 grid must be accessed to compute the gradient for any pixel. In order to store this data, we use two data structures: a line buffer and a window. These data structures are classes are supplied by Vivado HLS and SDSoC. The line buffer is used to store entire rows of the image on chip using BRAM resources. This makes it possible to store all of the rows within the convolutional window in on-chip memory. However, the BRAMs only have enough read ports to permit one read per row per cycle, which means that a convolution cannot read all of its pixels directly from the line buffer. The window data structure is used to permit reads to every pixel within the window, and is filled with data using the line buffer. This window stores the local 5x5 values within the convolutional window and is implemented with registers so that all entries can be accessed within the same cycle. The process for the tensor and gradient weighting is similar to the gradient calculation. However, because the convolution is separable, the X and Y steps of the weighting are performed separately. This means each module will only require either a line buffer or a window. The Y weighting steps use line buffers, since they only require one read per row. These line buffers are sized at 7 rows for gradient weighting and 3 rows for tensor weighting. The X weighting steps use windows instead, since they read all data from a single row. These require storing 7 pixels worth of data for gradient weighting and 3 for tensor weighting. One challenge we encountered while implementing this pipeline was the connection between gradient calculation and gradient weighting. Since gradient calculation was split into two modules, both of which needed the pixel value from the same frame, a small block was added in front of gradient calculation to split the incoming image stream. However, the XY gradient calculation needed to consume 2 full rows of image data before it would begin producing any output data, due to it needing to perform a convolution. The Z gradient calculation had no such

5 restriction, and would begin outputting data immediately. This caused our pipeline to deadlock when we first loaded it onto hardware, since there was no additional buffering between Z gradient calculation and gradient weighting. Since gradient weighting pulled data from XY and Z at the same time, Z had to stall until XY began outputting data. This in turn stalled the distributor module in front of XY and Z, which then stalled XY, deadlocking the whole system. To fix this, we increased the size of the output fifo from the Z gradient calculation to be large enough to hold 3 full rows of pixel data, which would be enough to patch over the period of no data coming from the XY gradient calculation. 4 Evaluation To evaluate our design, we loaded it onto a Xilinx zc706 board, and observed the execution time for evaluating one frame of optical flow data, which involves reading 5 frames of input data. Our evaluation was primarily based around processing a sequence of x436 images from the Sintel dataset[4]. The 3rd frame of the evaluation sequence is shown in Figure 4. Accuracy was evaluated by comparing the results against ground truth data from the Sintel dataset. The ground truth for this sequence is shown in Figure 5. Accuracy is given as the mean absolute error between the angle reported by our design, and the angle of the ground truth data. Magnitude of the result was not directly considered for the purposes of computing accuracy, however we did use a threshold on magnitude to determine whether the algorithm had a valid output value. If the algorithm reported a flow vector with magnitude greater than this threshold (vel_x^2 + vel_y^2 > 25 in our implementation), the pixel was discarded and not considered for accuracy, since the algorithm reported a velocity faster than it could measure. These pixels were all on surfaces moving too fast in the input sequence to be tracked by our design. Figure 6 is a visualization of our algorithm s output, where discarded regions are shown in black. Figure 4 : Input image from the test sequence

6 Figure 5 : Ground truth image from the test sequence Figure 6 : Output of our design for the test sequence Freq BRAMs DSPs LUTs Flip-Flops Latency Pixel II MHz cyc 1 15% 50% 29% 19% Table 1 : Synthesis results for our design Table 1 summarizes our synthesized hardware design. The hardware resource usage is taken from the final synthesis report, which means it includes the resources used to interface our accelerator with the host processor. The clock frequency of the accelerator was chosen to match the frequency of the rest of the data motion network. Our DSP usage is fairly high due to the use of floating point numbers throughout the entire design. In theory, our design could be converted to use fixed-point numbers instead. Doing this should drastically reduce the DSP usage, and also reduce BRAM utilization by reducing the width of all the FIFOs and line buffers in the design. Our design s latency, however, would not be impacted too much by the change. Since our design is pipelined to an II of 1, the latency is

7 primarily controlled by the trip count through our longest loop.the longest loop in our design is in the XY gradient calculation stage, which iterates 2 additional steps beyond the extents of the x and y dimensions. This means the loop effectively processes a 1026x438 image, meaning it runs for iterations. Comparing this with the latency of the pipeline as a whole shows that the latency of a single pixel is only 430 cycles. While converting to floating point would likely decrease this single-pixel latency significantly, as a whole any improvements would be insignificant compared to the latency of the design operating on an entire image. Software Time Hardware Time Speedup 533ms 49ms 10.9x Table 2 : Performance comparison between software baseline and hardware implementation Table 2 is a summary of our hardware design s performance, compared to our software baseline. Since both designs used floating point numbers in their calculations, and both used the same algorithms, both came out to the exact same accuracy value of 20.1 degrees. Our hardware design shows a very significant speedup over the software implementation, reaching almost 11 times the speed of the software implementation. While this speedup may not seem significant immediately, it is important because it puts the algorithm in a reasonable performance range for real-time applications. When connected to a continuous source of pixels, the startup overhead of the host processor configuring and launching the accelerator would be amortized, allowing our design to process a video stream at full speed. Theoretically, assuming the memory system provides pixels fast enough, our design should be able to process this image in 3.2 ms. This implies that about 45ms of our hardware implementation s runtime is spent setting up the module and transferring data in and out. If this design were set up in a full video pipeline, this additional overhead would be removed, making the speedup over the software implementation much higher. 5 Project Management At the outset of this project, we had planned to have each person write a different stage of the algorithm. However, due to limitations in our schedules, we had to forego that plan, and instead focus on implementing components whenever people were available. We started our implementation by having all three of us do a literature search for FPGA implementations of optical flow algorithms. Once we settled on a paper and algorithm, our next target was to create a software implementation of the algorithm. Judy began this by working on a MATLAB implementation of the algorithm. However we later decided to switch to a C++ implementation so that it could be easily adapted for use with Vivado HLS. Joe authored the majority of this software implementation, and later focused on making it synthesizable. Ian and Judy assisted in debugging the implementation, and optimizing it to maximize accuracy. Ian focused primarily on integrating the HLS module into the rest of the system using SDSoC, and lead the effort to implement the design on real hardware. Alongside this, Judy and Joe explored converting our design to fixed point, however we were not able to get the error rate down to a reasonable number in time for this project. 6 Conclusion Our objective was to implement a real-time optical flow estimation algorithm on a FPGA. Although we did not implement a way to supply a continuous stream of images to the design, our design was able to compute optical flow in a single sequence of images, and did so in such a way that it could handle a real-time stream of images. Future work could extend this project to calculate optical flow in real time on a video streamed into the FPGA board. Our algorithm was divided into five key stages, where the output of one stage would be passed to the input of the following stage. A sequence of five input images would be sent to the first stage, which calculates the spatio-temporal gradient of the image. This gradient would then be smoothed in the second module using a gaussian blur kernel. The third stage computed the outer product of these gradients, which would itself then be smoothed in the fourth stage using another gaussian blur kernel. The tensor produced by blurring the outer product was used by the fifth and final stage to perform the actual flow calculation. Our implementation was able to achieve a 20 degree average error in flow heading, and was successfully run using a Xilinx ZC706 FPGA board. Our design was sufficiently pipelined to allow it to be used to process a video stream in real-time. While we used floating-point calculations in our design, a good addition to this project would be to adjust it to use fixed-point numbers, which

8 would significantly reduce resource consumption, and potentially allow it to run on a smaller board such as a ZC702. This project gave us a much deeper understanding of the intricacies involved in making a complex design work using high-level synthesis. Through it, we learned a lot about how to structure an algorithm such that it works well with high-level synthesis, and how to debug such designs when they don t work. We think that the course project could be improved by pushing more of the final project s experience into the labs. In particular, exposure to SDSoC before the project would be good, since it would give a better idea of what sort of interactions with the host processor are possible and efficient to implement. Additionally, it would be nice if we had more resources available to help debug cases where the synthesized design s results don t match with the csim results, or where the synthesized design simply deadlocks. A guide to common pitfalls and mistakes which can cause these mismatches would be particularly nice. That said, this project was a very valuable learning experience, which will be useful in future endeavors involving high-level synthesis. 7 Appendix Code Located at: 8 References [1] Z. Wei, D. Lee, B. Nelson, FPGA-Based Real-Time Optical Flow Algorithm Design and Implementation, Journal of Multimedia, Vol 2, No. 5, Sept [2] J. Diaz, E. Ross, F. Pelayo, E. Ortigosa, S. Mota, FPGA-Based Real-Time Optical-Flow System, IEEE Transactions on Circuits and Systems for Video Technology, Vol 16, No. 2, Feb [3] J. Porter, M. Thomson, A. Wahab, Lucas-Kanade Optical Flow Accelerator, MIT 6.375, Spring [4] Butler, D. J. and Wulff, J. and Stanley, G. B. and Black, M. J., A Naturalistic Open Source Movie for Optical Flow Evaluation, European Conf. on Computer Vision (ECCV), Part IV, LNCS 7577, pp , Oct 2012.

ECE5775 High-Level Digital Design Automation, Fall 2018 School of Electrical Computer Engineering, Cornell University

ECE5775 High-Level Digital Design Automation, Fall 2018 School of Electrical Computer Engineering, Cornell University ECE5775 High-Level Digital Design Automation, Fall 2018 School of Electrical Computer Engineering, Cornell University Lab 4: Binarized Convolutional Neural Networks Due Wednesday, October 31, 2018, 11:59pm

More information

ECE 5775 Student-Led Discussions (10/16)

ECE 5775 Student-Led Discussions (10/16) ECE 5775 Student-Led Discussions (10/16) Talks: 18-min talk + 2-min Q&A Adam Macioszek, Julia Currie, Nick Sarkis Sparse Matrix Vector Multiplication Nick Comly, Felipe Fortuna, Mark Li, Serena Krech Matrix

More information

Hardware Acceleration of Edge Detection Algorithm on FPGAs

Hardware Acceleration of Edge Detection Algorithm on FPGAs Hardware Acceleration of Edge Detection Algorithm on FPGAs Muthukumar Venkatesan and Daggu Venkateshwar Rao Department of Electrical and Computer Engineering University of Nevada Las Vegas. Las Vegas NV

More information

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

FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS FPGA IMPLEMENTATION FOR REAL TIME SOBEL EDGE DETECTOR BLOCK USING 3-LINE BUFFERS 1 RONNIE O. SERFA JUAN, 2 CHAN SU PARK, 3 HI SEOK KIM, 4 HYEONG WOO CHA 1,2,3,4 CheongJu University E-maul: 1 engr_serfs@yahoo.com,

More information

Lab 4: Convolutional Neural Networks Due Friday, November 3, 2017, 11:59pm

Lab 4: Convolutional Neural Networks Due Friday, November 3, 2017, 11:59pm ECE5775 High-Level Digital Design Automation, Fall 2017 School of Electrical Computer Engineering, Cornell University Lab 4: Convolutional Neural Networks Due Friday, November 3, 2017, 11:59pm 1 Introduction

More information

FPGA-Based Feature Detection

FPGA-Based Feature Detection FPGA-Based Feature Detection Wennie Tabib School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 wtabib@andrew.cmu.edu Abstract Fast, accurate, autonomous robot navigation is essential

More information

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder

ESE532: System-on-a-Chip Architecture. Today. Message. Graph Cycles. Preclass 1. Reminder ESE532: System-on-a-Chip Architecture Day 8: September 26, 2018 Spatial Computations Today Graph Cycles (from Day 7) Accelerator Pipelines FPGAs Zynq Computational Capacity 1 2 Message Custom accelerators

More information

Embedded Real-Time Video Processing System on FPGA

Embedded Real-Time Video Processing System on FPGA Embedded Real-Time Video Processing System on FPGA Yahia Said 1, Taoufik Saidani 1, Fethi Smach 2, Mohamed Atri 1, and Hichem Snoussi 3 1 Laboratory of Electronics and Microelectronics (EμE), Faculty of

More information

Field Programmable Gate Array Implementation of Parts-based Object Detection for Real Time Video Applications

Field Programmable Gate Array Implementation of Parts-based Object Detection for Real Time Video Applications Field Programmable Gate Array Implementation of Parts-based Object Detection for Real Time Video Applications Deborah Goshorn, Junguk Cho, Ryan Kastner Department of Computer Science and Engineering University

More information

EE795: Computer Vision and Intelligent Systems

EE795: Computer Vision and Intelligent Systems EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 FDH 204 Lecture 14 130307 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Review Stereo Dense Motion Estimation Translational

More information

Lab 1: CORDIC Design Due Friday, September 8, 2017, 11:59pm

Lab 1: CORDIC Design Due Friday, September 8, 2017, 11:59pm ECE5775 High-Level Digital Design Automation, Fall 2017 School of Electrical Computer Engineering, Cornell University Lab 1: CORDIC Design Due Friday, September 8, 2017, 11:59pm 1 Introduction COordinate

More information

High Speed Pipelined Architecture for Adaptive Median Filter

High Speed Pipelined Architecture for Adaptive Median Filter Abstract High Speed Pipelined Architecture for Adaptive Median Filter D.Dhanasekaran, and **Dr.K.Boopathy Bagan *Assistant Professor, SVCE, Pennalur,Sriperumbudur-602105. **Professor, Madras Institute

More information

High-Level Synthesis: Accelerating Alignment Algorithm using SDSoC

High-Level Synthesis: Accelerating Alignment Algorithm using SDSoC High-Level Synthesis: Accelerating Alignment Algorithm using SDSoC Steven Derrien & Simon Rokicki The objective of this lab is to present how High-Level Synthesis (HLS) can be used to accelerate a given

More information

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

Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects Comparison of Some Motion Detection Methods in cases of Single and Multiple Moving Objects Shamir Alavi Electrical Engineering National Institute of Technology Silchar Silchar 788010 (Assam), India alavi1223@hotmail.com

More information

Hand-Eye Calibration from Image Derivatives

Hand-Eye Calibration from Image Derivatives Hand-Eye Calibration from Image Derivatives Abstract In this paper it is shown how to perform hand-eye calibration using only the normal flow field and knowledge about the motion of the hand. The proposed

More information

Image processing. Reading. What is an image? Brian Curless CSE 457 Spring 2017

Image processing. Reading. What is an image? Brian Curless CSE 457 Spring 2017 Reading Jain, Kasturi, Schunck, Machine Vision. McGraw-Hill, 1995. Sections 4.2-4.4, 4.5(intro), 4.5.5, 4.5.6, 5.1-5.4. [online handout] Image processing Brian Curless CSE 457 Spring 2017 1 2 What is an

More information

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

SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014 SIFT: SCALE INVARIANT FEATURE TRANSFORM SURF: SPEEDED UP ROBUST FEATURES BASHAR ALSADIK EOS DEPT. TOPMAP M13 3D GEOINFORMATION FROM IMAGES 2014 SIFT SIFT: Scale Invariant Feature Transform; transform image

More information

Deep-Pipelined FPGA Implementation of Ellipse Estimation for Eye Tracking

Deep-Pipelined FPGA Implementation of Ellipse Estimation for Eye Tracking Deep-Pipelined FPGA Implementation of Ellipse Estimation for Eye Tracking Keisuke Dohi, Yuma Hatanaka, Kazuhiro Negi, Yuichiro Shibata, Kiyoshi Oguri Graduate school of engineering, Nagasaki University,

More information

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC Zoltan Baruch Computer Science Department, Technical University of Cluj-Napoca, 26-28, Bariţiu St., 3400 Cluj-Napoca,

More information

MOTION ESTIMATION USING CONVOLUTIONAL NEURAL NETWORKS. Mustafa Ozan Tezcan

MOTION ESTIMATION USING CONVOLUTIONAL NEURAL NETWORKS. Mustafa Ozan Tezcan MOTION ESTIMATION USING CONVOLUTIONAL NEURAL NETWORKS Mustafa Ozan Tezcan Boston University Department of Electrical and Computer Engineering 8 Saint Mary s Street Boston, MA 2215 www.bu.edu/ece Dec. 19,

More information

A Reliable FPGA-based Real-time Optical-flow Estimation

A Reliable FPGA-based Real-time Optical-flow Estimation International Journal of Electrical and Electronics Engineering 4:4 200 A Reliable FPGA-based Real-time Optical-flow Estimation M. M. Abutaleb, A. Hamdy, M. E. Abuelwafa, and E. M. Saad Abstract Optical

More information

Module 7 VIDEO CODING AND MOTION ESTIMATION

Module 7 VIDEO CODING AND MOTION ESTIMATION Module 7 VIDEO CODING AND MOTION ESTIMATION Lesson 20 Basic Building Blocks & Temporal Redundancy Instructional Objectives At the end of this lesson, the students should be able to: 1. Name at least five

More information

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

Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects Intelligent Control Systems Visual Tracking (1) Tracking of Feature Points and Planar Rigid Objects Shingo Kagami Graduate School of Information Sciences, Tohoku University swk(at)ic.is.tohoku.ac.jp http://www.ic.is.tohoku.ac.jp/ja/swk/

More information

Sobel Edge Detection Algorithm

Sobel Edge Detection Algorithm Sobel Edge Detection Algorithm Samta Gupta 1, Susmita Ghosh Mazumdar 2 1 M. Tech Student, Department of Electronics & Telecom, RCET, CSVTU Bhilai, India 2 Reader, Department of Electronics & Telecom, RCET,

More information

Matching. Compare region of image to region of image. Today, simplest kind of matching. Intensities similar.

Matching. Compare region of image to region of image. Today, simplest kind of matching. Intensities similar. Matching Compare region of image to region of image. We talked about this for stereo. Important for motion. Epipolar constraint unknown. But motion small. Recognition Find object in image. Recognize object.

More information

Tutorial on Software-Hardware Codesign with CORDIC

Tutorial on Software-Hardware Codesign with CORDIC ECE5775 High-Level Digital Design Automation, Fall 2017 School of Electrical Computer Engineering, Cornell University Tutorial on Software-Hardware Codesign with CORDIC 1 Introduction So far in ECE5775

More information

Image Compression System on an FPGA

Image Compression System on an FPGA Image Compression System on an FPGA Group 1 Megan Fuller, Ezzeldin Hamed 6.375 Contents 1 Objective 2 2 Background 2 2.1 The DFT........................................ 3 2.2 The DCT........................................

More information

IMPLEMENTATION OF DISTRIBUTED CANNY EDGE DETECTOR ON FPGA

IMPLEMENTATION OF DISTRIBUTED CANNY EDGE DETECTOR ON FPGA IMPLEMENTATION OF DISTRIBUTED CANNY EDGE DETECTOR ON FPGA T. Rupalatha 1, Mr.C.Leelamohan 2, Mrs.M.Sreelakshmi 3 P.G. Student, Department of ECE, C R Engineering College, Tirupati, India 1 Associate Professor,

More information

Ninio, J. and Stevens, K. A. (2000) Variations on the Hermann grid: an extinction illusion. Perception, 29,

Ninio, J. and Stevens, K. A. (2000) Variations on the Hermann grid: an extinction illusion. Perception, 29, Ninio, J. and Stevens, K. A. (2000) Variations on the Hermann grid: an extinction illusion. Perception, 29, 1209-1217. CS 4495 Computer Vision A. Bobick Sparse to Dense Correspodence Building Rome in

More information

COMPARATIVE STUDY OF IMAGE EDGE DETECTION ALGORITHMS

COMPARATIVE STUDY OF IMAGE EDGE DETECTION ALGORITHMS COMPARATIVE STUDY OF IMAGE EDGE DETECTION ALGORITHMS Shubham Saini 1, Bhavesh Kasliwal 2, Shraey Bhatia 3 1 Student, School of Computing Science and Engineering, Vellore Institute of Technology, India,

More information

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

Implementation of Canny Edge Detection Algorithm on FPGA and displaying Image through VGA Interface Implementation of Canny Edge Detection Algorithm on FPGA and displaying Image through VGA Interface Azra Tabassum 1, Harshitha P 2, Sunitha R 3 1-2 8 th sem Student, Dept of ECE, RRCE, Bangalore, Karnataka,

More information

EE795: Computer Vision and Intelligent Systems

EE795: Computer Vision and Intelligent Systems EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 WRI C225 Lecture 02 130124 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Basics Image Formation Image Processing 3 Intelligent

More information

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm

EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm EE368 Project Report CD Cover Recognition Using Modified SIFT Algorithm Group 1: Mina A. Makar Stanford University mamakar@stanford.edu Abstract In this report, we investigate the application of the Scale-Invariant

More information

Image Processing

Image Processing Image Processing 159.731 Canny Edge Detection Report Syed Irfanullah, Azeezullah 00297844 Danh Anh Huynh 02136047 1 Canny Edge Detection INTRODUCTION Edges Edges characterize boundaries and are therefore

More information

VHDL for Synthesis. Course Description. Course Duration. Goals

VHDL for Synthesis. Course Description. Course Duration. Goals VHDL for Synthesis Course Description This course provides all necessary theoretical and practical know how to write an efficient synthesizable HDL code through VHDL standard language. The course goes

More information

A Vision System for Automatic State Determination of Grid Based Board Games

A Vision System for Automatic State Determination of Grid Based Board Games A Vision System for Automatic State Determination of Grid Based Board Games Michael Bryson Computer Science and Engineering, University of South Carolina, 29208 Abstract. Numerous programs have been written

More information

Massively Parallel Computing on Silicon: SIMD Implementations. V.M.. Brea Univ. of Santiago de Compostela Spain

Massively Parallel Computing on Silicon: SIMD Implementations. V.M.. Brea Univ. of Santiago de Compostela Spain Massively Parallel Computing on Silicon: SIMD Implementations V.M.. Brea Univ. of Santiago de Compostela Spain GOAL Give an overview on the state-of of-the- art of Digital on-chip CMOS SIMD Solutions,

More information

EXAM SOLUTIONS. Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006,

EXAM SOLUTIONS. Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006, School of Computer Science and Communication, KTH Danica Kragic EXAM SOLUTIONS Image Processing and Computer Vision Course 2D1421 Monday, 13 th of March 2006, 14.00 19.00 Grade table 0-25 U 26-35 3 36-45

More information

Coarse-to-fine image registration

Coarse-to-fine image registration Today we will look at a few important topics in scale space in computer vision, in particular, coarseto-fine approaches, and the SIFT feature descriptor. I will present only the main ideas here to give

More information

LegUp HLS Tutorial for Microsemi PolarFire Sobel Filtering for Image Edge Detection

LegUp HLS Tutorial for Microsemi PolarFire Sobel Filtering for Image Edge Detection LegUp HLS Tutorial for Microsemi PolarFire Sobel Filtering for Image Edge Detection This tutorial will introduce you to high-level synthesis (HLS) concepts using LegUp. You will apply HLS to a real problem:

More information

Advanced FPGA Design Methodologies with Xilinx Vivado

Advanced FPGA Design Methodologies with Xilinx Vivado Advanced FPGA Design Methodologies with Xilinx Vivado Alexander Jäger Computer Architecture Group Heidelberg University, Germany Abstract With shrinking feature sizes in the ASIC manufacturing technology,

More information

Implementation Of Harris Corner Matching Based On FPGA

Implementation Of Harris Corner Matching Based On FPGA 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

More information

Ruch (Motion) Rozpoznawanie Obrazów Krzysztof Krawiec Instytut Informatyki, Politechnika Poznańska. Krzysztof Krawiec IDSS

Ruch (Motion) Rozpoznawanie Obrazów Krzysztof Krawiec Instytut Informatyki, Politechnika Poznańska. Krzysztof Krawiec IDSS Ruch (Motion) Rozpoznawanie Obrazów Krzysztof Krawiec Instytut Informatyki, Politechnika Poznańska 1 Krzysztof Krawiec IDSS 2 The importance of visual motion Adds entirely new (temporal) dimension to visual

More information

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline

EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT. Recap and Outline EECS150 - Digital Design Lecture 14 FIFO 2 and SIFT Oct. 15, 2013 Prof. Ronald Fearing Electrical Engineering and Computer Sciences University of California, Berkeley (slides courtesy of Prof. John Wawrzynek)

More information

The SIFT (Scale Invariant Feature

The SIFT (Scale Invariant Feature The SIFT (Scale Invariant Feature Transform) Detector and Descriptor developed by David Lowe University of British Columbia Initial paper ICCV 1999 Newer journal paper IJCV 2004 Review: Matt Brown s Canonical

More information

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

Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) Biometrics Technology: Image Processing & Pattern Recognition (by Dr. Dickson Tong) References: [1] http://homepages.inf.ed.ac.uk/rbf/hipr2/index.htm [2] http://www.cs.wisc.edu/~dyer/cs540/notes/vision.html

More information

Capturing, Modeling, Rendering 3D Structures

Capturing, Modeling, Rendering 3D Structures Computer Vision Approach Capturing, Modeling, Rendering 3D Structures Calculate pixel correspondences and extract geometry Not robust Difficult to acquire illumination effects, e.g. specular highlights

More information

Feature Detectors - Sobel Edge Detector

Feature Detectors - Sobel Edge Detector Page 1 of 5 Sobel Edge Detector Common Names: Sobel, also related is Prewitt Gradient Edge Detector Brief Description The Sobel operator performs a 2-D spatial gradient measurement on an image and so emphasizes

More information

Hardware Software Co-Simulation of Canny Edge Detection Algorithm

Hardware Software Co-Simulation of Canny Edge Detection Algorithm . International Journal of Computer Applications (0975 8887) Hardware Software Co-Simulation of Canny Edge Detection Algorithm Kazi Ahmed Asif Fuad Post-Graduate Student Dept. of Electrical & Electronic

More information

ESE532: System-on-a-Chip Architecture. Today. Message. Clock Cycle BRAM

ESE532: System-on-a-Chip Architecture. Today. Message. Clock Cycle BRAM ESE532: System-on-a-Chip Architecture Day 20: April 3, 2017 Pipelining, Frequency, Dataflow Today What drives cycle times Pipelining in Vivado HLS C Avoiding bottlenecks feeding data in Vivado HLS C Penn

More information

Accelerating Binarized Convolutional Neural Networks with Software-Programmable FPGAs

Accelerating Binarized Convolutional Neural Networks with Software-Programmable FPGAs Accelerating Binarized Convolutional Neural Networks with Software-Programmable FPGAs Ritchie Zhao 1, Weinan Song 2, Wentao Zhang 2, Tianwei Xing 3, Jeng-Hau Lin 4, Mani Srivastava 3, Rajesh Gupta 4, Zhiru

More information

FPGA Matrix Multiplier

FPGA Matrix Multiplier FPGA Matrix Multiplier In Hwan Baek Henri Samueli School of Engineering and Applied Science University of California Los Angeles Los Angeles, California Email: chris.inhwan.baek@gmail.com David Boeck Henri

More information

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis

A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis A Lost Cycles Analysis for Performance Prediction using High-Level Synthesis Bruno da Silva, Jan Lemeire, An Braeken, and Abdellah Touhafi Vrije Universiteit Brussel (VUB), INDI and ETRO department, Brussels,

More information

Intel HLS Compiler: Fast Design, Coding, and Hardware

Intel HLS Compiler: Fast Design, Coding, and Hardware white paper Intel HLS Compiler Intel HLS Compiler: Fast Design, Coding, and Hardware The Modern FPGA Workflow Authors Melissa Sussmann HLS Product Manager Intel Corporation Tom Hill OpenCL Product Manager

More information

Supplemental Material Deep Fluids: A Generative Network for Parameterized Fluid Simulations

Supplemental Material Deep Fluids: A Generative Network for Parameterized Fluid Simulations Supplemental Material Deep Fluids: A Generative Network for Parameterized Fluid Simulations 1. Extended Results 1.1. 2-D Smoke Plume Additional results for the 2-D smoke plume example are shown in Figures

More information

University of Cambridge Engineering Part IIB Module 4F12 - Computer Vision and Robotics Mobile Computer Vision

University of Cambridge Engineering Part IIB Module 4F12 - Computer Vision and Robotics Mobile Computer Vision report University of Cambridge Engineering Part IIB Module 4F12 - Computer Vision and Robotics Mobile Computer Vision Web Server master database User Interface Images + labels image feature algorithm Extract

More information

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

convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection COS 429: COMPUTER VISON Linear Filters and Edge Detection convolution shift invariant linear system Fourier Transform Aliasing and sampling scale representation edge detection corner detection Reading:

More information

Developing a Data Driven System for Computational Neuroscience

Developing a Data Driven System for Computational Neuroscience Developing a Data Driven System for Computational Neuroscience Ross Snider and Yongming Zhu Montana State University, Bozeman MT 59717, USA Abstract. A data driven system implies the need to integrate

More information

Peripheral drift illusion

Peripheral drift illusion Peripheral drift illusion Does it work on other animals? Computer Vision Motion and Optical Flow Many slides adapted from J. Hays, S. Seitz, R. Szeliski, M. Pollefeys, K. Grauman and others Video A video

More information

A Performance and Energy Comparison of FPGAs, GPUs, and Multicores for Sliding-Window Applications

A Performance and Energy Comparison of FPGAs, GPUs, and Multicores for Sliding-Window Applications A Performance and Energy Comparison of FPGAs, GPUs, and Multicores for Sliding-Window Applications Jeremy Fowers, Greg Brown, Patrick Cooke, Greg Stitt University of Florida Department of Electrical and

More information

Storage Efficient NL-Means Burst Denoising for Programmable Cameras

Storage Efficient NL-Means Burst Denoising for Programmable Cameras Storage Efficient NL-Means Burst Denoising for Programmable Cameras Brendan Duncan Stanford University brendand@stanford.edu Miroslav Kukla Stanford University mkukla@stanford.edu Abstract An effective

More information

School of Computing University of Utah

School of Computing University of Utah School of Computing University of Utah Presentation Outline 1 2 3 4 Main paper to be discussed David G. Lowe, Distinctive Image Features from Scale-Invariant Keypoints, IJCV, 2004. How to find useful keypoints?

More information

FPGA-based Real-time Super-Resolution on an Adaptive Image Sensor

FPGA-based Real-time Super-Resolution on an Adaptive Image Sensor FPGA-based Real-time Super-Resolution on an Adaptive Image Sensor Maria E. Angelopoulou, Christos-Savvas Bouganis, Peter Y. K. Cheung, and George A. Constantinides Department of Electrical and Electronic

More information

CS 223B Computer Vision Problem Set 3

CS 223B Computer Vision Problem Set 3 CS 223B Computer Vision Problem Set 3 Due: Feb. 22 nd, 2011 1 Probabilistic Recursion for Tracking In this problem you will derive a method for tracking a point of interest through a sequence of images.

More information

High-Level Synthesis of a Fast Super-Resolution Convolutional Neural Net

High-Level Synthesis of a Fast Super-Resolution Convolutional Neural Net Justin Selig (jss459), Patrick Wang (pw349), Shaurya Luthra (sl2462) ECE 5775, Prof. Zhiru Zhang December 11th, 2017 Introduction High-Level Synthesis of a Fast Super-Resolution Convolutional Neural Net

More information

Generation of Multigrid-based Numerical Solvers for FPGA Accelerators

Generation of Multigrid-based Numerical Solvers for FPGA Accelerators Generation of Multigrid-based Numerical Solvers for FPGA Accelerators Christian Schmitt, Moritz Schmid, Frank Hannig, Jürgen Teich, Sebastian Kuckuk, Harald Köstler Hardware/Software Co-Design, System

More information

International Journal of Computer Sciences and Engineering. Research Paper Volume-6, Issue-2 E-ISSN:

International Journal of Computer Sciences and Engineering. Research Paper Volume-6, Issue-2 E-ISSN: International Journal of Computer Sciences and Engineering Open Access Research Paper Volume-6, Issue-2 E-ISSN: 2347-2693 Implementation Sobel Edge Detector on FPGA S. Nandy 1*, B. Datta 2, D. Datta 3

More information

arxiv: v1 [cs.cv] 2 May 2016

arxiv: v1 [cs.cv] 2 May 2016 16-811 Math Fundamentals for Robotics Comparison of Optimization Methods in Optical Flow Estimation Final Report, Fall 2015 arxiv:1605.00572v1 [cs.cv] 2 May 2016 Contents Noranart Vesdapunt Master of Computer

More information

SDSoC: Session 1

SDSoC: Session 1 SDSoC: Session 1 ADAM@ADIUVOENGINEERING.COM What is SDSoC SDSoC is a system optimising compiler which allows us to optimise Zynq PS / PL Zynq MPSoC PS / PL MicroBlaze What does this mean? Following the

More information

Fast Natural Feature Tracking for Mobile Augmented Reality Applications

Fast Natural Feature Tracking for Mobile Augmented Reality Applications Fast Natural Feature Tracking for Mobile Augmented Reality Applications Jong-Seung Park 1, Byeong-Jo Bae 2, and Ramesh Jain 3 1 Dept. of Computer Science & Eng., University of Incheon, Korea 2 Hyundai

More information

Comparison Between The Optical Flow Computational Techniques

Comparison Between The Optical Flow Computational Techniques Comparison Between The Optical Flow Computational Techniques Sri Devi Thota #1, Kanaka Sunanda Vemulapalli* 2, Kartheek Chintalapati* 3, Phanindra Sai Srinivas Gudipudi* 4 # Associate Professor, Dept.

More information

System Verification of Hardware Optimization Based on Edge Detection

System Verification of Hardware Optimization Based on Edge Detection Circuits and Systems, 2013, 4, 293-298 http://dx.doi.org/10.4236/cs.2013.43040 Published Online July 2013 (http://www.scirp.org/journal/cs) System Verification of Hardware Optimization Based on Edge Detection

More information

SURVEY ON IMAGE PROCESSING IN THE FIELD OF DE-NOISING TECHNIQUES AND EDGE DETECTION TECHNIQUES ON RADIOGRAPHIC IMAGES

SURVEY ON IMAGE PROCESSING IN THE FIELD OF DE-NOISING TECHNIQUES AND EDGE DETECTION TECHNIQUES ON RADIOGRAPHIC IMAGES SURVEY ON IMAGE PROCESSING IN THE FIELD OF DE-NOISING TECHNIQUES AND EDGE DETECTION TECHNIQUES ON RADIOGRAPHIC IMAGES 1 B.THAMOTHARAN, 2 M.MENAKA, 3 SANDHYA VAIDYANATHAN, 3 SOWMYA RAVIKUMAR 1 Asst. Prof.,

More information

Filtering Images. Contents

Filtering Images. Contents Image Processing and Data Visualization with MATLAB Filtering Images Hansrudi Noser June 8-9, 010 UZH, Multimedia and Robotics Summer School Noise Smoothing Filters Sigmoid Filters Gradient Filters Contents

More information

ECE 587 Hardware/Software Co-Design Lecture 23 Hardware Synthesis III

ECE 587 Hardware/Software Co-Design Lecture 23 Hardware Synthesis III ECE 587 Hardware/Software Co-Design Spring 2018 1/28 ECE 587 Hardware/Software Co-Design Lecture 23 Hardware Synthesis III Professor Jia Wang Department of Electrical and Computer Engineering Illinois

More information

FPGA Implementation of a Nonlinear Two Dimensional Fuzzy Filter

FPGA Implementation of a Nonlinear Two Dimensional Fuzzy Filter Justin G. R. Delva, Ali M. Reza, and Robert D. Turney + + CORE Solutions Group, Xilinx San Jose, CA 9514-3450, USA Department of Electrical Engineering and Computer Science, UWM Milwaukee, Wisconsin 5301-0784,

More information

EE795: Computer Vision and Intelligent Systems

EE795: Computer Vision and Intelligent Systems EE795: Computer Vision and Intelligent Systems Spring 2012 TTh 17:30-18:45 FDH 204 Lecture 11 140311 http://www.ee.unlv.edu/~b1morris/ecg795/ 2 Outline Motion Analysis Motivation Differential Motion Optical

More information

II. LITERATURE SURVEY

II. LITERATURE SURVEY Hardware Co-Simulation of Sobel Edge Detection Using FPGA and System Generator Sneha Moon 1, Prof Meena Chavan 2 1,2 Department of Electronics BVUCOE Pune India Abstract: This paper implements an image

More information

A Novel Image Super-resolution Reconstruction Algorithm based on Modified Sparse Representation

A Novel Image Super-resolution Reconstruction Algorithm based on Modified Sparse Representation , pp.162-167 http://dx.doi.org/10.14257/astl.2016.138.33 A Novel Image Super-resolution Reconstruction Algorithm based on Modified Sparse Representation Liqiang Hu, Chaofeng He Shijiazhuang Tiedao University,

More information

Proceedings of the 6th Int. Conf. on Computer Analysis of Images and Patterns. Direct Obstacle Detection and Motion. from Spatio-Temporal Derivatives

Proceedings of the 6th Int. Conf. on Computer Analysis of Images and Patterns. Direct Obstacle Detection and Motion. from Spatio-Temporal Derivatives Proceedings of the 6th Int. Conf. on Computer Analysis of Images and Patterns CAIP'95, pp. 874-879, Prague, Czech Republic, Sep 1995 Direct Obstacle Detection and Motion from Spatio-Temporal Derivatives

More information

[Sub Track 1-3] FPGA/ASIC 을타겟으로한알고리즘의효율적인생성방법및신기능소개

[Sub Track 1-3] FPGA/ASIC 을타겟으로한알고리즘의효율적인생성방법및신기능소개 [Sub Track 1-3] FPGA/ASIC 을타겟으로한알고리즘의효율적인생성방법및신기능소개 정승혁과장 Senior Application Engineer MathWorks Korea 2015 The MathWorks, Inc. 1 Outline When FPGA, ASIC, or System-on-Chip (SoC) hardware is needed Hardware

More information

arxiv: v1 [cs.cv] 22 Feb 2017

arxiv: v1 [cs.cv] 22 Feb 2017 Synthesising Dynamic Textures using Convolutional Neural Networks arxiv:1702.07006v1 [cs.cv] 22 Feb 2017 Christina M. Funke, 1, 2, 3, Leon A. Gatys, 1, 2, 4, Alexander S. Ecker 1, 2, 5 1, 2, 3, 6 and Matthias

More information

Analyzing the Generation and Optimization of an FPGA Accelerator using High Level Synthesis

Analyzing the Generation and Optimization of an FPGA Accelerator using High Level Synthesis Paper Analyzing the Generation and Optimization of an FPGA Accelerator using High Level Synthesis Sebastian Kaltenstadler Ulm University Ulm, Germany sebastian.kaltenstadler@missinglinkelectronics.com

More information

Optimizing CNN-based Object Detection Algorithms on Embedded FPGA Platforms

Optimizing CNN-based Object Detection Algorithms on Embedded FPGA Platforms Optimizing CNN-based Object Detection Algorithms on Embedded FPGA Platforms Ruizhe Zhao 1, Xinyu Niu 1, Yajie Wu 2, Wayne Luk 1, and Qiang Liu 3 1 Imperial College London {ruizhe.zhao15,niu.xinyu10,w.luk}@imperial.ac.uk

More information

CS4442/9542b Artificial Intelligence II prof. Olga Veksler

CS4442/9542b Artificial Intelligence II prof. Olga Veksler CS4442/9542b Artificial Intelligence II prof. Olga Veksler Lecture 8 Computer Vision Introduction, Filtering Some slides from: D. Jacobs, D. Lowe, S. Seitz, A.Efros, X. Li, R. Fergus, J. Hayes, S. Lazebnik,

More information

High-Level Synthesis Optimization for Blocked Floating-Point Matrix Multiplication

High-Level Synthesis Optimization for Blocked Floating-Point Matrix Multiplication High-Level Synthesis Optimization for Blocked Floating-Point Matrix Multiplication Erik H. D Hollander Electronics and Information Systems Department Ghent University, Ghent, Belgium Erik.DHollander@ugent.be

More information

Introduction to FPGA Design with Vivado High-Level Synthesis. UG998 (v1.0) July 2, 2013

Introduction to FPGA Design with Vivado High-Level Synthesis. UG998 (v1.0) July 2, 2013 Introduction to FPGA Design with Vivado High-Level Synthesis Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products.

More information

A Summary of Projective Geometry

A Summary of Projective Geometry A Summary of Projective Geometry Copyright 22 Acuity Technologies Inc. In the last years a unified approach to creating D models from multiple images has been developed by Beardsley[],Hartley[4,5,9],Torr[,6]

More information

arxiv: v1 [cs.cv] 28 Sep 2018

arxiv: v1 [cs.cv] 28 Sep 2018 Camera Pose Estimation from Sequence of Calibrated Images arxiv:1809.11066v1 [cs.cv] 28 Sep 2018 Jacek Komorowski 1 and Przemyslaw Rokita 2 1 Maria Curie-Sklodowska University, Institute of Computer Science,

More information

CS4442/9542b Artificial Intelligence II prof. Olga Veksler

CS4442/9542b Artificial Intelligence II prof. Olga Veksler CS4442/9542b Artificial Intelligence II prof. Olga Veksler Lecture 2 Computer Vision Introduction, Filtering Some slides from: D. Jacobs, D. Lowe, S. Seitz, A.Efros, X. Li, R. Fergus, J. Hayes, S. Lazebnik,

More information

1-D Time-Domain Convolution. for (i=0; i < outputsize; i++) { y[i] = 0; for (j=0; j < kernelsize; j++) { y[i] += x[i - j] * h[j]; } }

1-D Time-Domain Convolution. for (i=0; i < outputsize; i++) { y[i] = 0; for (j=0; j < kernelsize; j++) { y[i] += x[i - j] * h[j]; } } Introduction: Convolution is a common operation in digital signal processing. In this project, you will be creating a custom circuit implemented on the Nallatech board that exploits a significant amount

More information

Final Review CMSC 733 Fall 2014

Final Review CMSC 733 Fall 2014 Final Review CMSC 733 Fall 2014 We have covered a lot of material in this course. One way to organize this material is around a set of key equations and algorithms. You should be familiar with all of these,

More information

CS 4758: Automated Semantic Mapping of Environment

CS 4758: Automated Semantic Mapping of Environment CS 4758: Automated Semantic Mapping of Environment Dongsu Lee, ECE, M.Eng., dl624@cornell.edu Aperahama Parangi, CS, 2013, alp75@cornell.edu Abstract The purpose of this project is to program an Erratic

More information

FCUDA-NoC: A Scalable and Efficient Network-on-Chip Implementation for the CUDA-to-FPGA Flow

FCUDA-NoC: A Scalable and Efficient Network-on-Chip Implementation for the CUDA-to-FPGA Flow FCUDA-NoC: A Scalable and Efficient Network-on-Chip Implementation for the CUDA-to-FPGA Flow Abstract: High-level synthesis (HLS) of data-parallel input languages, such as the Compute Unified Device Architecture

More information

Image Differentiation

Image Differentiation Image Differentiation Carlo Tomasi September 4, 207 Many image operations, including edge detection and motion analysis in video, require computing the derivatives of image intensity with respect to the

More information

AN EMBEDDED ARCHITECTURE FOR FEATURE DETECTION USING MODIFIED SIFT ALGORITHM

AN EMBEDDED ARCHITECTURE FOR FEATURE DETECTION USING MODIFIED SIFT ALGORITHM International Journal of Electronics and Communication Engineering and Technology (IJECET) Volume 7, Issue 5, Sep-Oct 2016, pp. 38 46, Article ID: IJECET_07_05_005 Available online at http://www.iaeme.com/ijecet/issues.asp?jtype=ijecet&vtype=7&itype=5

More information

The Design of Sobel Edge Extraction System on FPGA

The Design of Sobel Edge Extraction System on FPGA The Design of Sobel Edge Extraction System on FPGA Yu ZHENG 1, * 1 School of software, Beijing University of technology, Beijing 100124, China; Abstract. Edge is a basic feature of an image, the purpose

More information

FPGA implementations of Histograms of Oriented Gradients in FPGA

FPGA implementations of Histograms of Oriented Gradients in FPGA FPGA implementations of Histograms of Oriented Gradients in FPGA C. Bourrasset 1, L. Maggiani 2,3, C. Salvadori 2,3, J. Sérot 1, P. Pagano 2,3 and F. Berry 1 1 Institut Pascal- D.R.E.A.M - Aubière, France

More information

6.375 Group 2: Adaptive PIV Final Report

6.375 Group 2: Adaptive PIV Final Report 6.375 Group 2: Adaptive PIV Final Report Robin Deits rdeits@csail.mit.edu May 15, 2013 Contents 1 Overview 2 2 Background: PIV 2 3 Adaptive PIV 2 4 Target Application 3 5 Implementation 3 5.1 Module: PIV.............................

More information

An Object Tracking Computational Sensor

An Object Tracking Computational Sensor An Object Tracking Computational Sensor Vladimir Brajovic CMU-RI-TR-01-40 Robotics Institute, Carnegie Mellon University, 5000 Forbes Avenue, Pittsburgh PA 15213 ph: (412)268-5622, fax: (412)268-5571 brajovic@ri.cmu.edu

More information