GraphLab: Distributed Graph-Parallel API
2.1
|
GraphLab Computer Vision Toolkit aims to provide fully distributed wrappers to algorithms in OpenCV, an open-source library aimed at real-time computer vision. Eventually, GraphLab Computer Vision Toolkit will become it’s own spin-off project called CloudCV, a system that will provide access to state-of-the-art computer vision algorithms on the cloud.
Currently, the only implemented algorithm is Image-Stitching, where the goal is to create a composite panoramic image from a collection of images.
The goal in image stiching is to create a composite panoramic image from a collection of images. The standard pipeline consists of four main steps:
See the following for details about the pipeline:
M. Brown and D. Lowe. Automatic Panoramic Image Stitching using Invariant Features. International Journal of Computer Vision, 74(1), pages 59-73, 2007.
The stiching code in this toolkit is based on OpenCV Stitching Module.
Implemented by Dhruv Batra and Prakriti Banik.
The program requires a directory that contains all images from the panorama. Currently (and temporarily for now), the program also requires an adjacency list indicating the overlap between images. We are working on incorporating code that will estimate this adjacency list directly from the images.
> ./stitch --img /path/to/image/dir --graph /path/to/adjacency/list.txt
The adjacency list file format stores on each line, a vertex (image id), followed by a list of all vertices (image ids) that contain overlapping visual content. Each line has the following format:
[image ID] [number of neighbouring vertices/images] [neighbour-image ID 1] [neighbour-image ID 2] [neighbour-image ID 3] ...
Here's an example adjacency list file with 3 images (numbered 0,1,2) in a chain graph (0-1-2):
0 1 1 1 2 0 2 2 1 1
Other arguments are: