GSoC/GCI Archive
Google Summer of Code 2015

Open Source Computer Vision Library (OpenCV)

License: New and Simplified BSD licenses

Web Page:

Mailing List:

The Open Source Computer Vision Library (OpenCV) is a comprehensive computer vision library and machine learning (over 2500 functions) written in C++ and C with additional Python and Java interfaces. It officially supports Linux, Mac OS, Windows, Android and iOS. OpenCV has specific optimizations for SSE instructions, CUDA and especially Tegra.

OpenCV is now supported by a non-profit organization: It has over 10M downloads. OpenCV has uses from gesture recognition, Android and iPhone vision apps on up to medical, robotics, mine safety and Google Streetview.


  • Charuco board: Chessboard+ArUco for camera calibration ArUco board detection is fast, robust and can handle occlusion. The Charuco board combines the versatility of ArUco boards with the high corner refinement accuracy achieved by traditional chessboards patterns in order to obtain a less restrictive camera calibration procedure. This application includes the implementation of calibration based on Charuco board, detection of Super-Charuco markers and, finally, the development of an automatic and incremental calibration procedure.
  • Deep Learning & GPU Implementation Proposal Both class and pose label are in consideration in the triplet loss of CNN. About the training and feature extraction process, it is a rough implementation by using OpenCV and Caffe from the idea of Paul Wohlhart. The principal purpose of this API is constructing a well labeled database from .ply models for CNN training with triplet loss and extracting features with the constructed model for prediction or other purpose of pattern recognition.
  • ICF detector improvements Goal of project — improve existing implementation of ICF+WaldBoost detector in terms of quality and speed.
  • Implementation of universal interface for deep neural network frameworks Deep neural networks show significant accuracy increase in image classification and many other tasks. Modern DNN frameworks deliver efficient training methods, but most of them use different architecture serialization and weights storage scheme. These research frameworks have cross-platform issues and cannot be easily embedded into existing programs. OpenCV must have a simple interface for DNN networks with effective cross-platform realization and importers for the most popular DNN frameworks.
  • Improve and expand Scene Text Detection module in OpenCV This is a proposal for the improvement and expansion of the work done during the last two GSoC editions in scene text detection and recognition. The proposed tasks for this year GsoC include the implementation of Convolutional Neural Networks for Scene Text Recognition, and efficient Text-likeliness Pre-filters. Additionally it includes optional proposals for two algorithmic improvements of the current pipeline, and for the implementation of evaluation code for standard datasets (ICDAR RRC).
  • Improving Deformable Part-based Models in OpenCV The deformable part-based model (DPM) proposed by P. Felzenszwalb et al has been seen as a milestone in object detection. OpenCV provides a C++ implementation of DPM (aka LatentSVM detector) but still needs more improvement. The goal of this project is, (1) to refactor the code and improve the detection speed; (2) to add Octave training code for open source users. This work is expected to provide a fast and state-of-the-art detector in OpenCV, which could benefit a large number of users.
  • Multi-object TLD tracking support for OpenCV library TLD tracker is a novel tracking framework that utilizes a power of online learning and structural information of image to build a robust and accurate long-term object tracker. The proposed project aims to extend/improve the existing implementation of OpenCV TLD to a multi-object tracker, that inherits all main features of original TLD algorithm, so it can be used to track and learn previously unknown objects in a video stream and redetect them in case of tracking failure.
  • Omnidirectional Cameras Calibration and Stereo 3D Reconstruction Omnidirectional cameras consist of fish eye and catadioptric ones, while Opencv now can only calibrate fish-eye. A calibration tool based on C Mei's unified model [1] which can calibration all omnidirectional cameras will be implemented. The conventional stereo rectify gets perspective images and need very large images to contain all details. I will use a longitude-latitude mapping [2] which can preserve all details while not increasing image size. Stereo matching can still be applied in a line.
  • Projection mapping (Projected Augmented Reality) Projection mapping has been common in art installations, but its techniques remain limited to skilled artists and computer scientists. This is because projection mapping involves tedious camera and/or projector calibration steps. Although there are projector-camera calibration and projection mapping tools implemented in openFrameworks and other frameworks, a standard API can be offered by OpenCV to avoid duplication in such tools.
  • Real-time Multi-object Tracking using Kernelized Correlation Filter In this project, implementation of a new tracking algorithm is proposed to provide a fast and robust tracking algorithm in the OpenCV library. The proposed implementation is based on Kernelized Correlation Filter (KCF) which is claimed to have reliable result (better than TLD) with very fast computation time (100fps on MATLAB implementation). Thus, this contribution is very useful for OpenCV where the users are demanding a robust method which is able to work in real-time for their applications.
  • Recent advances in edge-aware filtering Many useful edge-aware filters were recently implemented in OpenCV, including Guided Filter and Domain Transform Filter. However, several novel techniques were proposed in the last year: Fast Weighted Median Filter, Fast Global Smoother to name a few. They outperform previous approaches in a range of applications and therefore their implementation in OpenCV might be beneficial for the community.
  • Stereo correspondence improvements In this project I will focus on implementing several real time dense stereo reconstruction algorithms with accurate sub pixel estimation using local and semi global techniques. The implemented block matching will be based on LBP, Modified Census, CS-Census, For sub-pixel implementation I will use quadratic interpolation and I will also want to implement a symmetric V approach since the last gives better results at good speed.
  • Structure From Motion module These days one of the trending topic is Augmented Reality (AR) which blends computer graphics with the current reality combining both, our daily lives and technology in order to cover fundamental needs or simply for fun. In this proposal I will introduce a project to integrate to the Open Source Computer Vision libraries (OpenCV) a Structure from Motion module which will includes all the necessary tools and techniques to build AR or robotics applications.
  • Structured-Light System Calibration for OpenCV Structured Light Systems (SLS), formed by the combination of a projector with a camera, are simple and effective tools to acquire 3D models. But such a high accuracy is only possible if camera and projector are both properly calibrated, so it's essential to implement inside the OpenCV library an appropriate calibration procedure in order to easily retrieve the valuable 3D information that SLS can supply.