Giter Site home page Giter Site logo

tharaka27 / socstitcher Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 5.0 146.41 MB

FPGA implementation of the Image stitching using FAST. For CPU implementation visit tharaka27-ImageStitcherFAST.

C++ 5.14% C 0.74% Tcl 0.89% Ada 10.74% Shell 0.02% Coq 21.58% Verilog 0.95% VHDL 56.33% Pascal 0.01% JavaScript 0.04% Batchfile 0.01% SystemVerilog 1.63% HTML 1.93%
fast-algorithm homography image-stitching orb homography-estimation

socstitcher's Introduction

SoCStitcher

Introduction

  1. Image stitching or photo stitching is the process of combining multiple photographic images with overlapping fields of view to produce a segmented panorama or high-resolution image.
  2. Image stitching is widely used in modern applications, such as the following:
  • Document mosaicing
  • Image stabilization feature in camcorders that use frame-rate image alignment
  • High-resolution photomosaics in digital maps and satellite imagery
  • Medical imaging
  • Multiple-image super-resolution imaging
  • Video stitching
  • Object insertion

Architecture

Image acquisition module

Obtain stable images from camera and the inner registers can be reconfigured by the I2C port.

Feature extraction module

Extract the FAST features of the images using the designed FPGA-based parallel computing platform.

Feature matching module

Calculate the similarity of two feature descriptors and establish the correspondence by the nearest neighbor ratio method.

Image fusion module

Fuse images of two adjacent images in order to obtain smooth transition effects between the two images whose brightness and orientations are different.

HDMI displaying module

Display the real-time panoramic stitching results on a monitor.

Design decisions

Use FAST feature detector instead of SIFT [ SIFT | SURF | FAST ]

SIFT (patented) is slow compared to FAST algorithm (source : Homography Estimation by Elan Dubrofsky (Master’s essay submission)) FAST algorithm is already implemented in vivado xfopencv library

Use ORB feature descriptor [ SIFT | SURF | BRISK | BRIEF | ORB ]

FAST algorithm lacks orientation component so the algorithm is not invariant for orientation. ORB add orientation component to the FAST features. ORB is using BRISK keypoint descriptor which is relatively speed and contains less data relative to the SIFT descriptor

Use Brute force feature Matcher [ BRUTE FORCE | FLANN based ]

FLANN based matcher used random sampling. Since we are using FPGA all the feature sizes are fixed size, hence take only fixed number of clock cycles which can be calculated in compilation time so planned to proceed with brute force matcher.

FAST feature detector

Features from Accelerated Segment Test (FAST) is a corner detection algorithm, that is faster than most of the other feature detectors. The fast picks up a pixel in the image and compares the intensity of 16 pixels in its neighborhood on a circle, called the Bresenham's circle. If the intensity of 9 consecutive pixels is found to be either more than or less than that of the candidate pixel by a given threshold, then the pixel is declared as a corner. Once the corners are detected, the non-maximal suppression is applied to remove the weaker corners.

ORB Descriptor

The addition of a fast and accurate orientation component to FAST. The efficient computation of oriented BRIEF features. Analysis of variance and correlation of oriented BRIEF features. A learning method for de-correlating BRIEF features under rotational invariance, leading to better performance in nearest-neighbor applications.

ORB Matcher

Features matching or generally image matching, a part of many computer vision applications such as image registration, camera calibration and object recognition, is the task of establishing correspondences between two images of the same scene/object.

RANSAC Algorithm

The RANSAC algorithm is a learning technique to estimate parameters of a model by random sampling of observed data. Given a dataset whose data elements contain both inliers and outliers, RANSAC uses the voting scheme to find the optimal fitting result.

Homography estimation

A Homography is a transformation ( a 3×3 matrix ) that maps the points in one image to the corresponding points in the other image.

Hardware Implementation

Gussian Elimination Algoritham

GE

FAST Algoritham

FAST

Homography Algoritham

homography

Results

left image = 640 * 480px
right image = 640 * 480px

Alt Text

socstitcher's People

Contributors

tharaka27 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

socstitcher's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.