GSoC/GCI Archive
Google Summer of Code 2015

CloudCV

License: Apache License, 2.0

Web Page: https://docs.google.com/document/d/1QX9Dq1WTwVCc3PB14F6Iyf9tii1zM20Gil78iX_6qCc/edit?usp=sharing

Mailing List: cloudcv@googlegroups.com

CloudCV: Large Scale Distributed Computer Vision as a Cloud Service

We are witnessing a proliferation of massive visual data. Unfortunately scaling existing computer vision algorithms to large datasets leaves researchers repeatedly solving the same algorithmic and infrastructural problems. Our goal is to democratize computer vision; one should not have to be a computer vision, big data and distributed computing expert to have access to state-of-the-art distributed computer vision algorithms. We provide access to state-of-art distributed computer vision algorithms as a cloud service through Web Interface & APIs. Researchers, Students and Developers will be able to access these distributed computer vision algorithms and the computation power through small number of click and minimal lines of code. 

A recent World Economic Form report and a New York Times article declared data to be a new class of economic asset, like currency or gold. Visual content is arguably the fastest growing data on the web. Photo-sharing websites like Flickr and Facebook now host more than 6 and 90 Billion photos (respectively). Besides consumer data, diverse scientific communities (Civil & Aerospace Engineering, Computational Biology, Bioinformatics, and Astrophysics, etc) are also beginning to generate massive archives of visual content, without necessarily the expertise or tools to analyze them.

We are building CloudCV, an ambitious system that will provide access to state-of-the-art distributed computer vision algorithms on the cloud, as a service to the community. CloudCV will contain algorithms for end-to-end processing of image & video content: from low-level filtering and data processing to high-level tasks like face detection, person detection, object detection, tracking, action and intent detection, etc.

Challenge.
Designing and implementing efficient and provably correct parallel computer vision algorithms is extremely challenging. Some tasks like extracting statistics from image collections are embarrassingly parallel, i.e. can be parallelized simply by distributing the images to different machines. This is where framework such as MapReduce have demonstrated success. Unfortunately, most tasks in computer vision and machine learning such as training a face detector are not embarrassingly parallel – there are data and computational dependencies between images and various steps in the algorithm. Moreover, for each such parallel algorithm, researchers must repeatedly solve the same low-level problems: building & maintaining a cluster of machines, formulating parallelizable components in computer vision algorithms, designing multi-threaded primitives, writing custom hardware wrappers, implementing mechanisms to avoid race-conditions, dead-locks, etc.

Current status as of February 2015 (and plans till GTC)
• A distributed implementation of panoramic image stitching is available as a web-service.
• We have released 16 "industry standard" pre-computed features for all 1.2 million images in the ImageNet Challenge [7], as a resource that others in the community can build on.
• We have released Python and Matlab APIs that allow users to "call" CloudCV functions for image stitching and object detection. In all cases, the images are sent to our servers at Virginia Tech and EC2 instances, and and results of the executables are made available to the users' running Python and Matlab instances when ready.
• A Convolutional Neural Network (CNN) based image auto-tagging web-service. Both these demos utilize the Caffe framework, and run on NVIDIA Tesla K40s, courtesy of the NVIDIA Academic Hardware Donation Program (NVIDIA contact: Stephen Jones).

•  Training a new category apart from 1000 categories that are already present in the model. User is able to provide training examples for each of these new categories. There are two modes of training: fast mode and slow mode 

 

We highly encourage to have all the discussions related to CloudCV on this group:

https://groups.google.com/forum/?hl=en#!forum/cloudcv

This way we will be able to keep a track of all the emails that we receive regarding GSOC and CloudCV and will be easier for us to post announcements etc.

Let’s make google groups a one stop source for all information related to CloudCV.

 

Projects

  • Automated engine to run Computer Vision code on the cloud This work includes the automation of the CloudCV Backend code and an efficient implementation of the Celery jobs.
  • Integrating Dropbox, Google Drive and S3 and building REST APIs for CloudCV The objective of the project is to integrate Social authentication system using Google and Dropbox using OAuth 2.0 protocol in CloudCV and use these storage services in innovative ways. Social Authentication for CloudCV will be a boon to the organization. It is designed to simplify logins for end users as well as provide more and more reliable demographic information to web developers. Social authentication can be used to do several new things that will be very helpful for users.
  • To Develop the Matlab and Python API for CloudCV CloudCV API is important because it allows users to incorporate CloudCV functionality without having to worry about learning a new framework. This project intends to add more features to the API without compromising its simplicity of use. Currently, the API lacks a few functionality which is essential for the success of the API.