Alexander Alekhin edited this page Jun 16, 2016 · 3 revisions
Clone this wiki locally

Ideas Page for OpenCV Google Summer of Code 2015 (GSoC 2015)

We are an accepted organization in GSoC 2015!

OpenCV 3D recognition and pose from last year.

General Information:

  • Next important dates:
    • Feb 20 19:00 UTC: Organization Application Deadline. DONE!
    • Mar 02 19:00 UTC: List of accepted Organizations. We’re in!
    • Mar 16 16:00 UTC: Student Application period begins! Students Apply!
    • Mar 27 19:00 UTC: Student Application period ends! Closed
    • Apr 13 Deadline for OpenCV to request # of slots. Submitted
    • Apr 15 Google publishes how many slots we get. Excellent!
    • Apr 21 Try to eliminate duplication of students.
    • Apr 24 IRC for OpenCV to resolve all duplications.
    • Apr 27 19:00 UTC: Accepted students announced.
    • May 25 Let Coding begin!
    • Jun 26 19:00 UTC: Mid term evaluation begins. Pull requests must be in
    • Jul 03 19:00 UTC: Mid term end.
    • Aug 21 19:00 UTC: Coding stop; Pull requests must be in; Mentors: final evaluation begins…
    • Aug 28 19:00 UTC: Final evaluation deadline; Students begin submitting code.
    • Sept 25 19:00 UTC: Deadline for Google Code submission
    • Oct 24-25: Mentor Summit!


  • UTC to PDT (California uses PST in the winter (from Nov 1st) and PDT in the summer (from March 8)).


How you will be evaluated if you are an accepted student

  • Student projects to be paid only if:
    • Midterm:
      • You must generate a pull request
        • That builds
        • Has at least stubbed out functionality
        • With appropriate Doxygen documentation
        • Has at least stubbed out unit test
        • Has a stubbed out example of use that builds
    • End of summer:
      • A full pull request
        • Full Doxygen documentation
        • A good unit test
        • Example of use code
      • Create a (short!) Movie (preferably on Youtube, but any movie) that demonstrates your code

For students interested in applying

  1. You must already know how to program well in C++
    • Some projects may require Python or Matlab skills
  2. Discuss projects below or other ideas with us!forum/opencv-gsoc-2015
  3. Go to the GSoC site and sign up
  4. Post the project from below or your own agreed on project on the GSoC site to the Open Source Computer Vision organization

For computer vision professionals interested in mentoring

  1. Go to the GSoC site and sign up.
  2. Request to be a mentor for OpenCV there.
  3. We accept or reject you
  4. Students submit projects and you
    • find a project you want to mentor (several students might try for the same project)
    • contact us about it through so we can be sure there is not someone already handling that project
    • contact the students to assess which one if any are capable of coding that up in a summer.
  5. We get a slot allocation from Google, the administrators then “spend” the slots in order of priority
  6. Students must finally actually accept to do that project (some sign up for multiple organizations and then choose)

If you are accepted as a mentor and you find a suitable student and we give you a slot and the student signs up for it, then you are a mentor.

  • It sounds harder than it is.
\/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/  \/

2015 Project Ideas:

Students may propose their own projects (give us a clear summary and why you can do this project). However, below are some of our priorities for this year Contact us and/or discuss ideas at!forum/opencv-gsoc-2015

These are not in order of priority

1 Google Cardboard

  • Do visual odometry, SLAM etc for Google Cardboard

2 Projection mapping (Projected Augmented Reality)

  • Calibrate a camera to a projector
  • Put out structured light to learn the 3D map of what’s in front of the camera
  • Project the camera image, suitably rotated and shifted onto the scene
  • Unity or some other program to start transforming the scene for projection mapping
    • See to get ideas of what you can do with this

3 Update OpenCV file storage so that it’s readable by Python in OpenCV (move to YAML 1.2 Edition 3)

  • Mentor Prasanna
  • OpenCV C++ writes out its own YAML tags which makes it incompatible with it’s own Python and with external python readers
  • Speedup fs reading/writing, add JSON support, add base64 (+RLE) support for large amounts of numerical data
  • References
    • YAML
    • Problem statement:

4 Stereo correspondence improvements

  • More accurate and faster stereo correspondence (StereoBM/StereoSGBM) by using LBP/BRIEF/DAISY etc. per-pixel descriptors instead of sum-of-absolute-differences.

5 Self-contained video codec(s)

  • There is draft version of self-contained motion jpeg encoder to be integrated to OpenCV.
  • We will also need decoder, 12-bit jpeg support, multi-threaded encoder and decoder.
  • There are some other codecs, like libvpx, which we can support and link right into highgui, without dependency from ffmpeg/libav.

6 Deep learning

  • It would be cool if OpenCV could load and run deep networks trained with popular DNN packages like Caffe, Theano or Torch.
  • GPU/OpenCL optimization and/or other optimizations (that can partly be contributed back to the upstream projects) are also encouraged.

7 Better interactive camera calibration

  • Modern algorithms would allow us to recompute camera parameters after almost each frame, compute reprojection error, compute confidence intervals for the parameters.
  • the partially occluded calibration patterns could be handled somehow to, especially if we want to estimate intrinsic parameters only.
  • the application may show us the areas where the corner borders have been shown so that user can see how good are the data

8 Create a much better calibration target, we will call it "Charuco

9 Color Calibration and white balance

  • With McBeth chart and with gray world algorithm (improve exisiting color constancy algorithms)
  • Possibly collect deep learning way of doing this (needs large training set)

10 Realtime image preprocessing algorithms (real time on mobile)

  • We and many other OpenCV users would definitely enjoy very fast denoising, color improvements, white balance etc. algorithms.

11 Tracking improvements

  • TLD algorithm is implemented in OpenCV, but it needs improvements and optimizations.
  • ASM/AAM can also be implemented, as well as the particle filter.

12 PBM (part-based models) improvements

  • There is latentsvm package in opencv_contrib that needs to be improved (quality-wise and speed-wise).
  • Adding training, even if it involves execution of external svmperf or other tool, is definitely appreciated too.

13 Improving ICF/ACF + Boost training and detection

  • In opencv_contrib there is initial version of the training application and detector based on integral channel features and boosting. Further improvements of this part would be really useful.

14 lua+OpenCV

  • the other language that is now used more often for ML and CV (thanks to Torch) is Lua; there are old bindings for a tiny part of OpenCV; could be useful to extend our autogenerated bindings to Lua.

15 human interaction

  • gesture recognition
  • human skeleton based on 2d or 3d

16 SfM

  • update libmv to OpenMVG and get the 3d viz from OpenCV
  • Make the Structure from Motion Module coherent

17 Quad Rotor Contrib

  • Apply much of the above into a quad rotor drone automatic tracking, mapping navigation etc module
/\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\ /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\  /\

Accepted Projects for OpenCV GSoC 2015:

OpenCV GSoC 2015 students, projects, mentors are below. WHEN THEY ARE KNOWN

GSoC Progress. Need Pull requests (don’t have to be complete) to pass by July 3rd

Mailing Lists (only for use of Mentors and Students, please to not request to join these lists otherwise):

  • Mentors
    • opencv-gsoc2015-mentors
  • Students
    • opencv-gsoc2015-students

Pre-Midterm status:

  • Pull Request In Antonella Cascitelli – Vladimir Tyan ( TLD improvements –
  • Pull Request In Bo Li – Baisheng Lai ( Omnidirectional Cameras Calibration and Stereo 3D Reconstruction.
  • No Pull Request Vincent Rabaud – Edgar Riba ( Structure From Motion module.
  • Pull Request In Bence Magyar – Jiaolong Xu ( Improving PBM in OpenCV.
  • Pull Request In Fernando J. Iglesias Garcia – Laksono Kurnianggoro ( Real-time Multi-object Tracking using Kernelized Correlation Filter.
  • No Pull Request, but previously Vadim Pisarevsky – Lluis Gomez ( Improve and expand Scene Text Detection module in OpenCV.
  • No Pull Request Michael Harville, Gary Bradski – Naoto Hieda ( Projection mapping (Projected Augmented Reality).
  • Pull Request In – Mircea Paul Muresan ( Stereo correspondence improvements.[Andrey can not mentor the student. Does anyone want to take one?]
  • Pull Request In Delia, Stefano Fabri, Claudia Rapuano – RobertaRavanelli ( Structured-Light System Calibration for OpenCV.
  • “done” Pull Maksim Shabunin – Alexander Bokov ( Recent advances in edge-aware filtering.
  • No Pull Request Prasanna, Gary Bradski – Sergio Garrido ( Charuco board: Chessboard+ArUco for camera calibration.
  • No Pull Request Alexander Bovyrin – Vlad Shakhuro ( ICF detector improvements.
  • Pull Request In Vadim Pisarevsky – Seon-Wook Park ( Real-time image preprocessing on ARM.
  • Pull Request In Anatoly Baksheev, Douglas Lee – Vitaliy Lyudvichenko ( Implementation of universal interface for deep neural network frameworks.
  • Pull Request In Manuele Tamburrano, Stefano Fabri – Yida Wang ( Deep Learning & GPU Implementation Proposal.

Project notes will be compiled here .


Actual signed up mentors

  • Alexander Mordvintsev zzznah(+)
  • Sid Bao ybao(+)
  • Vincent Rabaud vincent.rabaud(+)
  • Vadim Pisarevsky vadim.pisarevsky(+)
  • Adrian Kaehler therealadrian(+)
  • Terry Boult tboult(+)
  • spmallick spmallick(+)
  • Serge Belongie sjb344(+)
  • Stefano s.fabri10(+)
  • Prasanna pras.bits(+)
  • Pablo Alcantarilla pablofdezalc(+)
  • Bence Magyar mw.mzperx(+)
  • Manuele manuele.tamburrano(+)
  • Grace Vesom grace.vesom(+)
  • Open Source Computer Vision Library (OpenCV) garybradski(+)
  • Douglas Lee dougabug(+)
  • Claudia Rapuano c.rapuano(+)
  • Antonella Cascitelli antonellacascitelli(+)
  • Anatoly Baksheev anatoly.baksheev(+)
  • Alexander alexander.shishkov(+)
  • Alexander Smorkalov alexander.smorkalov(+)
  • Alexander Bovyrin alexander.bovyrin(+)

In the below, get rid of the ‘’-delete-’’ to make the emails work.

Anatoly Baksheev
Researcher, Vision Algorithms on GPU

Alexander Bovyrin
PhD, Senior Researcher
Argus/Itseez founder
NNU Lecturer

Gary Bradski
Founder, Industrial Perception Inc.
Consulting Prof. Stanford U.
OpenCV Founder, Technical Content Owner, GSoC Admin
Co-author of Learning OpenCV Book

Antonella Cascitelli
Grad student, University of Rome

Eric Christiansen

Stefano Fabri
CRR Team leader, University of Rome

Victor Eruhimov
OpenCV founding team/Senior Researcher
Argus/Itseez founder
NNU Lecturer

Adrian Kaehler
Principle Engineer, Applied Minds
Co-author of Learning OpenCV Book.

Peter Karasev
PhD Student, MINERVA Research Group
Georgia Tech

Vadim Pisarevsky
OpenCV founding team/Czar

Manuele Tamburrano
Grad Student, University of Rome

Vincent Rabaud
Principle Engineer, Aldebaran Robotics

Claudia Rapuano
Grad student, University of Rome

Grace Vesom
Senior Software Engineer, Magic Leap

Bence Magyar
Pal Robotics

Pablo Alcantarilla
Toshiba Research Europe Ltd.

Back up Mentors

Mark Asbach
Fraunhofer IAIS
Schloss Birlinghoven
Sankt Augustin, Germany

Nicolas Saunier, Ph.D.
Assistant Professor
Civil, Geological and Mining Department (CGM)
École Polytechnique de Montréal

Alexander Mordvintsev
Software Engineer

Andrey Morozov
Software Engineer

OpenCV Org. Application to GSoC 2015

OpenCV GSoC Application

Previous Years

  • 2014 GSoC 2014 Ideas Page
  • 2013 GSoC 2013 Ideas Page
  • 2012 Ideas site
  • 2011 Ideas site
    • 2011 Application GSoC page is
  • 2010 Ideas site
    • 2010 Application page