Skip to content
Stefan van der Walt edited this page Feb 18, 2014 · 13 revisions

Google Summer of Code 2014

Overview

Scikit-image is a collection of algorithms for image processing written in Python. For more information, please visit the project website, especially the examples gallery.

Summer of code

PSF student guidelines: http://wiki.python.org/moin/SummerOfCode/Expectations

Advice on writing a proposal (written with the Mailman project in mind, but generally applicable)

Application template for 2013

Community bonding

An important part of the GSoC is to connect with the community, both so that we can get to know one another and so that we may gauge your programming skills before selection. Pull requests provide an excellent opportunity to learn how the library fits together, so tackle one of the issues or implement a suggested feature.

Projects

  • Interactive gallery

    Currently, the examples gallery is a static collection of code snippets and output images. We'd like users to be able to modify the code there and see the result. The outcome of this project would be a web-app that launches a sandboxed, resource-controller Python environment (probably built on top of Docker) that executes code snippets and provides the resulting image as a response.

    This technical project is best suited to a candidate with a strong Linux background and an interest in systems engineering.

  • Image registration

    Image registration forms part applications such as panorama stitching and super-resolution. It is also an important pre-processing step in many types of medical imaging. Some work has been done on implementing image registration in Python, e.g. the imreg project (https://github.com/pyimreg/imreg). The outcome of this project would be a registration sub-module that implements, e.g., dense registration (mutual information), sparse registration (ransac + features).

    This moderately difficult project is best suited to a candidate with some experience in API design and refactoring, although guidance will be provided via pull request review.

  • Blind deconvolution

    In order to perform deconvolution, the blurring or Point Spread Function (PSF), needs to be known. Blind deconvolution is the process of estimating the PSF and reversing its effect. This project involves researching the latest state of the art methods and implementing one or more of them. A good start may be the following paper:
    http://people.csail.mit.edu/sparis/publi/2011/cvpr_radon/Cho_11_Blur_Kernel_Estimation.pdf

    This challenging project is best suited to a candidate with a signal processing background.

  • Non-patent-encumbered face detection

    Face detection as proposed by Viola & Jones is patented. As such, most implementations available cannot be used in scikit-image. A patent-free implementation would require modification and re-training of the underlying cascade, as described in the following article:

    http://rafaelmizrahi.blogspot.com/2007/02/intel-opencv-face-detection-license.html

    This highly challenging project has a fairly large research component. It is best suited to a creative candidate who is able to work independently.

  • Text detection algorithms

    Detecting the presence of text is an important pre-processing step in optical character recognition and translation. This project aims to implement one or more such algorithms like the following:

    Neumann, L. and Matas, J. Real-time scene text localization and recognition. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp.3538,3545, 16-21 June 2012. doi: 10.1109/CVPR.2012.6248097

    Boris Epshtein, Yonathan Wexler, and Eyal Ofek. Detecting Text in Natural Scenes with Stroke Width Transform. IEEE International Conference on Computer Vision and Pattern Recognition (CVPR), 2010.

    This moderately difficult project is aimed at a candidate who enjoys figuring out the finer details of algorithm descriptions.